自动包含以下字符,但包含其下标和上标?

自动包含以下字符,但包含其下标和上标?

有这样的命令,\vec它会在顶部添加一个箭头紧接着的下一个非空格字符。但是,上标和下标不属于范围。

现在假设我定义一个命令\vt如下:

\newcommand*\vt[1]%
{\ensuremath{\mathbf{#1}}}

因此它的作用类似于\mathbf:在数学模式下,\vt{}使里面的字符变为粗体。但是,如果没有括号,它也可以使下一个字符变为粗体,就像\vec工作原理一样。现在,假设我需要使一个字符变为粗体,但是它的下标和上标也,而不使用括号(例如,如果我想批量复制并粘贴命令;括号会很麻烦)。如何做到这一点?

答案1

当然这不是一个好主意,但肯定是可能的。使用xparse修饰。从长远来看,这不会像你想象的那样有效。

\documentclass{article}
\usepackage{xparse}

\NewDocumentCommand \vt { m e{^_}}
{
  \mathbf{#1}
  \IfNoValueF{#2}{\sp{\mathbf{#2}}}
  \IfNoValueF{#3}{\sb{\mathbf{#3}}}
}

\begin{document}

$\vt d$

$\vt d^2$

$\vt d_{x^2 - y^2}$

$\vt d_{x^2 - y^2}^2$

$\vt d^2_{x^2 - y^2}$

\end{document}

在此处输入图片描述

相关内容