答案1
经过一番研究,我发现使用 tikz 可以获得足够接近原始想法的结果。
\documentclass{article}
\usepackage{xparse}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand{\lroungle}{\mathrel{\mkern-4mu
\raisebox{-2.1pt}{%
\tikz[line cap=round, line join=round]
\draw
(0ex, 2.2ex) to[out=-135,in=135, distance=7] (0ex,0ex)
;%
}\mkern-3mu}
}
\newcommand{\rroungle}{%
\mathrel{\mkern-4mu\raisebox{-2.1pt}{%
\tikz[line cap=round, line join=round]
\draw
(0ex, 2.2ex) to[out=-45,in=45, distance=7] (0ex,0ex)
;%
}}
}
\begin{document}
\[\lroungle A , B \rroungle \]
\end{document}
此外,我注意到可以稍微修改物理包中的 brackett 命令,用圆角括号代替标准角括号。
\documentclass{article}
\usepackage{xparse}
\usepackage{amsmath, amsfonts}
\usepackage{tikz, scalerel}
\newcommand{\lroungle}{\mathrel{\mkern-4mu
\raisebox{-2.1pt}{%
\tikz[line cap=round, line join=round]
\draw
(0ex, 2.2ex) to[out=-135,in=135, distance=7] (0ex,0ex)
;%
}\mkern-3mu}
}
\newcommand{\rroungle}{%
\mathrel{\mkern-4mu\raisebox{-2.1pt}{%
\tikz[line cap=round, line join=round]
\draw
(0ex, 2.2ex) to[out=-45,in=45, distance=7] (0ex,0ex)
;%
}}
}
\DeclareDocumentCommand\rbra{ s m t\rket s g }
{ % Bra
\IfBooleanTF{#3}
{ % Contraction
\IfBooleanTF{#1}
{ % Bra has a star: no resize
\IfNoValueTF{#5}
{\rbraket*{#2}{} \IfBooleanTF{#4}{*}{}}
{\rbraket*{#2}{#5}}
}
{
\IfBooleanTF{#4}
{ % Ket has a star: no resize
\IfNoValueTF{#5}
{\rbraket{#2}{} *}
{\rbraket*{#2}{#5}}
}
{\rbraket{#2}{\IfNoValueTF{#5}{}{#5}}} % Neither term is starred: auto sizing
}
}
{ % No contraction
\IfBooleanTF{#1}
{\lroungle \smash{#2} \rvert}
{\stretchleftright{\lroungle\mkern2.5mu}{#2}{\rvert}}
\IfBooleanTF{#4}{*}{}
\IfNoValueTF{#5}{}{#5}
}
}
\DeclareDocumentCommand\rket{ s m }
{ % Ket
\IfBooleanTF{#1}
{\vphantom{#2}\lvert\smash{#2}\rroungle} % No resize
{\stretchleftright{\lvert}{#2}{\mkern2.5mu\rroungle}} % Auto sizing
}
\DeclareDocumentCommand\rinnerproduct{ s m g }
{ % Inner product
\IfBooleanTF{#1}
{ % No resize
\IfNoValueTF{#3}
{\vphantom{#2}\lroungle\smash{#2}\vert\smash{#2}\rroungle}
{\vphantom{#2#3}\lroungle\smash{#2}\vert\smash{#3}\rroungle}
}
{ % Auto resize
\IfNoValueTF{#3}
{\stretchleftright{\lroungle}{#2}{\vert} #2 \stretchrel*{\rroungle}
{\vphantom{#2}}}
{\stretchleftright{\lroungle}{#2 \vphantom{#3}}{\vert} {#3}\stretchrel*
{\rroungle}{\vphantom{#2#3}}}
}
}
\DeclareDocumentCommand\rbraket{}{\rinnerproduct}
\begin{document}
\newcommand{\kkt}{\widetilde{\mathbf k}}
\newcommand{\eps}{\varepsilon}
\begin{equation*}
\sum_{\mathbf k \in 2\pi \mathbf{Z}^3} \rket*{\mathbf k}\rbra*{\mathbf k}=\mkern-8mu \sum_{\kkt \in 2\pi\eps \mathbf{Z}^3}\rket{\frac{\kkt}{\eps}} \rbra{\frac{\kkt}{\eps}}
\end{equation*}
\end{document}