![為什麼括號符號不同?](https://rvso.com/image/266403/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%8B%AC%E8%99%9F%E7%AC%A6%E8%99%9F%E4%B8%8D%E5%90%8C%EF%BC%9F.png)
為什麼官方包中定義了bra和ketbraket.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}
理解包的定義
對於像我這樣的 amsmath 菜鳥來說,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
and不好一樣,在和\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巧妙地說的和Aditya評論所例證的那樣。更好的做法是保持分隔符號的高度盡可能小,前提是它們確保良好的可讀性。
這就是為什麼我不使用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)
IMO 的結果比braket.sty
strpeter 編碼並由egreg 發布的結果更好看。
作為進一步的評論:
- 它會將分數排版
\textstyle
以避免強調 - 對於這種狀態,左側並不是一個真正有意義的符號
答案3
對於那些在這裡為 Markdown 或 Web 應用程式輸入括號符號的人,您可以嘗試以下方法:
$$
\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}
$$