如何定义数学符号?

如何定义数学符号?

我需要一个欧拉 D 型笔画,但它没有提供。我用

\DeclareTextCommand{\DJ}{T1}{\raisebox{0.25ex}{-}\kern-0.4em D}

(取自为什么我中风了却得不到 D 呢?),但这样一来,我就失去了 Concrete 的固有属性\DJ

我知道我可以定义一个不同的命令\DJm,但我想知道是否可以让 LaTeX 区分文本和数学,我想询问一些关于\ProvideTextCommand和 的参考\DeclareTextCommand


@Skillmon 我试过了

\let\oldDJ\DJ
\DeclareTextCommand{\DJ}{T1}
{%
  \ifmmode%
    \raisebox{0.25ex}{-}\kern-0.4em D%
  \else%
    \oldDJ%
  \fi%
}

但我TeX capacity exceeded, sorry [input stack size=5000].猜我的定义是递归的,但我不知道为什么。

答案1

我会定义一个\mathDJ命令,但如果你坚持……

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{concrete}
\usepackage{amsmath}

\let\textDJ\DJ
\let\DJ\relax

\DeclareRobustCommand{\DJ}{%
  \ifmmode
    \mathDJ
  \else
    \textDJ
  \fi
}
\makeatletter
\newcommand{\mathDJ}{\text{\raisebox{0.25ex}{-}\kern-0.4em$\m@th D$}}
\makeatother

\begin{document}

\DJ{} and $\DJ_{\DJ}$

\end{document}

enter image description here

相关内容