\mathrm
我正在尝试为命令创建宏快捷方式amsmath
。
我的想法是,例如,\mathrm{R}
为了在数学模式下获得 Roman R
,我宁愿输入 ,而不是书写\RR
。同样,假设我想要 Roman P
,我宁愿输入\PP
。
以下 MWE 为我提供了罗马R
符号,但我希望它对任何字母都具有最大程度的灵活性,而不必定义 52 个单独的\aa
, \bb
,\cc
命令。
\documentclass{book}
\usepackage{amsmath}
\newcommand{\RR}{\mathrm{R}}
\begin{document}
$ \RR$
\end{document}
答案1
在这里,我使用了三个字母的序列来演示,因为许多两个字母的组合已经被使用。
\documentclass{book}
\usepackage{amsmath,pgffor}
\foreach\i in{A,...,Z}{\expandafter\gdef\csname\i\i\i\expandafter\endcsname
\expandafter{\expandafter\mathrm\expandafter{\i}}}
\begin{document}
$\RRR$
$\BBB$
\end{document}
对于小写,可以添加相同的循环,只需将限制改为\foreach\i in{a,...,z}
。
Percusse 提供了一个更晦涩难懂的定义版本,但仍具有说明性:
\foreach\i in{A,...,Z}{
\begingroup\edef\temp{\endgroup\noexpand\gdef\csname\i\i\i\noexpand\endcsname{%
\noexpand\mathrm{\i}}}\temp
}
尽管如此,David 的建议\newcommand\R{\mathrm}
(需要稍微不同的语法)总体上是一种更好的方法。我这样做只是为了证明这是可以做到的。
答案2
你可以定义一个带参数的命令,而不必定义很多命令,例如
\newcommand\R{\mathrm}
允许\R R
或\R x
等等\R{P}
。
虽然说实话我不会这么做。任何合理的 TeX 编辑器都可以(可能已经有了)添加键盘快捷键,\mathrm
因此添加起来并不困难,而且任何阅读源代码的人都可以更轻松地阅读。值得为语义标记创建别名,以便
\newcommand\vector{\mathrm}
... \vector{x}...
如果您以罗马字体设置矢量,这样就可以允许使用替代符号而无需更改标记,但仅将字体更改别名用作字体更改实际上并没有获得很多。
答案3
服用你的评论考虑到,也许您需要的只是在 texstudio 中定义一个快捷方式,它会自动\mathrm
为您插入(cmdR用您最喜欢但尚未使用的组合替换)。
答案4
主题的变体:
\documentclass{book}
\usepackage{amsmath,pgffor}
\begingroup
\def\makethiscommand#1{\expandafter\gdef\csname #1#1#1\endcsname{\mathrm{#1}}}
\foreach\i in{A,...,Z}{%
\expandafter\makethiscommand\expandafter{\i}%
}
\endgroup
\begin{document}
$\RRR$ \texttt{\meaning\RRR}
$\BBB$ \texttt{\meaning\BBB}
\end{document}