복소수에 대해 $\C$를 더 쉽게 사용할 수 있도록 합니다. T2A, mismath 및 babel과 충돌합니다.

복소수에 대해 $\C$를 더 쉽게 사용할 수 있도록 합니다. T2A, mismath 및 babel과 충돌합니다.

내가 가장 선호하는 것은 를 사용하여 실수 를 나타내는 데 사용하는 $\C$것과 마찬가지로 복소수 집합을 나타내는 $\R$데 사용하는 것입니다 .\mathbb\mathbf

몇몇 다른 패키지는 다음의 자체 정의를 사용합니다 \C. t2aenc.def(에서 호출됨 \usepackage[T2A,T1]{fontenc}); mismath.sty; 그리고 hyperref.sty그것이 호출하는 패키지 중 하나 또는 일부.

이에 대한 해결 방법은 아래 MWE에 나와 있습니다.

질문:반복적으로 재정의하지 않고 이를 수행할 수 있는 더 간단한 방법이 있습니까 \C?

노트:

  • \CbabelT2A 사용이 필요할 가능성은 거의 없습니다 . 어떻게 hyperref사용되는지 잘 모르겠습니다 \C. (세르보-크로아티아어와 슬로베니아어의 이중 무덤 악센트를 위한 것입니다.)
  • 나는 pdflatex를 사용하고 있으며~ 아니다xelatex 또는 lualatex!

소스 MWE:

\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[russian,french,german,polish,main=english]{babel}

% Avoid \lll clash with def in amssymb.sty:
\makeatletter
    \let\polish@l=\ll
    \let\polish@L=\LLL
    \let\lll\relax \let\LLL\relax % undefine them
    \def\plll{\polish@l}
    \def\pLLL{\polish@L}
\makeatother
\usepackage{amsmath,amssymb}

% Choose ONE of the following two defs:
%\newcommand{\numsys}[1]{\mathbb{#1}}
\newcommand{\numsys}[1]{\mathbf{#1}}

% First 
\makeatletter
\def\my@textormath{%
  \ifmmode
    \expandafter\@secondoftwo
  \else
    \expandafter\@firstoftwo
  \fi}
    \ifcsname C\endcsname
      \let\oldC\C
      \def\C{\my@textormath{\oldC}{\numsys{C}}}
    \fi
\makeatother

\usepackage{mismath} % defines \Z, \Z, \Q, \R, \C with mathbf

\usepackage[pdftex]{hyperref}
\makeatletter
\def\my@textormath{%
  \ifmmode
    \expandafter\@secondoftwo
  \else
    \expandafter\@firstoftwo
  \fi}
\@ifpackageloaded{hyperref}{% then
    \let\newerC\C
    \def\C{\my@textormath{\newerC}{\numsys{C}}}}%
  {}
\makeatother

\renewcommand{\N}{\numsys{N}}
\renewcommand{\Z}{\numsys{Z}}
\renewcommand{\Q}{\numsys{Q}}
\renewcommand{\R}{\numsys{R}}

\begin{document}

$\N \subset \Z \subset \Q \subset \R \subset \C$

\end{document}

관련 게시물: T2A 인코딩으로 복소수에 $ \C$를 사용할 수 있습니까?

답변1

당신의 정의가 승리하기를 원한다면 가능한 한 늦게 추가하세요

  \AtBeginDocument{\def\C{\numsys{C}}}

관련 정보