You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将超宽的longtable适配至LaTeX文档页面宽度?

嗨,我帮你整理了几个把宽longtable适配到页面宽度的实用方案,都是LaTeX里常用的解决思路,你可以根据自己的需求选择:

方法1:用longtablex结合自适应列(最推荐)

longtablextabularx的扩展包,完美兼容longtable的跨页功能,同时能让X列自动分配剩余宽度,帮你把整个表格缩到页面宽度内。

代码示例:

\usepackage{longtablex} % 加载扩展包,同时兼容longtable和tabularx
\usepackage{array}

\begin{document}

\begin{longtable}{@{}X*{10}{c}@{}} 
\caption{研究期间开展的实验列表} \\
\hline
Date & Encoding & \begin{tabular}[c]{@{}c@{}}Model\\Architecture\end{tabular} & \begin{tabular}[c]{@{}c@{}}LSTM\\Units\end{tabular} & \begin{tabular}[c]{@{}c@{}}Batch\\Size\end{tabular} & \begin{tabular}[c]{@{}c@{}}Embedding\\Dimension\end{tabular} & Learning Rate & Dropout & Epochs & Optimizer & Accuracy \\
\hline
\endfirsthead
% 续表的表头,避免跨页后无表头
\multicolumn{11}{c}{\tablename\ \thetable\ -- 续表} \\
\hline
Date & Encoding & \begin{tabular}[c]{@{}c@{}}Model\\Architecture\end{tabular} & \begin{tabular}[c]{@{}c@{}}LSTM\\Units\end{tabular} & \begin{tabular}[c]{@{}c@{}}Batch\\Size\end{tabular} & \begin{tabular}[c]{@{}c@{}}Embedding\\Dimension\end{tabular} & Learning Rate & Dropout & Epochs & Optimizer & Accuracy \\
\hline
\endhead
% 表尾格式
\hline
\endfoot
\hline
\endlastfoot
% 实验数据示例,替换成你的真实数据
2023-01-05 & One-Hot & BiLSTM & 128 & 32 & 64 & 0.001 & 0.2 & 50 & Adam & 0.89 \\
2023-01-10 & Word2Vec & LSTM & 256 & 64 & 128 & 0.0005 & 0.3 & 30 & RMSprop & 0.92 \\
% 更多实验数据...
\end{longtable}

\end{document}

说明@{}X*{10}{c}@{}里的@{}用来去掉列前后的多余空白,X列会自动填充页面剩余宽度,其余10列保持居中对齐,整个表格宽度会自动适配页面的\linewidth

方法2:手动设置固定列宽(精确控制)

如果你想精准控制每一列的宽度,可以把原有的c列换成p{宽度}格式,让列内文本自动换行:

\usepackage{longtable}
\usepackage{array}

\begin{document}

\begin{longtable}{@{}p{1.5cm}p{1.2cm}p{2cm}p{1cm}p{1cm}p{1.5cm}p{1.2cm}p{1cm}p{1cm}p{1.2cm}p{1.2cm}@{}}
\caption{研究期间开展的实验列表} \\
\hline
\centering Date & \centering Encoding & \centering \begin{tabular}[c]{@{}c@{}}Model\\Architecture\end{tabular} & \centering \begin{tabular}[c]{@{}c@{}}LSTM\\Units\end{tabular} & \centering \begin{tabular}[c]{@{}c@{}}Batch\\Size\end{tabular} & \centering \begin{tabular}[c]{@{}c@{}}Embedding\\Dimension\end{tabular} & \centering Learning Rate & \centering Dropout & \centering Epochs & \centering Optimizer & \centering Accuracy \\
\hline
\endfirsthead
\multicolumn{11}{c}{\tablename\ \thetable\ -- 续表} \\
\hline
\centering Date & \centering Encoding & \centering \begin{tabular}[c]{@{}c@{}}Model\\Architecture\end{tabular} & \centering \begin{tabular}[c]{@{}c@{}}LSTM\\Units\end{tabular} & \centering \begin{tabular}[c]{@{}c@{}}Batch\\Size\end{tabular} & \centering \begin{tabular}[c]{@{}c@{}}Embedding\\Dimension\end{tabular} & \centering Learning Rate & \centering Dropout & \centering Epochs & \centering Optimizer & \centering Accuracy \\
\hline
\endhead
\hline
\endfoot
\hline
\endlastfoot
% 实验数据示例
2023-01-05 & One-Hot & BiLSTM & 128 & 32 & 64 & 0.001 & 0.2 & 50 & Adam & 0.89 \\
2023-01-10 & Word2Vec & LSTM & 256 & 64 & 128 & 0.0005 & 0.3 & 30 & RMSprop & 0.92 \\
\end{longtable}

\end{document}

说明p{宽度}会让列内文本自动换行,\centering用来让列内内容居中对齐,你可以根据实际内容调整每个p{}里的宽度数值,只要总宽度不超过页面宽度就行。

方法3:临时缩小字体(应急方案)

如果不想调整列结构,只是临时解决宽度问题,可以给整个表格套一个字体缩小的环境,比如\small或者\footnotesize

\usepackage{longtable}

\begin{document}

{\small % 局部缩小字体,不会影响文档其他内容
\begin{longtable}{ccccccccccc}
\caption{研究期间开展的实验列表} \\
\hline
Date & Encoding & \begin{tabular}[c]{@{}c@{}}Model\\Architecture\end{tabular} & \begin{tabular}[c]{@{}c@{}}LSTM\\Units\end{tabular} & \begin{tabular}[c]{@{}c@{}}Batch\\Size\end{tabular} & \begin{tabular}[c]{@{}c@{}}Embedding\\Dimension\end{tabular} & Learning Rate & Dropout & Epochs & Optimizer & Accuracy \\
\hline
\endfirsthead
\multicolumn{11}{c}{\tablename\ \thetable\ -- 续表} \\
\hline
Date & Encoding & \begin{tabular}[c]{@{}c@{}}Model\\Architecture\end{tabular} & \begin{tabular}[c]{@{}c@{}}LSTM\\Units\end{tabular} & \begin{tabular}[c]{@{}c@{}}Batch\\Size\end{tabular} & \begin{tabular}[c]{@{}c@{}}Embedding\\Dimension\end{tabular} & Learning Rate & Dropout & Epochs & Optimizer & Accuracy \\
\hline
\endhead
\hline
\endfoot
\hline
\endlastfoot
2023-01-05 & One-Hot & BiLSTM & 128 & 32 & 64 & 0.001 & 0.2 & 50 & Adam & 0.89 \\
2023-01-10 & Word2Vec & LSTM & 256 & 64 & 128 & 0.0005 & 0.3 & 30 & RMSprop & 0.92 \\
\end{longtable}
} % 结束字体缩小环境

\end{document}

说明:这个方法操作最简单,但可能会让字体过小影响可读性,所以更适合作为应急方案,优先推荐前两种方法。

内容的提问来源于stack exchange,提问作者Danny

火山引擎 最新活动