Post about "latex"

Textmate2 설치

Mac에는 Textmate라는 걸출한 텍스트 편집기가 있다. 하지만 한글같은 2바이트 문자 처리에 문제가 있다.

그런데 Textmate개발자는 유니코드를 잘 지원하는 Textmate2 버전을 오픈소스로 풀어버렸다.

직접 빌드를 해야하는 번거로움이 있었는데, 오늘 보니 app파일로도 제공을 한다.

github에서 직접 다운로드 받을 수 있다.

위 링크에서 최신 버전을 다운받아 압축을 풀면 바로 실행할 수 있는 app이 들어있다.

Application폴더에 옮겨 실행해도 되고, 바로 실행해도 상관은 없다.

 

테마를 설치하기 전에는 신택스 하이라이팅이 안된다.

Textmate2의 환경설정을 열어 Bundles 탭을 누른다. 여기서 Themes만 활성화를 시키면 사용할 수 있는 테마들이 나타난다.

원하는 테마를 선택하면 Textmate가 자동으로 설치/삭제한다. 속도도 아주 빠르다. 어두운 배경색을 좋아하는 나는 Monokai와 Cloudes Midnight를 좋아한다.

Theme처럼 Language를 선택하면 프로그래밍 언어를 추가할 수 있다. LaTeX, Javascript는 물론이고, jQuery도 지원한다.

그런데 편집기로는 좋은데, 레이텍을 컴파일하려니 이런 저런 문제가 있다.

역시 텍샵이 짱인가…?

fontspec을 이용해서 자간 줄이는 방법

\documentclass{xoblivoir}
\usepackage{multido}
\setmainfont[Ligatures=Common,LetterSpace=0.0]{Times New Roman}

\newcommand\sample[1]{%
\addfontfeature{LetterSpace=#1}%
0123456789 The Korean \TeX\ Society\hfill \textsf{LetterSpace$=#1$}\par}

\begin{document}
\multido{\r=-5.0+1.0}{11}{\sample{\r}}
\end{document}

 

레이텍으로 문서를 작성하다가 문제가 생겼는데 Progress님께서 해답을 알려주셨다.

내가 작성중인 문서는 상단 특정 영역에 챕터 번호가 있는데, 이 박스의 너비가 작다보니 챕터번호가 두 자리가 되면 숫자 양 끝이 박스 바깥으로 삐져나와 보기가 안좋다.

Progress님께서 알려주신 방법은 fontspec에서 제공하는 LetterSpace를 이용해 강제로 자간을 줄이는 것이다.

 

ps. 이 코드를 블로그에 올리는 이유는… multido 쓰는 법을 배우려고…;;;

올해 공부계획

1. 영어:  11월 토익 700점을 목표로. 고등학생만도 못한 영어실력으로 겨우겨우 버텨왔는데 아주 답답하다.

영어공부는 매번 얼마 못가 질려버려서 걱정이 되긴 하는데…

2. LaTeX: 5월 중순부터 이걸로 밥벌이하게 됐다. 실제로는 문서제작 프로세스를 만드는 일이 될 것 같다.

지금 책만드는 일이 끝나면 KTS컨퍼런스 팜플릿 소스분석을 하려고 했는데 좀 더 서둘러야 겠다.

수많은 소스 중에 저걸 목표로 한 이유는

1) 믿을 만한 분이 만들었다. 게다가 온라인상으로는 자주 만난다.

2) 소스, PDF파일, 인쇄물을 모두 가지고 있다. 나에게는 실제 인쇄된 결과물을 갖고있다는 게 아주 중요하다.

3) 있을 건 다 있다. 이 소스 하나면 많은 걸 배울 수 있다.

3. ConTeXt: LaTeX보다 사용자도 훨씬 적지만 내가 바라던 방식을 제공한다. 이건 순전히 내 느낌을 믿고 하는 것이다.

4. Python: 필요할 때만 가끔 쓰니까 늘지를 않는다. Django, PyQt(or PySide) 등도 같이 공부해서 업무에 써먹도록 해야겠다.

5. Cocoa 프로그래밍: 맥과 아이폰용 앱을 만들기 위해. 택시 합승 앱은 벌써 나왔더군. 지금 구상중인 건 생활(특히 자취생)과 관련된 것 하나와 게임 하나. 5개 중에 우선순위가 가장 낮은 공부.

