マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

TeXでつくるLLM

というわけで、今年もあの季節🌸がやってきました!

キャンペーンと関係あるのかどうかは不明ですが、どうやらTeX言語🤮のトッテモ有用な記事が公開されているようです😃

というわけで、自分も何か記事を書こうと思い立ちました🙂

さっそく、TeXでつくるLLM」というお題が降ってきました😊

bsky.app

さっそく取り組むことにしましょう。

TeXでLLMする方針について

“LLM”のような頭字語について考える際に重要になるのが「“元の語形”をどう設定するか」です。

“元の語形”を適切に設定できれば、あとはscsnowmanやtikzducksなどのパッケージを活用して素敵な文書(画像)を生成すればネタ⛄🦆が完成します。

TeXでLLMできない問題について

しかし、“LLM”については重大な問題があります。

“LLM”には“S”も“D”も含まれない😢

困りました😢 しかし、TeXのエコシステムにはscsnowmanやtikzducks以外にも有用なパッケージがイロイロ存在するはずです。tikzlingsの目次を見てみましょう。

tikzlingsパッケージの目次(or キャラクタ一覧🙃)

“M”はいるけど“L”がいない😭

※marmot(マーモット)、mouse(ネズミ)、mole(モグラ)が“M”から始まる。

絶望的な状況になってしまいました😭

……あっ!😲

“Mouse”の機能説明から抜粋

……これでいきましょう!🙃

LLM = Leg-Lifting Mouse

TeXでLLMする実装について

方針が決まったので、やってみました。

[texllm.tex]
% 以下のコマンドで処理する
% 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

出力結果のGIF画像🐭🐭
めでたしめでたし😊

まとめ

*「このネタだとLaTeX😊をフツーに使っただけでTeX言語🤮要素がないじゃん」
ZR「しまった😲」

というわけで、引き続きお題募集中です🙃