
私は最近 LaTeX で宿題をやり始めたので、この世界にはまだ慣れていません。あまり好きではないことの 1 つは、^{-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
2 つのオプション引数を取るマクロを提供します。オプションの*
は素数を追加し、オプションの は 以外の負の累乗を可能にする引数です-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'