使用longtable将表拆分为两个页面,但出现错误

使用longtable将表拆分为两个页面,但出现错误

我想在我的 LaTeX 文档中显示一个表格。我希望表格可以分成两页。我的代码在 lorem ipsum 后留下空白,表格从新页面开始。这是我的代码。

\documentclass[a4paper,oneside,11pt]{article}
\usepackage[left=2.5cm,right=2.5cm,top=4cm,bottom=2.7cm]{geometry}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{graphicx}
\usepackage{array}
\usepackage{newtxtext,newtxmath}
\usepackage{lipsum}
%\usepackage{longtable}

\begin{document}
\theoremstyle{definition}%tegak hurufnya
\newtheorem{theorem}{Theorem}[section]
\newtheorem{example}[theorem]{Example}
\lipsum[1-3]
\begin{example}
    This is the examples of t-norm and t-conorm.
    \begin{table}[h!]
        \centering
        \caption{Example of t-norm and t-conorm}
        \resizebox{\textwidth}{!}{
            \renewcommand{\arraystretch}{1.5}
            \begin{tabular}{|m{2cm}|c|c|}
                \hline
                \hfill \textbf{Name}\hfill \strut&\textbf{t-norm}&\textbf{t-conorm}\\
                \hline
                Standard intersection/ standard union&\newline$T_m(x,y)=\min(x,y)$&$C_m(x,y)=\max(x,y)$\\
                \hline
                Bounded sum&$T_b(x,y)=\max(0,x+y-1)$&$C_b(x,y)=\min(1,x+y)$\\
                \hline
                Algebraic product/ Algebraic sum&$T_p(x,y)=xy$&$C_p(x,y)=x+y-xy$\\
                \hline
                Drastic&$T_D(x,y)=
                \begin{cases}
                    y&\text{if }x=1\\
                    x&\text{if }y=1\\
                    0&\text{otherwise}
                \end{cases}$
                &
                $C_D(x,y)=
                \begin{cases}
                    y&\text{if }x=0\\
                    x&\text{if }y=0\\
                    1&\text{otherwise}
                \end{cases}
                $
                \\
                \hline
                Nilpotent minimum/ Nilpotent maximum&$T_{nM}(x,y)=
                \begin{cases}
                    \min(x,y)&\text{if }x+y> 1\\
                    0&\text{otherwise}
                \end{cases}$&
                $
                C_{nM}(x,y)=
                \begin{cases}
                    \max(x,y)&\text{if }x+y<1\\
                    1&\text{otherwise}
                \end{cases}
                $
                \\
                \hline
                Hamacher product/ Einstein sum&$T_{H_0}(x,y)=
                \begin{cases}
                    0&\text{if }x=y=0\\
                    \dfrac{xy}{x+y-xy}&\text{otherwise}
                \end{cases}$&
                $
                C_{H_2}(x,y)=\dfrac{x+y}{1+xy}
                $
                \\
                \hline
            \end{tabular}
        \label{tabelnorma}
        }
    \end{table}
\end{example}
\end{document}

我已阅读有关将表格拆分为 2 页的内容使表格跨越多页。我尝试longtable按如下方式使用。

\documentclass[a4paper,oneside,11pt]{article}
\usepackage[left=2.5cm,right=2.5cm,top=4cm,bottom=2.7cm]{geometry}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{graphicx}
\usepackage{array}
\usepackage{newtxtext,newtxmath}
\usepackage{lipsum}
\usepackage{longtable}

\begin{document}
\theoremstyle{definition}%tegak hurufnya
\newtheorem{theorem}{Theorem}[section]
\newtheorem{example}[theorem]{Example}
\lipsum[1-3]
\begin{example}
    This is the examples of t-norm and t-conorm.
    %\begin{table}[h!]
        %\centering
        %\caption{Example of t-norm and t-conorm} moved into longtable
        \resizebox{\textwidth}{!}{
            \renewcommand{\arraystretch}{1.5}
            \begin{longtable}{|m{2cm}|c|c|}
                \caption{Example of t-norm and t-conorm}
                \hline
                \hfill \textbf{Name}\hfill \strut&\textbf{t-norm}&\textbf{t-conorm}\\
                \hline
                Standard intersection/ standard union&\newline$T_m(x,y)=\min(x,y)$&$C_m(x,y)=\max(x,y)$\\
                \hline
                Bounded sum&$T_b(x,y)=\max(0,x+y-1)$&$C_b(x,y)=\min(1,x+y)$\\
                \hline
                Algebraic product/ Algebraic sum&$T_p(x,y)=xy$&$C_p(x,y)=x+y-xy$\\
                \hline
                Drastic&$T_D(x,y)=
                \begin{cases}
                    y&\text{if }x=1\\
                    x&\text{if }y=1\\
                    0&\text{otherwise}
                \end{cases}$
                &
                $C_D(x,y)=
                \begin{cases}
                    y&\text{if }x=0\\
                    x&\text{if }y=0\\
                    1&\text{otherwise}
                \end{cases}
                $
                \\
                \hline
                Nilpotent minimum/ Nilpotent maximum&$T_{nM}(x,y)=
                \begin{cases}
                    \min(x,y)&\text{if }x+y> 1\\
                    0&\text{otherwise}
                \end{cases}$&
                $
                C_{nM}(x,y)=
                \begin{cases}
                    \max(x,y)&\text{if }x+y<1\\
                    1&\text{otherwise}
                \end{cases}
                $
                \\
                \hline
                Hamacher product/ Einstein sum&$T_{H_0}(x,y)=
                \begin{cases}
                    0&\text{if }x=y=0\\
                    \dfrac{xy}{x+y-xy}&\text{otherwise}
                \end{cases}$&
                $
                C_{H_2}(x,y)=\dfrac{x+y}{1+xy}
                $
                \\
                \hline
                \label{tabelnorma}
            \end{longtable}
        }
    %\end{table}
