Issue 5082/1: Add Japanese texinfo.tex support files
Japanese PDF documents are not built
since texinfo.tex (until Texinfo 6.3)
and TeX engine (pdfTeX) do not support Japanese.
The new texinfo.tex (Texinfo 6.3+)
and the modern TeX engine (XeTeX and LuaTeX)
can handle Japanese PDF.
This commit adds Japanese texinfo.tex support files
from Texinfo SVN repository r7681.
They consist of the following two files.
texinfo-ja.tex
Japanese texinfo.tex loader
txi-ja.tex
Japanese translations and font definitions for texinfo.tex
David Nalesnik [Thu, 23 Feb 2017 15:57:44 +0000 (09:57 -0600)]
Issue 5084: Create Bracket class
Code involving brackets suffers from two confusing
organizational issues:
(1) Tuplet_bracket::make_bracket is used to create brackets
for a number of grobs: BassFigureBracket, HorizontalBracket,
OttavaBracket, PianoPedalBracket, VoltaBracket, along with
TupletBracket
(2) Methods belonging to Horizontal_bracket are used to draw
both horizonal brackets (HorizontalBracket) and vertical
brackets (BassFigureBracket)
To remedy this, a new Bracket class is created.
This new class contains the old Tuplet_bracket::make_bracket,
Horizontal_bracket::make_bracket, and
Horizontal_bracket::make_enclosing_bracket.
These methods have been renamed to clarify their purpose.
David Kastrup [Tue, 7 Mar 2017 17:47:30 +0000 (18:47 +0100)]
Issue 5087: Let extendersOverRests default to ##t
This was effectively unchangingly the case before issue 5053
fixed the respective code. However, the relation to actual
behavior seems so tenuous that it appears more prudent to
reenable this by default and only disable it again (if at all)
once the behavior corresponds better with name and documentation.
Knut Petersen [Sat, 4 Mar 2017 18:10:19 +0000 (18:10 +0000)]
LyricHyphen whiteout
Issue 5033
A proper outline whiteout
would be ideal, but it is
not currently implemented.
The current code fails
because you need a relatively
large whiteout area for a
small object.
A brute force fix is to increase
the number of iterations, but
the result would be a pdf with
a high percentage of whiteout code.
There is the case where a long
melisma produces a single hyphen
event that generates a lot of
hyphens that cross a number of
mensuration lines.
Rectangular or roundedbox whiteout
will produce gaps in all
mensuration lines crossed, even
if there is no collision.
David Kastrup [Tue, 28 Feb 2017 23:33:51 +0000 (00:33 +0100)]
Issue 5079/2: with-music-match: lists should match completely
Previously music properties that were matched to a list of wildcards
could contain fewer elements than the list they were matched to,
leading to an error when the wildcard variable was being assigned to.
Now the list lengths have to be matched exactly: a shorter pattern
than the actual list length of the matched property cannot match any
more.
Urs Liska [Tue, 21 Feb 2017 11:42:48 +0000 (12:42 +0100)]
5067: Add ly:version? and lexicographic-list-compare?
Squashed commits:
5067: Restrict ly:version? to number list
5067: version-list-compare? rename to lexicographic-list-compare?
5067: version-list-compare? typo
ly:version? and version-list-compare?
A lexicographic list comparison for arbitrary element types,
but with special treatment of trailing elements
(additional elements of the longer list are ignored, which is
typical for version comparisons such as LilyPond 2.19 is equal to 2.19.4)
Simplify lilypond-version operator and create new interface
Add lilypond version predicates/operators
This set of predicates/operators compares a given reference version
to the LilyPond version that is currently being executed.
This makes it possible to implement "version switches" to write
(library) code that is compatible over syntax changes.
David Kastrup [Tue, 16 Jun 2015 12:14:27 +0000 (14:14 +0200)]
Issue 1375/2: Create Translator_creator class
Previously, translators were created by copying from a context-less
instantiation of the translator containing its documentation. This had
several unpleasant consequences, the most problematic likely being the
inability to register Scheme engravers because their documentation would
be identical to all other Scheme engravers.
A new Translator_creator class takes over the task of creating
Translator instances when called with a context argument.
As a result of joining the mechanisms for Scheme engravers and C++
engravers, ly:translator-name and ly:translator-description are
reimplemented in a manner resembling object properties.
David Kastrup [Fri, 27 Jan 2017 12:27:03 +0000 (13:27 +0100)]
Issue 1375/1: Let Translator constructor take a Context argument
This is the first step towards constructing rather than cloning translators
when creating contexts. On its own, it does not make sense, but the change
is large and mostly mechanical, so keeping it separate from the actually
difficult parts makes sense.
David Nalesnik [Mon, 23 Jan 2017 18:02:27 +0000 (12:02 -0600)]
Let \alterBroken tweak ties again
When tweaking Tie grobs, the music function \alterBroken has
incorrectly rejected them since 2.17.6 as not being spanners.
The method of spanner recognition is at fault: 'span-direction
is not used by TieEvent.
Also, use eqv? instead of eq? for comparison of numbers.