我是 LaTeX 的新手。
这是我的文件:
\documentclass[a4paper]{article}
\usepackage{multirow, tabularx}
\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\begin{table}[!ht]
\renewcommand\arraystretch{1.5}
\newcommand\mcl[1]{\multicolumn{3}{l|}{#1}}
\begin{tabularx}{\linewidth}{|l|>{\hsize=0.4\hsize}X|
>{\hsize=1.8\hsize}X|
>{\hsize=0.8\hsize}X|}
\hline
Use Case \#N & \mcl{Login} \\
\hline
Goal in Context & \mcl{Per identificarsi} \\
\hline
Preconditions & \mcl{L'utente deve avere già un account} \\
\hline
Success End Conditions
& \mcl{L'utente è stato identificato nel sistema} \\
\hline
Failed End Conditions
& \multicolumn{3}{>{\hsize=\dimexpr3\hsize+6\tabcolsep+3\arrayrulewidth}X|}{
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero. } \\
\hline
Primary Actor & \mcl{Attore principale dello UC} \\
\hline
Trigger & \mcl{Azione principale dell'attore che attiva lo UC} \\
\hline
Description & Step & User Action & System \\ \cline{2-4}
& 1 & L'utente clicca OK & \\ \cline{2-4}
& 2 & & Mostra M1 \\ \cline{2-4}
& 3 & L'utente clicca Cliccami & \\ \cline{2-4}
& 4 & & Chiude \\
\hline
Extensions & Step & User Action & System \\ \cline{2-4}
& & & \\
\hline
Subvariations & Step & User Action & System \\ \cline{2-4}
& & & \\
\hline
Notes & & & \\
\hline
\end{tabularx}
\end{table}
\end{document}
- 不幸的是,如果我写一篇很长的文字,表格就会超出页面的下边距。我该如何修复它?(请注意,对于短文本,它可以正常工作)。
答案1
您需要使用允许跨页拆分表格的表格包之一。例如,xltabular
结合了longtable
和tabularx
包的包:
\documentclass[a4paper]{article}
\usepackage{makecell, xltabular}
\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\begingroup
\setcellgapes{2pt}
\makegapedcells
\newcommand\mcl[1]{\multicolumn{3}{l|}{#1}}
\begin{xltabular}{\linewidth}{|l|>{\hsize=0.4\hsize}X|
>{\hsize=1.8\hsize}X|
>{\hsize=0.8\hsize}X|}
\caption{Caption text ...} % <--- CAPTION, only on table beginning
\label{tab:tale-1} \\
\hline
\endfirsthead
%\caption[]{Caption text ... (cont.) }\\ % <--- in case that you like to repeat it on each page
\hline
\endhead
\hline
\endfoot
\endlastfoot
Use Case \#N & \mcl{Login} \\
\hline
Goal in Context & \mcl{Per identificarsi} \\
\hline
Preconditions & \mcl{L'utente deve avere già un account} \\
\hline
Success End Conditions
& \mcl{L'utente è stato identificato nel sistema} \\
\hline
Failed End Conditions
& \multicolumn{3}{>{\hsize=\dimexpr3\hsize+4\tabcolsep+2\arrayrulewidth}X|}{
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit turpis enim, suscipit tincidunt enim tincidunt egestas. Sed pretium rhoncus elit, at maximus nibh. Etiam ut ipsum sit amet nisi mattis interdum. Mauris a mi tellus. Integer ultricies risus eget enim molestie pretium. Nunc tempor facilisis mauris, ut volutpat libero. } \\
\pagebreak
Primary Actor & \mcl{Attore principale dello UC} \\
\hline
Trigger & \mcl{Azione principale dell'attore che attiva lo UC} \\
\hline
Description & Step & User Action & System \\ \cline{2-4}
& 1 & L'utente clicca OK & \\ \cline{2-4}
& 2 & & Mostra M1 \\ \cline{2-4}
& 3 & L'utente clicca Cliccami & \\ \cline{2-4}
& 4 & & Chiude \\
\hline
Extensions & Step & User Action & System \\ \cline{2-4}
& & & \\
\hline
Subvariations & Step & User Action & System \\* \cline{2-4}
& & & \\
\hline
Notes & & & \\
\hline
\end{xltabular}
\endgroup
\end{document}
(红线表示页面布局)
为了显示表格的外观,您需要至少编译 MWE 两次。
笔记:
表格分隔符只能在行之间。这意味着任何单元格内容都应该适合一页。自动分隔表格并不总是在合理的位置分隔表格。因此,我\pagebreak
在表格中插入命令,我认为这样做更合理。但是,您可以删除此命令,然后看看得到的结果是否适合您。