![如何定义数学符号?](https://linux22.com/image/360589/%E5%A6%82%E4%BD%95%E5%AE%9A%E4%B9%89%E6%95%B0%E5%AD%A6%E7%AC%A6%E5%8F%B7%EF%BC%9F.png)
我需要一个欧拉 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}