\end{example}
\end{document}

我已经使用过longtable,但是这段代码出现了错误,我无法将表格分成两页。

有人能帮助我吗?

答案1

在以下 MWE 中,我使用了xltabular而不是调整大小longtable。此外,我还添加了缺失\\以使代码可编译。以下示例代码中注释了一些进一步的更改:

在此处输入图片描述

\documentclass[a4paper,oneside,11pt]{article}
\usepackage[left=2.5cm,right=2.5cm,top=4cm,bottom=2.7cm]{geometry}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{graphicx}
%\usepackage{array} % already loaded by xltabular
\usepackage{newtxtext,newtxmath}
\usepackage{lipsum}
\usepackage{xltabular} % Replaced longtable with xltabular to make table as wide as the textwidth.
\renewcommand{\tabularxcolumn}[1]{m{#1}} % To vertically center the contents of the cells
\usepackage[column=0]{cellspace} % improved vertical spacing around cell's contents
\setlength{\cellspacetoplimit}{\tabcolsep}
\setlength{\cellspacebottomlimit}{\cellspacetoplimit}
\addparagraphcolumntypes{X}

\begin{document}
\theoremstyle{definition}%tegak hurufnya
\newtheorem{theorem}{Theorem}[section]
\newtheorem{example}[theorem]{Example}
\lipsum[1-4]
\begin{example}
    This is the examples of t-norm and t-conorm.
%        \resizebox{\textwidth}{!}{ % removed resizebox
%            \renewcommand{\arraystretch}{1.5}
{\setlength{\tabcolsep}{3pt}
            \begin{xltabular}{\textwidth}{|>{\raggedright\arraybackslash}0{X}|0c|0c|} % Replaced longtable with xltabular to make table as wide as the textwidth.
                \caption{Example of t-norm and t-conorm}\label{tabelnorma} \\ % added missing \\ here.
                \hline
                \centering \textbf{Name}&\textbf{t-norm}&\textbf{t-conorm}\\ % replaced \hfill with \centering
                \hline
                Standard intersection/ standard union&\newline$T_m(x,y)=\min(x,y)$&$C_m(x,y)=\max(x,y)$\\
                \hline
                Bounded sum&$T_b(x,y)=\max(0,x+y-1)$&$C_b(x,y)=\min(1,x+y)$\\
                \hline
                Algebraic product/ Algebraic sum&$T_p(x,y)=xy$&$C_p(x,y)=x+y-xy$\\
                \hline
                Drastic&$T_D(x,y)=
                \begin{cases}
                    y&\text{if }x=1\\
                    x&\text{if }y=1\\
                    0&\text{otherwise}
                \end{cases}$
                &
                $C_D(x,y)=
                \begin{cases}
                    y&\text{if }x=0\\
                    x&\text{if }y=0\\
                    1&\text{otherwise}
                \end{cases}
                $
                \\
                \hline
                Nilpotent minimum/ Nilpotent maximum&$T_{nM}(x,y)=
                \begin{cases}
                    \min(x,y)&\text{if }x+y> 1\\
                    0&\text{otherwise}
                \end{cases}$&
                $
                C_{nM}(x,y)=
                \begin{cases}
                    \max(x,y)&\text{if }x+y<1\\
                    1&\text{otherwise}
                \end{cases}
                $
                \\
                \hline
                Hamacher product/ Einstein sum&$T_{H_0}(x,y)=
                \begin{cases}
                    0&\text{if }x=y=0\\
                    \dfrac{xy}{x+y-xy}&\text{otherwise}
                \end{cases}$&
                $
                C_{H_2}(x,y)=\dfrac{x+y}{1+xy}
                $
                \\
                \hline
%                \label{tabelnorma} % moved label to the caption to avoid overly long vertical lines
            \end{xltabular}
        }
\end{example}
\end{document}

相关内容