Pandoc 用户使用指南 - 模板

当使用 -s/--standalone 选项时,Pandoc 使用模板来添加自立文档所需头部和尾部材料。要查看使用的默认模板,只需键入

pandoc -D FORMAT

其中 FORMAT 是输出格式的名称。可以使用 --template 选项指定自定义模板。您也可以通过在用户数据目录(参见 --data-dir)中放置名为 templates/default.*FORMAT* 的文件来覆盖给定输出格式 FORMAT 的系统默认模板。例外情况:

  • 对于 ODT 输出,应定制 default.opendocument 模板。
  • 对于 PDF 输出,应根据所用的转换器定制模板:使用 -t context 时定制 default.context,使用 -t ms 时定制 default.ms,使用 -t html 时则定制 default.html
  • docx 和 pptx 输出没有模板(但您可以使用 --reference-doc 来定制输出)。

如果使用自定义模板,可能需要随着 Pandoc 的更新而修订它们。我们建议跟踪默认模板的变化,并相应地修改您的自定义模板。一个简单的方法是 fork pandoc-templates 存储库,并在每次 Pandoc 发布后合并更改。

模板语法

注释

任何介于 $-- 序列和行尾之间的内容都将被视为注释并从输出中省略。

分隔符

为了在模板中标记变量和控制结构,可以使用 $...$${...} 作为分隔符。样式可以在同一模板中混合使用,但在每种情况下开头和结尾的分隔符必须匹配。开头的分隔符后可以跟一个或多个空格或制表符,这些将被忽略。结尾的分隔符前可以跟一个或多个空格或制表符,这些也将被忽略。

要在文档中包含一个字面上的 $,使用 $$

插值变量

插值变量槽是一个由匹配的分隔符包围的变量名。变量名必须以字母开头,并且可以包含字母、数字、_、- 和 .。关键词 itifelseendifforsependfor 不能用作变量名。示例:

$foo$
$foo.bar.baz$
$foo_bar.baz-bim$
$ foo $
${foo}
${foo.bar.baz}
${foo_bar.baz-bim}
${ foo }

带有点的变量名用于获取结构化变量值。例如,employee.salary 将返回 employee 字段值对象的 salary 字段的值。

  • 如果变量的值是简单值,它将被直接渲染。(注意,不做任何转义;假设调用程序会根据输出格式适当地对字符串进行转义。)
  • 如果值是列表,值将被连接。
  • 如果值是映射,则将渲染字符串 "true"。
  • 所有其他值都将被渲染为空字符串。

条件语句

条件语句以 if(variable)(由匹配的分隔符包围)开始,以 endif(同样由匹配的分隔符包围)结束。它可以可选地包含一个 else(同样由匹配的分隔符包围)。如果变量具有真值,则使用 if 部分,否则使用 else 部分(如果存在)。以下值被视为真:

  • 任何映射
  • 包含至少一个真值的任何数组
  • 任何非空字符串
  • 布尔值 True

请注意

在 YAML 元数据(以及使用 -M/--metadata 在命令行上指定的元数据)中,未加引号的 true 和 false 将被解释为布尔值。但是,使用 -V/--variable 在命令行上指定的变量将始终赋给字符串值。因此,条件 if(foo) 会在使用 -V foo=false 时触发,但在使用 -M foo=false 时不会触发。

示例:

$if(foo)$bar$endif$

$if(foo)$
  $foo$
$endif$

$if(foo)$
part one
$else$
part two
$endif$

${if(foo)}bar${endif}

${if(foo)}
  ${foo}
${endif}

${if(foo)}
${ foo.bar }
${else}
no foo!
${endif}

关键字 elseif 可以用来简化复杂的嵌套条件:

$if(foo)$
XXX
$elseif(bar)$
YYY
$else$
ZZZ
$endif$

循环

循环以 for(variable)(由匹配的分隔符包围)开始,以 endfor(同样由匹配的分隔符包围)结束。

  • 如果变量是数组,循环内的材料将重复评估,每次迭代都将变量设置为数组的一个值,并进行拼接。
  • 如果变量是映射,循环内的材料将设置为该映射。
  • 如果关联变量的值不是数组或映射,将对其进行一次迭代处理其值。

示例:

$for(foo)$$foo$$sep$, $endfor$

$for(foo)$
  - $foo.last$, $foo.first$
