하이퍼참조와 \C를 함께 사용할 수 없는 이유는 무엇입니까?

하이퍼참조와 \C를 함께 사용할 수 없는 이유는 무엇입니까?

오늘은 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북마크 생성을 위해 유니코드를 처리해야 하므로 PU.

puenc.def우리가 찾은 파일에서

\DeclareTextCommand{\C}{PU}[1]{#1\83\017}% U+030F

so는 \C이중 무덤 악센트를 결합하는 데 사용됩니다.

두 가지 대안이 있습니다.

  1. \C복소수의 이름을 \sC(세트 C) 또는 가장 좋아하는 것과 같은 다른(아마도 더 나은) 이름으로 변경합니다.

  2. 정의를 해제합니다 \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

\mathbf{C}에 대한 매크로로 \C를 사용하는 문서가 수백 개 정도 있는데 이 충돌로 인해 모두 손실되었습니다. 나는 모든 *.tex 문서에서 \C를 \CC로 변경하기 위해 실행한 문서에서 단어를 대체하기 위한 Python 프로그램을 작성했습니다(파이썬이 "\C"를 이해하려면 이중 \가 필요합니다). 관심 있는 사람은 누구나 substitui_palavra.py를 찾을 수 있습니다.http://www.calculo-numerico.sobralmatematica.org/programas/substitui_palavra.pyt ".pyt"를 ".py"로 변경합니다.

관련 정보