
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. amsmath
y amssimb
se cargan a través de las "Opciones matemáticas" de LyX (y he comprobado que puedo usar comandos como \mathbb
macros internas). Parece que el problema es el \vcentcolon
comando 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 \ventcolon
no ha sido definido. Cargue el paquete mathtools
; puedes cargarlo en lugar de amsmath
. Además, envuelva el contenido entre los dos puntos en un \mathrel
comando para mejorar el espaciado.
\usepackage{mathtools}
\newcommand\norder[1]{\vcentcolon\mathrel{#1}\vcentcolon}
\documentclass{article}
\usepackage{mathtools}
\newcommand\norder[1]{\vcentcolon\mathrel{#1}\vcentcolon}
\begin{document}
$A \norder{\hat{a}\hat{a}^{\dagger}} B$
\end{document}