日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

日文 LaTeX 系统介绍 - 最简示例

發(fā)布時間:2025/3/21 windows 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 日文 LaTeX 系统介绍 - 最简示例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文為譯文,原文載于這里。歡迎關(guān)注本系列的文章。

上一篇文章(譯文)我們探討了關(guān)于字符集和編碼的一些細節(jié),今次我們繼續(xù)討論如何在 LaTeX 中書寫日文。今天的內(nèi)容需要動手操作試試,要用不同的引擎和宏包寫一些 Hello world 類型的文檔。

今天的內(nèi)容同樣會涉及到一些配置 TeX 環(huán)境的內(nèi)容,會講一講如何在?TeX Live?里配置書寫日文的環(huán)境。

配置日文 TeX 環(huán)境

我們假設(shè),你已經(jīng)在計算機上安裝好了類似 TeX Live 2014 的 TeX 系統(tǒng)。你可以在下列 TeX 系統(tǒng)中選擇其一安裝。

  • TeX Live 的原始版本 (Upstream TeX Live installation) - 完整的安裝步驟,請參考?TeX Live 的文檔(中文版)的第三章。對于?Linux?和?Windows?系統(tǒng),也可以參照相應的快速安裝教程。對于 Mac OS X 的用戶,則建議安裝基于 TeX Live 的?MacTeX。
  • 發(fā)行版里的 TeX Live (Distribution’s TeX Live) - 具體的安裝取決于你使用的發(fā)行版。如果你用的是 Debian/jessie 或者 Debian/sid,那么你只需要運行?apt-get install texlive-full?即可。其他發(fā)行版 (Fedora, RedHat, SuSE) 的用戶請注意檢查發(fā)行版里當前的 TeX Live 版本。在老版本的環(huán)境下,后文中的例子可能無法得到預期的結(jié)果。
  • W32TeX -?W32TeX?是 Akira KAKUTO 針對 Windows 系統(tǒng)制作的 TeX 發(fā)行版,其中的宏包也專門為 Windows 系統(tǒng)篩選過。W32TeX 對日文的配置可能是最周全的,不過我沒有親身體驗過。
  • 其他 TeX 發(fā)行版 -?MiKTeX?是另一個重要的 TeX 發(fā)行版。MiKTeX 是 Windows 平臺上高度集成的優(yōu)秀發(fā)行版。不過因為打包和依賴腳本的差異,特別是涉及到?udpmap?的部分與 TeX Live 完全不同,MiKTeX 在我手頭的一些設(shè)備上并不能很好地運行。

我的建議是,如果你的發(fā)行版足夠新,那最好使用軟件源里的 TeX Live;不然的話最好是使用 TUG 上的 TeX Live,包括 MacTeX。

最簡示例

言歸正傳。接下來我們來寫幾個「Hello world」文檔。當然,「Hello world」這幾個字母里并沒有日文字,所以文章的正文部分看起來會是這個樣子:

demo
1 2 3 \begin{document} \LaTeX で日本語を書きましょう! \end{document}

在進行下一步之前,有必要說一下關(guān)于編碼的問題。請按以下規(guī)則,在保存文件的時候選擇正確的編碼:

  • Unix-like 系統(tǒng)以及 Mac OS X 系統(tǒng):總是保存為 UTF-8 編碼
  • Windows 系統(tǒng):在測試 pLaTeX 的時候使用 ShiftJIS 編碼,其他時候使用 UTF-8 編碼

這樣做的原因在于:在 Windows 系統(tǒng)上,pTeX 以 ShiftJIS 編碼作為默認編碼;在其他系統(tǒng)上以 UTF-8 編碼作為默認編碼。當然,你也可以在 Windows 上把 pLaTeX 的測試文檔以 UTF-8 編碼保存,但是在編譯的時候你得加上?-kanji utf8?這樣的參數(shù)。

pLaTeX 以及 upLaTeX

這是最簡單的情況,我們只需要加上?\documentclass?就好了。

demo
1 2 3 4 \documentclass{article} \begin{document} \LaTeX で日本語を書きましょう! \end{document}

以正確的編碼將其保存為?hello-ptex.tex,然后運行?platex,UTF-8 編碼的控制臺會有類似于如下的輸出:

