Floatrow 根据奇偶页调整不同边距标题对齐方式

Floatrow 根据奇偶页调整不同边距标题对齐方式

我希望双面文档中偶数页和奇数页的标题对齐方式有所不同。

考虑以下我使用包的 MWE标题浮行实现页边距中的图形标题。

\documentclass[twoside]{article}
\usepackage[demo]{graphicx}
\usepackage{showframe}
\usepackage[singlelinecheck=false]{caption}
\usepackage{floatrow}
\usepackage[strict]{changepage}

\floatsetup{margins=hangoutside,capposition=beside,
capbesideposition={top,outside},floatwidth=\textwidth,facing=yes}

\newcommand\rightlast{\leftskip0ptplus1fil
\rightskip0ptplus-1fil\parfillskip0ptplus1fil}
\DeclareCaptionJustification{rightlast}{\rightlast}

\ifoddpage
\captionsetup[capbesidefigure]{labelsep=newline,labelfont=bf,justification=justified}
\else
\captionsetup[capbesidefigure]{labelsep=newline,labelfont=bf,justification=rightlast}
\fi

\begin{document}
\
\clearpage
\begin{figure}[h]
\caption{test1}
\includegraphics[]{demo}
\end{figure}
\clearpage
\begin{figure}[h]
\caption{test2}
\includegraphics[]{demo}
\end{figure}
\end{document}

正常行为是合理的因此,根据 floatrow 手册,我使用了 newcommand右末使等边(左)边距标题位于正文旁边。

通过使用更改页面我尝试检查页面是否为奇数并使用合理的或甚至使用右末但它没有像我预期的那样工作。

我现在明白了: 在此处输入图片描述

我想要的是这个: 在此处输入图片描述

答案1

我把奇数页检查移到了内部\rightlast

\documentclass[twoside]{article}
\usepackage[demo]{graphicx}
\usepackage{showframe}
\usepackage[singlelinecheck=false]{caption}
\usepackage{floatrow}
\usepackage[strict]{changepage}

\floatsetup{margins=hangoutside,capposition=beside,
capbesideposition={top,outside},floatwidth=\textwidth,facing=yes}

\newcommand\rightlast{\checkoddpage
\ifoddpage\else
  \leftskip0ptplus1fil
  \rightskip0ptplus-1fil\parfillskip0ptplus1fil
\fi}
\DeclareCaptionJustification{rightlast}{\rightlast}

\captionsetup[capbesidefigure]{labelsep=newline,labelfont=bf,justification=rightlast}

\begin{document}
\
\clearpage
\begin{figure}[h]
\caption{test1}
\includegraphics[]{demo}
\end{figure}
\clearpage
\begin{figure}[h]
\caption{test2}
\includegraphics[]{demo}
\end{figure}
\end{document}

相关内容