3

I like captions to normally have a colon, but not when the caption is empty. This is something that the package caption does automatically, so

\documentclass{scrartcl}

\usepackage{caption}
\usepackage{hyperref}

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

yields

enter image description here

which is what I want. But I want to use KOMA captions without the caption package, and then I get "Figure 1: Test / Figure 2:" with the extra colon at the end. How can I patch it to make it as I want?

I need a solution that works together with hyperref. An answer to this earlier question where hyperref isn't involved doesn't work with it, so it may complicate things.

1 Answer 1

4

Well I think it is really the better way to typeset and measure the caption instead of looking at the tokens:

 \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}

Without hyperref this will also remove the colons for the caption with a space in it, but with hyperref this space counts.

enter image description here

9
  • You still have the \usepackage{caption} line in there, which is what actually fixes it!
    – pst
    Commented Feb 3, 2019 at 12:11
  • Oh. Sorry. Will have to check again. Commented Feb 3, 2019 at 12:13
  • @pst I adapted the code. Commented Feb 3, 2019 at 12:24
  • Great! So now this is a better answer to my old question as well. For posterity I think it would be better if I remove that question and change this to be both without or with hyperref. What do you think?
    – pst
    Commented Feb 3, 2019 at 12:33
  • Are you OK with me doing as I suggested @Ulrike? (I don't want to go ahead otherwise since that question has an answer from you.)
    – pst
    Commented Feb 6, 2019 at 11:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .