我想从 切换sidecap
到floatrow
将图形标题放在边距中。使用时,sidecap
文本完美地定位在边距内。当我使用 floatrow 时,会出现轻微的偏移。我做错了什么?
注意:添加marginparsep=50pt
到 geometry 包会加剧此问题。似乎marginparsep
floatrow 没有正确设置距离。嗯。
代码:
\documentclass[twoside]{scrartcl}
\usepackage[a4paper,textwidth=300pt,marginparwidth=150pt,inner=1in,asymmetric]{geometry}
\usepackage{blindtext}
\usepackage{showframe}
\usepackage[format=plain]{caption}
\usepackage[english]{babel}
\usepackage{floatrow}
\usepackage[margincaption]{sidecap}
\begin{document}
\section{one}
\blindtext[1]
\begin{SCfigure}[][h]
\rule{3.5in}{0.5in}
\caption{Nulla malesuada porttitor diam. Donec felis erat, congue non, volut- pat at, tincidunt tristique, libero.}
\label{fig}
\end{SCfigure}
\thisfloatsetup{%
floatwidth=\linewidth,
capposition=beside,
capbesideposition={bottom,right},
capbesidewidth=\marginparwidth,
}
\begin{figure}[h]
\raggedleft
\rule{3.5in}{0.5in}
\caption{Nulla malesuada porttitor diam. Donec felis erat, congue non, volut- pat at, tincidunt tristique, libero.}
\label{fig}
\end{figure}
\end{document}
答案1
输出
我借用了之前回答过的一道题的策略:将边距标题与浮动行和标题对齐,其中定义了新的长度。
\newlength{\figWidthForMarginCap}% \setlength{\figWidthForMarginCap}{\textwidth}% \addtolength{\figWidthForMarginCap}{-0.9em}% \addtolength{\figWidthForMarginCap}{\marginparsep}%
然后您可以按如下方式使用它:
\thisfloatsetup{% capposition=beside, capbesidewidth=\marginparwidth, capbesideposition={bottom,right}, floatwidth=\figWidthForMarginCap }
要设置标题,您可以执行以下操作
\captionsetup{ format=plain, margin=0em, justification=justified, }
代码
这是与您的设置兼容的完整 MWE。
\documentclass[twoside]{scrartcl}
\usepackage[a4paper,textwidth=300pt,marginparwidth=150pt,inner=1in,asymmetric]{geometry}
\usepackage{blindtext}
\usepackage{showframe}
\usepackage[format=plain]{caption}
\usepackage[english]{babel}
\usepackage{floatrow}
\usepackage[margincaption]{sidecap}
\newlength{\figWidthForMarginCap}%
\setlength{\figWidthForMarginCap}{\textwidth}%
\addtolength{\figWidthForMarginCap}{-0.9em}%
\addtolength{\figWidthForMarginCap}{\marginparsep}%
\begin{document}
\section{one}
\blindtext[1]
\begin{SCfigure}[][h]
\rule{3.5in}{0.5in}
\caption{Nulla malesuada porttitor diam. Donec felis erat, congue non, volut- pat at, tincidunt tristique, libero.}
\label{fig}
\end{SCfigure}
\thisfloatsetup{%
capposition=beside,
capbesidewidth=\marginparwidth,
capbesideposition={bottom,right},
floatwidth=\figWidthForMarginCap
}
\begin{figure}[h]
\captionsetup{
format=plain,
margin=0em,
justification=justified,
}
\rule{3.5in}{0.5in}
\caption{Nulla malesuada porttitor diam. Donec felis erat, congue non, volut- pat at, tincidunt tristique, libero.}
\label{fig}
\end{figure}
\end{document}