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