Browse Source

Merge pull request #135 from patacrep/lualatex

Replace pdflatex by lualatex
pull/138/head
Louis 9 years ago
parent
commit
6f7b3af6a4
  1. 20
      .travis.yml
  2. 16
      patacrep/build.py
  3. 5
      patacrep/data/latex/patacrep.sty
  4. 2
      patacrep/data/templates/layout.tex
  5. 2
      test/test_compilation/subdir.tex.control
  6. 2
      test/test_compilation/test_compilation.py
  7. 4
      test/test_compilation/unicode.sb
  8. 114
      test/test_compilation/unicode.tex.control
  9. 5
      test/test_compilation/unicode_datadir/songs/nonbreak.sgc
  10. 1
      tox.ini

20
.travis.yml

@ -8,14 +8,16 @@ install:
script: script:
- tox - tox
sudo: false sudo: false
addons: # addons:
apt: # apt:
packages: # packages:
- texlive-latex-base # - texlive-latex-base
- latex-xcolor # - latex-xcolor
- texlive-latex-extra # - texlive-latex-extra
- pgf # - texlive-luatex
- lmodern # - texlive-xetex
- lilypond # - pgf
# - lmodern
# - lilypond
notifications: notifications:
email: false email: false

16
patacrep/build.py

@ -136,10 +136,10 @@ class SongbookBuilder(object):
# if False, do not expect anything from stdin. # if False, do not expect anything from stdin.
interactive = False interactive = False
# if True, allow unsafe option, like adding the --shell-escape to pdflatex # if True, allow unsafe option, like adding the --shell-escape to lualatex
unsafe = False unsafe = False
# Options to add to pdflatex # Options to add to lualatex
_pdflatex_options = [] _lualatex_options = []
# Dictionary of functions that have been called by self._run_once(). Keys # Dictionary of functions that have been called by self._run_once(). Keys
# are function; values are return values of functions. # are function; values are return values of functions.
_called_functions = {} _called_functions = {}
@ -165,11 +165,11 @@ class SongbookBuilder(object):
def _set_latex(self): def _set_latex(self):
"""Set LaTeX options.""" """Set LaTeX options."""
if self.unsafe: if self.unsafe:
self._pdflatex_options.append("--shell-escape") self._lualatex_options.append("--shell-escape")
if not self.interactive: if not self.interactive:
self._pdflatex_options.append("-halt-on-error") self._lualatex_options.append("-halt-on-error")
for datadir in self.songbook.config["datadir"]: for datadir in self.songbook.config["datadir"]:
self._pdflatex_options.append( self._lualatex_options.append(
'--include-directory="{}"'.format(datadir) '--include-directory="{}"'.format(datadir)
) )
@ -180,7 +180,7 @@ class SongbookBuilder(object):
- steps: list of steps to perform to compile songbook. Available steps - steps: list of steps to perform to compile songbook. Available steps
are: are:
- tex: build .tex file from templates; - tex: build .tex file from templates;
- pdf: compile .tex using pdflatex; - pdf: compile .tex using lualatex;
- sbx: compile song and author indexes; - sbx: compile song and author indexes;
- clean: remove temporary files, - clean: remove temporary files,
- any string beginning with a sharp sign (#): it is interpreted as a - any string beginning with a sharp sign (#): it is interpreted as a
@ -219,7 +219,7 @@ class SongbookBuilder(object):
try: try:
process = Popen( process = Popen(
["pdflatex"] + self._pdflatex_options + [self.basename], ["lualatex"] + self._lualatex_options + [self.basename],
stdin=PIPE, stdin=PIPE,
stdout=PIPE, stdout=PIPE,
stderr=PIPE, stderr=PIPE,

5
patacrep/data/latex/patacrep.sty

@ -75,6 +75,11 @@
\pdfobjcompresslevel=0 \pdfobjcompresslevel=0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Unicode characters
\RequirePackage{fontspec}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Multilanguage management % Multilanguage management

2
patacrep/data/templates/layout.tex

@ -41,8 +41,6 @@
(* endblock *) (* endblock *)
(* block songbookpreambule *) (* block songbookpreambule *)
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern} \usepackage{lmodern}
(* endblock songbookpreambule *) (* endblock songbookpreambule *)

2
test/test_compilation/subdir.tex.control

@ -29,8 +29,6 @@ pictures,
guitar, guitar,
]{patacrep} ]{patacrep}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern} \usepackage{lmodern}

