mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
LaTeX: fix #10506 (make Pygments \PYG macro \protected)
This commit is contained in:
parent
5a24fec8de
commit
a7ef63a1fd
2
CHANGES
2
CHANGES
@ -19,6 +19,8 @@ Bugs fixed
|
||||
* #10594: HTML Theme: field term colons are doubled if using Docutils 0.18+
|
||||
* #10596: Build failure if Docutils version is 0.18 (not 0.18.1) due
|
||||
to missing ``Node.findall()``
|
||||
* #10506: LaTeX: build error when using ``:cpp:stuff`` syntax highlighting in
|
||||
figure caption
|
||||
|
||||
Testing
|
||||
--------
|
||||
|
@ -245,7 +245,7 @@ class LaTeXBuilder(Builder):
|
||||
with open(stylesheet, 'w', encoding="utf-8") as f:
|
||||
f.write('\\NeedsTeXFormat{LaTeX2e}[1995/12/01]\n')
|
||||
f.write('\\ProvidesPackage{sphinxhighlight}'
|
||||
'[2016/05/29 stylesheet for highlighting with pygments]\n')
|
||||
'[2022/06/30 stylesheet for highlighting with pygments]\n')
|
||||
f.write('% Its contents depend on pygments_style configuration variable.\n\n')
|
||||
f.write(highlighter.get_stylesheet())
|
||||
|
||||
|
@ -40,9 +40,14 @@ escape_hl_chars = {ord('\\'): '\\PYGZbs{}',
|
||||
ord('}'): '\\PYGZcb{}'}
|
||||
|
||||
# used if Pygments is available
|
||||
# use textcomp quote to get a true single quote
|
||||
_LATEX_ADD_STYLES = r'''
|
||||
% Sphinx additions
|
||||
% use textcomp quote to get a true single quote
|
||||
\renewcommand\PYGZsq{\textquotesingle}
|
||||
\makeatletter
|
||||
% use \protected to allow \PYG in \caption
|
||||
\protected\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+{\PYG@do{#2}}}
|
||||
\makeatother
|
||||
'''
|
||||
# fix extra space between lines when Pygments highlighting uses \fcolorbox
|
||||
# add a {..} to limit \fboxsep scope, and force \fcolorbox use correct value
|
||||
@ -52,7 +57,7 @@ _LATEX_ADD_STYLES_FIXPYG = r'''
|
||||
% fix for Pygments <= 2.7.4
|
||||
\let\spx@original@fcolorbox\fcolorbox
|
||||
\def\spx@fixpyg@fcolorbox{\fboxsep-\fboxrule\spx@original@fcolorbox}
|
||||
\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+%
|
||||
\protected\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+%
|
||||
{\let\fcolorbox\spx@fixpyg@fcolorbox\PYG@do{#2}}}
|
||||
\makeatother
|
||||
'''
|
||||
|
Loading…
Reference in New Issue
Block a user