为图片标题添加居中来源

为图片标题添加居中来源

只是一个问题。我使用此代码在我的图形下创建了一个源:

\documentclass{article}

\newcommand*{\captionsource}[2]{%
  \caption[{#1}]{%
    #1%
    \\\hspace{\linewidth}%
    \textbf{Source:} #2%
  }%
}

\begin{document}
\begin{figure} [ht]
  \centering
  \captionsource{Caption}{ref, cite or free Text}
  \label{fig:gliederung}
\end{figure}
\end{document}

但是,我希望我的标题和来源居中。我不知道该怎么做。有人能帮我吗?非常感谢!!!

答案1

您可以使用标题具有以下选项的软件包。

\usepackage[justification=centering]{caption}

查看手动的了解更多设置。

编辑: 为了实现“标题”和“源”行的相同距离,您必须修改命令,\captionsource例如像这样

\newcommand*{\captionsource}[2]{%
    \caption[{#1}]{%
        #1%
        \\%     
        \textbf{Source:} #2%
    }%
}

答案2

虽然我强烈推荐标题包如果您希望进一步配置字幕,那么在这种情况下您实际上不需要它来实现所需的结果。

我认为,基本问题是\centering段落- 不是线。只在段落结束并排版时应用于段落。

但是,根据定义,包含标题的段落不会结束,因此\centering无效。此外\\,当文本未居中时,使用在许多情况下会导致坏框。通常,这只应在指定的上下文(例如tabulararray环境)内使用。在center环境中,它会转换为新段落,但\centering不会center,并且您不希望后者在此处添加额外的垂直间距。

但修复很简单,因为没有理由不能将段落分隔符包含在宏定义中。

\newcommand*{\captionsource}[2]{%
  \caption[{#1}]{#1}\par
  \textbf{Source:} #2\par}

将产生

居中标题和来源

如果你想在标题和来源之间留出一些额外的空间,最好的解决方案可能是添加一些跳过。 例如,

  \caption[{#1}]{#1}\smallskip\par

生产

更多的空间

\medskip或者\bigskip与相比将相应增加更大的空间\smallskip

完整代码:

\documentclass{article}
\newcommand*{\captionsource}[2]{%
  \caption[{#1}]{#1}\smallskip\par
  \textbf{Source:} #2\par}
\begin{document}
\begin{figure} [ht]
  \centering
  \captionsource{Caption}{ref, cite or free Text}
  \label{fig:gliederung}
\end{figure}
\end{document}

相关内容