Markdown -> pandoc -> TeX と変換してドキュメント作成する手順
コード断片・変数名・ファイル名(アンダースコアを含む)などの表現がMD, pandoc由来だと綺麗だった。
TeXのみでverbatimなどで調節するのはかなり困難だった。
よって、原稿作成にはTeXを使うものの、さらにそのマスターをMarkdownで作成する手法を確立する。
作業の手順
- mdでドキュメント作成する(例:このファイル)
- pandoc用includeファイルを用意
- その他のincludeファイルも用意
- TeXの本体ファイル作成
- mdをpandocで変換
- 変換したtexファイルのコピーして手修正(後述)する
- mdの原稿を更新したらpandocで変換し、手修正のものとdiffを取りながらマージする
pandocはbrewでインストールする。
関連でTeXもbrewでインストール+設定
TeX側設定
以下を参考に
http://www.clas.kitasato-u.ac.jp/~fujiwara/MacTeX/
TeXShop の設定を以下のように書き換えます.
- TeXShop を起動し,環境設定を開きます.
- 設定プロファイルから pTeX(ptex2pdf) を選択します.
- OKを押して環境設定を終わり,TeXShopも一度終了します. (注:メニューの「TeXShop」から「TeXShopを終了」を選択する,ということ.)
作業の詳細
pandoc -s test1.md -o test1_0.tex
pandoc test1.md -o test1_1.tex
cp test1_1.tex test1_2.tex
test1_0.tex
から、必要なプリアンブルを取り出しincludeファイル pandoc_pre.tex
にまとめる。
それ以外の自分用includeファイルmyheader.tex
も用意する。
texの本体ファイルdoc1.tex
を作成し、これらのincludeファイル、mdから生成するtest1_2.tex
をインクルードする。
test1_2.tex
はdoc1.tex
をコンパイルした結果を見ながら適宜修正する
(この文章の場合だと次節の^hの部分とか)。
一方でマスター文書test1.md
も別途更新する。
マスターのmarkdown原稿が更新されたら、上の手順でtest1_1.tex
を生成し、
diff -u test1_2.tex test1_1.tex
として新旧を比較して自分が手で修正した部分を踏みつぶさないように気をつけながら、ざっくりtest1_1.tex
からtest1_2.tex
に変更部分を貼り込んで置き換える。
コンパイルして不適切な箇所を探してtest1_2.tex
の方で修正する。
そのほか
VScodeでmarkdownを編集していてdeleteを連打すると、なぜか文字の削除の他に^hが紛れ込む
&&標準では制御文字が非表示なので紛れ込んだ^hが表示されず気づかない。
pandocでmdからtexファイルを生成すると、そのなかにこの^hが引き継がれる。これは
texコンパイル時にエラーを出す。
VScode設定でEditor: Render Control Characters
にチェックを入れる。
ファイル
doc1.tex
の構造
\documentclass[12pt]{jarticle}
\usepackage{newtxtext,newtxmath}
\def\thefootnote{\alph{footnote}}
\include{pandoc_pre}
\include{myheader}
\pagestyle{myheadings}
\title{まーくだうんから\TeX}
\author{わたし}
\date{\today}
\begin{document}
\maketitle
\tableofcontents
%\listoffigures
%\listoftables
\def\baselinestretch{1.25}
%%%%%%
\include{test1_2}
\end{document}
もだんなTeXに追随する
jarticleの代わりにjsarticleを使おうとすると、フォントは大きくなるのに用紙サイズを正しく扱えてないように見える。
以下にあるように
https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=507
\documentclass[12pt, a4paper]{jsarticle}
\usepackage[driver=dvipdfm,truedimen]{geometry}
とするらしい。
さらに、upLaTeXとやらを利用しようとすると
- TeXShop環境設定の設定プロファイルで「upTeX (latexmk)」を選んでおいて
- プリアンブルを以下に変更
\documentclass[12pt, a4paper, uplatex]{jsarticle}
\usepackage[driver=dvipdfm,truedimen]{geometry}