我对 LaTeX 还很陌生,遇到了一个问题,即某些命令似乎只能在文本模式下使用,而我想在数学模式下也使用它们(例如,在方程式中积分)。
其中一个有问题的命令/符号是倒置的感叹号,用来表示子因子函数。在运行文本中,我可以使用命令\textexclamdown
,但这在数学模式下不起作用(据我所知)。
有没有办法将文本模式命令无缝地集成到相当复杂的方程式中?
答案1
你可以定义自己的符号:
\documentclass{article}
\usepackage{amsmath}
\DeclareMathSymbol{\subfactorial}{\mathord}{operators}{"3C}
\begin{document}
\begin{equation}
\begin{aligned}
n!=\sum_k h(n,k) &= \sum_k \binom{n}{k}(n-k)\subfactorial\\
&=\sum_k\binom{n}{k}k\subfactorial
\end{aligned}
\tag{5.49}
\end{equation}
\end{document}
只要“操作员”字体是 OT1 编码的,此方法就有效。如果是 T1 编码的,则更改为"3C"
("BD
这可能取决于您的字体设置)。
该方程(相同的数字)取自 Graham、Knuth 和 Patashnik 编写的《离散数学》(原文使用欧拉字体,但结果非常相似)。
答案2
您的问题可以分解为几个易于处理的部分。
如果将任何文本命令用作
\text
宏的参数,则可以在数学模式中使用,如\text{\textexclamdown}
。为了使其在数学空间中发挥适当的作用,您应该将其嵌入
\mathord
宏中,如\mathord{\text{\textexclamdown}}
。因为
\mathord{\text{\textexclamdown}}
写起来有点麻烦,并且不能很好地表明你想要它表示什么,所以我建议为子阶乘函数编写一个宏,类似于\newcommand\subfac{\mathord{\text{\textexclamdown}}}
然后用来
\subfac
表示子阶乘函数。(这样,如果您决定要修改子阶乘的显示方式,只需修改一次,它的所有实例都会发生变化。)