demo
1 2 3 4 5 6 7 8 9 10 11 12 13 $ platex hello-ptex.tex This is e-pTeX, Version 3.14159265-p3.5-130605-2.6 (utf8.euc) (TeX Live 2014) (preloaded format=platex) restricted \write18 enabled. entering extended mode (./hello-ptex.tex pLaTeX2e <2006/11/10> (based on LaTeX2e <2014/05/01> patch level 0) Babel <3.9k> and hyphenation patterns for 79 languages loaded. (/home/norbert/tl/2014/texmf-dist/tex/latex/base/article.cls Document Class: article 2007/10/19 v1.4h Standard LaTeX document class (/home/norbert/tl/2014/texmf-dist/tex/latex/base/size10.clo)) (./hello-ptex.aux ) [1] (./hello-ptex.aux) ) Output written on hello-ptex.dvi (1 page, 384 bytes). Transcript written on hello-ptex.log.

Windows 系統(tǒng)上的輸出與此類似,只不過在版本號后面的不是?utf8.euc?而是?sjis。

如你所見,輸出結(jié)果是一個 DVI 文件。注意,此處不要使用?dvips?將其轉(zhuǎn)換為 PostScript 文件,dvips?也許能夠工作,但是 PS 文件卻無法正常顯示;請總是使用?dvipdfmx?將 pTeX/upTeX 輸出的 DVI 文件轉(zhuǎn)換為 PDF 文件。

因此,我們輸入命令

demo
1 2 3 4 $ dvipdfmx hello-ptex.dvi hello-ptex.dvi -> hello-ptex.pdf [1] 7636 bytes written

接下來,使用 PDF 閱讀器打開得到的 PDF 文檔,效果類似于下:

如果覺得字體效果看起來稍有不同,也暫時不用擔心,之后對此會有解釋。但不論如何,你應該能看到日文字符,不然就說明有哪里錯了。

類似的步驟在 upTeX 下同樣奏效:

demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $ uplatex hello-ptex.tex This is e-upTeX, Version 3.14159265-p3.5-u1.11-130605-2.6 (utf8.uptex) (TeX Live 2014) (preloaded format=uplatex) restricted \write18 enabled. entering extended mode (./hello-ptex.tex pLaTeX2e <2011/05/07u00>+0 (based on LaTeX2e <2014/05/01> patch level 0) Babel <3.9k> and hyphenation patterns for 79 languages loaded. (/home/norbert/tl/2014/texmf-dist/tex/latex/base/article.cls Document Class: article 2007/10/19 v1.4h Standard LaTeX document class (/home/norbert/tl/2014/texmf-dist/tex/latex/base/size10.clo)) (./hello-ptex.aux ) [1] (./hello-ptex.aux) ) Output written on hello-ptex.dvi (1 page, 380 bytes). Transcript written on hello-ptex.log. $ dvipdfmx hello-ptex.dvi hello-ptex.dvi -> hello-ptex.pdf [1] 7638 bytes written

輸出結(jié)果與之前應當完全相同。

多簡單啊~

XeLaTeX

如果你用 XeLaTeX 編譯同樣的代碼,輸出結(jié)果里就不會有日文字符。這里我們要多寫一點代碼。這里我會展示使用?xeCJK?和?ZXjatype?的最簡示例。這兩個宏包在 TeX Live 里都有,你可以選擇其一。

不管你用哪個宏包,你都得選擇一個日文字體,不然的話日文字符就不會輸出。

xeCJK

對于 xeCJK 來說,你得這么寫:

demo
1 2 3 4 5 6 \documentclass{article} \usepackage{xeCJK} \setCJKmainfont{ipaexm.ttf} \begin{document} \LaTeX で日本語を書きましょう! \end{document}

將其以 UTF-8 編碼保存為?hello-xetex.tex,之后運行?xelatex:

demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $ xelatex hello-xetex.tex This is XeTeX, Version 3.14159265-2.6-0.99991 (TeX Live 2014) (preloaded format=xelatex) restricted \write18 enabled. entering extended mode (./hello-xetex.tex LaTeX2e <2014/05/01> Babel <3.9k> and hyphenation patterns for 79 languages loaded. (/home/norbert/tl/2014/texmf-dist/tex/latex/base/article.cls Document Class: article 2007/10/19 v1.4h Standard LaTeX document class (/home/norbert/tl/2014/texmf-dist/tex/latex/base/size10.clo)) (/home/norbert/tl/2014/texmf-dist/tex/xelatex/xecjk/xeCJK.sty (/home/norbert/tl/2014/texmf-dist/tex/latex/l3kernel/expl3.sty ..... (./hello-xetex.aux) (/home/norbert/tl/2014/texmf-dist/tex/latex/tipa/t3cmr.fd) [1] (./hello-xetex.aux) ) Output written on hello-xetex.pdf (1 page). Transcript written on hello-xetex.log.

直接就能得到 PDF 文檔。

ZXjatype

對于 ZXjatype 來說,你得這么寫:

demo
1 2 3 4 5 6 \documentclass{article} \usepackage{zxjatype} \setjamainfont{ipaexm.ttf} \begin{document} \LaTeX で日本語を書きましょう! \end{document}

pdfLaTeX

接下來,我們看看在 pdfLaTeX 底下怎么使用。pdfTeX 引擎可能是全球范圍內(nèi)使用最廣泛的引擎了。這里,我們也將討論兩個宏包的使用方法:Werner Lemberg 的?CJK?宏包和 Takayuki Yato 的?BXcjkjatype。

CJK

譯注:這里作者用了一個很別扭的方式來構(gòu)建文檔,已改用通常習慣的方式。

demo
1 2 3 4 5 6 7 \documentclass{article} \usepackage{CJKutf8} \begin{document} \begin{CJK*}{UTF8}{min} \LaTeX で日本語を書きましょう! \end{CJK*} \end{document}

將其以 UTF-8 編碼保存為?hello-cjk.tex,之后運行?pdflatex:

demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ pdflatex hello-cjk.tex This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./hello-cjk.tex LaTeX2e <2014/05/01> Babel <3.9k> and hyphenation patterns for 79 languages loaded. (/home/norbert/tl/2014/texmf-dist/tex/latex/base/article.cls Document Class: article 2007/10/19 v1.4h Standard LaTeX document class (/home/norbert/tl/2014/texmf-dist/tex/latex/base/size10.clo)) (/home/norbert/tl/2014/texmf-dist/tex/latex/cjk/texinput/CJKutf8.sty ... t/fonts/type1/wadalab/dmj/dmjkk.pfb></home/norbert/tl/2014/texmf-dist/fonts/typ e1/wadalab/dmj/dmjsy.pfb> Output written on hello-cjk.pdf (1 page, 29574 bytes). Transcript written on hello-cjk.log.

如果你仔細觀察的話,你會發(fā)現(xiàn):LaTeX 幾個字母后的空距和之前的輸出不大一樣。盡管代碼看起來有些麻煩,不過,如果你只是想在非日文的文檔里嵌入一小段日文,這仍然是個不錯的方案。

譯者注:實際上,用下面的代碼,也能得到正確的 CJK-western 空距。這應該是原作者不熟悉 CJK 導致的。

demo
1 2 3 4 5 6 7 8 \documentclass{article} \usepackage{CJKutf8} \usepackage{CJKspace} \begin{document} \begin{CJK*}{UTF8}{min} \LaTeX{} で日本語を書きましょう! \end{CJK*} \end{document}

BXcjkjatype

如果上面的代碼看起來十分冗長,那么 BXcjkjatype 則提供了一種更簡潔也更好的封裝。這里只需要用下面簡單的代碼就能得到輸出了:

demo
1 2 3 4 5 \documentclass{article} \usepackage[whole]{bxcjkjatype} \begin{document} \LaTeX で日本語を書きましょう! \end{document}

輸出結(jié)果和之前 CJK 方式的結(jié)果類似。不過,嵌入的字體和之前有所不同。BXcjkjatype 默認使用 IPAex 字體。使用此方式請注意:不要在文檔中使用任何非 ASCII 字符。

LuaLaTeX

LuaTeX 是一個嵌入了 Lua 解釋器的新的 TeX 引擎,這使得我們可以使用 Lua 語言來控制和調(diào)整許多 TeX 內(nèi)部的行為。盡管它還不能完全取代 pdfTeX,但是至少拿來輸出文檔還是可以的。一些日本 TeX 同好為其開發(fā)了?LuaTeX-ja宏包,用以在 LuaTeX 里使用日文。最簡示例是這樣的:

demo
1 2 3 4 5 \documentclass{article} \usepackage{luatexja} \begin{document} \LaTeX で日本語を書きましょう! \end{document}

運行?lualatex?之后,你可能要等上不少時間。這是因為第一次運行 LuaLaTeX 的時候,系統(tǒng)需要刷新字體,耐心等待就好。最終在控制臺終端上,你大概會得到下面的輸出內(nèi)容:

demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 $ lualatex hello-luatexja.tex This is LuaTeX, Version beta-0.79.1 (TeX Live 2014) (rev 4971) restricted \write18 enabled. (./hello-luatexja.tex LaTeX2e <2014/05/01> Babel <3.9k> and hyphenation patterns for 79 languages loaded. (/home/norbert/tl/2014/texmf-dist/tex/latex/base/article.cls Document Class: article 2007/10/19 v1.4h Standard LaTeX document class (/home/norbert/tl/2014/texmf-dist/tex/latex/base/size10.clo)) (/home/norbert/tl/2014/texmf-dist/tex/luatex/luatexja/luatexja.sty ... 1923 words of node memory still in use: 6 hlist, 1 vlist, 3 rule, 3 glue, 10 kern, 1 glyph, 241 attribute, 299 glue_s pec, 16 attribute_list, 1 write nodes avail lists: 1:1,2:888,3:5,4:40,5:4,6:25,7:3,9:12 <</home/norbert/tl/2014/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb><</h ome/norbert/tl/2014/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb> Output written on hello-luatexja.pdf (1 page, 17058 bytes). Transcript written on hello-luatexja.log.

輸出結(jié)果同樣取決于你系統(tǒng)里的默認字體,但和之前的截圖應該差不多。

總結(jié)

文章介紹了在不同 TeX 引擎和宏包下的最簡日文示例。如果你能夠運行這些示例,那么更復雜的文檔你也應該能夠運行,你的 TeX 系統(tǒng)完全可以進行日文排版。

不過,仍然還有不少問題需要討論。比如:字體選擇,插圖,多語種混排以及非 ASCII 字符的使用。這些我們之后再討論。

譯者續(xù)

在 pdfLaTeX 編譯的情況下,還有一種排版 CJK 文字的方法。可以使用劉海洋前輩的?zhmCJK?宏包。這個宏包因為一些原因暫時沒有收錄到 TeX Live 中,不過,這系列文章的作者正好是 TeX Live 的開發(fā)者之一,我最近正在和他溝通這件事情。

zhmCJK 宏包提供了類似于 xeCJK 宏包的接口,相應的功能也完全類似。因此可以看做是不能使用 XeLaTeX 而必須使用 pdfLaTeX 的情況下的一個替代。對應于文章中 xeCJK 的例子,最簡示例是:

demo
1 2 3 4 5 6 \documentclass{article} \usepackage{zhmCJK} \setCJKmainfont{ipaexm.ttf} \begin{document} \LaTeX{} で日本語を書きましょう! \end{document}

LaTeX 新手可以將宏包內(nèi)的文件解壓,釋放到和你的?.tex?文件同目錄下;有經(jīng)驗的 LaTeX 使用者,可以按照宏包文檔,將宏包文件放在 TEXMF 中的合適位置,然后刷新 TeX 系統(tǒng)。

另外,正如劉海洋前輩和李清前輩(他們是當前 xeCJK 宏包的維護者)所言,xeCJK 雖然取名如此,但實際上只是對中文的支持比較完善。因此用 xeCJK 來排版日文在細節(jié)上還是會有一些問題的,特別是對日文排版規(guī)則的處理。此外,原作者提到的 ZXjatype 宏包,實際上是在 xeCJK 基礎(chǔ)上再開發(fā)的結(jié)果。由于 xeCJK 的局限,ZXjatype 也不可避免地會有一些問題。


from:?http://liam0205.me/2014/12/11/ptex-intro-and-tutorial-03/

總結(jié)

以上是生活随笔為你收集整理的日文 LaTeX 系统介绍 - 最简示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。