Ist es eine schlechte Praxis, a^{-1} durch einen benutzerdefinierten Befehl zu ersetzen?

Ist es eine schlechte Praxis, a^{-1} durch einen benutzerdefinierten Befehl zu ersetzen?

Ich habe vor kurzem angefangen, meine Hausaufgaben in LaTeX zu machen, also bin ich noch sehr neu in dieser Welt. Eines der Dinge, die ich nicht besonders gerne mache, ist, ^{-1}jedes Mal etwas einzutippen, wenn ich das Gegenteil von etwas haben möchte, also habe ich angefangen, dies durch einen vordefinierten Befehl zu ersetzen \newcommand{\inv}{^{-1}}. Bisher scheint nichts kaputtgegangen zu sein und alles wird einwandfrei angezeigt, aber ich war neugierig, ob dies in LaTeX irgendwie eine schlechte Praxis ist. Vielleicht führt dies zu einigen winzigen Änderungen, die mir einfach nicht bewusst sind?

Antwort1

Sie stoßen auf ein Problem, sobald Sie beispielsweise die Umkehrung von nehmen möchten a', da dies a'\invzu einem Fehler mit doppeltem hochgestellten Zeichen führt. Dieses Problem hat mich viele Jahre lang geärgert, und schließlich habe ich das Paket erstelltSemanTeXum dieses und viele andere Probleme zu lösen. Es ermöglicht Ihnen, alle Ihre mathematischen Berechnungen semantisch einzugeben, indem Sie die Keyval-Syntax verwenden, und Probleme wie doppelte hochgestellte Zeichen treten nie auf. Hier ist ein Codebeispiel:

\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}

Bildbeschreibung hier eingeben


Aufgrund einer Anfrage in den Kommentaren (nicht zu dieser Antwort, sondern zur ursprünglichen Frage) stelle ich ein Makro \invmit zwei optionalen Argumenten zur Verfügung: ein optionales *, das eine Primzahl hinzufügt, und ein optionales Argument, mit dem Sie mit einer anderen negativen Potenz als potenzieren können -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}

Bildbeschreibung hier eingeben

Sie können grundsätzlich auch a 'anstelle von a verwenden, indem Sie es durch *ersetzen . Ich habe diesen Ansatz nicht verwendet, da ich die Syntax für a'⁻¹ nicht wirklich intuitiv finde (die Inversion und der Primzahl stehen in der umgekehrten Reihenfolge, wie sie gedruckt werden). Aber das ist ganz und gar eine Frage des persönlichen Geschmacks.{ s O{1} }{ t{'} O{1} }a\inv'

verwandte Informationen