用用户定义的命令替换 a^{-1} 是不是不好的做法?

用用户定义的命令替换 a^{-1} 是不是不好的做法?

我最近才开始用 LaTeX 做作业,所以我对这个世界还很陌生。我最不喜欢做的事情之一就是^{-1}每次想要某个东西的逆运算时都要输入 ,所以我习惯用预定义的命令来代替它\newcommand{\inv}{^{-1}}。到目前为止,似乎没有出现任何问题,所有东西都显示正常,但我很好奇这是否是 LaTeX 中的坏习惯。也许这会导致一些我根本不知道的微小变化?

答案1

当你想取 的逆时,你会遇到一个问题a',因为a'\inv会产生双上标错误。这个问题困扰了我很多年,最终,我创建了这个包语义来解决这个问题和许多其他问题。它允许您使用 keyval 语法以语义方式键入所有数学运算,并且永远不会发生双上标之类的问题。以下是代码示例:

\documentclass{article}

\usepackage{semantex}

\NewVariableClass\MyVar[
    output=\MyVar,
    define keys={
        {inv}{ upper=-1 },
    },
]

\NewObject\MyVar\va{a} % this means "variable a"

\begin{document}

$ \va[inv] $, $ \va[prime,inv] $, $ \va[prime,spar,inv] $

\end{document}

在此处输入图片描述


根据评论的要求(不是对这个答案的要求,而是对原始问题的要求),我提供了一个\inv带有两个可选参数的宏:一个可选的*,它添加一个素数,以及一个可选的参数,它允许您提升到除之外的负幂-1

\documentclass{article}

\usepackage{xparse}

\NewDocumentCommand\inv{ s O{1} }
{%
    \IfBooleanTF{#1}%
    {%
        ^{\prime-#2}%
    }%
    {%
        ^{-#2}%
    }%
}

\begin{document}

$ a\inv $, $ a\inv[2] $, $ a\inv* $, $ a\inv*[2] $

\end{document}

在此处输入图片描述

原则上,您也可以用 a'代替 a,用*代替。我没有使用这种方法,因为我发现a'⁻¹ 的语法并不直观(反转和素数的顺序与打印顺序相反)。但这完全是个人喜好的问题。{ s O{1} }{ t{'} O{1} }a\inv'

相关内容