Refs: #6890
The comma character is not TeX-escaped because it is frequent in general
text and escaping it would make the LaTeX output larger for only dealing
with the problem of the LaTeX-ligature of ,, into a single character.
And one there is problem with the commas in options to Verbatim from
PygmentsBridge.
The hyphen character is escaped (not in ids and URIs!) to
\sphinxhyphen{} for both Unicode and non-Unicode engines. This is needed
to work around hyperref transforming -- and --- from section titles into
EN DASH resp. EM DASH in PDF bookmarks.
https://github.com/latex3/hyperref/issues/112
Note to expert LaTeX users: if Sphinx latex user with xelatex has
- turned off Smart Quotes for some reason,
- but does want TeX ligatures and thus overrode Sphinx
latex_elements['fontenc'] default (since #6888) to this effect,
then this should be added to LaTeX preamble:
\def\sphinxhyphen#1{-}% (\protected is now not needed)
\let\sphinxhyphenforbookmarks\sphinxhyphen
Using figures in an admonition produces a LaTeX error ("Not in outer
par mode."). This is because it generates a float in a float. This can
be trivially fixed by overwriting the alignment to H, which is also
what is most probably intended.
Since python3.5, subprocess.run() has been introduced. It works a
wrapper of Popen, and it looks much simple and better. This uses it
instead of Popen to make our code simple.
Only for figure and table, currently. Code-bloks have some FIXME code to
still be handled.
PDF output should remain unchanged so this is backwards compatible. The
`\nobreakspace` from LaTeX default `\fnum@figure` is removed by a normal
space. If figname is an abbreviation, the dot is followed by a `\@` to
avoid double space. At the location where the `\@` is inserted the `@`
has catcode non-letter so a space after it is not swallowed.
MEMO: when this is will be moved to sphinxmessages.sty on master branch
it is needed to use `\@{}` or to modify locally catcode of `@` to avoid
space swallowing..
Closes: #5889