我希望 的sidewaystable
顶部靠在正文的内边距上。根据rotating
软件包文档,需要进行以下设置:
\rotFPtop=0pt and
\rotFPbot=0pt plus 1fil
将放置一个sidewaystable
顶部最靠近页面边缘的元素。但实际上中心表格的位于边缘,如下所示:
\documentclass[twoside]{article}
\usepackage[counterclockwise]{rotating}
\usepackage[a4paper,margin=50mm,showframe]{geometry}
\rotFPtop=0pt
\rotFPbot=0pt plus 1fil
\fboxsep0pt
\def\tab{
\begin{sidewaystable}
\begin{center}
\fbox{\begin{tabular}{c}
line 1\\line 2\\line 3\\line 4\\\hline
line 5\\line 6\\line 7\\line 8\\
\end{tabular}}
\end{center}
\end{sidewaystable}
}
\begin{document}
\tab\newpage\tab
\end{document}
这表明顶部既不在页面边缘,也不在页边距(即,在此示例中距离页面边缘 50 毫米)。我怎样才能得到它的边缘?
(Gonzalo Medina 编辑)
显示所提及问题的图像是从showframe
使用 TeX Live2012 发布的代码(我为了可视化目的而添加的)中获得的:
答案1
我不能说我理解这个包的问题,但我发现如果\rotFPtop
将 设置为 的值.5\dp\tmpbox+.5\ht\tmpbox+.19\baselineskip
(其中内容已设置为\tmpbox
),内容的顶部将与边距对齐(奇数页左对齐,偶数页右对齐)。我已经针对各种高度和深度的盒子以及使用 10pt、11pt 和 12pt 文档验证了这一点。
\documentclass[twoside,12pt]{article}
\usepackage[counterclockwise]{rotating}
\usepackage[a4paper,margin=50mm,showframe]{geometry}
\usepackage{calc}
\usepackage{stackengine}
\fboxsep0pt
\newsavebox\tmpbox
\def\prepbox#1{%
\savebox{\tmpbox}{#1}%
\setlength{\rotFPtop}{.5\dp\tmpbox+.5\ht\tmpbox+.19\baselineskip}%
}
\def\swtab{
\begin{sidewaystable}
\begin{center}
\usebox{\tmpbox}
\end{center}
\end{sidewaystable}
}
\begin{document}
\prepbox{%
\fbox{\begin{tabular}{c}
line 1\\line 2\\line 3\\line 4\\\hline
line 5\\line 6\\line 7\\line 8\\
\end{tabular}}%
}
\swtab\newpage\swtab\newpage
\prepbox{\fbox{A baseline}}
\swtab\newpage\swtab\newpage
\prepbox{\fbox{baseline \stackon{\stackunder{a}{b}}{c}}}
\swtab\newpage\swtab\newpage
\prepbox{\fbox{A baseline \stackunder{\stackunder{a}{b}}{c}}}
\swtab\newpage\swtab\newpage
\prepbox{\fbox{baseline \Shortstack{A B C D E}}}
\swtab\newpage\swtab\newpage
\end{document}