有关 \sidepar 和 position 的帮助 - 使用 MVC

有关 \sidepar 和 position 的帮助 - 使用 MVC

sidepar我在课堂上遇到了问题memoir。我无法获得想要的结果,因为我无法控制位置,标题一直与图形的底线对齐?仅供参考,文本块的结果相同...

我希望输出与这里完全相同:

在此处输入图片描述

至少应该根据偶数页和奇数页来决定位置,而不是通过边距。我尝试了 TeX.SE 上发布的解决方案。它有效,但并非没有问题,例如文本块之间的空间较大,sidepar最重要的是标题不贴在图形顶部 - 任何关于如何获得这种外观的建议都将不胜感激。

\documentclass[10pt,showtrims,a4paper,twoside]{memoir} 

\usepackage[T1]{fontenc} 
\usepackage{graphicx} 
\usepackage{rotating} 
\usepackage{fontspec} 
\usepackage{microtype}
\usepackage{lipsum}
\usepackage[export]{adjustbox}


\sideparmargin{outer}
\settrimmedsize{24cm}{17cm}{*} 
\setlrmarginsandblock{32.125mm}{*}{0.9} 
\setulmarginsandblock{32.125mm}{*}{*} 
\setmarginnotes{0.2\foremargin}{0.7\foremargin}{\onelineskip}

\setheadfoot{\onelineskip}{2\onelineskip} 
\setheaderspaces{*}{2\onelineskip}{*}
\setlength{\trimtop}{0pt} 

\setlength{\trimedge}{\stockwidth}
\addtolength{\trimedge}{-\paperwidth}

\checkandfixthelayout

\begin{document}
\lipsum[1-4]



\lipsum[1-4]
\sidepar {This is text in the sidecaption it is sould follow the margin set on even and odd pages}

%remove comment and add a figure (tex.pdf) to  your directory
%\begin{figure}[t]
%\sidepar {This is text in the sidecaption it is sould follow the margin set on even and odd pages}
%\includegraphics[width=\textwidth]{tex.pdf}
%\label{fig:tex}
%\end{figure}

\end{document}

MVC 的结果: 在此处输入图片描述

更新 - @egreg 建议的结果并不完美... - 有没有其他方法可以消除调整的需要?

在此处输入图片描述

答案1

如果您只是需要带有的侧边字幕memoir,那么您可以使用sidecaption环境。

梅威瑟:

\documentclass[10pt,showtrims,a4paper,twoside]{memoir}

\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{fontspec}
\usepackage{microtype}
\usepackage{lipsum}
\usepackage[export]{adjustbox}

\setsidecappos{t}
\setlength\sidecapwidth{80pt}
\sidecapmargin{outer}

\begin{document}
\lipsum[1-3]

\begin{figure}[t]
 \begin{sidecaption}{This is text in the sidecaption it is sould follow the margin set on even and odd pages}[fig:tex1]
 \includegraphics[width=\textwidth,height=.9\textheight]{example-image-a}
 \end{sidecaption}
\end{figure}


\begin{figure}[t]
 \begin{sidecaption}{This is text in the sidecaption it is sould follow the margin set on even and odd pages}[fig:tex2]
 \includegraphics[width=\textwidth,height=.9\textheight]{example-image-b}
 \end{sidecaption}
\end{figure}

\end{document} 

在此处输入图片描述

如果希望侧边标题紧贴图片,请设置

\setlength\sidecapsep{0pt}

你会得到

在此处输入图片描述

答案2

\sidepar始终会考虑其所链接行的深度。尝试

\begin{tabular}[t]{c}x\\x\\x\\x\\z\end{tabular}%
\sidepar{This will be at the same height as z}

一种解决方法是将图片排版到另一行并将其凸起,在凸起部分中隐藏相同的内容。

\begin{figure}[tp]

\sidepar {This is text in the sidecaption it is sould follow the margin set on even
and odd pages}

\includegraphics[
  width=\textwidth,
  valign=t,
  raise=\baselineskip,
  set height=\dimexpr\height-\baselineskip,
]{example-image.pdf}%

\end{figure}

使用valign=t(由 提供adjustbox)我们使框仅在基线以上延伸一个正常行的高度;使用raise我们将其向上移动以补偿段落中断,使用set height我们削减凸起的量。

在此处输入图片描述

一种可能的简化方法是使用自定义命令:

\newcommand{\sideincludegraphics}[3][]{%
  \par\sidepar{#3}\par
  \includegraphics[
    #1,
    valign=t,
    raise=\baselineskip,
    set height=\dimexpr\height-\baselineskip,
  ]{#2}\par
}

所以代码就变成

\begin{figure}[tp]

\sideincludegraphics[width=\textwidth]{example-image.pdf}
 {This is text in the sidecaption it is sould follow
  the margin set on even
  and odd pages}

\end{figure}

相关内容