Jak zdefiniować ograniczniki norm?

Dec 11 2020

Chciałbym napisać następujące równanie w LaTeX:

Oto mój kod:

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

Chociaż wynik jest taki jak moje oczekiwanie, napotykam błąd „Undefined Control Sequence”:

Czy możesz mi pomóc rozwiązać ten problem. Z góry dziękuję.

Odpowiedzi

9 Mico Dec 11 2020 at 10:54

Zostałeś poinformowany, że \normjest to „nieokreślona sekwencja kontrolna”. Ponadto w komentarzu wspominasz, że ładujesz pakiety amsmathi amssymb. (Poza tym: ponieważ amssymbpakiet ładuje amsfontspakiet automatycznie, nie musisz amsfontsjawnie ładować pakietu.)

Masz dwie główne opcje:

  1. Usuń dwie \normdyrektywy z kodu. A skoro już to robisz, usuń również dyrektywy \lefti \rightsizing, ponieważ nie robią one tutaj nic oprócz tworzenia bałaganu w kodzie.

    \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. Wyjąć \left\Verti \right\Vertdyrektyw i zdefiniować makro o nazwie \norm. Chciałbym zasugerować załadowanie mathtoolspakietu - nadzbiór amsmathpakietu - w \DeclarePairedDelimitercelu zdefiniowania jego makra \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}
    

W przypadku obu podejść otrzymasz następujące dane wyjściowe:

Z dwóch podejść, drugie jest zdecydowanie bardziej „LaTeX-y”, ponieważ kod (tutaj \norm{...}:) podkreśla znaczenie tego, co wprowadzasz. Jest to lepiej zgodne z filozofią projektowania LaTeX, polegającą na rozróżnianiu w jak największym stopniu między znaczeniem wyższego poziomu a aspektami składu kodu niższego poziomu.