Skip to content

Make complex setting values like latex_documents overridable #12438

Open
@shumpohl

Description

@shumpohl

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 tuples 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 ","):

elif isinstance(default, list):

Interpretation of list elements as sequence in the latex builder:

preliminary_document_data = [list(x) for x in self.config.latex_documents]

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions