Pandoc利用者や、MarkdownからPDF出力する人達の中での永遠のテーマ、「表に縦罫線をつけたい!」
このたび、その永遠のテーマに終止符を打つことが出来ましたw
Pandocで表のかかれたMarkdownをPDF化した場合(通常)
PandocでMarkdownをPDF出力した場合、通常は以下のような表になります。

日本ではおなじみの「縦罫線」がないんですね。
そもそも、Pandocは「縦罫線」をサポートしていません。
でも!私としては、縦罫線のある、なじみ深いあの表の形にしたい!
そのため、ネット上をいろいろと調べました。
しかし、出てくる結果は、
「texテンプレートをがんばる」
「テンプレートにパッチをあてる」
「Luaフィルターを作る」
「Markdownから表のCSSを定義したHTMLを出力して、それをPDF化する」
うん、わかるよ…実際にできてる人もいるしね…
でも、それをどうやって導入すればいいか、わかんないんだ…
なので、CSSできれいな表を定義して、HTML化してからPDF化していました。
でも、これ、めんどい…
困った時の生成AI頼み ~ Claudeさんとの出会い ~
最初はChatGPTさんに、「ここをどうしたらいいか?」と、たぶん表の罫線に関係するであろうところだけを質問していました。
実際にコードも作ってくれたのですが、Pandocに合わなくて、エラーの山に途方にくれてました。
そんなある日、Claudeというプログラムに強い生成AIがいるらしいという噂を聞きつけました。
幸い、Claudeさんは無料でも使えることができたので、ざっくりとこんな質問をしてみたのです。

めっちゃおおざっぱ!せめてもうちょっと凝ったプロンプトにならなかったのか?と思われそうですが、このおおざっぱな質問に対する回答が神だった(笑)

なんと!各ファイルのソースコードを組んでくれたばかりでなく、使用方法とコマンド例まで!!
もう、各ファイルをテキストデータでDLして、ファイル名をリネームして、フォルダに置くだけで、使用方法に書かれてる実行コマンドをコピペで実行するだけで動くやん!!!
すぅ~~~~~~きぃ~~~~~~~!惚れてまうやろーーー!
実際には、フォルダ構成やら、Pandocの環境やらで、トライ&エラーを繰り返しはしましたが…
ほぼ、半日で、texテンプレート上ならたいていのもので動く、
Pandoc用PDF化専用Luaフィルター「table-borders.lua」が完成しました!
完成結果 縦罫線が入った表
table-borders.luaフィルターを、eisvogel.latexテンプレートに使用したものがこちら。

ちょっとセルの中が余裕ないけど、縦罫線が入ってる!
おまけに、タイトル行は太字になってる!
table-borders.luaフィルターはまだ公開しておりません。
が、興味のある人は、Claudeで質問して作ってみてください。
めっちゃ分かりやすいコード作ってくれますよ!
コメント