设置侧身图形,使图形底部朝向脊柱

设置侧身图形,使图形底部朝向脊柱

我正在排版一本书。有几个图形的宽度大于高度,如果按照通常的方式放在页面上,它们会显得太小。我发现sidewaysfigure使用rotating包,我可以把这些图形以横向放置,占据整个页面。除了一个问题之外,这令人满意:在编译后的 pdf 中,图形的底部远离书脊;我希望底部朝向书脊。如果我使用包选项figuresrightfiguresleft,我可以让图形方向独立于页码,但这不是我想要的。clockwisecounterclockwise选项似乎没有改变任何东西(这是有道理的,因为文档指出这些选项适用于单面文档,但我希望如此)。

在使用双面文档中的包中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} 

相关内容