Figures are an important part of writing a technical document. Figures with captions are even better, because then you can refer to them from the text! Since I decided to write my dissertation in Word, I had to figure out how to do captioned figures. Word offers many ways to do this, and the most obvious ways don’t really work that well! Fortunately, I found a way that does work – using a somewhat-hidden feature called “frames.” For the record, my experience is with Word 2011 (on Mac).
Things That Don’t Work
Insert -> Photo followed by Insert -> Caption doesn’t work, because the figure and the caption are then completely separate entities. The caption is part of the regular body text and will freely move away from/around the figure in bad ways. Manually moving the figure to keep up with the caption is tedious and error-prone. There must be a better answer!
Text Boxes seem like the right idea: a box that you can put stuff in. It turns out you can put a figure inside a Text Box, and you can put a caption in the Text Box, too. The figure and the caption stay together as a unit, and the body text wraps around them in customizable ways. Perfect! Except for two huge problems: 1) the output of PDF images inserted into Text Boxes is rasterized at very low resolution and 2) captions inserted into Text Boxes do not appear in Word’s automatically-generated List of Figures. These are both highly annoying; 2) in particular is pretty ridiculous. Captions in Text Boxes are numbered correctly with respect to all other captions, but for some reason they don’t show up in the List of Figures. They just get skipped right over.
The Right Solution™
The right answer to putting captioned figures in a Word document is to use frames. I didn’t even know that frames existed in Word 2011, because they’re not available on any ribbon or menu. Thanks to sueebeee’s response to this question, I was able to discover that frames exist and that they are the exact solution I was looking for. I’ll just go ahead and quote Sue’s helpful post directly:
With frames, you can keep figures and their captions bound together, get full-quality PDF output, and the captions even show up in the List of Figures. What’s not to love? Why is this feature not available by default? I think frames might be somewhat deprecated these days (hence their obscurity in the UI) but gosh are they useful.
Do frames sound too good to be true? Well, they do have some shortcomings. Getting multiple paragraph styles into the same frame is tricky. Multiple character styles in the same frame is not an issue. But if you select some text in a frame and apply a new paragraph style to it the text will end up styled but outside the frame. Probably not what you wanted! To learn more about the intricacies and uses of paragraph versus character styles, check out this documentation.
I often want to show a snippet of code in a figure, with the code formatted one way and the caption another. In retrospect, I should have just used a character style for the code (captions are paragraph styles by default, and I don’t know if you can change that) but I had my code style setup as a paragraph style already and wanted to continue using it.
One “solution” I came up with is to write the code plus caption outside of a frame (as normal body text) and then select the code and the caption and click “Insert Frame”, which puts the selected text into a new frame with paragraph styles intact. You can also type out just the code part and then use “Insert Frame” to get a frame containing only the paragraph-styled code text. If you then do an “Insert -> Caption” the caption will get inserted inside the frame, and the caption will be styled with its appropriate paragraph style.
One thing I wanted to do but couldn’t get working was numbering code snippets by line. This definitely requires a paragraph style (or perhaps a list style, or both?) and I didn’t understand how to have independent numbering in each figure. I promise to figure this out for my next dissertation :-).