pyRemove hypertarget from pandoc LaTex output



我正在使用pypandoc将降价文件转换为LaTex。 我的降价文件有一个标题,例如:

# Header Text # 

当 pypandoc 将文件呈现为.tex文件时,显示为:

hypertarget{header-text}{%
section{Header Text}label{header-text}}

虽然这是一个很好的功能,可以轻松链接回部分标题,但我不一定想要这样,并且在这种情况下更希望 pypandoc 只生成:

section{Header Text}

是否有 pandoc 设置或 pypandoc 设置可用于关闭 \hypertarget{} 功能? 我已经查看了 pandoc 的文档,但在任何地方都没有看到它。

我有同样的需求,我正在使用-auto_identifiers开关,

pandoc -r markdown-auto_identifiers -w latex test.md -o test.tex

这将删除两者

hypertarget{header-text}{%

label{header-text}}

只离开

section{Header Text}

就像你要求的那样。

没有这样的开关。如果你想要不同的输出,你要么必须使用 pandoc 过滤器,要么如@mb21已经指出的那样,对输出进行后处理。

这两个选项都不是很好:使用过滤器手动定义标头输出将丢失各种其他 pandoc 功能,例如--top-level-division和对未编号标头的支持。另一方面,后期处理往往很脆弱,很难正确处理。

无论如何,下面是一个长笛过滤器,它将用自定义命令替换标题。将其保存到文件中并通过filters选项将其传递给pypandoc;这应该会给你所需的输出。

from panflute import *
sectionTypes = ["section", "subsection", "subsubsection",
"paragraph", "subparagraph"]
def reduce_header(elem, doc):
if type(elem) == Header:
cmd = "\%s{" % sectionTypes[elem.level - 1]
inlines = [RawInline(cmd, "tex")]
inlines.extend(elem.content)
inlines.append(RawInline("}", "tex"))
return Plain(*inlines)
if __name__ == "__main__":
run_filter(reduce_header)

相关内容

  • 没有找到相关文章

最新更新