mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge pull request #3064 from tk0miya/2513_default_settings_for_each_engine
A better default settings for LuaLaTeX and XeLaTeX
This commit is contained in:
commit
78c0d6b46c
@ -25,6 +25,7 @@ addons:
|
|||||||
- texlive-fonts-recommended
|
- texlive-fonts-recommended
|
||||||
- texlive-fonts-extra
|
- texlive-fonts-extra
|
||||||
- texlive-xetex
|
- texlive-xetex
|
||||||
|
- lmodern
|
||||||
install:
|
install:
|
||||||
- pip install -U pip setuptools
|
- pip install -U pip setuptools
|
||||||
- pip install docutils==$DOCUTILS
|
- pip install docutils==$DOCUTILS
|
||||||
|
2
CHANGES
2
CHANGES
@ -7,6 +7,8 @@ Incompatible changes
|
|||||||
Features added
|
Features added
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
* #2513: A better default settings for XeLaTeX
|
||||||
|
|
||||||
Bugs fixed
|
Bugs fixed
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<%= cmappkg %>
|
<%= cmappkg %>
|
||||||
<%= fontenc %>
|
<%= fontenc %>
|
||||||
<%= amsmath %>
|
<%= amsmath %>
|
||||||
<%= babel %>
|
<%= multilingual %>
|
||||||
<%= fontpkg %>
|
<%= fontpkg %>
|
||||||
<%= fncychap %>
|
<%= fncychap %>
|
||||||
<%= longtable %>
|
<%= longtable %>
|
||||||
|
@ -96,7 +96,7 @@
|
|||||||
\newenvironment{sphinxthebibliography}[1]{%
|
\newenvironment{sphinxthebibliography}[1]{%
|
||||||
\phantomsection
|
\phantomsection
|
||||||
\begin{thebibliography}{1}%
|
\begin{thebibliography}{1}%
|
||||||
\addcontentsline{toc}{section}{\bibname}}{\end{thebibliography}}
|
\addcontentsline{toc}{section}{\ifdefined\refname\refname\else\ifdefined\bibname\bibname\fi\fi}}{\end{thebibliography}}
|
||||||
|
|
||||||
|
|
||||||
% Same for the indices.
|
% Same for the indices.
|
||||||
|
@ -45,6 +45,74 @@ DEFAULT_TEMPLATE = 'latex/content.tex_t'
|
|||||||
URI_SCHEMES = ('mailto:', 'http:', 'https:', 'ftp:')
|
URI_SCHEMES = ('mailto:', 'http:', 'https:', 'ftp:')
|
||||||
SECNUMDEPTH = 3
|
SECNUMDEPTH = 3
|
||||||
|
|
||||||
|
DEFAULT_SETTINGS = {
|
||||||
|
'papersize': 'letterpaper',
|
||||||
|
'pointsize': '10pt',
|
||||||
|
'pxunit': '49336sp',
|
||||||
|
'classoptions': '',
|
||||||
|
'extraclassoptions': '',
|
||||||
|
'passoptionstopackages': '',
|
||||||
|
'geometry': '\\usepackage[margin=1in,marginparwidth=0.5in]'
|
||||||
|
'{geometry}',
|
||||||
|
'inputenc': '',
|
||||||
|
'utf8extra': ('\\ifdefined\\DeclareUnicodeCharacter\n'
|
||||||
|
' \\DeclareUnicodeCharacter{00A0}{\\nobreakspace}\n'
|
||||||
|
'\\fi'),
|
||||||
|
'cmappkg': '\\usepackage{cmap}',
|
||||||
|
'fontenc': '\\usepackage[T1]{fontenc}',
|
||||||
|
'amsmath': '\\usepackage{amsmath,amssymb,amstext}',
|
||||||
|
'multilingual': '',
|
||||||
|
'babel': '\\usepackage{babel}',
|
||||||
|
'polyglossia': '',
|
||||||
|
'fontpkg': '\\usepackage{times}',
|
||||||
|
'fncychap': '\\usepackage[Bjarne]{fncychap}',
|
||||||
|
'longtable': '\\usepackage{longtable}',
|
||||||
|
'hyperref': ('% Include hyperref last.\n'
|
||||||
|
'\\usepackage[colorlinks,breaklinks,%\n'
|
||||||
|
' '
|
||||||
|
'linkcolor=InnerLinkColor,filecolor=OuterLinkColor,%\n'
|
||||||
|
' '
|
||||||
|
'menucolor=OuterLinkColor,urlcolor=OuterLinkColor,%\n'
|
||||||
|
' '
|
||||||
|
'citecolor=InnerLinkColor]{hyperref}\n'
|
||||||
|
'% Fix anchor placement for figures with captions.\n'
|
||||||
|
'\\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': '',
|
||||||
|
'title': '',
|
||||||
|
'date': '',
|
||||||
|
'release': '',
|
||||||
|
'author': '',
|
||||||
|
'logo': '',
|
||||||
|
'releasename': 'Release',
|
||||||
|
'makeindex': '\\makeindex',
|
||||||
|
'shorthandoff': '',
|
||||||
|
'maketitle': '\\maketitle',
|
||||||
|
'tableofcontents': '\\sphinxtableofcontents',
|
||||||
|
'postamble': '',
|
||||||
|
'printindex': '\\printindex',
|
||||||
|
'transition': '\n\n\\bigskip\\hrule{}\\bigskip\n\n',
|
||||||
|
'figure_align': 'htbp',
|
||||||
|
'tocdepth': '',
|
||||||
|
'secnumdepth': '',
|
||||||
|
'pageautorefname': '',
|
||||||
|
}
|
||||||
|
|
||||||
|
ADDITIONAL_SETTINGS = {
|
||||||
|
'pdflatex': {
|
||||||
|
'inputenc': '\\usepackage[utf8]{inputenc}',
|
||||||
|
},
|
||||||
|
'xelatex': {
|
||||||
|
'polyglossia': '\\usepackage{polyglossia}',
|
||||||
|
'fontenc': '\\usepackage{fontspec}',
|
||||||
|
'fontpkg': '',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class collected_footnote(nodes.footnote):
|
class collected_footnote(nodes.footnote):
|
||||||
"""Footnotes that are collected are assigned this class."""
|
"""Footnotes that are collected are assigned this class."""
|
||||||
@ -258,61 +326,6 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
|
|
||||||
ignore_missing_images = False
|
ignore_missing_images = False
|
||||||
|
|
||||||
default_elements = {
|
|
||||||
'papersize': 'letterpaper',
|
|
||||||
'pointsize': '10pt',
|
|
||||||
'pxunit': '49336sp',
|
|
||||||
'classoptions': '',
|
|
||||||
'extraclassoptions': '',
|
|
||||||
'passoptionstopackages': '',
|
|
||||||
'geometry': '\\usepackage[margin=1in,marginparwidth=0.5in]'
|
|
||||||
'{geometry}',
|
|
||||||
'inputenc': '',
|
|
||||||
'utf8extra': ('\\ifdefined\\DeclareUnicodeCharacter\n'
|
|
||||||
' \\DeclareUnicodeCharacter{00A0}{\\nobreakspace}\n'
|
|
||||||
'\\fi'),
|
|
||||||
'cmappkg': '\\usepackage{cmap}',
|
|
||||||
'fontenc': '\\usepackage[T1]{fontenc}',
|
|
||||||
'amsmath': '\\usepackage{amsmath,amssymb,amstext}',
|
|
||||||
'babel': '\\usepackage{babel}',
|
|
||||||
'fontpkg': '\\usepackage{times}',
|
|
||||||
'fncychap': '\\usepackage[Bjarne]{fncychap}',
|
|
||||||
'longtable': '\\usepackage{longtable}',
|
|
||||||
'hyperref': ('% Include hyperref last.\n'
|
|
||||||
'\\usepackage[colorlinks,breaklinks,%\n'
|
|
||||||
' '
|
|
||||||
'linkcolor=InnerLinkColor,filecolor=OuterLinkColor,%\n'
|
|
||||||
' '
|
|
||||||
'menucolor=OuterLinkColor,urlcolor=OuterLinkColor,%\n'
|
|
||||||
' '
|
|
||||||
'citecolor=InnerLinkColor]{hyperref}\n'
|
|
||||||
'% Fix anchor placement for figures with captions.\n'
|
|
||||||
'\\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': '',
|
|
||||||
'title': '',
|
|
||||||
'date': '',
|
|
||||||
'release': '',
|
|
||||||
'author': '',
|
|
||||||
'logo': '',
|
|
||||||
'releasename': 'Release',
|
|
||||||
'makeindex': '\\makeindex',
|
|
||||||
'shorthandoff': '',
|
|
||||||
'maketitle': '\\maketitle',
|
|
||||||
'tableofcontents': '\\sphinxtableofcontents',
|
|
||||||
'postamble': '',
|
|
||||||
'printindex': '\\printindex',
|
|
||||||
'transition': '\n\n\\bigskip\\hrule{}\\bigskip\n\n',
|
|
||||||
'figure_align': 'htbp',
|
|
||||||
'tocdepth': '',
|
|
||||||
'secnumdepth': '',
|
|
||||||
'pageautorefname': '',
|
|
||||||
}
|
|
||||||
|
|
||||||
# sphinx specific document classes
|
# sphinx specific document classes
|
||||||
docclasses = ('howto', 'manual')
|
docclasses = ('howto', 'manual')
|
||||||
|
|
||||||
@ -350,7 +363,8 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
self.top_sectionlevel = 1
|
self.top_sectionlevel = 1
|
||||||
|
|
||||||
# sort out some elements
|
# sort out some elements
|
||||||
self.elements = self.default_elements.copy()
|
self.elements = DEFAULT_SETTINGS.copy()
|
||||||
|
self.elements.update(ADDITIONAL_SETTINGS.get(builder.config.latex_engine, {}))
|
||||||
self.elements.update({
|
self.elements.update({
|
||||||
'wrapperclass': self.format_docclass(document.settings.docclass),
|
'wrapperclass': self.format_docclass(document.settings.docclass),
|
||||||
# if empty, the title is set to the first section title
|
# if empty, the title is set to the first section title
|
||||||
@ -371,8 +385,6 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
else:
|
else:
|
||||||
docclass = builder.config.latex_docclass.get('manual', 'report')
|
docclass = builder.config.latex_docclass.get('manual', 'report')
|
||||||
self.elements['docclass'] = docclass
|
self.elements['docclass'] = docclass
|
||||||
if builder.config.latex_engine == 'pdflatex':
|
|
||||||
self.elements['inputenc'] = '\\usepackage[utf8]{inputenc}'
|
|
||||||
if builder.config.today:
|
if builder.config.today:
|
||||||
self.elements['date'] = builder.config.today
|
self.elements['date'] = builder.config.today
|
||||||
else:
|
else:
|
||||||
@ -382,8 +394,13 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
# no need for \\noindent here, used in flushright
|
# no need for \\noindent here, used in flushright
|
||||||
self.elements['logo'] = '\\sphinxincludegraphics{%s}\\par' % \
|
self.elements['logo'] = '\\sphinxincludegraphics{%s}\\par' % \
|
||||||
path.basename(builder.config.latex_logo)
|
path.basename(builder.config.latex_logo)
|
||||||
# setup babel
|
# setup multilingual package
|
||||||
self.babel = ExtBabel(builder.config.language)
|
self.babel = ExtBabel(builder.config.language)
|
||||||
|
if self.elements['polyglossia']:
|
||||||
|
self.elements['babel'] = '' # disable babel forcely
|
||||||
|
self.elements['multilingual'] = self.elements['polyglossia']
|
||||||
|
elif self.elements['babel']:
|
||||||
|
self.elements['multilingual'] = self.elements['babel']
|
||||||
self.elements['classoptions'] += ',' + self.babel.get_language()
|
self.elements['classoptions'] += ',' + self.babel.get_language()
|
||||||
if builder.config.language:
|
if builder.config.language:
|
||||||
if not self.babel.is_supported_language():
|
if not self.babel.is_supported_language():
|
||||||
@ -402,6 +419,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
self.elements['classoptions'] = ',dvipdfmx'
|
self.elements['classoptions'] = ',dvipdfmx'
|
||||||
# disable babel which has not publishing quality in Japanese
|
# disable babel which has not publishing quality in Japanese
|
||||||
self.elements['babel'] = ''
|
self.elements['babel'] = ''
|
||||||
|
self.elements['multilingual'] = ''
|
||||||
# disable fncychap in Japanese documents
|
# disable fncychap in Japanese documents
|
||||||
self.elements['fncychap'] = ''
|
self.elements['fncychap'] = ''
|
||||||
if getattr(builder, 'usepackages', None):
|
if getattr(builder, 'usepackages', None):
|
||||||
|
Loading…
Reference in New Issue
Block a user