Debian 9 (strech)の時、TeX 第一歩を書いた。
1年以上放置していたので、忘れているし、定番の利用方法も代わっているかもしれない。とりあえず、Debian10(buster)に用意されているバージョンのtexliveで、これと同様なところまでできることを確認する。
adachi@fumita:~/work$ cat test.tex \documentclass{article} \begin{document} Hello, \TeX! \[ \int dx = x + C. \] \end{document}
platexの実行
adachi@fumita:~/work$ platex test.tex This is e-pTeX, Version 3.14159265-p3.8.1-180901-2.6 (utf8.euc) (TeX Live 2019/dev/Debian) (preloaded format=platex) restricted \write18 enabled. entering extended mode (./test.tex pLaTeX2e <2018-12-01> (based on LaTeX2e <2018-12-01>) (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (./test.aux) [1] (./test.aux) ) Output written on test.dvi (1 page, 380 bytes). Transcript written on test.log.
dviの生成
adachi@fumita:~/work$ ll test.* -rw-r--r-- 1 adachi adachi 8 10月 13 20:58 test.aux -rw-r--r-- 1 adachi adachi 380 10月 13 20:58 test.dvi -rw-r--r-- 1 adachi adachi 2430 10月 13 20:58 test.log -rw-r--r-- 1 adachi adachi 92 6月 24 16:02 test.tex adachi@fumita:~/work$ dvipdfm test test -> test.pdf [1] 5292 bytes written adachi@fumita:~/work$ ll test.* -rw-r--r-- 1 adachi adachi 8 10月 13 20:58 test.aux -rw-r--r-- 1 adachi adachi 380 10月 13 20:58 test.dvi -rw-r--r-- 1 adachi adachi 2430 10月 13 20:58 test.log -rw-r--r-- 1 adachi adachi 5292 10月 13 21:00 test.pdf adachi@fumita:~/work$ tex -version TeX 3.14159265 (TeX Live 2019/dev/Debian) kpathsea version 6.3.1/dev Copyright 2018 D.E. Knuth. There is NO warranty. Redistribution of this software is covered by the terms of both the TeX copyright and the Lesser GNU General Public License. For more information about these matters, see the file named COPYING and the TeX source. Primary author of TeX: D.E. Knuth.
出来上がったpdfも同じなので、2018年の画像を再掲します。
Evinceによる表示の一部をキャプチャしたものです。(大部分が白紙なので一部の紹介にします...)
思いつきで、texで終わるコマンドを探したら、シンボリックリンクになっているものも多いことを発見。
adachi@fumita:~/work$ ll /usr/bin |grep 'tex$' lrwxrwxrwx 1 root root 6 4月 18 2019 amstex -> pdftex -rwxr-xr-x 1 root root 1216 9月 26 2017 bg5+latex -rwxr-xr-x 1 root root 1222 9月 26 2017 bg5+pdflatex -rwxr-xr-x 1 root root 1216 9月 26 2017 bg5latex -rwxr-xr-x 1 root root 1222 9月 26 2017 bg5pdflatex lrwxrwxrwx 1 root root 24 5月 9 16:23 bibtex -> /etc/alternatives/bibtex -rwxr-xr-x 1 root root 1217 9月 26 2017 cef5latex -rwxr-xr-x 1 root root 1223 9月 26 2017 cef5pdflatex -rwxr-xr-x 1 root root 1216 9月 26 2017 ceflatex -rwxr-xr-x 1 root root 1222 9月 26 2017 cefpdflatex -rwxr-xr-x 1 root root 1217 9月 26 2017 cefslatex -rwxr-xr-x 1 root root 1220 9月 26 2017 cefspdflatex -rwxr-xr-x 1 root root 59728 12月 18 2018 detex -rwxr-xr-x 1 root root 18385 2月 28 2019 dh_installtex lrwxrwxrwx 1 root root 6 3月 2 2019 dvilualatex -> luatex lrwxrwxrwx 1 root root 6 3月 2 2019 dviluatex -> luatex -rwxr-xr-x 1 root root 480104 12月 18 2018 eptex lrwxrwxrwx 1 root root 6 12月 18 2018 etex -> pdftex -rwxr-xr-x 1 root root 494904 12月 18 2018 euptex lrwxrwxrwx 1 root root 53 4月 18 2019 exceltex -> ../share/texlive/texmf-dist/scripts/exceltex/exceltex -rwxr-xr-x 1 root root 1505 1月 8 2020 fig2ps2tex lrwxrwxrwx 1 root root 55 3月 2 2019 fig4latex -> ../share/texlive/texmf-dist/scripts/fig4latex/fig4latex -rwxr-xr-x 1 root root 1216 9月 26 2017 gbklatex -rwxr-xr-x 1 root root 1222 9月 26 2017 gbkpdflatex lrwxrwxrwx 1 root root 3 12月 18 2018 initex -> tex lrwxrwxrwx 1 root root 6 3月 2 2019 latex -> pdftex -rwxr-xr-x 1 root root 8294200 12月 18 2018 luajittex lrwxrwxrwx 1 root root 6 3月 2 2019 lualatex -> luatex -rwxr-xr-x 1 root root 8404728 12月 18 2018 luatex -rwxr-xr-x 1 root root 117392 12月 18 2018 pbibtex lrwxrwxrwx 1 root root 6 12月 18 2018 pdfetex -> pdftex lrwxrwxrwx 1 root root 6 3月 2 2019 pdflatex -> pdftex -rwxr-xr-x 1 root root 2190232 12月 18 2018 pdftex lrwxrwxrwx 1 root root 5 3月 2 2019 platex -> eptex -rwxr-xr-x 1 root root 406248 12月 18 2018 ptex lrwxrwxrwx 1 root root 55 3月 2 2019 simpdftex -> ../share/texlive/texmf-dist/scripts/simpdftex/simpdftex -rwxr-xr-x 1 root root 1217 9月 26 2017 sjislatex -rwxr-xr-x 1 root root 1220 9月 26 2017 sjispdflatex -rwxr-xr-x 1 root root 35280 12月 18 2018 synctex -rwxr-xr-x 1 root root 348488 12月 18 2018 tex lrwxrwxrwx 1 root root 6 12月 18 2018 texlua -> luatex lrwxrwxrwx 1 root root 6 12月 18 2018 texluac -> luatex lrwxrwxrwx 1 root root 9 12月 18 2018 texluajit -> luajittex lrwxrwxrwx 1 root root 9 12月 18 2018 texluajitc -> luajittex -rwxr-xr-x 1 root root 12581 12月 18 2018 tpic2pdftex -rwxr-xr-x 1 root root 119920 12月 18 2018 upbibtex lrwxrwxrwx 1 root root 6 3月 2 2019 uplatex -> euptex -rwxr-xr-x 1 root root 408728 12月 18 2018 uptex lrwxrwxrwx 1 root root 5 3月 2 2019 xelatex -> xetex -rwxr-xr-x 1 root root 2653304 12月 18 2018 xetex
先程使ったplatexがeptexへのシンボリックリンクだった。platexとeptexがe-pTeXを呼び出しているイメージを持っていたが違った。でも、起動コマンド名で動作を変更しているらしく、platex test.tex の代わりにeptex test.tex とすると"Undefined control sequence."と言われる。
command | s-link | bytes |
---|---|---|
tex | initex | 348488 |
pdftex | latex amstex etex pdfetex pdflatex | 2190232 |
ptex | 406248 | |
eptex | platex | 480104 |
uptex | 408728 | |
euptex | uplatex | 494904 |
xetex | xelatex | 2653304 |
luatex | dvilualatex dviluatex lualatex texlua texluac | 8404728 |
luajittex | texluajit texluajitc | 8294200 |
TeX 第一歩を踏襲して、platexを試す。documentclass{jarticle}とする。
adachi@fumita:~/work$ cat test2.tex \documentclass{jarticle} \begin{document} コンピュータ分野で1024バイトを1キロバイトという習慣があるのは知っている。 しかし、キロが10$^3$であることをさしおいて教科書に記述することではない。 教科書によっては普通は$10^3$であることを説明していないものすらある。これはまずい。 国際単位系に基づき1000倍ごとに接頭語が決められているとをまずきちんと説明すべきことだと思う。 \end{document}
今回もplatexで
adachi@fumita:~/work$ platex test2.tex This is e-pTeX, Version 3.14159265-p3.8.1-180901-2.6 (utf8.euc) (TeX Live 2019/dev/Debian) (preloaded format=platex) restricted \write18 enabled. entering extended mode (./test2.tex pLaTeX2e <2018-12-01> (based on LaTeX2e <2018-12-01>) (/usr/share/texlive/texmf-dist/tex/platex/base/jarticle.cls Document Class: jarticle 2018/10/25 v1.8a Standard pLaTeX class (/usr/share/texlive/texmf-dist/tex/platex/base/jsize10.clo)) (./test2.aux) [1] (./test2.aux) ) Output written on test2.dvi (1 page, 1008 bytes). Transcript written on test2.log.
pdf化して
adachi@fumita:~/work$ dvipdfm test2.dvi test2.dvi -> test2.pdf [1] 3687 bytes written
結果は同じに見えるので、前回の図を貼っておく
\documentclass{jsarticle} にした場合も同様。busterのファイルマネージャ(Nautilus)では正常にプレビューされるようになった。
platexではunicode文字に対処できない。①ですでにerrorになる。
unicode対応のuplatexを使う。
adachi@fumita:~/work$ cat test4.tex \documentclass[uplatex]{jsarticle} \begin{document} コンピュータ分野で1024バイトを1キロバイトという習慣があるのは知っている。 しかし、キロが10$^3$であることをさしおいて教科書に記述することではない。 教科書によっては普通は$10^3$であることを説明していないものすらある。これはまずい。 国際単位系に基づき1000倍ごとに接頭語が決められているとをまずきちんと説明すべきことだと思う。\\ ■(1)JIS X 0213:2004で例示字形が変更されたものの例\\ U+845B:[葛] ヒか人か\\ U+914B:[酋] ツノか八か\\ ■(2)JIS X 0213で追加された(JISX0208にない)文字の例\\ U+2460:[①] 丸に1\\ U+24D0:[ⓐ] 丸にa\\ U+5721:[圡] 土の横線の間に点\\ U+9DD7:[鷗] 品 1983以降のJISX0208になく0213に存在\\ U+9D0E:[鴎] メ 1983以降のJISX0208ではこれ\\ ■(3)JIS X 0213で追加され、unicodeでサロゲートペアを使う文字の例\\ U+2000B:[𠀋] 丈の上に点\\ U+2123D:[𡈽] 土の上に点\\ ■(4)JIS X 0213にはなく、unicodeでサロゲートペアを使う文字の例\\ U+20BB7:[𠮷] 土吉 \end{document}
uplatexで
adachi@fumita:~/work$ uplatex test4.tex This is e-upTeX, Version 3.14159265-p3.8.1-u1.23-180901-2.6 (utf8.uptex) (TeX Live 2019/dev/Debian) (preloaded format=uplatex) restricted \write18 enabled. entering extended mode (./test4.tex pLaTeX2e <2018-12-01u02> (based on LaTeX2e <2018-12-01>) (/usr/share/texlive/texmf-dist/tex/platex/jsclasses/jsarticle.cls Document Class: jsarticle 2018/12/11 jsclasses (okumura, texjporg) (/usr/share/texlive/texmf-dist/tex/platex/jsclasses/jslogo.sty)) (./test4.aux) [1] (./test4.aux) ) Output written on test4.dvi (1 page, 1820 bytes). Transcript written on test4.log.
dviからpdfにするコマンドもシンボリックリンクを調べて
adachi@fumita:~/work$ ll /usr/bin/ |grep dvipdf -rwxr-xr-x 1 root root 1023 8月 25 00:03 dvipdf lrwxrwxrwx 1 root root 9 12月 18 2018 dvipdfm -> xdvipdfmx lrwxrwxrwx 1 root root 9 12月 18 2018 dvipdfmx -> xdvipdfmx -rwxr-xr-x 1 root root 2688 12月 18 2018 dvipdft lrwxrwxrwx 1 root root 9 12月 18 2018 ebb -> xdvipdfmx lrwxrwxrwx 1 root root 9 12月 18 2018 extractbb -> xdvipdfmx -rwxr-xr-x 1 root root 779296 12月 18 2018 xdvipdfmx
dvipdfmもdvipdfmxもxdvipdfmxにリンクされている。起動コマンドを見ているようだが、どれを使ってもできるものは同じ様子。
adachi@fumita:~/work$ dvipdfm test4.dvi test4.dvi -> test4.pdf [1 xdvipdfmx:warning: CMap has higher supplement number than CIDFont: Ryumin-Light xdvipdfmx:warning: Some chracters may not be displayed or printed. ] 7444 bytes written adachi@fumita:~/work$ dvipdfmx test4.dvi test4.dvi -> test4.pdf [1 dvipdfmx:warning: CMap has higher supplement number than CIDFont: Ryumin-Light dvipdfmx:warning: Some chracters may not be displayed or printed. ] 7445 bytes written
表示できない文字が出るのは想定済み。
前回に比べて、土吉が出るようになった。後で一覧にする。
もう一つの方法、lualatexを試す。
documentclassを書き換えるだけ。
uplatex | \documentclass[uplatex]{jsarticle} |
lualatex | \documentclass{ltjsarticle} |
lualatex だけでpdfの生成までやってくれるが、端末上のログは多い。ファイルも30倍近くになる。
adachi@fumita:~/work$ lualatex test5.tex This is LuaTeX, Version 1.07.0 (TeX Live 2019/dev/Debian) restricted system commands enabled. (./test5.tex LaTeX2e <2018-12-01> luaotfload | main : initialization completed in 0.072 seconds (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls Document Class: ltjsarticle 2018/10/08 ltjsclasses (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/luatexja.sty (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/luatexja-core.sty (/usr/share/texlive/texmf-dist/tex/luatex/luatexbase/luatexbase.sty (/usr/share/texlive/texmf-dist/tex/luatex/ctablestack/ctablestack.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty)) (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/atbegshi.sty) (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) (/usr/share/texlive/texmf-dist/tex/latex/everyhook/everyhook.sty (/usr/share/texlive/texmf-dist/tex/latex/svn-prov/svn-prov.sty))(load cache: /h ome/adachi/.texlive2018/texmf-var/luatexja/ltj-cid-auto-adobe-japan1.luc) (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/ltj-base.sty) (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/ltj-latex.sty (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty (/usr/share/texlive/texmf-dist/tex/latex/base/tuenc.def) (/usr/share/texlive/texmf-dist/tex/latex/ms/everysel.sty) ABD: EverySelectfont initializing macros) (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua)(load cache: / home/adachi/.texlive2018/texmf-var/luatexja/extra_ipaexmincho.luc) (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua)) (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty) (/usr/share/texlive/texmf-dist/tex/latex/filehook/filehook.sty) (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty)) ) (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty(load c ache: /home/adachi/.texlive2018/texmf-var/luatexja/ltj-jisx0208.luc))) (/usr/share/texlive/texmf-dist/tex/platex/jsclasses/jslogo.sty) (/usr/share/texlive/texmf-dist/tex/latex/sttools/stfloats.sty) (/usr/share/texlive/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty)) (./test5.aux) ABD: EverySelectfont initializing macros [1{/var/lib/texmf/fonts /map/pdftex/updmap/pdftex.map}] (./test5.aux)) (see the transcript file for additional information) 4262 words of node memory still in use: 6 hlist, 1 vlist, 4 rule, 4 glue, 59 kern, 1 glyph, 1515 attribute, 106 glue _spec, 86 attribute_list, 1 write, 9 user_defined nodes avail lists: 1:6,2:21206,3:152,4:75,5:19,6:4,7:1778,8:548,9:102,10:9,11:4 Output written on test5.pdf (1 page, 208412 bytes). Transcript written on test5.log.
Unicodeに対応するには前回同様、uplatexかlualatexかという所でしょう。
TeX 第一歩と結果はほぼ同じなので、画像は省略して結果を表にします。
この文書はUnicodeの中でも特に問題の起きそうなものを種類別したものです。
文字の種類 | code | 文字 | 注意点 | uplatex | lualatex |
---|---|---|---|---|---|
(1)字形変更 | U+845B | [葛] | ヒか人か | ヒ | 人 |
U+914B | [酋] | ツノか八か | ツノ | 八 | |
(2)0213追加 (U+9D0E以外) |
U+2460 | [①] | 丸に1 | OK | OK |
U+24D0 | [ⓐ] | 丸にa | OK | OK | |
U+5721 | [圡] | 土の横線の間に点 | × | OK | |
U+9DD7 | [鷗] | 品 1983以降のJISX0208になく0213に追加 | OK | OK | |
U+9D0E | [鴎] | メ 1983以降のJISX0208ではこれ | OK | OK | |
(3)サロゲートペア | U+2000B | [𠀋] | 丈の上に点 | × | OK |
U+2123D | [𡈽] | 土の上に点 | × | OK | |
(4)0213にはない | U+20BB7 | [𠮷] | 土吉 | OK | × |
システムの持っているフォントに全部のグリフが含まれているかも関係しそうなので、texだけの問題ではない可能性もあります。
uplatexはJIS X 0208 に拡張文字を加えたものをUnicodeを使って正しく表示したもののように見えます。
lualatexはJIS X 0213 に律儀に対応したものと言えそうです。
よくわからないまま、調査結果を晒しておきます。
ファイルの大きさを確認します。test4がuplatex、test5がlualatexです。
-rw-r--r-- 1 adachi adachi 7447 10月 14 13:23 test4.pdf -rw-r--r-- 1 adachi adachi 208412 10月 14 15:40 test5.pdf
フォントの埋め込みを調査しておきます。uplatexではdviからpdfを作るときに埋め込みをするので、基本的にはなにもしていないはずです。
adachi@fumita:~/work$ pdffonts test4.pdf name type encoding emb sub uni object ID ------------------------------------ ----------------- ---------------- --- --- --- --------- Ryumin-Light-Identity-H CID Type 0 Identity-H no no no 5 0 XHNFSU+CMR10 Type 1C Builtin yes yes yes 6 0 MIIQFG+CMR7 Type 1C Builtin yes yes yes 7 0
lualatexではpdfまで一気に作るので、内部的に何かをしている可能性が高いです。
adachi@fumita:~/work$ pdffonts test5.pdf name type encoding emb sub uni object ID ------------------------------------ ----------------- ---------------- --- --- --- --------- AVWIDQ+IPAexMincho CID TrueType Identity-H yes yes yes 4 0 VFCWIE+LMRoman10-Regular CID Type 0C Identity-H yes yes yes 5 0 BYQNWU+CMR7 Type 1 Builtin yes yes no 6 0 ZTFRYM+CMR10 Type 1 Builtin yes yes no 7 0