可扩展双角等

可扩展双角等

我想知道一种有效的方法来生成内积符号,例如

\[
\langle\langle u, v \rangle\rangle
\]

(即双尖括号),或类似

\[
\lvert\lVert x \rVert\rvert
\]

(即三条杠)。当然,上面的例子很糟糕,不尊重空格。有没有一种有效的方法可以做到这一点,以便分隔符可扩展(与$\left$和兼容$\right$)?

我知道这个包裹纳特,但它与 amsmath 完全不兼容,并且会产生数千个错误,因此不是一个选项。我也尝试过使用“DeclareMathDelimiterX”数学模式,但无法让它像我希望的那样正常工作。

答案1

奇怪的是,解毒没用。另一个很好的来源是综合 LaTeX 符号列表,其答案如下:

对于第一个分隔符对,请使用包中的\llangle和(如上文 Martin 的评论中所述)。对于第二对,您可以尝试使用。\rrangleMnSymbol\vvvertmathabx

答案2

你可能想尝试unicode-math使用合适的字体,因为 Unicode 有⟪双角⟫和⦀三条杠⦀。因此您可以写\left⦀\right⟫,无需丑陋的黑客,间距也正确。为了增加趣味性,您可以使用mathtools例如

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{unicode-math}
    \setmathfont{XITS Math}
\DeclarePairedDelimiterX\innprod[2]{⟪}{⟫}{#1\delimsize|#2}

\begin{document}
$\innprod*{\frac{a}{ξ}}{b}$
\end{document}

上述代码的结果

答案3

先前对\llangle和的回答\rrangle都很好。

虽然这有点儿像 hack,但三重顶点的代码取得了良好的效果:

\makeatletter
\def\@tvsp{\mathchoice{{}\mkern-4.5mu}{{}\mkern-4.5mu}{{}\mkern-2.5mu}{}}
\def\ltrivert{\left|\@tvsp\left|\@tvsp\left|}
\def\rtrivert{\right|\@tvsp\right|\@tvsp\right|}
\makeatother

使用\left\right使用\interleave可能也会很好用;从未尝试过,因为在stmaryrd字体可用之前我们就需要这些符号。

相关内容