侧边栏图片标题位置

侧边栏图片标题位置

我有一些 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} 

在此处输入图片描述

相关内容