ノルム区切り文字を定義するにはどうすればよいですか?

Dec 11 2020

LaTeXで次の方程式を書きたいと思います。

これが私のコードです:

\begin{equation}
       R =  \left\Vert\norm\overrightarrow{q_1c}\right\Vert=\left\Vert\norm\overrightarrow{q_2c}\right\Vert
\end{equation}

結果は予想どおりですが、「未定義の制御シーケンス」エラーが発生します。

この問題を解決するのを手伝ってくれませんか。前もって感謝します。

回答

9 Mico Dec 11 2020 at 10:54

これ\normは「未定義の制御シーケンス」であると通知されました。さらに、コメントで、amsmathおよびamssymbパッケージをロードすると述べています。(余談:amssymbパッケージはamsfontsパッケージを自動的にロードするため、amsfontsパッケージを明示的にロードする必要はありません。)

主なオプションは2つあります。

  1. \normコードから2つのディレクティブを削除します。そして、あなたがそれにいる間、それらはコードの乱雑さを作成することを除いてここでは何もしないので、\leftそして\rightサイジングディレクティブも削除してください。

    \documentclass{article} % or some other suitable document class
    \usepackage{amsmath,amssymb}
    \usepackage{old-arrows} % optional (for smaller arrowheads) 
    
    \begin{document}
    \begin{equation}
        R = \Vert\overrightarrow{q_1c}\Vert = \Vert\overrightarrow{q_2c}\Vert
    \end{equation}
    \end{document}
    
  2. \left\Vertand\right\Vertディレクティブを削除し、と呼ばれるマクロを定義します\norm。マクロを定義するためmathtoolsに、amsmathパッケージ(パッケージのスーパーセット)をロードすることをお勧め\DeclarePairedDelimiterします\norm

    \documentclass{article} % or some other suitable document class
    \usepackage{mathtools,amssymb}
    \DeclarePairedDelimiter{\norm}{\lVert}{\rVert} % define a "\norm" macro
    \usepackage{old-arrows} % optional (for smaller arrowheads) 
    
    \begin{document}
    \begin{equation}
        R = \norm{\overrightarrow{q_1c}} = \norm{\overrightarrow{q_2c}}
    \end{equation}
    \end{document}
    

どちらのアプローチでも、次の出力が得られます。

2つのアプローチのうち、2つ目は、コード(ここでは:)が入力内容\norm{...}意味を強調しているため、間違いなく「LaTeX-y」です。これは、コードの高レベルの意味と低レベルの組版の側面を可能な限り区別するというLaTeXの設計哲学によく準拠しています。