Open27

TeXの覚え書き

津茶利休津茶利休

\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移植と解説書はとても役立つ!
https://github.com/minoki/implementing-tex-lang-code
https://lab.miz-ar.info/implementing-tex-lang/
「Haskell プログラムとして動作させても、疑似コードとして読んで他の言語に移植しても構いません。」3頁
夢が広がる✨
注意点は\afterassignment などがない
でも十分使えそう!

津茶利休津茶利休

@mod_poppo さんのTeX言語Haskell版は、TeX言語への理解のみならず、TeX言語処理器として実用的にも使えそうだと思っている。
例えばHaskellからWASM構築すればウェブ上でもTeX言語できて面白そう。

津茶利休津茶利休

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

津茶利休津茶利休

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

津茶利休津茶利休

plainTeXで使える\cfrac (連分数)

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

津茶利休津茶利休

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

津茶利休津茶利休

促音拗音の連続が詰まる日本語TeXがあり、これはアスキー版⽇本語TeXのjfmに由来する仕様だが、正しくは詰めない方がよいとされる。
参考文献:藤田眞作『LaTeX本づくりの八衢』67頁

https://x.com/ttylys/status/1978159164204388701

luatexja, BXjscls, uplatex + ujarticle など(あまり正しく把握していないので適当に書いている)の最近の日本語 TeX 環境では、詰めずに正しく組まれるような気がするけれど、どの環境かで、詰まってしまうのかも知れない。

津茶利休津茶利休

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

https://x.com/doraTeX/status/1978728934163300697

platex でも jsarticle.cls を使う場合は促音拗音の連続は詰まったりしないそうです。

津茶利休津茶利休

fontspecで場所指定で書体を使う例
{\fontspec[Path = ./場所/]{書体.ttf}あいうえお}
LuaLaTeXやXeLaTeXで使える

津茶利休津茶利休

\discretionary{\rlap{。}}{}{。}のようにすると、ぶら下げできるみたいだ。
この間ひらいた本がぶら下げベタ組みで、この組み方も美しいなと思った。

%xetex
\font\ミン十="IPAexMincho" at 10pt\ミン十
\def\閉{\penalty0}%または\hskip0emなど
\parindent=0pt\hsize=50pt
あ\閉糊 い\閉糊 う\閉糊 え\閉糊 お\discretionary{\rlap{}}{}{}\閉糊 か\閉糊 菊\閉糊 け\閉糊 こ\discretionary{\rlap{}}{}{}\閉糊 さ\閉糊 し\閉糊 す\閉糊 せ\閉糊 そ\閉糊 さ\閉糊 し\閉糊 す\閉糊 せ\閉糊 そ
\bye
津茶利休津茶利休

または、\rlap{。}\hskip10pt\penalty0などか。ただし段落末は\penalty0無しか。
難しい。

津茶利休津茶利休

9 個を超える引数を取る命令を定義する方法
https://ctan.org/pkg/xargs
https://texfaq-org.translate.goog/FAQ-moren9?_x_tr_sl=auto&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp

https://tex-stackexchange-com.translate.goog/questions/2132/how-to-define-a-command-that-takes-more-than-9-arguments?_x_tr_sl=auto&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp
転載:stackexchangeのユーザー10274さんによる命令

\documentclass{article}

\def\NineteenArgs#1#2#3#4#5#6#7#8#9{%
    \def\ArgsTenAndFurther##1##2##3##4##5##6##7##8##9{%
        \def\ArgNineteen####1{%
            ####1##9##8##7##6##5##4##3##2##1#9#8#7#6#5#4#3#2#1%
        }%
        \ArgNineteen%
    }%
    \ArgsTenAndFurther%
}

\begin{document}
                 %1234567890123456789
    \NineteenArgs abcdefghijklmnopqrs
\end{document}
津茶利休津茶利休

ConTeXtでよく使われる\startナントカ \stopナントカ という命令の使い方は、とても理にかなっている気がしてきた。
{}を必要としないので字類番号(catcode)を複雑にしなくて済む。
{}を文字として直接入力する環境に移行しやすい書き方なんだ。

津茶利休津茶利休

あれ、pdfcrop って pdftexに依存しているんだね。

PDFCROP 1.42, 2023/04/15
Can't exec "pdftex": No such file or directory at /nix/store...

scheme-infraonly では pdfcrop pdftex としよう。