sphinx
sphinx copied to clipboard
Make complex setting values like latex_documents overridable
Is your feature request related to a problem? Please describe.
I want to override latex specific settings when invoking sphinx-build
to embed the generated latex in an external document. I do not want to edit the original conf.py
. First I tried a dedidcated conf.py
but ran into problems with relative paths so I decided to try the command line settings override.
The --define
documentation nicely explains how to override dict
and list
type values. However, latex_documents
is a list
of tuple
s which are not handled correctly.
Describe the solution you'd like I do not have a favourite solution.
My original problem of patching "conf.py" without file modification can also be solved by additional "appendable" python code.
Describe alternatives you've considered
- Make list entries addressable by
<name>.<index>
notation - Intoduce dedicated syntax for
latex_document
entry that does not use,
- Add a dedicated
--json-settings
argument which accepts a JSON object. This can be tricky to use because shells treat quotes differently.
Additional context Parsing of list type values (btw: There is no way to escape the ","): https://github.com/sphinx-doc/sphinx/blob/6471027d1936f0a0a38ef281862f0b29c53618f6/sphinx/config.py#L342
Interpretation of list elements as sequence in the latex builder: https://github.com/sphinx-doc/sphinx/blob/6471027d1936f0a0a38ef281862f0b29c53618f6/sphinx/builders/latex/init.py#L150