[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Missing accented letters in header using lilypond-book

From: Mats Bengtsson
Subject: Re: Missing accented letters in header using lilypond-book
Date: Mon, 27 Feb 2006 11:01:41 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511

I guess the large attachments didn't make it to the mailing list.
I took a quick look at the postscript files, comparing to the corresponding
files when I run the example here.
A few details I noticed:

- In your title, you get an ordinary e, not the é (are you sure that you
 didn't replace the é by an e in your input?). The corresponding
 lines of the generated Postscript code are
gsave /e glyphshow grestore 2.04859842519685 0.0 rmoveto
 in your output file and
gsave /eacute glyphshow grestore 2.04859842519685 0.0 rmoveto
 in my output file.

- The é shows nicely in the lyrics.

- What really is missing in your test.ps is not the accented character, but
the "ij" in Fréijor. It seems that on your installation, the "ij" is typeset
 as a ligature (two characters combined into a single symbol):
gsave /ij glyphshow grestore 2.5180688976378 0.0 rmoveto
 whereas on my installation, they are typeset as two separate characters:
gsave /i glyphshow grestore 1.28037401574803 0.0 rmoveto
gsave /j glyphshow grestore 1.23769488188976 0.0 rmoveto

In the lyrics, the "i" and "j" are split into separate syllables, so that's
 probably why it works there.

- When looking at the header of your tests.ps, the embedded font definitions
 for CenturySchL-Bold and CenturySchL-Roma contain the corresponding
 definitions for the "ij" ligature:
/itilde 536 def /Ibreve 537 def /ibreve 538 def /IJ 539 def /ij 540 def
 which are missing in my output file. This information comes from the
 test.psfonts file, which in turn emanates from the file
 (or wherever your LilyPond installation resides).
 It turns out that on my installation, this file is generated based on
 the corresponding font file in my Ghostscript installation.
 I recompiled the corresponding part of my LilyPond installation,
 using the font files from /usr/share/fonts/default/Type1/ of my
 Redhat installation instead. Then the \ij glyph is defined in the font
 definition, but LilyPond still typesets them as two separate characters
 instead of using the ligature. My guess is that I might have an older
 version of pango or whatever font related library.

So, how does this help you? Probably not at all. I can't explain why the
\ij ligature doesn't display in your test.ps file, whereas it does show up
in your lily-927377941-1.eps (which doesn't contain any font definitions,
so the default fonts works in Ghostscript or whatever Postscript viewer you have).

Hopefully, I have at least provided a few hints that other who have more
competence in font handling and Postscript can use to provide a solution.


René Brandenburger wrote:

looking at the postscript files, the snippets look ok, but the resulting
test.ps is missing the charactaers as you can see int the attached files

On Thu, 2006-02-23 at 17:36 +0100, Mats Bengtsson wrote:
I tried your example here and it works without problems, using
LilyPond 2.7.35 on a Redhat Enterprise machine.
What I noticed when comparing the resulting PDF files, was that
yours listed CenturySchL-Roma as a Type1 font, whereas in mine
file it was listed as a TrueType font.

Did you try to look at the PostScript file?


René Brandenburger wrote:

On Wed, 2006-02-22 at 10:59 +0100, Mats Bengtsson wrote:

I don't agree fully with Erik's comment. What happens is that the embedded LilyPond code should be saved with UTF-8 encoding, whereas
the rest of the LaTeX code should be saved with latin1 encoding.
Since there probably isn't any text editor that supports saving a file with different character encodings for different sections of the same file, it's probably easiest to write the LilyPond code in separate files and use \lilypondfile{} in the LaTeX document. Then you can easily use different character encodings for the main document and the LilyPond code.
that's what i'm actually doing, i use UTF-8 encoding for the .ly
document and IS0-8859-15 for the .tex document.
following the input for lilypond-book and the output generated.


---- test.tex ---- file has iso8859-15 encoding

\documentclass[a4paper, 10pt, german]{report}

% Preamble


% check if LaTeX get's it right
'T as Freijor
'T as Fréijor




--- file T_as_Freijor.ly --- encoding UTF-8

\version "2.7.34"

\header {
title = "'T as Fréijor"
poet = "Michel Lentz"
composer = "Laurent Menager"

\include "italiano.ly"

verse= \lyricmode {
'T_as Fréi -- jor, an d'Vul -- len, déi sin rëm er -- waacht,
an d'Mar -- gréit -- chen huet séch e -- raus och ge -- maacht.
Si huet d'wäiss Koll -- rett -- chen rëm frësch u -- ge -- don,
sou -- bal si de Pou -- fank ge -- héi -- ert huet schlon,
sou -- bal si de Pou -- fank ge -- héi -- ert huet schlon.

staffVoice = \new Staff  {
\time 3/4
%%\set Staff.instrument="Voice"
\set Staff.midiInstrument="voice oohs"
\key sib \major
\tempo 4 = 100
\clef treble
\relative do' {
  \context Voice = "melodyVoi" {
    \partial 4        fa4 |
    sol4 fa4 sib4 |
    re4. do8 sib8( la8) |
    do4 sib4 sol4 |
    fa2 sib4 |
    la4 sol4 la4 |
    do4 sib4 re4 |
    do4. sib8 sol8( la8) |
    fa2 fa4 |
    sol4 sol4 la4 |
    sol4 fa4 fa4 |
    do'4. sib8 la4 |
    sib2 fa4 |
    sol4 sol4 la4 |
    sol4 fa4 fa4 |
    mib'4. re8 do4 |
    re2 sib4 |
    sib4 do4 re4 |
    fa4 mib4 sol,4 |
    la4. sib8 do4 |
    \bar "|."


\score {
\context Lyrics = "lmelodyVoi" \lyricmode { \lyricsto "melodyVoi"
\verse }
\layout  {

\unfoldRepeats \staffVoice
\midi {
\paper {


and the commands entered  to process it ...

lilypond-book --verbose --output=BookOut --psfonts test.tex
cd Bookout
latex test.tex
latex test.tex
dvips -h test.psfonts test.dvi
ps2pdf test.ps ..\test.pdf
cd ..


Quoting René Brandenburger <address@hidden>:

hmm, using te LaTeX code results in the printed out LaTeX code with ij
still missing :-(
I tried without the accented character (setting title = "'T as Freijor",
and still the ij is missing in the output as shown in the attached
image. Didn't try the UTF-8 version yet.

On Tue, 2006-02-21 at 12:14 +0100, Erik Sandberg wrote:
On Monday 20 February 2006 18.39, René Brandenburger wrote:

i have a little score with the word "Fréijor" in the header field.
Running it through lilipond just works fine, but running it through
lilypond-book and postprocessing with latex, dvips and ps2pdf, in the
resulting pdf the header shown is actually "Fré or" as shown in the
attached file. The lyrics are ok.
I think you need to either use the LaTeX code for é, "\`e", or use the UTF-8
capable version of latex (look for latex-ucs). Both suggestions are untested

        Mats Bengtsson
        Signal Processing
        Signals, Sensors and Systems
        Royal Institute of Technology
        SE-100 44  STOCKHOLM
        Phone: (+46) 8 790 8463                         
       Fax:   (+46) 8 790 7260
        Email: address@hidden
        WWW: http://www.s3.kth.se/~mabe

reply via email to

[Prev in Thread] Current Thread [Next in Thread]