花括号 - 如何更改文本和括号之间的间距

花括号 - 如何更改文本和括号之间的间距
\documentclass[fleqn,12pt,a4paper]{article}
\usepackage{amstext, amsmath}
\newcommand{\lcurly}[1]{$\left\{\begin{array}{l}  #1   \end{array} \right.$}
\newcommand{\rcurly}[1]{$\left. \begin{array}{l}  #1   \end{array} \right  \}$}
\newcommand{\slcurly}[1]{$\left\{   \shortstack{#1} \right.$}
\newcommand{\srcurly}[1]{$\left. \shortstack{#1} \right  \}$}

   \begin{document}
   \lcurly{1 \\ 2} \rcurly{Line 1 \\ Line 2} \vspace{1cm} \\    
   \slcurly{1 \\ 2}  \srcurly{Line 1\\ Line 2} \\
   \end{document}

我需要创建花括号,我设法用上面显示的代码做到了这一点。我附上了一个截图。当我使用数组时,文本垂直分布均匀,但括号看起来稍远一些。当我将数组更改为堆叠时,括号看起来更近,但文本没有很好地对齐。

我想知道是否有办法将文本对齐,如上图所示,并使括号看起来紧密,如图片第二部分所示。感谢您的帮助替代文本

答案1

一个快速的解决方法是在数组之前和之后分别插入一些负空格:

\newcommand{\lcurly}[1]{$\left\{\hspace{-0.5em}%
  \begin{array}{l}  #1   \end{array} \right.$}
\newcommand{\rcurly}[1]{$\left.
  \begin{array}{l}  #1   \end{array}\hspace{-0.5em}\right  \}$}

在诸如你的第二个例子的情况下,\vcenter垂直居中对象很方便:

\newcommand{\slcurly}[1]{$\left\{\vcenter{\hbox{$\shortstack{#1}$}}\right.$}
\newcommand{\srcurly}[1]{$\left.\vcenter{\hbox{$\shortstack{#1}$}}\right \}$}

替代文本

答案2

根据 Hendrik 的提示 =) 我会这样做。

\documentclass{article}
\usepackage{amsmath}
\newcommand\curly[1]{%
        \ensuremath{%
                \left\{%
                \begin{array}{@{}ll@{}}%
                        #1%
                \end{array}%
                \right\}%
        }%
}
\begin{document}
\curly{1 & \text{Line 1}\\
       2 & \text{Line 2}}
\end{document}

替代文本

这样的好处是,即使某一部分比其他部分大,线条也能保持对齐。我的图片没有显示出来,但它也会将数组的垂直中心对齐,对齐位置约为周围文本 x 高度的一半。(TeX 按主题分类告诉我它是“\fontdimen22当前样式中第 2 族字体,符号字体”,以防您好奇。)

答案3

这似乎也有效:

\documentclass{article}
\usepackage{schemata}
\begin{document}
\Schema[open]{0ex}{2ex}{\schemabox{}}
{\Schema[close]{0ex}{2ex}{\schemabox{1 Line 1\\2 Line 2}}
{}} 
\end{document}

在此处输入图片描述

相关内容