Subclasses of tzinfo should follow the parent class and return offset either
as None (when unknown) or as timedelta.
Otherwise datetime.fromtimestamp() will raise a TypeError:
tzinfo.utcoffset() must return None or timedelta, not 'int'.
Functionality is now at bottom of sphinx.sty. For case of
``\sphinxstylesidebarsubtitle`` from b3d8961, there should probably be a
``\par`` before the ``\smallskip`` but current code is exact transfer of
original from latex.py to sphinx.sty.
Seems longer lines are more frequent since 1.4. I hard-wrapped at 80
chars the ones I committed which sometimes exceeded 100 chars. Other
long lines remain (one has 108 chars).
latex: let sphinx.sty use own \spx@ifundefined for some tests.
the first commit is more aggressive, I leave it in commit history in case it could be useful in future.
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.