Sokratesさんの備忘録ないし雑記帳

ブログは同人誌の一種だと思って書いてる.書きたいことを書いている.駄文注意.

LaTeX 初心者が知るべきただ一つのコマンド

という煽りタイトルで Texdoc を紹介する記事を書く宣言を何故かしてしまったので,書きたいと思います.後悔も反省もしている.たぶんみんな妖怪かスタンド攻撃のせい.

 この記事は TeX & LaTeX Advent Calendar 2020 - Adventar の 24 日目の記事です.23 日目は munepi さんの Markdown原稿からPandocしてLaTeX組版する本作り - Qiita という記事でした.明日は zr_tex8r さんの 徹底攻略! pxchfonを使いこなそう - Qiita という記事です.

 多分このアドベントカレンダーの参加者の中で一番の素人です.なんか雪だるまが回転するのを眺めていたら参加してました(なにを言っているのか自分でもわかりません).なんで僕は TeX に詳しくないのにこのアドベントカレンダーに参加しているんだろう…….

 前置きが長くなりましたが,本題に入りましょう.間違いのないように気をつけて書いていますが,もし間違ったことを書いていたらごめんなさい*1. 

1. Texdoc って何だ?!

 Texdoc とは何かについて,述べましょう.

 Texdoc の公式ドキュメントには

Texdoc is a command line tool which search and view documentations in
TeX Live. 

(Manuel Pégourié-Gonnard, Takuto Asakura, "Texdoc Find & view documentation in TeX Live v3.0",  2018-06-06)

 と書いてあります.私の拙い語学力で訳すと次のような感じでしょうか?

Texdoc とは TeX Live のドキュメントを探して読むためのコマンドラインツールです.

(Manuel Pégourié-Gonnard, Takuto Asakura, "Texdoc Find & view documentation in TeX Live v3.0",  2018-06-06. 日本語訳は筆者)

どういうドキュメントが読めるかはTexdoc の中の人の手による TeX Live ドキュメント案内 - Qiita に詳しいのでそちらを読みましょう.

 はい.そんなわけで.Texdoc すごそうだね.おしまい.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 ってやろうかと思ったんだが,流石によろしくないので,もう少し話を続けます*2

 現在, TeX Live を使っている TeX ユーザーが大半だと思うのですが,TeX Live ドキュメント案内 - Qiita によるとこの5GB 近い塊*3の4割位はドキュメントだそうです.これだけ容量を占めているドキュメントを読まないのはとてももったいないですね.このドキュメントを探して読むためのツールが Texdoc です.使い方は簡単.TeXLive の入っているパソコンで,単に PowerShellWindows ユーザー)やターミナル(Linux ユーザー)に

$ texdoc (見たいドキュメントの名前)

を入力するだけです.勝手にビュワーが立ち上がって,ファイルを見せてくれます.

すごい簡単!!!これで明日からTeX Live ドキュメントのマスター(?)だ!!!

 とはならんですね.だって見たいドキュメントの名前わからなかったらどうしようもないわけですから.一応こんな名前のファイルないかなぁというのを探すときのために

$ texdoc -l (expr)

とオプションをつけることで,(expr) が含まれるドキュメントの一覧を出してくれますが,それでも初心者は何を (expr)とすればよいのかわからないでしょう(わかるなら多分初心者じゃないと思う.この記事読まなくて良いのでは).

 そこで,texdoc を私自身がよく使うタイミングをユースケース*4として紹介したいと思います.皆さんの参考になれば幸いです.参考にならなくても怒らないでね.

 TeX Live を full インストールしていれば,他の環境でも問題なく再現できる話だと思いますが,動作確認は

  • エディション Windows 10 Home
  • バージョン 20H2
  • OS ビルド 19042.685

の中で WSL 2 の ubuntu-20.04 で行っています.また,TeX Live の バージョンは 2019.20200218-1 です*5

私自身が,WSL ユーザーなのでアレですが,実は WSL で Texdoc を使うには工夫が必要です.手前味噌ですが,Windows Subsystem for Linux で Texdoc を使いたいというおはなし - Sokratesさんの備忘録ないし雑記帳 を参照してください.

2. 初心者のための texdoc ユースケース

texdoc のユースケースを3つほど紹介します.

2.1. あの記号出したいんだけど,コマンドわからんのじゃが……

 ある日のこと,S くんはゼミでの論文紹介のためにスライドを LaTeX で作っていました.紹介したい論文に ¦ という記号が使われているので,自分のスライドにもこの記号を使いたくなりました.残念ながら S くんは頭がよくないので,¦ の出力コマンドをしりません.ここで諦めて別の記号を使うか,と思っていたとき,頭の良い友達の W くんが

$ texdoc symbols

を使ってみたまえ,と勧めてくれました.するとなんということでしょう,たちまち,symbols-a4.pdf *6という PDF ファイルが立ち上がり,LaTeX で使うことのできる記号の一覧が出てきたではありませんか!S くんはこのファイルの中を検索することによって ¦ という記号を出したければ,\usepackage{textcomp} をプリアンブルに書き,\textbrokenbar というコマンドを使えば良いことが分かりました.めでたしめでたし*7

 

 また,別の日のこと,S くんは「新しく定義したこの『二項関係』の記号どうしようかな. LaTeX で使えるいい感じの関係記号ないかなぁ」と悩んでいました.悩んでいても仕方ないので,S くんは

$ texdoc symbols

