\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}