
Quero definir uma macro para a ordenação normal dos operadores conforme feitonesta questão.
O código LaTeX produzido pelo LyX para esta macro é:
\global\long\def\norder#1{\vcentcolon#1\vcentcolon}
No entanto, quando eu o invoco:
$\norder{\hat{a}\hat{a}^{\dagger}}$
dá um erro:
...ven by $\norder{\hat{a}\hat{a}^{\dagger}} $ A sequência de controle no final da linha superior da sua mensagem de erro nunca foi \def'ed.
Não entendo porque dá o erro. Tenho mais macros no documento e elas funcionam perfeitamente. amsmath
e amssimb
são carregados através das "Opções matemáticas" do LyX (e verifiquei se posso usar comandos como \mathbb
dentro de macros). Parece que o problema é o \vcentcolon
comando, mas não vejo por que ou como corrigi-lo. Obrigado!
PS. Isso é o que eu tenho antes begin{document}
na fonte LaTeX gerada pelo 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}
Responder1
O comando \ventcolon
não foi definido. Carregue o pacote mathtools
; você pode carregá-lo em vez de amsmath
. Além disso, coloque o material entre os dois pontos em um \mathrel
comando para melhorar o espaçamento.
\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}