旋转包:定位与文档不符

旋转包:定位与文档不符

我希望 的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}

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容