使用 memoir 时,我发现尽管我使用了 \strictpagecheck 甚至 \overridescapmargin,但侧标题有时仍会出现在错误的边距中。似乎 memoir 和 hyperref 之间存在交互,如以下 MWE 所示:
\documentclass[a4paper]{memoir}
\setstocksize{29.7cm}{21.0cm} % A4 stock
\settrimmedsize{27.94cm}{21.0cm}{*} % 27.94cm = 11in
\setlength{\trimtop}{0.0cm}
\setlength{\trimedge}{\stockwidth}
\addtolength{\trimedge}{-\paperwidth}
\settypeblocksize{23.94cm}{12.3cm}{*}
\setlrmargins{1.13cm}{*}{*}
\setulmargins{2.0cm}{*}{*}
\setmarginnotes{\onelineskip}{6.15cm}{\onelineskip}
\sidecapmargin{outer}
\setsidecaps{\onelineskip}{6.15cm}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage[pdftex]{hyperref}
\checkandfixthelayout
\begin{document}
\lipsum[1-6]
\strictpagecheck
\begin{figure}
\begin{sidecaption}{Dummy caption dummy caption dummy caption.}[fig:dummyfig]
\centering
\begin{tikzpicture}
\draw (0,0) rectangle (12,12);
\end{tikzpicture}
\end{sidecaption}
\end{figure}
\end{document}
如果使用 hyperref,标题就会出现在错误的一侧。如果我注释掉 hyperref,标题就会出现在正确的一侧。但是,这仅在 MWE 中当图位于第二页时才会发生。如果我删除 lipsum 段落以便图位于第一页,则标题的位置正确。
建议的 setpagesize=false 选项这个帖子没有什么区别。
答案1
您的 mwe 对我来说很好用(我使用最新版本的 memoir 包)。也许以下内容会对您有所帮助(如果您的问题仍然存在):
在序言中添加:
\newcommand\side{\strictpagechecktrue \checkoddpage\ifoddpage\else\raggedleft\fi}
向
figure
环境添加:\begin{figure}\side \begin{sidecaption}{Dummy caption dummy caption dummy caption.}[fig:dummyfig] \centering \begin{tikzpicture} \draw (0,0) rectangle (12,12); \end{tikzpicture} \end{sidecaption} \end{figure}
请勿
\strictpagechecktrue
在文中使用。