📌

LaTeXに触れられなくなってきた人間の『TikZによるLaTeXグラフィックス』読書

2024/12/22に公開

TeX & LaTeX Advent Calendar 2024の22日目の記事です。

https://adventar.org/calendars/10647

21日目は MadChemikerさんの『mol2chemfigでお手軽に分子を描いてみる』でした。

読書をした受け手側、hidarumaのステータスは大体次;

  • LaTeXは2014-2020あたりで主に利用、現在はあまり追えていない
  • TikZは「何も分からん。俺達は雰囲気でTikZを書いている」を毎回していた
  • 今となってはSVGの方が馴染んでいる

2024-12-23 Xから知っ得情報を引用。文章が切れていた箇所を修正

『TikZによるLaTeXグラフィックス』

『TikZによるLaTeXグラフィックス』(Stefan Kottwitz(著)/黒川 利明(訳), 2024, 朝倉書店,ISBN:978-4-254-12305-0)は、LaTeXでグラフィクスをコーディングする際にパワフルな機能を提供するTikZについての解説書です。

https://www.asakura.co.jp/detail.php?book_code=12305

TikZについての資料はCTANで公開されているもの、既存の書籍での紹介などありますが、TikZに特化した解説書というのはLaTeXの資料に比べ非常に少ない状態です。更に日本語資料となると二桁、いやそれくらいはあるか。

ところで日本語のTikZ解説といえばalg-d氏『TikZの使い方』という本もあり、イラストやグラフはいいからTikZのごちゃっとした文法を速習したい向きにはこちらが簡潔でおすすめです。とはいえいろんな描き方があるので『TikZによるLaTeXグラフィックス』にも目を通すとよいです
https://x.com/golden_lucky/status/1851793254397939958

https://alg-d.com/math/tex.html

検索結果の情報の新旧・精度が混濁した現在のインターネットで、体系的にまとめて書かれたTikZの書籍で、更に和訳されたものという点からして本書の第一の意味があります。

レイアウト・構成上の気になった点

訳書ということで、原書から引き継いだ点と訳書のみのポイントがあるのだと思います。が、原書比較はしていないので一緒くたに書きます。

各セクション内容は見出し以外ベースのインデントが数cmあります。構成上の難点と重なりますが、このスペースがかなり死んでいて勿体無いなと感じました。

セクショニングは結構細かくされていますが、この本は必要な項目を読むリファレンスではなく、順に読んでいくガイドの構成です。なので「技術要件」の項がかなり重複内容になってしまっています。これ箇条書き項目だったらいいけど文なんですよね。

優先度の高い内容とそうでない内容の記述がフラットで、「もっと側註があればいいのに」と全体を通して感じます(「ベースのインデントが数cmあります」が全体を通してあるので……)。「過去の書き方と現在の書き方」とか、小ネタの解説とか、そういうのですね。これは原書から変えられないであろう点ではありますが。

URL参照がかなり多いんですが、本文内で箇所によっては強制両端揃えで字間が離れていて見づらい。物理本だとハイパーリンクがないのもあってこれはちょっと直してほしい。

感想文

書籍の目次が朝倉書店のサイトやAmazonの販売ページその他で公開されています。このセクショニングの題とズレずに進んでいきますので(「TikZで楽しもう」までは、ですが)、「何ができるようになるか」の見当が付いている状態で本書を読み始めるのであればオススメです。逆に「LaTeXも最近始めたし何もかもよく分からない」という状態であり、テキスト記述を基にグラフィックをレンダリングしてくれる体験に馴染みがないと、少しとっつきにくい構成と思いました。
私は「俺達は雰囲気でTikZを書いている」状態でしたので、実はそれなりに想定ターゲットにマッチしていたのではないか。

読む際にはそれなりに時間を確保した方がよいでしょう。3週くらいで隙間時間に読もうとしていましたが、内容が順に展開していく構成のため、内容の流れを思い出せず時間をとることがちょくちょくありました。

TikZは、基本となる描画命令機能の他、記述を簡易にするライブラリや個人パッケージの資産がかなりあります[1]。この本は、ライブラリ使用方法の順を追った説明書としても有用です。パッケージ紹介では、scsnowmanが紹介されていることを確かめるために買ってもいいと思います。

(あ、今気づいたけどsnowmanパッケージの解説、「山下さんは日本語LaTeX環境のメンテナであって日本でLaTeXを保守しているわけではないのでは」というコメントが反映されてなさそうな気がする…)
https://x.com/golden_lucky/status/1851793254397939958

おわりに

23日はwtsnjpさんです。 Happy TeXing!

脚注
  1. SVGではpath、rectなど基礎的な描画命令は仕様でまとまっている一方、ライブラリを構成するような体系はありません。useでURLを引っ張ればある程度のことは可能ですが調整はほとんどできないし。動的にいじるならJavaScriptやXSLTでパッケージを用意する手もありますが、SVGを扱えるツールがJSやXSLTを透過的に扱えるわけでもないので、JSやXSLT側のパッケージとしての実現になってしまう。 ↩︎

Discussion