\mathrm 命令的宏快捷方式

\mathrm 命令的宏快捷方式

\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}

在此处输入图片描述

相关内容