全体的な参照URLなどは「Overleaf + pandoc」。
4年前
4年前にOverleafで実験したときに、次がコンパイルは通った。
\documentclass[a4paper]{bxjsarticle} \usepackage{zxjatype} \usepackage[ipa]{zxjafont} \title{タイトル} \author{著者} \date{\today} % 今日の日付になる \begin{document} \maketitle \tableofcontents \section{節の見出し} ここに段落。こんにちはこんにちは! 次の段落。 さらに次の段落。 \section{次の節の見出し} \end{document}
- bxjsarticle につては、今風なLaTeXに関するメモ
- zx は XeLaTeX を意味してるらしい。Overleaf のデフォルトエンジンは XeLaTeX 。
- latexmkrcは書いてない。つまり、Overleafの設定には何も変更を加えない。
- 目次はスカスカになってしまう。
- 段落のあいだはアキがない。読みにくい。
- ZXjafont パッケージ に解説。
- zxjafont パッケージ(v1.3) がマニュアル。
テンプレートとinput
MarkdownとPandocを用いた簡易Latex環境の構築 (2013年10月16日 -- 2018年03月12日) をもとに変更。
\documentclass[a4paper]{bxjsarticle} \usepackage{zxjatype} \usepackage[ipa]{zxjafont} \usepackage{amsmath,amssymb} \usepackage{graphicx} % \usepackage{bm} % bold math の \bm{...} が使いたいとき % \usepackage{ascmac} % pLaTeXの標準付属パッケージ、おそらく XeLaTeX ではダメだろう \usepackage[dvipdfm]{hyperref} % hypererf は欲しいが、[dvipdfm] オプションはどうだろう? \title{タイトル} \author{著者} \date{\today} % 今日の日付になる \begin {document} \maketitle \input {article.tex} \end{document}
本文を article.tex に分離する。
\section{節の見出し} ここに段落。こんにちはこんにちは! 次の段落。 さらに次の段落。 \section{次の節の見出し}
XeLaTeX はやめた
XeLaTeX で日本語する件について を見ると茨の道のような気がする。あきらめる。
Overleafのブランク・プロジェクトに、次の mklatexrc を設定をする。
$latex = 'uplatex'; $bibtex = 'upbibtex'; $dvipdf = 'dvipdfmx %O -o %D %S'; $makeindex = 'mendex -U %O -o %D %S'; $pdf_mode = 3;
次の例文を表示させたい。
\textbf{ゼータ関数}(zeta function)とは: \begin{equation} % 数式中の漢字 \zeta(s) \stackrel{定義}{=} \sum_{n=1}^\infty \frac{1}{n^s} = \prod_{p\colon 素数}\frac{1}{1-p^{-s}} \end{equation}
それとハイパーリンクは使いたい。
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
手順:
- Blank Project を作る。
- コンパイラの設定を LaTeX にする。pdfLaTex や XeLaTeX ではダメ。
- 上記の mklatexrc を作る。
とりあえず次を試す。
\documentclass[uplatex]{jsarticle} % \documentclass[a4paper]{bxjsarticle} \usepackage{amsmath} \usepackage{graphicx} \usepackage[colorlinks=true, allcolors=blue]{hyperref} \title{タイトル} \author{著者} \date{\today} % 今日の日付になる \begin{document} \maketitle \tableofcontents \section{節の見出し} ここに段落。こんにちはこんにちは! 次の段落。 さらに次の段落。 \section{次の節の見出し} \end{document}
これはOK。
\documentclass[a4paper]{bxjsarticle} に変更するとダメなで、今風なLaTeXに関するメモ に従い、
\documentclass[autodetect-engine,dvipdfmx-if-dvi,ja=standard,a4paper]{bxjsarticle}
まず、dvipdfmx-if-dvi はオブソリート。消したが次のエラー。
Class bxjsarticle Warning: A driver option is MISSING!! You should properly specify one of the valid driver options according to the DVI driver that is in use: dvips, dvipdfmx, dviout, xdvi, nodvidriver.
結局、次でコンパイルは通る。
\documentclass[autodetect-engine,dvipdfmx,ja=standard,a4paper]{bxjsarticle}
テンプレートは次のようになる。
\documentclass[autodetect-engine,dvipdfmx,ja=standard,a4paper]{bxjsarticle} \usepackage{amsmath} \usepackage{graphicx} \usepackage[colorlinks=true, allcolors=blue]{hyperref} \title{タイトル} \author{著者} \date{\today} % 今日の日付になる \begin{document} \maketitle \tableofcontents \input {article.tex} \end{document}
pandoc による変換
とりあえず、
pandoc --top-level-division=section .\ソース.md -o test.tex
- "--top-level-division" は chapter にしたほうがよさそう。
- longtable を使うので、パッケージが必要。\usepackage{longtable}
- テーブルはセンタリングされてしまうが、まーいいだろう。
- “‥‥” は、``‥‥'' に変更してくれる。
- HTMLテーブルはタグがすべて削除される。
- 太字は「\textbf{‥‥}」となる。
- \tightlist でエラーになる。解決策は下。
- "Is \usepackage{booktabs} missing?" というエラーが出始めた。解決策は下。
- TeXコードのエラーが出たが、x_\vec{A} が許されず、x_{\vec{A}} とした。MathJax でノーエラーでも LaTeX でエラーってこともあるようだ。
- スタイルに article とすると、当然に \chapter はエラーとなるので、先頭の \chapter は削除する。
\tightlist でエラー は、Pandoc をアップデートしたら Markdown -> LaTeX -> PDF で失敗する に対策があった。プリアンブルに次を追加。
\def\tightlist{\itemsep1pt\parskip0pt\parsep0pt}
"Is \usepackage{booktabs} missing?" エラーは、[LaTeX] booktabs --- テーブルに横罫線を引く に対策があった。プリアンブルに次を追加。
\usepackage {booktabs}
結論
結局、テンプレートは次のようになる。
\documentclass[autodetect-engine,dvipdfmx,ja=standard,a4paper]{bxjsarticle} \usepackage{amsmath} \usepackage{graphicx} \usepackage[colorlinks=true, allcolors=blue]{hyperref} \usepackage{longtable} \usepackage {booktabs} \def\tightlist{\itemsep1pt\parskip0pt\parsep0pt} \title{タイトル} \author{著者} \date{\today} % 今日の日付になる \begin{document} \maketitle \tableofcontents \input {article.tex} \end{document}
Markdownからの変換コマンドラインは、
pandoc --top-level-division=chapter .\ソース.md -o test.tex
変換後作業として:
- 冒頭の \chapter を削り落とす。
- 削り落としたタイトルをメインファイル側〈テンプレート〉のtitleに入れる。
注意事項:
- HTMLの生タグはすべて無視される。使うべきではない。
- テーブルの見た目はだいぶ変わる。セマンティクスは同じとは言えるが。
追記: LuaLaTeX
エンジンを LuaLaTeX にした場合は次のテンプレートが使える。
\documentclass[a4paper]{ltjsarticle} \usepackage[no-math]{fontspec} \usepackage{amsmath} \usepackage{graphicx} \usepackage[unicode, pdfusetitle, colorlinks=true, allcolors=blue]{hyperref} \usepackage{longtable} \usepackage {booktabs} \def\tightlist{\itemsep1pt\parskip0pt\parsep0pt} \title{タイトル} \author{著者} \date{\today} \begin{document} \maketitle \tableofcontents \input {article.tex} \end{document}