Pandoc конвертировать в PDF не удается, когда € находится в заголовке
Windows 10 \ евро в LaTeX
я имею 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}
- результат, как и ожидалось:
Пандок на Win10 евросим звонить не удается
Моя локальная копия https://github.com/jgm/pandoc-templates/blob/master/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 на Arch Linux
pandoc 1.19.2.1-90
звонит texlive-bin 2016.41290-12
и, используя jgm 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 default.latex
,
Обнаружив, что есть более актуальный default.latex, я попытался с этим, и Pandoc не удалось \euro
снова.
Похоже, что заключение так или иначе eurosym & hyperref несовместимы в Пандоке
Итак, я создал новый выпуск: евросим в Пандоке, кажется, несовместим с гиперреф № 3801.
1 ответ
Вы должны использовать \usepackage{eurosym}
только с pdflatex. XeLaTeX поддерживает Unicode, и вы можете просто использовать символ евро напрямую.
Поэтому шаблон pandoc по умолчанию переносится в "if pdftex", который вы могли пропустить при изменении шаблона:
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
...
$if(euro)$
\usepackage{eurosym}
$endif$
...
\fi