web-dev-qa-db-ja.com

pandocが生成したPDF

%Title
%Author

#Header 1

Lots of words.

#Header 2

More words.

##Level 2 header

上記のテキストは、pandoc -o output.epub input.mkdを使用してe-readerのEPUBファイルに変換でき、PDF with pandoc -o output.pdf input.mkdに変換できます。後者には、latexエンジンが必要ですこれは、質問への回答に関連する場合があります。

EPUBを使用すると、各レベル1ヘッダーが新しいページの上部に自動的に設定されます(それ以下のヘッダーは設定されません)。 PDFの場合、これは当てはまりません-マークダウンの主な目的に反するため、デフォルトであるとは思わないでしょう。ただし、この動作を有効にするためのpandocオプションを見つけるのに問題があります。

Pandocでこの動作を有効にする方法を知っている人はいますか?構成ファイルを編集することは許容できる解決策ですが、構文がlatexベースの場合は、その説明(構成ファイルの内容の意味であり、latexの包括的な説明ではありません!)をいただければ幸いです。

pandocの--chaptersオプションは、私がやりたいことをするようです...しかし、それは

  • 章を奇数ページにのみ表示し、必要に応じて空白ページを挿入します(興味深いですが、私が望んでいるものではありません。これをA4用紙に印刷して、ブックスタイルでレイアウトすることはないので、ここでの美的ポジティブは、紙の無駄によって相殺されます)
  • 実際のヘッダーの前にChapter xを挿入すると、次のようなとんでもないことが起こります。

第1章

プロローグ

--chaptersオプションを飼いならすことが可能な場合、それは適切な答えです。

20
evilsoup

https://tex.stackexchange.com/questions/9497/start-new-page-with-each-section を参照してください。

Pandocでこれを機能させるには、PDFへの途中でpandocが生成するLaTeXドキュメントのプリアンブルに以下を挿入する必要があります。

\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}

それにはいくつかの方法があります。 1つは、プリアンブルにこれらの行を含むカスタムLaTeXテンプレートを作成することです。次に、オプション--template mytemplate.latexを使用して、このテンプレートを使用するようpandocに指示できます。変更可能なデフォルトのLaTeXテンプレートを取得するには、pandoc -D latex > mytemplate.latexを実行します。

もう1つのオプションは、これらの2行だけの小さなファイルtitlesec.texを作成することです。次に、--include-in-header titlesec.texオプションを付けてpandocを呼び出し、ヘッダーに次のように含めます。

pandoc --toc --include-in-header titlesec.tex -o output.pdf input1.mkd input2.mkd
29
John MacFarlane

私がやったことはこれでした:

pandoc --toc -V documentclass=report -o output.pdf inputs*.mkd

これにより、LaTeXの「レポート」ドキュメントクラスが使用されます(デフォルトでは、--chapters、pandocは、ブック用に設計された「book」または「memoir」クラスを使用しているようです-製本を容易にするために片側に異なるサイズのマージン、奇数ページからのみ始まるチャプターなど)。ページの上部に1つのヘッダーがありますが、onlyは奇数ページの上部に配置されません。

これは依然として各章の前に「Chapter X」を挿入しますが、それはまだ迷惑です。また、目次をタイトルと同じページから開始したいと思います(これは「記事」ドキュメントクラスで発生しますが、章は新しいページの先頭に移動せず、どこからでも開始できます)。ただし、私はthinkを取得するには、私が持っているよりも多くのLaTeXの知識が必要であることを示します。これに対する受け入れられた回答としてこれをマークするつもりはありません。 2つの問題。

11
evilsoup

また、2年以上経って、この問題にも遭遇し続けました。これを見つけたこの問題に遭遇した他の人のために...

John の回答と他のリンクが含まれているおかげで、pandoc -Hオプションを使用してファイルで次のように使用すると、問題なく動作するようです。

% https://superuser.com/questions/601469/getting-chapters-to-start-on-a-new-page-in-a-pandoc-generated-pdf
% http://tex.stackexchange.com/questions/120740/how-do-i-remove-chapter-n-from-the-chapter-titles-of-a-book
\usepackage{titlesec}
\usepackage{fancyhdr}

\newcommand{\sectionbreak}{\clearpage}
\titleformat{\chapter}[display]{\normalfont\bfseries}{}{0pt}{\Large}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RE]{\leftmark}
\fancyhead[LO]{\rightmark}
\fancyhead[LE,RO]{\thepage}
\renewcommand\headrulewidth{0pt}
\renewcommand\chaptermark[1]{\markboth{#1}{}} 
\renewcommand\sectionmark[1]{\markright{\thesection.\ #1}}

これを使用して、--chaptersオプションをpandocに使用すると、PDFチャプターが新しいページにChapter XX:ページ見出しなしで生成されます。-V documentclass=reportを使用すると、ページなしで目的の結果が生成されます- bookドキュメントクラスによって生成された奇数ページ番号のスキップと新章の現象。

1
Eugéne

同じ問題があり、YAMLメタデータフィールドのみを使用して自分のソリューションを投稿することがわかった。

documentclass: report
header-includes:
- \renewcommand{\chaptername}{}
- \renewcommand{\thechapter}{}
0