このエントリーをはてなブックマークに追加

Markdown → LaTeX で単語帳

Posted: 2015-09-16 (Modified: 2016-10-01)

まずは Markdown 形式で単語を書いていきます。Vimなどのテキストエディタを使い、以下のような単語のリストを作ってください。

* __hitherto__ /ˌhɪðə(r)ˈtuː/ *adv.* 今までは
* __henceforth__ /ˌhensˈfɔː(r)θ/ *adv.* これ以降

これを例えば test.md のような名前で保存します。発音記号の入力方法は How to type phonetic symbols などを参考にしてください。

Markdown を LaTeX に変換するために Pandoc というアプリケーションを使うのですが、そのためのテンプレートを用意します。以下の内容を templates/vocabulary.tex という名前で保存してください。

\documentclass[12pt,a4paper]{ltjsarticle}
\usepackage{luatexja-otf}
\usepackage{luatexja-fontspec}
\usepackage[hiragino-pron,deluxe,expert]{luatexja-preset}
\ltjsetparameter{jacharrange={-2,-3}} % Don’t use japanese fonts for Greek letters.
\newfontfamily\phonetic{Doulos SIL}
\setmainfont{Free Serif}
\setsansfont{Fira Sans}
\newcommand\headword[1]{\textbf{\textsf{#1}}}
\newcommand\tightlist{\relax} % Pandoc automatically adds this command to lists.
\begin{document}
$body$
\end{document}

次に変換用のスクリプト vocabulary.sh を作って実行します。(スクリプトを保存したあと初回のみ chmod +x vocabulary.sh とする必要があります。)

#!/bin/sh
if [ ! -x "$(command -v pandoc)" ];
then
    echo "Pandoc is not installed. Install Pandoc."
    exit 1
fi
filename="$1"
pandoc --template=templates/vocabulary.tex --to=latex --no-tex-ligatures -s $filename \
    | sed -e "s@ /\(.\+\)/ \?@ {\\\\phonetic /\1/} @" \
    | sed -e "s@ \\\\textbf@ \\\\headword@" > "${filename%.*}.tex"
latexmk "${filename%.*}.tex"

これを実行します.

./vocabulary.sh test.md

出力された PDF 上では以下のように表示されます.