(文本模式)表格中的多行花括号

(文本模式)表格中的多行花括号

这是我的问题:

样本

在所附的示例中,表格的第二列包含多行花括号,其高度与第五列的行数相匹配:如果第五列中有四个项目,则括号的高度将比有两个项目时更高,等等。

我找到了一个可以很好地完成这一点的代码示例,我们将其称为......运行文本,例如在表格外:

\documentclass[10pt]{extarticle}
\usepackage[a6paper,verbose]{geometry}
\begin{document}
I want to buy
$\left\{
\begin{tabular}{@{}l@{}}
    tomatoes \\
    onions \\
    cucumbers
\end{tabular}
\right.
\end{document}

在过去的几个晚上,我一直试图将它集成到附加的 jpg 图像中的其他基本表格(五列,一点多行以垂直居中第一列的内容……等等)中,但到目前为止,我收到的只是来自 xelatex 的错误消息。

以下是众多失败案例中的一个:

\documentclass[10pt]{extarticle}
\usepackage[a5paper]{geometry}
\usepackage{multirow}

\begin{document}
\begin{center}
\begin{tabular}{ll}
                             &                                                     \\
\multirow{2}{*}{SOUPIÈRES.}  & \multirow{2}{*}{ \left\{ \begin{tabular}{@{}l@{}}
                                   2  & — & potage d'esturgeon à l'anglaise.  \\
                                   2  & — & consommé à la Colbert.                      
                              \end{tabular} \right.}                               \\
                             &                                                     \\
\end{tabular}
\end{center}
\end{document}

知道这段代码有什么问题以及如何修复它吗?

更新时间:8/11/20

感谢 Azeti 的帮助,这是我的代码的修复版本(删节版):

\documentclass[10pt]{extarticle}
\usepackage[a5paper]{geometry}
\usepackage{multirow}

\begin{document}
\begin{tabular}{ll}                              
                  &                                                     \\ 
                  &  \begin{tabular}{|r|c|l|}                                    
                               40  & — & assiettes d'huîtres et citrons
                    \end{tabular}                                       \\                              
                  &                                                     \\ 
  SOUPIÈRES.      & $ \left\{ \begin{tabular}{|r|c|l|}                                    
                                2  & — & potage d'esturgeon à l'anglaise.            \\
                                2  & — & consommé  à la Colbert. 
                              \end{tabular} \right.$                    \\                              
                  &                                                     \\ 
  HORS-D'ŒUVRE.   & $ \left\{ \begin{tabular}{|r|c|l|}                                    
                                2  & — & quenelles de volaille à la Villeroi.        \\
                                2  & — & rissoles de gibier.                         
                              \end{tabular} \right.$                    \\                              
                  &                                                     \\ 
  POISSONS.       & $ \left\{ \begin{tabular}{|r|c|l|}                                    
                                2  & — & turbot sauce aux anchois.                   \\
                                2  & — & rougets grillés.                           
                              \end{tabular} \right.$                    \\                              
                  &                                                     \\ 
  RELEVÉS.        & $ \left\{ \begin{tabular}{|r|c|l|}                                    
                                2  & — & pièce de bœuf à la nivernaise.              \\
                                2  & — & jambon glacé au madère.                   
                              \end{tabular} \right.$                    \\                              
                  &                                                     \\ 
  ENTRÉES.        & $ \left\{ \begin{tabular}{|r|c|l|}                                    
                                2  & — & petits pâtés à la financière.               \\
                                2  & — & chartreuse de perdreaux.                    \\
                                2  & — & queues de langoustes belle-vue.             \\
                                2  & — & aspic de foie-gras.                      
                              \end{tabular} \right.$                    \\                              
\end{tabular}
\end{document}

现在,表格的右半部分位于一堆独立的嵌套表格中,问题在于列不再对齐:即第 3 列中的数字、第 4 列中的破折号以及最右列中的两行到四行文本。如果有人有兴趣查看,此示例应该可以使用 xelatex 进行编译。

为了尝试修复这个问题,我将表格列规格从 rcl 更改为 p{length)... 等,以强制所有嵌套表格具有相同的宽度,这在一定程度上改善了布局,但由于某种原因,某些列仍然略微错位(我模糊地怀疑这可能是由于框过满等原因造成的)。

我没有发现任何可以强制 latex/xelatex 对齐同一页面中相同表格的列的东西,无论如何。

因此,看起来我可以选择伯纳德更具异国情调的包装,并取消了这些相当丑陋的支架,以我有限的经验来看...... 19 世纪法国的印刷工和排字工似乎过于喜欢这些支架了。

我并不屏住呼吸,但如果有人有进一步的建议......

更新时间:8/17/20

最终采用了 Bernard 的解决方案和 blkarray 包……比嵌套表更具可扩展性(例如,想象一下,有一个大的左花括号,有几个第二级较小的花括号,还有几个第三级花括号等)。不会发生吗?再想想:

在文本模式下可以编码多行花括号吗?

答案1

可以通过简单的方式完成,使用该blkarray包和一些补充包(booktabs, stackengine):

\documentclass[10pt]{extarticle}
\usepackage[a5paper]{geometry}
\usepackage[T1]{fontenc}
\usepackage{ebgaramond}
\usepackage{multirow}
\usepackage{array, blkarray}
\usepackage{booktabs}
\usepackage[usestackEOL]{stackengine}

\begin{document}


\begin{center}
\setlength{\BAextrarowheight}{3pt}
\begin{blockarray}{l@{}l@{\enspace}l}
                           40 & & Assiettes d’huîtres et citrons \\
\addlinespace
        \begin{block}{\Left{\scshape soupières. }{\{}l@{}l@{\enspace}l}%
                                   2 & — & Potage d'esturgeon à l'Anglaise. \\
                                   2 & — & Consommé à la Colbert. \\
        \end{block}
\addlinespace
        \begin{block}{\Left{\scshape\Centerstack{hors-\\d’œuvre.} }{\{}l@{}l@{\enspace}l}%
                                   2 & — & Quenelles de volailles à la Villeroi. \\
                                   2 & — & Rissoles de gibier. \\
        \end{block}
\addlinespace
        \begin{block}{\Left{\scshape Poissons. }{\{}l@{}l@{\enspace}l}%
                                   2 & — & Turbot sauce aux anchois. \\
                                   2 & — & Rougets grillés. \\
        \end{block}
\addlinespace
\end{blockarray}
\end{center}

\end{document} 

在此处输入图片描述

答案2

{NiceTabular}这是使用 的解决方案nicematrix。在该环境下,您可以构建表格,然后将括号放在所需的位置(至少需要 v 5.10)。

\documentclass[10pt]{extarticle}
\usepackage[a5paper]{geometry}
\usepackage{ebgaramond}

\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{cr@{\;}l@{\;}l} 
 & 40  &   & Assiettes d'huîtres et citrons       \\[1ex]
\Block{2-1}{SOUPIÈRES.} 
 &  2  & — & Potage d'esturgeon à l'Anglaise.     \\
 &  2  & — & Consommé  à la Colbert.              \\[1ex]
\Block{2-1}{HORS-\\D'ŒUVRE.}   
 & 2  & — & Quenelles de volaille à la Villeroi. \\
 & 2  & — & Rissoles de gibier.                  \\[1ex]
\Block{2-1}{POISSONS.} 
 & 2  & — & Turbot sauce aux anchois.            \\
 & 2  & — & Rougets grillés.                     \\[1ex]
\Block{2-1}{RELEVÉS.} 
 & 2  & — & Pièce de bœuf à la Nivernaise.       \\
 & 2  & — & Jambon glacé au madère.              \\[1ex]
\Block{4-1}{ENTRÉES.} 
 & 2  & — & Petits pâtés à la Financière.        \\
 & 2  & — & Chartreuse de perdreaux.             \\
 & 2  & — & Queues de langoustes Belle-Vue.      \\
 & 2  & — & Aspic de foie-gras. 
\CodeAfter
\SubMatrix\{{2-2}{3-2}.
\SubMatrix\{{4-2}{5-2}.
\SubMatrix\{{6-2}{7-2}.
\SubMatrix\{{8-2}{9-2}.
\SubMatrix\{{10-2}{13-2}.
\end{NiceTabular}
\end{document}

您需要多次编译(因为nicematrix使用 PGF/Tikz 节点)。

上述代码的输出

相关内容