首页 > 解决方案 > Pandoc 在重新定义 \part 时从 .tex 到 .docx 产生错误

问题描述

在使用 pandoc 将 LaTeX 文件转换为 Word 文档时,我遇到了以下错误:

...>pandoc test.tex -o test.docx  --pdf-engine=xelatex

    Error at "source" (line 12, column 1):
    unexpected \part
    expecting \end{document}
    \part{Introduction}
    ^

该错误也发生在pandoc test.tex -o test.docx. 这是一个使用 XeLaTeX 编译但在 pandoc 中产生错误的最小示例:

%test.tex
\documentclass{book}
\newcommand*\parttitle{}\let\origpart\part
\renewcommand*{\part}[2][]{\ifx\\#1\\%
      \origpart{#2}%
      \renewcommand*\parttitle{#2}%
   \else
      \origpart[#1]{#2}%
      \renewcommand*\parttitle{#1}%
    \fi
}
\begin{document}
\part{Introduction}
\chapter{Context}
\section{Lorem}
Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit. 
Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. 
Curabitur dictum gravida mauris.
\end{document}

的重新定义\part来自 Tex SE 上的这个答案。另一方面,使用 OP 选择的答案,pandoc 不会抱怨:

%test.tex
\documentclass{book}
\let\Oldpart\part
\newcommand{\parttitle}{}
\renewcommand{\part}[1]{\Oldpart{#1}\renewcommand{\parttitle}{#1}}
\begin{document}
\part{Introduction}
\chapter{Context}
\section{Lorem}
Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit. 
Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. 
Curabitur dictum gravida mauris.
\end{document}

什么区别导致第一个错误?

标签: latexpandoc

解决方案


推荐阅读