Macro de orden normal en LyX

Macro de orden normal en LyX

Quiero definir una macro para el orden normal de los operadores como se hizoen esta pregunta.

El código LaTeX producido por LyX para esta macro es:

\global\long\def\norder#1{\vcentcolon#1\vcentcolon}

Sin embargo, cuando lo invoco:

$\norder{\hat{a}\hat{a}^{\dagger}}$

da un error:

...incluso por $\norder{\hat{a}\hat{a}^{\dagger}} $ La secuencia de control al final de la línea superior de su mensaje de error nunca fue \def'ed.

No entiendo porque da el error. Tengo más macros en el documento y funcionan perfectamente. amsmathy amssimbse cargan a través de las "Opciones matemáticas" de LyX (y he comprobado que puedo usar comandos como \mathbbmacros internas). Parece que el problema es el \vcentcoloncomando pero no veo por qué ni cómo solucionarlo. ¡Gracias!

PD. Esto es lo que tengo antes begin{document}en la fuente LaTeX generada por LyX.

\documentclass[english]{article}
\usepackage{mathpazo}
\renewcommand{\familydefault}{\rmdefault}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=3cm,lmargin=3cm,rmargin=2cm}
\usepackage{float}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{esint}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{braket}
\makeatother
\usepackage{babel}

Respuesta1

El comando \ventcolonno ha sido definido. Cargue el paquete mathtools; puedes cargarlo en lugar de amsmath. Además, envuelva el contenido entre los dos puntos en un \mathrelcomando para mejorar el espaciado.

\usepackage{mathtools}
\newcommand\norder[1]{\vcentcolon\mathrel{#1}\vcentcolon}

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{mathtools}
\newcommand\norder[1]{\vcentcolon\mathrel{#1}\vcentcolon}
\begin{document}
$A \norder{\hat{a}\hat{a}^{\dagger}} B$
\end{document}

información relacionada