当页眉中有欧元时,pandoc转换为pdf失败 Windows 10\欧元乳胶漆

当页眉中有欧元时,pandoc转换为pdf失败 Windows 10\欧元乳胶漆,pandoc,xelatex,miktex,euro,tex-live,Pandoc,Xelatex,Miktex,Euro,Tex Live,我有MiKTeX 2.9.6300 64位,我可以使用Xeletex eurosym,其中eurosym.tex包含以下代码: -产出如预期: Win10 eurosym调用中的Pandoc失败 我的本地副本正确包含呼叫: $if(euro)$ \usepackage{eurosym} $endif$ 我已经安装了,因此我希望pandoc eurosym.md-o eurosym.pdf-latex engine=Xeletex在eurosym.md仅包含以下内容时能够工作: # 2€

我有MiKTeX 2.9.6300 64位,我可以使用Xeletex eurosym,其中eurosym.tex包含以下代码:

-产出如预期:

Win10 eurosym调用中的Pandoc失败 我的本地副本正确包含呼叫:

$if(euro)$
  \usepackage{eurosym}
$endif$
我已经安装了,因此我希望pandoc eurosym.md-o eurosym.pdf-latex engine=Xeletex在eurosym.md仅包含以下内容时能够工作:

# 2€
2€
-但事实上,我得到:

! Improper alphabetic constant.
<to be read again>
                   \euro
l.70 \section{2\euro{}}

pandoc.exe: Error producing PDF
但是我可以通过注释掉第76行、\usepackage[unicode=true]{hyperref}、第80-98行和第253行、\hypersetup{…}子句和第99行、\urlstyle{same},这需要jgm的default.latex的hyperref

发现了这一点,我试着用那个,潘多克在欧元上又失败了

结论似乎是eurosym和hyperref在Pandoc中互不兼容 因此,我创建了一个新问题:.

您必须仅将\usepackage{eurosym}与pdflatex一起使用。Xeletex支持unicode,您可以直接使用欧元符号

因此,默认的pandoc模板包装在if pdftex中,您在修改模板时可能会错过该包装:

\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex

...

$if(euro)$
  \usepackage{eurosym}
$endif$
...

\fi

不,我刚刚检查了我的代码,你提到的代码和我想的完全一样。此外,正如我在上面对我的LaTeX代码的评论中所述,只有在调用了eurosym.mb1正确的情况下,Xeletex才能在\section{2\euro{}上成功。您的代码与默认代码不同,默认代码将整个条件包装在另一个条件中,请参见templatetry的第17行和第21行,使用pandoc-s-t latex-o output.tex输出到tex,并从此处进行调试。我无法在macOS上重现您对XeTeX 3.14159265-2.6-0.99996 TeX Live 2016的问题…@SergioCorreia,担心您的评论我搞错了,我刚刚重新检查,您错了,我的\ifnum\正如我在jgm的第2行到第103行中所说的那样,fi条款是不变的,事实上,从jgm的第2行到第103行,我是相同的,但更确切地说,我刚刚尝试用jgm的default.latex来pandoc,问题仍然存在。所以,我的模板很好——这里出了一些问题。我试图在我这边复制它,但没有成功。调试的一个想法是将其输出为text-o eurosym.tex-latex engine=xelatex-standalone,然后在tex文件上运行xelatex。您应该注意到“\newcommand{\euro}{€}”行,因为这是第一个失败点。然后,删除tex文件的块,直到得到尽可能小的文件为止,如第一个示例所示。此外,请尝试更新miktex,以防万一。
! Improper alphabetic constant.
<to be read again>
                   \euro
l.35 \section{2\euro{}}

pandoc: Error producing PDF
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex

...

$if(euro)$
  \usepackage{eurosym}
$endif$
...

\fi