Создание левых (единственных) фигурных скобок в табличной среде

Создание левых (единственных) фигурных скобок в табличной среде

Я нашел код ниже, который почти делает то, что мне нужно. Но поскольку я его не понимаю, я не знаю, как изменить его для своих целей. Код ниже генерирует фигурную скобку справа от коллекции из трех элементов в таблице, а затем в, за которой следует описательное предложение. Я хочу, чтобы было имя слева, за которым следует фигурная скобка { слева только от двух элементов в таблице. Можете ли вы показать мне, как изменить этот код, чтобы добиться этого? Мне нужно только одно вхождение такого массива, а не три, приведенные в коде ниже.

\documentclass[10pt]{report}    
\topmargin -0.5in   
\textheight 9.75in   
\textwidth6.5in    
\oddsidemargin 0in              % sets the left margin
\usepackage{amsmath} 
\usepackage{graphicx}  
%\usepackage{epic}  
%\usepackage{eepic}   
\usepackage{Fancyheadings}   
\usepackage{fancybox}
\pagestyle{fancy}               % this suppresses page numbers
\setlength{\headrulewidth}{0pt}

\begin{document}

\newcommand\MyLBrace[2]{%
  \left.\rule{0pt}{#1}\right\}\text{#2}}

\noindent\begin{tabular}{c@{}l}
  \begin{tabular}{ll@{}}
    Aardvark & Armenia \\
    Elephant & Ethiopia \\
    Platypus & Portugal \\
    Zebra  & Zimbabwe \\
    text  & text \\
    text  & text \\
    text  & text \\
  \end{tabular} 
  &
  $\begin{array}{l}
    \MyLBrace{3ex}{things beginning with vowels} \\ 
    \MyLBrace{3ex}{things beginning with consonants} \\
    \MyLBrace{4.4ex}{things beginning and ending with t} 
  \end{array}$
\end{tabular}

\end{документ}

решение1

Следующее устраняет зависимость макроса иamsmathи использует только конструкцию из tabulars и arrays для вставки {(или }).

Горизонтальное выравнивание по строкам вложенных элементов arrayустанавливается путем задания \phantomстроки элементов, которые являются самыми широкими в каждом соответствующем столбце, и перехода назад по вертикали с помощью \\[-\normalbaselineskip].

введите описание изображения здесь

\documentclass{article}

\begin{document}

\noindent
\begin{tabular}{c@{}l}
  $\left.\kern-\nulldelimiterspace
    \begin{tabular}{@{}ll@{}}
      Aardvark & Armenia \\
      Elephant & Ethiopia \\
      \phantom{Aardvark} & \phantom{Zimbabwe} \\[-\normalbaselineskip]% For horizontal alignment
    \end{tabular}\right\}$ &
    things beginning with vowels \\
  $\left.\kern-\nulldelimiterspace
    \begin{tabular}{@{}ll@{}}
      Platypus & Portugal \\
      Zebra  & Zimbabwe \\
      \phantom{Aardvark} & \phantom{Zimbabwe} \\[-\normalbaselineskip]% For horizontal alignment
    \end{tabular}\right\}$ &
    things beginning with consonants \\
  $\left.\kern-\nulldelimiterspace
    \begin{tabular}{@{}ll@{}}
      text  & text \\
      text  & text \\
      text  & text \\
      \phantom{Aardvark} & \phantom{Zimbabwe} \\[-\normalbaselineskip]% For horizontal alignment
    \end{tabular}\right\}$ &
    things beginning and ending with t
\end{tabular}

\noindent
\begin{tabular}{r@{}c}
  things beginning with vowels & $\left\{
    \begin{tabular}{@{}ll@{}}
      Aardvark & Armenia \\
      Elephant & Ethiopia \\
      \phantom{Aardvark} & \phantom{Zimbabwe} \\[-\normalbaselineskip]% For horizontal alignment
    \end{tabular}\right.\kern-\nulldelimiterspace$ \\    
  things beginning with consonants & $\left\{
    \begin{tabular}{@{}ll@{}}
      Platypus & Portugal \\
      Zebra  & Zimbabwe \\
      \phantom{Aardvark} & \phantom{Zimbabwe} \\[-\normalbaselineskip]% For horizontal alignment
    \end{tabular}\right.\kern-\nulldelimiterspace$ \\
  things beginning and ending with t & $\left\{
    \begin{tabular}{@{}ll@{}}
      text  & text \\
      text  & text \\
      text  & text \\
      \phantom{Aardvark} & \phantom{Zimbabwe} \\[-\normalbaselineskip]% For horizontal alignment
    \end{tabular}\right.\kern-\nulldelimiterspace$
\end{tabular}

\end{document}

решение2

Другим вариантом было бы использование математической среды, которая в меньшей степени нуждается в фантомном интервале и имеет большие фигурные скобки:

\begin{eqnarray*}
\left.
\begin{array}{ll}
  \mbox{Aardvark} & \mbox{Armenia}\\ 
  \mbox{Elephant} & \mbox{Ethiopia} 
\end{array} 
\right\}  && \mbox{Things beginning with vowels} \\ 
\mbox{Things beginning with consonants:} && \left\{
\begin{array}{ll}
  \mbox{Platypus} & \mbox{Portugal}\\ 
  \mbox{Zebra} & \mbox{Zimbabwe} 
\end{array}
\right.
\end{eqnarray*}

Это использует несколько удобных функций разделителей в mathmode. Разделители (предваряемые \leftили \rightимеют размер, соответствующий тексту внутри них. Если вам нужен только один разделитель (левый или правый), то вы делаете другую сторону фантомом с помощью .. Так, например, \left.код сообщает LaTeX о необходимости вставить фантомный разделитель слева, поэтому правая фигурная скобка выполняет всю работу.

Таким образом, вместо всех этих фантомных интервалов вам нужны фантомные разделители и помещение всего текста в \mboxокружения.

Также обратите внимание, что здесь используется среда eqnarray для выравнивания интервалов через &&метки. Вы можете переместить их в начало или конец строки, или просто использовать среду equal с переносами строк.

решение3

С помощью {NiceTabular}of nicematrixи его встроенной команды \SubMatrix.

\documentclass[10pt]{article}    
\usepackage{nicematrix} 

\begin{document}

\renewcommand{\arraystretch}{1.4}

\begin{NiceTabular}{lll}
  Aardvark & Armenia  & \Block{2-1}{things beginning with vowels} \\
  Elephant & Ethiopia & \\
  Platypus & Portugal & \Block{2-1}{things beginning with consonants} \\
  Zebra    & Zimbabwe & \\
  text     & text     & \Block{3-1}{things beginning and ending with t} \\
  text     & text     & \\
  text     & text     & \\
\CodeAfter
  \SubMatrix{.}{1-1}{2-2}{\}}
  \SubMatrix{.}{3-1}{4-2}{\}}
  \SubMatrix{.}{5-1}{7-2}{\}}
\end{NiceTabular} 

\end{document}

Вывод кода выше

Связанный контент