左侧的段落标题

左侧的段落标题

我想在文档中列出一些内容。列表中的每个要点都有一个简短的标题(一个单词,例如“Usecase”)。该单词应位于添加到此要点下的文本左侧的单独列中。文本相当长。

使用表格执行此操作不起作用,因为如果所有内容都是多页的,表格不支持此功能。我知道 longtable,但 longtable 将整个文本(右侧)放在一行中。如果我这样做\begin{longtable}{l|p{\textwidth}}或类似的事情,它也有点糟糕。

(正如您在上面的代码片段中所看到的,我想用垂直线将该部分的“标题”/名称与文本分开)

手动调整右侧文本的大小似乎不是一个好的解决方案。无论如何,如果这个方法可行,那么一个项目的文本也不能成为多页文本。

所以,我希望我已经说清楚我的问题是什么了。关键是,我甚至不知道该用 Google 搜索什么。

答案1

看起来你对parcolumns环境:

enter image description here

\documentclass{article}
\usepackage{lipsum,parcolumns}
\newcommand{\heading}[1]{\colchunk[1]{\hspace*{-\parindent}\textbf{#1}}}
\newcommand{\desc}[1]{\colchunk[2]{#1}\colplacechunks}
\begin{document}
\begin{parcolumns}[
    colwidths = {1=3cm},% 2=\dimexpr\linewidth-3cm-2em\relax
    rulebetween = true,
    sloppy = true]{2}
  \heading{Usecase}
  \desc{\lipsum[1-2]}
  \heading{Another type of heading}
  \desc{\lipsum[1-2]}
\end{parcolumns}
\end{document}

答案2

Output 这是另一个基于的解决方案mdframed

\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage[framemethod=tikz]{mdframed}

\newlength{\defparindent}
\setlength{\defparindent}{\parindent}

% The leftrule environment
\newmdenv[
linecolor=black,%
topline=false,
bottomline=false,
rightline=false,
rightmargin=0pt,
skipabove=0pt,
innertopmargin=0pt,
innerrightmargin=0pt,
backgroundcolor=white]{leftrule}

% Fix top alignment
\makeatletter
\renewrobustcmd*\mdf@makebox@out[2][\linewidth]{%
 \noindent\hb@xt@\z@{%
    \noindent\makebox[\dimexpr #1\relax][l]{\vtop{\vskip-\ht\strutbox\vskip-\dp\strutbox\relax#2}}%
 \hss}%
}%
\makeatother

\begin{document}
\lipsum[1-2]
\begin{description}[style=multiline,leftmargin=2cm,font=\normalfont]
\item[Usecase:]
\begin{leftrule}
    \lipsum[9-11]
\end{leftrule}
\item[Whatever:] 
\begin{leftrule}
    \lipsum[3-8]
\end{leftrule}
\item[Works:]
\begin{leftrule}
    \lipsum[1-2]
\end{leftrule}
\end{description}

\end{document}

相关内容