Masamichi Hosoda [Sun, 26 Jun 2016 03:15:33 +0000 (12:15 +0900)]
Issue 4876/5: Add direct parsing CFF for getting Postscript font name
FreeType 2.6 and 2.6.1 cannot get PS name from pure-CFF.
(FreeType 2.5.5 and earlier does not have this issue.
FreeType 2.6.2+ has this bug fixed.)
So we need direct parsing of the 'CFF' table, in this case.
Masamichi Hosoda [Sat, 25 Jun 2016 01:52:44 +0000 (10:52 +0900)]
Issue 4876/1: Add fontname replacing function for CFF (OTF/OTC) fonts
For CFF (OTF/OTC) fonts,
FT_Get_Postscript_Name ()
in FreeType 2.6+ gets the name in 'name' table.
However, we want the name in 'CFF' table instead of in 'name' table
because output postscript file is embedded only 'CFF' table of the font.
They are inconsistent for some OpenType/CFF Collection fonts (OTC).
This function can get the name in 'CFF' table.
TODO: Check conflicts between fonts which have same name in 'CFF' table
but different name in 'name' table.
Masamichi Hosoda [Sun, 19 Jun 2016 12:54:46 +0000 (21:54 +0900)]
Issue 4902/2: Improve `-dgs-load-fonts` option for TTF
`-dgs-load-fonts` loads fonts via Ghostscript.
However, if a TrueType font (TTF)
that does not have glyph names is loaded via Ghostscript,
all characters are shown in TOFU.
This commit lets `-dgs-load-fonts` loads those fonts
in a way that is not via Ghostscript.
Masamichi Hosoda [Sun, 19 Jun 2016 02:59:45 +0000 (11:59 +0900)]
Issue 4901: Improve `-dgs-load-fonts` option for OTC fonts
`-dgs-load-fonts` loads fonts via Ghostscript.
However, Ghostscript could not load
OpenType/CFF Collection (OTC) fonts by this way.
http://bugs.ghostscript.com/show_bug.cgi?id=696808
This commit lets `-dgs-load-fonts` loads the OTC fonts
in a way that is not via Ghostscript.
Masamichi Hosoda [Sat, 18 Jun 2016 13:49:44 +0000 (22:49 +0900)]
Issue 4900: Improve `-dgs-load-fonts` option for non-zero font-index
`-dgs-load-fonts` loads fonts via Ghostscript.
However, it could not load the font that has non-zero font-index.
This commit lets it loads the font
in a way that is not via Ghostscript.
David Kastrup [Sat, 25 Jun 2016 21:01:25 +0000 (23:01 +0200)]
Don't overload Slur_engraver::listen_slur
Having two overloaded variants of Slur_engraver::listen_slur leads to
problems with ADD_LISTENER template resolution at least in some versions
of g++. So the two-argument version is renamed to listen_note_slur.
David Kastrup [Mon, 20 Jun 2016 21:48:14 +0000 (23:48 +0200)]
Issue 4903/4: Fold Slur_proto_engraver into Slur_engraver
A symmetrical common base class to both Slur_engraver and
Phrasing_slur_engraver seems like an unnecessary complication. Instead,
Phrasing_slur_engraver can just be derived from Slur_engraver .
David Kastrup [Thu, 16 Jun 2016 17:52:01 +0000 (19:52 +0200)]
Issue 4897: Allow multiple \with per context creation
This allows using more than one \with context modification in
connection with \new, \context, \addlyrics, \drums, \lyrics, \chords,
\figures . While combining them inside of a single \with {...} is
possible, sometimes it may be inconvenient.
David Kastrup [Sat, 18 Jun 2016 08:13:10 +0000 (10:13 +0200)]
Issue 4899/4: Listeners should not be virtual
Gregorian_ligature_engraver::listen_pes_or_flexa and
Ligature_engraver::listen_pes_or_flexa were accidentally
declared virtual, but their registration already caters
for what amounts to virtual overrides in effect.
Thomas Morley [Tue, 14 Jun 2016 19:11:16 +0000 (21:11 +0200)]
Issue 4895 Give SystemStartSquare a default of 5.0 for collapse-height
This ensures same behaviour of SystemStartSquare while using
RemoveEmptyStaves as SystemStartBar, SystemStartBrace and
SystemStartBracket. The latter ones already have this default.
David Kastrup [Tue, 14 Jun 2016 18:41:13 +0000 (20:41 +0200)]
Issue 4894: Remove unescaped @funindex entries
With adjacent @funindex entries of which one differs from the other
only by the absence of a preceding backslash, the one without the
preceding backslash is removed. This is done by using the script:
Thomas Morley [Sun, 5 Jun 2016 15:19:57 +0000 (17:19 +0200)]
Issue 4883 Implement public definition of bar-line::draw-filled-box
bar-line::draw-filled-box calls the hereby renamed procedure
bar-line::calc-blot to determine the blot diameter.
It will be used in:
make-simple-bar-line
make-thick-bar-line
make-tick-bar-line
This simplifies user-customized bar-lines, which are build with
ly:round-filled-box.
No need to copy/paste the blot-calculating procedure anymore.
Masamichi Hosoda [Sun, 12 Jun 2016 10:55:51 +0000 (19:55 +0900)]
Issue 4866/2: Remove the settings that ignore some major OTC fonts
LilyPond becomes possible to handle
OpenType/CFF Collection (OTC) fonts.
So this commit removes the settings
that ignore some major OTC fonts.
OTC fonts can be used.
The comment for it complains about copy&paste code, but the
actual code for Beam_engraver::listen_beam has evolved since
then and the changes, while seeming appropriate for the
Grace_beam_engraver as well, have not been copied over.
Deleting the listener callback and instead utilizing
the one from the base class Beam_engraver seems like
the sanest course of action.
David Kastrup [Wed, 1 Jun 2016 12:43:38 +0000 (14:43 +0200)]
Issue 4789: Note_performer: articulate events
Previously, only per-note articulations rather than actual stream events
were interpreted in Midi. This change supports articulations on chords
or added via simultaneous music.
Masamichi Hosoda [Mon, 30 May 2016 10:03:21 +0000 (19:03 +0900)]
Issue 4868/2: Add limited embedding support for OTC fonts
This commit adds limited embedding support
for OpenType/CFF Collection (OTC) fonts
which have `*.otc' filename extension.
Essentially, the extension of OTC font files should be `*.otc'.
However, most of the OTC fonts have the extension `*.ttc'
for backward compatibility.
https://www.microsoft.com/typography/otspec/recom.htm
So this is limited support
because most of the OTC fonts cannot be used.
TODO: distinguish files which have extension `*.ttc'
whether TrueType Collection (TTC) fonts or OTC fonts.
Masamichi Hosoda [Sun, 29 May 2016 15:24:09 +0000 (00:24 +0900)]
Issue 4867: Ignore some major OpenType/CFF Collection (OTC) fonts
Current LilyPond cannot handle OpenType/CFF Collection (OTC) fonts
(NotoSansCJK.ttc and SourceHanSans.ttc etc.).
This commit is a workaround that ignores some major OTC fonts
for avoiding errors.
TODO: Add OTC fonts support and remove this settings
Recent changes have rendered them trivial. This does not review their
accessibility status: in general, they should be protected since they
can be reused by derived classes but aren't needed externally. However,
where they are indeed called from static member functions of derived
classes, the associated trampoline instantiation appears to require
public access. This might warrant some more investigation.