diff options
author | tk0miya <i.tkomiya@gmail.com> | 2014-09-28 21:56:20 +0900 |
---|---|---|
committer | tk0miya <i.tkomiya@gmail.com> | 2014-09-28 21:56:20 +0900 |
commit | 23335820f4ff980f6237b8d55ce7b38652dd2508 (patch) | |
tree | ad8ad174926f6b6e20c0ee14aff735e574128dc3 | |
parent | ae1f88bf42ff611d6d84a0688578ee9e050a73c8 (diff) | |
parent | 47ad9d8fa859fce189ac89c6edbb0e41d9de09ba (diff) | |
download | sphinx-23335820f4ff980f6237b8d55ce7b38652dd2508.tar.gz |
Merge with default
-rw-r--r-- | doc/extdev/appapi.rst | 8 | ||||
-rw-r--r-- | sphinx/application.py | 4 | ||||
-rw-r--r-- | sphinx/writers/latex.py | 7 | ||||
-rw-r--r-- | tests/test_build_latex.py | 2 |
4 files changed, 17 insertions, 4 deletions
diff --git a/doc/extdev/appapi.rst b/doc/extdev/appapi.rst index 35d226a5..d0d49286 100644 --- a/doc/extdev/appapi.rst +++ b/doc/extdev/appapi.rst @@ -288,9 +288,15 @@ package. .. versionadded:: 1.0 -.. method:: Sphinx.add_latex_package(packagename) +.. method:: Sphinx.add_latex_package(packagename, options=None) Add *packagename* to the list of packages that LaTeX source code will include. + If you provide *options*, it will be taken to `\usepackage` declaration. + + .. code-block:: python + + app.add_latex_package('mypackage') # => \usepackage{mypackage} + app.add_latex_package('mypackage', 'foo,bar') # => \usepackage[foo,bar]{mypackage} .. versionadded:: 1.3 diff --git a/sphinx/application.py b/sphinx/application.py index 37db1f00..630bff36 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -694,10 +694,10 @@ class Sphinx(object): StandaloneHTMLBuilder.css_files.append( posixpath.join('_static', filename)) - def add_latex_package(self, packagename): + def add_latex_package(self, packagename, options=None): self.debug('[app] adding latex package: %r', packagename) from sphinx.builders.latex import LaTeXBuilder - LaTeXBuilder.usepackages.append(packagename) + LaTeXBuilder.usepackages.append((packagename, options)) def add_lexer(self, alias, lexer): self.debug('[app] adding lexer: %r', (alias, lexer)) diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index 408c5fff..ea79761f 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -237,7 +237,12 @@ class LaTeXTranslator(nodes.NodeVisitor): else: self.elements['classoptions'] += ',english' if getattr(builder, 'usepackages', None): - usepackages = ('\\usepackage{%s}' % p for p in builder.usepackages) + def declare_package(packagename, options=None): + if options: + return '\\usepackage[%s]{%s}' % (options, packagename) + else: + return '\\usepackage{%s}' % (packagename,) + usepackages = (declare_package(*p) for p in builder.usepackages) self.elements['usepackages'] += "\n".join(usepackages) # allow the user to override them all self.elements.update(builder.config.latex_elements) diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py index ae347a8e..374b54a2 100644 --- a/tests/test_build_latex.py +++ b/tests/test_build_latex.py @@ -96,6 +96,8 @@ def test_latex(app, status, warning): @with_app(buildername='latex') def test_latex_add_latex_package(app, status, warning): app.add_latex_package('foo') + app.add_latex_package('bar', 'baz') app.builder.build_all() result = (app.outdir / 'SphinxTests.tex').text(encoding='utf8') assert '\\usepackage{foo}' in result + assert '\\usepackage[baz]{bar}' in result |