2
test/test_compilation/test_compilation.py

@ -48,6 +48,8 @@ class FileTest(unittest.TestCase, metaclass=dynamic.DynamicTest):
def _create_test(cls, base): def _create_test(cls, base):
"""Return a function testing that `base` compiles.""" """Return a function testing that `base` compiles."""
@unittest.skipIf('TRAVIS' in os.environ,
"Travis does not support lualatex compilation yet")
def test_compile(self): def test_compile(self):
"""Test that `base` is correctly compiled.""" """Test that `base` is correctly compiled."""
if base is None: if base is None:

4
test/test_compilation/unicode.sb

@ -0,0 +1,4 @@
{
"datadir": ["unicode_datadir"],
"lang": "en"
}

114
test/test_compilation/unicode.tex.control

@ -0,0 +1,114 @@
%% Automatically generated document.
%% You may edit this file but all changes will be overwritten.
%% If you want to change this document, have a look at
%% the templating system.
%%
%% Generated using Songbook <http://www.patacrep.com>
\makeatletter
\def\input@path{ %
{@TEST_FOLDER@/unicode_datadir/latex/} %
{@TEST_FOLDER@/latex/} %
{@DATA_FOLDER@/latex/} %
}
\makeatother
\documentclass[
]{article}
\usepackage[
chorded,
diagram,
pictures,
guitar,
]{patacrep}
\usepackage{lmodern}
\PassOptionsToPackage{english}{babel}
\usepackage[english]{babel}
\lang{english}
\usepackage{graphicx}
\graphicspath{ %
{@TEST_FOLDER@/unicode_datadir/} %
{@TEST_FOLDER@/} %
{@DATA_FOLDER@/} %
}
\makeatletter
\@ifpackageloaded{hyperref}{}{
\usepackage{url}
\newcommand{\phantomsection}{}
\newcommand{\hyperlink}[2]{#2}
\newcommand{\href}[2]{\expandafter\url\expandafter{#1}}
}
\makeatother
\usepackage{chords}
\title{Guitar songbook}
\author{The Patacrep Team}
\newindex{titleidx}{unicode_title}
\newauthorindex{authidx}{unicode_auth}
\notenamesout{A}{B}{C}{D}{E}{F}{G}
\begin{document}
\maketitle
\showindex{\songindexname}{titleidx}
\showindex{\authorindexname}{authidx}
% list of chords
\ifchorded
\ifdiagram
\phantomsection
\addcontentsline{toc}{section}{\chordlistname}
\chords
\fi
\fi
\phantomsection
\addcontentsline{toc}{section}{\songlistname}
\begin{songs}{titleidx,authidx}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% songs/./nonbreak.sgc
\selectlanguage{english}
\beginsong{Song with non breakable space}[
by={
Author with non breaking space chars },
]
\begin{verse}
Non break
\end{verse}
\endsong
\end{songs}
\end{document}

5
test/test_compilation/unicode_datadir/songs/nonbreak.sgc

@ -0,0 +1,5 @@
{title : Song with non breakable space}
{by: Author with non breaking space chars}
{lang: en}
Non break

1
tox.ini

@ -7,6 +7,7 @@ envlist = py34, lint
[testenv] [testenv]
commands = {envpython} setup.py test commands = {envpython} setup.py test
passenv = TRAVIS
deps = deps =
[testenv:lint] [testenv:lint]

Loading…
Cancel
Save