mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Make sure spaces have no stretchability in literal blocks (LaTeX)
For PDF via LaTeX PR #2304 (ac7d7b5) implemented wrapping of long code lines in literal blocks and PR #3340 (8c21abe) extended this to parsed literals. On this occasion the space was defined as a LaTeX macro, depending on the used font, and as it allowed some potential uses it was allowed for the space to obey the stretch and shrink as configured in the used font. The default is to render using the mono font (``\ttfamily``), hence a priori the stretchability and shrinkability are anyhow zero. Non-zero stretch/shrink was left as a theoretical possibility for special purposes; but although it may make sense to use a "variable mono" for non-Python code, it is certainly not adequate for things like verbatim grid tables... The problem is that XeTeX does not set the TeX font parameters to zero for OpenType fonts of Mono type, as is discussed there: http://tug.org/pipermail/xetex/2017-January/026956.html and in particular applies to the Latin Modern OpenType font, which is the default when loading fontspec package. Due to this problem there was a LaTeX kernel patch update late January 2017 to forcefully set the corresponding TeX font parameters to zero (indeed since 2017/01/01 release LaTeX uses OpenType fonts by default under XeTeX/LuaTeX engines.) But this is only a specific kludge for handling the Latin Modern Mono font. Other OpenType fonts of MonoSpace type may still show the XeTeX issue. To make things simple, this commit simply avoids ascribing to the space the font stretch or shrink as set in the TeX font parameters. This will alleviate problems with Monospace fonts with XeTeX and avoir user reports that their literal-blocks are all wrong. Existing documents are not affected. The possibility to use a variable space mono font had not been documented.
This commit is contained in:
@@ -445,9 +445,8 @@
|
||||
|
||||
% If the linebreak is at a space, the latter will be displayed as visible
|
||||
% space at end of first line, and a continuation symbol starts next line.
|
||||
% Stretch/shrink are however usually zero for typewriter font.
|
||||
\def\spx@verbatim@space {%
|
||||
\nobreak\hskip\z@ plus\fontdimen3\font minus\fontdimen4\font
|
||||
\nobreak\hskip\z@skip
|
||||
\discretionary{\copy\sphinxvisiblespacebox}{\sphinxafterbreak}
|
||||
{\kern\fontdimen2\font}%
|
||||
}%
|
||||
|
||||
Reference in New Issue
Block a user