带有 KOMA 脚本的空标题,可能与 hyperref 一起使用

带有 KOMA 脚本的空标题,可能与 hyperref 一起使用

我喜欢标题通常带有冒号,但标题为空时则不带冒号。这是程序包caption自动执行的操作,因此

\documentclass{scrartcl}

\usepackage{caption}
\usepackage{hyperref}

\begin{document}
\begin{figure}
  \caption{Test}
  \caption{}
\end{figure}
\end{document}

产量

在此处输入图片描述

这正是我想要的。但我想使用不带caption包的 KOMA 字幕,然后我得到“图 1:测试/图 2:”,末尾有一个额外的冒号。我该如何修补它以使其符合我的要求?

我需要一个可以与 配合使用的解决方案hyperref。答案是这个先前的问题不涉及的地方hyperref不起作用,因此可能会使事情复杂化。

答案1

好吧,我认为这确实是排版和测量标题的更好方法,而不是查看标记:

 \documentclass{scrartcl}

\usepackage{hyperref}

\usepackage{xpatch}
\makeatletter
\patchcmd\@@makecaption{\begingroup}
{%
 \settowidth{\@tempdima}{#3}%
 \ifdim\@tempdima=0pt
  \def\captionformat{}%
 \fi
  \begingroup
}{}{\fail}

\begin{document}
\begin{figure}
  \caption{Test}
  \caption{}
  \caption{ }
  \caption{new}
\end{figure}
\end{document}

如果没有 hyperref,这也会删除带有空格的标题的冒号,但有了 hyperref,这个空格就会被计算在内。

在此处输入图片描述

相关内容