6

This should be a common problem for anyone involved in technical writing.

When you insert an image (or table etc.) caption in Word, you get this dialog. You enter your caption, in this case "A happy bicycle" (in yellow).

This might be fine for a happy bicycle, but I want to have captions that have one style for the "enumeration" (label and number) and one style for the description (caption text, as called by Word), as such:

alt text

I have tried searching for this but I haven't found anything yet...

Theodor
  • 2,040

4 Answers4

6

When you insert the caption, the entire caption block, both the "header" and the caption's text, are given a single style: Caption. Amending this style will allow you to change all your captions (depending on how you do it, this can be document specific or not), past and present.

To have the header and text appear differently you will need to manually (or maybe there's a macro about to help with this...?) add additional styling to either the header or caption.

What I've done before is to create a new style derived from ("based on") Caption, which has the single effect of adding bold (for example) then, because it is derived, future changes to Caption will cascade to the header as well. It's hardly perfect, and requires manually tweaking each caption as you create them to add the style to the "header", but it has worked for me in the past.

DMA57361
  • 18,793
2

There is a macro for that here,

but I had to change one line of the code to make it work on MS word 2019:

Sub CaptionBold()
Application.ScreenUpdating = False
Dim RngCap As Range
With ActiveDocument
  On Error Resume Next
  .Styles.Add "CaptionLabel", wdStyleTypeCharacter
  On Error GoTo 0
  .Styles("CaptionLabel").Font.Bold = True
  .Styles("CaptionLabel").Font.BoldBi = True
  .Styles("Caption").Font.Bold = False
  With .Range
    With .Find
      .ClearFormatting
      .Text = ""
      .Style = "Caption"
      .Replacement.Text = ""
      .Forward = True
      .Wrap = wdFindStop
      .Format = True
      .Execute
    End With
    Do While .Find.Found
      Set RngCap = .Paragraphs.Last.Range.Duplicate
      With RngCap
        .End = .Start + Len(Split(.Text, " ")(0)) + 1
        .MoveEndUntil " ", wdForward
        .Style = "CaptionLabel"
      End With
      .Collapse wdCollapseEnd
      .Find.Execute
    Loop
  End With
End With
Application.ScreenUpdating = True
End Sub
ArmanBM
  • 21
1

The Caption style is a paragraph style that affects the whole caption. Create a character style to apply the characteristics you want for the label & number (e.g., typeface, size, color, bold, italic). You'll have to manually apply the character style to each caption's label & number, but it's still faster than manually formatting.

0

As answered by @Guy Ivie, create a new character-Style.

It's kind of an "manual overwrite workaround".

Here is my example.

  1. Insert image
  2. Right click Insert Caption...
  3. (Optional: Change label, e.g., "Fig." instead of "Figure")
  4. Hit Enter and add the caption. It's automatically applying "Caption" (paragraph-Style)
  5. In Styles, create a new style (A+ in lower left corner of Styles Menu; You must "open" the Styles using small corner icon and showing all Styles in Options)
  6. (Info: The original Caption is not bold)
  7. Create a new character-Caption in bold face
  8. Hit the description (text of figure) and
  9. Hit your character-Caption, which will overwrite the text (makes it bold)
  10. Results could be something like "Fig. 1 Text"

Of course this isn't fault proof. If you forget about it, it's not automatically done. Also just marking text and adding bold face would work.