将 Table 转换为 Longtable

将 Table 转换为 Longtable

我尝试将表转换为长表,但没有成功。

\documentclass[a4paper,12pt]{report}

\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage[T1]{fontenc}
\usepackage{natbib}
\usepackage[francais]{babel}
\usepackage{url} % Pour écrire des adresses cliquables.
\usepackage{lmodern} % Pour changer le pack de police.
\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{fancyhdr}
\usepackage{supertabular} % tableaux qui tiennent sur plusieurs pages

\usepackage{array}
\usepackage{pdflscape}
\usepackage[utf8x,utf8]{inputenc}

%\usepackage[numbers]{natbib}
%\usepackage[square]{natbib}
\usepackage{soul} %alignier


\usepackage{epigraph}
\usepackage{setspace}
\usepackage{float}
%\linespread{1.15}
\onehalfspacing
\usepackage{makecell}
\usepackage{tabularx}
\usepackage{amsmath}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{blindtext}
\usepackage{enumitem}
\usepackage{verbatim}
\usepackage{tikz}
\bibliographystyle{abbrvnat1}
%\bibliographystyle{apalike}
\setcitestyle{authordate,open={(},close={)}}


\begin{document}

\begin{table}[H]
    \centering
    \label{CU1-label}
\begin{tabularx}{\textwidth}{|X|}%{|X|}
\hline          
    \textbf{Cas d'utilisation: XXX} \\
    \hline          
    \textbf{Description:}    
        \\ \textbf{Titre}: 
      \\ \textbf{But}: XXX
      \\ \textbf{Acteur}: XXX.
      \\\hline

      \textbf{Pré-conditions}:     \\\hline
      \textbf{Enchaînements nominaux}:
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ \hline \textbf{Exceptions}:
      \\ XXX
      \\ \hline \textbf{Post-conditions}:
      \\ XXX
      \\
    \hline      
\end{tabularx}
    \caption{Cas d'utilisation: XXX}

\end{table}

\end{document}

我尝试了很多在线解决方案,但似乎都没有用,我得到的结果是:

LaTeX 错误:只能在序言中使用。您在文档正文中使用了应该在序言中使用的命令。请确保 \documentclass[…]{…} 和所有 \usepackage{…} 命令都写在 \begin{document} 之前。

我怎样才能解决这个问题?

答案1

使用包可以很容易地将此​​表转换为可破坏表ltablex

\documentclass[a4paper,12pt]{report}

\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{lmodern} % Pour changer le pack de police.
\usepackage[utf8]{inputenc}% combination of utf8x and utf8 does not make sense

\usepackage{ltablex}
\keepXColumns % see ltablex manual

\begin{document}

\begin{tabularx}{\textwidth}{|X|}%{|X|}
    \caption{Cas d'utilisation: XXX}
    \label{CU1-label}
\endfirsthead
\hline          
    \textbf{Cas d'utilisation: XXX} \\
    \hline          
    \textbf{Description:}    
        \\ \textbf{Titre}: 
      \\ \textbf{But}: XXX
      \\ \textbf{Acteur}: XXX.
      \\\hline

      \textbf{Pré-conditions}:     \\\hline
      \textbf{Enchaînements nominaux}:
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ \hline \textbf{Exceptions}:
      \\ XXX
      \\ \hline \textbf{Post-conditions}:
      \\ XXX
      \\
    \hline      
\end{tabularx}

\end{document}

你也可以使用ltxtable。解决方案几乎相同:

\documentclass[a4paper,12pt]{report}

\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{lmodern} % Pour changer le pack de police.
\usepackage[utf8]{inputenc}% combination of utf8x and utf8 does not make sense

\usepackage{ltxtable}
\usepackage{filecontents}

\begin{document}

\begin{filecontents}{\jobname-table.tmp}
\begin{longtable}{|X|}
    \caption{Cas d'utilisation: XXX}
    \label{CU1-label}
\endfirsthead
\hline          
    \textbf{Cas d'utilisation: XXX} \\
    \hline          
    \textbf{Description:}    
        \\ \textbf{Titre}: 
      \\ \textbf{But}: XXX
      \\ \textbf{Acteur}: XXX.
      \\\hline

      \textbf{Pré-conditions}:     \\\hline
      \textbf{Enchaînements nominaux}:
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ - XXX
      \\ \hline \textbf{Exceptions}:
      \\ XXX
      \\ \hline \textbf{Post-conditions}:
      \\ XXX
      \\
    \hline      
\end{longtable}
\end{filecontents}
\LTXtable{\textwidth}{\jobname-table.tmp}

\end{document}

请注意,我删除了所有不需要制作表格的包,以使示例更加简洁。

顺便说一句:这看起来不像是一张桌子。也许只使用一些盒子会是更好的解决方案。也许包装tcolorbox也很有用。

相关内容