a^{-1} をユーザー定義のコマンドに置き換えるのは悪い習慣でしょうか?

a^{-1} をユーザー定義のコマンドに置き換えるのは悪い習慣でしょうか?

私は最近 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}

ここに画像の説明を入力してください


コメントからのリクエスト(この回答ではなく、元の質問に対する)に従って、\inv2 つのオプション引数を取るマクロを提供します。オプションの*は素数を追加し、オプションの は 以外の負の累乗を可能にする引数です-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'

関連情報