本の諸々が一段落したので、最近はLaTeX処理自動化ツールClutTeXの開発を進めています。前(2023年11月)に計画を書いて以降の進捗を書きます。
続きを読む「ClutTeX」タグアーカイブ
LaTeXでPDF/XやPDF/Aを出力するメモ
LaTeXで書いた文書は普通はPDFとして閲覧・配布すると思います。このPDFですが、用途によってはPDF/XやPDF/Aなどの標準化されたサブセットにしたいかもしれません。
よくあるやり方は、LaTeXで生成したPDFをAdobe等の製品を使ってPDF/XやPDF/Aに変換する方法です。しかし、ここではpdfxというLaTeXパッケージを使ってPDF/XやPDF/Aを生成する方法をやってみます。
この話題については既存の記事もあるので、それも参考にしてください。
- LuaLaTeXでPDF/X-4やPDF/X-1aなPDF生成する|きえだゆうすけ(p_typo)
- LuaLaTeX で pdfx パッケージを使い PDF/A に準拠した PDF を作る #PDF – Qiita
最近のLaTeXでは標準の機能でPDFメタデータを埋め込めるやつもあるようですが、ここでは従来の(?)pdfxパッケージを使います。
続きを読む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に変換する系のやつを改めて調べると
- teal-language/tl: The compiler for Teal, a typed dialect of Lua
- Unisay/purescript-lua: Purescript compiler back-end for Lua
みたいなやつが増えていました(2020年ごろはなかった or 知名度が低かったと思います)。まあLunarMLを作ってしまったのでLunarMLでやります。
こっちの作業もブランチを切って少しずつ進めています。
コンパイルに使うLunarMLはまだリリースしていない状態で、他人が使うには難があるので、ClutTeXのSML版を出す前にLunarMLのバージョン0.1をリリースしたいです。ただし、ClutTeXのSML版が書ける程度に標準ライブラリーを充実させたいです。
SMLへの移行が終わったら、本格的なバグ修正や機能追加に移ります。バグ修正としては、BibTeXの .bib
ファイルを更新した際に再処理を行うようにしたいです(Biberに関しては最近プルリクがあって実装して頂きました)。
機能追加としては、ユーザーごとの(プロジェクトに依存しない)設定ファイルを実装したいです。設定項目はターミナルの色付けや、終了時のアクション(「PDFビューワーで開く」などのコマンドを実行できるようにする)を登録できるようにしたいです。フォーマットはTOMLを考えています(なので、TOMLパーサーを書かなくてはいけない)。
まとめると、以下の順序と時期で進めていきたいです。
- ClutTeX v0.6リリース:11月中、遅くとも年内
- ClutTeXをStandard MLで書き直したものがある程度動くようにする
- LunarML v0.1リリース:できれば11月中、遅くとも年内
- 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はどのように問題を解決するのか知りたい方へ
例によって結論に至るまでの経過をくどくど書いているので、結論だけ知りたい方は適当に読み飛ばすことをお勧めする。
続きを読む技術書典6に、ClutTeX(LaTeX文書処理自動化ツール)の本を出します
4月14日(日曜日)に池袋で開催される技術同人誌即売会「技術書典6」に、「だめぽラボ」としてサークル参加します。
サークル詳細 | だめぽラボ | 技術書典 ←気になる方はサークルチェックリストに入れてください
サークル(だめぽラボ)としてのページ:https://lab.miz-ar.info/
日時と場所について
公式サイトより:
日時 2019/04/14 (日) 11:00〜17:00
https://techbookfest.org/event/tbf06
場所 池袋サンシャインシティ2F 展示ホールD(文化会館ビル2F)
主催 TechBooster/達人出版会
一般参加は11時~13時のみ有料
当サークルの配置は か15 です。
頒布物について
筆者が作っているLaTeX処理自動化ツール「ClutTeX」についての本を出します。
利用ガイドの他に、LaTeX処理の自動化に関する知見を詰め込んでいます(第3章)。そのため、単なるマニュアル以上の価値があるかと思います。
- GitHub https://github.com/minoki/cluttex
- CTANのcluttexページ https://www.ctan.org/pkg/cluttex
- 書籍版ページ https://lab.miz-ar.info/cluttex-book/
この他、既刊「代数的数を作る 根と因数分解のアルゴリズム」のダウンロードカードも販売します(紙の本は販売しません。紙の本は見本として置きます)。なお、既刊は BOOTH でも購入可能です: https://damepo-lab.booth.pm/items/1051034
さらに、新刊または既刊をお買い上げの方に、「だめぽラボステッカー」を配布します!今回の技術書典で購入してくださった方のほか、過去に技術書典またはBOOTHで既刊をお買い上げくださった方も対象です。その際はその旨をお伝えください(感想もあれば嬉しいです)。
LaTeX処理自動化ツール ClutTeX をリリースした
2年ほど前からマイペースで作っていたLaTeX処理自動化ツールClutTeXだが、ある程度の機能が整ったと判断し、バージョン0.1をリリースした。ClutTeXに関しては2年前にもブログ記事で紹介したが、初のリリースを迎えた今、改めてその機能と使い方を紹介する。 続きを読む
TeXのターミナル出力がうるさい件
TeX文書をターミナルで処理させると、ターミナルに大量の出力が表示させる。
そのうち(パッケージ開発者ではない)一般ユーザーにも有益なものはほんのわずか(Undefined referenceとかOverfull hboxとか)で、大半は価値のない文字列である。一般人というのは「大量のメッセージが表示される」→「解読するのが面倒なので読まない」という思考回路で動く[要出典]ので、価値のない文字列が大量に表示されるのは有害である。(一般人はターミナルではなくTeXworksとかの統合環境を使うのでターミナルにどれだけ文字列が表示されようと関係ない、という説はある)
そこで、TeX文書の処理時に表示される文字列がなるべく少なくなるようにするにはどうしたらいいか考えよう。
なお、-interaction=batchmode
を指定すれば当然ターミナルに表示される文字列は減るが、しかしそれでは有益な情報も表示されなくなるし、何よりエラー時のメッセージもターミナルに表示されなくなってしまうので、-interaction=batchmode
以外のモードで表示文字列を減らすことを考える。 続きを読む
TeX 実行の自動化ツールを作った (ClutTeX)
TeX の実行を自動化するスクリプトというのは latexmk を始めとしてすでに色々世の中に存在するが、新しく作った。 続きを読む