TeX
Markdown
Pandoc

Markdown -> pandoc -> TeX と変換してドキュメント作成する手順


Markdown -> pandoc -> TeX と変換してドキュメント作成する手順

コード断片・変数名・ファイル名(アンダースコアを含む)などの表現がMD, pandoc由来だと綺麗だった。

TeXのみでverbatimなどで調節するのはかなり困難だった。

よって、原稿作成にはTeXを使うものの、さらにそのマスターをMarkdownで作成する手法を確立する。


作業の手順


  1. mdでドキュメント作成する(例:このファイル)

  2. pandoc用includeファイルを用意

  3. その他のincludeファイルも用意

  4. TeXの本体ファイル作成

  5. mdをpandocで変換

  6. 変換したtexファイルのコピーして手修正(後述)する

  7. mdの原稿を更新したらpandocで変換し、手修正のものとdiffを取りながらマージする

pandocはbrewでインストールする。

関連でTeXもbrewでインストール+設定


TeX側設定

以下を参考に

http://www.clas.kitasato-u.ac.jp/~fujiwara/MacTeX/


TeXShop の設定を以下のように書き換えます.


  1. TeXShop を起動し,環境設定を開きます.

  2. 設定プロファイルから pTeX(ptex2pdf) を選択します.

  3. 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.texdoc1.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とやらを利用しようとすると


  1. TeXShop環境設定の設定プロファイルで「upTeX (latexmk)」を選んでおいて

  2. プリアンブルを以下に変更

\documentclass[12pt, a4paper, uplatex]{jsarticle}

\usepackage[driver=dvipdfm,truedimen]{geometry}