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}