我正在为我的软件工程项目编写用例文档。我用它longtable
来获取一个跨多页的模板。
\documentclass{article}
\usepackage{array}
\usepackage{lipsum} % Used to produce long text
\usepackage{longtable}
\newcolumntype{L}{>{\raggedleft}p{0.2\textwidth}}
\newcolumntype{R}{p{0.74\textwidth}}
\newcommand\VRule{\vrule width 0.5pt}
\begin{document}
\begin{longtable}{L!{\VRule}R}
\hline
\textbf{ID} & \texttt{UC\_01\_01} \\
\textbf{Name} & Password recovery \\
\textbf{\textit{Macro}-UC} & Registration (\texttt{UC\_01}) \\
\textbf{Actors} & \texttt{ACTOR\_02} \\ \hline
\textbf{Preconditions} & \lipsum[2-4] \\ \hline
\textbf{Main flow} & Some itemize list here! \\ \hline
\textbf{Postconditions} & \lipsum[5-7] \\ \hline
\end{longtable}
\end{document}
问题是表格在行内没有拆分。我需要将可拆分的内容放入行中,以便在每页上进行均匀填充。
我尝试使用framed
包将这一行包装在一个框中,但不起作用。我注意到我可以使用mdframed
包在框内实现分页,但我无法使用它,因为我正在处理ScribTeX而且我的电脑上没有安装任何版本的 LaTeX。
我也尝试过该usecase
包,但它不支持分页。
你能建议我一个技巧或替代方法来实现这个结果吗?我已经在这个问题上纠结了两天了。
答案1
我不认为在 longtable 或任何其他表格环境中可以做到这一点,因为表格单元格内的材料是 TeX 框,根据定义,它们不能被破坏。
我建议你改用parcolumns
,它被设计用于为多语言文本排版多列。以下是一个例子:
\documentclass{article}
\usepackage{lipsum} % Used to produce long text
\usepackage{parcolumns}
\parindent=0pt
\begin{document}
\begin{parcolumns}[colwidths={2=0.74\textwidth},rulebetween,sloppy]{2}
\colchunk[1]{\textbf{ID}}
\colchunk[2]{\texttt{UC\_01\_01}}
\colplacechunks
\colchunk[1]{\textbf{Name}}
\colchunk[2]{Password recovery}
\colplacechunks
\colchunk[1]{\textbf{\textit{Macro}-UC}}
\colchunk[2]{Registration (\texttt{UC\_01})}
\colplacechunks
\colchunk[1]{\textbf{Actors}}
\colchunk[2]{\texttt{ACTOR\_02}}
\colplacechunks
\colchunk[1]{\textbf{Preconditions}}
\colchunk[2]{\lipsum[2-4]}
\colplacechunks
\colchunk[1]{\textbf{Main flow}}
\colchunk[2]{Some itemize list here!}
\colplacechunks
\colchunk[1]{\textbf{Postconditions}}
\colchunk[2]{\lipsum[5-9]}
\colplacechunks
\end{parcolumns}
\end{document}
答案2
仅记录parallel
包裹:
\documentclass{article}
\usepackage{lipsum} % Used to produce long text
\usepackage{parallel}
\parindent=0pt
\begin{document}
\begin{Parallel}[v]{0.4\textwidth}{0.55\textwidth}
\ParallelLText{\textbf{ID}}
\ParallelRText{\texttt{UC\_01\_01}}
\ParallelPar
\ParallelLText{\textbf{Name}}
\ParallelRText{Password recovery}
\ParallelPar
\ParallelLText{\textbf{\textit{Macro}-UC}}
\ParallelRText{Registration (\texttt{UC\_01})}
\ParallelPar
\ParallelLText{\textbf{Actors}}
\ParallelRText{\texttt{ACTOR\_02}}
\ParallelPar
\ParallelLText{\textbf{Preconditions}}
\ParallelRText{\lipsum[2-4]}
\ParallelPar
\ParallelLText{\textbf{Main flow}}
\ParallelRText{Some itemize list here!}
\ParallelPar
\ParallelLText{\textbf{Postconditions}}
\ParallelRText{\lipsum[5-9]}
\end{Parallel}
\end{document}