というわけで、今年もあの季節🌸がやってきました!
ところで皆さん💁
— 某ZR(ざんねん🙃) (@zr_tex8r) 2024年3月30日
そろそろ某組版用言語🤮の季節になってきましたね🌸#TeX #TeX言語 #春のTeX言語キャンペーン pic.twitter.com/wGlKFwyV83
キャンペーンと関係あるのかどうかは不明ですが、どうやらTeX言語🤮のトッテモ有用な記事が公開されているようです😃
ブログ更新。完全展開可能な文字列一致判定について。https://t.co/PWU0bF8ywC
— Yusuke Terada (@doraTeX) 2024年4月5日
というわけで、自分も何か記事を書こうと思い立ちました🙂
せっかくの#春のTeX言語キャンペーン
— 某ZR(ざんねん🙃) (@zr_tex8r) 2024年4月5日
なんだから自分も何かTeX言語🤮の記事を書きたいけど、何かいい題材はないかな🤔#TeX #TeX言語
さっそく、「TeXでつくるLLM」というお題が降ってきました😊
さっそく取り組むことにしましょう。
TeXでLLMする方針について
“LLM”のような頭字語について考える際に重要になるのが「“元の語形”をどう設定するか」です。
TLSって何だっけ?
— 某ZR(ざんねん🙃) (@zr_tex8r) 2017年3月15日
TeX Language Snowman の略、かな? #違う #違う #違う
“元の語形”を適切に設定できれば、あとはscsnowmanやtikzducksなどのパッケージを活用して素敵な文書(画像)を生成すればネタ⛄🦆が完成します。
TeXでLLMできない問題について
しかし、“LLM”については重大な問題があります。
“LLM”には“S”も“D”も含まれない😢
困りました😢 しかし、TeXのエコシステムにはscsnowmanやtikzducks以外にも有用なパッケージがイロイロ存在するはずです。tikzlingsの目次を見てみましょう。
“M”はいるけど“L”がいない😭
※marmot(マーモット)、mouse(ネズミ)、mole(モグラ)が“M”から始まる。
絶望的な状況になってしまいました😭
……あっ!😲
……これでいきましょう!🙃
LLM = Leg-Lifting Mouse
TeXでLLMする実装について
方針が決まったので、やってみました。
% 以下のコマンドで処理する % tcspingif -e pdflatex -t 4 texllm.tex \documentclass{standalone} \usepackage{tikz,tikzlings-mice} \usepackage{ifthen} \pgfmathsetmacro{\vC}{\the\faStopTicks} \newcommand*{\cDrawMice}[1]{% \node at (120,135) {\tikz[scale=80,xscale=-1]{\mouse[#1]}}; \node at (360,135) {\tikz[scale=80]{\mouse[#1]}}; } \begin{document} \begin{tikzpicture}[x=1bp, y=1bp] \fill[red!75!blue!20, use as bounding box] (0,0) rectangle (480,270); \ifthenelse{\vC=1}{% \cDrawMice{leftstep} }{\ifthenelse{\vC=3}{% \cDrawMice{rightstep} }{%else (\vC=0, 2) \cDrawMice{}{} }} \end{tikzpicture} \end{document}
このTeXソースをtcspingifを用いてGIFアニメ画像に変換します。
tcspingif -e pdflatex -t 4 texllm.tex
めでたしめでたし😊
まとめ
*「このネタだとLaTeX😊をフツーに使っただけでTeX言語🤮要素がないじゃん」
ZR「しまった😲」
【ゆる募】お題#TeX #TeX言語 #春のTeX言語キャンペーン
— 某ZR(ざんねん🙃) (@zr_tex8r) 2024年4月6日
※フツーの分量の記事1本で書けるやつ https://t.co/SQ7lkz7RwW
というわけで、引き続きお題募集中です🙃