我正在输入一个文件,我经常需要在其中写入$T_{\text{area}}$
。但是,当我必须一直写入时,添加下标文本的命令会很长。有人能提供一些可以简化此过程的新命令的提示吗?例如,我可以在哪里输入 T_area 并得到正确的格式?
我尝试使用
\newcommand{T_area}{S_{\text{area}}}
但它不起作用。另外,最好将其推广到所有文本,而不仅仅是“区域”。
答案1
指令
\newcommand{T_area}{S_{\text{area}}}
有两个原因导致它有缺陷。首先,TeX 宏通常应以\
(反斜杠) 字符开头。(嗯,有这种\csname ... \endcsname
可能;但是,这显然不是你所关心的。)其次,TeX 控制序列应由一个或多个小写和大写字母组成(也称为a
toz
和A
to Z
...)或恰好一个非字母字符。非字母控制序列的示例包括\,
、\!
、\_
、\$
、\%
、\\
等。
基于这两个见解,替代定义
\newcommand{\Tarea}{S_{\text{area}}}
是有效的——但仅从纯粹的语法角度来看。正如查询下方的评论已经指出的那样,宏的输出\text
并不像您想象的那么强大。尝试执行$\Tarea$ \textit{$\Tarea$} \textsc{$\Tarea$} \texttt{$\Tarea$}
并准备好感到惊讶。如果您希望下标材料仅以文档主文本字体的直立形状排版,请给出
\newcommand\TareaX{S_{\textnormal{area}}}
试一试。当然,您可以完全自由地选择不同的宏名称。
另外,最好将其推广到所有文本,而不仅仅是“区域”。
\TareaX
使用一些不可避免的 LaTeX 术语,可以通过指定采用具有默认值的可选参数来实现此目的area
:
\newcommand\TareaX[1][area]{S_{\textnormal{#1}}}
最后说明一下:由于 TeX 特殊字符出现在宏和_
的定义中,如果这些宏被\Tarea
\TareaX
不是在数学模式中使用。
\documentclass{article}
\usepackage{amsmath} % for \text macro
\newcommand\Tarea{S_{\text{area}}} % problematic
\newcommand\TareaX[1][area]{S_{\textnormal{#1}}} % fine
\begin{document}
$\Tarea$ \textit{$\Tarea$} \textsc{$\Tarea$} \texttt{$\Tarea$} --- not good
$\TareaX$ \textit{$\TareaX$} \textsc{$\TareaX[volume]$} \texttt{$\TareaX[length]$} --- good
\end{document}