$endfor$

${ for(foo.bar) }
  - ${ foo.bar.last }, ${ foo.bar.first }
${ endfor }

$for(mymap)$
$it.name$: $it.office$
$endfor$

您可选择性地在连续值之间使用 sep(被匹配的分隔符包围)来指定一个分隔符。从 sependfor 之间的内容就是这个分隔符。

${ for(foo) }${ foo }${ sep }, ${ endfor }

在循环中,可以使用特殊的代回关键词 it,而不是使用变量。

${ for(foo.bar) }
  - ${ it.last }, ${ it.first }
${ endfor }

部分(Partials)

部分(存储在不同文件中的子模板)可以通过使用部分的名称后跟 () 来包含,例如:

${styles()}

部分将在包含主模板的目录中查找。如果文件名缺少扩展名,将假定它与主模板有相同的扩展名。在调用部分时,也可以使用完整的包括扩展名的名称:

${styles.html()}

如果在模板目录中找不到部分,并且模板路径是相对路径,那么还会在用户数据目录的 templates 子目录中寻找它。

部分可选择应用于变量,使用冒号分隔:

${date:fancy()}
${articles:bibentry()}

如果 articles 是数组,这将遍历它的值,对每个值应用 bibentry() 部分。因此,上面的第二个例子等同于

${ for(articles) }
${ it:bibentry() }
${ endfor }

注意,在迭代部分时必须使用代词关键字 it。在上述示例中,bibentry 部分应该包含 it.title (等等),而不是 articles.title

包含的部分末尾的新行会被省略。

部分可以包含其他部分。

可以在方括号中立即指定数组值之间的分隔符,位于变量名或部分表达式之后:

