refactor: latex: Initialize 'packages' on context

This commit is contained in:
Takeshi KOMIYA 2018-12-16 01:13:50 +09:00
parent a2ec232c71
commit f815b58df5
3 changed files with 14 additions and 14 deletions

View File

@ -187,6 +187,9 @@ class LaTeXBuilder(Builder):
self.context['polyglossia'] = ''
self.context['babel'] = r'\usepackage{babel}'
# Apply extension settings to context
self.context['packages'] = self.usepackages
# Apply user settings to context
self.context.update(self.config.latex_elements)
self.context['release'] = self.config.release

View File

@ -35,7 +35,15 @@
<%= sphinxsetup %>
<%= fvset %>
<%= geometry %>
<%= usepackages %>
<%- for name, option in packages %>
<%- if option %>
\usepackage[<%= option %>]{<%= name %>}
<%- else %>
\usepackage{<%= name %>}
<%- endif %>
<%- endfor %>
<%= hyperref %>
<%= contentsname %>
<%= numfig_format %>

View File

@ -150,7 +150,6 @@ DEFAULT_SETTINGS = {
'\\usepackage{hypcap}% it must be loaded after hyperref.\n'
'% Set up styles of URL: it should be placed after hyperref.\n'
'\\urlstyle{same}'),
'usepackages': '',
'numfig_format': '',
'contentsname': '',
'preamble': '',
@ -168,7 +167,7 @@ DEFAULT_SETTINGS = {
'figure_align': 'htbp',
'tocdepth': '',
'secnumdepth': '',
}
} # type: Dict[str, Any]
ADDITIONAL_SETTINGS = {
'pdflatex': {
@ -218,7 +217,7 @@ ADDITIONAL_SETTINGS = {
'fncychap': '',
'geometry': '\\usepackage[dvipdfm]{geometry}',
},
}
} # type: Dict[str, Dict[str, Any]]
EXTRA_RE = re.compile(r'^(.*\S)\s+\(([^()]*)\)\s*$')
@ -631,16 +630,6 @@ class LaTeXTranslator(SphinxTranslator):
self.elements['multilingual'] = '%s\n%s' % (self.elements['polyglossia'],
mainlanguage)
if getattr(self.builder, 'usepackages', None):
def declare_package(packagename, options=None):
# type:(str, str) -> str
if options:
return '\\usepackage[%s]{%s}' % (options, packagename)
else:
return '\\usepackage{%s}' % (packagename,)
usepackages = (declare_package(*p) for p in self.builder.usepackages)
self.elements['usepackages'] += "\n".join(usepackages)
minsecnumdepth = self.secnumdepth # 2 from legacy sphinx manual/howto
if self.document.get('tocdepth'):
# reduce tocdepth if `part` or `chapter` is used for top_sectionlevel