今日、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
はブックマークを生成するために Unicode をカバーする必要があるためhyperref
、 と呼ばれる独自の出力エンコーディングを定義しますPU
。
ファイルにpuenc.def
は
\DeclareTextCommand{\C}{PU}[1]{#1\83\017}% U+030F
so は\C
結合二重重アクセントとして使用されます。
2 つの選択肢があります:
\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} のマクロとして使用している文書がおそらく 100 個ほどありますが、この衝突によりすべてが失われています。文書内の単語を置換する Python プログラムを作成し、すべての *.tex 文書で実行して \C を \CC に変更しました (Python が "\C" を理解するには 2 つの \ が必要です)。興味のある方は、substitui_palavra.py を参照してください。http://www.calculo-numerico.sobralmatematica.org/programas/substitui_palavra.pyt 「.pyt」を「.py」に変更します。