我最近才开始用 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'