plot directive cannot have caption

Adding a caption to a plot inserted with the plot directive from mpl’s sphinxextensions does not work for me, even though the documentation says it should be possible.

The relevant ReST snippet:

.. plot:: /home/oliver/git/lcp2/code/python/plot_scripts/tangent_circles.py
    :align: center
    :alt: 'Schematic drawing of the two solution methods'

    Schematic drawing showing the two possible solution methods discussed.

I’m getting the following traceback:

Sphinx version: 1.1.3

Python version: 2.7.3

Docutils version: 0.9.1 release

Jinja2 version: 2.6

Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/Sphinx-1.1.3-py2.7.egg/sphinx/cmdline.py”, line 189, in main

app.build(force_all, filenames)

File “/usr/local/lib/python2.7/dist-packages/Sphinx-1.1.3-py2.7.egg/sphinx/application.py”, line 204, in build
self.builder.build_update()
File “/usr/local/lib/python2.7/dist-packages/Sphinx-1.1.3-py2.7.egg/sphinx/builders/init.py”, line 196, in build_update

'out of date' % len(to_build))

File “/usr/local/lib/python2.7/dist-packages/Sphinx-1.1.3-py2.7.egg/sphinx/builders/init.py”, line 216, in build
purple, length):
File “/usr/local/lib/python2.7/dist-packages/Sphinx-1.1.3-py2.7.egg/sphinx/builders/init.py”, line 120, in status_iterator

for item in iterable:

File “/usr/local/lib/python2.7/dist-packages/Sphinx-1.1.3-py2.7.egg/sphinx/environment.py”, line 613, in update_generator
self.read_doc(docname, app=app)
File “/usr/local/lib/python2.7/dist-packages/Sphinx-1.1.3-py2.7.egg/sphinx/environment.py”, line 761, in read_doc

pub.publish()

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/core.py”, line 221, in publish
self.settings)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/readers/init.py”, line 69, in read

self.parse()

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/readers/init.py”, line 75, in parse
self.parser.parse(self.input, document)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/init.py”, line 162, in parse

self.statemachine.run(inputlines, document, inliner=self.inliner)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 174, in run
input_source=document[‘source’])

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/statemachine.py”, line 239, in run
context, state, transitions)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/statemachine.py”, line 460, in check_line

return method(match, context, next_state)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 2706, in underline
self.section(title, source, style, lineno - 1, messages)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 331, in section
self.new_subsection(title, lineno, messages)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 399, in new_subsection

node=section_node, match_titles=True)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 286, in nested_parse
node=node, match_titles=match_titles)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 199, in run
results = StateMachineWS.run(self, input_lines, input_offset)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/statemachine.py”, line 239, in run

context, state, transitions)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/statemachine.py”, line 460, in check_line
return method(match, context, next_state)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 2706, in underline
self.section(title, source, style, lineno - 1, messages)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 331, in section

self.new_subsection(title, lineno, messages)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 399, in new_subsection
node=section_node, match_titles=True)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 286, in nested_parse
node=node, match_titles=match_titles)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 199, in run

results = StateMachineWS.run(self, input_lines, input_offset)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/statemachine.py”, line 239, in run
context, state, transitions)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/statemachine.py”, line 460, in check_line
return method(match, context, next_state)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 2279, in explicit_markup

nodelist, blank_finish = self.explicit_construct(match)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 2291, in explicit_construct
return method(self, expmatch)

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 2034, in directive
directive_class, match, type_name, option_presets)
File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/states.py”, line 2083, in run_directive

result = directive_instance.run()

File “/usr/local/lib/python2.7/dist-packages/docutils-0.9.1-py2.7.egg/docutils/parsers/rst/init.py”, line 387, in run
self.state, self.state_machine)
File “/usr/lib/pymodules/python2.7/matplotlib/sphinxext/plot_directive.py”, line 210, in plot_directive

return run(arguments, content, options, state_machine, state, lineno)

File “/usr/lib/pymodules/python2.7/matplotlib/sphinxext/plot_directive.py”, line 598, in run
raise RuntimeError(“plot:: directive can’t have both args and content”)

RuntimeError: plot:: directive can’t have both args and content

I don’t see a reference in the documentation saying it’s a feature that was added in a newer version of mpl.

What am I doing wrong?

Merely adding a link here from another user on the sphinx-users google-group
<https://groups.google.com/forum/#!msg/sphinx-users/VRqbiO-nEd0/mydrZlqhy1sJ>
who came across the same problem 2 years ago. If the issue gets solved, I'll
know to update the other post as well.

···

--
View this message in context: http://matplotlib.1069221.n5.nabble.com/plot-directive-cannot-have-caption-tp43608p43627.html
Sent from the matplotlib - users mailing list archive at Nabble.com.