Comment définir les délimiteurs de normes?

Dec 11 2020

Je voudrais écrire l'équation suivante en LaTeX:

Voici mon code:

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

Bien que le résultat corresponde à mes attentes, je rencontre l'erreur "Séquence de contrôle non définie":

Pouvez-vous m'aider à résoudre ce problème. Merci d'avance.

Réponses

9 Mico Dec 11 2020 at 10:54

Vous avez été informé qu'il \norms'agit d'une "séquence de contrôle non définie". Vous mentionnez en outre, dans un commentaire, que vous chargez les packages amsmathet amssymb. (À part: puisque le amssymbpackage charge amsfontsautomatiquement le package, vous n'avez pas besoin de charger le amsfontspackage explicitement.)

Vous avez deux options principales:

  1. Supprimez les deux \normdirectives du code. Et, pendant que vous y êtes, ne retirez les \leftet \rightdirectives de dimensionnement et, comme ils ne font rien ici , sauf créer le désordre de code.

    \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. Retirez les \left\Vertet \right\Vertdirectives et définir une macro appelée \norm. Je voudrais vous suggérer de charger le mathtoolspackage - un sur-ensemble du amsmathpackage - pour que sa \DeclarePairedDelimitermacro définisse \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}
    

Avec les deux approches, vous obtiendrez le résultat suivant:

Des deux approches, la seconde est certainement plus "LaTeX-y" car le code (ici \norm{...}:) met l'accent sur la signification de ce que vous entrez. Cela correspond mieux à la philosophie de conception de LaTeX qui consiste à distinguer autant que possible entre la signification de niveau supérieur et les aspects de composition de niveau inférieur du code.