Латекс: растягивающиеся фигурные скобки снаружи математики

Я создаю слайды с латексным лучом (но я думаю, что это не конкретный вопрос, связанный с лучом как таковой).

У меня есть следующее:

\begin{itemize}
\item Issue1
\item Issue2
\item Issue3
\end{itemize}

Теперь я хочу иметь правую фигурную скобку (т.е. '}') за элементами, распространяющимися через issue1 и issue2. И, конечно, я хочу написать что-то позади этой фигурной скобки.

В идеальном мире я бы написал что-то вроде:

\begin{itemize}
\left .
\item Issue1
\item Issue2
\right \} One and Two are cool
\item Issue3
\end{itemize}

Это не работает, потому что я не в математической среде, и я не могу поместить весь фрагмент внутри математической среды, потому что itemize не будет работать в этом случае.

Есть ли чистое решение или хак для получения желаемого результата?

С уважением, Бастиан.

Ответ 1

Я бы использовал tikz и сделал наложение.

Сначала включите правильные пакеты (возможно, вам не нужно включать tikz, так как это вопрос с диаграммой):

\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}

Затем, когда вы создадите свой список, укажите имена мест после каждого элемента:

\begin{itemize}
    \item Issue 1     
        \tikz[remember picture] \node[coordinate,yshift=0.5em] (n1) {}; 
    \item Issue 2
        \tikz[remember picture] \node[coordinate] (n2) {};
    \item Issue 3
\end{itemize}

(Примечание: я сдвинул значение y на 1/2 строки, возможно, было бы лучше.)

Поскольку мы использовали remember picture, мы можем ссылаться на эти места в наложении:

  \begin{tikzpicture}[overlay,remember picture]
      \path (n2) -| node[coordinate] (n3) {} (n1);
      \draw[thick,decorate,decoration={brace,amplitude=3pt}]
            (n1) -- (n3) node[midway, right=4pt] {One and two are cool};
  \end{tikzpicture}

Путь для работы с элементами, которые не имеют одинаковой ширины. Это редактирование происходит из ответа ESultanik.

Результат:

alt text

Боковое примечание. Вы можете удалить все параметры remember picture и добавить следующее, чтобы автоматически добавлять все снимки:

\tikzstyle{every picture}+=[remember picture]

Ответ 2

Вместо этого вы можете (ab) использовать таблицу:

\documentclass{article}
\usepackage{multirow}

\begin{document}

\begin{tabular}{ll}

\textbullet Issue 1 & \multirow{2}{*}{{\LARGE \}} One and Two are cool} \\
\textbullet Issue 2                                                     \\
\textbullet Issue 3                                                     \\

\end{tabular}

\end{document}

дает:

удалена мертвая ссылка Imageshack

Ответ 3

Вот код Джеффа с небольшими адаптациями (только для других пользователей луча)

\begin{frame}{Example}

\begin{itemize}
\item The long Issue 1
\tikz[remember picture] \node[coordinate,yshift=0.7em] (n1) {}; \\
spanning 2 lines


\item Issue 2
  \tikz[remember picture] \node[coordinate, xshift=1.597cm] (n2) {};
\item Issue 3

\end{itemize}

\visible<2->{
\begin{tikzpicture}[overlay,remember picture]
  \draw[thick,decorate,decoration={brace,amplitude=5pt}]
        (n1) -- (n2) node[midway, right=4pt] {One and two are cool};
\end{tikzpicture}
 } % end visible

\end{frame}

Ressult (второй слайд этого кадра):

beamer result

Адаптации:

  • добавлена ​​видимая команда (потому что я думаю, что она будет полезной для добавления в скобку позже)
  • сделал элементы более сложными, поэтому стало необходимо использование xshift (я понял значение xshift просто с помощью try и error, так что это падение горечи)

Ответ 4

Один из способов обойти это - использовать математическую среду, такую ​​как align, поместить точки маркера вручную (с помощью \bullet), а затем использовать ресурсы математической среды для больших скобок и т.д.

Ответ 5

Я сделал что-то подобное однажды. Я позволю списку быть в столбце слева, а в правом столбце я сделал $\right\}$ -thing так, чтобы он был таким высоким, как некоторые \mbox или что-то (что я решил с помощью \vphantom или что-то похожее). К сожалению, у меня нет времени, чтобы выкопать его... У меня на самом деле нет времени, чтобы быть в ТО сейчас, прямо сейчас;)

Ответ 6

Я попробовал свою идею ниже. Это не работает: к сожалению, vbox, создаваемые средой itemize, имеют ширину \textwidth.

Пользовательский интерфейс моего предложения хорош, и, переопределяя \item, должно быть возможно, чтобы элементы vbox были разумной. Или вычислите разумную ширину для vbox, содержащих элементы. Но поскольку уже есть функциональные решения, я больше не буду тратить на это время.

\documentclass{article}

\def\setgrouptext#1{\gdef\grouptext{#1}}
\newenvironment{groupeditems}{\begin{displaymath}\left.\vbox\bgroup\setgrouptext}{%
  \egroup\right\rbrace\hbox{\grouptext}\end{displaymath}}

\begin{document}

\begin{itemize}
\item Line 1
\begin{groupeditems}{Lines 2 and 3 together!}
\item Line 2
\item Line 3
\end{groupeditems}
\item Line 4
\end{itemize}

\end{document}