使用条件将不同的命令组合成一个

使用条件将不同的命令组合成一个

我定义以下命令

\def\R{\mathbb{R}}
\def\Rd{\R^d}
\def\Rn{\R^n}

是否可以使用条件将这三个命令合并为一个?

作为示例,我想\Rx输出\R^x

答案1

这是使用一些语法糖来实现的一种方法

\documentclass{article}
\usepackage{amssymb}

\def\tmp#1{\ifx\relax#1\else
    \expandafter\newcommand\csname R#1\endcsname{\mathbb R^{#1}}%
\expandafter\tmp \fi}
\tmp dnx%<- more letters go here
\relax

\begin{document}
$\Rd \Rx \Rn$
\end{document}

答案2

喜欢这个吗?如果这不是你想要的,请告诉我,我会更新答案。

\R<>我认为定义没有分隔符(例如{}或 )的命令并不容易[]。下面的方法更简单。如果您确实需要\Rx而不是\R{x},我们也许可以使用循环来定义所有这些命令。

\documentclass{article}

\RequirePackage{xparse}
\RequirePackage{amssymb}

\NewDocumentCommand\R{m}
{ \ensuremath{\mathbb{R}^{#1}} }

\begin{document}

\R{x}

\end{document}

相关内容