用使用者定義的指令取代 a^{-1} 是不好的做法嗎?

用使用者定義的指令取代 a^{-1} 是不好的做法嗎?

我最近開始用 LaTeX 做作業,所以我對這個世界還很陌生。我不太喜歡做的一件事是^{-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}

在此輸入影像描述


根據評論的請求(不是針對這個答案,而是針對原始問題),我提供了一個\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 。我沒有使用這種方法,因為我並沒有真正發現a'⁻¹ 是一種直覺的語法(反轉和質數的順序與它們的印刷順序相反)。但這完全是個人品味的問題。*{ s O{1} }{ t{'} O{1} }a\inv'

相關內容