TeX」カテゴリーアーカイブ

TeX, LaTeX 関連の記事

ClutTeXについての計画

LaTeX処理自動化ツールClutTeXの今後の計画について。

まず、いくつかバグ修正や機能追加が溜まっているのでバージョン0.6をリリースしたいです。

それで、TeX LiveのContributing package

を久しぶりに読んだら「manページを書いた方が良い」「tarball中にバージョンがわかるファイルがあると良い」みたいな文言があった(以前読んだ時に読み飛ばしたのか最近新しく追加されたのかは未確認)ので、manページを書こうとしています。

manページは他のフォーマットから(pandocなどで)変換することもできるようです(llmkを見たらronnというツールでMarkdownから変換しているようです)が、ツールへの依存を増やしたくないので、書き方を勉強して手書きしようとしています。具体的にはmdocという記法で、

というページを参考にしています。

それ(v0.6リリース)が終わったら、Luaで書かれたコードをStandard MLに移行したいです。LunarMLを作ってきた目的の一つです。ソースコードはStandard MLで書いても、配布は従来通りLuaスクリプトとして行えるようにします。

ところで、静的型言語からLuaに変換する系のやつを改めて調べると

みたいなやつが増えていました(2020年ごろはなかった or 知名度が低かったと思います)。まあLunarMLを作ってしまったのでLunarMLでやります。

こっちの作業もブランチを切って少しずつ進めています。

コンパイルに使うLunarMLはまだリリースしていない状態で、他人が使うには難があるので、ClutTeXのSML版を出す前にLunarMLのバージョン0.1をリリースしたいです。ただし、ClutTeXのSML版が書ける程度に標準ライブラリーを充実させたいです。

SMLへの移行が終わったら、本格的なバグ修正や機能追加に移ります。バグ修正としては、BibTeXの .bib ファイルを更新した際に再処理を行うようにしたいです(Biberに関しては最近プルリクがあって実装して頂きました)。

機能追加としては、ユーザーごとの(プロジェクトに依存しない)設定ファイルを実装したいです。設定項目はターミナルの色付けや、終了時のアクション(「PDFビューワーで開く」などのコマンドを実行できるようにする)を登録できるようにしたいです。フォーマットはTOMLを考えています(なので、TOMLパーサーを書かなくてはいけない)。

まとめると、以下の順序と時期で進めていきたいです。

  1. ClutTeX v0.6リリース:11月中、遅くとも年内
  2. ClutTeXをStandard MLで書き直したものがある程度動くようにする
  3. LunarML v0.1リリース:できれば11月中、遅くとも年内
  4. Standard MLで書き直されたClutTeXをリリース(v0.7?):時期未定

TeXConf 2019向けのClutTeX発表資料

これは TeX & LaTeX Advent Calendar 2019 の10日目の記事です。9日目は munepi さんの ぼくのかんがえたさいきょうのLaTeX索引スタイルファイル でした。11日目は doraTeX さんです。

10月に予定されていたTeXConf 2019 が残念ながら台風によって中止になってしまいました。そこで、この記事では TeX 言語で台風の進路を制御する方法……ではなく、 TeXConf 2019 の発表で使う予定だった資料の供養をします。

続きを読む

TeXにとってやばい入力ファイル名

空白や記号類を名前に含むファイル名をTeXで処理させようとすると、うまく処理できないことがある。

例えば foo%bar.tex というファイルを latex foo%bar.tex のような感じでLaTeXに処理させようとすると、 % 以下の部分がコメント扱いされ、LaTeXは代わりに foo(.tex) というファイルを処理しようとする。

やばい名前のファイルを難しいことを考えずに処理できればいい方へ

8月中にリリースされる ClutTeX v0.4 を使って cluttex -e latex foo%bar.tex とすれば良い。

どういうファイル名がやばいのか、ClutTeX v0.4はどのように問題を解決するのか知りたい方へ

例によって結論に至るまでの経過をくどくど書いているので、結論だけ知りたい方は適当に読み飛ばすことをお勧めする。

続きを読む

LuaLaTeXでダウンロードカードを作った話

この記事は、TeX & LaTeX Advent Calendar 2018 の 15日目の記事です(遅くなってすみません)。

技術書典5で電子版を配布するのに利用したダウンロードカード(電子書籍をダウンロードするためのURLとシリアルコードが記載された紙)の話をします。技術書典の原稿執筆でやったことの全体像については、 同人誌「代数的数を作る」ができるまで/PandocとかLaTeXの話 を参照してください。 続きを読む

LaTeX処理自動化ツール ClutTeX をリリースした

2年ほど前からマイペースで作っていたLaTeX処理自動化ツールClutTeXだが、ある程度の機能が整ったと判断し、バージョン0.1をリリースした。ClutTeXに関しては2年前にもブログ記事で紹介したが、初のリリースを迎えた今、改めてその機能と使い方を紹介する。 続きを読む

同人誌「代数的数を作る」ができるまで/PandocとかLaTeXの話

前の記事「技術書典5に初サークル参加した記録/前日まで」は、サークル参加と紙書籍配布を軸に色々書いたが、この記事ではコンテンツである「週刊 代数的実数を作る」からの「代数的数を作る」の流れと、執筆に使った技術について色々書く。

執筆に使った技術(Pandoc filter等)について気になるものがあれば、コメント欄に書き込んでもらえれば別途詳細な記事を書くかもしれない。 続きを読む

TeXのターミナル出力がうるさい件

TeX文書をターミナルで処理させると、ターミナルに大量の出力が表示させる。

そのうち(パッケージ開発者ではない)一般ユーザーにも有益なものはほんのわずか(Undefined referenceとかOverfull hboxとか)で、大半は価値のない文字列である。一般人というのは「大量のメッセージが表示される」→「解読するのが面倒なので読まない」という思考回路で動く[要出典]ので、価値のない文字列が大量に表示されるのは有害である。(一般人はターミナルではなくTeXworksとかの統合環境を使うのでターミナルにどれだけ文字列が表示されようと関係ない、という説はある)

そこで、TeX文書の処理時に表示される文字列がなるべく少なくなるようにするにはどうしたらいいか考えよう。

なお、-interaction=batchmodeを指定すれば当然ターミナルに表示される文字列は減るが、しかしそれでは有益な情報も表示されなくなるし、何よりエラー時のメッセージもターミナルに表示されなくなってしまうので、-interaction=batchmode以外のモードで表示文字列を減らすことを考える。 続きを読む