diff options
author | jfbu <jfbu@free.fr> | 2016-11-03 17:25:00 +0100 |
---|---|---|
committer | jfbu <jfbu@free.fr> | 2016-11-04 22:16:30 +0100 |
commit | cf246d09c0a2d5b7924a691bf49dc54f4847406c (patch) | |
tree | 77f4d5a0d1b111daea17b6d34d70a22f1ea1ab09 | |
parent | 7325f8fe8c8b78486ebfab236eb69562605507dd (diff) | |
download | sphinx-git-cf246d09c0a2d5b7924a691bf49dc54f4847406c.tar.gz |
`latex_engine` template variable, check luatex85 only if lualatex engine
-rw-r--r-- | sphinx/templates/latex/content.tex_t | 9 | ||||
-rw-r--r-- | sphinx/texinputs/sphinxhowto.cls | 6 | ||||
-rw-r--r-- | sphinx/texinputs/sphinxmanual.cls | 6 | ||||
-rw-r--r-- | sphinx/writers/latex.py | 23 |
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', }, } |