Почему бюстгальтер и кетчуп определены в официальной упаковкеbraket.sty
двумя разными способами ( \bra
, \Bra
и \ket
, \Ket
)?
Я не понимаю, почему существует команда \bra
с немасштабируемыми разделителями. По стилистическим причинам я интуитивно использовал версии с заглавными буквами. Вы когда-нибудь сталкивались со второй немасштабируемой версией?
Посмотрите краткий пример для бюстгальтера:
\documentclass{article}
\usepackage{amsmath}
\usepackage{braket}
\begin{document}
\begin{align*}
\Bra{\frac{1}{\sqrt{2}}\left(\uparrow + \downarrow\right)}
&=\frac{1}{\sqrt{2}}\left(\Bra{\uparrow}+\Bra{\downarrow}\right)\\
\bra{\frac{1}{\sqrt{2}}\left(\uparrow + \downarrow\right)}
&=\frac{1}{\sqrt{2}}\left(\bra{\uparrow}+\bra{\downarrow}\right)\\
&=2 222 22\\
&=2\mathinner{222}22
\end{align*}
\end{document}
Понимание определения пакета
Для новичков в асмате, таких как я, последние две строки в среде align описывают, что \mathinner
делает (если вы посмотрите наbraket.sty
Исходный код пакета). Пакет определил команды следующим образом:
\def\bra#1{\mathinner{\langle{#1}|}}
\def\ket#1{\mathinner{|{#1}\rangle}}
\def\Bra#1{\left\langle#1\right|}
\def\Ket#1{\left|#1\right\rangle}
решение1
Макросы с заглавными буквами в начале являются "саморасширяющимися" на основе содержимого, как говорится в документации. Так же, как не всегда хорошо использовать \left
и \right
, также хорошо выбирать с осторожностью между \Bra
и \bra
.
Что касается дополнительного интервала, то решением является загрузка mleftright
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{braket,mleftright}
\mleftright
\begin{document}
\begin{align*}
\Bra{\frac{1}{\sqrt{2}}\left(\uparrow + \downarrow\right)}
&=\frac{1}{\sqrt{2}}\left(\Bra{\uparrow}+\Bra{\downarrow}\right)\\
\bra{\frac{1}{\sqrt{2}}\left(\uparrow + \downarrow\right)}
&=\frac{1}{\sqrt{2}}\left(\bra{\uparrow}+\bra{\downarrow}\right)\\
&=2 222 22\\
&=2\mathinner{222}22\\
\end{align*}
\end{document}
решение2
В общем случае они \left<delim> ... \right<delim>
используются для подгонки высоты содержимого с помощью расширяемых разделителей, выбранных так, чтобы они были выше всех частей содержимого.
Но хорошо известно, что этот выбор часто приводит к слишком большим (высоким) разделителям, и его следует избегать по эстетическим причинам (и вытекающим из этого типографским правилам), как тактично сказал egreg и как проиллюстрировано комментарием Адитьи. Лучше сохранять высоту разделителей как можно меньше, при условии, что они обеспечивают хорошую читаемость.
Вот почему я не использую ничего, braket.sty
кроме своего собственного, .sty
основанного на \big
и \Big
, и некоторых трюков, связанных со старой модой, \def
например, для бюстгальтеров:
\def\bra<#1|{\langle #1\rvert}
\def\Bra<#1|{\big\langle #1\big\rvert}
\def\BRA<#1|{\Big\langle #1\Big\rvert}
и я бы закодировал пример, обсуждаемый здесь:
\BRA<\frac{1}{\sqrt{2}}\left(\uparrow + \downarrow\right)|
=\frac{1}{\sqrt{2}}\big(\bra<\uparrow|+\bra<\downarrow|\big)
результат которого, на мой взгляд, выглядит лучше, чем braket.sty
результат, закодированный strpeter и опубликованный egreg.
В качестве дополнительных комментариев:
- он набрал бы дробь,
\textstyle
чтобы избежать придания ему акцента - левая часть не является действительно содержательным обозначением для этого состояния
решение3
Для тех из вас, кто собирается вводить скобочную нотацию для Markdown или веб-приложений, вы можете попробовать следующий метод:
$$
\newcommand{\bra}[1]{\left \langle #1 \right \rvert}
\newcommand{\ket}[1]{\left \rvert #1 \right \rangle}
\newcommand{\E}[1]{\left \langle #1 \right \rangle}
\newcommand{\braket}[2]{\left \langle #1 \middle \rvert #2 \right \rangle}
\newcommand{\braxket}[3]{\left \langle #1 \middle \rvert #2 \middle \rvert #3 \right \rangle}
\bra{\Psi}, \;
\ket{\varphi}, \;
\E{\frac{\Psi^\dag\Psi}{2/3}}, \;
\braket{\frac{\Psi}{2/3}}{\varphi}, \;
\braxket{\frac{\Psi}{2/3}}{A}{\varphi}
$$