してみました.symbols-a4.pdf は記号を種類ごとにまとめてくれているので,「binary」などと検索をすると,さまざまな二項関係の記号を眺めることができます.

「お,これ良さそう」

S くん,良さそうな関係記号を見つけることができたようです.めでたしめでたし.

2.2. パッケージ特有のコマンドを忘れちまった……

私はよく,bussproofs というパッケージで,証明図を書きます.証明図というのは次のような記号論理学などで使われる図です(Texdoc の使い方と直接関係ないので意味を理解する必要はありません).

\begin{prooftree} \AxiomC{$A$} \AxiomC{$B$} \BinaryInfC{$A\land B$} \end{prooftree}

しかし,頭がよくないので,普段やらないようなことをやろうとすると,すぐコマンドがわからなくなります.

たとえば,

\begin{prooftree} \AxiomC{$\exists x\varphi$} \AxiomC{$[\varphi\left(t\right)]$} \UnaryInfC{$\vdots$} \UnaryInfC{$C$} \BinaryInfC{$C$} \end{prooftree}

の \(C\) と \(\vdots\) の上の線を消したくなったとします.こういう線を消すためのためのコマンドをよく私は忘れます.

こういうときは公式ドキュメントをみるために次のコマンドを打ち込みます.

$ texdoc bussproofs

すると,bussproofs.sty の公式ドキュメントが立ち上がります.ざっと目を通してみると,\noLine というコマンドで打ち消せることがわかりました(このくらいそろそろ覚えろよ).

\begin{prooftree} \AxiomC{$\exists x\varphi$} \AxiomC{$[\varphi\left(t\right)]$} \noLine\UnaryInfC{$\vdots$}\noLine \UnaryInfC{$C$} \BinaryInfC{$C$} \end{prooftree} 

 よし一仕事終わり!目的の証明図を出すことができました.

 

 このように Texdoc でパッケージの公式ドキュメントを呼び出すことができます*8.他にもたとえば

$ texdoc tikz

とすれば,tikz の公式ドキュメント*9が立ち上がるわけですね.

いわゆるパッケージ以外にも KOMA-Script という種類のドキュメントクラスの公式ドキュメントは

$ texdoc KOMA-Script

と打てば,出てきますし,

$ texdoc luatex-ja

 と打てば,LuaLaTeX で使える種類の日本語ドキュメントクラスの公式ドキュメントが立ち上がります.普段使うドキュメントクラスの公式ドキュメントを調べてみると自分の知らないオプション引数など新しい発見があり,おもしろいです.

ところで,Texdoc も TeX Live に含まれるツールの一つなので,

$ texdoc texdoc

とすれば,Texdoc の公式ドキュメントを見ることができます.Texdoc すごい!

2.3. 俺は TeX Master になるって,この前の飲み会で言ったら TeX に詳しい人達に複雑な顔をされた.それはそれとして,人並みには TeX を理解したいなぁ.

 TeX Live に含まれるドキュメントはいわゆるパッケージの公式ドキュメント以外にも色々あります.そういうドキュメントは TeX Live ドキュメント案内 - Qiita に詳しいです.

 その中でも,初心者が読むと嬉しくなりそうなものを二つほど紹介します.

1つ目は

$ texdoc short-math-guide

などとすると立ち上がる short-math-guide.pdf です.AMS のパッケージを使って LaTeX 文書作るときの注意点がまとまっていて,参考になります.AMS のパッケージを使わずに LaTeX 文書を作ることは珍しい時代だと思うので,数学を専門にしていなくても役に立つんじゃないかと思います.英語の文書ですが.

2つ目は

$ texdoc platexsheet

などとすると立ち上がる pLaTeXチートシートです.基本的なコマンドをど忘れしたときなどに役に立ちます.

3. まとめ

 はい.そんなわけで TeX 初心者にとって役に立ちそうな texdoc のユースケースを3つ紹介しました.

 もしかしたら,「ググった方が早いのでは」と思った人がいるかも知れませんが,LaTeX に対する怪しげな記事*10が散見される現代にあっては,公式ドキュメントに目を通す習慣をつけるという意味でも,Texdoc を使ってみると良いと考えます.

 Texdoc の仕組みや立ち上がる pdf viewer の変更方法などより進んだ情報については,

$ texdoc texdoc

をすると見ることのできる Texdoc の公式ドキュメントを参考にしてください.

 

 Texdoc の検索ワードを何も思いつかんとき,結局ググるけどね.

*1:もし,間違ったことを書いていても詳しい人からツッコミが入るはずなので,そのうち訂正されるはずだ.たぶん.知らんけど.

*2:TeX Live ドキュメント案内 - Qiita 以上の内容を書ける自信はないですが.

*3:Full でインストールした場合.

*4:あれ,使い方合ってる?

*5:最新版を apt を使わずに引っ張ってくる元気はない.

*6:http://tug.ctan.org/info/symbols/comprehensive/symbols-a4.pdf

*7: このケースの場合, Detexify LaTeX handwritten symbol recognition のような手書きされた記号から TeX Command を推測してくれるサービスを使うという手もあるんですがね…….後で知りましたが.

*8:というか,そのための Texdoc だよなという……

*9:聞いた話による(どこで聞いたかは忘れてしまった)と,tikz の公式ドキュメントには現在非推奨なコードが含まれているそうなので,読む際には注意が必要だそうです.

*10:この記事のように.