我在一个部分下有以下景观长桌:
\documentclass{article}
\usepackage{longtable}
\usepackage{arydshln}
\usepackage{pdflscape}
\begin{document}
\section{Landscaped longtable issues}
\begin{landscape}
\begin{longtable}{cccc}
\caption{Observations}\label{tab:X}\\
\hline
A & B & C & D\\
type & type & unit & an incredibly wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide source\\
\hline
\endfirsthead
\multicolumn{4}{l}%
{\tablename\ \thetable\ (\emph{continued from previous page})} \\
\hline
A & B & C & D\\
type & type & unit & an incredibly wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide source\\
\hline
\endhead
\hline
\multicolumn{4}{r}%
{(\emph{continued on next page})} \\
\endfoot
\hline
\endlastfoot
Asian 1 & Yellow & X & R\\
Asian 2 & Yellow & X & R\\
Asian 3 & Yellow & X & R\\
Asian 4 & Yellow & X & R\\
Asian 5 & Yellow & X & R\\
Asian 6 & Yellow & X & R\\
Asian 7 & Yellow & X & R\\
Asian 8 & Yellow & X & R\\
Asian 9 & Yellow & X & R\\
Asian 10 & Yellow & X & R\\
Asian 11 & Yellow & X & R\\
Asian 12 & Yellow & X & R\\
Asian 13 & Yellow & X & R\\
Asian 14 & Yellow & X & R\\
Asian 15 & Yellow & X & R\\
Asian 16 & Yellow & X & R\\
Asian 17 & Yellow & X & R\\
Asian 18 & Yellow & X & R\\
Asian 19 & Yellow & X & R\\
Asian 20 & Yellow & X & R\\
American 1 & Red & Y & R\\
American 2 & Red & Y & R\\
American 3 & Red & Y & R\\
American 4 & Red & Y & R\\
American 5 & Red & Y & R\\
American 6 & Red & Y & R\\
American 7 & Red & Y & R\\
American 8 & Red & Y & R\\
American 9 & Red & Y & R\\
American 10 & Red & Y & R\\
American 11 & Red & Y & R\\
American 12 & Red & Y & R\\
American 13 & Red & Y & R\\
American 14 & Red & Y & R\\
American 15 & Red & Y & R\\
American 16 & Red & Y & R\\
American 17 & Red & Y & R\\
American 18 & Red & Y & R\\
American 19 & Red & Y & R\\
American 20 & Red & Y & R\\
& & &\\
\cdashline{1-3}
\multicolumn{2}{c}%
{\textbf{Mean type}} & Z &\\
\multicolumn{2}{c}%
{(standard deviation)} & (SD) &\\
\end{longtable}
\end{landscape}
\end{document}
如您所见,横向环境在章节标题后立即中断了页面。是否可以将横向的长表放在第一页,紧接着章节标题,同时保持整个页面为纵向(即我只想旋转长表,不做其他任何事情)?我知道这是一个老问题,但到目前为止我还没有找到一个优雅的解决方案,只是想听听社区的意见..............欢呼!
答案1
可以将旋转的部分标题和长表重叠,但要小心不要让它们真正重叠。
\documentclass{article}
\usepackage{longtable}
\usepackage{arydshln}
\usepackage{pdflscape}
\usepackage{adjustbox}
\newsavebox{\tempbox}
\begin{document}
\setbox\tempbox=\vbox{\section{Landscaped longtable issues}}
\begin{landscape}
\makebox[\linewidth][r]{\smash{\rotatebox[origin=lb]{-90}{\usebox\tempbox}}}\vspace{-\baselineskip}
\begin{longtable}[l]{cccc}
\caption{Observations}\label{tab:X}\\
\hline
A & B & C & D\\
type & type & unit & source\\
\hline
\endfirsthead
\multicolumn{4}{l}%
{\tablename\ \thetable\ (\emph{continued from previous page})} \\
\hline
A & B & C & D\\
unit & unit & unit & unit\\
\hline
\endhead
\hline
\multicolumn{4}{r}%
{(\emph{continued on next page})} \\
\endfoot
\hline
\endlastfoot
Asian & Yellow & X & R\\
American & Red & Y & R\\
& & &\\
\cdashline{1-3}
\multicolumn{2}{c}%
{\textbf{Mean type}} & Z &\\
\multicolumn{2}{c}%
{(standard deviation)} & (SD) &\\
\end{longtable}
\end{landscape}
\end{document}
答案2
从提供的 MWE 很难弄清楚,真正的表格应该是什么样子。这可能对你来说似乎无关紧要,但我们无法建议你一些稍微不同的表格设计方法,这将提供更好的表格格式,也可能不需要使用landscape
页面:
一种可能的解决方案是考虑:
- 纵向页面方向,使用表
adjustwidth
中定义的宏扩展文本宽度changepage
xltabular
在最后一列中使用修改后的 `` 列类型的表- 使用
booktabs
包中的规则 - 通过使用包
makecellgaped
中定义的宏在单元格内容周围添加了额外的垂直空间makecell
\documentclass{article}
\usepackage{microtype}
\usepackage{ragged2e} % new added
\usepackage{arydshln,
booktabs, makecell, xltabular} % new, added
\renewcommand\theadfont{\bfseries}
\renewcommand\theadgape{}
\newcolumntype{L}{>{\RaggedRight\hspace{0pt}}X} % added
\usepackage[skip=1ex, font=small, label font=bf]{caption}
\usepackage[strict]{changepage}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}
\begin{document}
\section{A wide table present in the portrait page}
\begin{adjustwidth}{}{-\dimexpr\marginparsep+\marginparwidth\relax}
\setlength\tabcolsep{4pt}
\setcellgapes{2pt}
\makegapedcells
\begin{xltabular}{\linewidth}{@{} ccc L @{}}
\caption{Observations}
\label{tab:X} \\
\toprule
\thead[b]{A\\ type}
& \thead[b]{B\\ type}
& \thead[b]{C\\ unit}
& \thead[b]{D\\ some description of column content} \\
\midrule
\endfirsthead
\caption[]{Observations
(\emph{continued from previous page})} \\
\toprule
\thead[b]{A\\ type}
& \thead[b]{B\\ type}
& \thead[b]{C\\ unit}
& \thead[b]{D\\ some description of column content} \\
\midrule
\endhead
\midrule
\multicolumn{4}{r}{\small(\emph{continued on next page})} \\
\endfoot
\bottomrule
\endlastfoot
%%%% table body
Asian 1 & Yellow & X & \lipsum[66] \\
Asian 2 & Yellow & X & \lipsum[66] \\
Asian 3 & Yellow & X & \lipsum[66] \\
Asian 4 & Yellow & X & \lipsum[66] \\
Asian 5 & Yellow & X & \lipsum[66] \\
Asian 6 & Yellow & X & \lipsum[66] \\
Asian 7 & Yellow & X & \lipsum[66] \\
Asian 8 & Yellow & X & \lipsum[66] \\
Asian 9 & Yellow & X & \lipsum[66] \\
Asian 10 & Yellow & X & \lipsum[66] \\
Asian 11 & Yellow & X & \lipsum[66] \\
Asian 12 & Yellow & X & \lipsum[66] \\
Asian 13 & Yellow & X & \lipsum[66] \\
Asian 14 & Yellow & X & \lipsum[66] \\
Asian 15 & Yellow & X & \lipsum[66] \\
Asian 16 & Yellow & X & \lipsum[66] \\
Asian 17 & Yellow & X & \lipsum[66] \\
Asian 18 & Yellow & X & \lipsum[66] \\
Asian 19 & Yellow & X & \lipsum[66] \\
Asian 20 & Yellow & X & \lipsum[66] \\
American 1 & Yellow & X & \lipsum[66] \\
American 2 & Yellow & X & \lipsum[66] \\
\end{xltabular}
\end{adjustwidth}
\lipsum[1]
\end{document}
(红线表示页面布局)
如果知道真实表格内容的(模仿),则可以对表格设计进行更多调整。例如,如果第三列包含单位,则可以是包s
中定义的类型bi siunitx
,可以使用较小的字体大小等。\small
无论如何,在我看来,建议的解决方案看起来比您想要的表格格式更好。