我有一些 L 形 SCfigure。有没有办法优化图形标题的位置?下面的示例中,标题可以延伸的空间用星号标记。
以下是相关的 MWE
\documentclass{article}
\usepackage{tikz}
\usepackage{sidecap}
\usepackage{lipsum}
\begin{document}
\lipsum[1-3]
\begin{SCfigure}
\begin{tikzpicture}
\fill (0,0) -- ++(6,0) -- ++(0,-1) -- ++(-2,0) -- ++(0,-2) -| cycle;
\node at (5,-2) {$\star$};
\end{tikzpicture}
\caption{Some caption that is not placed optimally}
\end{SCfigure}
\end{document}
答案1
您可以使用floatrow
包代替sidecap
。我们必须在图形和其旁边的标题之间声明一个新的分隔符。由于这种分隔符在floatrow
语法上只是要在序言中定义的关键字,因此我引入了一个\mysep
长度,以便能够动态更改文档中间的分隔符。过程如下:
\documentclass{article}
\usepackage{tikz}
\usepackage{sidecap}
\usepackage[capbesideposition =outside]{floatrow}
\newlength\mysep
\setlength\mysep{0em}% default equivalent to capbesidesep=none
\DeclareFloatSeparators{mysep}%
{\hskip\mysep}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[!h]%
\thisfloatsetup{capbesidesep =mysep}%
\setlength\mysep{-6em}
\fcapside{%
\begin{tikzpicture}
\fill (0,0) -- ++(6,0) -- ++(0,-1) -- ++(-2,0) -- ++(0,-2) -| cycle;
\node at (5,-2) {$\star$};
\end{tikzpicture}}{\caption{Some caption that is not placed optimally}}
\end{figure}
\lipsum[2]
\begin{figure}[!h]%
\thisfloatsetup{capbesidesep =mysep}%
\fcapside{%
\begin{tikzpicture}
\fill (0,0) -- ++(6,0) -- ++(0,-1) -- ++(-2,0) -- ++(0,-2) -| cycle;
\node at (5,-2) {$\star$};
\end{tikzpicture}}{\caption{Some caption that is not placed optimally}}
\end{figure}
\end{document}