gpt4 book ai didi

latex - Pandoc 生成的 PDF : Change list numbering style

转载 作者:行者123 更新时间:2023-12-02 01:32:00 25 4
gpt4 key购买 nike

如何改变Pandoc生成的有序列表中数字的样式?

对于下面的Markdown输入

1. One
2. Two
1. Sub 1
2. Sub 2

Pandoc 生成以下 Latex 输出

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\itemsep1pt\parskip0pt\parsep0pt
\item
One
\item
Two

\begin{enumerate}
\def\labelenumii{\arabic{enumii}.}
\itemsep1pt\parskip0pt\parsep0pt
\item
Sub 1
\item
Sub 2
\end{enumerate}
\end{enumerate}

这导致以下 PDF 输出:

1. One
2. Two
1. Sub 1
2. Sub 2

当我努力实现的时候

1. One
2. Two
2.1. Sub 1
2.2. Sub 2

我尝试使用这些命令在默认模板中重新定义编号样式

\renewcommand{\labelenumii}{\theenumii}
\renewcommand{\theenumii}{\theenumi.\arabic{enumii}.}

但是当 Pandoc 为 labelenumii 生成显式定义时,此解决方案不起作用。

更新

事实证明,问题可以通过使用 #. 符号而不是 1. 符号来解决。无论出于何种原因,Pandoc 只为以这种方式定义的列表跳过样式,并将标准 Markdown 符号解释为使用纯数字样式列表的指令。希望在未来的版本中它会更灵活一些,并将添加对列表中嵌套数字的支持。

最佳答案

编辑

This function添加 \def\labelenumi{} 部分的 Latex writer 检查 numstyle == DefaultStyle && numdelim == DefaultDelim。正如@oleg 发现的那样,这可以通过 #. 列表标记来完成,因此它应该可以工作:

---
header-includes:
- \renewcommand{\labelenumii}{\theenumii}
- \renewcommand{\theenumii}{\theenumi.\arabic{enumii}.}
---

#. One
#. Two
#. Sub 1
#. Sub 2

有两个功能请求要求问题跟踪器(3361627)以及一个 discussion on the mailing list 上的原生 Markdown 解决方案。 .

预编辑答案

当然,您始终可以编译为 Latex,对文件进行后处理以删除那些 \def\labelenumi{} 行,然后编译 Latex 文件。这是一个使用标准 latex 模板的示例。

测试.md

---
header-includes:
- \renewcommand{\labelenumii}{\theenumii}
- \renewcommand{\theenumii}{\theenumi.\arabic{enumii}.}
---

1. One
2. Two
1. Sub 1
2. Sub 2

命令:

pandoc test.md -t latex -s | sed '/\\def\\labelenumi/d' > test.tex
xelatex test.tex

enter image description here

但是你的文档的所有列表都会受到影响,需要自己编写latex编译命令。

关于latex - Pandoc 生成的 PDF : Change list numbering style,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33642358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com