在包含一些西里尔文本的英语文档中使用pdflatex
。对于数学,我想使用 $\C$ 表示复数集。但是,其选项T2A
所需的编码会出现错误:babel
russian
Command \C already defined.
来源如下:
\documentclass{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
%\usepackage[main=english,russian]{babel}
\usepackage{amssymb}
\newcommand{\C}{\mathbb{C}}
\begin{document}
%{\Russian Алекс\'{а}ндров}, {\Russian Т\'{и}хонов}, and {\Russian Урыс\'{o}н}.
$\C$ denotes the set of all complex numbers.
\end{document}
解决方法
\renewcommand{\C}{\mathbb{C}}
似乎有效,如下所示:
\documentclass{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[main=english,russian]{babel}
\usepackage{csquotes}
\usepackage{amssymb}
\renewcommand{\C}{\mathbb{C}}
\begin{document}
{\Russian Алекс\'{а}ндров}, {\Russian Т\'{и}хонов}, and {\Russian Урыс\'{o}н}.
$\C$ denotes the set of all complex numbers.
\end{document}
问题 1:在加载的包中定义在哪里\C
(我至今还没能找到它)以及它的含义是什么?
如果它给出了一些我永远不需要的重音或字符,那么我可以使用\renewcommand
指示的解决方法。
如果不是,那么...
问题2:除了对复数使用诸如 $\CC$ 之类的不太简洁的符号外,还有其他更安全的解决方法吗?
答案1
的定义\C
可以在以下位置找到t2aenc.def
:
\DeclareTextAccent{\C}{\LastDeclaredEncoding}{19}
它表示双重重音符号。
如果您不想重新定义宏,则可以采用一些替代方法,例如仅在数学模式下定义它,或者使用 Unicode 字符,或者选择不同的单字母宏。
梅威瑟:
\documentclass{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[main=english,russian]{babel}
\usepackage{amssymb}
\let\oldC\C
\def\C{\textormath{\oldC}{\mathbb{C}}}
\DeclareUnicodeCharacter{2102}{\mathbb{C}}
\newcommand{\K}{\mathbb{C}}
\begin{document}
\C{и}
$\C$ denotes the set of all complex numbers.
$ℂ$ denotes the set of all complex numbers.
$\K$ denotes the set of all complex numbers.
\end{document}
结果: