重新映射航向命令

重新映射航向命令

我正在为我的创作工作流程(用 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

pandoc 的用户指南

--top-level-division=[default|section|chapter|part]

将顶级标题视为 LaTeX、ConTeXt、DocBook 和 TEI 输出中的给定划分类型。层次结构顺序为部分、章节,然后是节;所有标题都会移动,以使顶级标题变为指定类型。默认行为是通过启发式方法确定最佳划分类型:除非其他条件适用,否则section选择。当 LaTeX 文档类设置为reportbookmemoir(除非article指定了该选项)时,chapter隐含为此选项的设置。如果beamer是输出格式,指定chapterpart将导致顶级标题变为\part{..},而二级标题保持为其默认类型。

相关内容