LaTeX遊びとは?
普通にWinword
でつくってPDFに変換して提出すればいいところをわざわざLaTeX
を経由して、コンパイラーの吐き出すエラーと苦悶するというマゾヒズム的遊びのこと。
環境
mdをpandoc
経由でPDFに変換したいと思ったときにほとんど無意識状態でMikTeX
インストールしていた。ということでWindows10にインストールされていた。MikTeX
はTeXWorks
というIDEのようなものが同梱みたい。
元ネタ
だれかがWinword
で作ったdocx
ファイル。
閑話休題
むかし匿名掲示板がはやっていたころ、doc
ファイルのことを「ドキュンファイル」と呼ぶのがバズっていたことを思い出す。
pandoc
で変換:
pandoc hoge.docx -t latex -o hoge.tex
みたいな感じ。図面はどうせPDF化しないとならないから。変換しないようにさせた。
LaTeXのスタイルファイルとかテンプレート
どこぞから入手した。Winword
とgithub
siteをともに開いて、
- タイトル、
- 著者、
- 所属
などをひたすらコピペ。最近はそれに加えて、
- メアド、
- orcid
までも。右手のアキレス腱が腱鞘炎になりそう。ツラミしかない。
LaTeX
ってユニコード使えるようになったの?
MikTex
なので、日本語はダメなのはいいとしても、ギリシャ文字とかアルファベットの装飾とかは、ユニコードでいれてもいいのか?よくわからなかったので、逐一 $\alpha$
,\'e
,\"u
みたいな感じで置き換え。
$\alpha$は、数式環境のなかだからQiitaでも出せますね。
pandoc
が$_1$
なんかを\textsubscript{1}
みたいな感じに変換するけど、これって通るのか?よくわからないので、半マニュアルで置き換え。textsuperscript
も同様。
すみません。追記です。
\textsubscript{1}
について、...通りますね。
このtwitterによると、当該コマンドは2015年に追加されたみたいです。
温度の記号はLaTeXダメだよね?
摂氏をあらわす ℃ってのがあるけど、なんか追加でパッケージ呼び込まない限り、これもLaTeX
ダメだよね。回避法は、
$^\circ $C
ですね。
Tableまわりも進化していた!?
プリアンブルに booktabs
というパッケージがテンプレートには宣言されてたけど余計なものを宣言してエラーソースになられても困るということで削った。
その結果、toprule
, midrule
, bottomrule
でエラーが発生し、そのたびに
手作業で hline
に置き換え。これはあとで気づいたけど、まったく意味のない所業だったわけだ。
pandocが生成する特殊な改行コマンド
pandoc
って、表の行の改行で 円マーク2つ (\\
)じゃなくて、なんか長いコマンド(忘れてしまった)を生成しますね。全部、円マーク2つに一括置換したっけど、消さなくてもよかったのかな?
bibTexもがきについては今回はナシ
Winword
にMendeley
のアドインを導入して、文献リスト作ってるから今回は、bibTex
ネタもナシ。ついでにいうと、bibliography
ネタもナシ。ちょっとさみしい。
閑話休題: MendeleyとWinword
コンパイル
IDEがあるので、pdfLaTeX
選んで、アイコンをクリックするだけだけど、本当は
$ latex hoge
って叩いているはず。繰り返しになるけど今回はBibTex
ナシなので、複数回コンパイルも免除。
閑話休題
むかし、「bibliography
環境つかったときは複数回コンパイル!」ってのを、誰も教えてくれなくて、ヤケノヤンパチになった。コンパイルを繰り返したら文献リストが生成された時は、うれしかった。むかしを思い出して感傷にひたれるLaTeX
遊び。
今度はmarkdownを元に遊びたい
マークダウン(md
)でできるところまで書いて、さいごにpandoc
でtex
に変換。
pandoc -s --natbib hoge.md -o hoge.tex --bibliography hoge.bib --template hoge.template
この時点でTeX
ソースコードには、bibliography
含まれているはず。hoge.tex
を複数回コンパイル。しかし、BibTex
について走らせる不要。
まとめ
「俺はLatex
記法を知っている」とばかりに、$_1$
, \'e
とかに逐一おきかえたけど、そのほとんどは、やらなくてもいい所業なのかもしれない。
pandoc hoge.md -o hoge.tex
っていうコマンドを実行するときも 同じような話になると思うので、このときは
「俺はLatex
記法を知っている」をなるべく発動せずに、パッケージ宣言で対応しつつ、PDFLaTeX
のコンパイラーにかけてみよう!そうしよう!