mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge pull request #9949 from jfbu/9925_latex
LaTeX: prohibit also with xelatex linebreaks at dashes in literal text (not code-blocks) (fixes #9925)
This commit is contained in:
commit
e05741e8c7
2
CHANGES
2
CHANGES
@ -36,6 +36,8 @@ Bugs fixed
|
|||||||
* #9878: mathjax: MathJax configuration is placed after loading MathJax itself
|
* #9878: mathjax: MathJax configuration is placed after loading MathJax itself
|
||||||
* #9857: Generated RFC links use outdated base url
|
* #9857: Generated RFC links use outdated base url
|
||||||
* #9909: HTML, prevent line-wrapping in literal text.
|
* #9909: HTML, prevent line-wrapping in literal text.
|
||||||
|
* #9925: LaTeX: prohibit also with ``'xelatex'`` line splitting at dashes of
|
||||||
|
inline and parsed literals
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
--------
|
--------
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
%% LITERAL BLOCKS
|
%% LITERAL BLOCKS
|
||||||
%
|
%
|
||||||
% change this info string if making any custom modification
|
% change this info string if making any custom modification
|
||||||
\ProvidesFile{sphinxlatexliterals.sty}[2021/01/27 code-blocks and parsed literals]
|
\ProvidesFile{sphinxlatexliterals.sty}[2021/12/06 code-blocks and parsed literals]
|
||||||
|
|
||||||
% Provides support for this output mark-up from Sphinx latex writer:
|
% Provides support for this output mark-up from Sphinx latex writer:
|
||||||
%
|
%
|
||||||
@ -704,6 +704,10 @@
|
|||||||
% the \catcode13=5\relax (deactivate end of input lines) is left to callers
|
% the \catcode13=5\relax (deactivate end of input lines) is left to callers
|
||||||
\newcommand*{\sphinxunactivateextrasandspace}{\catcode32=10\relax
|
\newcommand*{\sphinxunactivateextrasandspace}{\catcode32=10\relax
|
||||||
\sphinxunactivateextras}%
|
\sphinxunactivateextras}%
|
||||||
|
% alltt uses a monospace font and linebreaks at dashes (which are escaped
|
||||||
|
% to \sphinxhyphen{} which expands to -\kern\z@) are inhibited with pdflatex.
|
||||||
|
% Not with xelatex (cf \defaultfontfeatures in latex writer), so:
|
||||||
|
\newcommand*{\sphinxhypheninparsedliteral}{\sphinxhyphennobreak}
|
||||||
% now for the modified alltt environment
|
% now for the modified alltt environment
|
||||||
\newenvironment{sphinxalltt}
|
\newenvironment{sphinxalltt}
|
||||||
{% at start of next line to workaround Emacs/AUCTeX issue with this file
|
{% at start of next line to workaround Emacs/AUCTeX issue with this file
|
||||||
@ -711,6 +715,7 @@
|
|||||||
\ifspx@opt@parsedliteralwraps
|
\ifspx@opt@parsedliteralwraps
|
||||||
\sbox\sphinxcontinuationbox {\spx@opt@verbatimcontinued}%
|
\sbox\sphinxcontinuationbox {\spx@opt@verbatimcontinued}%
|
||||||
\sbox\sphinxvisiblespacebox {\spx@opt@verbatimvisiblespace}%
|
\sbox\sphinxvisiblespacebox {\spx@opt@verbatimvisiblespace}%
|
||||||
|
\let\sphinxhyphen\sphinxhypheninparsedliteral
|
||||||
\sphinxbreaksattexescapedchars
|
\sphinxbreaksattexescapedchars
|
||||||
\sphinxbreaksviaactiveinparsedliteral
|
\sphinxbreaksviaactiveinparsedliteral
|
||||||
\sphinxbreaksatspaceinparsedliteral
|
\sphinxbreaksatspaceinparsedliteral
|
||||||
@ -757,10 +762,14 @@
|
|||||||
\protected\def\sphinxtextbackslashbreakafter
|
\protected\def\sphinxtextbackslashbreakafter
|
||||||
{\discretionary{\sphinx@textbackslash}{\sphinxafterbreak}{\sphinx@textbackslash}}
|
{\discretionary{\sphinx@textbackslash}{\sphinxafterbreak}{\sphinx@textbackslash}}
|
||||||
\let\sphinxtextbackslash\sphinxtextbackslashbreakafter
|
\let\sphinxtextbackslash\sphinxtextbackslashbreakafter
|
||||||
|
% - is escaped to \sphinxhyphen{} and this default ensures no linebreak
|
||||||
|
% behaviour (also with a non monospace font, or with xelatex)
|
||||||
|
\newcommand*{\sphinxhyphenininlineliteral}{\sphinxhyphennobreak}
|
||||||
% the macro must be protected if it ends up used in moving arguments,
|
% the macro must be protected if it ends up used in moving arguments,
|
||||||
% in 'alltt' \@noligs is done already, and the \scantokens must be avoided.
|
% in 'alltt' \@noligs is done already, and the \scantokens must be avoided.
|
||||||
\protected\def\sphinxupquote#1{{\def\@tempa{alltt}%
|
\protected\def\sphinxupquote#1{{\def\@tempa{alltt}%
|
||||||
\ifx\@tempa\@currenvir\else
|
\ifx\@tempa\@currenvir\else
|
||||||
|
\let\sphinxhyphen\sphinxhyphenininlineliteral
|
||||||
\ifspx@opt@inlineliteralwraps
|
\ifspx@opt@inlineliteralwraps
|
||||||
% break at . , ; ? ! /
|
% break at . , ; ? ! /
|
||||||
\sphinxbreaksviaactive
|
\sphinxbreaksviaactive
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
%% TEXT STYLING
|
%% TEXT STYLING
|
||||||
%
|
%
|
||||||
% change this info string if making any custom modification
|
% change this info string if making any custom modification
|
||||||
\ProvidesFile{sphinxlatexstyletext.sty}[2021/01/27 text styling]
|
\ProvidesFile{sphinxlatexstyletext.sty}[2021/12/06 text styling]
|
||||||
|
|
||||||
% Basically everything here consists of macros which are part of the latex
|
% Basically everything here consists of macros which are part of the latex
|
||||||
% markup produced by the Sphinx latex writer
|
% markup produced by the Sphinx latex writer
|
||||||
@ -72,12 +72,20 @@
|
|||||||
|
|
||||||
% Special characters
|
% Special characters
|
||||||
%
|
%
|
||||||
% This definition prevents en-dash and em-dash TeX ligatures.
|
% The \kern\z@ is to prevent en-dash and em-dash TeX ligatures.
|
||||||
|
% A linebreak can occur after the dash in regular text (this is
|
||||||
|
% normal behaviour of "-" in TeX, it is not related to \kern\z@).
|
||||||
%
|
%
|
||||||
% It inserts a potential breakpoint after the hyphen. This is to keep in sync
|
% Parsed-literals and inline literals also use the \sphinxhyphen
|
||||||
% with behavior in code-blocks, parsed and inline literals. For a breakpoint
|
% but linebreaks there are prevented due to monospace font family.
|
||||||
% before the hyphen use \leavevmode\kern\z@- (within \makeatletter/\makeatother)
|
% (xelatex needs a special addition, cf. sphinxlatexliterals.sty)
|
||||||
|
%
|
||||||
|
% Inside code-blocks, dashes are escaped via another macro, from
|
||||||
|
% Pygments latex output (search for \PYGZhy in sphinxlatexliterals.sty),
|
||||||
|
% and are configured to allow linebreaks despite the monospace font.
|
||||||
|
% (the #1 swallows the {} from \sphinxhyphen{} mark-up)
|
||||||
\protected\def\sphinxhyphen#1{-\kern\z@}
|
\protected\def\sphinxhyphen#1{-\kern\z@}
|
||||||
|
\protected\def\sphinxhyphennobreak#1{\mbox{-}}
|
||||||
% The {} from texescape mark-up is kept, else -- gives en-dash in PDF bookmark
|
% The {} from texescape mark-up is kept, else -- gives en-dash in PDF bookmark
|
||||||
\def\sphinxhyphenforbookmarks{-}
|
\def\sphinxhyphenforbookmarks{-}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user