LATEX:如何在垂直线后将多行文本保持在一起?

LATEX:如何在垂直线后将多行文本保持在一起?

我正在创建一个变量及其描述的列表。左侧是变量名称,右侧是变量描述。当文本描述只有一行时,文本就很好,如下所示uvax_duvax2_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}

相关内容