
編輯 -
我不確定這些叫什麼,但是如何在 LaTeX 中做這樣的事情:
乾杯
編輯#1
這部分有效 - 雖然不是很好
\documentclass{book}
\usepackage{amsmath}
\begin{document}
\[
\left.
\begin{minipage}{2cm}
\begin{itemize}
\item One
\item Two
\item Three
\end{itemize}
\end{minipage}
\right\} \text{Description}
\]
\[
\left.
\begin{minipage}{2cm}
\begin{itemize}
\item One
\item Two
\item Three
\end{itemize}
\end{minipage}
\right\} \text{Description}
\]
\end{document}
答案1
這裡我透過 介紹逐項清單\braceditems[width]{items}
和通過 的評論\mycomment[width]{commentary}
。可以通過\leftwidth
和重新指定預設寬度\rightwidth
。大括號只是一個縮放的\}
字形,寬度限制為 1.5ex,如\scalerel*
可選參數中所指定(請參閱附錄以了解替代大括號樣式)。
如果我對環境了解更多,我確信我可以將其自動化,但\addgap
在第一個清單之前需要一個\braceditems
。
\documentclass{article}
\usepackage{scalerel,lipsum}
\def\leftwidth{.6\textwidth}
\def\rightwidth{.35\textwidth}
\newsavebox\tmpbox
\newcommand\braceditems[2][\leftwidth]{%
\noindent\savebox{\tmpbox}{%
\begin{minipage}{#1}
\begin{itemize}
#2
\end{itemize}
\end{minipage}%
}%
\usebox{\tmpbox} \scalerel*[1.5ex]{\}}{\usebox{\tmpbox}}
}
\newcommand\mycomment[2][\rightwidth]{%
\parbox{#1}{\raggedright #2}\addgap%
}
\newcommand\addgap{\par\bigskip}
\begin{document}
\lipsum[3]
\addgap
\braceditems[2in]{
\item This is
\item just some text
\item that I'm
}
\mycomment[.15\textwidth]{talk a bit about those}
\braceditems[2in]{
\item using as an
\item example so that
\item people know what
}
\mycomment[.15\textwidth]{talk a bit about these ones as well}
\braceditems[2in]{
\item I mean as it
\item might be tricky
\item to describe
\item even when the region is larger than the OP specified.
}
\mycomment[.15\textwidth]{and talk about these}
\lipsum[4]
\end{document}
附錄:
如果你碰巧想要 LaTeX 常見的可擴展大括號,那麼這個重新定義(需要套件graphicx
)就足夠了:
\usepackage{graphicx}
\newcommand\braceditems[2][\leftwidth]{%
\noindent\savebox{\tmpbox}{%
\begin{minipage}{#1}
\begin{itemize}
#2
\end{itemize}
\end{minipage}%
}%
\usebox{\tmpbox} \scalerel*[1.5ex]{%
\raisebox{2pt}{\rotatebox[origin=c]{90}{%
\makebox[\dimexpr\ht\tmpbox+\dp\tmpbox\relax]{\upbracefill}}}%
}{\usebox{\tmpbox}}
}
答案2
這裡有兩個變體,使用blkarray
和listliketab
包,以及enumitem
使用環境的變體itemize
。另一種變體僅模仿itemize
,並且專為單行「專案」而設計: \documentclass[12pt, a4pape, leqno]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern }
\usepackage{blkarray}
\usepackage{enumitem}
\usepackage{listliketab}
\begin{document}
Some text some text some text some text some text some text some text some text some text some text some text some text some text some text some text some text some text.
\storestyleof{itemize}
\begin{listliketab}
\begin{blockarray}{@{\hskip\parindent} >{ \arraybackslash}p{6cm}}%
\begin{block}{@{}l<{\enspace}\Right{\}\enspace}{\parbox{2.5cm}{\raggedright talk a bit about these}}}%
\parbox{4cm}{\raggedright\begin{itemize}[leftmargin=1.8em, itemsep = 0ex, topsep = 0pt]
\item this is
\item just some
\item text that I’m
\end{itemize}}\\[4ex]
\end{block}
%
\begin{block}{@{}l<{\enspace}\Right{\}\enspace}{\parbox{2.5cm}{\raggedright talk a bit about these ones as well}}}%
\parbox{4cm}{\raggedright\begin{itemize}[leftmargin=1.8em, itemsep = 0ex, topsep = 0pt]
\item using as an
\item example so that text text text text
\item people know what
\end{itemize}}\\[4ex]
\end{block}
%
\begin{block}{@{} >{}l<{\enspace}\Right{\}\enspace}{\parbox{2.5cm}{\raggedright and talk about these}}}%
\parbox{4cm}{\raggedright\begin{itemize}[leftmargin=1.8em, itemsep = 0ex, topsep = 0pt]
\item I mean as it
\item might be tricky
\item to describe
\end{itemize}}\\
\end{block}
\end{blockarray}
\end{listliketab}
\storestyleof{itemize}
\begin{listliketab}
\renewcommand\arraystretch{1.333}
\begin{blockarray}{@{}>{\arraybackslash}l}%
\begin{block}{@{\hskip0.3\parindent}>{\textbullet\hskip\labelsep}l<{\enspace}\Right{\}\enspace}{\parbox{2.5cm}{\raggedright talk a bit\\ about these}}}%
this is \\
just some \\
text that I’m \\
\end{block}
%
\begin{block}{@{}>{\hskip0.3\parindent\textbullet\hskip\labelsep}l<{\enspace}\Right{\}\enspace}{\parbox{2.5cm}{\raggedright talk a bit about these ones as well}}}%
using as an \\
example so that text text text text\\
people know what \\
\end{block}
%
\begin{block}{@{} >{\hskip0.3\parindent\textbullet\hskip\labelsep}l<{\enspace}\Right{\}\enspace}{\parbox{2.5cm}{\raggedright and talk about these}}}%
I mean as it \\
might be tricky \\
to describe\\
\end{block}
\end{blockarray}
\end{listliketab}
\end{document}
答案3
如果您不介意載入 TiKZ 所涉及的開銷(或如果您將其用於其他用途),則可以使用該tikzmark
程式庫。以下程式碼定義了一個新環境,braced
它採用一個參數,該參數應該是您想要在項目清單右側排版的描述。然後,您可以\item
像在常規環境中一樣定義項目itemize
。您可以將其放置\bracefirst
在要包含在大括號中的第一個項目之後、\bracelast
最後一個項目之後以及\bracewidest
最寬的項目之後。這意味著如果您願意,您可以將清單中的項目子集括起來:
\documentclass{book}
\usepackage{tikz,enumitem}
\usetikzlibrary{tikzmark,decorations.pathreplacing,calc}
\newlist{braceditems}{itemize}{1}
\setlist[braceditems,1]{%
label=\textbullet,
before={\stepcounter{braced}},
}
\newcounter{braced}
\setcounter{braced}{0}
\newcommand\bracefirst{\tikzmark{first braced \thebraced}}
\newcommand\bracelast{\tikzmark{last braced \thebraced}}
\newcommand\bracewidest{\tikzmark{widest braced \thebraced}}
\newenvironment{braced}[1]{%
\providecommand{\braceddescriptor}{#1}%
\begin{braceditems}%
}{%
\end{braceditems}%
\begin{tikzpicture}[overlay,remember picture]
\draw [decorate, decoration=brace, xshift=10pt] ($({pic cs:first braced \thebraced} -| {pic cs:widest braced \thebraced}) + (0,1em)$) -- ($({pic cs:last braced \thebraced} -| {pic cs:widest braced \thebraced}) - (0,.5em)$) node [right, midway, xshift=5pt] {\braceddescriptor} ;
\end{tikzpicture}
}
\begin{document}
\begin{braced}{Description 1}
\item One\bracefirst
\item Two
\item Three\bracelast\bracewidest
\end{braced}
\begin{braced}{Description 2}
\item One\bracefirst
\item Two and a bit\bracewidest
\item Three\bracelast
\end{braced}
\begin{braced}{Description 3}
\item Nought (an unbraced item)
\item One\bracefirst
\item Two and a bit\bracewidest
\item Three\bracelast
\item Final (outside the braces)
\end{braced}
\end{document}
答案4
我想到的一個快速解決方案是濫用案例環境:
\documentclass{minimal}
\usepackage{amsmath}
\begin{document}
$
\mbox{\begin{minipage}{3cm}some long description braking to next line\end{minipage}}
\begin{cases}
\mbox{item 1} \\
\mbox{item 2} \\
\mbox{item 3}
\end{cases}
$
\end{document}
產生這個(但在左側有一個大括號):
(當然,這不是案例環境的目的……但它確實有效。)