我喜欢标题通常带有冒号,但标题为空时则不带冒号。这是程序包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,这个空格就会被计算在内。