我正在排版一本书。有几个图形的宽度大于高度,如果按照通常的方式放在页面上,它们会显得太小。我发现sidewaysfigure
使用rotating
包,我可以把这些图形以横向放置,占据整个页面。除了一个问题之外,这令人满意:在编译后的 pdf 中,图形的底部远离书脊;我希望底部朝向书脊。如果我使用包选项figuresright
或figuresleft
,我可以让图形方向独立于页码,但这不是我想要的。clockwise
和counterclockwise
选项似乎没有改变任何东西(这是有道理的,因为文档指出这些选项适用于单面文档,但我希望如此)。
在使用双面文档中的包中sidewaysfigure
的环境时,如何将图形底部朝向书脊?rotating
答案1
奇怪的是,似乎没有这样的包选项......所以我采用了 的定义\end@rotfloat
并部分交换了左手和右手页面的代码。(并将\let
\endsidewaysfigure
和\endsidewaystable
改为 的新定义\end@rotfloat
。)
\documentclass{book}
\usepackage{rotating}
\makeatletter
\def\end@rotfloat{%
\end{minipage}\end{lrbox}%
\stepcounter{r@tfl@t}%
\rot@label{RF\ther@tfl@t}%
\rot@pageref{RF\ther@tfl@t}{\R@@page}%
\edef\@tempa{Adding sideways \@captype\space on page \R@@page\space}
\rot@mess@toks\expandafter{\@tempa}
\wd\rot@float@box\z@
\ht\rot@float@box\z@
\dp\rot@float@box\z@
\vbox to \textheight{%
\setkeys{Grot}{units=360}%
\if@rot@twoside
\else
\let\R@@page\rot@LR
\fi
\ifthenelse{\isodd{\R@@page}}{%
\if@rot@twoside
\rot@mess@toks\expandafter{\the\rot@mess@toks (right hand page)}%
\fi
% BEGIN OF ORIGINAL LEFT HAND PAGE
\@@line{%
\hskip\rotFPbot
\rotatebox{-90}{\box\rot@float@box}%
\hskip\rotFPtop
}%
\vfill
% END OF ORIGINAL LEFT HAND PAGE
}{%
\if@rot@twoside
\rot@mess@toks\expandafter{\the\rot@mess@toks (left hand page)}%
\fi
% BEGIN OF ORIGINAL RIGHT HAND PAGE
\vfill
\@@line{%
\hskip\rotFPtop
\rotatebox{90}{\box\rot@float@box}%
\hskip\rotFPbot
}%
% END OF ORIGINAL RIGHT HAND PAGE
}%
\rot@message{\the\rot@mess@toks}
}%
\end@float
}
\let\endsidewaysfigure\end@rotfloat
\let\endsidewaystable\end@rotfloat
\makeatother
\begin{document}
\begin{sidewaysfigure}
\centering
\rule{15cm}{1cm}
\caption{First figure}
\end{sidewaysfigure}
\begin{sidewaysfigure}
\centering
\rule{15cm}{1cm}
\caption{Second figure}
\end{sidewaysfigure}
\end{document}