我正在 Excel 工作表上处理文献综述的描述表,希望稍后在 Latex 中将其重新排列成一个整洁的长表格,其单元格中有短段落,可以扩展到多个横向页面,如下图所示。目前我得到的表格没有组织,也没有居中,并且随机在页面上断行。请参见下面的关联图片。
\documentclass{article}
\usepackage{float,lscape}
\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{array}
\usepackage{longtable}
\usepackage{lipsum}
\begin{document}
\lipsum[1-2]
\afterpage{
\clearpage
\pagestyle{empty}
\begin{landscape}\centering
\begin{longtable}[!htp]{| p{.50\textwidth} | p{.15\textwidth} |p{.15\textwidth}|p{.15\textwidth}|p{.45\textwidth}|p{.15\textwidth}|p{.30\textwidth}|p{.15\textwidth}|}
\hline
\textbf{Column 1} & \textbf{Column 2} & \textbf{Column 3} & \textbf{Column 4} & \textbf{Column 5} & \textbf{Column 6} & \textbf{Column 7} & \textbf{Column 8}
\\ \hline
\lipsum[1-1]. & 20 & 2014 & Journal & \lipsum[1]. & France & \lipsum[1] & 230.
\\ \hline
\lipsum[1]. & 10 & 2015 & Confernce & \lipsum[1]. & UK & \lipsum[1] & 120.
\\ \hline
\caption{Your caption here} % needs to go inside longtable environment
label{tab:mylongtable}
\end{longtable}
\end{landscape}
\pagestyle{plain}
\clearpage
}
%\end{table}
Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document}
答案1
- 你的桌子很大
- 通过列宽定义表格宽度相等
(.50+.15+.15+.15+.45+.15+.30+.15)*\textwidth=2*\textwidth
,因此表格溢出到页面右侧 - 我建议
longtable
你使用ltablex
你规定的表格宽度 - 为了使文本更好地适应单元格,需要减小字体大小,例如
\small
要减少类型列的宽度,请查看是否可以
c
使用\thead{...}
from包makecell
(我假设第 2、3、4、6 和 8 列的单元格只有很短的一行内容;如果这个假设是错误的,那么您需要将其转换为
X
列类型并确定它们的相对宽度)- 更“专业的外观是通过移除垂直线并使用包装中的水平线规则来获得的
booktabs
(如果你不喜欢这样的设计,你可以返回垂直线并替换rules
为hlines
- 注意:表格可以在页面之间拆分,但只能在行之间拆分
姆韦:
\documentclass{article}
\usepackage[margin=25mm]{geometry}
\usepackage{lscape}
% \usepackage{pdflscape} % alternative to lscape
\usepackage{booktabs, makecell, ltablex}
% \keepXColumns % preserve X column formatting
\usepackage{lipsum}
\begin{document}
\pagestyle{plain}
\lipsum[1-5]
\pagestyle{empty}
\begin{landscape}
\small
\renewcommand\theadfont{\bfseries}
\begin{tabularx}{\linewidth}{@{}
>{\hsize=0.4\hsize}X l l l
>{\hsize=0.35\hsize}X l
>{\hsize=0.25\hsize}X l
@{}}
\caption{Your caption here}
\label{tab:mylongtable} \\
\toprule
\thead[l]{Column 1} & \thead[l]{Column\\ 2} & \thead[l]{Column\\ 3} &
\thead[l]{Column\\ 4} & \thead[l]{Column 5} & \thead[l]{Column\\ 6} &
\thead[l]{Column 7} & \thead[l]{Column\\ 8} \\
\midrule
\endfirsthead
%%%%
\caption{Your caption here (cont.)}
\label{tab:mylongtable} \\
\toprule
\thead[l]{Column 1} & \thead[l]{Column\\ 2} & \thead[l]{Column\\ 3} &
\thead[l]{Column\\ 4} & \thead[l]{Column 5} & \thead[l]{Column\\ 6} &
\thead[l]{Column 7} & \thead[l]{Column\\ 8} \\
\midrule
\endhead
%%%%
\multicolumn{8}{r}{\textit{continue on the next page}}
\endfoot
%%%%
\bottomrule
\endlastfoot
%%%% table content
\lipsum[11] & 20 & 2014 &
Journal & \lipsum[11] & France &
\lipsum[11] & 230 \\ \midrule
\lipsum[11] & 10 & 2015 &
Conference & \lipsum[11] & UK &
\lipsum[11] & 120 \\
\end{tabularx}
\end{landscape}
\pagestyle{plain}
Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document}