我正在为我的创作工作流程(用 Markdown 编写,通过 Pandoc->LaTeX 生成 PDF)编写一对 Pandoc 模板和 LaTeX 包。在 Markdown 文档中,可以选择文档类型,从而可以加载不同的文档类别(书籍、报告、文章、演示文稿或信件类别)。
不幸的是,我无法让 Pandoc 动态调整标题级别到 LaTeX 命令的映射。因此,中间 LaTeX 文件将始终具有\section{}
第一级标题、\subsection{}
第二级标题等,因为它适合文章类别。
我能Pandoc 模板中执行的操作是有条件地执行 LaTeX 命令,因此建议适当地重新映射 LaTeX 分段命令。我的问题是:是否可以“重新映射”所有分段命令,还是必须通过复制其原始定义来“重新创建”它们?
如果我做
\renewcommand{\chapter}[1]{\part{#1}}
它似乎正确地将章节转换为部分。但是,如果我这样做
\renewcommand{\chapter}[1]{\part{#1}}
\renewcommand{\section}[1]{\chapter{#1}}
两个部分和章节最终变成了部分。我明白为什么会发生这种情况,因为\section
映射到\chapter
已经是\part
(这两个命令的顺序似乎没有区别,这正是我所希望的)。
将所有标题级别按固定数移动的最佳(唯一?)方法是什么?
答案1
从您计划使用的最低切片级别开始:
\let\subsubsection\subsection
\let\subsection\section
\let\section\chapter
\let\chapter\part
其中\let
一个基本上复制了当前的定义。
答案2
您可以使用选项指定pandoc
使用part
顶层--top-level-division=part
--top-level-division=[default|section|chapter|part]
将顶级标题视为 LaTeX、ConTeXt、DocBook 和 TEI 输出中的给定划分类型。层次结构顺序为部分、章节,然后是节;所有标题都会移动,以使顶级标题变为指定类型。默认行为是通过启发式方法确定最佳划分类型:除非其他条件适用,否则
section
选择。当 LaTeX 文档类设置为report
、book
或memoir
(除非article
指定了该选项)时,chapter
隐含为此选项的设置。如果beamer
是输出格式,指定chapter
或part
将导致顶级标题变为\part{..}
,而二级标题保持为其默认类型。