
저는 최근에 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 대신 by 를 *
교체하여 사용할 수도 있습니다 . 나는 이 접근 방식을 사용하지 않았습니다. 왜냐하면 a'⁻¹에 대한 직관적인 구문이 아니라고 생각하기 때문입니다(역전과 소수는 인쇄 방법과 반대 순서입니다). 그러나 그것은 전적으로 개인적인 취향의 문제입니다.{ s O{1} }
{ t{'} O{1} }
a\inv'