Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add support for pgf.documentclass rcParam#30063

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
MiniX16 wants to merge5 commits intomatplotlib:main
base:main
Choose a base branch
Loading
fromMiniX16:pgf-documentclass-rcparam

Conversation

MiniX16
Copy link
Contributor

@MiniX16MiniX16 commentedMay 18, 2025
edited
Loading

PR summary

This PR adds support for configuring the LaTeX\documentclass{...} used by the PGF backend via a newrcParam:pgf.documentclass.

Why is this change necessary?

Currently, the PGF backend uses a hardcoded LaTeX document class (article) when rendering PGF figures. This causes layout inconsistencies (such as in#29978) when the.pgf file is included in documents using other classes likeIEEEtran,acmart, etc.

What problem does it solve?

It allows users to specify the LaTeX document class used during PGF rendering via:

matplotlib.rcParams["pgf.documentclass"]="IEEEtran"

This provides a clean and documented alternative to the current workaround of modifying the internal_DOCUMENTCLASS variable inbackend_pgf showed in#29978.

What is the reasoning for this implementation?

The new rcParam follows Matplotlib’s configuration pattern and is registered viarcsetup.py. It defaults to'article', ensuring backward compatibility. The PGF backend retrieves the class usingmpl.rcParams.get(...).


Doubts:

  • I have not added the new parameter tomatplotlibrc because I'm unsure of its exact placement or formatting style (or even if Ia should add it). I'd appreciate feedback on whether it should be included there explicitly.
  • I'm also not sure whether this feature requires:
    • a documentation note (and where to place it), and/or
    • a dedicated test (beyond verifying it manually and observing that existing PGF tests pass).

Please advise on both.


PR checklist

@oscargus
Copy link
Member

Thanks! It would be nice with a bit of documentation and some test for this.

Docs:https://matplotlib.org/stable/users/explain/text/pgf.html#custom-preamble would be a place to mention it. And it can be worth having a release note that this is a new feature since more people can be interested in it.

Test: I quickly browsed the available tests for some inspiration, but I think the best way, if possible, is to add a test where the resulting PGF-file is checked to contain the correct documentclass.

@@ -958,6 +958,7 @@ def rc_params_from_file(fname, fail_on_error=False, use_default_template=True):
# Strip leading comment.
transform=lambda line: line[1:] if line.startswith("#") else line,
fail_on_error=True)
rcParamsDefault["pgf.documentclass"] = "article"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

_DOCUMENTCLASS = r"\documentclass{article}"
_DOCUMENTCLASS = (
rf"\documentclass{{{mpl.rcParams.get('pgf.documentclass', 'article')}}}"
)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I think the reason that this is a variable is that it should be possible to override the document class. (Although in an undocumented way.)

Since it is now possible to do that in a more regular way, it would make sense to rewrite the code to not use the variable any more. It is used in three locations though, so maybe one should simply try to factor out the pre-amble code in some way. Which may lead to that your current solution can stay...

@MiniX16MiniX16force-pushed thepgf-documentclass-rcparam branch frombaa646d to33e34c3CompareMay 22, 2025 20:24
@MiniX16MiniX16force-pushed thepgf-documentclass-rcparam branch from33e34c3 to6d48325CompareMay 23, 2025 13:21
@MiniX16
Copy link
ContributorAuthor

Hey,@oscargus, need help here. I've finished what I was supposed to do but:

  • Appveyor test doesn´t end because of a time out.
  • Codecov says the coveraged decreased by 0.05% but the lines I added are fully covered.

I don´t know how do I deal with these so if you could guide me would be great.

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@oscargusoscargusoscargus left review comments

At least 1 approving review is required to merge this pull request.

Assignees
No one assigned
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

[Bug]: PGF file produces incorrect whitespace in the legend when using certain documentclass.
2 participants
@MiniX16@oscargus

[8]ページ先頭

©2009-2025 Movatter.jp