a^{-1}을 사용자 정의 명령으로 바꾸는 것은 나쁜 습관입니까?

a^{-1}을 사용자 정의 명령으로 바꾸는 것은 나쁜 습관입니까?

저는 최근에 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'

관련 정보