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:
- tox
sudo: false
addons:
apt:
packages:
- texlive-latex-base
- latex-xcolor
- texlive-latex-extra
- pgf
- lmodern
- lilypond
# addons:
# apt:
# packages:
# - texlive-latex-base
# - latex-xcolor
# - texlive-latex-extra
# - texlive-luatex
# - texlive-xetex
# - pgf
# - lmodern
# - lilypond
notifications:
email: false

16
patacrep/build.py

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

5
patacrep/data/latex/patacrep.sty

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

2
patacrep/data/templates/layout.tex

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

2
test/test_compilation/subdir.tex.control

@ -29,8 +29,6 @@ pictures,
guitar,
]{patacrep}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\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):
"""Return a function testing that `base` compiles."""
@unittest.skipIf('TRAVIS' in os.environ,
"Travis does not support lualatex compilation yet")
def test_compile(self):
"""Test that `base` is correctly compiled."""
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]
commands = {envpython} setup.py test
passenv = TRAVIS
deps =
[testenv:lint]

Loading…
Cancel
Save