![如何防止 \Sidewaystable 从新页面开始](https://linux22.com/image/441227/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%20%5CSidewaystable%20%E4%BB%8E%E6%96%B0%E9%A1%B5%E9%9D%A2%E5%BC%80%E5%A7%8B.png)
这篇文章是对旋转表格图表和非表格标题以适合页面
考虑以下代码:
\documentclass{book}
\textheight 9.75in \textwidth 5.75in
\usepackage{xcolor}
\usepackage{rotating}
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}
\begin{document}
\LARGE
\begin{center}
\textbf{\textcolor{red}{THIS IS THE TABLE INTRODUCTION}}
\end{center}
\begin{sidewaystable}
\hfill {\Large{\textcolor{red}{\textbf{{Title and Chart to be Rotated -90$^\circ$}}}}\hfill}
\\[15pt]
\centering
\resizebox{.5\linewidth}{!}{%
\begin{tabular}{l*{12}{c} | l}
Victories & {} & {} & {} & {} & {} & {} & {} & {} & {} & {} & {} &
{} & Ties \\
{} & Nov & Dec & Jan & Feb & Mar & Apr & May & Jun & Jul & Aug &
Sep & Oct & {} \\
{} & XI & XII & I & II & III & IV & V & VI & VII & VIII & IX & X &
{} \\
Item 1 & {} & {} & {} & {} & {} & {} & {} & {} & {} &
{} & {} & {} & {} \\
Item 2 & {} & {} & {} & 9 & {} & {} & {} & 16 & {} & {} & {}
& {} & {} \\
Item 3 & {} & {} & {} & 7 & {} & {} & {} & {} & 16 & {} &
{} & {} & {} \\
Item 4 & {} & 24 & {} & 10 & {} & {} & {} & 15 & {} & {} &
{} & {} & {} \\
Item 5 & {} & {} & {} & {} & {} & {} & {} & {} & {} & {} & {} & {} &
{} \\
Item 6 & 8 & {} & 73 & 35 & 35 & {} & {} & {} & {} & {}
& {} & {} & 1 \\
Item 7 & {} & {} & 11 & 3 & 6 & 5 & {} & {} & {} & {} & {} &
{} & 2 \\
Item 8 & 43 & 56 & 3 & 1 & 10 & 55 & {} & {} & {} & {} & {} &
{} & {} \\
Item 9 & 11 & 45 & 37 & 28 & 37 & 20 & {} & {} & {} & {} & 17 &
{} & {} \\
\end{tabular}
}
\end{sidewaystable}
\end{document}
(不幸的是)它产生了两页的输出:
我想指出的是,我故意制作了一个非常非常小的表格,以说明第一页有足够的空间来容纳它;然而,似乎某种默认设置导致它从下一页开始。
问题:如何在同一页的介绍性标题下方立即显示我的侧向表格?备注:即使我在不调整表格大小的情况下运行代码,表格似乎也应该足够小以很好地适应上一页。
谢谢。
答案1
根据OP
s 评论,我得出了我的评论suggestion
。
如上所述Zarko
,使用\begin{sideways}...\end{sideways}
或\begin{rotate}{90}...\end{rotate}
代替\begin{sidewaystable}...\end{sidewaystable}
,则为MWE
:
\usepackage{rotating}
\begin{document}
\begin{rotate}{90}% or whatever you like
...
\end{rotate}
\end{document}
答案2
环境sidewaystable
会旋转一个宽度为的迷你页面,\textheight
以便它始终位于一页上。从风格上讲,除非绝对必要,否则应避免将表格横向放置,因此尝试执行您想要的操作很可能是一个坏主意。
所以问题是,既然这是一个坏主意,我们怎样才能让你想要的东西发挥作用,你肯定应该不是做这个?
有两种方法。一种是利用tabular
水平模式(通常不受欢迎)的事实(这就是为什么它在很多情况下会做出奇怪的事情)。这意味着如果我们写:
\begin{table}
\begin{sideways}
\begin{tabular}{...}
...
\end{tabular}
\end{sideways}
\end{table}
我们得到了恰好占据封闭的 水平空间的东西tabular
。但请注意,如果你将环境之外的任何东西放在环境tabular
之内sideways
,你将得到意想不到的和不理想的结果。
因此,如果您想让标题与表格一起旋转,另一种方法是定义一个新环境,我将其称为sidewaystable'
¹,它接受一个强制参数,即所需的高度sidewaystable
。
\NewDocumentEnvironment{sidewaystable'}{m}
{\setlength{\textheight}{#1}\begin{sidewaystable}} % ❶
{\end{sidewaystable}}
这里的神奇之处在于,我们会对 撒谎sidewaystable
,\textheight
以便当它产生输出时,它会使旋转的盒子具有较小的高度。
但我们还没完。想必你想将侧边表格打印在页面底部。默认情况下,LaTeX 不会将较大的浮动元素放在页面底部。因此,我们需要调整其他几个参数来实现这一点。具体来说,你需要执行
\RenewExpandableDocumentCommand{\bottomfraction}{.85}
页面底部的浮动元素最多可占据页面的 85%。您可能需要根据需要进行调整。在选择高度时还要注意,sidewaystable'
除了保持其小于.9\textheight
(或您选择的任何分数)之外,您还需要在文本和之间留出空间\textfloatsep
(默认情况下为 16-22pt,理想大小为 20pt)sidewaystable
。
\bottomfraction
如果你设置了大于,.76
你还需要降低 LaTeX 将包含浮动的最小空间量
\RenewExpandableDocumentComand{\textfraction}{.1}
的默认值\textfraction
是.2
,但您会注意到我正在设置\textfraction
+ \bottomfraction
< 1。这是有意的,因为\textfloatsep
它是文本框和浮动框的补充,您需要留出一些空间。
- 是的,您可以将其放入
'
环境名称中。事实上,您几乎可以将任何内容放入环境名称中。