I just wrote a long 200 pages documents with Latex, and realized a small issue. All my figure have the following format:




 \caption[Short Description]{Long Description}


The caption of this figure reads as "Figure 1.1 - Long Description".

And the short description is only shown in my list of figures. Is there a way to automatically add the short description at the beginning of the long description, in bold? Such that I don't need to edit all the figures manually?

So it would read as: "Figure 1.1 - Short Description. Long Description".

Or do I need to manually go through all my figures and edit them like this?:

 \caption[Short description.]{\textbf{Short description.} Long description}

I tried using this macro, but it doesn't work:

\renewcommand{\caption}[2]{\caption[#1]{\textbf{#1}. #2}}

Thank you in advance for your help!

  • Welcome to TeX.SX! Please help us help you and add a minimal working example (MWE) that illustrates your problem. Reproducing the problem and finding out what the issue is will be much easier when we see compilable code, starting with \documentclass{...} and ending with \end{document}. – user36296 Nov 27 '18 at 12:26
  • You never have to repeat something 150 times. When you are facing such a problem, you have to introduce macros. But to help us answer, please enlarge your MWE to make it fully compiliable : add a preamble with all the packages you are using to compile this peculiar small example. – sztruks Nov 28 '18 at 8:05
  • Thanks for the response. I didn't know about macros, I read about them and tried to use them but it doesn't work. I edited my question above with a MWE. – Julia Scivi Nov 29 '18 at 13:04
  • Ok I found the solution (see below). Not sure why I need to put empty brackets but it works out. One of the mistakes i made was the infinite nesting because I was reusing caption in the new caption command... Thanks again. – Julia Scivi Nov 29 '18 at 13:32

I found the solution, by reading a bit more in details about macros:

\renewcommand\caption[2][]{\oldcaption[#1]{\textbf{#1.} #2}}

I understood everything except why I need the empty brackets [].

I would had expected the command below to work, but it doesn't:

\renewcommand{\caption}[2]{\oldcaption[#1]{\textbf{#1.} #2}}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.