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
Другие вопросы по тегам