Bagaimana cara saya mendefinisikan pembatas norma?

Dec 11 2020

Saya ingin menulis persamaan berikut di LaTeX:

Ini kode saya:

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

Meskipun hasilnya sesuai harapan, saya menemui kesalahan "Urutan Kontrol Tidak Terdefinisi":

Bisakah Anda membantu saya memperbaiki masalah ini. Terima kasih sebelumnya.

Jawaban

9 Mico Dec 11 2020 at 10:54

Anda telah diberitahu bahwa itu \normadalah "urutan kontrol yang tidak ditentukan". Anda lebih lanjut menyebutkan, dalam komentar, bahwa Anda memuat amsmathdan amssymbpaket. (Selain: Karena amssymbpaket memuat amsfontspaket secara otomatis, Anda tidak perlu memuat amsfontspaket secara eksplisit.)

Anda memiliki dua opsi utama:

  1. Hapus dua \normarahan dari kode. Dan, saat Anda melakukannya, hapus perintah \leftdan \rightukuran juga, karena mereka tidak melakukan apa pun di sini kecuali membuat kekacauan kode.

    \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. Lepaskan \left\Vertdan \right\Vertarahan dan menentukan makro disebut \norm. Saya ingin menyarankan Anda memuat mathtoolspaket - superset dari amsmathpaket - untuk \DeclarePairedDelimiterdidefinisikan makronya \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}
    

Dengan kedua pendekatan tersebut, Anda akan mendapatkan hasil sebagai berikut:

Dari dua pendekatan tersebut, yang kedua pasti lebih "LaTeX-y" karena kode (di sini \norm{...}:) menekankan arti dari apa yang Anda masukkan. Ini lebih sesuai dengan filosofi desain LaTeX dalam membedakan sebanyak mungkin antara makna tingkat yang lebih tinggi dan aspek penataan huruf tingkat rendah dari kode.