我有MiKTeX 2.9.6300 64-bit
,xelatex eurosym
其中eurosym.tex
包含以下LaTeX
代码:
\documentclass{article}
\usepackage{eurosym}
\begin{document}
\section{2\euro{}} % (this line fails if eurosym package isn't called)
2€ % (this € symbol is lost if compiled with pdflatex instead of xelatex)
\end{document}
- 输出符合预期:
我的pandoc-templates/default.latex本地副本正确包含了这个电话:
$if(euro)$
\usepackage{eurosym}
$endif$
我已经安装了pandoc v1.19.2.1,因此当pandoc eurosym.md -o eurosym.pdf --latex-engine=xelatex
包含以下内容时,我希望eurosym.md
可以正常工作:
# 2€
2€
- 但实际上我得到了:
! Improper alphabetic constant.
<to be read again>
\euro
l.70 \section{2\euro{}}
pandoc.exe: Error producing PDF
- 为什么命令\euro{}
在Pandoc失败?
pandoc 1.19.2.1-90
,致电texlive-bin 2016.41290-12
,并使用jgm's default.latex我得到:
! Improper alphabetic constant.
<to be read again>
\euro
l.35 \section{2\euro{}}
pandoc: Error producing PDF
但是我可以通过评论第76行\usepackage[unicode=true]{hyperref}
(然后是第80-98行和第253行,两个\hypersetup{...}
子句,并按预期工作 第99行,\urlstyle{same}
需要hyperref
)jgm&#39; default.latex
。
发现there is a more current default.latex,我尝试了那个,而Pandoc再次失败了\euro
。
所以我创建了一个新问题:eurosym in Pandoc seems to be incompatible with hyperref #3801。
答案 0 :(得分:1)
您必须仅使用pdflatex \usepackage{eurosym}
。 XeLaTeX具有unicode感知功能,您可以直接使用欧元符号。
默认的pandoc模板因此包装在一个&#34;如果是pdftex&#34;,您在修改模板时可能错过了:
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
...
$if(euro)$
\usepackage{eurosym}
$endif$
...
\fi