mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
refactor: latex: Initialize 'packages' on context
This commit is contained in:
@@ -187,6 +187,9 @@ class LaTeXBuilder(Builder):
|
|||||||
self.context['polyglossia'] = ''
|
self.context['polyglossia'] = ''
|
||||||
self.context['babel'] = r'\usepackage{babel}'
|
self.context['babel'] = r'\usepackage{babel}'
|
||||||
|
|
||||||
|
# Apply extension settings to context
|
||||||
|
self.context['packages'] = self.usepackages
|
||||||
|
|
||||||
# Apply user settings to context
|
# Apply user settings to context
|
||||||
self.context.update(self.config.latex_elements)
|
self.context.update(self.config.latex_elements)
|
||||||
self.context['release'] = self.config.release
|
self.context['release'] = self.config.release
|
||||||
|
|||||||
@@ -35,7 +35,15 @@
|
|||||||
<%= sphinxsetup %>
|
<%= sphinxsetup %>
|
||||||
<%= fvset %>
|
<%= fvset %>
|
||||||
<%= geometry %>
|
<%= geometry %>
|
||||||
<%= usepackages %>
|
|
||||||
|
<%- for name, option in packages %>
|
||||||
|
<%- if option %>
|
||||||
|
\usepackage[<%= option %>]{<%= name %>}
|
||||||
|
<%- else %>
|
||||||
|
\usepackage{<%= name %>}
|
||||||
|
<%- endif %>
|
||||||
|
<%- endfor %>
|
||||||
|
|
||||||
<%= hyperref %>
|
<%= hyperref %>
|
||||||
<%= contentsname %>
|
<%= contentsname %>
|
||||||
<%= numfig_format %>
|
<%= numfig_format %>
|
||||||
|
|||||||
@@ -150,7 +150,6 @@ DEFAULT_SETTINGS = {
|
|||||||
'\\usepackage{hypcap}% it must be loaded after hyperref.\n'
|
'\\usepackage{hypcap}% it must be loaded after hyperref.\n'
|
||||||
'% Set up styles of URL: it should be placed after hyperref.\n'
|
'% Set up styles of URL: it should be placed after hyperref.\n'
|
||||||
'\\urlstyle{same}'),
|
'\\urlstyle{same}'),
|
||||||
'usepackages': '',
|
|
||||||
'numfig_format': '',
|
'numfig_format': '',
|
||||||
'contentsname': '',
|
'contentsname': '',
|
||||||
'preamble': '',
|
'preamble': '',
|
||||||
@@ -168,7 +167,7 @@ DEFAULT_SETTINGS = {
|
|||||||
'figure_align': 'htbp',
|
'figure_align': 'htbp',
|
||||||
'tocdepth': '',
|
'tocdepth': '',
|
||||||
'secnumdepth': '',
|
'secnumdepth': '',
|
||||||
}
|
} # type: Dict[str, Any]
|
||||||
|
|
||||||
ADDITIONAL_SETTINGS = {
|
ADDITIONAL_SETTINGS = {
|
||||||
'pdflatex': {
|
'pdflatex': {
|
||||||
@@ -218,7 +217,7 @@ ADDITIONAL_SETTINGS = {
|
|||||||
'fncychap': '',
|
'fncychap': '',
|
||||||
'geometry': '\\usepackage[dvipdfm]{geometry}',
|
'geometry': '\\usepackage[dvipdfm]{geometry}',
|
||||||
},
|
},
|
||||||
}
|
} # type: Dict[str, Dict[str, Any]]
|
||||||
|
|
||||||
EXTRA_RE = re.compile(r'^(.*\S)\s+\(([^()]*)\)\s*$')
|
EXTRA_RE = re.compile(r'^(.*\S)\s+\(([^()]*)\)\s*$')
|
||||||
|
|
||||||
@@ -631,16 +630,6 @@ class LaTeXTranslator(SphinxTranslator):
|
|||||||
self.elements['multilingual'] = '%s\n%s' % (self.elements['polyglossia'],
|
self.elements['multilingual'] = '%s\n%s' % (self.elements['polyglossia'],
|
||||||
mainlanguage)
|
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
|
minsecnumdepth = self.secnumdepth # 2 from legacy sphinx manual/howto
|
||||||
if self.document.get('tocdepth'):
|
if self.document.get('tocdepth'):
|
||||||
# reduce tocdepth if `part` or `chapter` is used for top_sectionlevel
|
# reduce tocdepth if `part` or `chapter` is used for top_sectionlevel
|
||||||
|
|||||||
Reference in New Issue
Block a user