The cause of the issue was a clash about ``\titleref`` macro being already
defined in memoir class context. To avoid similar problems, this makes
the text styling macros
``\strong``, ``\code``, ``\bfcode``, ``\email``, ``\tablecontinued``,
``\titleref``, ``\menuselection``, ``\accelerator``, ``\crossref``,
``\termref``, ``\optional``,
also available with ``\sphinx`` prefix, with a conf.py boolean option to
let sphinx.sty only define ``\sphinx``-prefixed macros. As default value
is False, backwards compatibility is maintained.
On this occasion, some internal non-public macros have been renamed with
prefix ``\spx@``. The command
find . -name '*.sty' -exec grep -l \\\\spx@ {} \;
has been executed in TeXLive 2015 and 2016 installations to check no
package defines macros starting with ``\spx@``.
Some internal macros having public names (because they are written by
latex.py into the body of the latex document) have been renamed to have
``\sphinx`` prefix. The macros in sphinx.sty starting with \py@, or \DU,
or \PYG have not been modified. Similarly ``\release``, ``\version``,
``\releasename``, etc... have not been renamed.
test_numref_on_bable_disabled and test_numref_with_language_el are mainly
used for testing babel (not for numref). But now we added enough testcases
for babel.
References: #2279.
This means that source code is highlighted as Python 3 (which is mostly
a superset of Python 2), and no parsing is attempted to distinguish
valid code.
Until now when one of the 3 latexes (pdflatex, xelatex, lualatex) does
not exist, the test was skipped. This commit changes the behavior to
"unless none of the 3 latexes exists, don't skip the test".
There are currently two locations in the testing code running the same
code to spawn pdflatex. This commit puts these code into one single
function to reduce redundancy.