Латекс:растягиваемые фигурные скобки вне математики
Вопрос
Я создаю несколько слайдов latex beamer (но я думаю, что это не специфичный для beamer вопрос как таковой).
У меня есть следующее:
\begin{itemize}
\item Issue1
\item Issue2
\item Issue3
\end{itemize}
Теперь я хочу иметь правильную фигурную скобку (т. е.'}') за элементами, распространяющимися по выпуску 1 и проблема 2.И, конечно, я хочу написать что-нибудь за этой фигурной скобкой.
В идеальном мире я бы написал что-то вроде:
\begin{itemize}
\left .
\item Issue1
\item Issue2
\right \} One and Two are cool
\item Issue3
\end{itemize}
Это не работает, потому что я не нахожусь в математической среде, и я не могу поместить весь фрагмент внутри математической среды, потому что в этом случае itemize не будет работать.
Есть ли чистое решение или хак для получения желаемого результата?
С уважением, Бастиан.
Решение
Я бы использовал 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.
Результатом является:
Примечание: Вы можете удалить все remember picture
Опции и добавьте следующее, чтобы автоматически добавить запомнить все фотографии:
\tikzstyle{every picture}+=[remember picture]
Другие советы
Вы можете (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 Ссылка
Вот код Geoffs с некоторыми небольшими адапциями (только для других пользователей Beamer)
\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 (2-й слайд этой рамки):
Адапсики:
- добавил видимый команда (потому что я думаю, что полезно смешаться в скобу позже)
- сделал предметы более сложными, поэтому использование xshift. стало необходимо (я выяснил значение xshift просто попробовать и ошибку, так что капля горечи) Править 2018-12-23: Ручное переключение попробовать и ошибки можно преодолеть с помощью это Метод:
(n1 -| n2) -- (n2)
вместо(n1) -- (n2)
.
Одним из способов обойти это было бы использовать математическую среду, такую как align, поместить маркированные точки вручную (с помощью \bullet ), а затем использовать ресурсы математической среды для больших фигурных скобок и тому подобного.
Я сделал что-то подобное один раз. Я позволил список быть в столбце слева, а в правой колонке я сделал $\right\}$
так, чтобы он был такой же высоким, как некоторые \mbox
или что-то (которое я решил с \vphantom
или что-то похожее). К сожалению, у меня нет времени, чтобы выкопать его ... У меня на самом деле нет времени, чтобы быть настолько вообще сейчас;)
Я попробовал свою идею, ниже. Это не работает: к сожалению, Vboxes, произведенные элементом среды, у всех есть ширина \textwidth
.
Пользователь моего предложения приятно, и переопределив \item
Должно быть возможно получить элемент Vboxes иметь разумную ширину. Или рассчитать разумную ширину для Vboxes, содержащих элементы. Но поскольку уже есть функциональные решения, я больше не буду тратить время на это.
DocumentClass {Статья} def setgroptext # 1 { gdef groptext {# 1}} newenvironment {groupeditems} { begin {displaymath} fleant. vbox bgroup setgroouptext} {% enegroup vant rbrace hbox { grotext} end {displaymath}} begin {document} begin {itize} line 1 begin {groupeditems} {строки 2 и 3 вместе!} line 2 line 3 end { GroupDitems} Line 4 End {itemize} end {документ}