Сегодня я обновился с TeXLive 2015 до TeXLive 2019 (уже пора, да?). Однако у меня возникла проблема, с которой я раньше не сталкивался. Обычно я объявляю \C
как макрос для комплексных чисел. Однако это конфликтует с некоторым неявным объявлением команды, связанной с пакетом hyperref
(который мне тоже нужен).
Я получаю следующее сообщение об ошибке:
! LaTeX Error: Command \C unavailable in encoding TU.
Я проверил руководство по hyperref
пакету, но, похоже, там не определена команда \C
.
Вот минимальный рабочий пример:
\documentclass{article}
\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{amssymb}
\DeclareMathOperator{\C}{\mathbb{C}}
\DeclareMathOperator{\R}{\mathbb{R}}
\usepackage{hyperref}
\begin{document}
$\C$
\end{document}
Обратите внимание, что это уникально для \C
. Документ корректно компилируется для \R
.
решение1
Поскольку hyperref
для создания закладок необходимо охватить Unicode, определяется собственная выходная кодировка, называемая PU
.
В файле puenc.def
мы находим
\DeclareTextCommand{\C}{PU}[1]{#1\83\017}% U+030F
so \C
используется для сочетания двойного грависного ударения.
У вас есть две альтернативы:
измените имя
\C
для комплексных чисел на другое (возможно, лучшее) имя, например\sC
(set C) или на то, что вам больше нравится;не определять
\C
.
Для последнего,
\documentclass{article}
\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{hyperref}
\let\C\relax
\DeclareMathOperator{\C}{\mathbb{C}}
\DeclareMathOperator{\R}{\mathbb{R}}
\begin{document}
$\C$
\end{document}
Будьте осторожны с закладками и не используйте странный акцент.
решение2
У меня, возможно, есть сотня документов, в которых я использую \C как макрос для \mathbf{C}, и все они потеряны из-за этой коллизии. Я написал программу на Python для выполнения подстановок слов в документах, которую я запустил во всех моих документах *.tex, чтобы заменить \C на \CC (двойной \ необходим для того, чтобы Python понимал "\C"). Любой заинтересованный может найти substitui_palavra.py наhttp://www.calculo-numerico.sobralmatematica.org/programas/substitui_palavra.pyt и измените «.pyt» на «.py».