Pandoc转换LaTeX为纯文本时摘要丢失的解决方法
Pandoc 默认解析 LaTeX 文档时,会将 abstract 环境识别为元数据而非正文内容,因此导出纯文本时默认不会输出该部分内容,可通过以下两种方案解决:
方案1:使用 Lua 过滤器(通用稳定,无需修改原 LaTeX 文件)
- 第一步:新建名为
extract-abstract.lua的脚本文件,写入以下代码:
function RawBlock(el) if el.format == "tex" then -- 匹配abstract环境的完整内容 local abs_text = el.text:match("\\begin{abstract}(.-)\\end{abstract}") if abs_text then -- 如需去掉摘要标题,可删除下面pandoc.Header那一行 return { pandoc.Header(2, "摘要"), pandoc.Para(pandoc.Str(abs_text:gsub("%s+", " "):gsub("^%s+", ""):gsub("%s+$", ""))) } end end end
- 第二步:执行导出命令时新增过滤器参数即可:
pandoc --to=plain --lua-filter=extract-abstract.lua example.tex
方案2:修改原 LaTeX 文件(适合单次导出的轻量场景)
直接注释或删除 \begin{abstract} 和 \end{abstract} 两行标记,摘要内容会被识别为普通正文,直接使用原导出命令即可正常输出。
内容的提问来源于stack exchange,提问作者yujaiyu
相关产品推荐
相关产品推荐

