evi*_*oup 20 pdf latex epub pandoc
%Title
%Author
#Header 1
Lots of words.
#Header 2
More words.
##Level 2 header
Run Code Online (Sandbox Code Playgroud)
上面的文字可以转成EPUB文件给电子阅读器pandoc -o output.epub input.mkd,可以转成PDF pandoc -o output.pdf input.mkd。后者需要安装乳胶引擎,这可能与回答问题有关。
使用 EPUB,每个 1 级标题都会自动设置在新页面的顶部(较小的标题不是)。对于 PDF,情况并非如此——我不希望它是默认的,因为这与降价的主要目标背道而驰。但是,我无法找到启用此行为的 pandoc 选项。
有谁知道使用 pandoc 启用此行为的方法?编辑配置文件将是一个可以接受的解决方案,但如果语法是基于乳胶的,我会很感激它的解释(配置文件中的含义,而不是对乳胶的全面解释!)。
pandoc 的--chapters选项似乎应该做我想做的……但它
Chapter x在实际标题之前插入,这会导致一些荒谬的东西,例如:第1章
序幕
如果可以驯服该--chapters选项,那将是一个合适的答案。
Joh*_*ane 30
请参阅https://tex.stackexchange.com/questions/9497/start-new-page-with-each-section。
要使用 pandoc 进行这项工作,您需要将以下内容插入到 pandoc 在转换为 PDF 的途中生成的 LaTeX 文档的序言中:
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}
Run Code Online (Sandbox Code Playgroud)
有几种方法可以做到这一点。一种是在序言中使用这些行创建自定义 LaTeX 模板。然后,您可以使用该选项--template mytemplate.latex告诉 pandoc 使用此模板。要获取您可以修改的默认 LaTeX 模板,请执行pandoc -D latex > mytemplate.latex.
另一种选择是创建一个titlesec.tex只有这两行的小文件。然后调用 pandoc 并选择--include-in-header titlesec.tex将其包含在标题中,如下所示:
pandoc --toc --include-in-header titlesec.tex -o output.pdf input1.mkd input2.mkd
Run Code Online (Sandbox Code Playgroud)
evi*_*oup 12
我最终做的是这样的:
pandoc --toc -V documentclass=report -o output.pdf inputs*.mkd
Run Code Online (Sandbox Code Playgroud)
这会导致使用 LaTeX 'report' 文档类(默认情况下,--chapterspandoc 似乎使用 'book' 或 'memoir' 类,它们是为书籍设计的 - 每边一个不同大小的边距以方便书籍装订,章节只从奇数页开始,等等),这将 1 级标题放在页面顶部,但不仅将它们放在奇数页的顶部。
这还是在每章之前插入'Chapter X',还是很烦。我也非常希望目录与标题在同一页面上开始(这发生在“文章”文档类中,但随后章节不会分流到新页面的开头——它们只是从任何地方开始)。但是,我认为获得这些需要比我更多的 LaTeX 知识:我不会将其标记为已接受的答案,因为对此的理想答案将解释如何解决这两个问题。