我希望:O:
以一种方式排版量子场论中常用的正常排序符号,使它们容易与常规冒号区分开来,尤其是“定义为”符号:=
。有没有人遇到过LaTeX
这样的命令的良好实现,它总是在每个命令前后添加适当数量的空格:
?
更新
在我的上下文中,egreg 的解决方案\newcommand{\normord}[1]{:\mathrel{#1}:}
如下所示:
Bernard 和 egreg 的答案(不太优雅)的组合\newcommand{\normord}[1]{{:}\!\mathrel{#1}\!{:}}
产生了
我认为它看起来不太好,但可能是我迄今为止取得的最佳输出。
答案1
作为一个顺序,它应该是一种关系:
\documentclass{article}
\newcommand{\normord}[1]{:\mathrel{#1}:}
\begin{document}
$X \normord{\hat{O}} Y$
$X \normord{\hat{b}^{\dag}\hat{b}} Y$
\end{document}
您可以使用以下方法稍微抬高冒号\vcentcolon
:
\documentclass{article}
\newcommand{\normord}[1]{\vcentcolon\mathrel{#1}\vcentcolon}
\providecommand{\vcentcolon}{\mathrel{\mathop{:}}}
\begin{document}
$X \normord{\hat{O}} Y$
$X \normord{\hat{b}^{\dag}\hat{b}} Y$
\end{document}
我使用\providecommand
这样的东西,如果你加载mathtools
(当然是在那些定义之前),那么该定义将被忽略(以精确的方式mathtools
定义)。\vcentcolon
我们可以将结肠抬高到更高的高度吗?当然可以,但这不一定是个好主意。
\documentclass{article}
\newcommand{\normord}[1]{\xcentcolon\mathrel{#1}\xcentcolon}
\newcommand{\xcentcolon}{%
\mathrel{\vbox{\hbox{$:$}\kern.2ex}}%
}
\begin{document}
$X \normord{\hat{O}} Y$
$X \normord{\hat{b}^{\dag}\hat{b}} Y$
$X \normord{a} Y$
\end{document}
如果您想在中间添加空间,那就这么做吧!
\documentclass{article}
\newcommand{\normord}[1]{:\mathrel{\mkern2mu #1 \mkern2mu}:}
\begin{document}
$X \normord{\hat{O}} Y$
$X \normord{\hat{b}^{\dag}\hat{b}} Y$
\end{document}
让我们以练习 9.3 为例托马斯·班克斯 (Thomas Banks) 著《现代量子场论》,第 204 页;以下是原文摘录
这是我的模拟:
\documentclass{article}
\usepackage[lite]{mtpro2}
\usepackage{amsmath}
\newcommand{\normord}[1]{%
:\mathrel{\mspace{2mu}#1\mspace{2mu}}:%
}
\begin{document}
$\langle T :\phi^4(x)::\phi^4(x): \phi(y_1)\dots\phi(y_n)\rangle$.
$\langle T \normord{\phi^4(x)} \normord{\phi^4(x)} \phi(y_1)\dots\phi(y_n)\rangle$.
\end{document}
很明显,这本书是使用第一种方式排版的:没有特殊符号(间距显然是出于:
数学关系的考虑)。我发现第二种方式更不让人分心。
另一种方法是将其视为一个普通符号:
\documentclass{article}
\usepackage[lite]{mtpro2}
\usepackage{amsmath}
\newcommand{\normord}[1]{%
{:\mathrel{\mspace{1mu}#1\mspace{1mu}}:}%
}
\begin{document}
$\langle T \normord{\phi^4(x)} \normord{\phi^4(x)} \phi(y_1)\dots\phi(y_n)\rangle$.
\end{document}
答案2
另一种解决方案(也许是直观的)是将冒号视为分隔符:
\documentclass[12pt]{minimal}
\usepackage[paperwidth=3in,paperheight=1in]{geometry}
\newcommand\normalorder[1]{\mathopen{:}#1\mathclose{:}}
\begin{document}
\[ \normalorder{ \hat b^\dagger\hat b} = \hat b^\dagger \hat b \]%
\[\langle T \normalorder{\phi^4(x)} \normalorder{\phi^4(x)} \phi(y_1)\dots\phi(y_n)\rangle\]
\end{document}
如果它不是二元运算符或类似的东西,那么它的缺点就是正常排序运算符的末尾和下一个表达式之间存在间距。
文献中使用的替代方案
只需浏览 arxiv 上的文章来源就可以找到许多有启发性的替代方案。
对于另一种定义,arXiv:物理学/0212061用于\newcommand{\n}[1]{{:}\, #1 {:} }
正常排序,这样可以提供更多的空间,并且可能更美观。
一个更独特的选择可能是arXiv:hep-th/9308151使用类似的东西\newcommand\Ord{_\times^\times}
来用小冒号来分隔正常排序的产品\times
,但这是一个临时解决方案。
类似的解决方案,虽然更加美观,但可以在arXiv:数学/9909178使用\newcommand{\nordbullet}{\mbox{\tiny ${\bullet\atop\bullet}$}}
。
答案3
类似这样的事?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{lmodern}
\newcommand\normalorder[1]{{:}\mkern1mu#1\mkern1.6mu{:}}
\begin{document}
\[ \normalorder{ \hat b^\dagger\hat b} = \hat b^\dagger \hat b \]%
\end{document}