![使用longtable将表拆分为两个页面,但出现错误](https://linux22.com/image/423438/%E4%BD%BF%E7%94%A8longtable%E5%B0%86%E8%A1%A8%E6%8B%86%E5%88%86%E4%B8%BA%E4%B8%A4%E4%B8%AA%E9%A1%B5%E9%9D%A2%EF%BC%8C%E4%BD%86%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF.png)
我想在我的 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}