web-dev-qa-db-ja.com

Pandocを使用したカスタムプリアンブルを使用したMarkdownからLaTeXへの変換

-Hまたは--include-in-headerコマンドを使用して、生成された出力にカスタムプリアンブルを含めることができることを知っています。問題は Pandoc に私のプリアンブルが含まれているが、その前に別のプリアンブルが置かれていることです。

\documentclass{article}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\ifxetex
  \usepackage{fontspec,xltxtra,xunicode}
  \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\else
  \ifluatex
    \usepackage{fontspec}
    \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
  \else
    \usepackage[utf8]{inputenc}
  \fi
\fi
\ifxetex
  \usepackage[setpagesize=false, % page size defined by xetex
              unicode=false, % unicode breaks when used with xetex
              xetex]{hyperref}
\else
  \usepackage[unicode=true]{hyperref}
\fi
\hypersetup{breaklinks=true, pdfborder={0 0 0}}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\setlength{\emergencystretch}{3em}  % prevent overfull lines
\setcounter{secnumdepth}{0}

[... my preamble ...]

これは、PandocがtemplatesフォルダからロードするデフォルトのLaTeXプリアンブル(default.latex)であることを知っています。 --include-after-body\end{document}と一緒に使用すると、同じことが起こります。

これは私が使用しているコマンドです:

pandoc -o output.tex input.txt --include-before-body=header.tex --include-after-body=footer.tex
16
John

あなたが発見したように、--include-in-headerはPandocのLaTeXテンプレートで指定されたプリアンブルにテキストを追加します。実行しようとしていることを実行するには、いくつかの方法があります。

  1. 完全にカスタムなプリアンブルが必要な場合は、次を使用してテンプレートファイルを指定する必要があります

    pandoc -o output.tex --template=FILE input.txt
    

    テンプレートには、変数($title$、さらに重要なのは$body$など)と条件を含めることができます。インスピレーションを得たい場合は、次のコマンドを使用してデフォルトのテンプレートをチェックアウトできます

    pandoc -D latex
    
  2. 新しいテンプレートを一度だけ使用したい場合は、テンプレートを作成してdefault.latexと呼び、テンプレートディレクトリ(UNIXマシンでは~/.pandoc/templates/)に配置できます。この場合、次の呼び出しにより、テンプレートを使用することを指定する必要があります

    pandoc -o output.tex --standalone input.txt
    
  3. テンプレートをまったく扱わない場合は、単に実行することができます

    pandoc -o output.tex input.txt
    

    結果は、LaTeXの裸のドキュメントになります。つまり、プリアンブルなしで\begin{document}または\end{document}になります。次に、自分でプリアンブルを追加できます。この方法を使用すると、メタデータ(タイトル、作成者)が失われることに注意してください。

テンプレートの作成方法と使用方法の詳細については、 Pandocの優れたmanページ を参照してください。

20
Nathan Grigg