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

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

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

\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}

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

Существует ли чистое решение или взлом для приведения к моему желаемому результату?

С уважением, Bastian.

17
задан Charles Stewart 6 May 2010 в 09:11
поделиться

6 ответов

Я бы использовал 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 строки, может быть, будет лучше.)

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

  \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

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

\tikzstyle{every picture}+=[remember picture]
21
ответ дан 30 November 2019 в 11:22
поделиться

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

0
ответ дан 30 November 2019 в 11:22
поделиться

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

UI моего предложения хорош, и, переопределив \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}
0
ответ дан 30 November 2019 в 11:22
поделиться

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

\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}

Результат (2-й слайд этого кадра):

beamer result

Адаптации являются:

  • добавлена ​​команда visible (потому что я думаю, что позже будет полезно добавить скобки)
  • сделал элементы более сложными, поэтому стало необходимым использование xshift (Я вычислил значение xshift, просто попробовав ошибку, так что это немного горько) Изменить 2018-12-23: ручное переключение проб и ошибок можно преодолеть, используя this ] метод: (n1 - | n2) - (n2) вместо (n1) - (n2) .
6
ответ дан 30 November 2019 в 11:22
поделиться

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

3
ответ дан 30 November 2019 в 11:22
поделиться

Вместо этого можно (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}

produces:

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

11
ответ дан 30 November 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: