![LATEX:如何在垂直线后将多行文本保持在一起?](https://linux22.com/image/452195/LATEX%EF%BC%9A%E5%A6%82%E4%BD%95%E5%9C%A8%E5%9E%82%E7%9B%B4%E7%BA%BF%E5%90%8E%E5%B0%86%E5%A4%9A%E8%A1%8C%E6%96%87%E6%9C%AC%E4%BF%9D%E6%8C%81%E5%9C%A8%E4%B8%80%E8%B5%B7%EF%BC%9F.png)
我正在创建一个变量及其描述的列表。左侧是变量名称,右侧是变量描述。当文本描述只有一行时,文本就很好,如下所示uvax_d和uvax2_d.但是,当描述较长时,例如指数第二条线溢出垂直线以下。
我希望垂直线始终比文本描述长:
\begin{enumerate}[align=left,leftmargin=10em,style=nextline, font=\bfseries\itshape]
\item [uvax\_d] $\bigg \vert$ Date when vaccines became universally available.
\item [uvax2\_d] $\bigg \vert$ Two month mark after vaccines became universally available.
\item [sdex] $\bigg \vert$ Government Response Stringency Index: composite measure based on 9 response indicators including school closures, workplace closures, and travel bans, rescaled to a value from 0 to 100 (100 = strictest response).
\end{enumerate}
[旁注:这是我的第一篇文章,所以我仍在弄清楚它实际上是如何运作的。]
答案1
您可以使用 a\vrule
后跟 a\parbox
作为项目文本:
\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum} % for dummy text
\begin{document}
\lipsum[1][1-6]
\begin{itemize}[align=left,leftmargin=3em,style=nextline, font=\bfseries\itshape]
\item[foo]\vrule\quad\parbox[t]{\dimexpr\linewidth-1em}{\lipsum[2][1]}
\item[bar]\vrule\quad\parbox[t]{\dimexpr\linewidth-1em}{\lipsum[2][2-5]}
\end{itemize}
\lipsum[2][2-9]
\end{document}
输入这些内容有点繁琐,但您可以使用宏来简化代码,甚至可以在不使用enumitem
包或乳胶列表的情况下创建自己的环境。开始:
\documentclass{article}
\usepackage{lipsum} % for dummy text
\newcommand\ditem[3][3em]{%
\par\makebox[#1][l]{\em\bfseries #2}\vrule\hfill
\parbox[t]{\dimexpr\linewidth-#1-\parindent-1em}{#3}\par}
\newenvironment{ditems}{\medskip\parindent\leftmargin\parskip1em}{\bigskip\par}
\begin{document}
\lipsum[1][1-6]
\begin{ditems}
\ditem{foo}{\lipsum[3][1-3]}
\ditem{bah}{\lipsum[3][5-9]}
\ditem{baz}{\lipsum[3][10-18]}
\ditem[10em]{whatever too long}{\lipsum[2][1-3]}
\ditem[10em]{whatever too short}{\lipsum[3][1]}
\end{ditems}
\lipsum[2][2-9]
end{document}