6. 철봉 턱걸이 100개. 오늘 두 손가락으로 10개 간신히. 왜 손 전체로 잡는 것보다 두 손가락으로 하는 게 더 쉬운지 모르겠다. 아무튼 안쉬고 100개!!! -> 이건 나중에 평행봉으로 바뀔 수 있음.

영어 빼고는 구체적인 목표가 없네…  좀 더 고민해야겠다.

monaco폰트의 -(hyphen, 하이픈) 문제

texshop에서 monaco 15pt로 글을 쓰고 있다.
(오랫동안 글을 볼 때는 큼지막한 글씨를 좋아함. 노인네도 아닌데…라섹까지 했는데…)

tex에서는 -(hyphen) 두 개를 연속해서 쓰는 것으로 en-dash를 나타낼 수 있는데, texshop에서 이상한 걸 발견했다.

한글 뒤에 붙은 -(hyphen)이 아래로 조금 내려가있다. 거기다 조금 짧은 것 같기도 하다(이건 착시현상인가?).

monaco 폰트의 문제다.

한글 뒤에만 오면 이런 문제가 발생하는데 아래로 쳐진 -(hyphen)을 지우고 다시 입력하면 정상적으로 나타난다.

폰트와 관련된 기술에 대해서는 아는 바가 없으므로 이유도 모름;

xelatex으로 네팔어 조판하기

(이 글은 제가 KTUG에 올린 글을 가져온 것입니다.)

xoblivoir클래스 문서에 네팔어를 집어넣어야 해서 hoze님이 최근에 올리신 글과 기존 올라온 글들을 참고해서 작성했습니다.

컴파일은 되는데 네팔어만 안나와 kts방에 질문한 끝에 Chof님과 Progress님께서 알려주셔서 해결했습니다.

반나절을 이걸로 끙끙거렸는데 대화방에서 고수의 가르침덕분에 5분도 안되어 해결을 하니 눈물이 앞을 가립니다.

%!TEX encoding = UTF-8 Unicode
\documentclass{xoblivoir}
%\defaultfontfeatures{Mapping=tex-text}
\setmainfont[Mapping=tex-text]{Baskerville}
\setmainhangulfont[Mapping=tex-text]{은 바탕}
\setmainhanjafont[Mapping=tex-text]{은 바탕}
\newfontfamily\nefont{Devanagari New}
\begin{document}
{\nefont पाहाड}
\end{document}

문제는 Devanagari New라는 폰트에 있었습니다.
Devanagari New 폰트대신 함초롬으로 하니 제대로 컴파일이 되는군요.
일단 함초롬도 되긴 하지만 좋은 Devanagari용 폰트를 사용하라는 말씀이 있었습니다.
(이상 Progress복음 11장 1절)

여기서
\newfontfamily\nefont{Devanagari New}
보다
\newfontfamily\nefont[Script=Devanagari]{HCR Batang}
와 같이 하는 게 좋다고 합니다.
[Script=Devanagari] 있으면 먼저 찾고, 찾다가 없으면 무시된다는군요.
Devanagari같은 스크립트 이름은 fontspec 매뉴얼 표 13에 나와있습니다.
이상 ‘xetex으로 네팔어 조판하기’ 였습니다.

texmaker 2.2 사용소감

(이 글은 KTUG에도 함께 올렸습니다.)

texmaker 2.2(2011. 1. 26)가 나왔다길래 테스트해봤습니다.

