如何交换或反转包‘rotating’中‘sidewaysfigure’的行为?

如何交换或反转包‘rotating’中‘sidewaysfigure’的行为?

对于book班级来说,默认情况下包裹rotating将旋转环境的一个实例sidewaysfigure

  • 如果浮动页面位于奇数页码,则逆时针旋转 90 度,或者
  • 如果浮动页面位于偶数页码,则顺时针旋转 90 度。

例如,这是默认输出

示例输出

以下 MWE:

\documentclass[12pt]{book}
\usepackage{rotating}

\begin{document}

\begin{sidewaysfigure} \LARGE
    Should be: from UP to DOWN. But is: from DOWN to UP.
\end{sidewaysfigure}

\newpage

\begin{sidewaysfigure} \LARGE
    Should be: from DOWN to UP. But is: from UP to DOWN.
\end{sidewaysfigure}

\end{document}

问:我怎样才能反转/交换默认行为?

希望的是,如果图形落在偶数页上,则逆时针旋转;如果落在奇数页上,则顺时针旋转。这对我来说更有意义,因为偶数页码通常是书的左页,奇数页码是右页。

软件包选项figuresleftfiguresright在这里不起作用。它们完全消除了手性依赖性,而我想交换/反转默认行为。请注意,我没有很多这样的页面,所以“颈部疼痛”不是问题。如果你不认识这里“颈部疼痛”指的是什么,你可以忽略这个解释:)。

答案1

在此处输入图片描述

您可以修补该命令来否定\ifodd测试。

\documentclass[12pt]{book}
\usepackage{rotating}
\usepackage{etoolbox}
\makeatletter
\patchcmd\end@rotfloat
{\isodd{\R@@page}}
{\not{\isodd{\R@@page}}}
{}%
{}%

\let\endsidewaysfigure\end@rotfloat
\let\endsidewaystable\end@rotfloat
\makeatother
\begin{document}

\begin{sidewaysfigure} \LARGE
    Should be: from UP to DOWN. But is: from DOWN to UP.
\end{sidewaysfigure}

\newpage

\begin{sidewaysfigure} \LARGE
    Should be: from DOWN to UP. But is: from UP to DOWN.
\end{sidewaysfigure}

\end{document}

相关内容