以下の内容はhttps://zrbabbler.hatenablog.com/entry/2023/12/12/235313より取得しました。


TeXでもTypstでもコンパイル可能なファイルを作りたい話

これは「TeX & LaTeX Advent Caleandar 2023」の12日めの記事です
(11日めは h20y6m さんでした。13日めは CareleSmith9 さんです)

結局12日目が埋まらなかったので、某ZRの小ネタ話になります(ざんねん🙃)

SATySFi以外の話

2021年のアドベントカレンダーTeX/LaTeXSATySFiの両埋め)にこんなネタがありました。

今回はSATySFiでなくTypstでやってみようという話です。まあ技術🎄的に目新しいことは何もないわけですが。

Typstを紹介する話

過去の某ツイーター記事をみましょう。

もっとマジメな説明を読みたいという人はこちらをどうぞ。

というわけで、今回はTeXとTypstのpolyglotをつくります。

TeXとTypstでいかにpolyglotするかの話

SATySFiのとき全く同じです。「LaTeXではどうやっても無理なので、plain TeXを使うことにして、強い裏技に頼る」ことにします。同じ方針で書くと、SATySFiのときとほぼ同様のものが完成するわけですが、さすがにそれでは退屈すぎるでしょう。

そこで今回は「なるべくコードを短くする」という条件を加える1ことにします。

TeXとTypstでpolyglotしてみた件

88バイトになりました。

Typst//\def~#1{\let~#1\def#1{\setbox0\box255\gdef#1{~}}}~\plainoutput\vfil\break\TeX\bye

plain TeX(例えばpdftex)でコンパイルしたときの出力。

TeXな出力

Typst2コンパイルしたときの出力。

Typstな出力

polyglotできてますね😃

まとめ

というわけで、枠が埋まらないとカレンダーがざんねん🙃になってしまうので、皆さん「TeX & LaTeX Advent Calendar 2023」にドンドン登録して幸せ😊になりましょう!💁


  1. その代わり、出力については「各処理系の既定のページ設定が適用された上で、本文領域に名前(“TeX”および“Typst”)だけが書かれていればよい」というルールにします。
  2. //はTypstの行コメントを開始する記法なので、Typstのコードとして見た場合は単に「Typst」と書いてあるだけです。“細工”は全てTeX側で行っています。



以上の内容はhttps://zrbabbler.hatenablog.com/entry/2023/12/12/235313より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14