『pLaTeX2e チートシート』を作りました

Jan 13, 2017   #LaTeX 

pLaTeX2e でよく用いられる命令を2ページにまとめた『pLaTeX2e チートシート』を作成しました.

pLaTeX2e チートシート p.1

pLaTeX2e チートシート p.2

PDF 版およびソースコードはそれぞれ以下のリンクから入手できます.

既に TeX Live にも収録済みなので,最新の TeX Live が利用可能な環境であれば,以下のコマンド一発で表示させることができます.

$ texdoc platexsheet

また,本チートシート末尾に記載されている「pLaTeX 文書のサンプル」の組版結果も以下で閲覧できます.

$ texdoc platexsample

想定ユーザ

『pLaTeX2e チートシート』は LaTeX の使い方を一通り学習したことのある方の利用を想定して作成されています.

完全な LaTeX 未経験者が本シートを利用することは想定しておらず,作者としては少なくとも一度は市販の入門書等を利用して体系的に LaTeX についての知識を習得してからこのチートシートを活用していただくことを強く推奨します1

補足事項

Winston Chang の LaTeX2e Cheat Sheet (以下「英語版」と呼称)を出発点に作成を開始しましたが,もはや単なる翻訳版とは言えないほど大掛かりに pLaTeX2e 版独自の変更を加えています.

守備範囲

英語版には特定のパッケージを読み込んだ場合にしか利用できない命令や環境についての言及がありますが,pLaTeX2e 版では完全に LaTeX 標準の機能のみに絞って記載を行っています.

これはクラスについても同様で,現在の日本では奥村先生による pLaTeX2e 新ドキュメントクラス(jsclasses)のユーザが多いことはわかっておりますが,あくまで pLaTeX に添付されている “標準” クラスは jclasses なのでこちらのみに言及しています2

当然,pLaTeX2e を使いこなすには標準外のクラスやパッケージの知識も必要になると思いますが,それらは本チートシートの守備範囲外です.そうした知識については各成果物に付属するドキュメント3やその他の文献を参照してください.

BibTeX について

英語版には BibTeX の使い方(フィールド名やエントリ名など)について比較的多くのスペースが割かれていましたが,pLaTeX2e 版ではそのほとんどを排除しました.

これは BibTeX が LaTeX にとって外部プログラムにあたるためというのもありますが,同時に「2017年において BibTeX の文献データベースは手打ちすべきものとは考えられない」という私見がその判断の根底にあります.

すなわち BibTeX 用の文献データベース(*.bibファイル)は Mendeley などの文献管理ソフトや Google Scholar の検索結果から簡単にエクスポートすることが可能です.また,Amazon での検索結果を BibTeX 形式で出力できる Lead2Amazon というサービスもあります.

このような状況の中「BibTeX データベースを手打ちする」などというのはほとんど時間の無駄遣いに近い作業です.そのため,チートシートには BibTeX 関連の詳細な情報は不要と判断し,これを思い切って削除しました.

謝辞

『pLaTeX2e チートシート』は v1.0 の公開以来,多数のフィードバックをいただきました.現在の最新版である v2.0 を作成するにあたっては,それらの意見が参考になりました.特に ZR さんには GitHub 上で多くの指摘をいただき,大変助かりました.この場を借りて,深謝の意を表します.

付録:CTAN 登録に関する Tips

ここからは開発者向けの情報です.CTAN 登録についての基礎的な情報はアミノフェンさんの記事(付録の部分)に詳しい記載があるのでそれを参考にするといいと思います.ここでは今回私が『pLaTeX2e チートシート』を CTAN に登録するにあたって得た細かな知見を共有しておきます.

README は概要だけでも英語で書く必要がある

『pLaTeX2e チートシート』は日本人による日本人のための日本語ドキュメント(パッケージ)なので当初 README は完全に日本語で記述したものしか用意していませんでした.しかし,これをアップロードしたところ「CTAN 用の Announcement4 と同様の内容で構わないので(1段落分),README に英語の説明を追加してくれ」と依頼されました.

つまり,CTAN に成果物を上げる場合,README は全文が英語である必要はないようですが(たとえ完全に日本人のみを対象とする成果物でも)少なくとも概要については英語での記載を行った方がよいようです.

サイレントアップデートでも TeX Live に反映される

私が最初にアップロードした PDF には相互参照が解決していないものが含まれていたため,後日これを修正したものを再度アップロードしました(ソースコードに変更はないためバージョンは据え置きました).

このときには CTAN 上でアナウンスの流れない “Update (without announcement)” を選択したのですが,それでも TeX Live には即日更新内容が反映されました.したがってサイレントアップデートでも TeX Live チームに更新を検知してもらえるようです.

情報の修正依頼には迅速に対応してもらえる

CTAN 上の platexcheat パッケージの情報には当初以下の問題がありました:

  • “Package Documentation” として platexcheat.pdf へのリンクが貼られていた5
  • メンテナである私の名前の綴りが間違っていた

先述のサイレントアップデートを行う際に,これらの2点について “Administrative notes (to the CTAN maintainers)” にて修正を依頼したところ,快く引き受けていただけました.本当に,CTAN の中の人には頭が下がります.


  1. Markdown のように単純な仕様であればチートシートを眺めるだけでも習得できると思いますが,LaTeX はそれなりに複雑なシステムなのでそのような方法で使えるようにはならないと思います(仮にできたとしてもいずれ後悔することになる可能性が高いです). [return]
  2. 少しでも “標準外” に言及をしてしまうと「どこまでを含めるか」という線引きが難しくなるためです. [return]
  3. TeX Live に収録されているドキュメントについては『TeX Live ドキュメント案内』に詳述してあるので,よろしければ参考にしてください. [return]
  4. これは英語で書くことが義務付けられています. [return]
  5. platexcheat パッケージにおいて platexcheat.pdf は「文書本体」なので(他のパッケージの例を見ても)“Documentation itself” もしくは類似の表記が適当です. [return]