(http://www.xm1math.net/texmaker/)

인터페이스는 WinEdt랑 비슷한데, 좌측 사이드바에 현재 문서의 구조를 한 눈에 파악할 수 있게 나오는 게 편리해 보입니다.

중첩된 구조도 잘 나타내주고, 파일 변경시 바로바로 적용해 줍니다.

사이드바에는 문서 구조 뿐만 아니라 특수기호, 수학기호, PSTricks나 Tikz 등의 명령어를 마우스 클릭만으로 바로 쓸 수 있게 해둔 점도 좋아보입니다.

그리고 문서편집창 옆에도 bold, italic, flushleft, \sqrt 등의 명령을 바로 적용할 수 있는 버튼들이 있습니다.

이걸 사용자가 정의해서 쓸 수 있도록 하면 좋을텐데 그런 기능은 없습니다.

texmakermacos.png

문서구조가 보이고, 바로 이동해서 편집도 가능해서 편리해 보이는데 TeXShop 대신 이걸 쓸 생각은 없습니다.

일단 맥에서 바람입력기 사용시 Shift+Space로 한영전환이 안되구요, XeTeX을 아직 지원하지 않습니다. 물론 환경설정창에서 LaTeX 옵션을 xelatex으로 바꿔주면 가능하겠지만 그렇게까지 해서 쓰고 싶지 않은 결정적인 이유는 PDF뷰어때문입니다. 아주 형편없습니다. (직접 테스트해보지는 않았지만)편집기와 싱크할 수 있는 기능은 제공합니만 뷰어가 페이지를 바로바로 나타내주지 못합니다. 첫페이지를 제외하고는 느린 게 아니라 아예 안뜹니다. pdf뷰어를 외부뷰어로 설정할 수는 있는데 이 때도 편집기와 싱크가 되는지는 확인하지 못했습니다

이 프로그램을 지우지말까 고민하는 유일한 이유는 Help메뉴에 있는 LaTeX Reference때문입니다.

A-Z까지 항목별로 간단하게 설명이 되어있는데 꽤 쓸모있어 보입니다.

버전이 2.2인데 꽤 실망스럽습니다.

그래서 윈도우와 리눅스에서는 테스트하지 않았습니다. ^^

HTML5 오픈 컨퍼런스 참석 후기

웹 표준화는 이미 대세가 되었다.

대세가 되는 과정은 흥미롭지만 이미 대세가 된 것은 흥미가 뚝 떨어진다.

그렇게 웹 표준쪽은 흥미가 떨어지고 있는데, 반면에 HTML5쪽은 흥미가 생기고 있다.

최근에 출간된 HTML5 & API 입문 책같은 경우, 목차만 보면 알 수 있듯이 자세히 다루는 법은 나와있지 않지만 새로 추가된 다양한 기술들을 접해볼 수 있어 구입했다. 신기하더군 -0-

웹쪽에만 관심있는 사람보다 조금 관점이 다른 부분은 <article>, <section>같은 구역(? 영역? 성격?) 태그이다.

(La)TeX의 경우 처음 나온 80년대부터 chapter, section, subsection 등을 통해 문서를 구조화할 수 있는데 HTML은 이제야 이런 면이 부각되고 있는 것이다.

왜 이게 중요한가 하면 웹 문서나 (LaTeX으로)인쇄를 목적으로 만든 문서나 정보를 제공하는 문서라는 점에서는 동일하다.  특정한 영역(스크린이나 A4용지)내에 있는 텍스트나 그림 등을 적절히 배치하여 사람들에게 정보를 효과적으로 전달한다는 데에서는 같은 것이다.

정보를 제대로 전달하기 위해서는 전달하고자 하는 내용들을 적절히 조직해야 하는데 HTML의 경우 사실 이런 점이 매우 뒤떨어졌다. 기껏 H1 ~ H6 같은 수준이다. 하지만 HTML5에서는 위에서 언급한 <article>이나 <section> 들의 태그를 지원함으로써 정보를 좀 더 체계적으로 설계할 수 있게 된 것이다.

그럼으로써 이제 좀 더 시맨틱한, 좀 더 의미가 분명해지는 문서가 되는 것이다. 이제 봇들이 정보를 수집하고, 재생산하는데 있어 기존보다 훨씬 사람의 손이 덜가고 좀 더 체계적인 관리가 가능해지는 것이다.
(물론 웹 에디터가 이를 얼마나 지원할지는 미지수다. 또 사람들이 이걸 얼마나 잘 이해하고 활용할지도 미지수다.)

아무튼 HTML5가 한참 관심을 받기 시작하는 요즘 오픈 컨퍼런스가 열려 다녀왔다. 대전 촌놈이 이거 보자고 서울까지 다녀왔다. 젠장할 서울공화국.

강사들이 운영하는 블로그를 RSS로 구독하기 때문에 사실 새로 배운 건 별로 없지만서도 직접 다양한 예를 시연하는 것을 보니 신기하다.

기념품은 그저그렇다… 특히 가이드책이 내용에 비해 인쇄상태가 영 꽝이라…

http://webappscon.com/html5/

latex에서 Creative Commons (CC)기호 조판하기

LaTeX으로 연습삼아 만드는 문서의 원본이 creative commons 라이센스이다.

혹시나 싶어 texdoc symbols로 찾아보니…

헐…;;;

있다;;;

TeXLive 2009에는 기본으로 설치되어 있다.
프리엄블에
\usepackage{cclicenses}
라고 선언해주기만 하면 된다.

각각은
\cc
\ccby
\ccnc
\ccnd
\ccsa
명령으로 나타낸다.

LaTeX이 전자책 사용자에게 인기를 끌 수도 있겠다.

몇 달 전부터 전자책 단말기(영어로는 보통 e-reader라고 한다)를 관심을 가지고 지켜보고 있다.


미국에서 전자책 사업을 성공적으로 펼치고 있는 아마존의 최신 제품 Kindle DX. 커다란 화면과 흰색으로 된 멋스럽고 깔끔한 디자인은 가격에 대한 불만을 해소시키기에 충분하리라. 거기다 (우리나라는 아직 먼 얘기지만) 무선 네트워크도 지원되고 아마존의 많은 전자책을 껴안고 있는 터라 라이벌 제품이 아직 없다.
그 외 소니 PRS시리즈나 irex의 제품 등을 개인적으로 수입해서 쓰는 분도 꽤 있는 것으로 보인다.
최근에는 우리나라에서도 관련 제품이 연이어 나오고 있다. 누트2를 비롯해 삼성전자에서 만든 파피루스, 그리고 소비자를 애태우게 하고 있는 소리북. 거기다 아이리버라는 회사까지 스토리라는 제품을 예약판매하고 있는 중이다.
우리나라에서도 전자책에 대한 관심이 높아지고 있고, 정부에서도 전자책 산업을 키우기 위해 정책을 잡고 있다는 소식이 들린다.
그런데 정작 문제는 읽을 책이 없다는 것이다.
신간 중에 전자책으로 나오는 것은 극히 일부인데다, 내가 관심을 갖는 컴퓨터 쪽은 아예 신간이 없다고 보면 된다. 2003년도에 나오는 것도 대부분 기초활용서 수준인데다 포맷도 윈도우즈 컴퓨터에서 밖에 볼 수 없는 것들이다.
때문에 사용자들은 커뮤니티를 통해 txt문서나 hwp문서를 전자책으로 보기 위해 갖가지 방법을 공유하고 있다.
사용자들의 주된 관심은 만화보기와 txt문서 보기다. 만화는 내 관심사항이 아니고 이것과 관련된 팁도 많이 있다.
내가 관심있는 쪽은 txt파일인데, 외산 단말기의 경우에는 한글 지원이 미흡하기 때문에 한글txt파일을 보기 위해 사용자들이 직접 툴을 만드는 등의 수고를 하고 있다. 또한 폰트를 자기가 원하는 폰트로 지정하기 위해 핵이라고 하는 갖가지 방법을 동원하고 있는 실정이다.
TeX이라면 그 수고를 충분히 덜어줄 수 있을 것이라고 본다. 일단 사용자들이 읽으려는 txt파일은 무협지나 소설 등이 대부분이라, 수식(TeX의 가장 큰 장점 중 하나인데…)처럼 어렵게 느껴지는 부분은 몰라도 되고, fancyhdr처럼 페이지 꾸미는 것이 별 필요가 없는 것이다.
즉, xoblivoir(폰트때문에 XeTeX을 원할 것이다)와 기본적인 명령어 몇 개 만으로 사용자가 직접 txt파일을 PDF로, 그것도 자신이 원하는 폰트(안되는 것도 있지만)로 만들어 쓸 수가 있는 것이다! 이렇게 되면 한글을 지윈하지 않는 외산 단말기에서 손쉽게 한글 문서를 볼 수가 있는 것이다.
이런 점에서 품질좋은 문서를 만들어 내는 TeX은 한글로 된 전자책이 별로 없는 우리나라의 많은 전자책 사용자들이 주목하기에 충분하다.
그래서 이와 관련된 매뉴얼을 쓰려고 목차만 대충 정리해 두었는데, 먹고 살려니… 요즘은 또 운동도 하려니 언제 만들지 기약이 없다. 지금 회사에서 하는 프로젝트가 끝날 즘인 연말에는 그래도 볼 만한 문서를 하나 만들지 않을까 생각한다.

LaTeX으로 스도쿠 게임 만들기

누나때문에 스도쿠에 재미가 들려서 요 며칠 신나게 하고 있다.
지난 주에 누나가 누가 빨리 푸나 게임을 하자고 해서 누나, 여동생 그리고 나 이렇게 셋이서 스도쿠 게임을 했다.

게임이 내 핸드폰에 있었기 때문에 종이에 일일이 그려서 게임을 시작했다.
(3판에서 내가 2승. ㅋㅋㅋ)

게임을 끝내고 나니, 왠지 LaTeX으로 하면 스도쿠 게임도 만들 수 있을 것 같아 찾아보니, 역시 이미 관련 패키지가 있었다.

1. LaTeX:

TeX이라는 조판시스템의 매크로로서, 일반적으로 TeX이라면 LaTeX을 말하는 경우가 많다. 우리나라에서는 KTUG에 계신 분들이 한글 조판을 위해 꾸준히 개발을 해오신 덕분에 쉽게 한글문서를 조판할 수 있다. 특히 2008년에 개발된 KC2008은 TeX시스템과 관련 유틸리티, 한글을 위한 Ko.TeX 설치를 한방에 해주어 편리한 환경을 제공해 준다.

2. 패키지:

LaTeX에서는 다양한 확장 기능(또는 환경)등을 제공하는 패키지가 있다. 일종의 모듈이라고 생각하면 되는데, KC2008이나 TeXLive를 full 또는 기본설정으로 설치하였다면 왠만한 패키지는 이미 설치되었다. 스도쿠 게임을 위한 패키지 이름은 ‘createsudoku‘이다.

3. sudokubundle:

스도쿠 게임을 만들기 위한 스타일. 스도쿠 게임을 쉽게 만들어 준다.
스도쿠 게임을 만들기 위해서는 먼저 숫자가 기록된 파일이 필요하다. 빈 칸은 점(.), 숫자는 해당 숫자를 입력하면 된다. 아래 4번 항목을 참고.
이렇게 입력한 파일을 filename.sud 형식으로 저장한다. 일반 텍스트 파일이지만, 확장자가 sud인 것에 주의한다.

4. sud파일:

예를 보여주는 것이 빠를 것 같다.
스도쿠 게임은 9×9 이므로,
.1…3.25
.6.7..4..
.8……1
…9.2…
.58…21.
…6.5…
9……4.
..6..7.9.
53.2…8.
처럼 9×9로 만들고, 이를 example.sud로 저장한다. 이 때 인코딩은 UTF-8로 한다.

5. 명령어:

TeX이나 LaTeX 등에서 문서 조판을 위해 제공하는 명령어. 여기서는 스도쿠 게임을 위해 createsudoku라는 패키지에서 제공하는 3가지 기본 명령어만을 알아본다(자세한 명령과 옵션은 매뉴얼 참고).

  1) \sudoku{filename.sud}: filename.sud파일의 숫자를 이용, 문제를 조판한다.
  2) \sudokusolve{filename.sud}: filename.sud파일의 숫자를 이용, 문제와 해답을 함께 조판한다.
  3) \generategrid{filename.sud}: filename.sud파일을 기반으로 다른 문제와 해답을 함께 생성한다. sud파일을 지정해 주지 않으면, 임의의 문제를 만들어 조판한다.

