
Недавно я начал делать домашнее задание в LaTeX, так что я все еще новичок в этом мире. Одна из вещей, которые мне не очень нравится делать, — это печатать ^{-1}
каждый раз, когда мне нужно что-то инвертировать, поэтому я заменил это предопределенной командой \newcommand{\inv}{^{-1}}
. Пока что ничего не сломалось, и все отображается нормально, но мне стало интересно, является ли это какой-то плохой практикой в LaTeX. Возможно, это приводит к каким-то незначительным изменениям, о которых я просто не знаю?
решение1
Вы сталкиваетесь с проблемой в тот момент, когда хотите взять, например, обратное значение a'
, так как a'\inv
это приведет к ошибке с двойным верхним индексом. Эта проблема раздражала меня много лет, и в конце концов я создал пакетSemanTeXдля решения этой и многих других проблем. Он позволяет вам вводить всю вашу математику семантически, используя синтаксис 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, *
заменив { s O{1} }
на { t{'} O{1} }
. Я не использовал этот подход, так как не нахожу a\inv'
его интуитивно понятным синтаксисом для a'⁻¹ (инверсия и штрих находятся в обратном порядке относительно того, как они печатаются). Но это полностью дело личного вкуса.