
Я хочу определить макрос для обычного порядка операторов, как это сделанов этом вопросе.
Код LaTeX, созданный LyX для этого макроса, выглядит следующим образом:
\global\long\def\norder#1{\vcentcolon#1\vcentcolon}
Однако, когда я его вызываю:
$\norder{\hat{a}\hat{a}^{\dagger}}$
выдает ошибку:
...ven by $\norder{\hat{a}\hat{a}^{\dagger}} $ Управляющая последовательность в конце верхней строки вашего сообщения об ошибке никогда не была \def'ed.
Я не понимаю, почему возникает ошибка. У меня в документе есть еще макросы, и они отлично работают. amsmath
и amssimb
загружаются через "Math Options" LyX (и я проверил, что могу использовать такие команды, как \mathbb
внутри макросов). Похоже, проблема в \vcentcolon
команде, но я не вижу, почему и как это исправить. Спасибо!
P.S. Это то, что у меня было begin{document}
в исходнике LaTeX, сгенерированном 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}
решение1
Команда \ventcolon
не определена. Загрузите пакет mathtools
; вы можете загрузить его вместо amsmath
. Более того, заключите содержимое двоеточий в \mathrel
команду, чтобы улучшить интервал.
\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}