TeXの覚え書き

BusyTeXすごい!
https://busytex.github.io/
SwiftLaTeXも良かったけど、これにはLuaTeXもあって将来性がありそう。
書体もアップロードから自分のものを使える。
画像はBusyTex上のXeLaTeX。

組版規則
日本産業規格 「日本語文書の組版方法」JIS X 4051
日本語組版規則の基準となるもので、「日本語組版処理の要件」でも参照されている。
もちろん、規格とは利便性のための標準であって、目的に応じて自由に組んで良い。
つまり実際の組版規則は各出版社や各著者ごとにある。
「日本語組版処理の要件」
https://www.w3.org/TR/2012/NOTE-jlreq-20120403/ja/
これは、組版の仕組みを作る人が読む技術要件で、組版規則ではない。

\afterasignment
\器 あいう\終
あ\器 いう\終
あい\器 う\終
あいう\器\終
あいう
こんなふうに字句(トークン)を一つずつ処理する自動器(オートマトン)を作る時、寸法がじゃまになる。
\器 あい\hskip10ptう\終
こういう時\afterasignment が使えるのかも。
ひとまず深入りはやめておこう・・・

「3匹の小TeX」の構想
TeXは一回の処理で多くの役割をこなす。
これは大きすぎて扱いづらいので、TeXを3回に分けて使うことにしよう。
・開TeXまたは展TeX
命令を展開した.texを出力
実現器:テコテフなど
・行TeX(未開発・未着手)
\break (改行命令)を入れた.texを出力
TeXの記録を解析すれば分かるはず。記録では動的計画法による行分割の候補位置が見れる。
・組TeX
PDFやDVIなどを出力
これをすれば、下線や割注がよい方法で出来るかも。
縦組みや2段組でのぶら下げ組などもより易しくうまく出来るかも。
そのうち自分が作るかもしれないけど誰かが作ってくれても嬉しい。

kpsewhichが古いフォルダを探してしまう
warning: kpathsea: configuration file texmf.cnf not found in these directories: /usr/local/texlive/2022/bin/universal-darwin:......
原因
brewのdvisvgmが干渉している
which kpsewhich
/usr/local/dvisvgm/bin/kpsewhich
解決法
sudo mv /usr/local/dvisvgm/bin/kpsewhich /usr/local/dvisvgm/bin/kpsewhich.bak
解決
which kpsewhich
/Library/TeX/texbin/kpsewhich

@mod_poppo さんのTeX言語Haskell移植と解説書はとても役立つ!
夢が広がる✨
注意点は\afterassignment などがない
でも十分使えそう!

TeXLiveのminimalスキームがあるのに気づかずいつもbasicを使っていた。
minimalなら最小限の構成にできていい感じ。
ほとんど使わないものがたくさん詰まって導入に半日もかかるフルスキームは誰にもおすすめできない。
#テフライブ !

MiKTeXは、最小構成のTeX環境という思想的に優れたTeX配布体。
ただし今のところインテル用で、アップルシリコン機ではロゼッタ2が要る。ロゼッタ2が廃止となる2026年以降がやや心配。

tlenvが有ったんだ!やっぱりみんな考えることは同じ。
Nix、TeXLiveの運べる導入、tlenv。好みに応じて、どれもいい感じだ。
〇〇env系ツールtlenvでTeX Liveもインストールしてみた https://qiita.com/munepi/items/d632745f4fa311ecbde5 #Qiita @munepixyzより

plainTeXで使える\cfrac (連分数)
\def\cfrac#1#2{{\strut#1\over\displaystyle#2}}
(TeXブック(日本語版)199頁を参考に命令化したもの)

\pdfsaveposを使った線の行分割(デイビッドカーライルさん作)
各文字や糊に引くのではなく、組んだ後に\rlap,\llapで一気に引く。
2回処理が必要だけど、線の引き方としてはある意味最も正しい。
3行以上には非対応(手動なら\vadjust{\vskip1pt\hrule}とか)

miniltx は graphics-pln に入っている。
なぜか miniltx は tlmgr で入れられないが、graphics-pln を入れれば良い。

tikzなどの図も、表も、(時には数式も、)TeX文書内に直接書くのではなく、ページ番号無しの単体TeX文書にしてpdfcrop(やstandalone文書類)で独立したpdfにしておいたほうがいい。TeX文書ではpdfを図として読み込む。
そのほうが他の媒体で再利用しやすい。
依存関係も整理できる。

促音拗音の連続が詰まる日本語TeXがあり、これはアスキー版⽇本語TeXのjfmに由来する仕様だが、正しくは詰めない方がよいとされる。
参考文献:藤田眞作『LaTeX本づくりの八衢』67頁
luatexja, BXjscls, uplatex + ujarticle など(あまり正しく把握していないので適当に書いている)の最近の日本語 TeX 環境では、詰めずに正しく組まれるような気がするけれど、どの環境かで、詰まってしまうのかも知れない。

zrさんが教えてくれて、platex の文書類型(docmentclass)環境では今でも古い仕組みが使われて詰まった出力になるようです。
(https://x.com/zr_tex8r/status/1978446375839801422)
(https://x.com/zr_tex8r/status/1978447932555673669)
p(la)texは古すぎるようなので、少なくともup(la)tex、またはその他に移行するのが良さそうです。

Yusuke Terada さんが教えてくれて、platex で jarticle.cls を使った場合にの現象だと分かりました。
jarticle.cls で呼び出される min10.tfm の設計によるそうです。
文書類型なども詳しく分かってよかったです。
platex でも jsarticle.cls を使う場合は促音拗音の連続は詰まったりしないそうです。