2010-05-05 109 views
13

Tôi đang sản xuất một số slide mủ máy chiếu (nhưng tôi nghĩ rằng nó không phải là một câu hỏi cụ thể máy chiếu cho mỗi gia nhập).latex bao gồm: dấu ngoặc nhọn căng ra bên ngoài toán

tôi có như sau:

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

Bây giờ, tôi muốn có một cú đúp xoăn đúng (ví dụ: '}') đằng sau các mục lây lan qua issue1 issue2. Và tất nhiên tôi muốn viết một cái gì đó đằng sau cú đúp xoăn đó.

Trong một thế giới hoàn hảo Tôi sẽ viết một cái gì đó như:

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

này không làm việc vì tôi không phải là trong một môi trường toán học và tôi không thể đặt toàn bộ đoạn mã bên trong một môi trường toán học vì itemize sẽ không hoạt động trong trường hợp đó.

Có một giải pháp sạch hoặc một hack để tạo ra kết quả mong muốn của tôi?

Kính trọng, Bastian.

+0

Không phải chỉ \} và không \\}? – Paul

+0

Bạn nói đúng. (Đoạn mã không được tạo thành mã trước đó nên tôi phải viết '\\}' để cho '\}' xuất hiện. Sau khi chỉnh sửa tôi quên xóa dấu gạch chéo ngược.) – basweber

+0

@Svante: Cảm ơn bạn đã sửa chữa. – basweber

Trả lời

18

Tôi muốn sử dụng tikz và tạo một lớp phủ.

đầu tiên bao gồm các gói thích hợp (bạn có thể không cần phải bao gồm tikz vì đây là một câu hỏi máy chiếu):

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

Sau đó, khi bạn làm cho danh sách của bạn, cung cấp cho tên đến những nơi sau mỗi mục:

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

(Lưu ý: tôi chuyển giá trị y tăng 1/2 của một dòng có thể nhiều hơn sẽ tốt hơn.)

.210

Bởi vì chúng ta sử dụng remember picture chúng ta có thể tham khảo những nơi này trong một lớp phủ:

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

Đường dẫn là có để đối phó với các mục mà không có chiều rộng tương tự. Bản chỉnh sửa này xuất phát từ ESultanik's answer.

Kết quả là:

alt text

Side lưu ý: Bạn có thể loại bỏ tất cả các remember picture tùy chọn và thêm những điều sau đây để tự động thêm nhớ cho tất cả các hình ảnh:

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

Thats it! Thật tuyệt vời! Tôi đăng một ví dụ thích nghi dưới đây. Cảm ơn rất nhiều. – basweber

+0

Tôi chưa bao giờ sử dụng điều này trước đây, nó có thể không được đẹp như vậy khi các mặt hàng không có cùng độ dài. Trong trường hợp đó, bạn có thể cần phải đặt một số giá trị 'x' cứng cho' \ node' s hoặc có thể sử dụng một số chiều rộng cao su như '\ hspace {2in}'. Tôi chắc rằng có một số cách tikz thông minh để tính giá trị 'x' tối đa cho hai nút. – Geoff

+0

Được cập nhật để xử lý các mục có chiều rộng khác nhau, sử dụng câu trả lời của ESultanik. – Geoff

3

Một cách để làm được việc này sẽ được sử dụng một môi trường toán học như class, đặt điểm đạn bằng tay (với \ đạn), và sau đó sử dụng các nguồn lực của môi trường toán học cho niềng răng lớn và như vậy.

+0

Tôi đã nghĩ về điều đó (nhưng không biết $ \ bullet $ nói riêng). Có cách nào để tạo ra một biểu tượng trông giống như viên đạn mặc định của môi trường phân loại trong tài liệu beamer không? Nếu vậy, giải pháp này có vẻ khá áp dụng. – basweber

11

Bạn có thể (ab) sử dụng một bảng thay vì:

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

sản xuất:

loại bỏ liên kết Imageshack chết

+0

+1: Tôi thích câu trả lời này tốt hơn nhiều so với @ Seamus's. –

+0

@Mark, cảm ơn, mặc dù khi sinh sản '}' trên 3 (hoặc nhiều hơn) hàng, nó có thể trở nên quá rộng. Nhưng đó sẽ là một cái gì đó * basweber * nên/sẽ cố gắng và xem cho anh ta/cô ấy tự. –

+0

Có, sinh sản từ 3 mục trở lên nằm trong danh sách mong muốn của tôi. ;) Và có một vấn đề khác: $ \ bullet $ trông khác với bullet mặc định của môi trường itemize (trong tài liệu beamer). – basweber

0

tôi đã làm một cái gì đó tương tự một lần. Tôi để danh sách được trong một cột bên trái, và trong cột bên phải, tôi đã làm -thing $\right\}$ để nó là cao như một số \mbox hoặc một cái gì đó (mà tôi đã quyết định với \vphantom hoặc một cái gì đó tương tự). Thật không may tôi không có thời gian để đào nó ra ... Tôi thực sự không có thời gian để được tại tất cả các ngay bây giờ;)

+2

@aioobe, điều đó cũng xấu xí như các giải pháp khác. – aioobe

+1

bây giờ bạn đang nói chuyện với chính mình? :) –

+0

Muốn đặt. bình luận ở đó trước người khác;) – aioobe

5

đây là mã Geoffs với một số điều chỉnh nhỏ (chỉ dành cho những người dùng beamer khác)

\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 trượt khung đó):

beamer result

Các adaptions là:

  • thêm nhìn thấy lệnh (vì tôi nghĩ rằng nó rất hữu ích để pha trộn trong cú đúp sau)
  • làm cho các mặt hàng phức tạp hơn để việc sử dụng xshift trở nên cần thiết (tôi đã tìm ra giá trị xshift của anh ấy đơn giản chỉ bằng cách thử và lỗi để giảm bớt sự cay đắng)
+0

Vâng, 'xshift', điều này cũng làm tôi khó chịu. Tôi biết * có một cách để tính toán giá trị * x * tối đa cho hai nút, tôi chỉ không biết tikz đủ tốt. – Geoff

+0

Tôi đã mở một câu hỏi mới: http://stackoverflow.com/questions/2777179/tikz-set-appropriate-x-value-for-a-node Cho phép xem liệu có ai đưa ra giải pháp tốt hay không. – basweber

+0

Tốt. Tôi đã nghĩ đến việc đó. Tôi đã lãng phí rất nhiều thời gian để tự mình tìm ra nó. Có rất nhiều ví dụ điển hình của Tikz, nhưng nó rất linh hoạt nên khó có thể tìm thấy chính xác những gì bạn cần (hoặc nghĩ bạn cần). – Geoff

0

Tôi đã thử ý tưởng của mình, bên dưới. Nó không hoạt động: không may, các vbox được tạo bởi môi trường itemize đều có chiều rộng \textwidth.

Giao diện người dùng của đề xuất của tôi là tốt đẹp và bằng cách xác định lại \item, bạn sẽ có thể nhận được các mục có độ rộng hợp lý. Hoặc tính chiều rộng hợp lý cho các hộp chứa các mục. Nhưng vì đã có các giải pháp chức năng rồi, tôi sẽ không dành nhiều thời gian cho việc này nữa.

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