数学とプログラミングとくだらないこと

プログラミングの事とか数学のこととかを書いていきます。

省力TeX

出来るだけ手間を省いてTeXを書く方法。PandocとXeLaTeXを使います。 Markdownで書いて、必要なとこだけLaTeXで書こうという魂胆。 ここに書いてあることのほとんど全部は ここ に書いてある。

最終目標はMarkdownで書いたレポートの体裁をPDFで出力すること。

Pandoc

Pandocとは

PandocはHaskell製のドキュメントコンバーター。 HTMLの表現力で文書構造を表せるドキュメントを相互変換します。

インストール

  1. Haskell Platform をインストール
  2. コンソールからcabal updateして cabal install pandoc

使い方

実際にどう使うかと言うと、Markdown形式の sample.mdsample.tex に変換するときは、

pandoc sample.md -o sample.tex

とすれば出来る(はず)。

XeLaTeX

XeLaTeXとは

詳しくは解説しないけど、Unicode文字が使えるTeXがXeTeX。 日本語を使おうとすると特殊なLaTeXがいるらしいが、そのうちの一つがこれ。 他に知ってるのはLuaTeX。

インストール

インストールするには、TeXLiveやMikTeXを入れれば入るらしい。

BXjscls

XeTeXではjsarticle(LaTeX専用って知らなかった…)の代わりに BXjsclsをインストールして、 bxjsarticleクラスを使うのがいいと思う。

フォントの注意

フォント技術云々の話がよくわからないが、どうやらXeTeXはフォントについてる情報を 読んで、文字にフォントを当ててるらしいから、そういうUnicodeとの対応表? を持ってるフォントが必要。 どこかの記事でTakaoフォントが使われていた (気がする)。こんな風にフォントを設定するらしい。

\setmainfont{TakaoPMincho}
\setsansfont{TakaoPGothic}
\setmonofont{TakaoGothic}

zxjafontってパッケージを使えば、プリアンブルに、

\usepackage[ms]{zxjafont}

とか

\usepackage[hiragino]{zxjafont}

とか書けばフォント設定が一発で済むんだってさ。 ここが詳しいんじゃないだろうか?

Markdown

今回は文章の本体をMarkdownで書く。 Pandocが対応していれば、MarkdownだろうとTextileだろうと何でもいい。 本文中でTeXの数式を書いてもちゃんと出力されるらしい。(インラインしか試してない)

Pandocで変換

Pandocで変換する。プリアンブルを別のTeXファイルに書いて-Hオプションで挿入するなり、 -Vオプションで、文書クラス、タイトル、編集者を指定するなりして、

pandoc input.md
    -H header.tex
    -V title=タイトル
    -V documentclass=bxjsarticle
    --latex-engine=xelatex
    -o output.pdf

って出力すればPDFが出来上がる。 今やったら micortypeでエラーが出ました でも普通は上のページみたいに、Pandocの出力を下のみたいなファイルから読み込ませて pdflatexなり何なりでPDFに変換するのがいいと思う。

\documentclass[11pt,a4j]{bxjsarticle}
\usepackage{zxjatype}
\usepackage[ms]{zxjafont}
\usepackage{xltxtra]

\title{Title}
\author{Mith009}

\begin{document}
\maketitle
\input{report}
\end{document}

じゃあXeLaTeXいらないじゃん!!!