不常见括号的间距

不常见括号的间距

我对 LaTeX 还不太熟悉,不知道它的内部工作原理,但我想排版一个带双划线括号的表达式。我在包中找到了这样的符号(\llbracket\rrbracketstmaryrd,但它似乎没有给两侧留出很好的间距。我尝试了两种方法(模仿第二种变体中类似问题的一些答案),但似乎不起作用。

\documentclass{article}
\usepackage{amsmath}
\usepackage{stmaryrd}

\newcommand{\repA}[1]{\left\llbracket #1 \right\rrbracket}
\newcommand{\repB}[1]{\left\llbracket\! #1 \,\right\rrbracket} 

\begin{document}
\Large
\begin{align*}
\repA{\vec{v}}\\
\repB{\vec{v}}
\end{align*}
\end{document} 

在此处输入图片描述

我不知道如何在这里上传图片,无论如何,第一个版本中的符号太靠近右括号,第二个版本中的符号太靠近左括号。定义一个处理间距并正确执行的命令的正确方法是什么?提前非常感谢。

答案1

问题在于\vec,它会产生一个可以延伸到下方字形右侧的箭头。

\vec这里我建议重新定义一下,根据与“w”宽度的差异,在构造后增加一些空间。

我还使用\DeclarePairedDelimiter它来提供一种调整分隔符大小的简单方法。

\documentclass{article}
\usepackage{amsmath,mathtools}
\usepackage{stmaryrd}

\DeclarePairedDelimiter{\rep}{\llbracket}{\rrbracket}
\makeatletter
\AtBeginDocument{%
  \let\latex@vec\vec
  \renewcommand\vec[1]{{\latex@vec{#1}\mathpalette\@vec{#1}}}%
}
\newcommand\@vec[2]{%
  \sbox\z@{$\m@th#1w$}%
  \sbox\tw@{$\m@th#1#2$}%
  \ifdim\wd\tw@<\wd\z@
   \kern0.2\dimexpr\wd\z@-\wd\tw@\relax
  \fi
}
\makeatother

\begin{document}
\begin{gather*}
\vec{v}+\vec{w}\\
\rep{\vec{x}}+\rep{\vec{v}}+\rep{\vec{w}}\\
\rep{\vec{v}}+\rep[\big]{\vec{v}}+
  \rep[\Big]{\vec{v}}+\rep*{\frac{1}{2}\vec{v}}
\end{gather*}
\end{document}

在此处输入图片描述

答案2

最终还是要看字体设计者。stmaryrd我同意斜体斜度看起来有点偏离中心,我可能只会\,在右侧使用

\newcommand{\repC}[1]{\llbracket#1\,\rrbracket} 

生成下面的顶部版本。尽管您可以根据需要使用较小的调整。默认情况下是\,较小的...\thinmuskip3mu\mkern2mu

但其他字体的间距不同,如果你使用

\usepackage{stix}

然后使用 stix 字体

\newcommand{\repD}[1]{\lBrack#1\rBrack} 

生成较低版本,也许不需要在 tex 宏中进行调整。

在此处输入图片描述

答案3

mathtools您可以使用和其\DeclareMathDelimiterX命令获得具有正确间距的宏。您将获得一个\left … \togt在其星号版本中隐含一对的宏,或者可以使用可选参数(\big\Big、等)来微调分隔符大小。我还建议您使用\vv来自 的命令esvect,它的箭头提示比\vec(8 种提示!)更漂亮:

\documentclass{article}
\usepackage{mathtools}
\usepackage{stmaryrd}
\usepackage[b]{esvect}

\DeclarePairedDelimiterX\repC[1]\llbracket\rrbracket{#1\mkern1.2mu}

\begin{document}
\Large
\begin{gather*}
  \repC[\big]{\vec{v}}\quad\repC{\vec{v}}\\
  \repC[\big]{\vv{v}}\quad\repC{\vv{v}}
\end{gather*}

\end{document} 

在此处输入图片描述

答案4

您可以使用 fdsymbol 包:

\documentclass{article}
\usepackage{fdsymbol}
\usepackage{amsmath}
\begin{document}
\Huge
$\lBrack\vec{v}\rBrack$
\end{document}

得出:

在此处输入图片描述

相关内容