${months[, ]}$
${articles:bibentry()[; ]$

在这种情况下,分隔符是字面量,并且与显式 for 循环中的 sep 不同,它不能包含插值变量或其他模板指令。

嵌套

为了确保内容 “嵌套”,即后续行缩进,使用 ^ 指令:

$item.number$  $^$$item.description$ ($item.price$)

如果 item.description 包含多行,它们都会缩进与第一行对齐:

00123  A fine bottle of 18-year old
       Oban whiskey. ($148)

要将多行嵌套到相同级别,将它们与模板中的 ^ 指令对齐。例如:

$item.number$  $^$$item.description$ ($item.price$)
               (Available til $item.sellby$.)

将产生:

00123  A fine bottle of 18-year old
       Oban whiskey. ($148)
       (Available til March 30, 2020.)

如果变量单独出现在一行上,前面有空白并且在同一行上没有跟进一步的文本或指令,且变量的值包含多行,则它将自动嵌套。

可断行空格

通常情况下,模板中的空格(与变量插值的值相对)是不可断行的,但可以通过使用 ~ 关键字(以另一个 ~ 结束)使其在模板的某部分变为可断行。

$~$This long line may break if the document is rendered
with a short line length.$~$

管道 (Pipes)

管道用于转换变量或局部模板的值。管道通过在变量名(或局部模板)和管道名之间使用斜杠(/)来指定。例如:

$for(name)$
$name/uppercase$
$endfor$

$for(metadata/pairs)$
- $it.key$: $it.value$
$endfor$

$employee:name()/uppercase$

管道可以链式调用:

$for(employees/pairs)$
$it.key/alpha/uppercase$. $it.name$
$endfor$

某些管道接受参数:

|----------------------|------------|
$for(employee)$
$it.name.first/uppercase/left 20 "| "$$it.name.salary/right 10 " | " " |"$
$endfor$
|----------------------|------------|

当前预定义的管道有:

  • pairs: 将地图或数组转换为包含 key 和 value 字段的数组。如果原始值是数组,key 会从 1 开始的数组索引。
  • uppercase: 将文本转换为大写。
  • lowercase: 将文本转换为小写。
  • length: 返回值的长度:对于文本值是字符数,对于地图或数组是元素数量。
  • reverse: 反转文本值或数组,对其他值无影响。
  • first: 应用于非空数组时返回数组的第一个值;否则返回原始值。
  • last: 应用于非空数组时返回数组的最后一个值;否则返回原始值。
  • rest: 应用于非空数组时返回除第一个值以外的所有值;否则返回原始值。
  • allbutlast: 应用于非空数组时返回除最后一个值以外的所有值;否则返回原始值。
  • chomp: 去除尾随的换行符(及可断行空格)。
  • nowrap: 在可断行空格上禁用换行。
  • alpha: 将可以读作整数的文本值转换为小写字母 a..z(模 26)。这可用于从数组索引获取字母编号。要获得大写字母,可链接使用 uppercase
  • roman: 将可以读作整数的文本值转换为小写罗马数字。这可用于从数组索引获取字母编号。要获得大写罗马数字,可链接使用 uppercase
  • left n "leftborder" "rightborder": 将文本值渲染到宽度为 n 的块中,左对齐,并可选地带有左右边界。对其他值无效。这可用于对表中的材料进行对齐。宽度是表示字符数量的正整数。边界是双引号内的字符串;字面的 " 和 \ 字符必须进行反斜杠转义。
  • right n "leftborder" "rightborder": 将文本值渲染到宽度为 n 的块中,右对齐,并对其他值无效。
  • center n "leftborder" "rightborder": 将文本值渲染到宽度为 n 的块中,居中对齐,并对其他值无效。

变量

元数据变量

title, author, date

识别文档的基本方面。通过 LaTeX 和 ConTeXt 包含在 PDF 元数据中。这些可以通过 pandoc 标题块设置,允许多个作者,或者通过 YAML 元数据块 设置。

---
author:
  - Aristotle
  - Peter Abelard

请注意

如果您只想设置 PDF 或 HTML 的元数据,而不希望在文档本身中包含标题块,您可以设置 title-metaauthor-metadate-meta 这些变量。(默认情况下,这些变量会根据 titleauthordate 自动设置。)HTML 中的页面标题由 pagetitle 设置,默认情况下它等于 title

子标题 (subtitle)

文档副标题,包含在 HTML、EPUB、LaTeX、ConTeXt 和 docx 文档中。

摘要 (abstract)

文档摘要,包含在 HTML、LaTeX、ConTeXt、AsciiDoc 和 docx 文档中。

摘要标题 (abstract-title)

摘要的标题,目前仅在 HTML、EPUB 和 docx 中使用。这将根据 lang 自动设置为本地化值,但也可以手动覆盖。

关键词 (keywords)

要包含在 HTML、PDF、ODT、pptx、docx 和 AsciiDoc 元数据中的关键词列表;如同作者一样重复。

主题 (subject)

文档主题,包含在 ODT、PDF、docx、EPUB 和 pptx 元数据中。

描述 (description)

文档描述,包含在 ODT、docx 和 pptx 元数据中。某些应用将其显示为“评论”元数据。

类别 (category)

文档类别,包含在 docx 和 pptx 元数据中。

此外,任何根级别的字符串元数据,不包括在 ODT、docx 或 pptx 元数据中,都会被添加为自定义属性。下面的 YAML 元数据块为例:

---
title: "This is the title"
subtitle: "This is the subtitle"
author:
  - Author One
  - Author Two
description: |
  This is a long
  description.

  It consists of two paragraphs

在转换为 docx、ODT 或 pptx 时,将包括标题、作者和描述作为标准文档属性,并将副标题作为自定义属性包含进去。

语言变量

lang

使用 IETF 语言标签(遵循 BCP 47 标准)如 enen-GB 来标识文档的主要语言。可以使用 Language 子标签 查找工具来查找或验证这些标签。这会影响到大多数格式,并且当使用 LaTeX(通过 babelpolyglossia)或 ConTeXt 时,它控制 PDF 输出中的断字。

要在文档中切换语言,请使用带有 lang 属性的原生 pandoc Div 和 Span

---
lang: en-GB
...

使用主要文档语言(英式英语)编写的文本。

::: {lang=fr-CA}
> 这段引用是用加拿大法语书写的。
:::

更多的英文文本。 ['德语引用.']{lang=de}

dir

基础脚本方向,可以是 rtl(从右至左)或 ltr(从左至右)。

对于双向文档,在某些输出格式中,可以使用带有 dir 属性(值为 rtl 或 ltr)的原生 pandoc spandiv 来覆盖基础方向。如果最终渲染器(例如,在生成 HTML 时的浏览器)支持 Unicode 双向算法,则可能并不总是需要这样做。

在处理双向文档时使用 LaTeX,目前仅完全支持 xelatex 引擎( 请使用 --pdf-engine=xelatex )。

HTML 变量

document-css

启用大部分 CSS 的包含(查看 pandoc --print-default-data-file=templates/styles.html)。除非使用 --css,否则默认情况下此变量设置为 true。你可以通过例如 pandoc -M document-css=false 来禁用它。

mainfont

设置 HTML 元素上的 CSS font-family 属性。

fontsize

设置基础的 CSS 字体大小,通常您会将其设置为例如 20px,但它也接受 pt 单位(12pt 大约等于大多数浏览器中的 16px)。

fontcolor

设置 HTML 元素上的 CSS color 属性。

linkcolor

设置所有链接的 CSS color 属性。

monofont

设置代码元素的 CSS font-family 属性。

monobackgroundcolor

设置代码元素的 CSS background-color 属性并增加额外的内边距。

linestretch

设置 HTML 元素的 CSS line-height 属性,推荐不带单位。

maxwidth

设置 HTML 元素的 CSS max-width 属性(默认值为 32em)。

backgroundcolor

设置 HTML 元素的 CSS background-color 属性。

margin-left, margin-right, margin-top, margin-bottom

设置 body 元素对应的 CSS padding 属性。

要只为一个文档覆盖或扩展某些 CSS,可以:

---
header-includes: |
  <style>
  blockquote {
    font-style: italic;
  }
  tr.even {
    background-color: #f0f0f0;
  }
  td, th {
    padding: 0.5em 2em 0.5em 0.5em;
  }
  tbody {
    border-bottom: none;
  }
  </style>
---

HTML 数学变量

classoption

当使用 --katex 时,你可以使用 YAML 元数据 或 -M classoption=fleqn 使显示数学公式左对齐。

HTML 幻灯片变量

这些影响当使用 pandoc 生成幻灯片展示 的 HTML 输出。

institute

作者所属机构:当有多个作者时,可以是列表。

revealjs-url

reveal.js 文档的基础 URL(默认为 https://unpkg.com/reveal.js@^4/ )。

s5-url

S5 文档的基础 URL(默认为 s5/default )。

slidy-url

Slidy 文档的基础 URL(默认为 https://www.w3.org/Talks/Tools/Slidy2 )。

slideous-url

Slideous 文档的基础 URL(默认为 slideous )。

title-slide-attributes

reveal.js 幻灯片展示的标题幻灯片额外属性。参见 reveal.js、beamer 和 pptx 中的 background 示例

所有 reveal.js 配置选项 均可作为变量使用。要关闭在 reveal.js 中默认为 true 的布尔标志,请使用 0。

Beamer 幻灯片变量

这些变量改变使用 beamer 生成的 PDF 幻灯片的外观。

aspectratio

幻灯片的宽高比(43 表示 4:3[默认],169 表示 16:9,1610 表示 16:10,149 表示 14:9,141 表示 1.41:1,54 表示 5:4,32 表示 3:2)。

beameroption

添加额外的 beamer 选项,使用 \setbeameroption{}

institute

作者所属机构:当有多个作者时,可以是列表。

logo

幻灯片的 logo 图片。

navigation

控制导航符号(默认为空,即无导航符号;其他有效值包括 frameverticalhorizontal )。

section-titles

启用新节的 “标题页”(默认为 true)。

theme, colortheme, fonttheme, innertheme, outertheme

beamer 主题。

themeoptions

LaTeX beamer 主题的选项(列表形式)。

titlegraphic

标题幻灯片的图片。

titlegraphicoptions

标题幻灯片图片的选项。

PowerPoint 变量

这些变量控制幻灯片展示的视觉方面,这些方面不容易通过模板控制。

monofont

用于代码的字体。

LaTeX 变量

Pandoc 在使用 LaTeX 引擎 创建 PDF 时使用这些变量。

布局

  • block-headings

    • 使 \paragraph\subparagraph (第四级和第五级标题,或书籍类别的第五级和第六级)成为独立的而不是嵌入式的;需要进一步的格式化以区别于第三级或第四级标题( \subsubsection )。除了使用此选项外,KOMA-Script 可以更广泛地调整标题:

      ---
      documentclass: scrartcl
      header-includes: |
      \RedeclareSectionCommand[
          beforeskip=-10pt plus -2pt minus -1pt,
          afterskip=1sp plus -1sp minus 1sp,
          font=\normalfont\itshape]{paragraph}
      \RedeclareSectionCommand[
          beforeskip=-10pt plus -2pt minus -1pt,
          afterskip=1sp plus -1sp minus 1sp,
          font=\normalfont\scshape,
          indent=0pt]{subparagraph}
      ...
      
  • classoption

    • 文档类选项,如 oneside;多次重复以添加多个选项。

      ---
      classoption:
        - twocolumn
        - landscape
      ...
      
  • documentclass

    • 文档类:通常是标准类之一,如 articlebookreportKOMA-Script 的等价物 scrartcl、scrbook 和 scrreprt,默认为较小的边距;或者使用 memoir
  • geometry

    • geometry 包的选项,如 margin=1in;多次重复以添加多个选项。

      ---
      geometry:
        - top=30mm
        - left=20mm
        - heightrounded
      ...
      
  • hyperrefoptions

    • hyperref 包的选项,如 linktoc=all;多次重复以添加多个选项。

      ---
      hyperrefoptions:
        - linktoc=all
        - pdfwindowui
        - pdfpagemode=FullScreen
      ...
      
  • indent

    • 如果为真,Pandoc 将使用文档类设置进行缩进(默认的 LaTeX 模板则移除缩进并增加段落间的空间)。
  • linestretch

    • 使用 setspace 包调整行距,例如 1.25、1.5。
  • margin-left, margin-right, margin-top, margin-bottom

    • 设置边距,如果不使用 geometry(否则 geometry 会覆盖这些设置)。
  • pagestyle

    • 控制 \pagestyle{} :默认的文章类支持 plain(默认)、empty(无页眉或页码)和 headings(节标题在页眉中)。
  • papersize

    • 纸张大小,如 letter、a4。
  • secnumdepth

    • 使用 --number-sections 选项或 numbersections 变量时,章节的编号深度。
  • beamerarticle

    • 从 Beamer 幻灯片产生文章。
  • handout

    • 从 Beamer 幻灯片产生讲义版本(将叠加图合并到单个幻灯片上)。

字体

  • fontenc

    • 允许通过 fontenc 包指定字体编码(使用 pdflatex);默认为 T1(参见 LaTeX 字体编码指南 )。
  • fontfamily

  • fontfamilyoptions

    • 作为 fontfamily 使用的包的选项;多次重复以添加多个选项。例如,使用 Libertine 字体及其比例小写(旧式)数字,通过 libertinus 包:

      ---
      fontfamily: libertinus
      fontfamilyoptions:
        - osf
        - p
      ...
      
  • fontsize

    • 正文文本的字号。标准类允许 10pt、11pt 和 12pt。要使用其他尺寸,请将 documentclass 设置为 KOMA-Script 类之一,如 scrartcl 或 scrbook。
  • mainfont, sansfont, monofont, mathfont, CJKmainfont, CJKsansfont, CJKmonofont

    • 与 xelatex 或 lualatex 一起使用的字体家族:取任何系统字体的名称,通过 fontspec 包。CJKmainfont 使用 xecjk 包。
  • mainfontoptions, sansfontoptions, monofontoptions, mathfontoptions, CJKoptions

    • 与 mainfont、sansfont、monofont、mathfont、CJKmainfont 在 xelatex 和 lualatex 中使用的选项。允许通过 fontspec 提供的任何选择;多次重复以添加多个选项。例如,使用具有小写数字的 TeX Gyre 版 Palatino:

      ---
      mainfont: TeX Gyre Pagella
      mainfontoptions:
        - Numbers=Lowercase
        - Numbers=Proportional
      ...
      
  • mainfontfallback, sansfontfallback, monofontfallback

    • 如果在 mainfont、sansfont 或 monofont 中找不到字形,则尝试的字体。这些是列表。字体名称后必须跟随一个冒号,然后可以是可选的一组选项,例如:

      ---
      mainfontfallback:
        - "FreeSans:"
        - "NotoColorEmoji:mode=harf"
      ...
      

      字体回退目前仅与 lualatex 兼容。

  • babelfonts

    • Babel 语言名称(如 chinese)到语言所使用的字体的映射:

      ---
      babelfonts:
        chinese-hant: "Noto Serif CJK TC"
        russian: "Noto Serif"
      ...
      
  • microtypeoptions

    • 传递给 microtype 包的选项。
  • colorlinks

    • 在链接文本中添加颜色;如果设置了 linkcolor、filecolor、citecolor、urlcolor 或 toccolor 中的任何一个,则自动启用。
  • boxlinks

    • 在链接周围添加可见框(如果设置了 colorlinks 则无效)。
  • linkcolor, filecolor, citecolor, urlcolor, toccolor

    • 内部链接、外部链接、引用链接、链接的 URL 以及目录中的链接的颜色,分别对应上述变量:使用 xcolor 允许的选项,包括 dvipsnames、svgnames 和 x11names 列表。
  • links-as-notes

    • 使链接以脚注的形式打印出来。
  • urlstyle

    • URL 的样式(例如,tt、rm、sf,默认为 same)。

前言

  • lof, lot

    • 包含图表索引、表格索引。
  • thanks

    • 文档标题后的致谢脚注内容。
  • toc

  • toc-depth

    • 目录中包含的节

BibLaTeX 文献

这些变量在使用 BibLaTeX 进行 引文渲染 时起作用。

  • biblatexoptions

    • 列表,用于指定 biblatex 的选项。
  • biblio-style

  • biblio-title

  • bibliography

    • 用于解析引用的参考文献文件。
  • natbiboptions

    • 由逗号分隔的 natbib 选项列表。

ConTeXt 中的变量

Pandoc 在使用 ConTeXt 创建 PDF 时使用这些变量。

  • fontsize

    • 正文文本的字体大小(例如,10pt,12pt)。
  • headertext, footertext

    • 用于页面页眉或页脚的文本(参见 ConTeXt 页眉和页脚 );重复最多四次以放置在不同位置。
  • indenting

    • 控制段落缩进,例如 yes,small,next(参见 ConTeXt 缩进 );重复以指定多个选项。
  • interlinespace

    • 调整行间距,例如 4ex(使用 setupinterlinespace );重复以指定多个选项。
  • layout

    • 页面边距和文本排列的选项(参见 ConTeXt 布局 );重复以指定多个选项。
  • linkcolor, contrastcolor

    • 外部和内部页面链接的颜色,例如红色、蓝色(参见 ConTeXt 颜色 )。
  • linkstyle

    • 链接的字体样式,例如 normal, bold, slanted, boldslanted, type, cap, small。
  • lof, lot

    • 包含图目录和表目录。
  • mainfont, sansfont, monofont, mathfont

  • mainfontfallback, sansfontfallback, monofontfallback

    • 如果在主字体中找不到字形,则尝试按顺序列出的字体。使用 \definefallbackfamily 兼容的字体名称语法。不支持表情符号字体。
  • margin-left, margin-right, margin-top, margin-bottom

    • 设置边距,如果不使用 layout(否则 layout 会覆盖这些设置)。
  • pagenumbering

  • papersize

    • 纸张尺寸,例如 letter, A4, landscape(参见 ConTeXt 纸张设置 );重复以指定多个选项。
  • pdfa

    • 在前言中添加必要的设置以生成指定类型的 PDF/A,例如 1a:2005, 2a。如果没有指定类型(即值设置为 True,例如通过 --metadata=pdfa 或 YAML 元数据块中的 pdfa: true ),出于向后兼容性的考虑,默认使用 1b:2005。仅使用 --variable=pdfa 而不指定值是不支持的。为了成功生成 PDF/A,必须有必需的 ICC 色彩配置文件可用,并且内容和所有包含的文件(如图像)都必须符合标准。ICC 配置文件和输出意图可以通过变量 pdfaiccprofilepdfaintent 指定。更多细节参见 ConTeXt PDFA
  • pdfaiccprofile

    • 与 pdfa 一起使用时,指定 PDF 中使用的 ICC 配置文件,例如 default.cmyk。如果未指定,默认使用 sRGB.icc。可以重复以包括多个配置文件。注意,这些配置文件必须在系统上可用。它们可以从 ConTeXt ICC 配置文件库获取。
  • pdfaintent

    • pdfa 一起使用时,指定颜色的输出意图,例如 ISO coated v2 300\letterpercent\space (ECI) 。如果未指定,默认使用 sRGB IEC61966-2.1
  • toc

    • 包含目录(也可以通过 --toc/--table-of-contents 设置)。
  • urlstyle

    • 无链接文本的链接的字体样式,例如 normal, bold, slanted, boldslanted, type, cap, small。
  • whitespace

    • 段落之间的间距,例如 none, small(使用 setupwhitespace )。
  • includesource

    • 将所有源文档作为文件附件包含在 PDF 文件中。

wkhtmltopdf 中的变量

Pandoc 在使用 wkhtmltopdf 创建 PDF 时使用这些变量。--css 选项也影响输出。

  • footer-html, header-html

    • 在页脚和页眉中添加信息。
  • margin-left, margin-right, margin-top, margin-bottom

    • 设置页面边距。
  • papersize

    • 设置 PDF 纸张尺寸。

man 页面中的变量

  • adjusting

    • 调整文本到左(l)、右(r)、居中(c)或两边(b)的边距。
  • footer

    • man 页面中的页脚。
  • header

    • man 页面中的页眉。
  • section

    • man 页面中的章节号。

Texinfo 中的变量

  • version

    • 软件版本(用于标题和标题页)。
  • filename

    • 要生成的信息文件的名称(默认基于 texi 文件名)。

Typst 中的变量

  • margin

    • 根据 Typst 文档定义的字典字段:x, y, top, bottom, left, right。
  • papersize

    • 纸张尺寸:a4, us-letter 等。
  • mainfont

    • 用于主字体的系统字体名称。
  • fontsize

    • 字体大小(例如,12pt)。
  • section-numbering

    • 用于编号章节的模式,例如 1.A.1。
  • columns

    • 正文文本的列数。

ms 中的变量

  • fontfamily

    • 字体家族:A (Avant Garde), B (Bookman), C (Helvetica), HN (Helvetica Narrow), P (Palatino), 或 T (Times New Roman)。此设置不影响源代码,源代码始终使用等宽的 Courier 显示。这些内置字体在字符覆盖方面有限。可以使用 Peter Schaffter 提供的 install-font.sh 脚本安装额外的字体,并在其 网站 上有详细记录。
  • indent

    • 段落缩进(例如 2m)。
  • lineheight

    • 行高(例如 12p)。
  • pointsize

    • 点大小(例如 10p)。

Pandoc 自动设置的变量

Pandoc 根据选项或文档内容自动设置这些变量,用户也可以修改它们。这些变量根据输出格式而变化,包括但不限于:

  • body

    • 文档主体。
  • date-meta

    • 日期变量转换为 ISO 8601 YYYY-MM-DD 格式,包含在所有基于 HTML 的格式中(dzslides, epub, html, html4, html5, revealjs, s5, slideous, slidy)。日期的识别格式包括:mm/dd/yyyy, mm/dd/yy, yyyy-mm-dd(ISO 8601), dd MM yyyy(例如 02 Apr 2018 或 02 April 2018), MM dd, yyyy(例如 Apr. 02, 2018 或 April 02, 2018), yyyy[mm[dd]](例如 20180402, 201804 或 2018)。
  • header-includes

    • -H/--include-in-header 指定的内容(可能有多个值)。
  • include-before

    • -B/--include-before-body 指定的内容(可能有多个值)。
  • include-after

    • -A/--include-after-body 指定的内容(可能有多个值)。
  • meta-json

    • 文档所有元数据的 JSON 表示形式。字段值将转换为选定的输出格式。
  • numbersections

    • 如果指定了 -N/--number-sections ,则非空值。
  • sourcefile, outputfile

    • 命令行上给出的源文件和目标文件名。sourcefile 也可能是一个列表,如果输入来自多个文件,或者如果输入来自 stdin 则为空。你可以使用以下模板中的代码片段来区分它们:

      $if(sourcefile)$
      $for(sourcefile)$
      $sourcefile$
      $endfor$
      $else$
      (stdin)
      $endif$
      

      同样,outputfile 可以是 - ,如果输出到终端。

      如果需要绝对路径,使用例如 $curdir$/$sourcefile$

  • curdir

    • 运行 pandoc 的工作目录。
  • pandoc-version

    • pandoc 版本。
  • toc

    • 如果指定了 --toc/--table-of-contents ,则为非空值。
  • toc-title

    • 目录的标题(仅适用于 EPUB, HTML, revealjs, opendocument, odt, docx, pptx, beamer, LaTeX)。注意,在 docx 和 pptx 中,自定义的 toc-title 将从元数据中提取,但不能作为变量设置。
在本文档中