-
Notifications
You must be signed in to change notification settings - Fork 627
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minted compatibility patch #1737
Conversation
This reverts already merged pygments#1735 (after a commit from pygments#1736 to fix it) and applies the first envisioned method discussed in pygments#1734. The reason is that the pygments#1735-pygments#1736 method only partially repairs the minted compatibility. Minted queries from Pygments the stylesheet with a command prefix equal to the style name, which may contain (at least, so far) characters such as - and _, which are not normally allowed in LaTeX macros. So it modifies the meaning of - and _ before telling LaTeX to input the Pygments provided stylesheet. Restoring the normal meaning of - from inside the stylesheet must be carefully localized: at top and bottom of stylesheets some macros will use in their names the - and there the - must be the weird minted one, not the normal one. The pygments#1735-pygments#1736 method thus does fix compatibility with minted but *only* for those style names not using a -, but it creates another issue if used with e.g. style "paraiso-dark" which has a - character in its name. "De guerre lasse", I feel it is simpler to use the somewhat strange very localized hotfix of prefixing - by \string at the one spot where we need it to be its normal self. Hence this PR. Fix pygments#1734.
* Fix #1735 pull request * LaTeX: workaround to ensure compatibility with minted This reverts already merged #1735 (after a commit from #1736 to fix it) and applies the first envisioned method discussed in #1734. The reason is that the #1735-#1736 method only partially repairs the minted compatibility. Minted queries from Pygments the stylesheet with a command prefix equal to the style name, which may contain (at least, so far) characters such as - and _, which are not normally allowed in LaTeX macros. So it modifies the meaning of - and _ before telling LaTeX to input the Pygments provided stylesheet. Restoring the normal meaning of - from inside the stylesheet must be carefully localized: at top and bottom of stylesheets some macros will use in their names the - and there the - must be the weird minted one, not the normal one. The #1735-#1736 method thus does fix compatibility with minted but *only* for those style names not using a -, but it creates another issue if used with e.g. style "paraiso-dark" which has a - character in its name. "De guerre lasse", I feel it is simpler to use the somewhat strange very localized hotfix of prefixing - by \string at the one spot where we need it to be its normal self. Hence this PR. Fix #1734.
I checked the diff for pygments/formatters/latex.py with 2.8.0 on 2.8.x and master, and it correctly indicates replacement of So yes, this should fix the issue (also for styles such as I tested with this (which contains non-sense to try to trigger the
|
Thanks a lot for checking & the detailed explanation, much appreciated! |
LaTeX: workaround to ensure compatibility with minted
This reverts already merged #1735 (after a commit from #1736 to fix it)
and applies the first envisioned method discussed in #1734.
The reason is that the #1735-#1736 method only partially repairs the
minted compatibility. Minted queries from Pygments the stylesheet
with a command prefix equal to the style name, which may contain
(at least, so far) characters such as - and _, which are not normally
allowed in LaTeX macros. So it modifies the meaning of - and _ before
telling LaTeX to input the Pygments provided stylesheet. Restoring
the normal meaning of - from inside the stylesheet must be carefully
localized: at top and bottom of stylesheets some macros will use in
their names the - and there the - must be the weird minted one, not
the normal one.
The #1735-#1736 method thus does fix compatibility with minted but only
for those style names not using a -, but it creates another issue if
used with e.g. style "paraiso-dark" which has a - character in its name.
"De guerre lasse", I feel it is simpler to use the somewhat strange
very localized hotfix of prefixing - by \string at the one spot where
we need it to be its normal self. Hence this PR.
Fix #1734.
Relates: gpoore/minted#294
I was not familiar with minted LaTeX code. It has taken me some time to understand what is involved (and on this occasion I discovered that with LaTeX of spring 2021, loading a file results in a log trace in about 10000 (!!) macro calls to the LaTeX3 syntax in the minted context so it is nowadays extremely laborious to examine a LaTeX problem via
\tracingmacros1
.).The good thing in minted approach is that it uses weird command prefix only to recover the stylesheet. Regarding actual mark-up for highlighting code it uses
\PYG
default prefix. So the catcode issues are, fortunately, localized to only actually loading the stylesheet for a given stylename.Although minted will probably get an upgrade, many people will be for some time with its current version. So, despite this being entirely a design problem on minted side, it must be fixed on Pygments side. It is very ugly to add this
\string
like I do, but this works and solves the problem, as identified so far.