问题
I am producing some latex beamer slides (but I think it is not a beamer specific question per se).
I have the following:
\begin{itemize}
\item Issue1
\item Issue2
\item Issue3
\end{itemize}
Now, I want to have a right curly brace (i.e. '}') behind the items spreading over issue1 and issue2. And of course I want to write something behind that curly brace.
In a perfect world I would write something like:
\begin{itemize}
\left .
\item Issue1
\item Issue2
\right \} One and Two are cool
\item Issue3
\end{itemize}
This does not work because I am not in a math environment and I can not put the whole snippet inside a math environment because itemize would not work in that case.
Is there a clean solution or a hack to produce my desired result?
Regards, Bastian.
回答1:
I'd use tikz
and make an overlay.
First include the proper packages (you may not need to include tikz
since this is a beamer question):
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
Then when you make your list, give names to the places after each item:
\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}
(Note: I shifted the y
value up by 1/2 of a line maybe more would be better.)
Because we used remember picture
we can refer to these places in an overlay:
\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}
The path is there to deal with items that do not have the same width. This edit comes from ESultanik's answer.
The result is:
Side note: You can remove all of the remember picture
options and add the following to automatically add remember to all pictures:
\tikzstyle{every picture}+=[remember picture]
回答2:
You could (ab)use a table instead:
\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}
produces:
removed dead Imageshack link
回答3:
Here is Geoffs code with some small adaptions (just for other beamer users)
\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 (2nd slide of that frame):
The adaptions are:
- added the visible command (because I think it is useful to blend in the brace later)
- made the items more complex so the use of xshift became necessary (I figured out the xshift value simply by try and error so thats a drop of bitterness) Edit 2018-12-23: manual try-and-error shifting can be overcome by using this method:
(n1 -| n2) -- (n2)
instead of(n1) -- (n2)
.
回答4:
One way to get around this would be to use a math environment like align, put the bullet points by hand (with \bullet ), and then use the resources of the math environment for big braces and such.
回答5:
I did something similar once. I let the list be in a column to the left, and in the right column, I did the $\right\}$
-thing so that it was as tall as some \mbox
or something (which I decided with \vphantom
or something similar). Unfortunately I don't have time to dig it out... I actually don't have time to be at SO at all right now ;)
回答6:
I tried my idea, below. It doesn't work: unfortunately, the vboxes produced by the itemize environment all have width \textwidth
.
The UI of my suggestion is nice, and by redefining \item
it should be possible to get the item vboxes be of reasonable width. Or calculate a reasonable width for the vboxes containing the items. But since there are functional solutions already, I won't spend anymore time on this.
\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}
来源:https://stackoverflow.com/questions/2772972/latex-stretchable-curly-braces-outside-math