summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfbu <jfbu@free.fr>2016-11-03 17:25:00 +0100
committerjfbu <jfbu@free.fr>2016-11-04 22:16:30 +0100
commitcf246d09c0a2d5b7924a691bf49dc54f4847406c (patch)
tree77f4d5a0d1b111daea17b6d34d70a22f1ea1ab09
parent7325f8fe8c8b78486ebfab236eb69562605507dd (diff)
downloadsphinx-git-cf246d09c0a2d5b7924a691bf49dc54f4847406c.tar.gz
`latex_engine` template variable, check luatex85 only if lualatex engine
-rw-r--r--sphinx/templates/latex/content.tex_t9
-rw-r--r--sphinx/texinputs/sphinxhowto.cls6
-rw-r--r--sphinx/texinputs/sphinxmanual.cls6
-rw-r--r--sphinx/writers/latex.py23
4 files changed, 25 insertions, 19 deletions
diff --git a/sphinx/templates/latex/content.tex_t b/sphinx/templates/latex/content.tex_t
index bb824fa3e..670a92f46 100644
--- a/sphinx/templates/latex/content.tex_t
+++ b/sphinx/templates/latex/content.tex_t
@@ -1,5 +1,14 @@
%% Generated by Sphinx.
\def\sphinxdocclass{<%= docclass %>}
+<% if latex_engine == 'lualatex' -%>
+\IfFileExists{luatex85.sty}
+ {\RequirePackage{luatex85}}
+ {\ifdefined\luatexversion\ifnum\luatexversion>84\relax
+ \PackageError{sphinx}
+ {** With this LuaTeX (\the\luatexversion),Sphinx requires luatex85.sty **}
+ {** Add the LaTeX package luatex85 to your TeX installation, and try again **}
+ \endinput\fi\fi}
+<% endif -%>
\documentclass[<%= papersize %>,<%= pointsize %><%= classoptions %>]{<%= wrapperclass %>}
\ifdefined\pdfpxdimen
\let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen
diff --git a/sphinx/texinputs/sphinxhowto.cls b/sphinx/texinputs/sphinxhowto.cls
index 586e2a0d1..3e34063ef 100644
--- a/sphinx/texinputs/sphinxhowto.cls
+++ b/sphinx/texinputs/sphinxhowto.cls
@@ -5,12 +5,6 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{sphinxhowto}[2016/10/12 v1.5 Document class (Sphinx HOWTO)]
-\ifx\directlua\undefined\else
-% if compiling with lualatex 0.85 or later load compatibility patch issued by
-% the LaTeX team for older packages relying on \pdf<name> named primitives.
- \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
-\fi
-
% 'oneside' option overriding the 'twoside' default
\newif\if@oneside
\DeclareOption{oneside}{\@onesidetrue}
diff --git a/sphinx/texinputs/sphinxmanual.cls b/sphinx/texinputs/sphinxmanual.cls
index a56a2bf20..3a48c6760 100644
--- a/sphinx/texinputs/sphinxmanual.cls
+++ b/sphinx/texinputs/sphinxmanual.cls
@@ -5,12 +5,6 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{sphinxmanual}[2016/10/12 v1.5 Document class (Sphinx manual)]
-\ifx\directlua\undefined\else
-% if compiling with lualatex 0.85 or later load compatibility patch issued by
-% the LaTeX team for older packages relying on \pdf<name> named primitives.
- \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
-\fi
-
% chapters starting at odd pages (overridden by 'openany' document option)
\PassOptionsToClass{openright}{\sphinxdocclass}
diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
index a384d7aef..90d7096cd 100644
--- a/sphinx/writers/latex.py
+++ b/sphinx/writers/latex.py
@@ -46,6 +46,7 @@ URI_SCHEMES = ('mailto:', 'http:', 'https:', 'ftp:')
SECNUMDEPTH = 3
DEFAULT_SETTINGS = {
+ 'latex_engine': 'pdflatex',
'papersize': 'letterpaper',
'pointsize': '10pt',
'pxunit': '49336sp',
@@ -56,12 +57,10 @@ DEFAULT_SETTINGS = {
'sphinxpackageoptions': '',
'sphinxsetup': '',
'passoptionstopackages': '',
- 'geometry': '\\usepackage[margin=1in,marginparwidth=0.5in]'
- '{geometry}',
+ 'geometry': ('\\usepackage[margin=1in,marginparwidth=0.5in]'
+ '{geometry}'),
'inputenc': '',
- 'utf8extra': ('\\ifdefined\\DeclareUnicodeCharacter\n'
- ' \\DeclareUnicodeCharacter{00A0}{\\leavevmode\\nobreak\\ }\n'
- '\\fi'),
+ 'utf8extra': '',
'cmappkg': '\\usepackage{cmap}',
'fontenc': '\\usepackage[T1]{fontenc}',
'amsmath': '\\usepackage{amsmath,amssymb,amstext}',
@@ -103,13 +102,23 @@ DEFAULT_SETTINGS = {
ADDITIONAL_SETTINGS = {
'pdflatex': {
'inputenc': '\\usepackage[utf8]{inputenc}',
+ 'utf8extra': '\\DeclareUnicodeCharacter{00A0}{\\nobreakspace}',
},
'xelatex': {
- 'utf8extra': ('\\catcode`^^^^00a0\\active\\protected\\def^^^^00a0'
- '{\\leavevmode\\nobreak\\ }'),
+ 'latex_engine': 'xelatex',
'polyglossia': '\\usepackage{polyglossia}',
'fontenc': '\\usepackage{fontspec}',
'fontpkg': '',
+ 'utf8extra': ('\\catcode`^^^^00a0\\active\\protected\\def^^^^00a0'
+ '{\\leavevmode\\nobreak\\ }'),
+ },
+ 'lualatex': {
+ 'latex_engine': 'lualatex',
+ 'utf8extra': ('\\catcode`^^^^00a0\\active\\protected\\def^^^^00a0'
+ '{\\leavevmode\\nobreak\\ }'),
+ },
+ 'platex': {
+ 'latex_engine': 'platex',
},
}