6. latex 파일을 만들 차례다.

\documentclass{article}
\usepackage{createsudoku}
\begin{document}
\begin{center}
\sudokusolve{aaa.sud}
\end{center}
\end{document}

메모장 등의 에디트 프로그램에서 위처럼 작성한 후, example.tex으로 저장한다. 영문밖에 없긴 하지만 UTF-8로 저장한다. 10번째 줄 이후는 아무 영향을 미치지 않으니 아무 글자나 입력해도 상관없다.

7. 위에서 만든 example.tex파일을 컴파일 한다.

컴파일은 KC2008이나 TeXLive 등이 설치된 상태에서, 명령 프롬프트에서
pdflatex example.tex
으로 하거나,

latex example.tex” 명령 후, 다시 “dvipdfmx example.dvi“을 실행하면
우리가 원하던 example.pdf을 얻을 수 있다.
명령 프롬프트를 통해 직접 입력하는 것이 어렵다면 KC2008에서 제공하는 KCMenu라는 프로그램을 이용하면 된다.

예제파일 다운로드: 5788356902.zip

왠지 있을 것 같은 기대감에 찾아보긴 했지만, 진짜 이렇게 떡~하니 있을 줄이야…
작년 가을쯤인가 강컴과 Yes24에서 The TeXBook 원서 50%세일할 때 살 걸… 하는 후회가 요즘 밀려들고 있다.
(근데 왜 동시에 50% 세일을 했을까…?)