CJK 등을 이용하지 않고 일본어 LaTeX를 이용하기위해서는, pTeX라는 일본어 전용 TeX컴파일러를 이용해야 한다.
Ubuntu에서 LaTeX로 일본어를 작성하는 방법에는...
1. tetex + ptetex3
ptetex(tetex용으로 패치된 ptex)를 이용하는 방법. tetex개발이 중단됨으로써, ptetex역시 개발이 중단 될듯하다. 개발자 본인 역시 ptetex4는 아마 만들지 않을 듯하다고. UTF8로 문서 작성 가능
2. texlive + ptexlive
ptexlive(texlive용 ptex)를 이용하는 방법. tetex에서 texlive로 이행함에 따라 ptetex개발자가 다음으로 개발중. UTF8로 문서 작성 가능
3. texlive + ptex
오리지널 pTeX를 이용하는 방법. 필요한 패키지들만 설치하면 바로 이용가능하지만, ptex자체가 texlive를 고려하고 만들어진게 아니기 때문에, 예상치 못한 문제가 발생할지도 모른다. 현재로썬 발견한 문제 없음. UTF8문서 작성 불가능!
tetex개발이 중단되고, 현재 Ubuntu 7.10에서는 tetex가 배포되지 않으므로, 이후 texlive를 이용하게 될듯하다. texlive를 이용하기 위한 방법으로는 위에서 2, 3의 두가지 방법이 있는데, 이중 2번의 경우, ptexlive의 설치
자체는 어렵지 않지만, 현재로서는 패키지배포가 되지 않기 때문에, 직접 컴파일해주어야 한다는 점, 그리고 패키지설치가 아니므로
관리하기가 귀찮다는 점, 마지막으로 개발자 홈페이지에 소개된 설치방법은 기존에 설치된 texlive를 이용하는 것이 아니라,
texlive라이브DVD로부터 설치하는 방법이기 때문에, texlive의존성 패키지를 설치하게되면 texlive가 두개가
존재하게 된다는 점등 단점이 있다. 이 때문에 처음엔 이용했지만, 현재는 이용하지 않고 있으며, 이후에 ptetex처럼 패키지관리가 가능해지면 아마
이쪽으로 이행하게 될듯하다. 이런 연유로 3번으로 이용하는 방법을 적어둔다.
설치해야할 패키지들
texlive texlive-math-extra ptex-bin xdvik-ja dvipsk-ja dvipdfmx cmap-adobe-japan1 okumura-clsfiles jmpost jbibtex-bin mendexk
패키지 설치후 sudo jisftconfig add 실행(okumura-clsfile(js클래스들) 폰트적용)
만약, dvipdfmx보다 ptex를 먼저 설치했을 경우는, 설치 후 sudo dpkg-reconfigure ptex-jisfonts를 실행해야 한다.
이상으로 platex 명령어를 이용하여 일본어 LaTeX 파일을 컴파일 할수 있게 된다. 인코딩은 EUC-JP(Shift-JIS였을지도?)를 이용해야 한다.
LyX에서 일본어 문서 작성하기
LyX 1.5.0이전에는 유니코드문자를 다루지 못했기 때문에, 일본어나 한국어등를 이용하기 위해서는 CJK-LyX를 이용해야 했지만, 1.5.0부터는 처음부터 일본어를 입력할수 있다. 다만, LyX에서는 기본적으로 일본어 문서는 CJK를 이용하도록 되어있다. 하지만, 이경우 제대로된 일본어 식자를 기대하기 힘들기 때문에, 몇가지 수정을 거쳐서 CJK없이 컴파일 가능하게, 그리고 okumura씨의 클래스파일들(jsarticle, jsbook)을 이용할 수 있게 만들어서 이용한다.
1. CJK없이 컴파일되게 만들기
일단 lyx패키지를 설치(1.5.0이상이라면 직접 컴파일 해도 상관없음). 설치된 LyX 디렉토리(아마 /usr/share/lyx 쯤?)에서 아래 파일들을 수정한다. 줄수는 버전별로 조금씩 변경되므로, 정확한 줄번호는 의미가 없다. 앞에 +라고 적혀있는 줄이 원래 없는 내용으로 추가해야할 내용,
encodings
파일의 대략 180줄 쯤
Encoding utf8-plain utf8-plain UTF-8 variable none
End
+# Traditional Japanese TeX programs require neither CJK nor inputenc
+# package.
+Encoding euc-jp-plain EUC-JP-plain EUC-JP variable none
+End
+Encoding jis-plain JIS-plain JIS variable none
+End
+#Encoding shift-jis-plain SJIS-plain SJIS variable none
+#End
+
# Pure 7bit ASCII encoding (partially hardcoded in LyX)
Encoding ascii ascii ascii fixed none
End
languages 파일의 40번째 줄쯤
irish irish "Irish" false iso8859-15 ga_IE ""
italian italian "Italian" false iso8859-15 it_IT ""
japanese "" "Japanese" false euc-jp ja_JP ""
+japanese-plain "" "Japanese (non-CJK)" false euc-jp-plain ja_JP ""
kazakh kazakh "Kazakh" false pt154 kk_KZ ""
# there is no country code for Korean because ko_KR is the same as ko_KI
korean "" "Korean" false euc-kr ko ""
참고 페이지에는 몇가지 파일을 더 수정하게끔 되어있었지만, 실제론 이것만으로도 가능했다.
수정후에 일본어 문서를 만들거나 열고 Document->Settings->언어 탭으로 들어가, 언어를 Japanese (non-CJK)로 선택, 인코딩은 디폴트 인코딩을 이용하여 작성한다. Tools->Preference->Converters 에서, "LaTeX(plain)->DVI"항목을 선택하고,
Converter를 "latex $$i"에서 "platex $$i"로 변경한다. Modify를 클릭후 저장한다.
2. jsarticle과 jsbook 클래스파일 이용하기
jsarticle이나 jsbook은 기본적으로 platex를 이용하는 것을 전제로 하고 있기 때문에, TeXLive와는 별도의 pTeX용 경로에 들어가 있다. 이에 반해 LyX는 TeXLive의 경로만을 인식하기 때문에, 문서형식에서 jsarticle이나 jsbook등의 일본어용 스타일은 선택할수가 없다. 이걸 수정하기 위해서는 platex를 인식하게 한후, 직접 레이아웃 파일을 추가해주어야 한다.
우선, LyX 경로의 layouts디렉토리에서 article.layout파일과 book.layout파일을 복사하여 jsarticle.layout 및 jsbook.layout파일을 만든다. 새로 만든 jsarticle.layout, jsbook.layout파일을 열고, 두번째 줄의
# \DeclareLaTeXClass{article} 혹은 # \DeclareLaTeXClass{book}
을 각각
# \DeclareLaTeXClass{jsarticle} 혹은 # \DeclareLaTeXClass{jsbook}
으로 수정한후, LyX를 열고 Reconfigure를 실시하면, 문서형식에서 jsarticle과 jsbook을 선택할수 있게 된다. 만약 jarticle등을 이용하고 싶다면 같은 요령으로 레이아웃 파일을 추가해주면 된다. 다만, 이상태로는 platex의 경로를 인식하지 못하기 때문에, jsarticle과 jsbook은 unavailable로 지정되어있다. 다음 파일들을 수정한다. 마찬가지로 버전에 따라 변경되기 때문에 정확한 줄번호는 의미가 없으며, 줄 앞에 '-'가 적힌 줄을 삭제하고 '+'라고 적힌 줄로 대체한다.
configure.py 파일의 약 200번째 줄 쯤
\converter dvi2 dvi "python -tt $$s/scripts/clean_dvi.py $$i $$o" ""'''
else:
converter_entry = r'\converter latex dvi "%%" "latex"'
- path, LATEX = checkProg('a Latex2e program', ['pplatex $$i', 'latex $$i', 'latex2e $$i'],
+ path, LATEX = checkProg('a Latex2e program', ['pplatex $$i', 'platex $$i', 'latex $$i', 'latex2e $$i'],
rc_entry = [converter_entry])
# no latex
if LATEX != '':
scripts/legacy_lyxpreview2ppm.py 파일의 약 230번째 줄
# External programs used by the script.
path = string.split(os.environ["PATH"], os.pathsep)
- latex = find_exe_or_terminate(["pplatex", "latex2e", "latex"], path)
+ latex = find_exe_or_terminate(["pplatex", "platex", "latex2e", "latex"], path)
dvips = find_exe_or_terminate(["dvips"], path)
gs = find_exe_or_terminate(["gswin32c", "gs"], path)
pnmcrop = find_exe(["pnmcrop"], path)
scripts/lyxpreview2bitmap.py 파일의 약 150번째 줄
# External programs used by the script.
path = string.split(os.environ["PATH"], os.pathsep)
- latex = find_exe_or_terminate(["pplatex", "latex2e", "latex"], path)
+ latex = find_exe_or_terminate(["pplatex", "platex", "latex2e", "latex"], path)
# This can go once dvipng becomes widespread.
dvipng = find_exe(["dvipng"], path)
이상 세파일을 수정후 다시 LyX를 재가동후 Reconfigure를 실시해주면 jsarticle과 jsbook을 이용할수 있게 된다,
참고 페이지들
http://forum.ubuntulinux.jp/viewtopic.php?pid=4912
http://www.otaru-uc.ac.jp/~yokota/lyx1.html
http://centos.it-cafe.jp/kankyou/kan008.html




















