]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'Rmaster' into topic/master-translation
authorJohn Mandereau <john.mandereau@gmail.com>
Thu, 28 Jun 2007 12:11:13 +0000 (14:11 +0200)
committerJohn Mandereau <john.mandereau@gmail.com>
Thu, 28 Jun 2007 12:11:13 +0000 (14:11 +0200)
* Rmaster:
  Added information on \bar "||:" also in the section on Repeats.

23 files changed:
Documentation/de/index.html.in
Documentation/de/user/introduction.itely
Documentation/de/user/lilypond.tely
Documentation/de/user/macros.itexi
Documentation/es/index.html.in
Documentation/es/user/lilypond.tely
Documentation/fr/index.html.in
Documentation/fr/user/GNUmakefile
Documentation/fr/user/basic-notation.itely
Documentation/fr/user/converters.itely
Documentation/fr/user/introduction.itely
Documentation/fr/user/lilypond.tely
Documentation/fr/user/macros.itexi
Documentation/fr/user/tutorial.itely
Documentation/po/fr.po
Documentation/user/lilypond.tely
buildscripts/mass-link.py [new file with mode: 0644]
buildscripts/texi-gettext.py [new file with mode: 0644]
make/doclang-targets.make
po/es.po
po/nl.po
tex/texinfo.cnf [deleted file]
tex/texinfo.tex

index 72e2cf5267a5158cd755391b578d99b77cbd275c..12e9f775464ff4062d743f5c5f7080736ab765ae 100644 (file)
@@ -73,7 +73,7 @@
            <li>
 <a class="title" href="user/lilypond/index.html">Benutzerhandbuch</a>
 (auch auf <a class="title" href="user/lilypond-big-page.html">einer gro&szlig;en Seite</a>, ca. 4&thinsp;Mb, oder
-als <a class="title" href="user/lilypond.pdf">PDF</a>)
+als <a class="title" href="user/lilypond.de.pdf">PDF</a>)
 
      <br>(Alles &uuml;ber LilyPond)
      
index 2166ddd2cfee0112c0c9e71bec28aeab8a5e489b..be65ef5ffc3b087d7e7f0539400bfd9a327c6d32 100644 (file)
@@ -591,7 +591,7 @@ werden kann, haben wir per Definition nur noch den reinen Inhalt. Unser
 Format dient als die formale Definition eines Musiktextes.
 
 Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond, 
-darum soll sie einfach zu schreiben sein; z.B. bedeutet
+darum soll sie einfach zu schreiben sein; z. B. bedeutet
 
 @example
 c'4 d'8
index 9f18b005ff93648a560b2db315f8d044eb9b7ce6..f1736535e499a4d71330c7e0bcc946d2bcfb867c 100644 (file)
@@ -7,8 +7,14 @@
 @end ignore
 @setfilename lilypond.info
 @settitle GNU LilyPond
+
 @iftex
 @afourpaper
+@c don't replace quotes with directed quotes
+@tex
+\gdef\SETtxicodequoteundirected{Foo}
+\gdef\SETtxicodequotebacktick{Bla}
+@end tex
 @end iftex
 
 @c  Keep this here, since it pertains to the direntry below.
@@ -58,6 +64,9 @@ Dieses Dokument ist auch als
 @uref{source/Documentation/user/lilypond.pdf,PDF} verfügbar.
 @end ifhtml
 
+@documentlanguage de
+@documentencoding UTF-8
+
 
 @c  This produces the unified index
 @syncodeindex fn cp
@@ -66,9 +75,6 @@ Dieses Dokument ist auch als
 @syncodeindex tp cp
 @syncodeindex vr cp
 
-@documentlanguage de
-@documentencoding utf-8
-
 
 @finalout
 
index 6aa222e3139d91969e190e7a8ba135c1aabda32b..bf7aa7ac00e586c43321b6afb2ff1ed8e80ee2ae 100644 (file)
@@ -250,6 +250,7 @@ internals document, @internalsref{\NAME\}
 user manual, @internalsref{\NAME\}
 @end macro
 
+@ignore
 @tex
 % from german.sty
 \def\allowhyphens{%
@@ -298,15 +299,17 @@ user manual, @internalsref{\NAME\}
     ``%
     \kern.07em}}
 @end tex
+@end ignore
 
+@c FIXME
 @c to get decent quotes in `foo'
 @macro q{TEXT}
-@glq\TEXT\@grq
+`\TEXT\'
 @end macro
 
 @c to get decent quotes in ``foo''
 @macro qq{TEXT}
-@glqq\TEXT\@grqq
+``\TEXT\''
 @end macro
 
 @end iftex
index 7821d3eee43405a4e112b5cc4007a07d0748d87f..f42dffde4f436beb5119fb278166dcab499609d8 100644 (file)
@@ -73,7 +73,7 @@
            <li>
 <a class="title" href="user/lilypond/index.es.html">Manual del usuario</a> [parcialmente traducido]<br>
 (en <a class="title" href="user/lilypond-big-page.html">una sola página</a> [en inglés] ~ 4 Mb, <br>
-y en <a class="title" href="user/lilypond.pdf">PDF</a> [en inglés])
+y en <a class="title" href="user/lilypond.es.pdf">PDF</a>)
 
      <br>(todo sobre LilyPond)
      
index ebce43de894ad8c7f8138a1aa8c3ca1dbf3b85bf..3be3a51082973ed67fa5924db146df14be39be76 100644 (file)
@@ -7,8 +7,14 @@
 @end ignore
 @setfilename lilypond.info
 @settitle GNU LilyPond
+
 @iftex
 @afourpaper
+@c don't replace quotes with directed quotes
+@tex
+\gdef\SETtxicodequoteundirected{Foo}
+\gdef\SETtxicodequotebacktick{Bla}
+@end tex
 @end iftex
 
 @c  Keep this here, since it pertains to the direntry below.
@@ -59,6 +65,8 @@ Este documento también está disponible como
 @uref{source/Documentation/user/lilypond.pdf,PDF}.
 @end ifhtml
 
+@documentlanguage es
+@documentencoding UTF-8
 
 @c  This produces the unified index
 @syncodeindex fn cp
@@ -67,9 +75,6 @@ Este documento también está disponible como
 @syncodeindex tp cp
 @syncodeindex vr cp
 
-@documentlanguage es
-@documentencoding utf-8
-
 @finalout
 
 @titlepage
index 6c29d0dbaa70875e3810f65bba15049bb53ba233..f2811e144f6d8ea00b998b920f3fa37875ab87d5 100644 (file)
@@ -75,7 +75,7 @@
 (partiellement traduit,<br> aussi en <a class="title"
            href="user/lilypond-big-page.html">page unique
            en anglais</a> ~ 4 Mb,<br>
-ou <a class="title" href="user/lilypond.pdf">au format PDF en anglais</a>)
+ou <a class="title" href="user/lilypond.fr.pdf">au format PDF</a>)
 
      <br>&mdash; revue de détails
      
index df7535a6a8401171bde22f81d50bfc839ae7d512..e492cfeb9c1166f13a2e75d8c556133bb901fc49 100644 (file)
@@ -1,6 +1,5 @@
 ISOLANG = fr
 depth = ../../..
-#STEPMAKE_TEMPLATES=tex texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doclang
 include $(depth)/make/stepmake.make
 
index 24c39bdc7141432ab82c2b627f3963429af2ae27..ce2ba104b5b40231f7819520ecfb097a0d8f7c18 100644 (file)
@@ -50,12 +50,12 @@ De la manière de spécifier les hauteurs de notes.
 @node Normal pitches
 @subsection Normal pitches
 
-@cindex Pitch names
-@cindex pitches
+@cindex noms de note
+@cindex hauteurs
 
 La hauteur s'écrit --- à moins de préciser une autre langue --- avec la
 notation anglaise, en utilisant les lettres @code{a} à @code{g}.
-Une gamme ascendante de do majeur s'écrit avec
+Une gamme ascendante de do majeur s'écrit
 
 @lilypond[quote,fragment,verbatim,ragged-right]
 \clef bass
@@ -74,10 +74,9 @@ c1
 @funindex '
 @funindex ,
 
-L'octave précise peut être spécifiée sous forme d'une série
-d'apostrophes @samp{'} ou d'une série de virgules @samp{,}.  Chaque
-@samp{'} hausse la note d'une octave, chaque @samp{,} baisse la note
-d'une octave.
+L'octave peut être précisée sous forme d'une série d'apostrophes
+@samp{'} ou d'une série de virgules @samp{,}.  Chaque @samp{'} hausse la
+note d'une octave, chaque @samp{,} baisse la note d'une octave.
 
 @lilypond[quote,ragged-right,fragment,verbatim]
 \clef treble
@@ -86,16 +85,16 @@ c' c'' e' g d'' d' d c
 c, c,, e, g d,, d, d c
 @end lilypond
 
-Il existe une autre méthode pour déclarer à quelle octave se situe la
-note à graver ; cette méthode demande moins de spécifications
-d'octaves (@code{'} and @code{,}).  Voir @ref{Relative octaves}.
+Il existe une autre méthode pour préciser à quelle octave se situe la
+note à graver ; cette méthode demande moins d'indications d'octaves
+(@code{'} and @code{,}) --- voir @ref{Relative octaves}.
 
 
 @node Accidentals
 @subsection Accidentals
 
-@cindex note names, Dutch
-@cindex note names, default
+@cindex noms de note, hollandais
+@cindex noms de note, par défaut
 
 Dans la notation par défaut, un dièse est formé en ajoutant @code{-is}
 après le nom de note, un bémol en ajoutant @code{-es}.  Les
@@ -108,9 +107,9 @@ a2 aisis a aeses
 @end lilypond
 
 @noindent
-Ce sont les noms de note hollandais.  En hollandais, on élide
-@code{aes} pour écrire @code{as}, mais les deux formes sont acceptées.
- De manière similaire, on accepte autant @code{es} que @code{ees}.
+Ce sont les noms de note hollandais.  En hollandais, on élide @code{aes}
+pour écrire @code{as}, mais les deux formes sont acceptées.  De manière
+similaire, on accepte aussi bien @code{es} que @code{ees}.
 
 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 a2 as e es
@@ -126,9 +125,9 @@ a4 aes a2
 @end lilypond
 
 LilyPond interprète l'entrée @code{d e f} comme @qq{imprimer un ré
-naturel, un mi naturel et un fa naturel}, sans tenir compte de
-l'armure.  Pour plus d'information à propos de la distinction entre le
-contenu musical et sa représentation, voir @ref{Accidentals and key signatures}.
+naturel, un mi naturel et un fa naturel}, sans tenir compte de l'armure.
+Pour plus d'information à propos de la distinction entre le contenu
+musical et sa représentation, voir @ref{Accidentals and key signatures}.
 
 @lilypond[fragment,quote,ragged-right,verbatim,relative]
 \key d \major
@@ -160,22 +159,20 @@ Référence du programme : @internalsref{LedgerLineSpanner},
 @node Cautionary accidentals
 @subsection Cautionary accidentals
 
-@cindex accidental, reminder
-@cindex accidental, cautionary
-@cindex accidental, parenthesized
-@cindex reminder accidental
+@cindex altération, de précaution
+@cindex altération, entre parenthèses
+@cindex altération de précaution
 @funindex ?
-@cindex cautionary accidental
-@cindex parenthesized accidental
+@cindex altération entre parenthèses
 @funindex !
 
-Normalement, les altérations sont imprimées automatiquement, mais il
-se peut que vous vouliez les imprimer manuellement.  On peut forcer
+Normalement, les altérations sont imprimées automatiquement, mais il se
+peut que vous vouliez les imprimer manuellement.  On peut forcer
 l'impression d'une altération , dite @qq{de précaution}, en ajoutant un
-point d'exclamation @samp{!} après la hauteur de note.  Une
-altération entre parenthèses peut être obtenue en ajoutant un point
-d'interrogation @samp{?} après la hauteur de note.  Ces signes
-peuvent aussi être utilisés pour imprimer des bécarres.
+point d'exclamation @samp{!} après la hauteur de note.  Une altération
+entre parenthèses peut être obtenue en ajoutant un point d'interrogation
+@samp{?} après la hauteur de note.  Ces signes peuvent aussi être
+utilisés pour imprimer des bécarres.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
 cis cis cis! cis? c c? c! c
@@ -184,20 +181,19 @@ cis cis cis! cis? c c? c! c
 
 @seealso
 
-L'impression automatique des altérations peut être affinée de
-plusieurs manières.  Pour plus d'information, voir @ref{Automatic
-accidentals}.
+L'impression automatique des altérations peut être affinée de plusieurs
+manières.  Pour plus d'information, voir @ref{Automatic accidentals}.
 
 
 @node Micro tones
 @subsection Micro tones
 
-@cindex quarter tones
-@cindex semi-flats, semi-sharps
+@cindex quarts de ton
+@cindex demi-bémols, demi-dièses
 
-Les demi-bémols et les demi-dièses s'écrivent en ajoutant @code{-eh} et
-@code{-ih} respectivement ; ce qui suit est une séries de dos altérés
-en hauteurs croissantes.
+Les demi-bémols et les demi-dièses s'écrivent en ajoutant respectivement
+@code{-eh} et @code{-ih}. Voici une séries de dos altérés en hauteurs
+croissantes :
 
 @lilypond[verbatim,ragged-right,quote,relative=2,fragment]
 \set Staff.extraNatural = ##f
@@ -208,9 +204,9 @@ Les micro-intervalles sont aussi exportés dans le fichier MIDI.
 
 @refbugs
 
-Il n'y a pas de standards universellement acceptés pour noter le bémol
-et demi (trois quarts de ton en-dessous), donc le symbole de LilyPond
-n'est conforme à aucun standard.
+Il n'y a pas de standard universellement accepté pour noter le bémol et
+demi (qui abaisse la hauteur trois quarts de ton), donc le symbole de
+LilyPond n'est conforme à aucun standard.
 
 
 @node Note names in other languages
@@ -219,11 +215,11 @@ n'est conforme à aucun standard.
 Vous disposez de jeux prédéfinis de noms de notes pour plusieurs autres
 langues.  Pour les utiliser, incluez le fichier d'initialisation
 spécifique à la langue voulue.  Par exemple, pour les langues romanes,
-ajoutez @code{\include "italiano.ly"} au début du fichier d'entrée.
-Les fichiers de langues disponibles ainsi que les noms de notes
-utilisés sont les suivants:
+ajoutez @code{\include "italiano.ly"} au début du fichier source.  Les
+fichiers de langues disponibles ainsi que les noms de notes utilisés
+sont les suivants :
 
-@cindex note names, other languages)
+@cindex noms de note, autres langues
 @example
                        Noms de note              dièse       bémol      double          double
                                                                         dièse           bémol
@@ -251,7 +247,7 @@ Certaines musiques utilisent des microtonalités, pour lesquelles les
 altérations sont des fractions de dièse ou bémol @qq{normaux}.  Le
 tableau suivant répertorie les noms de note en quart de ton, tels que
 définis dans plusieurs fichiers linguistiques. Les préfixes @q{semi-}
-et @q{sesqui-} correspondent au @q{demi-} et @q{trois quarts }.  
+et @q{sesqui-} correspondent au @q{demi-} et @q{trois demis}.  
 À noter qu'aucune définition n'existe à ce jour pour le norvégien, le
 suédois, le catalan et l'espagnol.
 
@@ -280,8 +276,8 @@ espanol.ly     do  re  mi  fa  sol la  sib si
 @node Relative octaves
 @subsection Relative octaves
 
-@cindex Relative
-@cindex Relative octave specification
+@cindex relatif
+@cindex indication d'octave relative
 @funindex \relative
 
 On spécifie les octaves en ajoutant @code{'} et @code{,} aux noms de
index 3e1fc3d99fe62fd9dd92c419266dc71d75354467..d27280a7f11361ea78c1e2975ebfafe4625a8e7c 100644 (file)
@@ -77,8 +77,8 @@ midi2ly [@var{option}]@dots{} @var{midi-file}
 @end example
 
 Notez bien que, par @qq{ligne de commande}, nous parlons de la ligne de
-commande du système. Pour plus de détails, voir @ref{Converting from
-other formats}.
+commande du système. Pour plus de détails, voir
+@ref{Converting from other formats}.
 
 @command{midi2ly} accepte les options suivantes :
 
@@ -149,8 +149,8 @@ midi2ly [@var{option}]@dots{} @var{midi-file}
 @end example
 
 Notez bien que, par @qq{ligne de commande}, nous parlons de la ligne de
-commande du système. Pour plus de détails, voir @ref{Converting from
-other formats}.
+commande du système. Pour plus de détails, voir
+@ref{Converting from other formats}.
 
 @command{midi2ly} accepte les options suivantes :
 
@@ -183,8 +183,8 @@ et les écrit dans un fichier @var{.ly}.  Il se lance en ligne de
 commande.
 
 Notez bien que, par @qq{ligne de commande}, nous parlons de la ligne de
-commande du système. Pour plus de détails, voir @ref{Converting from
-other formats}.
+commande du système. Pour plus de détails, voir
+@ref{Converting from other formats}.
 
 @command{musicxml2ly} accepte les options suivantes :
 
index d7c4dc53ba132952cabd0f306bf108ee1b668234..6014e21262e9463cddddbebc58c20c824385a74d 100644 (file)
@@ -183,13 +183,13 @@ le refléter.  Malheureusement, notre oeil nous trompe quelque peu ; il
 ne se contente pas de remarquer la distance entre les têtes de notes,
 il prend en compte également la distance entre les hampes
 consécutives.  Ainsi, par compensation, les notes avec une combinaison
-« hampe vers le haut »/@/« hampe vers le bas » doivent être éloignées
-l'une de l'autre, et les notes avec une combinaison « hampe vers le
-bas »/@/« hampe vers le haut » rapprochées, le tout dépendant de la
+@qq{hampe vers le haut}/@/@qq{hampe vers le bas} doivent être éloignées
+l'une de l'autre, et les notes avec une combinaison @qq{hampe vers le
+bas}/@/@qq{hampe vers le haut} rapprochées, le tout dépendant de la
 position verticale des notes.  Les deux premières mesures sont
 imprimées avec cette correction, les deux suivantes sans.  Les notes
-dans les deux dernières mesures forment des blocs de notes « hampe
-vers le bas »/@/« hampe vers le haut ».
+dans les deux dernières mesures forment des blocs de notes @qq{hampe
+vers le bas}/@/@qq{hampe vers le haut}.
 
 @cindex typography
 
@@ -239,7 +239,7 @@ aimons tant lire et jouer.
 Comment pouvons-nous implémenter la typographie ? Si les artisans ont
 besoin de plus de dix ans pour devenir de vrais maîtres, comment nous,
 simples programmeurs, pourrions-nous jamais écrire un programme pour
-faire leur travail?
+faire leur travail ?
 
 La réponse est : nous ne le pouvons pas.  La typographie se base sur
 le jugement visuel humain, donc les humains ne peuvent pas être
index 1d3d3e5385d9aabfd8045d61f5d5416b8816a402..4eddcbc7581e0a35602706f31d05af3337ec0cee 100644 (file)
@@ -8,8 +8,14 @@
 
 @setfilename lilypond.info
 @settitle GNU LilyPond
+
 @iftex
 @afourpaper
+@c don't replace quotes with directed quotes
+@tex
+\gdef\SETtxicodequoteundirected{Foo}
+\gdef\SETtxicodequotebacktick{Bla}
+@end tex
 @end iftex
 
 @c don't remove this comment.
 @end ignore
 
 @documentlanguage fr
+@frenchspacing on
 @documentencoding UTF-8
 
 @syncodeindex fn cp
-@syncodeindex ky cp
-@syncodeindex pg cp
-@syncodeindex tp cp
-@syncodeindex vr cp
+@c @syncodeindex ky cp
+@c @syncodeindex pg cp
+@c @syncodeindex tp cp
+@c @syncodeindex vr cp
 
 @finalout
 
index ab384d629e7106d01469e92ef452e9a5376f1726..aefd73f6bdb1c3d51ea30f395add12785ba83622 100644 (file)
@@ -257,7 +257,7 @@ user manual, @internalsref{\NAME\}
 
 @c to get decent French quotes in ``foo''
 @macro qq{TEXT}
-<< \TEXT\ >>
+``\TEXT\''
 @end macro
 
 @end iftex
index bdb50a5034267e76f0280df1722e12e47e6ff139..9ede4010530f023aa7fee1df4cfcc1976c2cb1a1 100644 (file)
@@ -1066,7 +1066,7 @@ Ces éléments @code{Staff} sont ensuite combinés en parallèle avec
 @end lilypond
 
 
-La commande @code{\new} introduit un « contexte de notation ».  Un
+La commande @code{\new} introduit un @qq{contexte de notation}.  Un
 contexte de notation est un environnement dans lequel les événements
 musicaux --- comme les notes ou les commandes @code{\clef} --- sont
 interprétés.   Pour des pièces simples, ces contextes sont créés
@@ -1081,7 +1081,7 @@ notation de la mélodie, alors que @code{Lyrics} gère les paroles et
 
 En termes de syntaxe, faire précéder une expression musicale de
 @code{\new} crée une plus grosse expression musicale.  En reprenant la
-comparaison, cela ressemble au signe « moins » en mathématiques.  La
+comparaison, cela ressemble au signe @qq{moins} en mathématiques.  La
 formule @math{(4+5)} est une expression, donc @math{-(4+5)} est une
 plus grosse expression.
 
@@ -1264,7 +1264,7 @@ chaque syllable par un espace :
 @cindex melisma
 @cindex extender line
 Cette mélodie se termine sur un @rglos{melisma}, c'est-à-dire qu'une
-seule syllable (« free ») correspond à plus d'une note.  Ceci est
+seule syllable (@qq{free}) correspond à plus d'une note.  Ceci est
 indiqué avec une @emph{ligne d'extension}.  Elle est entrée avec deux
 caractères souligné (@code{_}), c'est-à-dire :
 
index 45d87bed300a058f3e68d5486629b782c31bdcfc..96c9c1ce4aefda24652e23e2e84afd9f1dfb4a90 100644 (file)
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2007-06-17 23:05+0200\n"
-"PO-Revision-Date: 2007-03-27 23:06+0200\n"
+"PO-Revision-Date: 2007-06-23 13:35+0200\n"
 "Last-Translator: John Mandereau <john.mandereau@free.fr>\n"
 "Language-Team: Français <lilypond-user-fr@gnu.org>\n"
 "MIME-Version: 1.0\n"
@@ -53,7 +53,7 @@ msgstr "branche de développement"
 msgid ""
 "This section has not been translated yet; please refer to the manual in "
 "English."
-msgstr ""
+msgstr "Cette section n'est pas encore traduite ; reportez-vous à l'édition de ce manuel en anglais."
 
 #. @node in ../../../Documentation/user/lilypond.tely
 msgid "Top"
@@ -767,7 +767,7 @@ msgstr "Notation couvrant plusieurs notes"
 #. @node in ../../../Documentation/user/basic-notation.itely
 #. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Laissez vibrer ties"
-msgstr "Liaisons « laissez vibrer »"
+msgstr "Liaisons ``laissez vibrer''"
 
 #. @node in ../../../Documentation/user/basic-notation.itely
 #. @subsection in ../../../Documentation/user/basic-notation.itely
@@ -1231,9 +1231,8 @@ msgstr "Partitions emboîtées"
 
 #. @node in ../../../Documentation/user/advanced-notation.itely
 #. @subsection in ../../../Documentation/user/advanced-notation.itely
-#, fuzzy
 msgid "Page wrapping text"
-msgstr "Saut de page"
+msgstr "Texte avec sauts de page"
 
 #. @node in ../../../Documentation/user/advanced-notation.itely
 #. @subsection in ../../../Documentation/user/advanced-notation.itely
@@ -1242,9 +1241,8 @@ msgstr "Vue d'ensemble des commandes d'indication textuelle"
 
 #. @node in ../../../Documentation/user/advanced-notation.itely
 #. @subsection in ../../../Documentation/user/advanced-notation.itely
-#, fuzzy
 msgid "Overview of text markup list commands"
-msgstr "Vue d'ensemble des commandes d'indication textuelle"
+msgstr "Vue d'ensemble des commandes de listes d'indications textuelles"
 
 #. @node in ../../../Documentation/user/advanced-notation.itely
 #. @subsection in ../../../Documentation/user/advanced-notation.itely
@@ -1493,9 +1491,8 @@ msgstr "Aligner des contextes"
 
 #. @node in ../../../Documentation/user/changing-defaults.itely
 #. @subsection in ../../../Documentation/user/changing-defaults.itely
-#, fuzzy
 msgid "Vertical grouping of grobs"
-msgstr "Espacement vertical"
+msgstr "Groupement vertical d'objets graphiques"
 
 #. @node in ../../../Documentation/user/changing-defaults.itely
 msgid "The \\override command"
@@ -1614,11 +1611,10 @@ msgstr "Titres personnalisés"
 #. @node in ../../../Documentation/user/non-music.itely
 #. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Reference to page numbers"
-msgstr ""
+msgstr "Référence de numéro de page"
 
 #. @node in ../../../Documentation/user/non-music.itely
 #. @subsection in ../../../Documentation/user/non-music.itely
-#, fuzzy
 msgid "Table of contents"
 msgstr "Table des matières"
 
@@ -1898,9 +1894,8 @@ msgstr "Définition d'une nouvelle commande de marqueur"
 
 #. @node in ../../../Documentation/user/programming-interface.itely
 #. @subsection in ../../../Documentation/user/programming-interface.itely
-#, fuzzy
 msgid "New markup list command definition"
-msgstr "Définition d'une nouvelle commande de marqueur"
+msgstr "Définition d'une nouvelle commande de liste de marqueurs"
 
 #. @node in ../../../Documentation/user/programming-interface.itely
 #. @section in ../../../Documentation/user/programming-interface.itely
index 7e5f04918588b0ece6e36d7d8edad6288f3684a3..54cb537f809f6ac0fc0408becf86f7526d1f7776 100644 (file)
@@ -7,8 +7,14 @@
 @end ignore
 @setfilename lilypond.info
 @settitle GNU LilyPond
+
 @iftex
 @afourpaper
+@c don't replace quotes with directed quotes
+@tex
+\gdef\SETtxicodequoteundirected{Foo}
+\gdef\SETtxicodequotebacktick{Bla}
+@end tex
 @end iftex
 
 @c  Keep this here, since it pertains to the direntry below.
diff --git a/buildscripts/mass-link.py b/buildscripts/mass-link.py
new file mode 100644 (file)
index 0000000..61ea81e
--- /dev/null
@@ -0,0 +1,56 @@
+#!@PYTHON@
+# mass-link.py
+
+# USAGE:  mass-link.py  [--prepend-suffix SUFFIX]   symbolic | hard   SOURCEDIR DESTDIR FILES
+#
+# create hard or symbolic links to SOURCEDIR/FILES in DESTDIR
+#
+# if --prepend-suffix is specified, link to foo.bar will be called fooSUFFIX.bar
+# shell-wildcard expansion is performed on FILES.
+
+print "mass_link.py"
+
+import sys
+import os
+import glob
+import getopt
+
+optlist, args = getopt.getopt (sys.argv[1:], '', ['prepend-suffix='])
+link_type, source_dir, dest_dir = args[0:3]
+files = args[3:]
+
+prepended_suffix = ''
+for x in optlist:
+    if x[0] == '--prepend-suffix':
+        prepended_suffix = x[1]
+
+if prepended_suffix:
+    def insert_suffix (p):
+        l = p.split ('.')
+        if len (l) >= 2:
+            l[-2] += prepended_suffix
+            return '.'.join (l)
+        return p + prepended_suffix
+else:
+    insert_suffix = lambda p: p
+
+if link_type == 'symbolic':
+    link = os.symlink
+elif link_type == 'hard':
+    link = os.link
+else:
+    sys.stderr.write(sys.argv[0] + ': ' + link_type + ": wrong argument, expected 'symbolic' or 'hard'\n")
+    sys.exit (1)
+
+sourcefiles = []
+for pattern in files:
+    sourcefiles += (glob.glob (os.path.join (source_dir, pattern)))
+
+destfiles = map (lambda f: os.path.join (dest_dir, insert_suffix (os.path.basename (f))), sourcefiles)
+
+def force_link (src,dest):
+    if os.path.exists (dest):
+        os.system ('rm -rf ' + dest)
+    link (src, dest)
+
+map (force_link, sourcefiles, destfiles)
diff --git a/buildscripts/texi-gettext.py b/buildscripts/texi-gettext.py
new file mode 100644 (file)
index 0000000..0080740
--- /dev/null
@@ -0,0 +1,79 @@
+#!@PYTHON@
+# -*- coding: utf-8 -*-
+# texi-gettext.py
+
+# USAGE:  texi-gettext.py [-o OUTDIR] BUILDSCRIPT-DIR LOCALEDIR LANG FILES
+#
+# -o OUTDIR specifies that output files should rather be written in OUTDIR
+#
+
+print "texi_gettext.py"
+
+import sys
+import re
+import os
+import getopt
+import gettext
+
+optlist, args = getopt.getopt (sys.argv[1:],'o:')
+buildscript_dir, localedir, lang = args[0:3]
+
+outdir = '.'
+for x in optlist:
+       if x[0] == '-o':
+               outdir = x[1]
+
+sys.path.append (buildscript_dir)
+import langdefs
+
+double_punct_char_separator = langdefs.LANGDICT[lang].double_punct_char_sep
+t = gettext.translation('lilypond-doc', localedir, [lang])
+_doc = t.gettext
+
+include_re = re.compile (r'@include ((?!lily-).*?)\.texi$', re.M)
+whitespaces = re.compile (r'\s+')
+ref_re = re.compile (r'(?ms)@(rglos|ref)(\{)(.*?)(\})')
+node_section_re = re.compile (r'@(node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading)( )(.*?)(\n)')
+menu_entry_re = re.compile (r'\* (.*?)::')
+
+def title_gettext (m):
+       if m.group (2) == '{':
+               r = whitespaces.sub (' ', m.group (3))
+       else:
+               r = m.group (3)
+       return '@' + m.group (1) + m.group (2) + _doc (r) + m.group (4)
+
+def menu_entry_gettext (m):
+       return '* ' + _doc (m.group (1)) + '::'
+
+def include_replace (m, filename):
+       if os.path.exists (os.path.join (os.path.dirname (filename), m.group(1)) + '.texi'):
+               return '@include ' + m.group(1) + '.pdftexi'
+       return m.group(0)
+
+def process_file (filename):
+       print "Processing %s" % filename
+       f = open (filename, 'r')
+       page = f.read ()
+       f.close()
+       page = node_section_re.sub (title_gettext, page)
+       page = ref_re.sub (title_gettext, page)
+       page = menu_entry_re.sub (menu_entry_gettext, page)
+       page = page.replace ("""-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.""", '')
+       page = page.replace ('UNTRANSLATED NODE: IGNORE ME', _doc ("This section has not been translated yet; please refer to the manual in English."))
+       includes = include_re.findall (page)
+       page = include_re.sub (lambda m: include_replace (m, filename), page)
+       p = os.path.join (outdir, filename) [:-4] + 'pdftexi'
+       f = open (p, 'w')
+       f.write (page)
+       f.close ()
+       dir = os.path.dirname (filename)
+       for file in includes:
+               p = os.path.join (dir, file) + '.texi'
+               if os.path.exists (p):
+                       process_file (p)
+
+for filename in args[3:]:
+       process_file (filename)
index a25935017511d63bac5a83658f40074e26fbbf34..30a438692d2742bb56ad0b8abb258b0c3e048806 100644 (file)
@@ -1,7 +1,9 @@
-# assumes depth and ISOLANG are defined
+# one assumes depth and ISOLANG are defined
 
 OUT_ITEXI_FILES = $(ITELY_FILES:%.itely=$(outdir)/%.itexi)
 
+TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
+
 LILYPOND_BOOK_INCLUDES += \
   -I$(top-src-dir)/Documentation/user \
   -I$(top-build-dir)/Documentation/user/$(outdir)
@@ -12,7 +14,7 @@ $(outdir)/lilypond.nexi: $(ITELY_FILES) $(ITEXI_FILES)
 
 MAKEINFO = LANG=$(ISOLANG) $(MAKEINFO_PROGRAM) --force
 
-$(outdir)/lilypond/index.html: $(outdir)/lilypond.nexi doc-po
+$(outdir)/lilypond/index.html: $(outdir)/lilypond.nexi $(outdir)/user-ln doc-po
        mkdir -p $(dir $@)
        -$(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
        find $(outdir) -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME' | xargs $(PYTHON) $(buildscript-dir)/html-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG)
@@ -22,19 +24,26 @@ $(outdir)/lilypond/index.html: $(outdir)/lilypond.nexi doc-po
 #$(outdir)/lilypond.html: $(outdir)/lilypond.nexi
 #      -$(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
 
-local-WWW: png-ln $(outdir)/lilypond/index.html lang-merge
+$(outdir)/%.pdf: $(outdir)/%.texi $(outdir)/user-ln doc-po
+       $(PYTHON) $(buildscript-dir)/texi-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG) $<
+       cd $(outdir); texi2pdf --batch $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).pdftexi
 
-lang-merge:
-       $(foreach i, $(shell find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME'), ln -f $(i) $(i:$(outdir)/%.html=$(depth)/Documentation/user/$(outdir)/%.$(ISOLANG).html) &&) true
+local-WWW: $(outdir)/lilypond.pdf $(outdir)/lilypond/index.html
+       find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py --prepend-suffix .$(ISOLANG) hard . $(depth)/Documentation/user/$(outdir) $(outdir)/lilypond.pdf
+# ugh, this is not enough to avoid wasting build time, $(outdir)/user-ln should be touched for all languages
+       touch -mr $(top-build-dir)/Documentation/user/$(outdir) $(outdir)/user-ln
 
 LINKED_PNGS = henle-flat-gray.png baer-flat-gray.png lily-flat-bw.png
 
 # makeinfo is broken, it MUST have PNGs in output dir
-# strangely, this is not true for ly PNGs
 # symlinking PNGs...
-png-ln:
+# lilypond-book -I flag seems broken too, and texi2pdf -I flag confuses
+# pdfetex with .aux and other files from English manual
+# symlinking lily-*...
+$(outdir)/user-ln: $(top-build-dir)/Documentation/user/$(outdir)
+       touch -mr $(top-build-dir)/Documentation/user/$(outdir) $@
        mkdir -p $(outdir)/lilypond
-       cd $(outdir) && $(foreach i, $(LINKED_PNGS), ln -sf ../$(depth)/Documentation/user/$(i) $(i) &&) true
+       $(PYTHON) $(buildscript-dir)/mass-link.py symbolic $(top-build-dir)/Documentation/user/$(outdir) $(outdir) 'lily-*.pdf' 'lily-*.tex' 'lily-*.texi' 'lily-*.ly' 'lily-*.txt' 'lily-*.png' 'henle-flat-gray.*' 'baer-flat-gray.*' 'lily-flat-bw.*'
        cd $(outdir)/lilypond && $(foreach i, $(LINKED_PNGS), ln -sf ../../$(depth)/Documentation/user/$(i) $(i) &&) true
 
 local-WWW-clean: deep-WWW-clean
index d32790e9d207bb35c956da96d94626d05f2955ba..3eed95f1c8462672585ce652a6695a80d6d43e34 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -1,72 +1,71 @@
-# translation of es.po to Spanish
-# Spanish translation of GNU LilyPond - http://lilypond.org
-# Copyright (C) 2002, 2007 Free Software Foundation, Inc.
+# Spanish translation of GNU Lilypond - http://lilypond.org
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Quique <quique@sindominio.net>, 2002, 2004.
+# Daniel Tonda <daniel dot tonda (at) gmail dot com>, 2006.
+# Francisco Vila <francisco.vila@hispalinux.es>, 2007.
 #
-# Quique <quique@sindominio.net>, 2002.
-# Daniel Tonda Castillo <daniel.tonda@gmail.com>, 2007.
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.11.11\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-24 10:40+0100\n"
-"PO-Revision-Date: 2007-01-14 00:01+0100\n"
-"Last-Translator: Daniel Tonda Castillo <daniel.tonda@gmail.com>\n"
+"Project-Id-Version: lilypond 2.11.22\n"
+"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
+"POT-Creation-Date: 2007-04-28 12:03+0200\n"
+"PO-Revision-Date: 2007-05-31 20:19+0100\n"
+"Last-Translator: Francisco Vila <francisco.vila@hispalinux.es>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
 
 #: convertrules.py:12
 #, python-format
 msgid "Not smart enough to convert %s"
-msgstr "No soy capaz de convertir: %s"
+msgstr "No soy tan listo como para convertir %s"
 
 #: convertrules.py:13
 msgid "Please refer to the manual for details, and update manually."
-msgstr "Por favor dirígase al manual para más detalles y actualice manualmente."
+msgstr "Consulte el manual para ver los detalles, y efectúe una actualización manual"
 
 #: convertrules.py:14
 #, python-format
 msgid "%s has been replaced by %s"
-msgstr "%s se reemplazado por %s"
+msgstr "%s se ha sustituido por %s"
 
-#: convertrules.py:2398
+#: convertrules.py:2408
 msgid "LilyPond source must be UTF-8"
-msgstr "La fuente LilyPond debe ser UTF-8"
+msgstr "El código de entrada de LilyPond debe ser UTF-8"
 
-#: convertrules.py:2401
+#: convertrules.py:2411
 msgid "Try the texstrings backend"
-msgstr "Intente el procesador texstrings"
+msgstr "Pruebe con el 'backend' texstrings"
 
-#: convertrules.py:2404
+#: convertrules.py:2414
 #, python-format
 msgid "Do something like: %s"
-msgstr "Haga algo cómo: %s"
+msgstr "Haga algo parecido a %s"
 
-#: convertrules.py:2407
+#: convertrules.py:2417
 msgid "Or save as UTF-8 in your editor"
-msgstr "O guárdelo como UTF-8 en su editor."
+msgstr "O guarde como UTF-8 en su editor"
 
 #: fontextract.py:26
 #, python-format
 msgid "Scanning %s"
-msgstr "Analizando %s"
+msgstr "Explorando %s"
 
 #: fontextract.py:71
 #, python-format
 msgid "Extracted %s"
-msgstr "Se ha extraído: %s"
+msgstr "Se ha extraído %s"
 
 #: fontextract.py:86
 #, python-format
 msgid "Writing fonts to %s"
-msgstr "Escribiendo fuentes a %s"
+msgstr "Escribiendo las tipografías en %s"
 
 #: lilylib.py:85 lilylib.py:136
 #, python-format
 msgid "Invoking `%s'"
-msgstr "Invocando `%s'"
+msgstr "Invocando «%s»"
 
 #: lilylib.py:87 lilylib.py:138
 #, python-format
@@ -76,403 +75,409 @@ msgstr "Ejecutando %s..."
 #: lilylib.py:203
 #, python-format
 msgid "Usage: %s"
-msgstr "Uso: %s"
+msgstr "uso: %s"
 
-#: abc2ly.py:1349 convert-ly.py:80 lilypond-book.py:125 midi2ly.py:869
+#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:110 midi2ly.py:858
 #, python-format
 msgid "%s [OPTION]... FILE"
-msgstr "Sintaxis: %s [OPCION]... FICHERO"
+msgstr "%s [OPCIÓN]... ARCHIVO"
 
-#: abc2ly.py:1351
+#: abc2ly.py:1344
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
 "%s) to LilyPond input."
 msgstr ""
-"abc2ly convierte archivos de música ABC (vea\n"
-"%s) a código LilyPond."
+"abc2ly convierte archivos de música de ABC\n"
+"(véase %s) en código de entrada de LilyPond."
 
-#: abc2ly.py:1355 etf2ly.py:1200 midi2ly.py:885
+#: abc2ly.py:1348 etf2ly.py:1184 midi2ly.py:874
 msgid "write output to FILE"
-msgstr "escribir la salida a FICHERO"
+msgstr "escribir la salida en el ARCHIVO"
 
-#: abc2ly.py:1357
+#: abc2ly.py:1350
 msgid "be strict about succes"
-msgstr "Sea estricto sobre el éxito"
+msgstr "ser estricto respecto a la validez"
 
-#: abc2ly.py:1359
+#: abc2ly.py:1352
 msgid "preserve ABC's notion of beams"
-msgstr "preservar la idea de ABC sobre las barras"
+msgstr "preservar la noción de las barras de ABC"
 
-#: abc2ly.py:1361 convert-ly.py:112 etf2ly.py:1208 lilypond-book.py:168
-#: midi2ly.py:911 musicxml2ly.py:505
+#: abc2ly.py:1354 convert-ly.py:103 etf2ly.py:1192 lilypond-book.py:161
+#: midi2ly.py:900 musicxml2ly.py:506
 msgid "Report bugs via"
-msgstr "Reporte errores por medio de"
+msgstr "Informe de los fallos a"
 
-#: convert-ly.py:41
+#: convert-ly.py:32
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
 msgstr ""
-"Actualice el código LilyPond a una versión más reciente. Por defecto, actualice desde la \n"
-"versión tomada del comando \\version, a la versión actual de LilyPond."
+"Actualizar el código de entrada de LilyPond a una versión más reciente.\n"
+"De manera predeterminada, actualizarlo desde la versión sacada de\n"
+"la instrucción \\version, a la versión actual de LilyPond."
 
-#: convert-ly.py:43 lilypond-book.py:73
+#: convert-ly.py:34 lilypond-book.py:59
 msgid "Examples:"
 msgstr "Ejemplos:"
 
-#: convert-ly.py:56 lilypond-book.py:98 warn.cc:48 input.cc:90
+#: convert-ly.py:47 lilypond-book.py:83 warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
 msgstr "advertencia: %s"
 
-#: convert-ly.py:59 lilypond-book.py:101 warn.cc:54 input.cc:96 input.cc:104
+#: convert-ly.py:50 lilypond-book.py:86 warn.cc:54 input.cc:96 input.cc:104
 #, c-format, python-format
 msgid "error: %s"
 msgstr "error: %s"
 
-#: convert-ly.py:75 etf2ly.py:1190 lilypond-book.py:121 midi2ly.py:98
+#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:87
 msgid "Distributed under terms of the GNU General Public License."
-msgstr "Distribuido bajo los términos de la GNU General Public License."
+msgstr "Distribuido bajo los términos de la Licencia Pública General de GNU."
 
-#: convert-ly.py:76 etf2ly.py:1191 lilypond-book.py:122 midi2ly.py:99
+#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:107 midi2ly.py:88
 msgid "It comes with NO WARRANTY."
-msgstr "No se entrega con GARANTIA."
+msgstr "Se distribuye SIN NINGUNA GARANTÍA."
 
-#: convert-ly.py:86 convert-ly.py:106
+#: convert-ly.py:77 convert-ly.py:97
 msgid "VERSION"
 msgstr "VERSIÓN"
 
-#: convert-ly.py:88
+#: convert-ly.py:79
 msgid "start from VERSION [default: \\version found in file]"
-msgstr "iniciando desde VERSIÓN [por defecto \\version encontrada en archivo]"
+msgstr "comenzar a partir de VERSIÓN [predeterminado: \\version del archivo]"
 
-#: convert-ly.py:91
+#: convert-ly.py:82
 msgid "edit in place"
-msgstr "editar en sitio"
+msgstr "editar in situ"
 
-#: convert-ly.py:94
+#: convert-ly.py:85
 msgid "do not add \\version command if missing"
-msgstr "no añadir comando \\version si es que falta"
+msgstr "no añadir la instrucción \\version si no está presente"
 
-#: convert-ly.py:100
+#: convert-ly.py:91
 msgid "show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"
-msgstr "mostrar reglas [por defecto: --from=0, --to=@TOPLEVEL_VERSION@]"
+msgstr "mostrat las reglas [predeterminado: --from=0, --to=@TOPLEVEL_VERSION@]"
 
-#: convert-ly.py:105
+#: convert-ly.py:96
 msgid "convert to VERSION [default: @TOPLEVEL_VERSION@]"
-msgstr "convertir a VERSION [default: @TOPLEVEL_VERSION@]"
+msgstr "convertir a VERSIÓN [predeterminado: @TOPLEVEL_VERSION@]"
 
-#: convert-ly.py:153
+#: convert-ly.py:144
 msgid "Applying conversion: "
-msgstr "Aplicando conversión:"
+msgstr "Aplicando la conversión:"
 
-#: convert-ly.py:166
+#: convert-ly.py:157
 msgid "Error while converting"
-msgstr "Error al hacer la conversión"
+msgstr "Error al convertir"
 
-#: convert-ly.py:168
+#: convert-ly.py:159
 msgid "Stopping at last succesful rule"
-msgstr "Deteniéndose en la última regla exitosa"
+msgstr "Detención en la primera regla satisfactoria"
 
-#: convert-ly.py:190
+#: convert-ly.py:181
 #, python-format
 msgid "Processing `%s'... "
-msgstr "Procesando `%s'..."
+msgstr "Procesando «%s»..."
 
-#: convert-ly.py:277 relocate.cc:360 source-file.cc:54
+#: convert-ly.py:268 relocate.cc:363 source-file.cc:54
 #, c-format, python-format
 msgid "cannot open file: `%s'"
-msgstr "no se puede abrir el fichero: `%s'"
+msgstr "no se puede abrir el archivo: «%s»"
 
-#: convert-ly.py:284
+#: convert-ly.py:275
 #, python-format
 msgid "cannot determine version for `%s'.  Skipping"
-msgstr "no se puede determinar la versión para `%s'.  Saltando"
+msgstr "no se puede determinar la versión de «%s»;  se salta"
 
-#: etf2ly.py:1196
+#: etf2ly.py:1180
 #, python-format
 msgid "%s [OPTION]... ETF-FILE"
-msgstr "%s [OPTIONS]... FICHERO ETF"
+msgstr "%s [OPCIÓN]... ARCHIVO_ETF"
 
-#: etf2ly.py:1198
+#: etf2ly.py:1182
 msgid ""
 "Enigma Transport Format is a format used by Coda Music Technology's\n"
-"Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond "
-"file."
-msgstr "Enigma Transport Format es un formato usado por el producto Finale de Coda Music.  etf2ly convierte un subconjunto de ETF a un código LilyPond listo para usarse."
+"Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond file."
+msgstr ""
+"El formato transportable de Enigma (ETF) es un formato utilizado\n"
+"por el producto Finale de Coda Music Technology.\n"
+"etf2ly convierte un subconjunto de ETF a un archivo de LilyPond\n"
+"listo para usar."
 
-#: etf2ly.py:1201 midi2ly.py:886 musicxml2ly.py:498 main.cc:172 main.cc:178
+#: etf2ly.py:1185 midi2ly.py:875 musicxml2ly.py:499 main.cc:154 main.cc:159
 msgid "FILE"
-msgstr "FICHERO"
+msgstr "ARCHIVO"
 
-#: etf2ly.py:1203 lilypond-book.py:165 midi2ly.py:899 main.cc:185
+#: etf2ly.py:1187 lilypond-book.py:158 midi2ly.py:888 main.cc:163
 msgid "show warranty and copyright"
-msgstr ""
-"mostrar los avisos de garantía y de\n"
-"copyright"
+msgstr "mostrar los avisos de garantía y de copyright"
 
-#: lilypond-book.py:71
+#: lilypond-book.py:57
 msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
-msgstr "Procesar fragmentos LilyPond en híbridos de HTML, LaTeX, texinfo o documentos DocBook."
+msgstr "Procesar los fragmentos de LylyPond en un documento de HTML híbrido, LaTeX, texinfo o DocBook."
 
-#: lilypond-book.py:78
+#: lilypond-book.py:64
 msgid "BOOK"
-msgstr "BOOK"
+msgstr "LIBRO"
 
-#: lilypond-book.py:87
+#: lilypond-book.py:72
 #, python-format
 msgid "Exiting (%d)..."
 msgstr "Saliendo (%d)..."
 
-#: lilypond-book.py:119
+#: lilypond-book.py:104
 #, python-format
 msgid "Copyright (c) %s by"
-msgstr "Copyright (c) %s "
+msgstr "Copyright (c) %s by"
 
-#: lilypond-book.py:129
+#: lilypond-book.py:114
 msgid "FILTER"
 msgstr "FILTRO"
 
-#: lilypond-book.py:132
+#: lilypond-book.py:117
 msgid "pipe snippets through FILTER [convert-ly -n -]"
-msgstr "redirigir fragmentos a través del FILTRO [convert-ly -n -]"
+msgstr "redirigir fragmentos a través de FILTRO [convert-ly -n -]"
 
-#: lilypond-book.py:135
+#: lilypond-book.py:120
 msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
-msgstr "use formato de salida FORMATO (texi [default], texi-html, latex, html, docbook)"
+msgstr "usar el formato de salida FORMATO (texi [predeterminado], texi-html, latex, html, docbook)"
 
-#: lilypond-book.py:138
+#: lilypond-book.py:123
 msgid "add DIR to include path"
-msgstr "añadir DIR a la ruta de búsqueda"
+msgstr "añadir DIR a la ruta de inclusión"
 
-#: lilypond-book.py:139 lilypond-book.py:144 main.cc:171
+#: lilypond-book.py:124 lilypond-book.py:136 main.cc:153
 msgid "DIR"
 msgstr "DIR"
 
-#: lilypond-book.py:143
+#: lilypond-book.py:129
+msgid "PAD"
+msgstr "CUADERNO"
+
+#: lilypond-book.py:135
 msgid "write output to DIR"
 msgstr "escribir la salida en el DIRECTORIO"
 
-#: lilypond-book.py:147
+#: lilypond-book.py:140
 msgid "COMMAND"
-msgstr "COMANDO"
+msgstr "MANDATO"
 
-#: lilypond-book.py:148
+#: lilypond-book.py:141
 msgid "process ly_files using COMMAND FILE..."
-msgstr "procesar archivos_ly usando COMMANDO FICHERO"
+msgstr "procesar ly_files utilizando ORDEN ARCHIVO..."
 
-#: lilypond-book.py:154
+#: lilypond-book.py:147
 msgid "Create PDF files for use with PDFTeX"
-msgstr "Crear archivos PDF para usarse con PDFTeX"
+msgstr "Crear archivos PDF para su utilización con PDFTeX"
 
-#: lilypond-book.py:157
+#: lilypond-book.py:150
 msgid ""
 "extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
 "must use this with dvips -h INPUT.psfonts"
 msgstr ""
-"extraer todas las fuentes POSTCRIPT en INPUT.psfonts, para  LaTeX\n"
-"debe usar esto para dvips -h INPUT.psfonts "
+"extraer todas las tipografías PostScript en ENTRADA.psfonts para LaTeX\n"
+"debe utilizarse con dvips -h ENTRADA.psfonts"
 
-#: lilypond-book.py:160 midi2ly.py:896 musicxml2ly.py:489 main.cc:184
+#: lilypond-book.py:153 midi2ly.py:885 musicxml2ly.py:490 main.cc:162
 msgid "be verbose"
 msgstr "ser prolijo"
 
-#: lilypond-book.py:773
+#: lilypond-book.py:768
 #, python-format
 msgid "file not found: %s"
 msgstr "archivo no encontrado: %s"
 
-#: lilypond-book.py:1004
+#: lilypond-book.py:999
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
-msgstr "opción ly en desuso: %s=%s"
+msgstr "se ha usado una ly-option obsoleta: %s=%s"
 
-#: lilypond-book.py:1007
+#: lilypond-book.py:1002
 #, python-format
 msgid "compatibility mode translation: %s=%s"
-msgstr "modo de traducción de compatibilidad: %s=%s"
+msgstr "traducción en modo de compatibilidad: %s=%s"
 
-#: lilypond-book.py:1011
+#: lilypond-book.py:1006
 #, python-format
 msgid "deprecated ly-option used: %s"
-msgstr "opción ly en desuso: %s"
+msgstr "se usó una ly-option obsoleta: %s"
 
-#: lilypond-book.py:1014
+#: lilypond-book.py:1009
 #, python-format
 msgid "compatibility mode translation: %s"
-msgstr "modo de traducción de compatibilidad: %s"
+msgstr "traducción en modo compatible: %s"
 
-#: lilypond-book.py:1033
+#: lilypond-book.py:1028
 #, python-format
 msgid "ignoring unknown ly option: %s"
-msgstr "ignorando opicón ly desconocida: %s"
+msgstr "opción ly desconocida e ignorada: %s"
 
-#: lilypond-book.py:1388
+#: lilypond-book.py:1382
 #, python-format
 msgid "Opening filter `%s'"
-msgstr "Abriendo filtro `%s'..."
+msgstr "Filtro de apertura «%s»"
 
-#: lilypond-book.py:1405
+#: lilypond-book.py:1399
 #, python-format
 msgid "`%s' failed (%d)"
-msgstr "%s falló (%d)"
+msgstr "«%s» ha fallado (%d)"
 
-#: lilypond-book.py:1406
+#: lilypond-book.py:1400
 msgid "The error log is as follows:"
-msgstr "La bitácora de error a continuación:"
+msgstr "El registro de errores es como sigue:"
 
-#: lilypond-book.py:1476
+#: lilypond-book.py:1472
 msgid "cannot find \\begin{document} in LaTeX document"
-msgstr "no se puede encontrar \\begin{document} en el documento LaTeX"
+msgstr "no se encuentra \\begin{document} en el documento de LaTeX"
 
-#: lilypond-book.py:1586
+#: lilypond-book.py:1583
 msgid "Writing snippets..."
 msgstr "Escribiendo fragmentos..."
 
-#: lilypond-book.py:1591
+#: lilypond-book.py:1588
 msgid "Processing..."
 msgstr "Procesando..."
 
-#: lilypond-book.py:1595
+#: lilypond-book.py:1592
 msgid "All snippets are up to date..."
-msgstr "Todos los fragmentos están actualizados"
+msgstr "Todos los fragmentos están actualizados..."
 
-#: lilypond-book.py:1605
+#: lilypond-book.py:1602
 #, python-format
 msgid "cannot determine format for: %s"
-msgstr "no puedo determinar el formato para: %s"
+msgstr "no se puede determinar el formato de: %s"
 
-#: lilypond-book.py:1616
+#: lilypond-book.py:1613
 #, python-format
 msgid "%s is up to date."
 msgstr "%s está actualizado."
 
-#: lilypond-book.py:1622
+#: lilypond-book.py:1619
 #, python-format
 msgid "Writing `%s'..."
-msgstr "Escribiendo `%s'..."
+msgstr "Escribiendo «%s»..."
 
-#: lilypond-book.py:1677
+#: lilypond-book.py:1674
 msgid "Output would overwrite input file; use --output."
-msgstr "La salida sobreescribirá el archivo de entrada, use --output."
+msgstr "La salida sobreescribiría el archivo de entrada; utilice --output."
 
-#: lilypond-book.py:1681
+#: lilypond-book.py:1678
 #, python-format
 msgid "Reading %s..."
 msgstr "Leyendo %s..."
 
-#: lilypond-book.py:1700
+#: lilypond-book.py:1697
 msgid "Dissecting..."
-msgstr "Analizando..."
+msgstr "Diseccionando..."
 
-#: lilypond-book.py:1716
+#: lilypond-book.py:1713
 #, python-format
 msgid "Compiling %s..."
 msgstr "Compilando %s..."
 
-#: lilypond-book.py:1725
+#: lilypond-book.py:1722
 #, python-format
 msgid "Processing include: %s"
-msgstr "Procesando inclusión: %s"
+msgstr "Procesando el archivo de inclusión: %s"
 
-#: lilypond-book.py:1739
+#: lilypond-book.py:1736
 #, python-format
 msgid "Removing `%s'"
-msgstr "Borrando `%s'"
-
-#: lilypond-book.py:1815
-#, python-format
-msgid "Writing fonts to %s..."
-msgstr "Escribiendo fuentes a %s..."
+msgstr "Suprimiendo «%s»"
 
-#: lilypond-book.py:1830
+#: lilypond-book.py:1769
 msgid "option --psfonts not used"
-msgstr "opción --psfonts no usada"
+msgstr "opción --psfonts no utilizada"
 
-#: lilypond-book.py:1831
+#: lilypond-book.py:1770
 msgid "processing with dvips will have no fonts"
-msgstr "al procesar con dvips no contendrá fuentes"
+msgstr "el procesado con dvips no contendrá ninguna tipografía"
 
-#: lilypond-book.py:1834
+#: lilypond-book.py:1773
 msgid "DVIPS usage:"
-msgstr "uso para DVIPS:"
+msgstr "uso de DVIPS:"
 
-#: midi2ly.py:106 lily-library.scm:624 lily-library.scm:632
+#: lilypond-book.py:1829
+#, python-format
+msgid "Writing fonts to %s..."
+msgstr "Escribiendo las tipografías en %s..."
+
+#: midi2ly.py:95 lily-library.scm:577 lily-library.scm:586
 msgid "warning: "
 msgstr "advertencia: "
 
-#: midi2ly.py:109 midi2ly.py:924
+#: midi2ly.py:98 midi2ly.py:913
 msgid "error: "
 msgstr "error: "
 
-#: midi2ly.py:110
+#: midi2ly.py:99
 msgid "Exiting ... "
-msgstr "Saliendo..."
+msgstr "Saliendo... "
 
-#: midi2ly.py:857
+#: midi2ly.py:846
 #, python-format
 msgid "%s output to `%s'..."
-msgstr "%s producidos en `%s'..."
+msgstr "salida de %s hacia «%s»..."
 
-#: midi2ly.py:871 musicxml2ly.py:485
+#: midi2ly.py:860 musicxml2ly.py:486
 #, python-format
 msgid "Convert %s to LilyPond input."
-msgstr "Convertir %s a código LilyPond"
+msgstr "Convertir %s a entrada de LilyPond."
 
-#: midi2ly.py:875
+#: midi2ly.py:864
 msgid "print absolute pitches"
-msgstr "imprimir notas absolutos"
+msgstr "mostrar las alturas absolutas"
 
-#: midi2ly.py:877 midi2ly.py:889
+#: midi2ly.py:866 midi2ly.py:878
 msgid "DUR"
 msgstr "DUR"
 
-#: midi2ly.py:878
+#: midi2ly.py:867
 msgid "quantise note durations on DUR"
-msgstr "quantizar duraciones de notas en DUR"
+msgstr "cuantizar las duraciones de las notas sobre DUR"
 
-#: midi2ly.py:881
+#: midi2ly.py:870
 msgid "print explicit durations"
-msgstr "imprimir duraciones explícitas"
+msgstr "mostrar las duraciones explícitas"
 
-#: midi2ly.py:882
+#: midi2ly.py:871
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
-msgstr ""
+msgstr "establecer la tonalidad: ALT=+sostenidos|-bemoles; MENOR=1"
 
-#: midi2ly.py:883
+#: midi2ly.py:872
 msgid "ALT[:MINOR]"
-msgstr "ALT[:MINOR]"
+msgstr "ALT[:MENOR]"
 
-#: midi2ly.py:888
+#: midi2ly.py:877
 msgid "quantise note starts on DUR"
-msgstr "quantizar inicios de notas en DUR"
+msgstr "cuantizar los comienzos de las notras sobre DUR"
 
-#: midi2ly.py:891
+#: midi2ly.py:880
 msgid "DUR*NUM/DEN"
-msgstr ""
+msgstr "DUR*NUM/DEN"
 
-#: midi2ly.py:894
+#: midi2ly.py:883
 msgid "allow tuplet durations DUR*NUM/DEN"
-msgstr "permitir duracione de grupetos DUR*NUM/DEN"
+msgstr "permitir duraciones de grupos irregulares DUR*NUM/DEN"
 
-#: midi2ly.py:902
+#: midi2ly.py:891
 msgid "treat every text as a lyric"
-msgstr "tratar cualquier texto como letra"
+msgstr "tratar todos los textos como letra"
 
-#: midi2ly.py:905
+#: midi2ly.py:894
 msgid "Examples"
 msgstr "Ejemplos"
 
-#: midi2ly.py:925
+#: midi2ly.py:914
 msgid "no files specified on command line."
-msgstr "no se ha especificado ningún fichero en la línea de órdenes."
+msgstr "no se ha especificado ningún archivo en la línea de órdenes."
 
-#: musicxml2ly.py:473
+#: musicxml2ly.py:474
 msgid "musicxml2ly FILE.xml"
-msgstr "musicxml2ly FICHERO.xml"
+msgstr "musicxml2ly ARCHIVO.xml"
 
-#: musicxml2ly.py:476
+#: musicxml2ly.py:477
 #, python-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -481,167 +486,160 @@ msgid ""
 "information."
 msgstr ""
 "Este software es libre. Está protegido por la Licencia Pública\n"
-"General de GNU, y es libre de modificarlo y/o distribuir copias de él bajo ciertas condiciones.  Invoquese como `%s --warranty' para más información."
+"General de GNU, y usted está invitado a modificarlo y/o  a distribuir\n"
+"copias de él bajo ciertas condiciones. Invóquelo como '%s --warranty' \n"
+"para obtener más información."
 
-#: musicxml2ly.py:495
+#: musicxml2ly.py:496
 msgid "Use lxml.etree; uses less memory and cpu time."
-msgstr "Usar lxml.etree; usa menos memoria y tiempo del cpu."
+msgstr "Use lxml.etree; utiliza menos memoria y tiempo de procesador."
 
-#: musicxml2ly.py:503
+#: musicxml2ly.py:504
 msgid "set output filename to FILE"
-msgstr "escribir la salida en el FICHERO"
+msgstr "establecer el nombre del archivo de salida a ARCHIVO"
 
 #: getopt-long.cc:140
 #, c-format
 msgid "option `%s' requires an argument"
-msgstr "la opción `%s' requiere un argumento"
+msgstr "la opción «%s» requiere un argumento"
 
 #: getopt-long.cc:144
 #, c-format
 msgid "option `%s' does not allow an argument"
-msgstr "la opción `%s' no permite argumentos"
+msgstr "la opción «%s» no permite argumentos"
 
 #: getopt-long.cc:148
 #, c-format
 msgid "unrecognized option: `%s'"
-msgstr "opción no reconocida: `%s'"
+msgstr "opción no reconocida: «%s»"
 
 #: getopt-long.cc:154
 #, c-format
 msgid "invalid argument `%s' to option `%s'"
-msgstr "argúmento no válido `%s' para la opción `%s'"
+msgstr "argumento no válido «%s» para la opción «%s»"
 
-#: warn.cc:68 grob.cc:559 input.cc:82
+#: warn.cc:68 grob.cc:557 input.cc:82
 #, c-format
 msgid "programming error: %s"
 msgstr "error de programación: %s"
 
 #: warn.cc:69 input.cc:83
 msgid "continuing, cross fingers"
-msgstr "continuando, cruzando los dedos"
+msgstr "continuamos; cruce los dedos"
 
-#: accidental-engraver.cc:240
+#: accidental-engraver.cc:247
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
-msgstr "lista de grabado de accidentes debe iniciar con un nombre de contexto: %s"
+msgstr "la lista de tippografiado de alteraciones accidentales debe comenzar con context-name: %s"
 
-#: accidental-engraver.cc:268
+#: accidental-engraver.cc:274
 #, c-format
-msgid "ignoring unknown accidental: %s"
-msgstr "ignorando accidentes desconocidos: %s"
+msgid "ignoring unknown accidental rule: %s"
+msgstr "se ignora la regla desconocida de alteración accidental: %s"
 
-#: accidental-engraver.cc:284
+#: accidental-engraver.cc:290
 #, c-format
 msgid "pair or context-name expected for accidental rule, found %s"
-msgstr "se encontró regla para: se esperaba un par o nombre de contexto para accidente: %s"
+msgstr "se esperaba una pareja o un nombre de contexto para la regla de alteración accidental, se ha encontrado %s"
 
-#: accidental.cc:243 key-signature-interface.cc:133
+#: accidental.cc:160
 #, c-format
-msgid "accidental `%s' not found"
-msgstr "accidente `%s' no encontrado"
+msgid "Could not find glyph-name for alteration %s"
+msgstr "No se ha encontrado el nombre de glifo para la alteración %s"
 
-#: align-interface.cc:222
-msgid ""
-"vertical alignment called before line-breaking.\n"
-"Only do cross-staff spanners with PianoStaff."
-msgstr ""
-"vertical alignment llamado antes de un corte de línea.\n"
-"Solamente hacer cross-staff-spanners con PianoStaff."
+#: accidental.cc:175
+msgid "natural alteration glyph not found"
+msgstr "no se encuentra el glifo del símbolo de becuadro"
 
-#: align-interface.cc:329
+#: align-interface.cc:322
 msgid "tried to get a translation for something that is no child of mine"
-msgstr "intentando obtener una traducción para algo que no está en mi ámbito"
+msgstr "se ha intentado obtener una traducción de algo que no es hijo mío"
 
-#: all-font-metrics.cc:173
+#: all-font-metrics.cc:143
 #, c-format
 msgid "cannot find font: `%s'"
-msgstr "no encuentro la fuente: `%s'"
+msgstr "no se encuentra la tipografía «%s»"
 
 #: apply-context-iterator.cc:31
 msgid "\\applycontext argument is not a procedure"
-msgstr "El argumento \\applycontext no es un procedimiento"
+msgstr "el argumento de \\applycontext no es un procedimiento"
 
 #: auto-change-iterator.cc:63 change-iterator.cc:61
 #, c-format
 msgid "cannot change, already in translator: %s"
-msgstr "no se puede cambiar, ya está en el traductor: %s"
+msgstr "no se puede cambiar, ya está dentro del traductor: %s"
 
 #: axis-group-engraver.cc:78
 msgid "Axis_group_engraver: vertical group already has a parent"
-msgstr "El grupo vertical Axis_group_engraver: ya tiene un padre"
+msgstr "Axis_group_engraver: el grupo vertical ya tiene un ancestro"
 
 #: axis-group-engraver.cc:79
 msgid "are there two Axis_group_engravers?"
-msgstr "hay dos Axis_group_engravers?"
+msgstr "¿hay dos Axis_group_engravers?"
 
 #: axis-group-engraver.cc:80
 msgid "removing this vertical group"
-msgstr "quitando este grupo vertical"
+msgstr "se suprime este grupo vertical"
 
-#: axis-group-interface.cc:96
+#: axis-group-interface.cc:109
 msgid "tried to calculate pure-height at a non-breakpoint"
-msgstr "se trató de calcular la altura pura en un lugar que no es punto de quiebre"
+msgstr "se ha intentado calcular pure-height en un lugar que no es un breakpoint"
 
-#: axis-group-interface.cc:370
+#: axis-group-interface.cc:449
 msgid "an outside-staff object should have a direction, defaulting to up"
-msgstr "un objeto externo al pentagrama debe tener dirección, por defecto deiniéndolo hacia arriba"
-
-#: axis-group-interface.cc:383
-#, c-format
-msgid "outside-staff object %s has an empty extent"
-msgstr "Objeto externo al pentagrama %s tiene una extensión vacía"
+msgstr "un objeto externo a la pauta debe tener una dirección, por omisión se establece hacia arriba"
 
 #: bar-check-iterator.cc:73
 #, c-format
 msgid "barcheck failed at: %s"
-msgstr "revisión de compases falló en: %s"
+msgstr "la comprobación de compás ha fallado en: %s"
 
-#: beam-engraver.cc:128
+#: beam-engraver.cc:126
 msgid "already have a beam"
-msgstr "ya hay una barra de compás "
+msgstr "ya tiene una barra"
 
-#: beam-engraver.cc:196
+#: beam-engraver.cc:202
 msgid "unterminated beam"
 msgstr "barra sin terminar"
 
-#: beam-engraver.cc:238 chord-tremolo-engraver.cc:134
+#: beam-engraver.cc:244 chord-tremolo-engraver.cc:138
 msgid "stem must have Rhythmic structure"
-msgstr "la plica debe tener una estructura rítmica"
+msgstr "la plica debe tener estructura rítmica"
 
-#: beam-engraver.cc:246
+#: beam-engraver.cc:252
 msgid "stem does not fit in beam"
-msgstr "la plica no cabe en la barra"
+msgstr "la plica no cabe dentro de la barra"
 
-#: beam-engraver.cc:247
+#: beam-engraver.cc:253
 msgid "beam was started here"
-msgstr "se inició barra aquí"
+msgstr "la barra comenzó aquí"
 
-#: beam-quanting.cc:307
+#: beam-quanting.cc:314
 msgid "no feasible beam position"
-msgstr "No se ha encontrado posicionamiento de barra factible"
+msgstr "no hay ninguna posición viable para la barra"
 
-#: beam.cc:144
+#: beam.cc:160
 msgid "removing beam with no stems"
-msgstr "quitando barra sin plicas"
+msgstr "se suprime la barra sin plicas"
 
-#: beam.cc:1007
+#: beam.cc:1035
 msgid "no viable initial configuration found: may not find good beam slope"
-msgstr "no se pudo encontrar una configuración inicial factible: la inclinación de la barra puede no ser correcta"
+msgstr "no se ha encontrado ninguna configuración inicial viable; puede que no se encuentre una buena inclinación de las barras"
 
-#: break-alignment-interface.cc:208
+#: break-alignment-interface.cc:195
 #, c-format
 msgid "No spacing entry from %s to `%s'"
-msgstr "No hay entrada de espaciado desde %s a `%s'"
+msgstr "no hay un elemento de espaciado desde %s hasta «%s»"
 
 #: change-iterator.cc:23
 #, c-format
 msgid "cannot change `%s' to `%s'"
-msgstr "no se puede cambiar `%s' a `%s'"
+msgstr "no se puede cambiar de «%s» a «%s»"
 
 #. FIXME: constant error message.
 #: change-iterator.cc:82
 msgid "cannot find context to switch to"
-msgstr "no se encuentra encontrar a qué contexto cambiar"
+msgstr "no se encuentra el contexto al que cambiar"
 
 #. We could change the current translator's id, but that would make
 #. errors hard to catch.
@@ -651,7 +649,7 @@ msgstr "no se encuentra encontrar a qué contexto cambiar"
 #: change-iterator.cc:91
 #, c-format
 msgid "not changing to same context type: %s"
-msgstr "no se cambia al mismo tipo de contexto: %s"
+msgstr "no se cambia al mismo tipo de contexto: %s"
 
 #. FIXME: uncomprehensable message
 #: change-iterator.cc:95
@@ -660,110 +658,110 @@ msgstr "ninguno de éstos en mi familia"
 
 #: chord-tremolo-engraver.cc:88
 msgid "No tremolo to end"
-msgstr "No hay trémolo que terminar"
+msgstr "No hay ningún tremolo hasta el final"
 
 #: chord-tremolo-engraver.cc:110
 msgid "unterminated chord tremolo"
-msgstr "acorde de trémolo sin terminar"
+msgstr "trémolo de acorde sin terminar"
 
-#: chord-tremolo-iterator.cc:33
+#: chord-tremolo-iterator.cc:35
 #, c-format
 msgid "expect 2 elements for chord tremolo, found %d"
-msgstr "esperaba dos elementos para acorde con trémolo, encontré %d"
+msgstr "se esperaban 2 elementos para el tremolo de acorde, se han encontrado %d"
 
 #: clef.cc:54
 #, c-format
 msgid "clef `%s' not found"
-msgstr "no se encontró la clave de %s"
+msgstr "no se ha encontrado la clave  «%s»"
 
 #: cluster.cc:110
 #, c-format
 msgid "unknown cluster style `%s'"
-msgstr "tipo de grupo (cluster) desconocido `%s'"
+msgstr "estilo de cluster (racimo) «%s» desconocido"
 
 #: cluster.cc:135
 msgid "junking empty cluster"
-msgstr "ignorando cluster vacío"
+msgstr "se recorta el racimo (cluster) vacío"
 
 #: coherent-ligature-engraver.cc:100
 #, c-format
 msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul"
-msgstr "Coherent_ligature_engraver: incrementando `spacing-increment=0.01': ptr=%ul"
+msgstr "Coherent_ligature_engraver: se establece `spacing-increment=0.01': ptr=%ul"
 
 #. if we get to here, just put everything on one line
-#: constrained-breaking.cc:176 constrained-breaking.cc:193
+#: constrained-breaking.cc:167 constrained-breaking.cc:184
 msgid "cannot find line breaking that satisfies constraints"
-msgstr "no puedo determinar un corte de línea que satisfaga las restricciones"
+msgstr "no se ecnuentra un salto de línea que cumpla las restricciones"
 
 #: context-def.cc:130
 #, c-format
 msgid "program has no such type: `%s'"
-msgstr "el programa no tiene tal tipo: `%s'"
+msgstr "el programa no tiene este tipo: «%s»"
 
-#: context-property.cc:76
+#: context-property.cc:30
 msgid "need symbol arguments for \\override and \\revert"
-msgstr "faltan argumentos del símbolo para \\override y \\revert"
+msgstr "se necesitan argumentos de símbolo para \\override y \\revert"
 
-#: context.cc:151
+#: context.cc:144
 #, c-format
 msgid "cannot find or create new `%s'"
-msgstr "no se puede encontrar o crear nuevo: `%s'"
+msgstr "no se encuentra o no se puede crear un «%s» nuevo"
 
-#: context.cc:213
+#: context.cc:206
 #, c-format
 msgid "cannot find or create `%s' called `%s'"
-msgstr "no se puede encontrar o crear `%s' llamado `%s'"
+msgstr "no se encuentra o no se puede crear «%s» llamado «%s»"
 
-#: context.cc:276
+#: context.cc:268
 #, c-format
 msgid "Invalid CreateContext event: Cannot create %s context"
-msgstr "Evento CreateContext inválido: No puedo crear contexto %s"
+msgstr "evento CreateContext inválido: No se puede crear el contexto %s"
 
-#: context.cc:388
+#: context.cc:380
 #, c-format
 msgid "cannot find or create: `%s'"
-msgstr "no se puede encontrar o crear: `%s'"
+msgstr "no se encuentra o no se puede crear «%s»"
 
 #: custos.cc:77
 #, c-format
 msgid "custos `%s' not found"
-msgstr "custos `%s' no encontrado"
+msgstr "no se encuentran los custos «%s»"
 
 #: dispatcher.cc:71
 msgid "Event class should be a symbol"
-msgstr "Clase de evento debe ser un símbolo"
+msgstr "La clase del evento debe ser un símbolo"
 
 #: dispatcher.cc:78
 #, c-format
 msgid "Unknown event class %s"
-msgstr "Clase de evento desconocida: `%s'"
+msgstr "Clase de evento %s desconocida"
 
-#: dots.cc:38
+#: dots.cc:37
 #, c-format
 msgid "dot `%s' not found"
-msgstr "puntillo `%s' no encontrado"
+msgstr "no se encuentra el puntillo «%s»"
 
-#: dynamic-engraver.cc:186 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:184
 msgid "cannot find start of (de)crescendo"
-msgstr "no puedo encontrar el principio del (de)crescendo"
+msgstr "no se encuentra el comienzo del (de)crescendo"
 
-#: dynamic-engraver.cc:195
+#: dynamic-engraver.cc:193
 msgid "already have a decrescendo"
-msgstr "ya tengo un decrescendo"
+msgstr "ya tiene un decrescendo"
 
-#: dynamic-engraver.cc:197
+#: dynamic-engraver.cc:195
 msgid "already have a crescendo"
-msgstr "ya tengo un crescendo"
+msgstr "ya tiene un crescendo"
 
-#: dynamic-engraver.cc:200
+#: dynamic-engraver.cc:198
 msgid "cresc starts here"
-msgstr "crescendo inicia aquí"
+msgstr "el cresc comenzó aquí"
 
-#: dynamic-engraver.cc:323
+#: dynamic-engraver.cc:327
 msgid "unterminated (de)crescendo"
 msgstr "(de)crescendo sin terminar"
 
-#: extender-engraver.cc:131 extender-engraver.cc:140
+#: extender-engraver.cc:142 extender-engraver.cc:151
 msgid "unterminated extender"
 msgstr "prolongación sin terminar"
 
@@ -774,39 +772,43 @@ msgstr "Inicializando FontConfig..."
 #: font-config.cc:44
 #, c-format
 msgid "Rebuilding FontConfig cache %s, this may take a while..."
-msgstr "Reconstruyendo caché de FontConfig %s, puede tomar un rato..."
+msgstr "Reconstruyendo la caché de FontConfig %s, puede tardar un rato..."
 
 #: font-config.cc:55
 #, c-format
 msgid "failed adding font directory: %s"
-msgstr "falló al añadir directorio de fuentes: %s"
+msgstr "fallo al añadir la carpeta de tipografías: %s"
 
 #: font-config.cc:57
 #, c-format
 msgid "adding font directory: %s"
-msgstr "añadiendo directorio de fuentes: %s"
+msgstr "añadiendo carpeta de tipografías: %s"
 
-#: general-scheme.cc:160
+#: general-scheme.cc:198
 msgid "infinity or NaN encountered while converting Real number"
-msgstr "Se encontró infinito o NaN al tratar de convertir a un número Real"
+msgstr "se ha encontrado infinito o NaN durante la conversión de un número Real"
 
-#: general-scheme.cc:161
+#: general-scheme.cc:199
 msgid "setting to zero"
-msgstr "asignando valor de cero"
+msgstr "estableciendo al valor cero"
 
-#: glissando-engraver.cc:92
+#: general-scheme.cc:417 output-ps.scm:61
+msgid "Found infinity or nan in output. Substituting 0.0"
+msgstr "Se ha encontrado Infinito o NaN en la salida. Se sustituye por 0.0"
+
+#: glissando-engraver.cc:94
 msgid "unterminated glissando"
 msgstr "glissando sin terminar"
 
-#: global-context-scheme.cc:91 global-context-scheme.cc:107
+#: global-context-scheme.cc:87 global-context-scheme.cc:105
 msgid "no music found in score"
-msgstr "no se encontró música en la partitura"
+msgstr "no se ha encontrado música en la partitura"
 
-#: global-context-scheme.cc:97
+#: global-context-scheme.cc:95
 msgid "Interpreting music... "
-msgstr "Interpretando música... "
+msgstr "Interpretando la música..."
 
-#: global-context-scheme.cc:120
+#: global-context-scheme.cc:118
 #, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr "tiempo transcurrido: %.2f segundos"
@@ -814,78 +816,97 @@ msgstr "tiempo transcurrido: %.2f segundos"
 #: gregorian-ligature-engraver.cc:59
 #, c-format
 msgid "\\%s ignored"
-msgstr "\\%s ignorado"
+msgstr "\\%s ignorado(s)"
 
 #: gregorian-ligature-engraver.cc:64
 #, c-format
 msgid "implied \\%s added"
-msgstr "\\%s implicados añadidos"
+msgstr "se ha añadido el \\%s implícito"
 
 #. ligature may not start with 2nd head of pes or flexa
 #: gregorian-ligature-engraver.cc:212
 msgid "cannot apply `\\~' on first head of ligature"
-msgstr "no se puede aplicar `\\~' en pricipio de la ligadura"
+msgstr "no se puede aplicar `\\~' sobre la primera cabeza de una ligadura"
 
 #. (pitch == prev_pitch)
 #: gregorian-ligature-engraver.cc:224
 msgid "cannot apply `\\~' on heads with identical pitch"
-msgstr "no se puede aplicar \\~' en cabezas con la misma nota"
+msgstr "no se puede aplicar `\\~' sobre cabezas de idéntica altura"
 
 #: grob-interface.cc:57
 #, c-format
 msgid "Unknown interface `%s'"
-msgstr "Interfase desconocida: `%s'"
+msgstr "interfaz desconocido «%s»"
 
 #: grob-interface.cc:68
 #, c-format
 msgid "Grob `%s' has no interface for property `%s'"
-msgstr "El elemento `%s' no tiene interface para la propiedad `%s'"
+msgstr "El grob «%s» no tiene interfaz para la propiedad «%s»"
+
+#: grob-property.cc:34
+#, c-format
+msgid "%d: %s"
+msgstr "%d: %s"
+
+#: grob-property.cc:174
+#, c-format
+msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
+msgstr "dependencia cíclica: se ha encontrado calculation-in-progress para #'%s (%s)"
 
-#: grob.cc:253
+#: grob.cc:251
 msgid "Infinity or NaN encountered"
-msgstr "Se encontró infinito o NaN"
+msgstr "se ha encontrado Infinito o NaN"
 
-#: hairpin.cc:183
+#: hairpin.cc:187
 msgid "decrescendo too small"
 msgstr "decrescendo demasiado pequeño"
 
+#: hairpin.cc:188
+msgid "crescendo too small"
+msgstr "crescendo demasiado pequeño"
+
 #: horizontal-bracket-engraver.cc:59
 msgid "do not have that many brackets"
-msgstr "no hay tantos corchetes"
+msgstr "no tiene tantos corchetes"
 
 #: horizontal-bracket-engraver.cc:68
 msgid "conflicting note group events"
-msgstr "grupo de eventos de notas en conflicto"
+msgstr "eventos de grupo de notas en conflicto"
 
 #: hyphen-engraver.cc:93
 msgid "removing unterminated hyphen"
-msgstr "eliminando prolongación sin terminar"
+msgstr "se suprime el guión separador sin terminación"
 
 #: hyphen-engraver.cc:107
 msgid "unterminated hyphen; removing"
-msgstr "prolongación sin terminar; eliminando"
+msgstr "guión separador sin terminar; se suprime"
 
-#: includable-lexer.cc:53
-msgid "include files are not allowed in safe mode"
-msgstr "incluir archivos no se permite en modo seguro"
-
-#: includable-lexer.cc:60 lily-guile.cc:90 lily-parser-scheme.cc:116
+#: includable-lexer.cc:53 lily-guile.cc:76 lily-parser-scheme.cc:117
 #, c-format
 msgid "cannot find file: `%s'"
-msgstr "no puedo encontrar el fichero: `%s'"
+msgstr "no se encuentra el archivo: «%s»"
 
-#: includable-lexer.cc:62 lily-parser-scheme.cc:107
+#: includable-lexer.cc:55 lily-parser-scheme.cc:108
 #, c-format
 msgid "(search path: `%s')"
-msgstr "(ruta de búsqueda: `%s')"
+msgstr "(ruta de búsqueda: «%s»)"
 
 #: input.cc:112 source-file.cc:168 source-file.cc:183
 msgid "position unknown"
 msgstr "posición desconocida"
 
+#: key-signature-interface.cc:71
+#, c-format
+msgid "No glyph found for alteration: %s"
+msgstr "No se ha encontrado ningún glifo para la alteración: %s"
+
+#: key-signature-interface.cc:81
+msgid "alteration not found"
+msgstr "no se encuentra la alteración"
+
 #: ligature-engraver.cc:93
 msgid "cannot find start of ligature"
-msgstr "no puedo encontrar el principio del ligadura"
+msgstr "no se encuentra el comienzo de la ligadura"
 
 #: ligature-engraver.cc:98
 msgid "no right bound"
@@ -893,76 +914,81 @@ msgstr "no hay límite derecho"
 
 #: ligature-engraver.cc:120
 msgid "already have a ligature"
-msgstr "ya hay una ligadura"
+msgstr "ya tiene una ligadura"
 
 #: ligature-engraver.cc:129
 msgid "no left bound"
 msgstr "no hay límite izquierdo"
 
+# ligature...?
 #: ligature-engraver.cc:173
 msgid "unterminated ligature"
 msgstr "ligadura sin terminar"
 
 #: ligature-engraver.cc:202
 msgid "ignoring rest: ligature may not contain rest"
-msgstr "ignorando silencio: una ligadura no puede contener silencio"
+msgstr "se ignora el silencio: la ligadura no puede contener silencios"
 
 #: ligature-engraver.cc:203
 msgid "ligature was started here"
-msgstr "la ligadura no se inició aquí"
+msgstr "la ligadura comenzó aquí"
 
-#: lily-guile.cc:92
+#: lily-guile.cc:78
 #, c-format
 msgid "(load path: `%s')"
-msgstr "(ruta de carga: `%s')"
+msgstr "(ruta de carga: «%s»)"
 
-#: lily-guile.cc:518
+#: lily-guile.cc:438
 #, c-format
 msgid "cannot find property type-check for `%s' (%s)."
-msgstr "no puedo encontrar revisión de propiedad para `%s' (%s)."
+msgstr "no se encuentra la comprobación de tipo de propiedad para «%s» (%s)."
 
-#: lily-guile.cc:521
+#: lily-guile.cc:441
 msgid "perhaps a typing error?"
-msgstr "posiblemente un error de dedo?"
+msgstr "¿quizá es un error de tecleo?"
 
-#: lily-guile.cc:527
+#: lily-guile.cc:448
 msgid "doing assignment anyway"
-msgstr "realizando asignación de todas maneras"
+msgstr "se hace la asignación de todas formas"
 
-#: lily-guile.cc:539
+#: lily-guile.cc:460
 #, c-format
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
-msgstr "revisión de tipo para `%s' falló; el valor `%s' debe ser de tipo  `%s'"
+msgstr "ha fallado la comprobación de tipo para «%s»; el valor «%s» debe ser del tipo «%s»"
+
+#: lily-lexer.cc:250
+msgid "include files are not allowed in safe mode"
+msgstr "no se permiten los archivos de inclusión en el modo seguro"
 
-#: lily-lexer.cc:254
+#: lily-lexer.cc:269
 #, c-format
 msgid "identifier name is a keyword: `%s'"
-msgstr "el identificador es una palabra clave: `%s'"
+msgstr "el nombre del identificativo es una palabra clave: «%s»"
 
-#: lily-lexer.cc:269
+#: lily-lexer.cc:284
 #, c-format
 msgid "error at EOF: %s"
-msgstr "error al final del fichero (EOF): %s"
+msgstr "error al final del archivo (EOF): %s"
 
-#: lily-parser-scheme.cc:29
+#: lily-parser-scheme.cc:30
 #, c-format
 msgid "deprecated function called: %s"
-msgstr "función en desuso llamada: %s"
+msgstr "llamada a una función obsoleta: %s"
 
-#: lily-parser-scheme.cc:88
+#: lily-parser-scheme.cc:89
 #, c-format
 msgid "Changing working directory to: `%s'"
-msgstr "Cambiando directorio de trabajo a: `%s'"
+msgstr "Se cambia el directorio de trabajo a:  «%s»"
 
-#: lily-parser-scheme.cc:106
+#: lily-parser-scheme.cc:107
 #, c-format
 msgid "cannot find init file: `%s'"
-msgstr "no puedo encontrar archivo de inicialización: `%s'"
+msgstr "no se encuentra el archivo de inicio: «%s»"
 
-#: lily-parser-scheme.cc:125
+#: lily-parser-scheme.cc:126
 #, c-format
 msgid "Processing `%s'"
-msgstr "Procesando `%s'"
+msgstr "Procesando «%s»"
 
 #: lily-parser.cc:99
 msgid "Parsing..."
@@ -970,14 +996,18 @@ msgstr "Analizando..."
 
 #: lily-parser.cc:127
 msgid "braces do not match"
-msgstr "Llaves no concuerdan"
+msgstr "las llaves no concuerdan"
 
-#: lyric-combine-music-iterator.cc:291
+#: lyric-combine-music-iterator.cc:327
 #, c-format
 msgid "cannot find Voice `%s'"
-msgstr "no se puede encontrar Voice `%s'"
+msgstr "no se encuentra la Voz «%s»"
+
+#: lyric-engraver.cc:158
+msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
+msgstr "La sílaba de la letra no tiene nota. Utilice \\lyricsto o associatedVoice."
 
-#: main.cc:116
+#: main.cc:100
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -986,11 +1016,11 @@ msgid ""
 "information.\n"
 msgstr ""
 "Este software es libre. Está protegido por la Licencia Pública\n"
-"General de GNU, y es libre para modificarlo y/o distribuir copias de\n"
-"él bajo ciertas condiciones. Invóquelo como `%s --warranty' para más\n"
-"información.\n"
+"General de GNU, y usted está invitado a modificarlo y/o distribuir copias de\n"
+"él bajo ciertas condiciones. Invóquelo como `%s --warranty' para obtener\n"
+"más información.\n"
 
-#: main.cc:122
+#: main.cc:106
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -1006,284 +1036,260 @@ msgid ""
 "the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 msgstr ""
-"    Este programa es libre, puede redistribuirlo y/o \n"
-"modificarlo bajo los términos de la Licencia Públic General GNU versión 2\n"
-"tal como está publicada por la Fundación de Software Libre (FSF).\n"
-"    Este programa se distribuye con la esperanza de que será de utilidad,\n"
-"pero sin NINGUNA CLASE DE GARANTÍA, ni siquiera implicada por COMERCIO o para PROPOSITO PARTICULAR.  Vea la: "
-"Licencia Pública General GNU para más detalles.\n"
-"    Debe haber recibido una copia de la Licencia Públic General GNU con este programa; si no es así, escriba a:\n"
-"Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+"    This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License version 2\n"
+"as published by the Free Software Foundation.\n"
+"\n"
+"    This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
+"General Public License for more details.\n"
+"\n"
+"    You should have received a copy of the\n"
+"GNU General Public License along with this program; if not, write to\n"
+"the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
+"\n"
+"    Este programa es software libre; puede redistribuirlo y/o\n"
+"modificarlo bajo los términos de la versión 2 de la Licencia Pública\n"
+"General de GNU tal y como está publicada por la Free Software Foundation.\n"
+"\n"
+"    Este programa se distribuye con la esperanza de que resulte útil,\n"
+"pero SIN NINGUNA GARANTÍA; ni siquiera con la garantía MERCANTIL\n"
+"ni de CONVENIENCIA PARA UN PROPÓSITO PARTICULAR implícitas\n"
+"Consulte la Licencia Pública General de GNU para ver más detalles\n"
+"    Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha sido así, escriba a la Free Software Foundation, Inc.,\n"
+"59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: main.cc:153
-msgid "BACK"
-msgstr "REGRESAR"
-
-#: main.cc:153
-msgid ""
-"use backend BACK (eps, gnome, ps [default],\n"
-"scm, svg, tex, texstr)"
-msgstr ""
-"usar procesador BACK (eps, gnome, \n"
-"ps [predet], scm, svg, tex, texstr)"
-
-#: main.cc:155
+#: main.cc:137
 msgid "SYM[=VAL]"
-msgstr "SYM[=VAL]"
+msgstr "SÍMBOLO[=VALOR]"
 
-#: main.cc:156
+#: main.cc:138
 msgid ""
-"set Scheme option SYM to VAL (default: #t)\n"
+"set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
 msgstr ""
-"asignando opción Scheme SYM a VAL \n"
-"(por defecto: #t)\n"
+"establecer la opción de Scheme SYM a VAL (por omisión: #t).\n"
 "Use -dhelp para obtener ayuda."
 
-#: main.cc:159
+#: main.cc:141
 msgid "EXPR"
 msgstr "EXPR"
 
-#: main.cc:159
+#: main.cc:141
 msgid "evaluate scheme code"
-msgstr "evaluar código scheme"
+msgstr "evaluar código de Scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:162
+#: main.cc:144
 msgid "FORMATs"
-msgstr "FORMATOS"
+msgstr "FORMATOs"
 
-#: main.cc:162
+#: main.cc:144
 msgid "dump FORMAT,...  Also as separate options:"
-msgstr ""
-"volcar FORMATO,...  \n"
-"También cómo opciones separadas:"
+msgstr "volcar FORMATO,...  También como opciones separadas:"
 
-#: main.cc:163
+#: main.cc:145
 msgid "generate DVI (tex backend only)"
-msgstr "generar DVI (sólo procesador tex)"
+msgstr "generar salida DVI (sólo para el 'backend' tex)"
 
-#: main.cc:164
+#: main.cc:146
 msgid "generate PDF (default)"
-msgstr "generar salida PDF (predeterminado)"
+msgstr "generar una salida PDF (predeterminado)"
 
-#: main.cc:165
+#: main.cc:147
 msgid "generate PNG"
-msgstr "generar salida PNG"
+msgstr "generar una salida PNG"
 
-#: main.cc:166
+#: main.cc:148
 msgid "generate PostScript"
-msgstr "generar salida PostScript"
+msgstr "generar una salida PostScript"
 
-#: main.cc:167
+#: main.cc:149
 msgid "generate TeX (tex backend only)"
-msgstr "generar TeX (sólo procesador tex)"
+msgstr "generar salida TeX (sólo para el 'backend' tex)"
 
-#: main.cc:168
+#: main.cc:150
 msgid "show this help and exit"
 msgstr "mostrar esta ayuda y salir"
 
-#: main.cc:169
+#: main.cc:151
 msgid "FIELD"
 msgstr "CAMPO"
 
-#: main.cc:169
+#: main.cc:151
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
 msgstr ""
-"vaciar campo de cabecera FIELD a fichero\n"
+"volcar el campo de cabecera FIELD a un archivo\n"
 "llamado BASENAME.FIELD"
 
-#: main.cc:171
+#: main.cc:153
 msgid "add DIR to search path"
 msgstr "añadir DIR a la ruta de búsqueda"
 
-#: main.cc:172
+#: main.cc:154
 msgid "use FILE as init file"
-msgstr "usar FICHERO como fichero de inicialización"
+msgstr "usar FICHERO como archivo de inicialización"
 
-#: main.cc:174
-msgid "USER,GROUP,JAIL,DIR"
-msgstr ""
+#: main.cc:156
+msgid "USER, GROUP, JAIL, DIR"
+msgstr "USUARIO, GRUPO, JAULA, DIRECTORIO"
 
-#: main.cc:174
+#: main.cc:156
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
 msgstr ""
-"chroot a JAIL, convertirse en USER:GROUP\n"
-"y cd en DIR"
+"chroot a JAULA, convertirse en USUARIO:GRUPO\n"
+"y cd al DIRECTORIO"
 
-#: main.cc:177
-msgid "do not generate printed output"
-msgstr "no generar salida de impresión"
-
-#: main.cc:178
+#: main.cc:159
 msgid "write output to FILE (suffix will be added)"
-msgstr ""
-"escribir la salida en FICHERO\n"
-"(añadirá extensión)"
-
-#: main.cc:179
-msgid "generate a preview of the first system"
-msgstr "generar previsualización del primer sistema"
+msgstr "escribir la salida en el ARCHIVO (se añadirá el sufijo)"
 
-#: main.cc:180
+#: main.cc:160
 msgid "relocate using directory of lilypond program"
-msgstr ""
-"relocalice usando directorio del \n"
-"programa lilypond"
-
-#: main.cc:181
-msgid ""
-"disallow unsafe Scheme and PostScript\n"
-"operations"
-msgstr ""
-"evitar operaciones inseguras de Scheme y \n"
-"PostScript"
+msgstr "relolcalizar utilizando el directorio del programa lilypond"
 
-#: main.cc:183
+#: main.cc:161
 msgid "show version number and exit"
-msgstr "mostrar número de versión y salir"
+msgstr "mostrar el número de versión y salir"
 
-#: main.cc:224
+#: main.cc:203
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
 "%s  and others."
 msgstr ""
-"Copyright (c) %s  por\n"
-"%s  y otros."
+"Copyright (c) %s by\n"
+"%s y otros"
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:251
+#: main.cc:230
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
-msgstr "Uso: %s [OPCIÓN]... FICHERO..."
+msgstr "Uso: %s [OPCIÓN]... ARCHIVO..."
 
-#: main.cc:253
+#: main.cc:232
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
-msgstr "Grabar música y/o producir MIDI desde FICHERO"
+msgstr "Componer tipocráficamente la música y/o producir MIDI a partir de ARCHIVO."
 
-#: main.cc:255
+#: main.cc:234
 #, c-format
 msgid "LilyPond produces beautiful music notation."
-msgstr "LilyPond produce una hermosa notación musical"
+msgstr "LilyPond produce una notación musical bella y hermosa."
 
-#: main.cc:257
+#: main.cc:236
 #, c-format
 msgid "For more information, see %s"
-msgstr "Para más información, vea %s"
+msgstr "Para ver más información, consulte %s"
 
-#: main.cc:259
+#: main.cc:238
 #, c-format
 msgid "Options:"
-msgstr "Opciones: "
+msgstr "Opciones:"
 
-#: main.cc:263
+#: main.cc:242
 #, c-format
 msgid "Report bugs via %s"
-msgstr "Informe de errores por medio de %s"
+msgstr "Informe de los fallos a %s."
 
-#: main.cc:309
+#: main.cc:288
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
-msgstr "se esperaba(n) %d argumentos con jail, se encontró: %u"
+msgstr "se esperaban %d argumentos con la jaula, se han encontrado: %u"
 
-#: main.cc:323
+#: main.cc:302
 #, c-format
 msgid "no such user: %s"
-msgstr "no hay tal usuario: %s"
+msgstr "no existe el usuario %s"
 
-#: main.cc:325
+#: main.cc:304
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
-msgstr "no puedo obtener id de usuario a partir del nombre: %s: %s"
+msgstr "no se puede obtener el identificador de usuario a partir del nombre: %s: %s"
 
-#: main.cc:340
+#: main.cc:319
 #, c-format
 msgid "no such group: %s"
-msgstr "no hay tal grupo: %s"
+msgstr "no existe este grupo: %s"
 
-#: main.cc:342
+#: main.cc:321
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
-msgstr "imposible obtener id del grupo desde nombre del grupo: %s: %s"
+msgstr "no se puede obtener el id de grupo a partir del nombre: %s: %s"
 
-#: main.cc:350
+#: main.cc:329
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr "no se puede hacer chroot a: %s: %s"
 
-#: main.cc:357
+#: main.cc:336
 #, c-format
 msgid "cannot change group id to: %d: %s"
-msgstr "imposible cambiar id de grupo a: %d: %s"
+msgstr "no se puede cambiar el grupo del usuario a %d: %s"
 
-#: main.cc:363
+#: main.cc:342
 #, c-format
 msgid "cannot change user id to: %d: %s"
-msgstr "imposible cambiar id de usuario a: %d: %s"
+msgstr "no se puede cambiar el identificador de usuario a %d: %s"
 
-#: main.cc:369
+#: main.cc:348
 #, c-format
 msgid "cannot change working directory to: %s: %s"
-msgstr "imposible cambiar directorio de trabajo a: %s: %s"
+msgstr "no se puede cambiar el directorio de trabajo a: %s: %s"
 
-#: main.cc:415
-#, c-format
-msgid "Evaluating %s"
-msgstr "Evaluando %s"
-
-#: main.cc:645
+#: main.cc:594
 #, c-format
 msgid "exception caught: %s"
-msgstr "ocurrió una excepción: %s"
+msgstr "se ha capturado una excepción: %s"
 
 #. FIXME: constant error message.
 #: mark-engraver.cc:154
 msgid "rehearsalMark must have integer value"
-msgstr "rehearsalMark debe tener un valor de entero"
+msgstr "rehearsalMark debe tener un valor entero"
 
 #: mark-engraver.cc:160
 msgid "mark label must be a markup object"
-msgstr "etiqueta mark debe tener un objeto markup"
+msgstr "la etiqueta de marcado debe ser un objeto de marcado"
 
 #: mensural-ligature-engraver.cc:85
 msgid "ligature with less than 2 heads -> skipping"
-msgstr "ligadura con menos de dos notas -> saltando"
+msgstr "ligadura con menos de dos cabezas; se salta"
 
 #: mensural-ligature-engraver.cc:112
 msgid "cannot determine pitch of ligature primitive -> skipping"
-msgstr "no puedo determinar nota de la primitiva de la ligadura -> saltando"
+msgstr "no se puede determinar la altura de la primitiva de ligadura; se salta"
 
 #: mensural-ligature-engraver.cc:126
 msgid "single note ligature - skipping"
-msgstr "ligadura de una sola nota - saltando"
+msgstr "ligadura de una nota; se salta"
 
 #: mensural-ligature-engraver.cc:138
 msgid "prime interval within ligature -> skipping"
-msgstr "intervalo primo dentro de ligadura -> saltando"
+msgstr "intervalo primo dentro de una ligadura; se salta"
 
 #: mensural-ligature-engraver.cc:150
 msgid "mensural ligature: duration none of Mx, L, B, S -> skipping"
-msgstr "duración de ligadura mensural no es una de Mx, L, B o S -> saltando"
+msgstr "ligadura mensural: la duración no es Mx, L, B ni S; se salta"
 
 #: mensural-ligature-engraver.cc:198
 msgid "semibrevis must be followed by another one -> skipping"
-msgstr "semibrevis debe ser seguida de otra igual -> saltando"
+msgstr "la semibreve debe ir seguida por otra -> se salta"
 
 #: mensural-ligature-engraver.cc:209
 msgid ""
 "semibreves can only appear at the beginning of a ligature,\n"
 "and there may be only zero or two of them"
 msgstr ""
-"sólo puede aparecer una semibreve al principio de una ligadura.\n"
-"y sólo puede haber cero o dos de ellas"
+"las semibreves sólo pueden aparecer al principio de una ligadura,\n"
+"y sólo puede haber dos o ninguna"
 
 #: mensural-ligature-engraver.cc:236
 msgid ""
@@ -1292,358 +1298,409 @@ msgid ""
 "the penultimate note must be another one,\n"
 "or the ligatura must be LB or SSB"
 msgstr ""
-"terminación de ligadura inválida:\n"
-"cuando la última nota es una brevis descendente.\n"
-"la penúltima nota debe ser otra igual,\n"
+"finalización inválida de la ligadura:\n"
+"cuando la última nota es una breve descendente,\n"
+"la penúltima nota debe ser otra breve,\n"
 "o la ligadura debe ser LB o SSB"
 
 #: mensural-ligature-engraver.cc:356
 msgid "unexpected case fall-through"
-msgstr "no se contempló este caso"
+msgstr "opción de caso por defecto inesperada"
 
 #: mensural-ligature.cc:141
 msgid "Mensural_ligature: unexpected case fall-through"
-msgstr "Mensural_ligature: no se esperaba caso no contemplado"
+msgstr "Mensural_ligature (ligadura mensural): caso por defecto inesperado"
 
 #: mensural-ligature.cc:192
 msgid "Mensural_ligature: (join_right == 0)"
-msgstr ""
+msgstr "Mensural_ligature (ligadura mensural): (join_right == 0)"
 
-#: midi-item.cc:152
+#: midi-item.cc:81
 #, c-format
 msgid "no such MIDI instrument: `%s'"
-msgstr "no hay tal instrumento MIDI: `%s'"
-
-#: midi-item.cc:285
-#, c-format
-msgid "experimental: temporarily fine tuning (of %d cents) a channel."
-msgstr "experimental: tempralmente afinando (%d) el canal"
+msgstr "no existe este instrumento MIDI: «%s»"
 
 #: midi-stream.cc:28
 #, c-format
 msgid "cannot open for write: %s: %s"
-msgstr "no se puede abrir para escritura: %s: %s"
+msgstr "no se puede abrir el archivo en modo de escritura: %s: %s"
 
 #: midi-stream.cc:44
 #, c-format
 msgid "cannot write to file: `%s'"
-msgstr "imposible escribir al fichero: `%s'"
+msgstr "no se puede escribir el archivo: «%s»"
 
 #: music-iterator.cc:171
 msgid "Sending non-event to context"
-msgstr "Enviando evento nulo a contexto"
+msgstr "Enviando elemento que no es un evento a un contexto"
 
-#: music.cc:141
+#: music.cc:140
 #, c-format
 msgid "octave check failed; expected \"%s\", found: \"%s\""
-msgstr "revisión de octava falló; esperaba \"%s\", encontré: \"%s\""
+msgstr "fallo en la comprobación de octava; se esperaba \"%s\", se ha encontrado: \"%s\""
 
-#: music.cc:207
+#: music.cc:203
 #, c-format
 msgid "transposition by %s makes alteration larger than double"
-msgstr "transposición por %s hace que la alteración sea mayor que doble"
+msgstr "la transposición de %s transforma la alteración en más que doble"
 
 #: new-fingering-engraver.cc:96
 msgid "cannot add text scripts to individual note heads"
-msgstr "no se puede agregar textos a notas individuales"
+msgstr "no se pueden añadir guiones de texto a cabezas de nota individuales"
 
 #: new-fingering-engraver.cc:239
 msgid "no placement found for fingerings"
-msgstr "no se pudo colocar la digitación"
+msgstr "no se ha encontrado ninguna ubicación válida para las digitaciones"
 
 #: new-fingering-engraver.cc:240
 msgid "placing below"
-msgstr "colocando abajo"
+msgstr "se coloca debajo"
 
-#: note-collision.cc:457
+#: note-collision.cc:464
 msgid "ignoring too many clashing note columns"
-msgstr "ignorando demasiadas columnas de notas en conflicto"
+msgstr "demasiadas columnas de notas que chocan entre sí; se ignoran"
 
 #: note-column.cc:124
 msgid "cannot have note heads and rests together on a stem"
-msgstr "no se pueden colocar cabezas de notas y silencios en la misma plica"
+msgstr "no se pueden tener cabezas de nota y silencios en la misma plica"
 
 #: note-head.cc:63
 #, c-format
 msgid "none of note heads `%s' or `%s' found"
-msgstr "ninguna de las notas `%s' o `%s' encontradas"
+msgstr "no se encuentran las cabezas de nota «%s» ni «%s»"
 
-#: note-heads-engraver.cc:61
+#: note-heads-engraver.cc:64
 msgid "NoteEvent without pitch"
-msgstr "Evento de Nota sin tonalidad"
+msgstr "NoteEvent sin altura"
 
 #: open-type-font.cc:33
 #, c-format
 msgid "cannot allocate %lu bytes"
-msgstr "No se puede asignar %lu bytes"
+msgstr "no se peuden reservar %lu bytes"
 
 #: open-type-font.cc:37
 #, c-format
 msgid "cannot load font table: %s"
-msgstr "no se puede cargar tabla de fuentes: %s"
+msgstr "no se puede cargar la tabla de tipografías: %s"
 
-#: open-type-font.cc:98
+#: open-type-font.cc:42
 #, c-format
-msgid "unsupported font format: %s"
-msgstr "formato de fuente no soportado: %s"
+msgid "Free type error: %s"
+msgstr "error de FreeType: %s"
 
 #: open-type-font.cc:100
 #, c-format
-msgid "unknown error: %d reading font file: %s"
-msgstr "error desconocido: %d al leer archivo de fuente: %s"
+msgid "unsupported font format: %s"
+msgstr "formato de tipografía %s no soportado"
 
-#: open-type-font.cc:173 open-type-font.cc:297
+#: open-type-font.cc:102
 #, c-format
-msgid "FT_Get_Glyph_Name() returned error: %u"
-msgstr "FT_Get_Glyph_Name() regresó error: %u"
+msgid "error reading font file %s: %s"
+msgstr "error al leer la tipografía %s: %s"
 
-#: page-turn-page-breaking.cc:205
-msgid ""
-"cannot fit the first page turn onto a single page.  Consider setting first-"
-"page-number to an even number."
-msgstr "no puedo ajustar primer vuelta de página a una sóla página.  Considere asignar primero un número par para la primer página."
+#: open-type-font.cc:177
+#, c-format
+msgid "FT_Get_Glyph_Name () Freetype error: %s"
+msgstr "error de Freetype en FT_Get_Glyph_Name (): %s"
+
+#: open-type-font.cc:302 pango-font.cc:167
+#, c-format
+msgid "FT_Get_Glyph_Name () error: %s"
+msgstr "error en FT_Get_Glyph_Name (): %s"
 
-#: page-turn-page-breaking.cc:218
+#: page-turn-page-breaking.cc:146
+#, c-format
+msgid "page-turn-page-breaking: breaking from %d to %d"
+msgstr "page-turn-page-breaking: saltando desde %d hasta %d"
+
+#: page-turn-page-breaking.cc:195
+msgid "cannot fit the first page turn onto a single page.  Consider setting first-page-number to an even number."
+msgstr "no se puede ajustar la primera vuelta de página en una página única. Considere la posibilidad de establecer first-page-number a un número par."
+
+#: page-turn-page-breaking.cc:208
 #, c-format
 msgid "Calculating page and line breaks (%d possible page breaks)..."
-msgstr "Calculando paginación y cortes de línea (%d posibles cortes de página)"
+msgstr "Calculando los saltos de página y de línea (%d saltos de página posibles)..."
 
-#: page-turn-page-breaking.cc:236 paper-score.cc:154
+#: page-turn-page-breaking.cc:226 paper-score.cc:146
 msgid "Drawing systems..."
-msgstr "Creando sistemas..."
+msgstr "Dibujando los sistemas..."
+
+#: page-turn-page-breaking.cc:275
+#, c-format
+msgid "break starting at page %d"
+msgstr "el salto comienza en la página %d"
+
+#: page-turn-page-breaking.cc:276
+#, c-format
+msgid "\tdemerits: %f"
+msgstr "\tdemerits: %f"
+
+#: page-turn-page-breaking.cc:277
+#, c-format
+msgid "\tsystem count: %d"
+msgstr "número total de \tsystem: %d"
+
+#: page-turn-page-breaking.cc:278
+#, c-format
+msgid "\tpage count: %d"
+msgstr "número total de \tpage: %d"
+
+#: page-turn-page-breaking.cc:279
+#, c-format
+msgid "\tprevious break: %d"
+msgstr "\tsalto anterior: %d"
 
-#: pango-font.cc:181
+#: pango-font.cc:184
 #, c-format
 msgid ""
 "Glyph has no name, but font supports glyph naming.\n"
 "Skipping glyph U+%0X, file %s"
 msgstr ""
-"El glifo no tiene nombre, pero la fuente soporta el nombrado de glifos.\n"
-"Saltando glifo U+%0X, archivo %s"
+"El glifo no tiene nombre, pero la tipografía soporta nombres de glifo.\n"
+"Se salta el glifo U+%0X, archivo %s"
 
-#: pango-font.cc:224
+#: pango-font.cc:229
 #, c-format
 msgid "no PostScript font name for font `%s'"
-msgstr "no existe esa fuente PostScript: `%s'"
+msgstr "no hay un nombre de tipografía PostScript para «%s»"
 
-#: pango-font.cc:272
+#: pango-font.cc:277
 msgid "FreeType face has no PostScript font name"
-msgstr "Fuente FreeType no tiene un nombre de fuente PostScript"
+msgstr "El tipo FreeType no tiene un nombre de tipografía PostScript"
+
+#: paper-column-engraver.cc:199
+msgid "forced break was overridden by some other event, should you be using bar checks?"
+msgstr "el salto forzado ha sido sobreestablecido por algún otro evento, ¿quizá deba usar comprobaciones de compás?"
 
-#: paper-outputter-scheme.cc:33
+#: paper-outputter-scheme.cc:30
 #, c-format
 msgid "Layout output to `%s'..."
-msgstr "Diseño de página generado en `%s'..."
+msgstr "Salida de la página hacia «%s»..."
 
 #: paper-score.cc:105
 msgid "Calculating line breaks..."
-msgstr "Calculando cortes de línea..."
+msgstr "Calculando los saltos de línea..."
 
 #: paper-score.cc:118
 #, c-format
 msgid "Element count %d (spanners %d) "
-msgstr "Elementos contados %d (spanners %d) "
+msgstr "Cantidad de elementos: %d (trazadores: %d)"
 
 #: paper-score.cc:122
 msgid "Preprocessing graphical objects..."
-msgstr "Preprocesando objetos gráficos..."
+msgstr "Preprocesando los objetos gráficos..."
 
-#: parse-scm.cc:83
+#: parse-scm.cc:87
 msgid "GUILE signaled an error for the expression beginning here"
-msgstr "GUILE señaló un error para la expresión iniciada aquí"
+msgstr "GUILE ha señalado un error para la expresión que comienza aquí"
 
 #: percent-repeat-engraver.cc:200
 msgid "unterminated percent repeat"
 msgstr "repetición de porcentaje sin terminar"
 
-#: performance.cc:45
+#: performance.cc:43
 msgid "Track..."
-msgstr "Pista..."
+msgstr "Pista ... "
 
-#: performance.cc:74
+#: performance.cc:72
 msgid "MIDI channel wrapped around"
-msgstr "Se envolvió al canal MIDI"
+msgstr "ha dado la vuelta el número de canal MIDI"
 
-#: performance.cc:75
+#: performance.cc:73
 msgid "remapping modulo 16"
-msgstr "remapeando modulo 16"
+msgstr "se reasigna módulo 16"
 
-#: performance.cc:103
+#: performance.cc:101
 #, c-format
 msgid "MIDI output to `%s'..."
-msgstr "Salida MIDI a `%s'..."
+msgstr "Salida MIDI hacia «%s»..."
 
-#: phrasing-slur-engraver.cc:146
+#: phrasing-slur-engraver.cc:131
 msgid "unterminated phrasing slur"
-msgstr "ligadura de praseo no terminada"
+msgstr "ligadura de fraseo sin terminar"
 
 #: piano-pedal-engraver.cc:286
 #, c-format
 msgid "expect 3 strings for piano pedals, found: %ld"
-msgstr "esperaba tres cadenas de texto para pedales de piano, se encontraron: %ld"
+msgstr "se eseperaban 3 cadenas para los pedales de piano, se han encontrado: %ld"
 
 #: piano-pedal-engraver.cc:301 piano-pedal-engraver.cc:312
 #: piano-pedal-performer.cc:93
 #, c-format
 msgid "cannot find start of piano pedal: `%s'"
-msgstr "No se encuentra pedal de piano inicial: `%s'"
+msgstr "no se encuentra el comienzo del pedal de piano «%s»"
 
 #: piano-pedal-engraver.cc:347
 #, c-format
 msgid "cannot find start of piano pedal bracket: `%s'"
-msgstr "no se encuentra el principio del pedal: `%s'"
+msgstr "no se encuentra el comienzo del corchete de pedal de piano «%s»"
 
-#: program-option.cc:205
+#: program-option-scheme.cc:207
 #, c-format
 msgid "no such internal option: %s"
-msgstr "no existe esa opción: %s"
+msgstr "no existe la opción interna %s"
 
 #: property-iterator.cc:74
 #, c-format
 msgid "not a grob name, `%s'"
-msgstr "No es un nombre de elemento, `%s'"
+msgstr "no es un nombre de objeto gráfico: «%s»"
 
 #: relative-octave-check.cc:38
 msgid "Failed octave check, got: "
-msgstr "Falló la revisión de octava, se obtuvo: "
+msgstr "La comprobación de octaba ha fallado, se ha obtenido: "
 
 #: relocate.cc:44
 #, c-format
 msgid "Setting %s to %s"
-msgstr "Asignando %s a %s"
+msgstr "Se establece %s a %s"
 
-#: relocate.cc:59
+#: relocate.cc:64
 #, c-format
 msgid "no such file: %s for %s"
-msgstr "no hay tal archivo: %s para %s"
+msgstr "no existe el archivo: %s para %s"
 
-#: relocate.cc:69 relocate.cc:87
+#: relocate.cc:74 relocate.cc:92
 #, c-format
 msgid "no such directory: %s for %s"
-msgstr "no existe el directorio: %s para %s"
+msgstr "no existe este directorio: %s para %s"
 
-#: relocate.cc:79
+#: relocate.cc:84
 #, c-format
 msgid "%s=%s (prepend)\n"
-msgstr ""
+msgstr "%s=%s (prefijar)\n"
 
-#: relocate.cc:99
+#: relocate.cc:114
 #, c-format
-msgid "Relocation: compile prefix=%s, new prefix=%s"
-msgstr "Relocación: prefijo de compilación=%s, nuevo prefijo=%s"
+msgid "not relocating, no %s/ or current/ found under %s"
+msgstr "no se relocaliza, no se ha encontrado %s/ ni current/ bajo %s"
 
-#: relocate.cc:129
+#: relocate.cc:125
+#, c-format
+msgid "Relocation: compile datadir=%s, new datadir=%s"
+msgstr "Relocalización: en la compilación datadir=%s, el nuevo datadir=%s"
+
+#: relocate.cc:138
 #, c-format
 msgid "Relocation: framework_prefix=%s"
-msgstr "Relocación: framework_prefix=%s"
+msgstr "Relocalización: framework_prefix=%s"
 
-#: relocate.cc:169
+#: relocate.cc:179
 #, c-format
 msgid "Relocation: is absolute: argv0=%s"
-msgstr "Relocación: es absoluta: argv0=%s"
+msgstr "Relocalización: es absoluto: argv0=%s"
 
-#: relocate.cc:176
+#: relocate.cc:186
 #, c-format
 msgid "Relocation: from cwd: argv0=%s"
-msgstr "Relocación: desde cwd: argv0=%s"
+msgstr "Relocalización: desde cwd: argv0=%s"
 
-#: relocate.cc:185
+#: relocate.cc:195
 #, c-format
 msgid ""
 "Relocation: from PATH=%s\n"
 "argv0=%s"
 msgstr ""
-"Relocación: desde TRAYECTO=%s\n"
+"Relocalización: desde PATH=%s\n"
 "argv0=%s"
 
-#: relocate.cc:354
+#: relocate.cc:229
+msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
+msgstr "LILYPONDPREFIX está obsoleto, utilice LILYPOND_DATADIR"
+
+#: relocate.cc:357
 #, c-format
 msgid "Relocation file: %s"
-msgstr "Archivo de relocación: %s"
+msgstr "Archivo de relocalización: %s"
 
-#: relocate.cc:390
+#: relocate.cc:393
 #, c-format
 msgid "Unknown relocation command %s"
-msgstr "Comando de relocación desconocido: %s"
+msgstr "instrucción de relocalización %s desconocida"
 
-#: rest-collision.cc:151
+#: rest-collision.cc:145
 msgid "cannot resolve rest collision: rest direction not set"
-msgstr "no puedo resolver colisión de silencios: no se fijó dirección de silencio"
+msgstr "no se puede resolver la colisión de los silencios: la dirección de los silencios no se ha establecido"
 
-#: rest-collision.cc:165 rest-collision.cc:210
+#: rest-collision.cc:159 rest-collision.cc:204
 msgid "too many colliding rests"
 msgstr "demasiados silencios en colisión"
 
-#: rest.cc:144
+#: rest.cc:132
 #, c-format
 msgid "rest `%s' not found"
-msgstr "silencio `%s' no encontrado"
+msgstr "no se ha encontrado el silencio «%s»"
 
 #: score-engraver.cc:67
 #, c-format
 msgid "cannot find `%s'"
-msgstr "imposible encontrar: `%s'"
+msgstr "No se encuentra «%s»"
 
 #: score-engraver.cc:69
 msgid "Music font has not been installed properly."
-msgstr "La fuente de música no ha sido instalada correctamente"
+msgstr "La tipografía de música no se ha instalado correctamente."
 
 #: score-engraver.cc:71
 #, c-format
 msgid "Search path `%s'"
-msgstr "Ruta de búsqueda: `%s'"
+msgstr "Ruta de búsqueda «%s»"
 
 #: score-engraver.cc:73
 msgid "Aborting"
 msgstr "Abortando"
 
-#: score.cc:225
+#: score.cc:167
 msgid "already have music in score"
-msgstr "debe existir música en la partitura"
+msgstr "ya tiene música en la partitura"
 
-#: score.cc:226
+#: score.cc:168
 msgid "this is the previous music"
-msgstr "esta es la música previa"
+msgstr "esta es la música precedente"
 
-#: score.cc:231
+#: score.cc:173
 msgid "errors found, ignoring music expression"
-msgstr "se encontraron errores, ignorando expresión musical"
+msgstr "se han encontrado errores, se ignora la expresión musical"
 
 #. FIXME:
 #: script-engraver.cc:102
 msgid "do not know how to interpret articulation: "
-msgstr "no se sabe como interpretar la articulación `%s'"
+msgstr "no sabemos cómo interpretar la articulación:"
 
 #: script-engraver.cc:103
 msgid "scheme encoding: "
-msgstr "codificación scheme"
+msgstr "codificación de Scheme: "
 
-#: simple-spacer.cc:375
-#, c-format
-msgid "No spring between column %d and next one"
-msgstr "No hay separación entre la columna %d y la siguiente"
-
-#: slur-engraver.cc:83 tuplet-engraver.cc:75
+#: slur-engraver.cc:82
 #, c-format
 msgid "direction of %s invalid: %d"
-msgstr "dirección de %s es inválida: %d"
+msgstr "dirección inválida de %s: %d"
 
-#: slur-engraver.cc:157
+#: slur-engraver.cc:151
 msgid "unterminated slur"
-msgstr "ligadura sin terminar"
+msgstr "ligadura de expresión sin terminar"
 
-#: slur-engraver.cc:166
+#: slur-engraver.cc:163
 msgid "cannot end slur"
-msgstr "no se puede terminar frase"
+msgstr "no se puede terminar la ligadura de expresión"
+
+#: slur.cc:355
+#, c-format
+msgid "Ignoring grob for slur: %s. avoid-slur not set?"
+msgstr "Se ignora el objeto gráfico para la ligadura: %s. ¿No está establecido avoid-slur?"
 
 #: source-file.cc:74
 #, c-format
 msgid "expected to read %d characters, got %d"
-msgstr "se esperaba leer %d caracteres, se obtuvieron %d"
+msgstr "se esperaba leer %d caracteres, se han obtenido %d"
+
+#: spaceable-grob.cc:117
+#, c-format
+msgid "No spring between column %d and next one"
+msgstr "No hay separación entre la columna %d y la siguiente"
 
 #: staff-symbol-engraver.cc:62
 msgid "staff-span event has no direction"
-msgstr "evento de 'staff-span' sin idirección"
+msgstr "el evento staff-span no tiene dirección"
 
 #: stem-engraver.cc:92
 msgid "tremolo duration is too long"
@@ -1653,51 +1710,51 @@ msgstr "la duración del trémolo es demasiado larga"
 #: stem-engraver.cc:129
 #, c-format
 msgid "adding note head to incompatible stem (type = %d)"
-msgstr "añadiendo cabeza de nota a plica incompatible (tipo = %d)"
+msgstr "añadiendo cabeza de nota a una plica incompatible (tipo = %d)"
 
 #: stem-engraver.cc:131
 msgid "maybe input should specify polyphonic voices"
-msgstr "Quizás la entrada deba especificar voces polifónicas"
+msgstr "quizá la entrada debiera especificar voces polifónicas"
 
 #: stem.cc:105
 msgid "weird stem size, check for narrow beams"
-msgstr "longitud extraña de plica, revisando barras angostas"
+msgstr "tamaño de plica extraño, compruebe que no haya barras estrechas"
 
-#: stem.cc:641
+#: stem.cc:618
 #, c-format
 msgid "flag `%s' not found"
-msgstr "bandera `%s' no encontrada"
+msgstr "no se encuentra el indicador «%s»"
 
-#: stem.cc:652
+#: stem.cc:629
 #, c-format
 msgid "flag stroke `%s' not found"
-msgstr "flag stroke `%s' no encontrada"
+msgstr "no se encuentra el impacto «%s» de indicador"
 
 #: system.cc:180
 #, c-format
 msgid "Element count %d."
-msgstr "Elementos contados %d."
+msgstr "Número total de elementos %d."
 
-#: system.cc:276
+#: system.cc:266
 #, c-format
 msgid "Grob count %d"
-msgstr "Elementos contados %d"
+msgstr "Número de objetos gráficos: %d"
 
-#: text-spanner-engraver.cc:61
+#: text-spanner-engraver.cc:60
 msgid "cannot find start of text spanner"
-msgstr "no se puede encontrar inicio de spanner de texto"
+msgstr "no se encuentra el principio del trazador de texto"
 
-#: text-spanner-engraver.cc:73
+#: text-spanner-engraver.cc:72
 msgid "already have a text spanner"
-msgstr "ya hay un spanner de texto"
+msgstr "ya hay un trazador de texto"
 
-#: text-spanner-engraver.cc:133
+#: text-spanner-engraver.cc:118
 msgid "unterminated text spanner"
-msgstr "spanner de texto sin terminar"
+msgstr "trazador de texto sin terminar"
 
-#: tie-engraver.cc:264
+#: tie-engraver.cc:267
 msgid "lonely tie"
-msgstr "ligadura solitaria"
+msgstr "ligadura de unión solitaria"
 
 #.
 #. Todo: should make typecheck?
@@ -1707,141 +1764,150 @@ msgstr "ligadura solitaria"
 #: time-signature-engraver.cc:64
 #, c-format
 msgid "strange time signature found: %d/%d"
-msgstr "se encontró un compás extraño: %d/%d"
+msgstr "se ha encontrado una indicación extraña de compás: %d/%d"
 
 #. If there is no such symbol, we default to the numbered style.
 #. (Here really with a warning!)
 #: time-signature.cc:83
 #, c-format
 msgid "time signature symbol `%s' not found; reverting to numbered style"
-msgstr "no se encontró un símbolo de compás `%s'; revirtiendo a estilo numerado"
+msgstr "no se encuentra el símbolo de compás «%s»; se vuelve al estilo numerado"
 
 #: translator-ctors.cc:52
 #, c-format
 msgid "unknown translator: `%s'"
-msgstr "traductor desconocido: `%s'"
+msgstr "traductor desconocido: «%s»"
+
+#: translator-group-ctors.cc:29
+#, c-format
+msgid "fatal error. Couldn't find type: %s"
+msgstr "error fatal. No se ha encontrado el tipo: %s"
 
-#: translator-group.cc:151
+#: translator-group.cc:146
 #, c-format
 msgid "cannot find: `%s'"
-msgstr "no se puede encontrar: `%s'"
+msgstr "no se encuentra «%s»"
 
-#: translator.cc:332
+#: translator.cc:346
 #, c-format
 msgid "Two simultaneous %s events, junking this one"
-msgstr "Dos eventos %s simultáneos, descartando este"
+msgstr "Dos eventos %s simultáneos, se recorta éste"
 
-#: translator.cc:333
+#: translator.cc:347
 #, c-format
 msgid "Previous %s event here"
-msgstr "Evento %s previo aquí"
+msgstr "El evento %s previo está aquí"
 
-#: trill-spanner-engraver.cc:68
+#: trill-spanner-engraver.cc:67
 msgid "cannot find start of trill spanner"
-msgstr "no se encuentra el inicio del trino"
+msgstr "no se encuentra el principio del trazador de trino"
 
-#: trill-spanner-engraver.cc:80
+#: trill-spanner-engraver.cc:79
 msgid "already have a trill spanner"
-msgstr "ya hay un trino"
+msgstr "ya tiene un trazador de trino"
+
+#: tuplet-engraver.cc:96
+msgid "No tuplet to end"
+msgstr "no hay ningún grupo especial que terminar"
 
 #: vaticana-ligature-engraver.cc:388
 #, c-format
-msgid ""
-"ignored prefix (es) `%s' of this head according to restrictions of the "
-"selected ligature style"
-msgstr "se ignora prefijo(s) `%s' de esta nota de acuerdo a las restricciones de estilo de ligadura seleccionada"
+msgid "ignored prefix (es) `%s' of this head according to restrictions of the selected ligature style"
+msgstr "prefijo(s) «%s» de esta cabeza ignorado(s) de acuerdo con las restricciones del estilo de ligadura seleccionado"
 
 #: vaticana-ligature-engraver.cc:714
 #, c-format
 msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul"
-msgstr "Vaticana_ligature_engraver: asignando `spacing-increment = %f': ptr =%ul"
+msgstr "Vaticana_ligature_engraver: se establece `spacing-increment = %f': ptr =%ul"
 
 #: vaticana-ligature.cc:84
 msgid "flexa-height undefined; assuming 0"
-msgstr "flexa-height no definida, se asume 0"
+msgstr "la altura flexa-height no está definida; se supone que es 0"
 
 #: vaticana-ligature.cc:89
 msgid "ascending vaticana style flexa"
-msgstr "estilo ascendente vaticana flexa"
+msgstr "flexa ascendente de estilo vaticana"
 
 #: vaticana-ligature.cc:177
 msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
-msgstr "Vaticana_ligature: unión cero join (delta_pitch == 0)"
+msgstr "Vaticana_ligature: unión nula (delta_pitch == 0)"
 
 #. fixme: be more verbose.
-#: volta-engraver.cc:144
+#: volta-engraver.cc:143
 msgid "cannot end volta spanner"
-msgstr "no se encuentra en final de la repetición"
+msgstr "no se puede terminar el trazador de volta"
 
-#: volta-engraver.cc:154
+#: volta-engraver.cc:153
 msgid "already have a volta spanner, ending that one prematurely"
-msgstr "ya existe un spanner de volta, terminando este de forma prematura"
+msgstr "ya hay un trazador de volta, se acaba éste de forma prematura"
 
-#: volta-engraver.cc:158
+# also...?
+#: volta-engraver.cc:157
 msgid "also already have an ended spanner"
-msgstr "ya hay un final de volta"
+msgstr "ya hay un trazador finalizado"
 
-#: volta-engraver.cc:159
+#: volta-engraver.cc:158
 msgid "giving up"
-msgstr "Abandonando"
+msgstr "abandonando"
 
-#: parser.yy:702
+#: parser.yy:704
 msgid "\\paper cannot be used in \\score, use \\layout instead"
-msgstr "\\paper no puede ser usado en \\score, mejor use \\layout"
+msgstr "no se puede usar \\paper dentro de \\score, utilice \\layout en su lugar"
 
-#: parser.yy:726
+#: parser.yy:728
 msgid "need \\paper for paper block"
-msgstr "se requiere \\paper para la sección paper"
+msgstr "es necesario \\paper para el bloque 'paper'"
 
-#: parser.yy:1172
+#: parser.yy:1187
 msgid "Grob name should be alphanumeric"
-msgstr "El nombre del elemento debe ser alfanumérico"
+msgstr "El nombre del objeto gráfico ha de ser alfanumérico"
 
-#: parser.yy:1475
+#: parser.yy:1485
 msgid "second argument must be pitch list"
-msgstr "El segundo argumento debe ser una lista de tonos"
+msgstr "el segundo argumento debe ser una lista de notas"
 
-#: parser.yy:1502 parser.yy:1507 parser.yy:1972
+#: parser.yy:1512 parser.yy:1517 parser.yy:1982
 msgid "have to be in Lyric mode for lyrics"
-msgstr "Debe estar en modo Lyric para letra"
+msgstr "para la letra se debe estar en el modo Lyric"
 
-#: parser.yy:1604
+#: parser.yy:1614
 msgid "expecting string as script definition"
-msgstr "esperando una cadena de texto como definición del script"
+msgstr "se espera una cadena como definición del guión"
 
-#: parser.yy:1759 parser.yy:1809
+#: parser.yy:1769 parser.yy:1819
 #, c-format
 msgid "not a duration: %d"
 msgstr "no es una duración: %d"
 
-#: parser.yy:1926
+#: parser.yy:1936
 msgid "have to be in Note mode for notes"
-msgstr "debe estar en modo de Note para notas"
+msgstr "para las notas se debe estar en el modo Note"
 
-#: parser.yy:1987
+#: parser.yy:1997
 msgid "have to be in Chord mode for chords"
-msgstr "debe estar en modo Chord para acordes"
+msgstr "para los acordes se debe estar en el modo Chord"
 
+# stray?
 #: lexer.ll:176
 msgid "stray UTF-8 BOM encountered"
-msgstr "se encontró caracter UTF-8 BOM aislado"
+msgstr "se ha encontrado una marca BOM de UTF-8 extraña"
 
 #: lexer.ll:180
 msgid "Skipping UTF-8 BOM"
-msgstr "Saltando UTF-8 BOM"
+msgstr "Se salta el BOM de UTF-8"
 
 #: lexer.ll:235
 #, c-format
 msgid "Renaming input to: `%s'"
-msgstr "Renombrando entrada a: `%s'"
+msgstr "Renombrando la entrada a: «%s»"
 
 #: lexer.ll:252
 msgid "quoted string expected after \\version"
-msgstr "se esperaba cadena entre comillas después de \\version"
+msgstr "se esperaba una cadena entre comillas después de \\version"
 
 #: lexer.ll:256
 msgid "quoted string expected after \\sourcefilename"
-msgstr "se esperaba cadena entre comillas después de \\sourcefilename"
+msgstr "se esperaba una cadena entre comillas después de \\sourcefilename"
 
 #: lexer.ll:260
 msgid "integer expected after \\sourcefileline"
@@ -1849,138 +1915,138 @@ msgstr "se esperaba un entero después de \\sourcefileline"
 
 #: lexer.ll:273
 msgid "EOF found inside a comment"
-msgstr "Se encontró FIN de FICHERO dentro de un comentario"
+msgstr "se ha encontrado EOF (fin de archivo) dentro de un comentario"
 
 #: lexer.ll:288
 msgid "\\maininput not allowed outside init files"
-msgstr "\\maininput no es permitido fuera de los archivos de incicialización"
+msgstr "no se permite \\maininput fuera de los archivos de inicio"
 
 #: lexer.ll:312
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
-msgstr "identificativo equivocado o no definido: `%s'"
+msgstr "identificativo equivocado o no definido: «%s»"
 
 #. backup rule
 #: lexer.ll:321
 msgid "end quote missing"
-msgstr "comillas de cierre faltantes"
+msgstr "faltan las comillas de cierre"
 
 #: lexer.ll:466
 msgid "Brace found at end of lyric.  Did you forget a space?"
-msgstr "Se encontró un corchete al final de una letra. ¿Olvidó poner espacio?"
+msgstr "Se ha encontrado una llave al final de la letra. ¿Olvidó un espacio?"
 
 #: lexer.ll:559
 msgid "Brace found at end of markup.  Did you forget a space?"
-msgstr "Se encontró un corchete al final de un markup. ¿Olvidó poner espacio?"
+msgstr "Se ha encontrado una llave al final del marcado, ¿Olvidó un espacio?"
 
-#: lexer.ll:659
+#: lexer.ll:663
 #, c-format
 msgid "invalid character: `%c'"
-msgstr "carácter no válido: `%c'"
+msgstr "carácter no válido: «%c»"
 
-#: lexer.ll:774 lexer.ll:775
+#: lexer.ll:778
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "cadena de escape desconocida: `\\%s'"
 
-#: lexer.ll:880 lexer.ll:881
+#: lexer.ll:884
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
-msgstr "versión de archivo demasiado vieja: %s (más antigua soportada: %s)"
+msgstr "archivo demasiado antiguo: %s (el más antiguo que se puede tratar es: %s)"
 
-#: lexer.ll:881 lexer.ll:882
+#: lexer.ll:885
 msgid "consider updating the input with the convert-ly script"
-msgstr "considere actualizar la entrada con el script convert-ly"
+msgstr "considere la actualización de la entrada mediante el guión (script) convert-ly"
 
-#: lexer.ll:887 lexer.ll:888
+#: lexer.ll:891
 #, c-format
 msgid "program too old: %s (file requires: %s)"
-msgstr "programa demasiado viejo: %s (archivo requiere: %s)"
+msgstr "el programa es demasiado antiguo: %s (el archivo necesita: %s)"
 
-#: backend-library.scm:19 lily.scm:599 ps-to-png.scm:82
+#: backend-library.scm:19 lily.scm:752 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
-msgstr "Invocando `~a'..."
+msgstr "Invocando «~a»..."
 
-#: backend-library.scm:24
+#: backend-library.scm:28
 #, scheme-format
 msgid "`~a' failed (~a)"
-msgstr "`~a' falló (~a)"
+msgstr "«~a» ha fallado (~a)"
 
-#: backend-library.scm:95 framework-tex.scm:343 framework-tex.scm:368
+#: backend-library.scm:115 framework-tex.scm:343 framework-tex.scm:368
 #, scheme-format
 msgid "Converting to `~a'..."
-msgstr "Convirtiendo a `~a'..."
+msgstr "Convirtiendo en «~a»..."
 
-#: backend-library.scm:108
+#: backend-library.scm:128
 #, scheme-format
 msgid "Converting to ~a..."
-msgstr "Convirtiendo a ~a..."
+msgstr "Convirtiendo en ~a..."
 
-#: backend-library.scm:145
+#: backend-library.scm:166
 #, scheme-format
 msgid "Writing header field `~a' to `~a'..."
-msgstr "Escribiendo el campo de cabecera `~a' to `~a'..."
+msgstr "Escribiendo el campo de encabezamiento «~a» en «~a»..."
 
 #: define-context-properties.scm:20 define-grob-properties.scm:10
 #: define-music-properties.scm:10
 #, scheme-format
 msgid "symbol ~S redefined"
-msgstr "símbolo ~S redefinido"
+msgstr "redefinido el símbolo ~S"
 
 #: define-event-classes.scm:119
 #, scheme-format
 msgid "event class ~A seems to be unused"
-msgstr "evento de clase ~A parece no ser usado"
+msgstr "parece que la clase de evento ~A está sin usar"
 
 #. should be programming-error
 #: define-event-classes.scm:125
 #, scheme-format
 msgid "translator listens to nonexisting event class ~A"
-msgstr "traductor escucha a un evento de clase inexistente ~A"
+msgstr "el traductor está escuchando a una clase de evento ~A que no existe"
 
-#: define-markup-commands.scm:255
+#: define-markup-commands.scm:273
 msgid "no systems found in \\score markup, does it have a \\layout block?"
-msgstr "No se encontraron sistemas en el bloque \\score, tiene un bloque de \\layout?"
+msgstr "no se ha encontrado ningún sistema en el marcado \\score, ¿tiene un bloque \\layout?"
 
-#: define-markup-commands.scm:1297
+#: define-markup-commands.scm:1315
 #, scheme-format
 msgid "not a valid duration string: ~a"
-msgstr "no representa una duración válida: ~a"
+msgstr "no es una cadena válida de duración: ~a"
 
-#: define-music-types.scm:751
+#: define-music-types.scm:743
 #, scheme-format
 msgid "symbol expected: ~S"
-msgstr "se esperaba un símbolo:~S"
+msgstr "se esperaba un símbolo: ~S"
 
-#: define-music-types.scm:754
+#: define-music-types.scm:746
 #, scheme-format
 msgid "cannot find music object: ~S"
-msgstr "no se encuentra objeto musical: ~S"
+msgstr "no se encuentra el objeto musical ~S"
 
-#: define-music-types.scm:774
+#: define-music-types.scm:766
 #, scheme-format
 msgid "unknown repeat type `~S'"
-msgstr "tipo de repetición desconocido `~S'"
+msgstr "tipo de repetición «~S» desconocido"
 
-#: define-music-types.scm:775
+#: define-music-types.scm:767
 msgid "See music-types.scm for supported repeats"
-msgstr "Vea music-types.scp para repeticiones soportadas"
+msgstr "Consulte el archivo music-types.scm para ver los tipos de repetición soportados"
 
 #: document-backend.scm:91
 #, scheme-format
 msgid "pair expected in doc ~s"
-msgstr "se esperaba un par en doc ~s"
+msgstr "se esperaba una pareja en el documento ~s"
 
 #: document-backend.scm:135
 #, scheme-format
 msgid "cannot find interface for property: ~S"
-msgstr "no se encuentra interface para la propiedad: ~S"
+msgstr "no se encuentra un interface para la propiedad ~S"
 
 #: document-backend.scm:145
 #, scheme-format
 msgid "unknown Grob interface: ~S"
-msgstr "Interface de elemento desconocida: ~S"
+msgstr "interfaz de Objeto gráfico desconocido: ~S"
 
 #: documentation-lib.scm:45
 #, scheme-format
@@ -1995,217 +2061,557 @@ msgstr "Escribiendo ~S..."
 #: documentation-lib.scm:172
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
-msgstr "no se encuentra la descripción para la propiedad ~S(~S)"
+msgstr "no se encuentra la descripción de la propiedad ~S (~S)"
 
-#: framework-eps.scm:91 framework-eps.scm:92
+#: framework-eps.scm:89
 #, scheme-format
 msgid "Writing ~a..."
-msgstr "Escribiendo ~a..."
+msgstr "Escribiendo «~a»..."
 
-#: framework-ps.scm:279
+#: framework-ps.scm:281
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr "no se puede empotrar ~S=~S"
 
-#: framework-ps.scm:332
+#: framework-ps.scm:334
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
-msgstr "no se puede extraer archivo que concuerde ~a desde ~a"
+msgstr "no se puede extraer la coincidencia de archivos ~a a partir de ~a"
 
-#: framework-ps.scm:349
+#: framework-ps.scm:351
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
-msgstr "se ignora como empotrar ~S=~S"
+msgstr "no sabemos cómo empotrar ~S=~S"
 
-#: framework-ps.scm:380
+#: framework-ps.scm:382
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
-msgstr "no se sabe como empotrar la fuente ~s ~s ~s"
+msgstr "no sabemos cómo empotrar la tipografía ~s ~s ~s"
 
-#: framework-ps.scm:729
+#: framework-ps.scm:731
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr "no se puede convertir <stdout> a ~S"
 
-#: framework-ps.scm:748 framework-ps.scm:751
+#: framework-ps.scm:750 framework-ps.scm:753
 #, scheme-format
 msgid "cannot generate ~S using the postscript back-end"
-msgstr "no se puede generar ~S usando el backend postscript"
+msgstr "no se puede generar ~S usando el back-end de postscript"
 
-#: framework-ps.scm:758
+#: framework-ps.scm:760
 msgid ""
 "\n"
-"The PostScript backend does not support the 'classic'\n"
-"framework. Use the EPS backend instead,\n"
+"The PostScript backend does not support the system-by-system \n"
+"output. For that, use the EPS backend instead,\n"
 "\n"
 "  lilypond -b eps <file>\n"
 "\n"
-"or remove the lilypond-book specific settings from the input.\n"
+"If have cut & pasted a lilypond fragment from a webpage, be sure\n"
+"to only remove anything before\n"
+"\n"
+"  %% ****************************************************************\n"
+"  %% Start cut-&-pastable-section\n"
+"  %% ****************************************************************\n"
+"\n"
 msgstr ""
 "\n"
-"El procesador PostScript no soporta la infraestructura 'clásica'.\n"
-"Use el procesador EPS en su lugar.\n"
-"  lilipond -b eps <archivo>\n"
-"\\ "
-"o elimine sintaxis específicas de lilypond-book de la entrada.\n"
+"El 'backend' de PostScript no soporta la salida sistema a sistema.\n"
+"Para ello, use en su lugar el 'backend' EPS,\n"
+"\n"
+"  lilypond -b eps <archivo>\n"
+"\n"
+"Si ha copiado y pegado un fragmento de lilypond desde una página web,\n"
+"asegúrese de quitar solamente lo que esté antes de\n"
+"\n"
+"  %% ****************************************************************\n"
+"  %% Start cut-&-pastable-section\n"
+"  %% ****************************************************************\n"
+"\n"
 
 #: framework-tex.scm:360
 #, scheme-format
 msgid "TeX file name must not contain whitespace: `~a'"
-msgstr "El nombre del archivo TeX no puede contener espacios: `~a'"
+msgstr "El nombre del archivo de TeX no debe contener espacios: «~a»"
+
+#: graphviz.scm:53
+#, scheme-format
+msgid "Writing graph `~a'..."
+msgstr "Escribiendo el gráfico «~a»..."
 
 #: layout-beam.scm:29
 #, scheme-format
 msgid "Error in beam quanting.  Expected (~S,~S) found ~S."
-msgstr "Error en cuantizado de barras. Esperaba (~S,~S) se encontró ~S"
+msgstr "Error en la cuantización de la barra.  Se esperaba (~S,~S), se ha encontrado ~S."
 
 #: layout-beam.scm:46
 #, scheme-format
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
-msgstr "Error en cuantizado de barras. Esperaba ~S 0, se encontró ~S"
+msgstr "Error en la cuantización de la barra.  Se esperaba ~S 0, se ha encontrado ~S."
 
-#: layout-page-layout.scm:357
+#: layout-page-layout.scm:115
+msgid "Can't fit systems on page -- ignoring between-system-padding"
+msgstr "No se pueden dar cabida a todos los sistemas en la página; se ignora between-system-padding"
+
+#: layout-page-layout.scm:449
 msgid "Calculating page breaks..."
-msgstr "Calculando cortes de página..."
+msgstr "Calculando saltos de página..."
 
-#: lily-library.scm:593
+#: lily-library.scm:545
 #, scheme-format
 msgid "unknown unit: ~S"
-msgstr "unidad desconocida: ~S"
+msgstr "unidad desconocida: ~S "
 
-#: lily-library.scm:626
+#: lily-library.scm:579
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
-msgstr "no se encontró enunciado \\version, por favor añáda ~a para compatibilidad futura."
+msgstr "no se ha encontrado ninguna instrucción \\version, escriba~apara disponer de compatibilidad en el futuro"
 
-#: lily-library.scm:633
+#: lily-library.scm:587
 msgid "old relative compatibility not used"
-msgstr "old relative: compatibilidad anitgua no se usó"
+msgstr "no se ha usado la compatibilidad con el modo relativo antiguo"
 
-#: lily.scm:144
+#: lily.scm:173
 #, scheme-format
 msgid "cannot find: ~A"
-msgstr "no se puede encontrar: ~A"
+msgstr "no se encuentra: ~A"
 
-#: lily.scm:209
+#: lily.scm:238
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
-msgstr "argumento erróneo ~a.  Se esperaba ~a, se encontró ~s"
+msgstr "tipo equivocado para el argumento ~a.  Se esperaba ~a, se encontró ~s"
+
+#: lily.scm:619
+#, scheme-format
+msgid "job ~a terminated with signal: ~a"
+msgstr "la tarea ~a ha terminado con la señal: ~a"
 
-#: lily.scm:525 lily.scm:589
+#: lily.scm:622
+#, scheme-format
+msgid ""
+"logfile ~a (exit ~a):\n"
+"~a"
+msgstr ""
+"archivo de registro ~a (salida ~a):\n"
+"~a"
+
+#: lily.scm:649 lily.scm:742
 #, scheme-format
 msgid "failed files: ~S"
-msgstr "se falló en los archivos: ~S"
+msgstr "archivos que han fallado: ~S"
 
-#: lily.scm:579
+#: lily.scm:732
 #, scheme-format
 msgid "Redirecting output to ~a..."
-msgstr "Redirigiendo salida a ~a..."
+msgstr "Redirigiendo la salida hacia ~a..."
 
 #: ly-syntax-constructors.scm:40
 msgid "Music head function must return Music object"
-msgstr "Función de cabecera de Music debe regresar un objeto Music."
+msgstr "La función principal de música debe devolver un objeto musical"
 
-#: ly-syntax-constructors.scm:136
+#: ly-syntax-constructors.scm:139
 #, scheme-format
 msgid "Invalid property operation ~a"
-msgstr "Operación de propiedad inválida ~a"
+msgstr "Operación de propiedad ~a inválida"
 
-#: markup.scm:123
+#: markup.scm:94
 #, scheme-format
 msgid "Wrong number of arguments.  Expect: ~A, found ~A: ~S"
-msgstr "Cantidad errónea de argumentos.  Esperaba: ~A, se encontró ~A: ~S"
+msgstr "Número de agumentos equivocado.  Se esperaban: ~A, se han encontrado ~A: ~S"
 
-#: markup.scm:129
+#: markup.scm:100
 #, scheme-format
 msgid "Invalid argument in position ~A.  Expect: ~A, found: ~S."
-msgstr "Argumento erróneo en la posición ~A. .Esperaba: ~A, se encontró: ~S"
+msgstr "Argumento inválido en la posición ~A.  Se esperaba: ~A, se ha encontrado: ~S."
 
-#: music-functions.scm:213
+#: music-functions.scm:228
 msgid "More alternatives than repeats.  Junking excess alternatives"
-msgstr "Más alternativas que repeticiones.  Descartando alternativas excedentes."
+msgstr "Hay más alternativas que repeticiones.  Se recortan las alternativas excedentes"
 
-#: music-functions.scm:232
+#: music-functions.scm:250
 #, scheme-format
 msgid "expecting 2 elements for chord tremolo, found ~a"
-msgstr "se esperaban dos elementos den trémolo de acorde, se encontró ~a"
+msgstr "se esperaban 2 elementos para el tremolo de acorde, se han encontrado ~a"
 
-#: music-functions.scm:538
+#: music-functions.scm:573
 #, scheme-format
 msgid "music expected: ~S"
-msgstr "se esperaba música: ~S"
+msgstr "se esperaba algo de música: ~S"
 
 #. FIXME: uncomprehensable message
-#: music-functions.scm:589
+#: music-functions.scm:623
 #, scheme-format
 msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
-msgstr "Revisión de compases falló. Esperaba estar en ~a, en vez de ~a "
+msgstr "Ha fallado la comprobación de compás.  Se esperaba que estuviera en ~a, en lugar de en ~a"
 
-#: music-functions.scm:748
+#: music-functions.scm:773
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
-msgstr "no se encuentra la música: `~S'"
+msgstr "no se encuentra la música citada: «~S»"
 
-#: music-functions.scm:942
+#: music-functions.scm:970
 #, scheme-format
 msgid "unknown accidental style: ~S"
-msgstr "estilo desconocido de accidentes: ~S"
+msgstr "estilo de alteración ~S desconocido"
 
-#: output-ps.scm:315
+#: output-ps.scm:276
 msgid "utf-8-string encountered in PS backend"
-msgstr "se encontró una cadena utf-8 en el procesador PS"
+msgstr "se ha encontrado una cadena UTF-8 en el 'backend' de PostScript"
 
 #: output-svg.scm:42
 #, scheme-format
 msgid "undefined: ~S"
-msgstr "indefinido: ~S"
+msgstr "no definido: ~S"
 
 #: output-svg.scm:132
 #, scheme-format
 msgid "cannot decypher Pango description: ~a"
-msgstr "no puedo descifrar descripción Pango: ~a"
+msgstr "no se puede descifrar la descripción de Pango: ~a"
 
-#: output-tex.scm:98
+#: output-tex.scm:97
 #, scheme-format
 msgid "cannot find ~a in ~a"
-msgstr "no se puede enconrtar ~a en ~a"
+msgstr "no se encuentra ~a dentro de ~a"
 
-#: paper.scm:69
-msgid "Not in toplevel scope"
-msgstr "No en el ámbito superior"
+#: paper.scm:84
+msgid "set-global-staff-size: not in toplevel scope"
+msgstr "set-global-staff-size: no está en el ámbito de nivel más alto"
 
-#: paper.scm:117
+#: paper.scm:132
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
-msgstr "Este no es un objeto \\layout{}, ~S"
+msgstr "Esto no es un objeto de \\layout {} , ~S"
 
-#: paper.scm:129
+#: paper.scm:144
 #, scheme-format
 msgid "Unknown papersize: ~a"
-msgstr "papersize (tamaño de papel) desconocido: ~a"
+msgstr "Tamaño de papel desconocido: ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:144
+#: paper.scm:159
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr "Debe usar #(set-paper-size .. ) dentro de \\paper { ... }"
 
-#: parser-clef.scm:126
+#: parser-clef.scm:127
 #, scheme-format
 msgid "unknown clef type `~a'"
-msgstr "tipo de clave desconocida `~a'"
+msgstr "tipo de clave desconocido: «~a» "
 
-#: parser-clef.scm:127
-msgid "see scm/clef.scm for supported clefs"
-msgstr "vea scm/clef.scm para las claves soportadas"
+#: parser-clef.scm:128
+#, scheme-format
+msgid "supported clefs: ~a"
+msgstr "claves soportadas: ~a"
 
-#: ps-to-png.scm:88
+#: ps-to-png.scm:64
 #, scheme-format
 msgid "~a exited with status: ~S"
-msgstr "~a terminó con estado: ~S"
+msgstr "~a salió con el estado: ~S"
 
-#: to-xml.scm:190
+#: to-xml.scm:180
 #, scheme-format
 msgid "assertion failed: ~S"
-msgstr "declaración falló: ~S"
+msgstr "el aserto no se cumple: ~S"
+
+#~ msgid "lilylib module"
+#~ msgstr "módulo lilylib"
+
+#~ msgid "print this help"
+#~ msgstr "mostrar esta ayuda"
+
+#~ msgid "Binary %s has version %s, looking for version %s"
+#~ msgstr "El binario %s tiene la versión %s, buscando la versión %s"
+
+#~ msgid "`%s' failed (%s)"
+#~ msgstr "`%s' ha fallado (%s)"
+
+#~ msgid "(ignored)"
+#~ msgstr "(ignorado)"
+
+#~ msgid "Cleaning %s..."
+#~ msgstr "Limpiando %s..."
+
+#~ msgid "Removing output file"
+#~ msgstr "Eliminando el fichero de salida"
+
+#~ msgid ""
+#~ "Process LilyPond snippets in hybrid HTML, LaTeX or texinfo document.\n"
+#~ "Example usage:\n"
+#~ "\n"
+#~ "   lilypond-book --filter=\"tr '[a-z]' '[A-Z]'\" BOOK\n"
+#~ "   lilypond-book --filter=\"convert-ly --no-version --from=2.0.0 -\" BOOK\n"
+#~ "   lilypond-book --process='lilypond-bin -I include' BOOK\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Procesar los fragmentos LilyPond en un documento híbrido HTML, LaTeX o TexInfo.\n"
+#~ "Ejemplos de uso:\n"
+#~ "\n"
+#~ "   lilypond-book --filter=\"tr '[a-z]' '[A-Z]'\" LIBRO\n"
+#~ "   lilypond-book --filter=\"convert-ly --no-version --from=2.0.0 -\" LIBRO\n"
+#~ "   lilypond-book --process='lilypond-bin -I include' LIBRO\n"
+#~ "\n"
+
+#~ msgid "EXT"
+#~ msgstr "EXT"
+
+#~ msgid "print version information"
+#~ msgstr "mostrar el número de versión"
+
+#~ msgid "getopt says: `%s'"
+#~ msgstr "getopt dice: «%s»"
+
+#~ msgid "Run LilyPond, add titles, generate printable document."
+#~ msgstr "Ejecutar LilyPond, añadir títulos y generar un documento imprimible."
+
+#~ msgid "write Makefile dependencies for every input file"
+#~ msgstr "escribir las dependencias de Makefile de cada fichero de entrada"
+
+#~ msgid "print even more output"
+#~ msgstr "mostrar incluso más salida"
+
+#~ msgid "find pfa fonts used in FILE"
+#~ msgstr "buscar los tipos de letra pfa utilizados en el FICHERO"
+
+#~ msgid "make HTML file with links to all output"
+#~ msgstr "genear un fichero HTML con enlaces a todas las salidas"
+
+#~ msgid "add DIR to LilyPond's search path"
+#~ msgstr "añadir el DIRECTORIO a la ruta de búsqueda de LilyPond"
+
+#~ msgid "keep all output, output to directory %s.dir"
+#~ msgstr "conservar todas las salidas en el directorio %s.dir"
+
+#~ msgid "don't run LilyPond"
+#~ msgstr "no ejecutar LilyPond"
+
+#~ msgid "produce MIDI output only"
+#~ msgstr "producir solamente una salida MIDI"
+
+#~ msgid "RES"
+#~ msgstr "RES"
+
+#~ msgid "set the resolution of the preview to RES"
+#~ msgstr "establecer esta RESOLUCIÓN para la previsualización"
+
+#~ msgid "do not generate PDF output"
+#~ msgstr "no generar una salida PDF"
+
+#~ msgid "do not generate PostScript output"
+#~ msgstr "no generar una salida PostScript"
+
+#~ msgid "use pdflatex to generate PDF output"
+#~ msgstr "utilizar pdflatex para generar la salida en PDF"
+
+#~ msgid "generate PNG page images"
+#~ msgstr "generar imágenes PNG de las páginas"
+
+#~ msgid "make a picture of the first system"
+#~ msgstr "crear una imagen del primer sistema"
+
+#~ msgid "run in safe-mode"
+#~ msgstr "ejecutar en modo seguro"
+
+#~ msgid "change global setting KEY to VAL"
+#~ msgstr "cambiar la opción global CLAVE a VALOR"
+
+#~ msgid "LilyPond crashed (signal %d)."
+#~ msgstr "LilyPond se ha colgado (señal %d)."
+
+#~ msgid "Please submit a bug report to bug-lilypond@gnu.org"
+#~ msgstr "Por favor, envíe un informe de fallo a bug-lilypond@gnu.org"
+
+#~ msgid "LilyPond failed on input file %s (exit status %d)"
+#~ msgstr "Fallo de LilyPond con el fichero de entrada %s (status de salida %d)"
+
+#~ msgid "LilyPond failed on an input file (exit status %d)"
+#~ msgstr "Fallo de LilyPond con un fichero de entrada (estado de salida %d)"
+
+#~ msgid "Analyzing %s..."
+#~ msgstr "Analizando %s..."
+
+#~ msgid "no LilyPond output found for `%s'"
+#~ msgstr "no se ha encontrado ninguna salida de lilypond para «%s»"
+
+#~ msgid "invalid value: `%s'"
+#~ msgstr "valor no válido: «%s»"
+
+#~ msgid "LaTeX failed on the output file."
+#~ msgstr "Fallo de LaTeX con el fichero de salida."
+
+#~ msgid ""
+#~ "Trying create PDF, but no PFA fonts found.\n"
+#~ "Using bitmap fonts instead. This will look bad."
+#~ msgstr ""
+#~ "Intentando crear un PDF, pero no se han encontrado tipos de letra PFA.\n"
+#~ "Se usan en su lugar tipos de letra en mapa de bits. El aspecto no será bueno."
+
+#~ msgid "Writing HTML menu `%s'"
+#~ msgstr "Escribiendo el menú HTML «%s»"
+
+#~ msgid "pseudo filter"
+#~ msgstr "pseudo filtro"
+
+#~ msgid "pseudo filter only for single input file"
+#~ msgstr "pseudo filtro solamente para fichero de entrada único"
+
+#~ msgid "no files specified on command line"
+#~ msgstr "no se ha especificado ningún fichero en la línea de mandatos"
+
+#~ msgid "Running LilyPond failed. Rerun with --verbose for a trace."
+#~ msgstr "Fallo de ejecución de LilyPond. Vuelva a ejecutarlo con --verbose para obtener una traza."
+
+#~ msgid "Failed to make PS file. Rerun with --verbose for a trace."
+#~ msgstr "Se ha producido un fallo al generar el fichero PS. Vuelva a ejecutarlo con --verbose para obtener una traza."
+
+#~ msgid "Running LaTeX failed. Rerun with --verbose for a trace."
+#~ msgstr "La ejecución de LaTeX ha fallado. Vuelva a ejecutarlo con --verbose para obtener una traza."
+
+#~ msgid "%s output to <stdout>..."
+#~ msgstr "%s salida hacia <stdout>..."
+
+#~ msgid "%s output to %s..."
+#~ msgstr "%s salida hacia %s..."
+
+#~ msgid "can't find file: `%s.%s'"
+#~ msgstr "no se puede encontrar el fichero: «%s.%s»"
+
+#~ msgid "Convert MIDI to LilyPond source."
+#~ msgstr "Convertir MIDI a fuente LilyPond."
+
+#~ msgid "debug"
+#~ msgstr "depurar"
+
+#~ msgid "define macro NAME [optional expansion EXP]"
+#~ msgstr "define la macro NOMBRE [expansión opcional EXP]"
+
+#~ msgid "only pre-process"
+#~ msgstr "solamente preprocesar"
+
+#~ msgid "DIM"
+#~ msgstr "DIM"
+
+#~ msgid "default fontsize for music.  DIM is assumed to be in points"
+#~ msgstr "tamaño del tipo de letra predeterminado para música. Se da por hecho que DIM está en puntos"
+
+#~ msgid "deprecated, use --default-music-fontsize"
+#~ msgstr "obsoleto, utilice --default-music-fontsize"
+
+#~ msgid "OPT"
+#~ msgstr "OPC"
+
+#~ msgid "pass OPT quoted to the lilypond command line"
+#~ msgstr "pasar OPC entrecomillado a la línea de mandatos de lilypond"
+
+#~ msgid "force fontsize for all inline lilypond. DIM is assumed to be in points"
+#~ msgstr "forzar el tamaño del tipo de letra para todo el lilypond incorporado. Se da por hecho que DIM está en puntos"
+
+#~ msgid "deprecated, use --force-music-fontsize"
+#~ msgstr "obsoleto, utilice --force-music-fontsize"
+
+#~ msgid "include path"
+#~ msgstr "incluir la ruta"
+
+#~ msgid "write dependencies"
+#~ msgstr "escribir las dependencias"
+
+#~ msgid "PREF"
+#~ msgstr "PREF"
+
+#~ msgid "prepend PREF before each -M dependency"
+#~ msgstr "añadir el prefijo PREF a cada dependencia -M"
+
+#~ msgid "don't run lilypond"
+#~ msgstr "no ejecutar lilypond"
+
+#~ msgid "don't generate pictures"
+#~ msgstr "no generar imágenes"
+
+#~ msgid "strip all lilypond blocks from output"
+#~ msgstr "eliminar todos los bloques lilypond de la salida"
+
+#~ msgid "filename main output file"
+#~ msgstr "nombre del fichero de salida principal"
+
+#~ msgid "where to place generated files"
+#~ msgstr "donde colocar los ficheros generados"
+
+#~ msgid "LaTeX failed."
+#~ msgstr "LaTeX ha fallado."
+
+#~ msgid "checksum mismatch for font file: `%s'"
+#~ msgstr "suma de control no acorde para el fichero de fuentes: `%s'"
+
+#, fuzzy
+#~ msgid "Rebuild all .afm files, and remove all .pk and .tfm files."
+#~ msgstr "Reconstruir todos los ficheros .afm, y borrar todos los ficheros .pk y .tfm. Re-ejecutar con la opción -V para mostrar las rutas de las fuentes."
+
+#~ msgid "Loading default font"
+#~ msgstr "Cargando la fuente por defecto"
+
+#~ msgid "can't find default font: `%s'"
+#~ msgstr "no puedo encontrar la fuente por defecto: `%s'"
+
+#~ msgid "Can't switch translators, I'm there already"
+#~ msgstr "No puedo pasar de un traductor al otro, ya estoy allí"
+
+#~ msgid "I'm one myself"
+#~ msgstr "Yo mismo soy uno"
+
+#~ msgid "no one to print a tremolos"
+#~ msgstr "ninguno para la impresión de trémolos"
+
+#~ msgid "NaN"
+#~ msgstr "NaN"
+
+#, fuzzy
+#~ msgid "Junking event: `%s'"
+#~ msgstr "Invocando `%s'"
+
+#~ msgid "no one to print a repeat brace"
+#~ msgstr "ninguno para la impresión de llaves repetidas"
+
+#~ msgid "non fatal error: "
+#~ msgstr "error no fatal: "
+
+#, fuzzy
+#~ msgid "Now processing `%s'"
+#~ msgstr "Ahora en proceso: `%s'"
+
+#, fuzzy
+#~ msgid "kpathsea can not find TFM file: `%s'"
+#~ msgstr "no puedo encontrar el fichero: `%s'"
+
+#, fuzzy
+#~ msgid "use output format EXT"
+#~ msgstr "utilizar el formato de salida EXT (scm, ps, tex o as) "
+
+#, fuzzy
+#~ msgid "write Makefile dependencies"
+#~ msgstr "crear las dependencias para Makefile de cada fichero de entrada"
+
+#~ msgid "prepend DIR to dependencies"
+#~ msgstr "añadir el prefijo DIR a las dependencias"
+
+#~ msgid "Creator: "
+#~ msgstr "Creador: "
+
+#, fuzzy
+#~ msgid "at "
+#~ msgstr ", en "
+
+#~ msgid "Separation_item:  I've been drinking too much"
+#~ msgstr "Separation_item: He bebido demasiado"
+
+#~ msgid "Huh?  Got %d, expected %d characters"
+#~ msgstr "¿Eh? Se han obtenido %d caracteres, cuando se esperaban %d"
+
+#, fuzzy
+#~ msgid "Identifier should have alphabetic characters only"
+#~ msgstr "El identificativo debería contener solamente caracteres alfabéticos"
+
+#, fuzzy
+#~ msgid "Can't find music"
+#~ msgstr "no se puede encontrar: `%s'"
 
+#, fuzzy
+#~ msgid "Incorrect lilypond version: %s (%s, %s)"
+#~ msgstr "versión de lilypond incorrecta: %s (%s, %s)"
index 1ec73c63b144e20085a923daebf4108e927b3d89..8edc74bc82c68fad71b1cde74bf918ef293c99e1 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 2.11.22\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-29 14:39+0200\n"
-"PO-Revision-Date: 2007-05-31 14:10+0200\n"
+"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
+"POT-Creation-Date: 2007-04-28 12:03+0200\n"
+"PO-Revision-Date: 2007-05-29 15:01+0200\n"
 "Last-Translator: Jan Nieuwenhuizen <janneke@gnu.org>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Date: 2001-05-09 23:29+0200\n"
 "From:  <janneke@gnu.org>\n"
-"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po "
-"--add-comments --keyword=_\n"
+"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po --add-comments --keyword=_\n"
 "Files: bow.cc int.cc\n"
 
-#: add_html_footer.py:46
-#, python-format
-msgid "This page is for %(package_name)s-%(package_version)s (%(branch_str)s)."
-msgstr ""
-"Deze pagina is voor %(package_name)s-%(package_version)s (%(branch_str)s)."
-
-#: add_html_footer.py:47
-#, python-format
-msgid "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
-msgstr ""
-"Meld fouten naar <a href=\\\"%(mail_address_url)s\\\">%(mail_address)s</a>."
-
-#: add_html_footer.py:54
-#, python-format
-msgid "Other languages: %s."
-msgstr "Andere talen: %s."
-
-#: add_html_footer.py:55
-#, python-format
-msgid "About <A HREF=\"%s\">automatic language selection</A>."
-msgstr "Gebruik van <A HREF=\\\"%s\\\">automatische taalkeuze</A>."
-
-#: add_html_footer.py:238
-msgid "stable-branch"
-msgstr "stabiele tak"
-
-#: add_html_footer.py:240
-msgid "development-branch"
-msgstr "ontwikkel tak"
-
-#. All language information needed for documentation i18n is defined
-#. here. For each 'Documentation/ab' directory containing docs
-#. translated in 'ab', there should be an entry in LANGUAGES.
-#: langdefs.py:37
-msgid "English"
-msgstr "Engels"
-
-#: langdefs.py:51
-msgid "French"
-msgstr "Frans"
-
-#: langdefs.py:52
-msgid "Spanish"
-msgstr "Spaans"
-
-#: langdefs.py:53
-msgid "German"
-msgstr "Duits"
-
 #: convertrules.py:12
 #, python-format
 msgid "Not smart enough to convert %s"
@@ -112,7 +62,7 @@ msgstr "Scannen %s"
 #: fontextract.py:71
 #, python-format
 msgid "Extracted %s"
-msgstr "Geëxtraheerd %s"
+msgstr "Geëxtraheerd %s"
 
 #: fontextract.py:86
 #, python-format
@@ -165,8 +115,7 @@ msgstr "behoud ABC's notie van waardestrepen"
 msgid "Report bugs via"
 msgstr ""
 "Meld fouten in het programma via %;\n"
-"meld onjuistheden in de vertaling aan <janneke@gnu.org> of <hanwen@xs4all."
-"nl>."
+"meld onjuistheden in de vertaling aan <janneke@gnu.org> of <hanwen@xs4all.nl>."
 
 #: convert-ly.py:32
 msgid ""
@@ -257,8 +206,7 @@ msgstr "%s [OPTIE]... ETF-BESTAND"
 #: etf2ly.py:1182
 msgid ""
 "Enigma Transport Format is a format used by Coda Music Technology's\n"
-"Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond "
-"file."
+"Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond file."
 msgstr ""
 "Enigma Transport Format is een format dat wordt gebruikt door Coda\n"
 "Music Technology's Finale produkt.  Dit programma converteert een\n"
@@ -273,11 +221,8 @@ msgid "show warranty and copyright"
 msgstr "toon garantie en auteursrechten"
 
 #: lilypond-book.py:57
-msgid ""
-"Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
-msgstr ""
-"Verwerk LilyPond snippers in hybride HTML, LaTeX, texinfo of DocBook "
-"dokument."
+msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
+msgstr "Verwerk LilyPond snippers in hybride HTML, LaTeX, texinfo of DocBook dokument."
 
 #: lilypond-book.py:64
 msgid "BOOK"
@@ -302,11 +247,8 @@ msgid "pipe snippets through FILTER [convert-ly -n -]"
 msgstr "pijp snippers door FILTER [convert-ly -n -]"
 
 #: lilypond-book.py:120
-msgid ""
-"use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
-msgstr ""
-"gebruik uitvoerformat FORMAT (texi [standaard], texi-html, latex, html, "
-"docbook)"
+msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
+msgstr "gebruik uitvoerformat FORMAT (texi [standaard], texi-html, latex, html, docbook)"
 
 #: lilypond-book.py:123
 msgid "add DIR to include path"
@@ -468,7 +410,7 @@ msgstr "DVIPS gebruik:"
 msgid "Writing fonts to %s..."
 msgstr "Schrijven van fonts naar %s"
 
-#: midi2ly.py:95 lily-library.scm:612 lily-library.scm:621
+#: midi2ly.py:95 lily-library.scm:577 lily-library.scm:586
 msgid "warning: "
 msgstr "waarschuwing: "
 
@@ -478,7 +420,7 @@ msgstr "fout: "
 
 #: midi2ly.py:99
 msgid "Exiting ... "
-msgstr "Beëidigen ..."
+msgstr "Beëidigen ..."
 
 #: midi2ly.py:846
 #, python-format
@@ -618,8 +560,7 @@ msgstr "herstelteken vorm niet gevonden"
 
 #: align-interface.cc:322
 msgid "tried to get a translation for something that is no child of mine"
-msgstr ""
-"probeerde een verplaatsing te verkrijgen voor iets wat geen kind van mij is"
+msgstr "probeerde een verplaatsing te verkrijgen voor iets wat geen kind van mij is"
 
 #: all-font-metrics.cc:143
 #, c-format
@@ -647,11 +588,13 @@ msgstr "zijn er twee Axis_group_engravers?"
 msgid "removing this vertical group"
 msgstr "verwijder deze verticale groep"
 
-#: axis-group-interface.cc:505
+#: axis-group-interface.cc:109
+msgid "tried to calculate pure-height at a non-breakpoint"
+msgstr "probeerde pure-hoogte te berekenen op een niet-breekpunt"
+
+#: axis-group-interface.cc:449
 msgid "an outside-staff object should have a direction, defaulting to up"
-msgstr ""
-"een buiten-notenbalk object moet een richting hebben, gebruik "
-"standaardwaarde omhoog"
+msgstr "een buiten-notenbalk object moet een richting hebben, gebruik standaardwaarde omhoog"
 
 #: bar-check-iterator.cc:73
 #, c-format
@@ -664,7 +607,7 @@ msgstr "heb al een waardestreep"
 
 #: beam-engraver.cc:202
 msgid "unterminated beam"
-msgstr "onbeëindigde waardestreep"
+msgstr "onbeëindigde waardestreep"
 
 #: beam-engraver.cc:244 chord-tremolo-engraver.cc:138
 msgid "stem must have Rhythmic structure"
@@ -688,14 +631,12 @@ msgstr "verwijderen van waardestreep zonder stokken"
 
 #: beam.cc:1035
 msgid "no viable initial configuration found: may not find good beam slope"
-msgstr ""
-"geen werkbare initiële configuratie gevonden: kan wellicht geen goede "
-"waardestreephelling kunnen vinden"
+msgstr "geen werkbare initiële configuratie gevonden: kan wellicht geen goede waardestreephelling kunnen vinden"
 
 #: break-alignment-interface.cc:195
 #, c-format
 msgid "No spacing entry from %s to `%s'"
-msgstr "Geen spatiëringswaarde van %s naar`%s'"
+msgstr "Geen spatiëringswaarde van %s naar`%s'"
 
 #: change-iterator.cc:23
 #, c-format
@@ -724,11 +665,11 @@ msgstr "geen van deze in mijn gezin"
 
 #: chord-tremolo-engraver.cc:88
 msgid "No tremolo to end"
-msgstr "Geen tremolo om te beëindigen"
+msgstr "Geen tremolo om te beëindigen"
 
 #: chord-tremolo-engraver.cc:110
 msgid "unterminated chord tremolo"
-msgstr "onbeëindigd akkoordtremolo"
+msgstr "onbeëindigd akkoordtremolo"
 
 #: chord-tremolo-iterator.cc:35
 #, c-format
@@ -825,11 +766,11 @@ msgstr "cresc is hier gestart"
 
 #: dynamic-engraver.cc:327
 msgid "unterminated (de)crescendo"
-msgstr "onbeëindigd (de)crescendo"
+msgstr "onbeëindigd (de)crescendo"
 
 #: extender-engraver.cc:142 extender-engraver.cc:151
 msgid "unterminated extender"
-msgstr "onbeëindigde extender"
+msgstr "onbeëindigde extender"
 
 #: font-config.cc:28
 msgid "Initializing FontConfig..."
@@ -852,7 +793,7 @@ msgstr "toevoegen van font map: %s"
 
 #: general-scheme.cc:198
 msgid "infinity or NaN encountered while converting Real number"
-msgstr "oneindig of NaN tegengekomen tijdens converteren van Reëel getal"
+msgstr "oneindig of NaN tegengekomen tijdens converteren van Reëel getal"
 
 #: general-scheme.cc:199
 msgid "setting to zero"
@@ -864,7 +805,7 @@ msgstr "Oneindig of nan gevonden in uitvoer.  Vervangen door 0.0"
 
 #: glissando-engraver.cc:94
 msgid "unterminated glissando"
-msgstr "onbeëindigde glissando"
+msgstr "onbeëindigde glissando"
 
 #: global-context-scheme.cc:87 global-context-scheme.cc:105
 msgid "no music found in score"
@@ -917,9 +858,7 @@ msgstr "%d: %s"
 #: grob-property.cc:174
 #, c-format
 msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
-msgstr ""
-"circulaire afhankelijkheid: calculation-in-progress tegengekomen voor #'%s (%"
-"s)"
+msgstr "circulaire afhankelijkheid: calculation-in-progress tegengekomen voor #'%s (%s)"
 
 #: grob.cc:251
 msgid "Infinity or NaN encountered"
@@ -929,6 +868,10 @@ msgstr "Oneindig of NaN tegengekomen"
 msgid "decrescendo too small"
 msgstr "decrescendo te klein"
 
+#: hairpin.cc:188
+msgid "crescendo too small"
+msgstr "crescendo te klein"
+
 #: horizontal-bracket-engraver.cc:59
 msgid "do not have that many brackets"
 msgstr "zoveel haken heb ik niet"
@@ -986,7 +929,7 @@ msgstr "geen linkerkant"
 
 #: ligature-engraver.cc:173
 msgid "unterminated ligature"
-msgstr "onbeëindigde ligatuur"
+msgstr "onbeëindigde ligatuur"
 
 #: ligature-engraver.cc:202
 msgid "ignoring rest: ligature may not contain rest"
@@ -1068,9 +1011,7 @@ msgstr "kan Voice niet vinden: `%s'"
 
 #: lyric-engraver.cc:158
 msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
-msgstr ""
-"Liedtekst lettergreep heeft geen noot.  Gebruik \\lyricsto of "
-"associatedVoice."
+msgstr "Liedtekst lettergreep heeft geen noot.  Gebruik \\lyricsto of associatedVoice."
 
 #: main.cc:100
 #, c-format
@@ -1468,29 +1409,13 @@ msgstr "FT_Get_Glyph_Name () Freetype fout: %s"
 msgid "FT_Get_Glyph_Name () error: %s"
 msgstr "FT_Get_Glyph_Name () fout: %s"
 
-#. find out the ideal number of pages
-#: optimal-page-breaking.cc:44
-msgid "Finding the ideal number of pages..."
-msgstr "Zoeken naar het ideale aantal pagina's..."
-
-#: optimal-page-breaking.cc:59
-msgid "Fitting music on 1 page..."
-msgstr "Muziek passend maken op 1 pagina..."
-
-#: optimal-page-breaking.cc:61
-#, c-format
-msgid "Fitting music on %d or %d pages..."
-msgstr "Muziek passend maken op %d of %d pagina's..."
-
 #: page-turn-page-breaking.cc:146
 #, c-format
 msgid "page-turn-page-breaking: breaking from %d to %d"
 msgstr "page-turn-page-breaking: afbreken van %d naar %d"
 
 #: page-turn-page-breaking.cc:195
-msgid ""
-"cannot fit the first page turn onto a single page.  Consider setting first-"
-"page-number to an even number."
+msgid "cannot fit the first page turn onto a single page.  Consider setting first-page-number to an even number."
 msgstr ""
 "kan de eerste paginaomslag niet op eerste pagina gepast krijgen.  Overweeg\n"
 "first-page-number op een even getal te zetten."
@@ -1547,13 +1472,10 @@ msgstr "geen PostScript fontnaam voor font: `%s'"
 msgid "FreeType face has no PostScript font name"
 msgstr "FreeType gezicht heeft geen PostScript fontnaam"
 
-#: paper-column-engraver.cc:213
-msgid ""
-"forced break was overridden by some other event, should you be using bar "
-"checks?"
+#: paper-column-engraver.cc:199
+msgid "forced break was overridden by some other event, should you be using bar checks?"
 msgstr ""
-"geforceerde breuk werd opgeheft door andere gebeurtenis, zou je "
-"maatcontrole\n"
+"geforceerde breuk werd opgeheft door andere gebeurtenis, zou je maatcontrole\n"
 "moeten gebruiken?"
 
 #: paper-outputter-scheme.cc:30
@@ -1580,7 +1502,7 @@ msgstr "GUILE signaleerde een fout voor de expressie beginnend alhier"
 
 #: percent-repeat-engraver.cc:200
 msgid "unterminated percent repeat"
-msgstr "onbeëindigde procentherhaling"
+msgstr "onbeëindigde procentherhaling"
 
 #: performance.cc:43
 msgid "Track..."
@@ -1601,7 +1523,7 @@ msgstr "MIDI uitvoer naar %s..."
 
 #: phrasing-slur-engraver.cc:131
 msgid "unterminated phrasing slur"
-msgstr "onbeëindigde fraseringsboog"
+msgstr "onbeëindigde fraseringsboog"
 
 #: piano-pedal-engraver.cc:286
 #, c-format
@@ -1721,7 +1643,7 @@ msgstr "kan niet vinden `%s'"
 
 #: score-engraver.cc:69
 msgid "Music font has not been installed properly."
-msgstr "Muziekfont is niet correect geïnstalleerd."
+msgstr "Muziekfont is niet correect geïnstalleerd."
 
 #: score-engraver.cc:71
 #, c-format
@@ -1760,11 +1682,11 @@ msgstr "richting van %s ongeldig: %d"
 
 #: slur-engraver.cc:151
 msgid "unterminated slur"
-msgstr "onbeëindigde bindingsboog"
+msgstr "onbeëindigde bindingsboog"
 
 #: slur-engraver.cc:163
 msgid "cannot end slur"
-msgstr "kan legatoboog niet beëindigen"
+msgstr "kan legatoboog niet beëindigen"
 
 #: slur.cc:355
 #, c-format
@@ -1818,7 +1740,7 @@ msgstr "vlag streep `%s' niet gevonden"
 msgid "Element count %d."
 msgstr "Aantal elementen: %d."
 
-#: system.cc:272
+#: system.cc:266
 #, c-format
 msgid "Grob count %d"
 msgstr "Aantal grobs %d"
@@ -1833,7 +1755,7 @@ msgstr "heb al een tekst spanner"
 
 #: text-spanner-engraver.cc:118
 msgid "unterminated text spanner"
-msgstr "onbeëindigde tekst spanner"
+msgstr "onbeëindigde tekst spanner"
 
 #: tie-engraver.cc:267
 msgid "lonely tie"
@@ -1891,27 +1813,23 @@ msgstr "heb al een tekst spanner"
 
 #: tuplet-engraver.cc:96
 msgid "No tuplet to end"
-msgstr "Geen tuplet om te beëindigen"
+msgstr "Geen tuplet om te beëindigen"
 
 #: vaticana-ligature-engraver.cc:388
 #, c-format
-msgid ""
-"ignored prefix (es) `%s' of this head according to restrictions of the "
-"selected ligature style"
+msgid "ignored prefix (es) `%s' of this head according to restrictions of the selected ligature style"
 msgstr ""
-"negeren van voorvoegsel (es) `%s' van dit bolletje volgens restricties van "
-"de\n"
+"negeren van voorvoegsel (es) `%s' van dit bolletje volgens restricties van de\n"
 "geselecteerde ligatuurstijl"
 
 #: vaticana-ligature-engraver.cc:714
 #, c-format
 msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul"
-msgstr ""
-"Vaticana_ligature_engraver: instelling `spacing-increment = %f': ptr=%ul"
+msgstr "Vaticana_ligature_engraver: instelling `spacing-increment = %f': ptr=%ul"
 
 #: vaticana-ligature.cc:84
 msgid "flexa-height undefined; assuming 0"
-msgstr "flexa-hoogte ongedefiniëerd; uitgaan van 0"
+msgstr "flexa-hoogte ongedefiniëerd; uitgaan van 0"
 
 #: vaticana-ligature.cc:89
 msgid "ascending vaticana style flexa"
@@ -1924,54 +1842,54 @@ msgstr "Vaticana_ligature: nulsamenvoeging (delta_pitch == 0)"
 #. fixme: be more verbose.
 #: volta-engraver.cc:143
 msgid "cannot end volta spanner"
-msgstr "kan volta spanner niet beëindigen"
+msgstr "kan volta spanner niet beëindigen"
 
 #: volta-engraver.cc:153
 msgid "already have a volta spanner, ending that one prematurely"
-msgstr "heb al een volta spanner, beëindig die voortijdig"
+msgstr "heb al een volta spanner, beëindig die voortijdig"
 
 #: volta-engraver.cc:157
 msgid "also already have an ended spanner"
-msgstr "heb ook al een beëidingde spanner"
+msgstr "heb ook al een beëidingde spanner"
 
 #: volta-engraver.cc:158
 msgid "giving up"
 msgstr "geef op"
 
-#: parser.yy:712
+#: parser.yy:704
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr "\\paper kan niet worden gebruikt in \\score, gebruik \\layout"
 
-#: parser.yy:736
+#: parser.yy:728
 msgid "need \\paper for paper block"
 msgstr "heb \\paper nodig voor paper blok"
 
-#: parser.yy:1195
+#: parser.yy:1187
 msgid "Grob name should be alphanumeric"
 msgstr "Grob naam zou alfanumeriek moeten zijn"
 
-#: parser.yy:1493
+#: parser.yy:1485
 msgid "second argument must be pitch list"
 msgstr "tweede argument moet een toonhoogtelijst zijn"
 
-#: parser.yy:1520 parser.yy:1525 parser.yy:1990
+#: parser.yy:1512 parser.yy:1517 parser.yy:1982
 msgid "have to be in Lyric mode for lyrics"
 msgstr "moet in Lyric modus zijn voor liedteksten"
 
-#: parser.yy:1622
+#: parser.yy:1614
 msgid "expecting string as script definition"
 msgstr "verwacht string voor script definitie"
 
-#: parser.yy:1777 parser.yy:1827
+#: parser.yy:1769 parser.yy:1819
 #, c-format
 msgid "not a duration: %d"
 msgstr "geen duur: %d"
 
-#: parser.yy:1944
+#: parser.yy:1936
 msgid "have to be in Note mode for notes"
 msgstr "moet in Note modus zijn voor noten"
 
-#: parser.yy:2005
+#: parser.yy:1997
 msgid "have to be in Chord mode for chords"
 msgstr "moet in Chord modus zijn voor accoorden"
 
@@ -2011,7 +1929,7 @@ msgstr "\\maininput niet toegestaan buiten init bestanden"
 #: lexer.ll:312
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
-msgstr "verkeerde of ongedefiniëerde identifier: `%s'"
+msgstr "verkeerde of ongedefiniëerde identifier: `%s'"
 
 #. backup rule
 #: lexer.ll:321
@@ -2022,30 +1940,30 @@ msgstr "aanhalingstekens sluite mist"
 msgid "Brace found at end of lyric.  Did you forget a space?"
 msgstr "Accolade gevonden aan het eind van liedtektst.  Een spatie vergeten?"
 
-#: lexer.ll:561
+#: lexer.ll:559
 msgid "Brace found at end of markup.  Did you forget a space?"
 msgstr "Accolade gevonden aan het eind van een opmaak.  Een spatie vergeten?"
 
-#: lexer.ll:665
+#: lexer.ll:663
 #, c-format
 msgid "invalid character: `%c'"
 msgstr "ongeldig teken: `%c'"
 
-#: lexer.ll:780
+#: lexer.ll:778
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "onbekende ontsnapte string: `\\%s'"
 
-#: lexer.ll:886
+#: lexer.ll:884
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr "bestand te oud: %s (oudste ondersteund: %s)"
 
-#: lexer.ll:887
+#: lexer.ll:885
 msgid "consider updating the input with the convert-ly script"
 msgstr "overweeg het actualiseren van de invoer met het convert-ly script"
 
-#: lexer.ll:893
+#: lexer.ll:891
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr "programma te oud: %s (bestand vereist: %s)"
@@ -2081,7 +1999,7 @@ msgstr "Schrijven van header veld `~a' naar `~a'..."
 #: define-music-properties.scm:10
 #, scheme-format
 msgid "symbol ~S redefined"
-msgstr "symbool ~S hergedefiniëerd"
+msgstr "symbool ~S hergedefiniëerd"
 
 #: define-event-classes.scm:119
 #, scheme-format
@@ -2103,22 +2021,22 @@ msgstr "geen systemen gevonden in \\score markup, heeft het een \\layout blok?"
 msgid "not a valid duration string: ~a"
 msgstr "geen geldige duurtekst: ~a"
 
-#: define-music-types.scm:746
+#: define-music-types.scm:743
 #, scheme-format
 msgid "symbol expected: ~S"
 msgstr "symbool verwacht: ~S"
 
-#: define-music-types.scm:749
+#: define-music-types.scm:746
 #, scheme-format
 msgid "cannot find music object: ~S"
 msgstr "kan muziekobject niet vinden: ~S"
 
-#: define-music-types.scm:769
+#: define-music-types.scm:766
 #, scheme-format
 msgid "unknown repeat type `~S'"
 msgstr "onbekend herhaaltype `~S'"
 
-#: define-music-types.scm:770
+#: define-music-types.scm:767
 msgid "See music-types.scm for supported repeats"
 msgstr "Zie music-types.scm voor ondersteunde herhalingen"
 
@@ -2193,7 +2111,7 @@ msgid ""
 "The PostScript backend does not support the system-by-system \n"
 "output. For that, use the EPS backend instead,\n"
 "\n"
-"  lilypond -b eps FILE\n"
+"  lilypond -b eps <file>\n"
 "\n"
 "If have cut & pasted a lilypond fragment from a webpage, be sure\n"
 "to only remove anything before\n"
@@ -2201,6 +2119,7 @@ msgid ""
 "  %% ****************************************************************\n"
 "  %% Start cut-&-pastable-section\n"
 "  %% ****************************************************************\n"
+"\n"
 msgstr ""
 "\n"
 "Het PostScript backend ondersteund geen system-by-system uitvoer.\n"
@@ -2208,7 +2127,7 @@ msgstr ""
 "\n"
 "  lilypond -b eps BESTAND\n"
 "\n"
-"Als LilyPond fragment van een webpagina is gecopiëerd, weet zeker\n"
+"Als LilyPond fragment van een webpagina is gecopiëerd, weet zeker\n"
 "dat alleen alles voorafgaand aan\n"
 "\n"
 "  %% ****************************************************************\n"
@@ -2239,27 +2158,23 @@ msgstr "Fout in waardestreep kwantisering.  Verwacht ~S 0, gevonden ~S."
 
 #: layout-page-layout.scm:115
 msgid "Can't fit systems on page -- ignoring between-system-padding"
-msgstr ""
-"Kan systemen niet op pagina gepast krijgen -- negeren van between-system-"
-"padding"
+msgstr "Kan systemen niet op pagina gepast krijgen -- negeren van between-system-padding"
 
 #: layout-page-layout.scm:449
 msgid "Calculating page breaks..."
 msgstr "Berekenen van pagina-afbreuken..."
 
-#: lily-library.scm:580
+#: lily-library.scm:545
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr "onbekende eenheid: ~S"
 
-#: lily-library.scm:614
+#: lily-library.scm:579
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
-msgstr ""
-"geen \\version uitdrukking gevonden, voeg~atoe voor toekomstige "
-"compatibiliteit"
+msgstr "geen \\version uitdrukking gevonden, voeg~atoe voor toekomstige compatibiliteit"
 
-#: lily-library.scm:622
+#: lily-library.scm:587
 msgid "old relative compatibility not used"
 msgstr "oude relative compatibiliteit niet gebruikt"
 
@@ -2276,7 +2191,7 @@ msgstr "verkeert type voor argument ~a.  Verwacht ~a, gevonden ~s"
 #: lily.scm:619
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
-msgstr "taak ~a beëindigd met met signaal: ~a"
+msgstr "taak ~a beëindigd met met signaal: ~a"
 
 #: lily.scm:622
 #, scheme-format
@@ -2319,9 +2234,7 @@ msgstr "Ongeldig argument in positie ~A.  Verwach: ~A, gevonden: ~S."
 
 #: music-functions.scm:228
 msgid "More alternatives than repeats.  Junking excess alternatives"
-msgstr ""
-"Meer alternatieven dan herhalingen.  Verschroten van overtollige "
-"alternatieven"
+msgstr "Meer alternatieven dan herhalingen.  Verschroten van overtollige alternatieven"
 
 #: music-functions.scm:250
 #, scheme-format
@@ -2356,7 +2269,7 @@ msgstr "utf-8-string tegengekomen in in PS achtereinde"
 #: output-svg.scm:42
 #, scheme-format
 msgid "undefined: ~S"
-msgstr "ongedefiniëerd: ~S"
+msgstr "ongedefiniëerd: ~S"
 
 #: output-svg.scm:132
 #, scheme-format
@@ -2408,9 +2321,448 @@ msgstr "~a sloot af met status: ~S"
 msgid "assertion failed: ~S"
 msgstr "assertie gefaald: ~S"
 
+#~ msgid "lilylib module"
+#~ msgstr "lilylib module"
+
+#~ msgid "print this help"
+#~ msgstr "toon deze hulp"
+
+#~ msgid "Binary %s has version %s, looking for version %s"
+#~ msgstr "Binair programma %s heeft versie %s, zocht naar versie %s"
+
+#~ msgid "`%s' failed (%s)"
+#~ msgstr "`%s' gefaald (%s)"
+
+#~ msgid "(ignored)"
+#~ msgstr "(genegeerd)"
+
+#~ msgid "Cleaning %s..."
+#~ msgstr "Schoonmaken van %s..."
+
+#~ msgid "Removing output file"
+#~ msgstr "Verwijderen van uitvoerbestand"
+
+#~ msgid ""
+#~ "Process LilyPond snippets in hybrid HTML, LaTeX or texinfo document.\n"
+#~ "Example usage:\n"
+#~ "\n"
+#~ "   lilypond-book --filter=\"tr '[a-z]' '[A-Z]'\" BOOK\n"
+#~ "   lilypond-book --filter=\"convert-ly --no-version --from=2.0.0 -\" BOOK\n"
+#~ "   lilypond-book --process='lilypond-bin -I include' BOOK\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Verwerk LilyPond snippers in hybride HTML, LaTeX of texinfo dokument.\n"
+#~ "Gebruiksvoorbeeld:\n"
+#~ "   lilypond-book --filter=\\\"tr '[a-z]' '[A-Z]'\\\" BOEK\\n\"\n"
+#~ "   lilypond-book --filter=\\\"convert-ly --no-version --from=2.0.0 -\\\" BOEK\\n\n"
+#~ "   lilypond-book --process='lilypond-bin -I invoeging' BOEK\\n\"\n"
+
+#~ msgid "EXT"
+#~ msgstr "EXT"
+
+#~ msgid "print version information"
+#~ msgstr "toon versie informatie"
+
+#~ msgid "getopt says: `%s'"
+#~ msgstr "getopt zegt: `%s'"
+
+#~ msgid "Run LilyPond, add titles, generate printable document."
+#~ msgstr "Draai LilyPond, voeg titels toe, genereer af te drukken dokument."
+
+#~ msgid "write Makefile dependencies for every input file"
+#~ msgstr "schrijf Makefile afhankelijkheden voor elk invoerbestand"
+
+#~ msgid "print even more output"
+#~ msgstr "toon nog meer uitvoer"
+
+#~ msgid "find pfa fonts used in FILE"
+#~ msgstr "zoek pfa fonts gebruikt in BESTAND"
+
+#~ msgid "make HTML file with links to all output"
+#~ msgstr "maak HTML bestand met koppelingen naar alle uitvoer"
+
+#~ msgid "add DIR to LilyPond's search path"
+#~ msgstr "voeg DIR toe aan LilyPond's zoekpad"
+
+#~ msgid "keep all output, output to directory %s.dir"
+#~ msgstr "bewaar alle uitvoer, schrijf naar map %s.dir"
+
+#~ msgid "don't run LilyPond"
+#~ msgstr "draai LilyPond niet"
+
+#~ msgid "produce MIDI output only"
+#~ msgstr "produceer alleen MIDI uitvoer"
+
+#~ msgid "RES"
+#~ msgstr "RES"
+
+#~ msgid "set the resolution of the preview to RES"
+#~ msgstr "zet de resolutie voor het testbeeld op RES"
+
+#~ msgid "do not generate PDF output"
+#~ msgstr "genereer geen PDF uitvoer"
+
+#~ msgid "do not generate PostScript output"
+#~ msgstr "genereer geen PostScript uitvoer"
+
+#~ msgid "use pdflatex to generate PDF output"
+#~ msgstr "gebruik pdflatex voor het genereren van PDF uitvoer"
+
+#~ msgid "generate PNG page images"
+#~ msgstr "genereer PNG pagin plaatjes"
+
+#~ msgid "make a picture of the first system"
+#~ msgstr "maak een plaatje van het eerste systeem"
+
+#~ msgid "run in safe-mode"
+#~ msgstr "draai in veilige modus"
+
+#~ msgid "change global setting KEY to VAL"
+#~ msgstr "verander globale instelling SLEUTEL in WAARDE"
+
+#~ msgid "LilyPond crashed (signal %d)."
+#~ msgstr "LilyPond is neergestort (signaal %d)."
+
+#~ msgid "Please submit a bug report to bug-lilypond@gnu.org"
+#~ msgstr "Stuur alstublieft een foutrapportage naar bug-lilypond@gnu.org"
+
+#~ msgid "LilyPond failed on input file %s (exit status %d)"
+#~ msgstr "LilyPond heeft gefaald op invoerbestand %s (afsluitstatus %d)"
+
+#~ msgid "LilyPond failed on an input file (exit status %d)"
+#~ msgstr "LilyPond heeft gefaald op een invoerbestand (afsluitstatus %d)"
+
+#~ msgid "Analyzing %s..."
+#~ msgstr "Analyseren van %s..."
+
+#~ msgid "no LilyPond output found for `%s'"
+#~ msgstr "geen Lilypond uitvoer gevonven voor `%s'"
+
+#~ msgid "invalid value: `%s'"
+#~ msgstr "ongeldige waarde: `%s"
+
+#~ msgid "LaTeX failed on the output file."
+#~ msgstr "LaTeX heeft gefaald op het uitvoerbestand."
+
+#~ msgid ""
+#~ "Trying create PDF, but no PFA fonts found.\n"
+#~ "Using bitmap fonts instead. This will look bad."
+#~ msgstr ""
+#~ "Probeer PDF te maken, maar geeen PFA fonts gevonden.\n"
+#~ "Gebruik dan maar bitmap fonts.  Dit gaat er niet uitzien."
+
+#~ msgid "Writing HTML menu `%s'"
+#~ msgstr "Schrijven van HTML menu `%s'"
+
+#~ msgid "pseudo filter"
+#~ msgstr "pseudo filter"
+
+#~ msgid "pseudo filter only for single input file"
+#~ msgstr "pseudo filter alleen voor enkel invoerbestand"
+
+#~ msgid "no files specified on command line"
+#~ msgstr "geen bestanden gespecificeerd op de commandoregel"
+
+#~ msgid "Running LilyPond failed. Rerun with --verbose for a trace."
+#~ msgstr "Draaien van LilyPond gefaald. Draai opnieuw met --verbose voor een foutpad."
+
+#~ msgid "Failed to make PS file. Rerun with --verbose for a trace."
+#~ msgstr "Gefaald in het maken van een PS bestand.  Draai opnieuw met --verbose voor een foutpad."
+
+#~ msgid "Running LaTeX failed. Rerun with --verbose for a trace."
+#~ msgstr "Draaien van LaTeX gefaald.  Draai opnieuw met --verbose voor een foutpad."
+
+#~ msgid "%s output to <stdout>..."
+#~ msgstr "%s uitvoer naar <stdout>..."
+
+#~ msgid "%s output to %s..."
+#~ msgstr "%s uitvoer naar %s..."
+
+#~ msgid "can't find file: `%s.%s'"
+#~ msgstr "kan bestand niet vinden: `%s.%s'"
+
+#~ msgid "Convert MIDI to LilyPond source."
+#~ msgstr "Converteer MIDI naar LilyPond invoer."
+
+#~ msgid "debug"
+#~ msgstr "debug"
+
+#~ msgid "define macro NAME [optional expansion EXP]"
+#~ msgstr "definieer macro NAAM [optionele expansie EXP]"
+
+#~ msgid "only pre-process"
+#~ msgstr "alleen pre-processen"
+
+#~ msgid "DIM"
+#~ msgstr "DIM"
+
+#~ msgid "write dependencies"
+#~ msgstr "schrijf afhankelijkheden"
+
+#~ msgid "prepend PREF before each -M dependency"
+#~ msgstr "plak DIR voor elke -M afhankelijkheid"
+
+#~ msgid "don't run lilypond"
+#~ msgstr "draai lilypond niet"
+
+#~ msgid "don't generate pictures"
+#~ msgstr "genereer geen plaatjes"
+
 #~ msgid "accidental `%s' not found"
 #~ msgstr "voorteken `%s' niet gevonden"
 
+#~ msgid "Accidental rule must be pair or context-name; Found %s"
+#~ msgstr "Toevallig teken regel moet paar of context-naam zijn; Gevonden %s"
+
+#~ msgid "checksum mismatch for font file: `%s'"
+#~ msgstr "checksum fout voor fontbestand: `%s'"
+
+#~ msgid "does not match: `%s'"
+#~ msgstr "komt niet overeen: `%s'"
+
+#~ msgid "Rebuild all .afm files, and remove all .pk and .tfm files."
+#~ msgstr "Herbouw alle .afm bestanden en verwijder alle .pk en .tfm bestanden."
+
+#~ msgid "Rerun with -V to show font paths."
+#~ msgstr "Draai opnieuw met -V voor het tonen van fontpaden."
+
+#~ msgid "A script for removing font-files is delivered with the source-code:"
+#~ msgstr "Een script ter verwijdering van fontbestanden is meegeleverd bij de bron-code:"
+
+#~ msgid "Loading default font"
+#~ msgstr "Laad verstek font"
+
+#~ msgid "can't find default font: `%s'"
+#~ msgstr "kan standaard font niet vinden: `%s'"
+
+#~ msgid "Can't switch translators, I'm there already"
+#~ msgstr "Kan niet wisselen van vertaler, ben al hier"
+
+#~ msgid "beam has less than two visible stems"
+#~ msgstr "waardestreep heeft minder dan twee zichtbare stokken"
+
+#~ msgid "I'm one myself"
+#~ msgstr "Ben er zelf een"
+
+#~ msgid "Chord tremolo with %d elements. Must have two elements."
+#~ msgstr "Akkoordtremool met %d elementen. Moet twee elementen hebben."
+
+#~ msgid "no one to print a tremolos"
+#~ msgstr "niemand om tremolos af te drukken"
+
+#~ msgid "gotcha: ptr=%ul"
+#~ msgstr "hebbes: ptr=%ul"
+
+#~ msgid "distance=%f"
+#~ msgstr "afstand=%f"
+
+#~ msgid "NaN"
+#~ msgstr "NaN"
+
+#~ msgid "Junking event: `%s'"
+#~ msgstr "Verschrooten van gebeurtenis: `%s'"
+
+#~ msgid "no one to print a repeat brace"
+#~ msgstr "niemand om een herhalings haak af te drukken"
+
+#~ msgid "non fatal error: "
+#~ msgstr "niet noodlottige fout: "
+
+#~ msgid "Now processing `%s'"
+#~ msgstr "Verwerken van `%s'"
+
+#~ msgid "FIXME: key change merge"
+#~ msgstr "MAAKME: toonsoort sleutel samenvoeging"
+
+#~ msgid "kpathsea can not find TFM file: `%s'"
+#~ msgstr "kpathsea kan TFM bestand niet vinden: `%s'"
+
+#~ msgid "round filled box horizontal extent smaller than blot; decreasing blot"
+#~ msgstr "rond gevulde doos horizontale afmetingen kleiner dan blot; verkleinen van blot"
+
+#~ msgid "round filled box vertical extent smaller than blot; decreasing blot"
+#~ msgstr "rond gevulde doos vertikale afmetingen kleiner dan blot; verkleinen van blot"
+
+#~ msgid "set options, use -e '(ly-option-usage)' for help"
+#~ msgstr "zet opties, gebruik -e '(ly-option-usage)' voor hulp"
+
+#~ msgid "use output format EXT"
+#~ msgstr "gebruik uitvoerformaat BESTAND"
+
+#~ msgid "write Makefile dependencies"
+#~ msgstr "schrijf Makefile afhankelijkheden"
+
+#~ msgid "prepend DIR to dependencies"
+#~ msgstr "voeg DIR voor aan afhankelijkheden"
+
+#~ msgid "run in safe mode"
+#~ msgstr "draai in veilige modus"
+
+#~ msgid "This option is for developers only."
+#~ msgstr "Deze optie is uitsluitend bestemd voor ontwikkelaars."
+
+#~ msgid "Read the sources for more information."
+#~ msgstr "Lees de broncodes voor meer informatie."
+
+#~ msgid "silly pitch"
+#~ msgstr "rare toonhoogte"
+
+#~ msgid "Experimental: temporarily fine tuning (of %d cents) a channel."
+#~ msgstr "Experimenteel: tijdelijke fijnafstemming (%d centen) van kanaal."
+
+#~ msgid "music for the martians."
+#~ msgstr "muziek voor de marsmannetjes."
+
+#~ msgid "Fingerings are also not down?! Putting them down anyway."
+#~ msgstr "Vingerzettingen zijn ook niet onder?! Zet ze toch onder."
+
+#~ msgid "paper output to `%s'..."
+#~ msgstr "papier uitvoer naar `%s'..."
+
+#~ msgid "Don't know how to handle a percent repeat of this length."
+#~ msgstr "Weet niet hoe procent herhaling van deze lengte af te handelen."
+
+#~ msgid "no one to print a percent"
+#~ msgstr "niemand om een procent herhaling af te drukken"
+
+#~ msgid "Creator: "
+#~ msgstr "Schepper: "
+
+#~ msgid "at "
+#~ msgstr "dd "
+
+#~ msgid "can't find start of phrasing slur"
+#~ msgstr "kan begin van frase boogje niet vinden"
+
+#~ msgid "In quotation: junking event %s"
+#~ msgstr "In aanhaling: verschroten van gebeurtenis %s"
+
+#~ msgid "rest direction not set.  Cannot resolve collision."
+#~ msgstr "rustrichting niet gezet.  Kan botsing niet voorkomen."
+
+#~ msgid "lilypond -e EXPR means:"
+#~ msgstr "lilypond -e EXPR betekent:"
+
+#~ msgid "  Evalute the Scheme EXPR before parsing any .ly files."
+#~ msgstr "  Evalueer de Scheme EXPR alvorens enig .ly bestand te ontleden."
+
+#~ msgid "  Multiple -e options may be given, they will be evaluated sequentially."
+#~ msgstr "  Verscheidene -e opties mogen worden gegeven, deze zullen sequentieel worden geëvalueerd."
+
+#~ msgid "  The function ly-set-option allows for access to some internal variables."
+#~ msgstr "  De functie ly-set-option verschaft toegang tot bepaalde interne variabelen."
+
+#~ msgid "Usage: lilypond-bin -e \"(ly-set-option SYMBOL VAL)\""
+#~ msgstr "Gebruik: lilypond-bin -e \"(ly-set-option SYMBOOL WAARDE)\""
+
+#~ msgid "Where SYMBOL VAL pair is any of:"
+#~ msgstr "Waar SYMBOOL WAARDE paar is een van:"
+
+#~ msgid "unbound spanner `%s'"
+#~ msgstr "ongebonden spanner `%s'"
+
+#~ msgid "Separation_item:  I've been drinking too much"
+#~ msgstr "Separation_item:  Ik heb te veel gedronken"
+
+#~ msgid "can't find start of slur"
+#~ msgstr "kan begin van boogje niet vinden"
+
+#~ msgid "Huh?  Got %d, expected %d characters"
+#~ msgstr "Huh?  Kreeg %d, verwachtte %d tekens"
+
+#~ msgid "Global shortest duration is %s"
+#~ msgstr "Globaal kortste lengte is %s"
+
+#~ msgid "#<spring smob d= %f>"
+#~ msgstr "#<veer smob d= %f>"
+
+#~ msgid "Don't you want polyphonic voices instead?"
+#~ msgstr "Wil je anders echt geen polyfone stemmen?"
+
+#~ msgid "can't find ascii character: %d"
+#~ msgstr "kan ascii teken niet vinden: %d"
+
+#~ msgid "TFM header of `%s' has only %u word (s)"
+#~ msgstr "TFM kop van `%s' heeft slechts %u woord(en)"
+
+#~ msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
+#~ msgstr "%s: TFM bestand heeft %u parameters, wat meer is dan de %u die ik aan kan"
+
+#~ msgid "no one to print a tuplet start bracket"
+#~ msgstr "niemand om een x-ool start haak af te drukken"
+
+#~ msgid "Killing tuplet bracket across linebreak."
+#~ msgstr "Vermoorden van tuplet haak over regelbreuk."
+
+#~ msgid "Also have a stopped spanner.  Giving up."
+#~ msgstr "Heb ook al een gestopte spanner.   Geef op."
+
+#~ msgid "Tag must be symbol or list of symbols."
+#~ msgstr "Merk moet symbool of lijst van symbolen zijn."
+
+#~ msgid "Identifier should have alphabetic characters only"
+#~ msgstr "Identifier mag uitsluitend alfabetische tekens hebben"
+
+#~ msgid "\\apply takes function argument"
+#~ msgstr "\\apply neemt een functieargument"
+
+#~ msgid "Can't find music"
+#~ msgstr "Kan geen muziek vinden"
+
+#~ msgid "need integer number arg"
+#~ msgstr "heb integer getal arg nogig"
+
+#~ msgid "Suspect duration found following this beam"
+#~ msgstr "Verdachte lengte gevonden volgend op deze waardestreep"
+
+#~ msgid "input renamed to: `%s'"
+#~ msgstr "invoer hernoemd naar: `%s'"
+
+#~ msgid "Missing end quote"
+#~ msgstr "Aanhalingsteken sluiten mist"
+
+#~ msgid "Incorrect lilypond version: %s (%s, %s)"
+#~ msgstr "Verkeerde lilypond versie: %s (%s, %s)"
+
+#~ msgid "This page is for %(package_name)s-%(package_version)s (%(branch_str)s)."
+#~ msgstr "Deze pagina is voor %(package_name)s-%(package_version)s (%(branch_str)s)."
+
+#~ msgid "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
+#~ msgstr "Meld fouten naar <a href=\\\"%(mail_address_url)s\\\">%(mail_address)s</a>."
+
+#~ msgid "Other languages: %s."
+#~ msgstr "Andere talen: %s."
+
+#~ msgid "About <A HREF=\"%s\">automatic language selection</A>."
+#~ msgstr "Gebruik van <A HREF=\\\"%s\\\">automatische taalkeuze</A>.\n"
+
+#~ msgid "stable-branch"
+#~ msgstr "stabiele tak"
+
+#~ msgid "development-branch"
+#~ msgstr "ontwikkel tak"
+
+#~ msgid "English"
+#~ msgstr "Engels"
+
+#~ msgid "French"
+#~ msgstr "Frans"
+
+#~ msgid "Spanish"
+#~ msgstr "Spaans"
+
+#~ msgid "German"
+#~ msgstr "Duits"
+
+#~ msgid "Finding the ideal number of pages..."
+#~ msgstr "Zoeken naar het ideale aantal pagina's..."
+
+#~ msgid "Fitting music on 1 page..."
+#~ msgstr "Muziek passend maken op 1 pagina..."
+
+#~ msgid "Fitting music on %d or %d pages..."
+#~ msgstr "Muziek passend maken op %d of %d pagina's..."
+
 #~ msgid ""
 #~ "vertical alignment called before line-breaking.\n"
 #~ "Only do cross-staff spanners with PianoStaff."
@@ -2418,9 +2770,6 @@ msgstr "assertie gefaald: ~S"
 #~ "vertikale uitlijning aangeroepen voor regelbreuk\n"
 #~ "Gebruik alleen spanners over notenbalken heen met PianoStaff"
 
-#~ msgid "tried to calculate pure-height at a non-breakpoint"
-#~ msgstr "probeerde pure-hoogte te berekenen op een niet-breekpunt"
-
 #~ msgid "outside-staff object %s has an empty extent"
 #~ msgstr "buiten-notenbalk object %s heeft lege afmetingen"
 
@@ -2434,14 +2783,6 @@ msgstr "assertie gefaald: ~S"
 #~ "gebruik achterkant ACHTER (eps, gnome,\n"
 #~ "ps [standaard], scm, svg, tex, texstr)"
 
-#~ msgid "do not generate printed output"
-#~ msgstr "genereer geen afdrukuitvoer"
-
-#~ msgid "generate a preview of the first system"
-#~ msgstr ""
-#~ "maak een voorvertoning van het eerste\n"
-#~ "systeem"
-
 #~ msgid ""
 #~ "disallow unsafe Scheme and PostScript\n"
 #~ "operations"
@@ -2452,9 +2793,6 @@ msgstr "assertie gefaald: ~S"
 #~ msgid "Evaluating %s"
 #~ msgstr "Evalueren van %s"
 
-#~ msgid "experimental: temporarily fine tuning (of %d cents) a channel."
-#~ msgstr "experimenteel: tijdelijke fijnafstemming (%d centen) van kanaal."
-
 #~ msgid ""
 #~ "\n"
 #~ "The PostScript backend does not support the 'classic'\n"
diff --git a/tex/texinfo.cnf b/tex/texinfo.cnf
deleted file mode 100644 (file)
index ef26742..0000000
+++ /dev/null
@@ -1,498 +0,0 @@
-@c -*- coding: utf-8 -*-
-
-@c We map some UTF-8 characters to corresponding texinfo macros.
-
-@tex
-
-% This UTF-8 parser is based on LaTeX's `utf8.def'.
-
-\newcount\countX
-\newcount\countY
-\newcount\countZ
-
-\gdef\UTFviiiTwoOctets#1#2{%
-  \expandafter
-   \UTFviiiDefined\csname u8:#1\string #2\endcsname}
-\gdef\UTFviiiThreeOctets#1#2#3{%
-  \expandafter
-   \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
-\gdef\UTFviiiFourOctets#1#2#3#4{%
-  \expandafter
-   \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
-
-\gdef\UTFviiiDefined#1{%
-  \ifx #1\relax
-    \message{%
-     \linenumber Unicode char \string #1 not set up for use with texinfo}
-  \else
-    \expandafter #1%
-  \fi
-}
-
-\begingroup
-  \catcode`\~13
-  \catcode`\"12
-
-  \def\UTFviiiLoop{%
-    \global\catcode\countX\active
-    \uccode`\~\countX
-    \uppercase\expandafter{\UTFviiiTmp}%
-    \advance\countX by 1
-    \ifnum\countX < \countY
-      \expandafter\UTFviiiLoop
-    \fi}
-
-  \countX = "C2
-  \countY = "E0
-  \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
-  \UTFviiiLoop
-
-  \countX = "E0
-  \countY = "F0
-  \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
-  \UTFviiiLoop
-
-  \countX = "F0
-  \countY = "F4
-  \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiFourOctets\string~}}
-  \UTFviiiLoop
-\endgroup
-
-\begingroup
-  \catcode`\"=12
-  \catcode`\<=12
-  \catcode`\.=12
-  \catcode`\,=12
-  \catcode`\;=12
-  \catcode`\!=12
-  \catcode`\~=13
-
-  \gdef\DeclareUnicodeCharacter#1#2{%
-    \countZ = "#1\relax
-    \wlog{\space\space defining Unicode char U+#1 (decimal \the\countZ)}%
-    \begingroup
-      \parseXMLCharref
-      \def\UTFviiiTwoOctets##1##2{%
-        \csname u8:##1\string ##2\endcsname}%
-      \def\UTFviiiThreeOctets##1##2##3{%
-        \csname u8:##1\string ##2\string ##3\endcsname}%
-      \def\UTFviiiFourOctets##1##2##3##4{%
-        \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
-      \expandafter\expandafter\expandafter\expandafter
-       \expandafter\expandafter\expandafter
-       \gdef\UTFviiiTmp{#2}%
-    \endgroup}
-
-  \gdef\parseXMLCharref{%
-    \ifnum\countZ < "A0\relax
-      \errhelp = \EMsimple
-      \errmessage{Cannot define Unicode char value < 00A0}%
-    \else\ifnum\countZ < "800\relax
-      \parseUTFviiiA,%
-      \parseUTFviiiB C\UTFviiiTwoOctets.,%
-    \else\ifnum\countZ < "10000\relax
-      \parseUTFviiiA;%
-      \parseUTFviiiA,%
-      \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
-    \else
-      \parseUTFviiiA;%
-      \parseUTFviiiA,%
-      \parseUTFviiiA!%
-      \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
-    \fi\fi\fi
-  }
-
-  \gdef\parseUTFviiiA#1{%
-    \countX = \countZ
-    \divide\countZ by 64
-    \countY = \countZ
-    \multiply\countZ by 64
-    \advance\countX by -\countZ
-    \advance\countX by 128
-    \uccode `#1\countX
-    \countZ = \countY}
-
-  \gdef\parseUTFviiiB#1#2#3#4{%
-    \advance\countZ by "#10\relax
-    \uccode `#3\countZ
-    \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
-\endgroup
-
-\DeclareUnicodeCharacter{00A0}{\tie}
-\DeclareUnicodeCharacter{00A1}{\exclamdown}            % ¡
-\DeclareUnicodeCharacter{00A3}{\pounds}                        % £
-\DeclareUnicodeCharacter{00A8}{\"{ }}                  % ¨
-\DeclareUnicodeCharacter{00A9}{\copyright}             % ©
-\DeclareUnicodeCharacter{00AA}{\ordf}                  % ª
-\DeclareUnicodeCharacter{00AD}{\-}                     % discretionary hyphen
-\DeclareUnicodeCharacter{00AE}{\registeredsymbol}      % ®
-\DeclareUnicodeCharacter{00AF}{\={ }}                  % ¯
-
-\DeclareUnicodeCharacter{00B0}{\ringaccent{ }}         % °
-\DeclareUnicodeCharacter{00B4}{\'{ }}                  % ´
-\DeclareUnicodeCharacter{00B8}{\,{ }}                  % ¸
-\DeclareUnicodeCharacter{00BA}{\ordm}                  % º
-\DeclareUnicodeCharacter{00BF}{\questiondown}          % ¿
-
-\DeclareUnicodeCharacter{00C0}{\`A}                    % À
-\DeclareUnicodeCharacter{00C1}{\'A}                    % Á
-\DeclareUnicodeCharacter{00C2}{\^A}                    % Â
-\DeclareUnicodeCharacter{00C3}{\~A}                    % Ã
-\DeclareUnicodeCharacter{00C4}{\"A}                    % Ä
-\DeclareUnicodeCharacter{00C5}{\AA}                    % Å
-\DeclareUnicodeCharacter{00C6}{\AE}                    % Æ
-\DeclareUnicodeCharacter{00C7}{\,{C}}                  % Ç
-\DeclareUnicodeCharacter{00C8}{\`E}                    % È
-\DeclareUnicodeCharacter{00C9}{\'E}                    % É
-\DeclareUnicodeCharacter{00CA}{\^E}                    % Ê
-\DeclareUnicodeCharacter{00CB}{\"E}                    % Ë
-\DeclareUnicodeCharacter{00CC}{\`I}                    % Ì
-\DeclareUnicodeCharacter{00CD}{\'I}                    % Í
-\DeclareUnicodeCharacter{00CE}{\^I}                    % Î
-\DeclareUnicodeCharacter{00CF}{\"I}                    % Ï
-
-\DeclareUnicodeCharacter{00D1}{\~N}                    % Ñ
-\DeclareUnicodeCharacter{00D2}{\`O}                    % Ò
-\DeclareUnicodeCharacter{00D3}{\'O}                    % Ó
-\DeclareUnicodeCharacter{00D4}{\^O}                    % Ô
-\DeclareUnicodeCharacter{00D5}{\~O}                    % Õ
-\DeclareUnicodeCharacter{00D6}{\"O}                    % Ö
-\DeclareUnicodeCharacter{00D8}{\O}                     % Ø
-\DeclareUnicodeCharacter{00D9}{\`U}                    % Ù
-\DeclareUnicodeCharacter{00DA}{\'U}                    % Ú
-\DeclareUnicodeCharacter{00DB}{\^U}                    % Û
-\DeclareUnicodeCharacter{00DC}{\"U}                    % Ü
-\DeclareUnicodeCharacter{00DD}{\'Y}                    % Ý
-\DeclareUnicodeCharacter{00DF}{\ss}                    % ß
-
-\DeclareUnicodeCharacter{00E0}{\`a}                    % à
-\DeclareUnicodeCharacter{00E1}{\'a}                    % á
-\DeclareUnicodeCharacter{00E2}{\^a}                    % â
-\DeclareUnicodeCharacter{00E3}{\~a}                    % ã
-\DeclareUnicodeCharacter{00E4}{\"a}                    % ä
-\DeclareUnicodeCharacter{00E5}{\aa}                    % å
-\DeclareUnicodeCharacter{00E6}{\ae}                    % æ
-\DeclareUnicodeCharacter{00E7}{\,{c}}                  % ç
-\DeclareUnicodeCharacter{00E8}{\`e}                    % è
-\DeclareUnicodeCharacter{00E9}{\'e}                    % é
-\DeclareUnicodeCharacter{00EA}{\^e}                    % ê
-\DeclareUnicodeCharacter{00EB}{\"e}                    % ë
-\DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}                % ì
-\DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}                % í
-\DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}                % î
-\DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}                % ï
-
-\DeclareUnicodeCharacter{00F1}{\~n}                    % ñ
-\DeclareUnicodeCharacter{00F2}{\`o}                    % ò
-\DeclareUnicodeCharacter{00F3}{\'o}                    % ó
-\DeclareUnicodeCharacter{00F4}{\^o}                    % ô
-\DeclareUnicodeCharacter{00F5}{\~o}                    % õ
-\DeclareUnicodeCharacter{00F6}{\"o}                    % ö
-\DeclareUnicodeCharacter{00F8}{\o}                     % ø
-\DeclareUnicodeCharacter{00F9}{\`u}                    % ù
-\DeclareUnicodeCharacter{00FA}{\'u}                    % ú
-\DeclareUnicodeCharacter{00FB}{\^u}                    % û
-\DeclareUnicodeCharacter{00FC}{\"u}                    % ü
-\DeclareUnicodeCharacter{00FD}{\'y}                    % ý
-\DeclareUnicodeCharacter{00FF}{\"y}                    % ÿ
-
-\DeclareUnicodeCharacter{0100}{\=A}                    % Ā
-\DeclareUnicodeCharacter{0101}{\=a}                    % ā
-\DeclareUnicodeCharacter{0102}{\u{A}}                  % Ă
-\DeclareUnicodeCharacter{0103}{\u{a}}                  % ă
-\DeclareUnicodeCharacter{0106}{\'C}                    % Ć
-\DeclareUnicodeCharacter{0107}{\'c}                    % ć
-\DeclareUnicodeCharacter{0108}{\^C}                    % Ĉ
-\DeclareUnicodeCharacter{0109}{\^c}                    % ĉ
-\DeclareUnicodeCharacter{010A}{\dotaccent{C}}          % Ċ
-\DeclareUnicodeCharacter{010B}{\dotaccent{c}}          % ċ
-\DeclareUnicodeCharacter{010C}{\v{C}}                  % Č
-\DeclareUnicodeCharacter{010D}{\v{c}}                  % č
-\DeclareUnicodeCharacter{010E}{\v{D}}                  % Ď
-%\DeclareUnicodeCharacter{010F}{\v{d}}                 % ď
-
-\DeclareUnicodeCharacter{0112}{\=E}                    % Ē
-\DeclareUnicodeCharacter{0113}{\=e}                    % ē
-\DeclareUnicodeCharacter{0114}{\u{E}}                  % Ĕ
-\DeclareUnicodeCharacter{0115}{\u{e}}                  % ĕ
-\DeclareUnicodeCharacter{0116}{\dotaccent{E}}          % Ė
-\DeclareUnicodeCharacter{0117}{\dotaccent{e}}          % ė
-\DeclareUnicodeCharacter{011A}{\v{E}}                  % Ě
-\DeclareUnicodeCharacter{011B}{\v{e}}                  % ě
-\DeclareUnicodeCharacter{011C}{\^G}                    % Ĝ
-\DeclareUnicodeCharacter{011D}{\^g}                    % ĝ
-\DeclareUnicodeCharacter{011E}{\u{G}}                  % Ğ
-\DeclareUnicodeCharacter{011F}{\u{g}}                  % ğ
-
-\DeclareUnicodeCharacter{0120}{\dotaccent{G}}          % Ġ
-\DeclareUnicodeCharacter{0121}{\dotaccent{g}}          % ġ
-\DeclareUnicodeCharacter{0124}{\^H}                    % Ĥ
-\DeclareUnicodeCharacter{0125}{\^h}                    % ĥ
-\DeclareUnicodeCharacter{0128}{\~I}                    % Ĩ
-\DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}                % ĩ
-\DeclareUnicodeCharacter{012A}{\=I}                    % Ī
-\DeclareUnicodeCharacter{012B}{\={\dotless{i}}}                % ī
-\DeclareUnicodeCharacter{012C}{\u{I}}                  % Ĭ
-\DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}                % ĭ
-
-\DeclareUnicodeCharacter{0130}{\dotaccent{I}}          % İ
-\DeclareUnicodeCharacter{0131}{\dotless{i}}            % ı
-\DeclareUnicodeCharacter{0132}{IJ}                     % IJ
-\DeclareUnicodeCharacter{0133}{ij}                     % ij
-\DeclareUnicodeCharacter{0134}{\^J}                    % Ĵ
-\DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}                % ĵ
-\DeclareUnicodeCharacter{0139}{\'L}                    % Ĺ
-\DeclareUnicodeCharacter{013A}{\'l}                    % ĺ
-
-\DeclareUnicodeCharacter{0141}{\L}                     % Ł
-\DeclareUnicodeCharacter{0142}{\l}                     % ł
-\DeclareUnicodeCharacter{0143}{\'N}                    % Ń
-\DeclareUnicodeCharacter{0144}{\'n}                    % ń
-\DeclareUnicodeCharacter{0147}{\v{N}}                  % Ň
-\DeclareUnicodeCharacter{0148}{\v{n}}                  % ň
-\DeclareUnicodeCharacter{014C}{\=O}                    % Ō
-\DeclareUnicodeCharacter{014D}{\=o}                    % ō
-\DeclareUnicodeCharacter{014E}{\u{O}}                  % Ŏ
-\DeclareUnicodeCharacter{014F}{\u{o}}                  % ŏ
-
-\DeclareUnicodeCharacter{0150}{\H{O}}                  % Ő
-\DeclareUnicodeCharacter{0151}{\H{o}}                  % ő
-\DeclareUnicodeCharacter{0152}{\OE}                    % Œ
-\DeclareUnicodeCharacter{0153}{\oe}                    % œ
-\DeclareUnicodeCharacter{0154}{\'R}                    % Ŕ
-\DeclareUnicodeCharacter{0155}{\'r}                    % ŕ
-\DeclareUnicodeCharacter{0158}{\v{R}}                  % Ř
-\DeclareUnicodeCharacter{0159}{\v{r}}                  % ř
-\DeclareUnicodeCharacter{015A}{\'S}                    % Ś
-\DeclareUnicodeCharacter{015B}{\'s}                    % ś
-\DeclareUnicodeCharacter{015C}{\^S}                    % Ŝ
-\DeclareUnicodeCharacter{015D}{\^s}                    % ŝ
-\DeclareUnicodeCharacter{015E}{\,{S}}                  % Ş
-\DeclareUnicodeCharacter{015F}{\,{s}}                  % ş
-
-\DeclareUnicodeCharacter{0160}{\v{S}}                  % Š
-\DeclareUnicodeCharacter{0161}{\v{s}}                  % š
-\DeclareUnicodeCharacter{0162}{\,{t}}                  % Ţ
-\DeclareUnicodeCharacter{0163}{\,{T}}                  % ţ
-\DeclareUnicodeCharacter{0164}{\v{T}}                  % Ť
-%\DeclareUnicodeCharacter{0165}{\v{t}}                 % ť
-\DeclareUnicodeCharacter{0168}{\~U}                    % Ũ
-\DeclareUnicodeCharacter{0169}{\~u}                    % ũ
-\DeclareUnicodeCharacter{016A}{\=U}                    % Ū
-\DeclareUnicodeCharacter{016B}{\=u}                    % ū
-\DeclareUnicodeCharacter{016C}{\u{U}}                  % Ŭ
-\DeclareUnicodeCharacter{016D}{\u{u}}                  % ŭ
-\DeclareUnicodeCharacter{016E}{\ringaccent{U}}         % Ů
-\DeclareUnicodeCharacter{016F}{\ringaccent{u}}         % ů
-
-\DeclareUnicodeCharacter{0170}{\H{U}}                  % Ű
-\DeclareUnicodeCharacter{0171}{\H{u}}                  % ű
-\DeclareUnicodeCharacter{0174}{\^W}                    % Ŵ
-\DeclareUnicodeCharacter{0175}{\^w}                    % ŵ
-\DeclareUnicodeCharacter{0176}{\^Y}                    % Ŷ
-\DeclareUnicodeCharacter{0177}{\^y}                    % ŷ
-\DeclareUnicodeCharacter{0178}{\"Y}                    % Ÿ
-\DeclareUnicodeCharacter{0179}{\'Z}                    % Ź
-\DeclareUnicodeCharacter{017A}{\'z}                    % ź
-\DeclareUnicodeCharacter{017B}{\dotaccent{Z}}          % Ż
-\DeclareUnicodeCharacter{017C}{\dotaccent{z}}          % ż
-\DeclareUnicodeCharacter{017D}{\v{Z}}                  % Ž
-\DeclareUnicodeCharacter{017E}{\v{z}}                  % ž
-
-\DeclareUnicodeCharacter{01C4}{D\v{Z}}                 % DŽ
-\DeclareUnicodeCharacter{01C5}{D\v{z}}                 % Dž
-\DeclareUnicodeCharacter{01C6}{d\v{z}}                 % dž
-\DeclareUnicodeCharacter{01C7}{LJ}                     % LJ
-\DeclareUnicodeCharacter{01C8}{Lj}                     % Lj
-\DeclareUnicodeCharacter{01C9}{lj}                     % lj
-\DeclareUnicodeCharacter{01CA}{NJ}                     % NJ
-\DeclareUnicodeCharacter{01CB}{Nj}                     % Nj
-\DeclareUnicodeCharacter{01CC}{nj}                     % nj
-\DeclareUnicodeCharacter{01CD}{\v{A}}                  % Ǎ
-\DeclareUnicodeCharacter{01CE}{\v{a}}                  % ǎ
-\DeclareUnicodeCharacter{01CF}{\v{I}}                  % Ǐ
-
-\DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}                % ǐ
-\DeclareUnicodeCharacter{01D1}{\v{O}}                  % Ǒ
-\DeclareUnicodeCharacter{01D2}{\v{o}}                  % ǒ
-\DeclareUnicodeCharacter{01D3}{\v{U}}                  % Ǔ
-\DeclareUnicodeCharacter{01D4}{\v{u}}                  % ǔ
-
-\DeclareUnicodeCharacter{01E2}{\={\AE}}                        % Ǣ
-\DeclareUnicodeCharacter{01E3}{\={\ae}}                        % ǣ
-\DeclareUnicodeCharacter{01E6}{\v{G}}                  % Ǧ
-\DeclareUnicodeCharacter{01E7}{\v{g}}                  % ǧ
-\DeclareUnicodeCharacter{01E8}{\v{K}}                  % Ǩ
-\DeclareUnicodeCharacter{01E9}{\v{k}}                  % ǩ
-
-\DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}                % ǰ
-\DeclareUnicodeCharacter{01F1}{DZ}                     % DZ
-\DeclareUnicodeCharacter{01F2}{Dz}                     % Dz
-\DeclareUnicodeCharacter{01F3}{dz}                     % dz
-\DeclareUnicodeCharacter{01F4}{\'G}                    % Ǵ
-\DeclareUnicodeCharacter{01F5}{\'g}                    % ǵ
-\DeclareUnicodeCharacter{01F8}{\`N}                    % Ǹ
-\DeclareUnicodeCharacter{01F9}{\`n}                    % ǹ
-\DeclareUnicodeCharacter{01FC}{\'{\AE}}                        % Ǽ
-\DeclareUnicodeCharacter{01FD}{\'{\ae}}                        % ǽ
-\DeclareUnicodeCharacter{01FE}{\'{\O}}                 % Ǿ
-\DeclareUnicodeCharacter{01FF}{\'{\o}}                 % ǿ
-
-\DeclareUnicodeCharacter{021E}{\v{H}}                  % Ȟ
-\DeclareUnicodeCharacter{021F}{\v{h}}                  % ȟ
-
-\DeclareUnicodeCharacter{0226}{\dotaccent{A}}          % Ȧ
-\DeclareUnicodeCharacter{0227}{\dotaccent{a}}          % ȧ
-\DeclareUnicodeCharacter{0228}{\,{E}}                  % Ȩ
-\DeclareUnicodeCharacter{0229}{\,{e}}                  % ȩ
-\DeclareUnicodeCharacter{022E}{\dotaccent{O}}          % Ȯ
-\DeclareUnicodeCharacter{022F}{\dotaccent{o}}          % ȯ
-
-\DeclareUnicodeCharacter{0232}{\=Y}                    % Ȳ
-\DeclareUnicodeCharacter{0233}{\=y}                    % ȳ
-\DeclareUnicodeCharacter{0237}{\dotless{j}}            % ȷ
-
-\DeclareUnicodeCharacter{1E02}{\dotaccent{B}}          % Ḃ
-\DeclareUnicodeCharacter{1E03}{\dotaccent{b}}          % ḃ
-\DeclareUnicodeCharacter{1E04}{\udotaccent{B}}         % Ḅ
-\DeclareUnicodeCharacter{1E05}{\udotaccent{b}}         % ḅ
-\DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}         % Ḇ
-\DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}         % ḇ
-\DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}          % Ḋ
-\DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}          % ḋ
-\DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}         % Ḍ
-\DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}         % ḍ
-\DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}         % Ḏ
-\DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}         % ḏ
-
-\DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}          % Ḟ
-\DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}          % ḟ
-
-\DeclareUnicodeCharacter{1E20}{\=G}                    % Ḡ
-\DeclareUnicodeCharacter{1E21}{\=g}                    % ḡ
-\DeclareUnicodeCharacter{1E22}{\dotaccent{H}}          % Ḣ
-\DeclareUnicodeCharacter{1E23}{\dotaccent{h}}          % ḣ
-\DeclareUnicodeCharacter{1E24}{\udotaccent{H}}         % Ḥ
-\DeclareUnicodeCharacter{1E25}{\udotaccent{h}}         % ḥ
-\DeclareUnicodeCharacter{1E26}{\"H}                    % Ḧ
-\DeclareUnicodeCharacter{1E27}{\"h}                    % ḧ
-
-\DeclareUnicodeCharacter{1E30}{\'K}                    % Ḱ
-\DeclareUnicodeCharacter{1E31}{\'k}                    % ḱ
-\DeclareUnicodeCharacter{1E32}{\udotaccent{K}}         % Ḳ
-\DeclareUnicodeCharacter{1E33}{\udotaccent{k}}         % ḳ
-\DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}         % Ḵ
-\DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}         % ḵ
-\DeclareUnicodeCharacter{1E36}{\udotaccent{L}}         % Ḷ
-\DeclareUnicodeCharacter{1E37}{\udotaccent{l}}         % ḷ
-\DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}         % Ḻ
-\DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}         % ḻ
-\DeclareUnicodeCharacter{1E3E}{\'M}                    % Ḿ
-\DeclareUnicodeCharacter{1E3F}{\'m}                    % ḿ
-
-\DeclareUnicodeCharacter{1E40}{\dotaccent{M}}          % Ṁ
-\DeclareUnicodeCharacter{1E41}{\dotaccent{m}}          % ṁ
-\DeclareUnicodeCharacter{1E42}{\udotaccent{M}}         % Ṃ
-\DeclareUnicodeCharacter{1E43}{\udotaccent{m}}         % ṃ
-\DeclareUnicodeCharacter{1E44}{\dotaccent{N}}          % Ṅ
-\DeclareUnicodeCharacter{1E45}{\dotaccent{n}}          % ṅ
-\DeclareUnicodeCharacter{1E46}{\udotaccent{N}}         % Ṇ
-\DeclareUnicodeCharacter{1E47}{\udotaccent{n}}         % ṇ
-\DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}         % Ṉ
-\DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}         % ṉ
-
-\DeclareUnicodeCharacter{1E54}{\'P}                    % Ṕ
-\DeclareUnicodeCharacter{1E55}{\'p}                    % ṕ
-\DeclareUnicodeCharacter{1E56}{\dotaccent{P}}          % Ṗ
-\DeclareUnicodeCharacter{1E57}{\dotaccent{p}}          % ṗ
-\DeclareUnicodeCharacter{1E58}{\dotaccent{R}}          % Ṙ
-\DeclareUnicodeCharacter{1E59}{\dotaccent{r}}          % ṙ
-\DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}         % Ṛ
-\DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}         % ṛ
-\DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}         % Ṟ
-\DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}         % ṟ
-
-\DeclareUnicodeCharacter{1E60}{\dotaccent{S}}          % Ṡ
-\DeclareUnicodeCharacter{1E61}{\dotaccent{s}}          % ṡ
-\DeclareUnicodeCharacter{1E62}{\udotaccent{S}}         % Ṣ
-\DeclareUnicodeCharacter{1E63}{\udotaccent{s}}         % ṣ
-\DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}          % Ṫ
-\DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}          % ṫ
-\DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}         % Ṭ
-\DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}         % ṭ
-\DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}         % Ṯ
-\DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}         % ṯ
-
-\DeclareUnicodeCharacter{1E7C}{\~V}                    % Ṽ
-\DeclareUnicodeCharacter{1E7D}{\~v}                    % ṽ
-\DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}         % Ṿ
-\DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}         % ṿ
-
-\DeclareUnicodeCharacter{1E80}{\`W}                    % Ẁ
-\DeclareUnicodeCharacter{1E81}{\`w}                    % ẁ
-\DeclareUnicodeCharacter{1E82}{\'W}                    % Ẃ
-\DeclareUnicodeCharacter{1E83}{\'w}                    % ẃ
-\DeclareUnicodeCharacter{1E84}{\"W}                    % Ẅ
-\DeclareUnicodeCharacter{1E85}{\"w}                    % ẅ
-\DeclareUnicodeCharacter{1E86}{\dotaccent{W}}          % Ẇ
-\DeclareUnicodeCharacter{1E87}{\dotaccent{w}}          % ẇ
-\DeclareUnicodeCharacter{1E88}{\udotaccent{W}}         % Ẉ
-\DeclareUnicodeCharacter{1E89}{\udotaccent{w}}         % ẉ
-\DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}          % Ẋ
-\DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}          % ẋ
-\DeclareUnicodeCharacter{1E8C}{\"X}                    % Ẍ
-\DeclareUnicodeCharacter{1E8D}{\"x}                    % ẍ
-\DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}          % Ẏ
-\DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}          % ẏ
-
-\DeclareUnicodeCharacter{1E90}{\^Z}                    % Ẑ
-\DeclareUnicodeCharacter{1E91}{\^z}                    % ẑ
-\DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}         % Ẓ
-\DeclareUnicodeCharacter{1E93}{\udotaccent{z}}         % ẓ
-\DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}         % Ẕ
-\DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}         % ẕ
-\DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}         % ẖ
-\DeclareUnicodeCharacter{1E97}{\"t}                    % ẗ
-\DeclareUnicodeCharacter{1E98}{\ringaccent{w}}         % ẘ
-\DeclareUnicodeCharacter{1E99}{\ringaccent{y}}         % ẙ
-
-\DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}         % Ạ
-\DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}         % ạ
-
-\DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}         % Ẹ
-\DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}         % ẹ
-\DeclareUnicodeCharacter{1EBC}{\~E}                    % Ẽ
-\DeclareUnicodeCharacter{1EBD}{\~e}                    % ẽ
-
-\DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}         % Ị
-\DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}         % ị
-\DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}         % Ọ
-\DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}         % ọ
-
-\DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}         % Ụ
-\DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}         % ụ
-
-\DeclareUnicodeCharacter{1EF2}{\`Y}                    % Ỳ
-\DeclareUnicodeCharacter{1EF3}{\`y}                    % ỳ
-\DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}         % Ỵ
-%\DeclareUnicodeCharacter{1EF5}{\udotaccent{y}}                % ỵ
-\DeclareUnicodeCharacter{1EF8}{\~Y}                    % Ỹ
-\DeclareUnicodeCharacter{1EF9}{\~y}                    % ỹ
-
-\DeclareUnicodeCharacter{2013}{--}                     % –
-\DeclareUnicodeCharacter{2014}{---}                    % —
-\DeclareUnicodeCharacter{2022}{\bullet}                        % •
-\DeclareUnicodeCharacter{2026}{\dots}                  % …
-\DeclareUnicodeCharacter{20AC}{\euro}                  % €
-
-\DeclareUnicodeCharacter{2192}{\expansion}             % →
-\DeclareUnicodeCharacter{21D2}{\result}                        % ⇒
-
-\DeclareUnicodeCharacter{2212}{\minus}                 % −
-\DeclareUnicodeCharacter{2217}{\point}                 % ∗
-\DeclareUnicodeCharacter{2261}{\equiv}                 % ≡
-
-@end tex
index 62fa9a4f63b8c8f639f251fcaa7861d1b5ce2266..060f622245978dc97a558d88ac955a894817483a 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2006-06-01.17}
+\def\texinfoversion{2007-06-26.23}
 %
 % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
-% Software Foundation, Inc.
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+% 2007 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software; you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -67,7 +67,7 @@
 \everyjob{\message{[Texinfo version \texinfoversion]}%
   \catcode`+=\active \catcode`\_=\active}
 
-\message{Basics,}
+
 \chardef\other=12
 
 % We never want plain's \outer definition of \+ in Texinfo.
 \chardef\spacecat = 10
 \def\spaceisspace{\catcode`\ =\spacecat}
 
+% sometimes characters are active, so we need control sequences.
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dashChar  = `\-
+\chardef\dotChar   = `\.
+\chardef\exclamChar= `\!
+\chardef\lquoteChar= `\`
+\chardef\questChar = `\?
+\chardef\rquoteChar= `\'
+\chardef\semiChar  = `\;
+\chardef\underChar = `\_
+
 % Ignore a token.
 %
 \def\gobble#1{}
       \pagebody{#1}%
       \ifdim\ht\footlinebox > 0pt
         % Only leave this space if the footline is nonempty.
-        % (We lessened \vsize for it in \oddfootingxxx.)
+        % (We lessened \vsize for it in \oddfootingyyy.)
         % The \baselineskip=24pt in plain's \makefootline has no effect.
-        \vskip 2\baselineskip
+        \vskip 24pt
         \unvbox\footlinebox
       \fi
       %
@@ -1213,8 +1225,9 @@ where each line of input produces a line of output.}
 
 % To handle parens, we must adopt a different approach, since parens are
 % not active characters.  hyperref.dtx (which has the same problem as
-% us) handles it with this amazing macro to replace tokens.  I've
-% tinkered with it a little for texinfo, but it's definitely from there.
+% us) handles it with this amazing macro to replace tokens, with minor
+% changes for Texinfo.  It is included here under the GPL by permission
+% from the author, Heiko Oberdiek.
 % 
 % #1 is the tokens to replace.
 % #2 is the replacement.
@@ -1243,13 +1256,44 @@ where each line of input produces a line of output.}
   \HyPsdSubst{)}{\realbackslash)}{#1}%
 }
 
+\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
+with PDF output, and none of those formats could be found.  (.eps cannot
+be supported due to the design of the PDF format; use regular TeX (DVI
+output) for that.)}
+
 \ifpdf
   \input pdfcolor
-  \pdfcatalog{/PageMode /UseOutlines}%
+  \pdfcatalog{/PageMode /UseOutlines}
+  %
   % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
   \def\dopdfimage#1#2#3{%
     \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
     \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    %
+    % pdftex (and the PDF format) support .png, .jpg, .pdf (among
+    % others).  Let's try in that order.
+    \let\pdfimgext=\empty
+    \begingroup
+      \openin 1 #1.png \ifeof 1
+        \openin 1 #1.jpg \ifeof 1
+          \openin 1 #1.jpeg \ifeof 1
+            \openin 1 #1.JPG \ifeof 1
+              \openin 1 #1.pdf \ifeof 1
+                \errhelp = \nopdfimagehelp
+                \errmessage{Could not find image file #1 for pdf}%
+              \else \gdef\pdfimgext{pdf}%
+              \fi
+            \else \gdef\pdfimgext{JPG}%
+            \fi
+          \else \gdef\pdfimgext{jpeg}%
+          \fi
+        \else \gdef\pdfimgext{jpg}%
+        \fi
+      \else \gdef\pdfimgext{png}%
+      \fi
+      \closein 1
+    \endgroup
+    %
     % without \immediate, pdftex seg faults when the same image is
     % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
     \ifnum\pdftexversion < 14
@@ -1260,28 +1304,36 @@ where each line of input produces a line of output.}
       \ifdim \wd0 >0pt width \imagewidth \fi
       \ifdim \wd2 >0pt height \imageheight \fi
       \ifnum\pdftexversion<13
-         #1.pdf%
+         #1.\pdfimgext
        \else
-         {#1.pdf}%
+         {#1.\pdfimgext}%
        \fi
     \ifnum\pdftexversion < 14 \else
       \pdfrefximage \pdflastximage
     \fi}
+  %
   \def\pdfmkdest#1{{%
     % We have to set dummies so commands such as @code, and characters
     % such as \, aren't expanded when present in a section title.
-    \atdummies
+    \indexnofonts
+    \turnoffactive
     \activebackslashdouble
+    \makevalueexpandable
     \def\pdfdestname{#1}%
     \backslashparens\pdfdestname
-    \pdfdest name{\pdfdestname} xyz%
-  }}%
+    \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+  }}
   %
   % used to mark target names; must be expandable.
-  \def\pdfmkpgn#1{#1}%
+  \def\pdfmkpgn#1{#1}
   %
-  \let\linkcolor = \Blue  % was Cyan, but that seems light?
+  % by default, use a color that is dark enough to print on paper as
+  % nearly black, but still distinguishable for online viewing.
+  % (Defined in pdfcolor.tex.)
+  \let\urlcolor = \BrickRed
+  \let\linkcolor = \BrickRed
   \def\endlink{\Black\pdfendlink}
+  %
   % Adding outlines to PDF; macros for calculating structure of outlines
   % come from Petr Olsak
   \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
@@ -1383,7 +1435,7 @@ where each line of input produces a line of output.}
       \indexnofonts
       \setupdatafile
       \catcode`\\=\active \otherbackslash
-      \input \jobname.toc
+      \input \tocreadfilename
     \endgroup
   }
   %
@@ -1413,7 +1465,7 @@ where each line of input produces a line of output.}
       \def\@{@}%
       \let\/=\empty
       \makevalueexpandable
-      \leavevmode\Red
+      \leavevmode\urlcolor
       \startlink attr{/Border [0 0 0]}%
         user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
     \endgroup}
@@ -1503,11 +1555,276 @@ where each line of input produces a line of output.}
   }%
 }
 
+%
+% PDF CMaps.  See also LaTeX's t1.cmap.
+%
+% \cmapOT1
+\ifpdf
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1-0)
+%%Title: (TeX-OT1-0 TeX OT1 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+8 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<23> <26> <0023>
+<28> <3B> <0028>
+<3F> <5B> <003F>
+<5D> <5E> <005D>
+<61> <7A> <0061>
+<7B> <7C> <2013>
+endbfrange
+40 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <00660066>
+<0C> <00660069>
+<0D> <0066006C>
+<0E> <006600660069>
+<0F> <00660066006C>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<21> <0021>
+<22> <201D>
+<27> <2019>
+<3C> <00A1>
+<3D> <003D>
+<3E> <00BF>
+<5C> <201C>
+<5F> <02D9>
+<60> <2018>
+<7D> <02DD>
+<7E> <007E>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+%
+% \cmapOT1IT
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1IT-0)
+%%Title: (TeX-OT1IT-0 TeX OT1IT 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1IT)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1IT-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+8 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<25> <26> <0025>
+<28> <3B> <0028>
+<3F> <5B> <003F>
+<5D> <5E> <005D>
+<61> <7A> <0061>
+<7B> <7C> <2013>
+endbfrange
+42 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <00660066>
+<0C> <00660069>
+<0D> <0066006C>
+<0E> <006600660069>
+<0F> <00660066006C>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<21> <0021>
+<22> <201D>
+<23> <0023>
+<24> <00A3>
+<27> <2019>
+<3C> <00A1>
+<3D> <003D>
+<3E> <00BF>
+<5C> <201C>
+<5F> <02D9>
+<60> <2018>
+<7D> <02DD>
+<7E> <007E>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1IT\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+%
+% \cmapOT1TT
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1TT-0)
+%%Title: (TeX-OT1TT-0 TeX OT1TT 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1TT)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1TT-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+5 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<21> <26> <0021>
+<28> <5F> <0028>
+<61> <7E> <0061>
+endbfrange
+32 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <2191>
+<0C> <2193>
+<0D> <0027>
+<0E> <00A1>
+<0F> <00BF>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<20> <2423>
+<27> <2019>
+<60> <2018>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1TT\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+\else
+  \expandafter\let\csname cmapOT1\endcsname\gobble
+  \expandafter\let\csname cmapOT1IT\endcsname\gobble
+  \expandafter\let\csname cmapOT1TT\endcsname\gobble
+\fi
+
 
 % Set the font macro #1 to the font named #2, adding on the
 % specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
+% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
+% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
+% empty to omit).
+\def\setfont#1#2#3#4#5{%
+  \font#1=\fontprefix#2#3 scaled #4
+  \csname cmap#5\endcsname#1%
+}
+% This is what gets called when #5 of \setfont is empty.
+\let\cmap\gobble
 
 
 % Use cm as the default font prefix.
@@ -1536,63 +1853,63 @@ where each line of input produces a line of output.}
 % Definitions for a main text size of 11pt.  This is the default in
 % Texinfo.
 % 
-\def\definetextfontsizexi{
+\def\definetextfontsizexi{%
 % Text fonts (11.2pt, magstep1).
 \def\textnominalsize{11pt}
 \edef\mainmagstep{\magstephalf}
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
+\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
 \font\texti=cmmi10 scaled \mainmagstep
 \font\textsy=cmsy10 scaled \mainmagstep
 
 % A few fonts for @defun names and args.
-\setfont\defbf\bfshape{10}{\magstep1}
-\setfont\deftt\ttshape{10}{\magstep1}
-\setfont\defttsl\ttslshape{10}{\magstep1}
+\setfont\defbf\bfshape{10}{\magstep1}{OT1}
+\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
+\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
 \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
 
 % Fonts for indices, footnotes, small examples (9pt).
 \def\smallnominalsize{9pt}
-\setfont\smallrm\rmshape{9}{1000}
-\setfont\smalltt\ttshape{9}{1000}
-\setfont\smallbf\bfshape{10}{900}
-\setfont\smallit\itshape{9}{1000}
-\setfont\smallsl\slshape{9}{1000}
-\setfont\smallsf\sfshape{9}{1000}
-\setfont\smallsc\scshape{10}{900}
-\setfont\smallttsl\ttslshape{10}{900}
+\setfont\smallrm\rmshape{9}{1000}{OT1}
+\setfont\smalltt\ttshape{9}{1000}{OT1TT}
+\setfont\smallbf\bfshape{10}{900}{OT1}
+\setfont\smallit\itshape{9}{1000}{OT1IT}
+\setfont\smallsl\slshape{9}{1000}{OT1}
+\setfont\smallsf\sfshape{9}{1000}{OT1}
+\setfont\smallsc\scshape{10}{900}{OT1}
+\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
 \font\smalli=cmmi9
 \font\smallsy=cmsy9
 
 % Fonts for small examples (8pt).
 \def\smallernominalsize{8pt}
-\setfont\smallerrm\rmshape{8}{1000}
-\setfont\smallertt\ttshape{8}{1000}
-\setfont\smallerbf\bfshape{10}{800}
-\setfont\smallerit\itshape{8}{1000}
-\setfont\smallersl\slshape{8}{1000}
-\setfont\smallersf\sfshape{8}{1000}
-\setfont\smallersc\scshape{10}{800}
-\setfont\smallerttsl\ttslshape{10}{800}
+\setfont\smallerrm\rmshape{8}{1000}{OT1}
+\setfont\smallertt\ttshape{8}{1000}{OT1TT}
+\setfont\smallerbf\bfshape{10}{800}{OT1}
+\setfont\smallerit\itshape{8}{1000}{OT1IT}
+\setfont\smallersl\slshape{8}{1000}{OT1}
+\setfont\smallersf\sfshape{8}{1000}{OT1}
+\setfont\smallersc\scshape{10}{800}{OT1}
+\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
 \font\smalleri=cmmi8
 \font\smallersy=cmsy8
 
 % Fonts for title page (20.4pt):
 \def\titlenominalsize{20pt}
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
+\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
 \let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
+\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
 \font\titlei=cmmi12 scaled \magstep3
 \font\titlesy=cmsy10 scaled \magstep4
 \def\authorrm{\secrm}
@@ -1600,53 +1917,53 @@ where each line of input produces a line of output.}
 
 % Chapter (and unnumbered) fonts (17.28pt).
 \def\chapnominalsize{17pt}
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
+\setfont\chaprm\rmbshape{12}{\magstep2}{OT1}
+\setfont\chapit\itbshape{10}{\magstep3}{OT1IT}
+\setfont\chapsl\slbshape{10}{\magstep3}{OT1}
+\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT}
+\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT}
+\setfont\chapsf\sfbshape{17}{1000}{OT1}
 \let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
+\setfont\chapsc\scbshape{10}{\magstep3}{OT1}
 \font\chapi=cmmi12 scaled \magstep2
 \font\chapsy=cmsy10 scaled \magstep3
 
 % Section fonts (14.4pt).
 \def\secnominalsize{14pt}
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
+\setfont\secrm\rmbshape{12}{\magstep1}{OT1}
+\setfont\secit\itbshape{10}{\magstep2}{OT1IT}
+\setfont\secsl\slbshape{10}{\magstep2}{OT1}
+\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
+\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT}
+\setfont\secsf\sfbshape{12}{\magstep1}{OT1}
 \let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
+\setfont\secsc\scbshape{10}{\magstep2}{OT1}
 \font\seci=cmmi12 scaled \magstep1
 \font\secsy=cmsy10 scaled \magstep2
 
 % Subsection fonts (13.15pt).
 \def\ssecnominalsize{13pt}
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
+\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1}
+\setfont\ssecit\itbshape{10}{1315}{OT1IT}
+\setfont\ssecsl\slbshape{10}{1315}{OT1}
+\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT}
+\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1}
 \let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{1315}
+\setfont\ssecsc\scbshape{10}{1315}{OT1}
 \font\sseci=cmmi12 scaled \magstephalf
 \font\ssecsy=cmsy10 scaled 1315
 
 % Reduced fonts for @acro in text (10pt).
 \def\reducednominalsize{10pt}
-\setfont\reducedrm\rmshape{10}{1000}
-\setfont\reducedtt\ttshape{10}{1000}
-\setfont\reducedbf\bfshape{10}{1000}
-\setfont\reducedit\itshape{10}{1000}
-\setfont\reducedsl\slshape{10}{1000}
-\setfont\reducedsf\sfshape{10}{1000}
-\setfont\reducedsc\scshape{10}{1000}
-\setfont\reducedttsl\ttslshape{10}{1000}
+\setfont\reducedrm\rmshape{10}{1000}{OT1}
+\setfont\reducedtt\ttshape{10}{1000}{OT1TT}
+\setfont\reducedbf\bfshape{10}{1000}{OT1}
+\setfont\reducedit\itshape{10}{1000}{OT1IT}
+\setfont\reducedsl\slshape{10}{1000}{OT1}
+\setfont\reducedsf\sfshape{10}{1000}{OT1}
+\setfont\reducedsc\scshape{10}{1000}{OT1}
+\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
 \font\reducedi=cmmi10
 \font\reducedsy=cmsy10
 
@@ -1665,59 +1982,59 @@ where each line of input produces a line of output.}
 % Text fonts (10pt).
 \def\textnominalsize{10pt}
 \edef\mainmagstep{1000}
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
+\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
 \font\texti=cmmi10 scaled \mainmagstep
 \font\textsy=cmsy10 scaled \mainmagstep
 
 % A few fonts for @defun names and args.
-\setfont\defbf\bfshape{10}{\magstephalf}
-\setfont\deftt\ttshape{10}{\magstephalf}
-\setfont\defttsl\ttslshape{10}{\magstephalf}
+\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
+\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
+\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
 \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
 
 % Fonts for indices, footnotes, small examples (9pt).
 \def\smallnominalsize{9pt}
-\setfont\smallrm\rmshape{9}{1000}
-\setfont\smalltt\ttshape{9}{1000}
-\setfont\smallbf\bfshape{10}{900}
-\setfont\smallit\itshape{9}{1000}
-\setfont\smallsl\slshape{9}{1000}
-\setfont\smallsf\sfshape{9}{1000}
-\setfont\smallsc\scshape{10}{900}
-\setfont\smallttsl\ttslshape{10}{900}
+\setfont\smallrm\rmshape{9}{1000}{OT1}
+\setfont\smalltt\ttshape{9}{1000}{OT1TT}
+\setfont\smallbf\bfshape{10}{900}{OT1}
+\setfont\smallit\itshape{9}{1000}{OT1IT}
+\setfont\smallsl\slshape{9}{1000}{OT1}
+\setfont\smallsf\sfshape{9}{1000}{OT1}
+\setfont\smallsc\scshape{10}{900}{OT1}
+\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
 \font\smalli=cmmi9
 \font\smallsy=cmsy9
 
 % Fonts for small examples (8pt).
 \def\smallernominalsize{8pt}
-\setfont\smallerrm\rmshape{8}{1000}
-\setfont\smallertt\ttshape{8}{1000}
-\setfont\smallerbf\bfshape{10}{800}
-\setfont\smallerit\itshape{8}{1000}
-\setfont\smallersl\slshape{8}{1000}
-\setfont\smallersf\sfshape{8}{1000}
-\setfont\smallersc\scshape{10}{800}
-\setfont\smallerttsl\ttslshape{10}{800}
+\setfont\smallerrm\rmshape{8}{1000}{OT1}
+\setfont\smallertt\ttshape{8}{1000}{OT1TT}
+\setfont\smallerbf\bfshape{10}{800}{OT1}
+\setfont\smallerit\itshape{8}{1000}{OT1IT}
+\setfont\smallersl\slshape{8}{1000}{OT1}
+\setfont\smallersf\sfshape{8}{1000}{OT1}
+\setfont\smallersc\scshape{10}{800}{OT1}
+\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
 \font\smalleri=cmmi8
 \font\smallersy=cmsy8
 
 % Fonts for title page (20.4pt):
 \def\titlenominalsize{20pt}
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
+\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
 \let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
+\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
 \font\titlei=cmmi12 scaled \magstep3
 \font\titlesy=cmsy10 scaled \magstep4
 \def\authorrm{\secrm}
@@ -1725,53 +2042,53 @@ where each line of input produces a line of output.}
 
 % Chapter fonts (14.4pt).
 \def\chapnominalsize{14pt}
-\setfont\chaprm\rmbshape{12}{\magstep1}
-\setfont\chapit\itbshape{10}{\magstep2}
-\setfont\chapsl\slbshape{10}{\magstep2}
-\setfont\chaptt\ttbshape{12}{\magstep1}
-\setfont\chapttsl\ttslshape{10}{\magstep2}
-\setfont\chapsf\sfbshape{12}{\magstep1}
+\setfont\chaprm\rmbshape{12}{\magstep1}{OT1}
+\setfont\chapit\itbshape{10}{\magstep2}{OT1IT}
+\setfont\chapsl\slbshape{10}{\magstep2}{OT1}
+\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT}
+\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT}
+\setfont\chapsf\sfbshape{12}{\magstep1}{OT1}
 \let\chapbf\chaprm
-\setfont\chapsc\scbshape{10}{\magstep2}
+\setfont\chapsc\scbshape{10}{\magstep2}{OT1}
 \font\chapi=cmmi12 scaled \magstep1
 \font\chapsy=cmsy10 scaled \magstep2
 
 % Section fonts (12pt).
 \def\secnominalsize{12pt}
-\setfont\secrm\rmbshape{12}{1000}
-\setfont\secit\itbshape{10}{\magstep1}
-\setfont\secsl\slbshape{10}{\magstep1}
-\setfont\sectt\ttbshape{12}{1000}
-\setfont\secttsl\ttslshape{10}{\magstep1}
-\setfont\secsf\sfbshape{12}{1000}
+\setfont\secrm\rmbshape{12}{1000}{OT1}
+\setfont\secit\itbshape{10}{\magstep1}{OT1IT}
+\setfont\secsl\slbshape{10}{\magstep1}{OT1}
+\setfont\sectt\ttbshape{12}{1000}{OT1TT}
+\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT}
+\setfont\secsf\sfbshape{12}{1000}{OT1}
 \let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep1}
+\setfont\secsc\scbshape{10}{\magstep1}{OT1}
 \font\seci=cmmi12 
 \font\secsy=cmsy10 scaled \magstep1
 
 % Subsection fonts (10pt).
 \def\ssecnominalsize{10pt}
-\setfont\ssecrm\rmbshape{10}{1000}
-\setfont\ssecit\itbshape{10}{1000}
-\setfont\ssecsl\slbshape{10}{1000}
-\setfont\ssectt\ttbshape{10}{1000}
-\setfont\ssecttsl\ttslshape{10}{1000}
-\setfont\ssecsf\sfbshape{10}{1000}
+\setfont\ssecrm\rmbshape{10}{1000}{OT1}
+\setfont\ssecit\itbshape{10}{1000}{OT1IT}
+\setfont\ssecsl\slbshape{10}{1000}{OT1}
+\setfont\ssectt\ttbshape{10}{1000}{OT1TT}
+\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT}
+\setfont\ssecsf\sfbshape{10}{1000}{OT1}
 \let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{1000}
+\setfont\ssecsc\scbshape{10}{1000}{OT1}
 \font\sseci=cmmi10
 \font\ssecsy=cmsy10
 
 % Reduced fonts for @acro in text (9pt).
 \def\reducednominalsize{9pt}
-\setfont\reducedrm\rmshape{9}{1000}
-\setfont\reducedtt\ttshape{9}{1000}
-\setfont\reducedbf\bfshape{10}{900}
-\setfont\reducedit\itshape{9}{1000}
-\setfont\reducedsl\slshape{9}{1000}
-\setfont\reducedsf\sfshape{9}{1000}
-\setfont\reducedsc\scshape{10}{900}
-\setfont\reducedttsl\ttslshape{10}{900}
+\setfont\reducedrm\rmshape{9}{1000}{OT1}
+\setfont\reducedtt\ttshape{9}{1000}{OT1TT}
+\setfont\reducedbf\bfshape{10}{900}{OT1}
+\setfont\reducedit\itshape{9}{1000}{OT1IT}
+\setfont\reducedsl\slshape{9}{1000}{OT1}
+\setfont\reducedsf\sfshape{9}{1000}{OT1}
+\setfont\reducedsc\scshape{10}{900}{OT1}
+\setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
 \font\reducedi=cmmi9
 \font\reducedsy=cmsy9
 
@@ -1929,10 +2246,10 @@ where each line of input produces a line of output.}
 \newcount\fontdepth \fontdepth=0
 
 % Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bfshape{10}{\magstep1}  % no cmb12
-\setfont\shortcontsl\slshape{12}{1000}
-\setfont\shortconttt\ttshape{12}{1000}
+\setfont\shortcontrm\rmshape{12}{1000}{OT1}
+\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1}  % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}{OT1}
+\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
 
 %% Add scribe-like font environments, plus @l for inline lisp (usually sans
 %% serif) and @ii for TeX italic
@@ -1976,13 +2293,6 @@ where each line of input produces a line of output.}
 % Can't use plain's \frenchspacing because it uses the `\x notation, and
 % sometimes \x has an active definition that messes things up.
 %
-\chardef\colonChar = `\:
-\chardef\commaChar = `\,
-\chardef\dotChar   = `\.
-\chardef\exclamChar= `\!
-\chardef\questChar = `\?
-\chardef\semiChar  = `\;
-%
 \catcode`@=11
   \def\plainfrenchspacing{%
     \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
@@ -2002,7 +2312,7 @@ where each line of input produces a line of output.}
   \null
 }
 \def\samp#1{`\tclose{#1}'\null}
-\setfont\keyrm\rmshape{8}{1000}
+\setfont\keyrm\rmshape{8}{1000}{OT1}
 \font\keysy=cmsy9
 \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
   \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
@@ -2010,6 +2320,7 @@ where each line of input produces a line of output.}
      \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
     \kern-0.4pt\hrule}%
   \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+\def\key #1{{\nohyphenation \uppercase{#1}}\null}
 % The old definition, with no lozenge:
 %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
 \def\ctrl #1{{\tt \rawbackslash \hat}#1}
@@ -2051,14 +2362,14 @@ where each line of input produces a line of output.}
 % and arrange explicitly to hyphenate at a dash.
 %  -- rms.
 {
-  \catcode`\-=\active
-  \catcode`\_=\active
-  \catcode`\'=\active
+  \catcode`\-=\active \catcode`\_=\active
+  \catcode`\'=\active \catcode`\`=\active
   %
   \global\def\code{\begingroup
-    \catcode`\-=\active  \catcode`\_=\active
-    \catcode`\'=\active
-    \let'\singlequotechar
+    \catcode\rquoteChar=\active \catcode\lquoteChar=\active
+    \let'\codequoteright \let`\codequoteleft
+    %
+    \catcode\dashChar=\active  \catcode\underChar=\active
     \ifallowcodebreaks
      \let-\codedash
      \let_\codeunder
@@ -2304,6 +2615,10 @@ where each line of input produces a line of output.}
     }$%
 }
 
+% @textdegree - the normal degrees sign.
+%
+\def\textdegree{$^\circ$}
+
 % Laurent Siebenmann reports \Orb undefined with:
 %  Textures 1.7.7 (preloaded format=plain 93.10.14)  (68K)  16 APR 2004 02:38
 % so we'll define it if necessary.
@@ -2475,8 +2790,8 @@ where each line of input produces a line of output.}
   %
   % Leave some space for the footline.  Hopefully ok to assume
   % @evenfooting will not be used by itself.
-  \global\advance\pageheight by -\baselineskip
-  \global\advance\vsize by -\baselineskip
+  \global\advance\pageheight by -12pt
+  \global\advance\vsize by -12pt
 }
 
 \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
@@ -3527,6 +3842,7 @@ where each line of input produces a line of output.}
   \definedummyword\point
   \definedummyword\print
   \definedummyword\result
+  \definedummyword\textdegree
   %
   % We want to disable all macros so that they are not expanded by \write.
   \macrolist
@@ -3660,6 +3976,7 @@ where each line of input produces a line of output.}
   \def\point{.}%
   \def\print{-|}%
   \def\result{=>}%
+  \def\textdegree{degrees}%
   %
   % We need to get rid of all macros, leaving only the arguments (if present).
   % Of course this is not nearly correct, but it is the best we can do for now.
@@ -3699,11 +4016,7 @@ where each line of input produces a line of output.}
     %
     \edef\writeto{\csname#1indfile\endcsname}%
     %
-    \ifvmode
-      \dosubindsanitize
-    \else
-      \dosubindwrite
-    \fi
+    \safewhatsit\dosubindwrite
   }%
   \fi
 }
@@ -3740,13 +4053,13 @@ where each line of input produces a line of output.}
   \temp
 }
 
-% Take care of unwanted page breaks:
+% Take care of unwanted page breaks/skips around a whatsit:
 %
 % If a skip is the last thing on the list now, preserve it
 % by backing up by \lastskip, doing the \write, then inserting
 % the skip again.  Otherwise, the whatsit generated by the
-% \write will make \lastskip zero.  The result is that sequences
-% like this:
+% \write or \pdfdest will make \lastskip zero.  The result is that
+% sequences like this:
 % @end defun
 % @tindex whatever
 % @defun ...
@@ -3770,13 +4083,19 @@ where each line of input produces a line of output.}
 %
 \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
 %
+\newskip\whatsitskip
+\newcount\whatsitpenalty
+%
 % ..., ready, GO:
 %
-\def\dosubindsanitize{%
+\def\safewhatsit#1{%
+\ifhmode
+  #1%
+\else
   % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
-  \skip0 = \lastskip
+  \whatsitskip = \lastskip
   \edef\lastskipmacro{\the\lastskip}%
-  \count255 = \lastpenalty
+  \whatsitpenalty = \lastpenalty
   %
   % If \lastskip is nonzero, that means the last item was a
   % skip.  And since a skip is discardable, that means this
@@ -3785,10 +4104,10 @@ where each line of input produces a line of output.}
   % breakpoint, therefore no \nobreak needed.
   \ifx\lastskipmacro\zeroskipmacro
   \else
-    \vskip-\skip0
+    \vskip-\whatsitskip
   \fi
   %
-  \dosubindwrite
+  #1%
   %
   \ifx\lastskipmacro\zeroskipmacro
     % If \lastskip was zero, perhaps the last item was a penalty, and
@@ -3802,13 +4121,14 @@ where each line of input produces a line of output.}
     %   Description.
     % would allow a break between the index-whatever whatsit
     % and the "Description." paragraph.
-    \ifnum\count255>9999 \penalty\count255 \fi
+    \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi
   \else
     % On the other hand, if we had a nonzero \lastskip,
     % this make-up glue would be preceded by a non-discardable item
     % (the whatsit from the \write), so we must insert a \nobreak.
-    \nobreak\vskip\skip0
+    \nobreak\vskip\whatsitskip
   \fi
+\fi
 }
 
 % The index entry written in the file actually looks like
@@ -3851,6 +4171,7 @@ where each line of input produces a line of output.}
   %
   \smallfonts \rm
   \tolerance = 9500
+  \plainfrenchspacing
   \everypar = {}% don't want the \kern\-parindent from indentation suppression.
   %
   % See if the index file exists and is nonempty.
@@ -3980,11 +4301,8 @@ where each line of input produces a line of output.}
     % The following is kludged to not output a line of dots in the index if
     % there are no page numbers.  The next person who breaks this will be
     % cursed by a Unix daemon.
-    \def\tempa{{\rm }}%
-    \def\tempb{#1}%
-    \edef\tempc{\tempa}%
-    \edef\tempd{\tempb}%
-    \ifx\tempc\tempd
+    \setbox\boxA = \hbox{#1}%
+    \ifdim\wd\boxA = 0pt
       \ %
     \else
       %
@@ -4008,9 +4326,9 @@ where each line of input produces a line of output.}
   \endgroup
 }
 
-% Like \dotfill except takes at least 1 em.
+% Like plain.tex's \dotfill, except uses up at least 1 em.
 \def\indexdotfill{\cleaders
-  \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
+  \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
 
 \def\primary #1{\line{#1\hfil}}
 
@@ -4120,6 +4438,34 @@ where each line of input produces a line of output.}
 %
 % All done with double columns.
 \def\enddoublecolumns{%
+  % The following penalty ensures that the page builder is exercised
+  % _before_ we change the output routine.  This is necessary in the
+  % following situation:
+  %
+  % The last section of the index consists only of a single entry.
+  % Before this section, \pagetotal is less than \pagegoal, so no
+  % break occurs before the last section starts.  However, the last
+  % section, consisting of \initial and the single \entry, does not
+  % fit on the page and has to be broken off.  Without the following
+  % penalty the page builder will not be exercised until \eject
+  % below, and by that time we'll already have changed the output
+  % routine to the \balancecolumns version, so the next-to-last
+  % double-column page will be processed with \balancecolumns, which
+  % is wrong:  The two columns will go to the main vertical list, with
+  % the broken-off section in the recent contributions.  As soon as
+  % the output routine finishes, TeX starts reconsidering the page
+  % break.  The two columns and the broken-off section both fit on the
+  % page, because the two columns now take up only half of the page
+  % goal.  When TeX sees \eject from below which follows the final
+  % section, it invokes the new output routine that we've set after
+  % \balancecolumns below; \onepageout will try to fit the two columns
+  % and the final section into the vbox of \pageheight (see
+  % \pagebody), causing an overfull box.
+  %
+  % Note that glue won't work here, because glue does not exercise the
+  % page builder, unlike penalties (see The TeXbook, pp. 280-281).
+  \penalty0
+  %
   \output = {%
     % Split the last of the double-column material.  Leave it on the
     % current page, no automatic page break.
@@ -4828,7 +5174,7 @@ where each line of input produces a line of output.}
 \def\readtocfile{%
   \setupdatafile
   \activecatcodes
-  \input \jobname.toc
+  \input \tocreadfilename
 }
 
 \newskip\contentsrightmargin \contentsrightmargin=1in
@@ -4859,11 +5205,16 @@ where each line of input produces a line of output.}
     \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
 }
 
+% redefined for the two-volume lispref.  We always output on
+% \jobname.toc even if this is redefined.
+% 
+\def\tocreadfilename{\jobname.toc}
 
 % Normal (long) toc.
+%
 \def\contents{%
   \startcontents{\putwordTOC}%
-    \openin 1 \jobname.toc
+    \openin 1 \tocreadfilename\space
     \ifeof 1 \else
       \readtocfile
     \fi
@@ -4901,7 +5252,7 @@ where each line of input produces a line of output.}
     \let\numsubsubsecentry = \numsecentry
     \let\appsubsubsecentry = \numsecentry
     \let\unnsubsubsecentry = \numsecentry
-    \openin 1 \jobname.toc
+    \openin 1 \tocreadfilename\space
     \ifeof 1 \else
       \readtocfile
     \fi
@@ -5045,7 +5396,7 @@ where each line of input produces a line of output.}
 {\tentt \global\dimen0 = 3em}% Width of the box.
 \dimen2 = .55pt % Thickness of rules
 % The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
+\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
 %
 \setbox\errorbox=\hbox to \dimen0{\hfil
    \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
@@ -5236,12 +5587,18 @@ where each line of input produces a line of output.}
 \let\SETdispenvsize\relax
 \def\setnormaldispenv{%
   \ifx\SETdispenvsize\smallword
+    % end paragraph for sake of leading, in case document has no blank
+    % line.  This is redundant with what happens in \aboveenvbreak, but
+    % we need to do it before changing the fonts, and it's inconvenient
+    % to change the fonts afterward.
+    \ifnum \lastpenalty=10000 \else \endgraf \fi
     \smallexamplefonts \rm
   \fi
 }
 \def\setsmalldispenv{%
   \ifx\SETdispenvsize\nosmallword
   \else
+    \ifnum \lastpenalty=10000 \else \endgraf \fi
     \smallexamplefonts \rm
   \fi
 }
@@ -5272,7 +5629,6 @@ where each line of input produces a line of output.}
   \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
   \gobble       % eat return
 }
-
 % @display/@smalldisplay: same as @lisp except keep current font.
 %
 \makedispenv {display}{%
@@ -5400,12 +5756,34 @@ where each line of input produces a line of output.}
 \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
 %
 \def\starttabbox{\setbox0=\hbox\bgroup}
+
+% Allow an option to not replace quotes with a regular directed right
+% quote/apostrophe (char 0x27), but instead use the undirected quote
+% from cmtt (char 0x0d).  The undirected quote is ugly, so don't make it
+% the default, but it works for pasting with more pdf viewers (at least
+% evince), the lilypond developers report.  xpdf does work with the
+% regular 0x27.  
+% 
+\def\codequoteright{%
+  \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
+    \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
+      '%
+    \else \char'15 \fi
+  \else \char'15 \fi
+}
 %
-%
-% Don't replace quotes with curly quotes. This makes cut & pasting
-% from a PDF file problematic.
+% and a similar option for the left quote char vs. a grave accent.
+% Modern fonts display ASCII 0x60 as a grave accent, so some people like
+% the code environments to do likewise.
 % 
-\def\singlequotechar{\char'15\relax}
+\def\codequoteleft{%
+  \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
+    \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
+      `%
+    \else \char'22 \fi
+  \else \char'22 \fi
+}
+%
 \begingroup
   \catcode`\^^I=\active
   \gdef\tabexpand{%
@@ -5419,11 +5797,15 @@ where each line of input produces a line of output.}
     }%
   }
   \catcode`\'=\active
-  \gdef\quoteexpand{%
-    \catcode`\'=\active
-    \def'{\singlequotechar}
-  }%
+  \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
+  %
+  \catcode`\`=\active
+  \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
+  %
+  \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
 \endgroup
+
+% start the verbatim environment.
 \def\setupverbatim{%
   \let\nonarrowing = t%
   \nonfillstart
@@ -5517,27 +5899,35 @@ where each line of input produces a line of output.}
   \endgroup
 }
 
+
 \message{defuns,}
 % @defun etc.
 
 \newskip\defbodyindent \defbodyindent=.4in
 \newskip\defargsindent \defargsindent=50pt
 \newskip\deflastargmargin \deflastargmargin=18pt
+\newcount\defunpenalty
 
 % Start the processing of @deffn:
 \def\startdefun{%
   \ifnum\lastpenalty<10000
     \medbreak
+    \defunpenalty=10003 % Will keep this @deffn together with the
+                        % following @def command, see below.
   \else
     % If there are two @def commands in a row, we'll have a \nobreak,
     % which is there to keep the function description together with its
     % header.  But if there's nothing but headers, we need to allow a
     % break somewhere.  Check specifically for penalty 10002, inserted
-    % by \defargscommonending, instead of 10000, since the sectioning
+    % by \printdefunline, instead of 10000, since the sectioning
     % commands also insert a nobreak penalty, and we don't want to allow
     % a break between a section heading and a defun.
-    % 
-    \ifnum\lastpenalty=10002 \penalty2000 \fi
+    %
+    % As a minor refinement, we avoid "club" headers by signalling
+    % with penalty of 10003 after the very first @deffn in the
+    % sequence (see above), and penalty of 10002 after any following
+    % @def command.
+    \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi
     %
     % Similarly, after a section heading, do not allow a break.
     % But do insert the glue.
@@ -5555,7 +5945,7 @@ where each line of input produces a line of output.}
   %
   % As above, allow line break if we have multiple x headers in a row.
   % It's not a great place, though.
-  \ifnum\lastpenalty=10002 \penalty3000 \fi
+  \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
   %
   % And now, it's time to reuse the body of the original defun:
   \expandafter\gobbledefun#1%
@@ -5573,7 +5963,7 @@ where each line of input produces a line of output.}
     \advance\rightskip by 0pt plus 1fil
     \endgraf
     \nobreak\vskip -\parskip
-    \penalty 10002  % signal to \startdefun and \dodefunx
+    \penalty\defunpenalty  % signal to \startdefun and \dodefunx
     % Some of the @defun-type tags do not enable magic parentheses,
     % rendering the following check redundant.  But we don't optimize.
     \checkparencounts
@@ -5942,6 +6332,10 @@ where each line of input produces a line of output.}
 % all characters are catcode 10, 11 or 12, except \ which is active
 % (as in normal texinfo). It is necessary to change the definition of \.
 
+% Non-ASCII encodings make 8-bit characters active, so un-activate
+% them to avoid their expansion.  Must do this non-globally, to
+% confine the change to the current group.
+
 % It's necessary to have hard CRs when the macro is executed. This is
 % done by  making ^^M (\endlinechar) catcode 12 when reading the macro
 % body, and then making it the \newlinechar in \scanmacro.
@@ -5956,6 +6350,7 @@ where each line of input produces a line of output.}
   \catcode`\_=\other
   \catcode`\|=\other
   \catcode`\~=\other
+  \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
 }
 
 \def\scanargctxt{%
@@ -6173,7 +6568,6 @@ where each line of input produces a line of output.}
 \message{cross references,}
 
 \newwrite\auxfile
-
 \newif\ifhavexrefs    % True if xref values are known.
 \newif\ifwarnedxrefs  % True if we warned once that they aren't known.
 
@@ -6240,7 +6634,7 @@ where each line of input produces a line of output.}
       \toks0 = \expandafter{\thissection}%
       \immediate \writexrdef{title}{\the\toks0 }%
       \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
-      \writexrdef{pg}{\folio}% will be written later, during \shipout
+      \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
     }%
   \fi
 }
@@ -6286,7 +6680,8 @@ where each line of input produces a line of output.}
   \ifpdf
     \leavevmode
     \getfilename{#4}%
-    {\turnoffactive
+    {\indexnofonts
+     \turnoffactive
      % See comments at \activebackslashdouble.
      {\activebackslashdouble \xdef\pdfxrefdest{#1}%
       \backslashparens\pdfxrefdest}%
@@ -6433,10 +6828,18 @@ where each line of input produces a line of output.}
 % collisions).  But if this is a float type, we have more work to do.
 %
 \def\xrdef#1#2{%
-  \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
+  {% The node name might contain 8-bit characters, which in our current
+   % implementation are changed to commands like @'e.  Don't let these
+   % mess up the control sequence name.
+    \indexnofonts
+    \turnoffactive
+    \xdef\safexrefname{#1}%
+  }%
+  %
+  \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref
   %
   % Was that xref control sequence that we just defined for a float?
-  \expandafter\iffloat\csname XR#1\endcsname
+  \expandafter\iffloat\csname XR\safexrefname\endcsname
     % it was a float, and we have the (safe) float type in \iffloattype.
     \expandafter\let\expandafter\floatlist
       \csname floatlist\iffloattype\endcsname
@@ -6451,7 +6854,8 @@ where each line of input produces a line of output.}
     %
     % Remember this xref in the control sequence \floatlistFLOATTYPE,
     % for later use in \listoffloats.
-    \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
+    \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0
+      {\safexrefname}}%
   \fi
 }
 
@@ -6555,6 +6959,7 @@ where each line of input produces a line of output.}
   \input\jobname.#1
 \endgroup}
 
+
 \message{insertions,}
 % including footnotes.
 
@@ -7029,39 +7434,861 @@ where each line of input produces a line of output.}
   \writeentry
 }}
 
+
 \message{localization,}
-% and i18n.
 
 % @documentlanguage is usually given very early, just after
 % @setfilename.  If done too late, it may not override everything
-% properly.  Single argument is the language abbreviation.
-% It would be nice if we could set up a hyphenation file here.
+% properly.  Single argument is the language (de) or locale (de_DE)
+% abbreviation.  It would be nice if we could set up a hyphenation file.
 %
-\parseargdef\documentlanguage{%
+{
+  \catcode`\_ = \active
+  \globaldefs=1
+\parseargdef\documentlanguage{\begingroup
+  \let_=\normalunderscore  % normal _ character for filenames
   \tex % read txi-??.tex file in plain TeX.
-    % Read the file if it exists.
+    % Read the file by the name they passed if it exists.
     \openin 1 txi-#1.tex
     \ifeof 1
-      \errhelp = \nolanghelp
-      \errmessage{Cannot read language file txi-#1.tex}%
+      \documentlanguagetrywithoutunderscore{#1_\finish}%
     \else
       \input txi-#1.tex
     \fi
     \closein 1
   \endgroup
+\endgroup}
 }
+%
+% If they passed de_DE, and txi-de_DE.tex doesn't exist,
+% try txi-de.tex.
+% 
+\def\documentlanguagetrywithoutunderscore#1_#2\finish{%
+  \openin 1 txi-#1.tex
+  \ifeof 1
+    \errhelp = \nolanghelp
+    \errmessage{Cannot read language file txi-#1.tex}%
+  \else
+    \input txi-#1.tex
+  \fi
+  \closein 1
+}
+%
 \newhelp\nolanghelp{The given language definition file cannot be found or
 is empty.  Maybe you need to install it?  In the current directory
 should work if nowhere else does.}
 
+% Set the catcode of characters 128 through 255 to the specified number.
+%
+\def\setnonasciicharscatcode#1{%
+   \count255=128
+   \loop\ifnum\count255<256
+      \global\catcode\count255=#1
+      \advance\count255 by 1
+   \repeat
+}
 
-% @documentencoding should change something in TeX eventually, most
-% likely, but for now just recognize it.
-\let\documentencoding = \comment
+\def\setnonasciicharscatcodenonglobal#1{%
+   \count255=128
+   \loop\ifnum\count255<256
+      \catcode\count255=#1
+      \advance\count255 by 1
+   \repeat
+}
 
+% @documentencoding sets the definition of non-ASCII characters
+% according to the specified encoding.
+%
+\parseargdef\documentencoding{%
+  % Encoding being declared for the document.
+  \def\declaredencoding{\csname #1.enc\endcsname}%
+  %
+  % Supported encodings: names converted to tokens in order to be able
+  % to compare them with \ifx.
+  \def\ascii{\csname US-ASCII.enc\endcsname}%
+  \def\latnine{\csname ISO-8859-15.enc\endcsname}%
+  \def\latone{\csname ISO-8859-1.enc\endcsname}%
+  \def\lattwo{\csname ISO-8859-2.enc\endcsname}%
+  \def\utfeight{\csname UTF-8.enc\endcsname}%
+  %
+  \ifx \declaredencoding \ascii
+     \asciichardefs
+  %
+  \else \ifx \declaredencoding \lattwo
+     \setnonasciicharscatcode\active
+     \lattwochardefs
+  %
+  \else \ifx \declaredencoding \latone 
+     \setnonasciicharscatcode\active
+     \latonechardefs
+  %
+  \else \ifx \declaredencoding \latnine
+     \setnonasciicharscatcode\active
+     \latninechardefs
+  %
+  \else \ifx \declaredencoding \utfeight
+     \setnonasciicharscatcode\active
+     \utfeightchardefs
+  %
+  \else 
+    \message{Unknown document encoding #1, ignoring.}%
+  %
+  \fi % utfeight
+  \fi % latnine
+  \fi % latone
+  \fi % lattwo
+  \fi % ascii
+}
+
+% A message to be logged when using a character that isn't available
+% the default font encoding (OT1).
+% 
+\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
+
+% Take account of \c (plain) vs. \, (Texinfo) difference.
+\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
+
+% First, make active non-ASCII characters in order for them to be
+% correctly categorized when TeX reads the replacement text of
+% macros containing the character definitions.
+\setnonasciicharscatcode\active
+%
+% Latin1 (ISO-8859-1) character definitions.
+\def\latonechardefs{%
+  \gdef^^a0{~} 
+  \gdef^^a1{\exclamdown}
+  \gdef^^a2{\missingcharmsg{CENT SIGN}} 
+  \gdef^^a3{{\pounds}}
+  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdef^^a5{\missingcharmsg{YEN SIGN}}
+  \gdef^^a6{\missingcharmsg{BROKEN BAR}} 
+  \gdef^^a7{\S}
+  \gdef^^a8{\"{}} 
+  \gdef^^a9{\copyright} 
+  \gdef^^aa{\ordf}
+  \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} 
+  \gdef^^ac{$\lnot$}
+  \gdef^^ad{\-} 
+  \gdef^^ae{\registeredsymbol} 
+  \gdef^^af{\={}}
+  %
+  \gdef^^b0{\textdegree}
+  \gdef^^b1{$\pm$}
+  \gdef^^b2{$^2$}
+  \gdef^^b3{$^3$}
+  \gdef^^b4{\'{}}
+  \gdef^^b5{$\mu$}
+  \gdef^^b6{\P}
+  %
+  \gdef^^b7{$^.$}
+  \gdef^^b8{\cedilla\ }
+  \gdef^^b9{$^1$}
+  \gdef^^ba{\ordm}
+  %
+  \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
+  \gdef^^bc{$1\over4$}
+  \gdef^^bd{$1\over2$}
+  \gdef^^be{$3\over4$}
+  \gdef^^bf{\questiondown}
+  %
+  \gdef^^c0{\`A}
+  \gdef^^c1{\'A}
+  \gdef^^c2{\^A}
+  \gdef^^c3{\~A}
+  \gdef^^c4{\"A}
+  \gdef^^c5{\ringaccent A} 
+  \gdef^^c6{\AE}
+  \gdef^^c7{\cedilla C}
+  \gdef^^c8{\`E}
+  \gdef^^c9{\'E}
+  \gdef^^ca{\^E}
+  \gdef^^cb{\"E}
+  \gdef^^cc{\`I}
+  \gdef^^cd{\'I}
+  \gdef^^ce{\^I}
+  \gdef^^cf{\"I}
+  %
+  \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}}
+  \gdef^^d1{\~N}
+  \gdef^^d2{\`O}
+  \gdef^^d3{\'O}
+  \gdef^^d4{\^O}
+  \gdef^^d5{\~O}
+  \gdef^^d6{\"O}
+  \gdef^^d7{$\times$}
+  \gdef^^d8{\O}
+  \gdef^^d9{\`U}
+  \gdef^^da{\'U}
+  \gdef^^db{\^U}
+  \gdef^^dc{\"U}
+  \gdef^^dd{\'Y}
+  \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}}
+  \gdef^^df{\ss}
+  %
+  \gdef^^e0{\`a}
+  \gdef^^e1{\'a}
+  \gdef^^e2{\^a}
+  \gdef^^e3{\~a}
+  \gdef^^e4{\"a}
+  \gdef^^e5{\ringaccent a}
+  \gdef^^e6{\ae}
+  \gdef^^e7{\cedilla c}
+  \gdef^^e8{\`e}
+  \gdef^^e9{\'e}
+  \gdef^^ea{\^e}
+  \gdef^^eb{\"e}
+  \gdef^^ec{\`{\dotless i}}
+  \gdef^^ed{\'{\dotless i}}
+  \gdef^^ee{\^{\dotless i}}
+  \gdef^^ef{\"{\dotless i}}
+  %
+  \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}}
+  \gdef^^f1{\~n}
+  \gdef^^f2{\`o}
+  \gdef^^f3{\'o}
+  \gdef^^f4{\^o}
+  \gdef^^f5{\~o}
+  \gdef^^f6{\"o}
+  \gdef^^f7{$\div$}
+  \gdef^^f8{\o}
+  \gdef^^f9{\`u}
+  \gdef^^fa{\'u}
+  \gdef^^fb{\^u}
+  \gdef^^fc{\"u}
+  \gdef^^fd{\'y}
+  \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}}
+  \gdef^^ff{\"y}
+}
+
+% Latin9 (ISO-8859-15) encoding character definitions.
+\def\latninechardefs{%
+  % Encoding is almost identical to Latin1.
+  \latonechardefs
+  %
+  \gdef^^a4{\euro}
+  \gdef^^a6{\v S}
+  \gdef^^a8{\v s}
+  \gdef^^b4{\v Z}
+  \gdef^^b8{\v z}
+  \gdef^^bc{\OE}
+  \gdef^^bd{\oe}
+  \gdef^^be{\"Y}
+}
+
+% Latin2 (ISO-8859-2) character definitions.
+\def\lattwochardefs{%
+  \gdef^^a0{~}
+  \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
+  \gdef^^a2{\u{}}
+  \gdef^^a3{\L}
+  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdef^^a5{\v L}
+  \gdef^^a6{\'S}
+  \gdef^^a7{\S}
+  \gdef^^a8{\"{}}
+  \gdef^^a9{\v S}
+  \gdef^^aa{\cedilla S}
+  \gdef^^ab{\v T}
+  \gdef^^ac{\'Z}
+  \gdef^^ad{\-}
+  \gdef^^ae{\v Z}
+  \gdef^^af{\dotaccent Z}
+  %
+  \gdef^^b0{\textdegree}
+  \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
+  \gdef^^b2{\missingcharmsg{OGONEK}}
+  \gdef^^b3{\l}
+  \gdef^^b4{\'{}}
+  \gdef^^b5{\v l}
+  \gdef^^b6{\'s}
+  \gdef^^b7{\v{}}
+  \gdef^^b8{\cedilla\ }
+  \gdef^^b9{\v s}
+  \gdef^^ba{\cedilla s}
+  \gdef^^bb{\v t}
+  \gdef^^bc{\'z}
+  \gdef^^bd{\H{}}
+  \gdef^^be{\v z}
+  \gdef^^bf{\dotaccent z}
+  %
+  \gdef^^c0{\'R}
+  \gdef^^c1{\'A}
+  \gdef^^c2{\^A}
+  \gdef^^c3{\u A}
+  \gdef^^c4{\"A}
+  \gdef^^c5{\'L}
+  \gdef^^c6{\'C}
+  \gdef^^c7{\cedilla C}
+  \gdef^^c8{\v C}
+  \gdef^^c9{\'E}
+  \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
+  \gdef^^cb{\"E}
+  \gdef^^cc{\v E}
+  \gdef^^cd{\'I}
+  \gdef^^ce{\^I}
+  \gdef^^cf{\v D}
+  %
+  \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}}
+  \gdef^^d1{\'N}
+  \gdef^^d2{\v N}
+  \gdef^^d3{\'O}
+  \gdef^^d4{\^O}
+  \gdef^^d5{\H O}
+  \gdef^^d6{\"O}
+  \gdef^^d7{$\times$}
+  \gdef^^d8{\v R}
+  \gdef^^d9{\ringaccent U} 
+  \gdef^^da{\'U}
+  \gdef^^db{\H U}
+  \gdef^^dc{\"U}
+  \gdef^^dd{\'Y}
+  \gdef^^de{\cedilla T}
+  \gdef^^df{\ss}
+  %
+  \gdef^^e0{\'r}
+  \gdef^^e1{\'a}
+  \gdef^^e2{\^a}
+  \gdef^^e3{\u a}
+  \gdef^^e4{\"a}
+  \gdef^^e5{\'l}
+  \gdef^^e6{\'c}
+  \gdef^^e7{\cedilla c}
+  \gdef^^e8{\v c}
+  \gdef^^e9{\'e}
+  \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
+  \gdef^^eb{\"e}
+  \gdef^^ec{\v e}
+  \gdef^^ed{\'\i}
+  \gdef^^ee{\^\i}
+  \gdef^^ef{\v d}
+  %
+  \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}}
+  \gdef^^f1{\'n}
+  \gdef^^f2{\v n}
+  \gdef^^f3{\'o}
+  \gdef^^f4{\^o}
+  \gdef^^f5{\H o}
+  \gdef^^f6{\"o}
+  \gdef^^f7{$\div$}
+  \gdef^^f8{\v r}
+  \gdef^^f9{\ringaccent u}
+  \gdef^^fa{\'u}
+  \gdef^^fb{\H u}
+  \gdef^^fc{\"u}
+  \gdef^^fd{\'y}
+  \gdef^^fe{\cedilla t}
+  \gdef^^ff{\dotaccent{}}
+}
+
+% UTF-8 character definitions.
+% 
+% This code to support UTF-8 is based on LaTeX's utf8.def, with some
+% changes for Texinfo conventions.  It is included here under the GPL by
+% permission from Frank Mittelbach and the LaTeX team.
+% 
+\newcount\countUTFx
+\newcount\countUTFy
+\newcount\countUTFz
 
-% Page size parameters.
+\gdef\UTFviiiTwoOctets#1#2{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\endcsname}
 %
+\gdef\UTFviiiThreeOctets#1#2#3{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
+%
+\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
+
+\gdef\UTFviiiDefined#1{%
+  \ifx #1\relax
+    \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
+  \else
+    \expandafter #1%
+  \fi
+}
+
+\begingroup
+  \catcode`\~13
+  \catcode`\"12
+
+  \def\UTFviiiLoop{%
+    \global\catcode\countUTFx\active
+    \uccode`\~\countUTFx
+    \uppercase\expandafter{\UTFviiiTmp}%
+    \advance\countUTFx by 1
+    \ifnum\countUTFx < \countUTFy
+      \expandafter\UTFviiiLoop
+    \fi}
+
+  \countUTFx = "C2
+  \countUTFy = "E0
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
+  \UTFviiiLoop
+
+  \countUTFx = "E0
+  \countUTFy = "F0
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
+  \UTFviiiLoop
+
+  \countUTFx = "F0
+  \countUTFy = "F4
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiFourOctets\string~}}
+  \UTFviiiLoop
+\endgroup
+
+\begingroup
+  \catcode`\"=12
+  \catcode`\<=12
+  \catcode`\.=12
+  \catcode`\,=12
+  \catcode`\;=12
+  \catcode`\!=12
+  \catcode`\~=13
+
+  \gdef\DeclareUnicodeCharacter#1#2{%
+    \countUTFz = "#1\relax
+    \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+    \begingroup
+      \parseXMLCharref
+      \def\UTFviiiTwoOctets##1##2{%
+        \csname u8:##1\string ##2\endcsname}%
+      \def\UTFviiiThreeOctets##1##2##3{%
+        \csname u8:##1\string ##2\string ##3\endcsname}%
+      \def\UTFviiiFourOctets##1##2##3##4{%
+        \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
+      \expandafter\expandafter\expandafter\expandafter
+       \expandafter\expandafter\expandafter
+       \gdef\UTFviiiTmp{#2}%
+    \endgroup}
+
+  \gdef\parseXMLCharref{%
+    \ifnum\countUTFz < "A0\relax
+      \errhelp = \EMsimple
+      \errmessage{Cannot define Unicode char value < 00A0}%
+    \else\ifnum\countUTFz < "800\relax
+      \parseUTFviiiA,%
+      \parseUTFviiiB C\UTFviiiTwoOctets.,%
+    \else\ifnum\countUTFz < "10000\relax
+      \parseUTFviiiA;%
+      \parseUTFviiiA,%
+      \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
+    \else
+      \parseUTFviiiA;%
+      \parseUTFviiiA,%
+      \parseUTFviiiA!%
+      \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
+    \fi\fi\fi
+  }
+
+  \gdef\parseUTFviiiA#1{%
+    \countUTFx = \countUTFz
+    \divide\countUTFz by 64
+    \countUTFy = \countUTFz
+    \multiply\countUTFz by 64
+    \advance\countUTFx by -\countUTFz
+    \advance\countUTFx by 128
+    \uccode `#1\countUTFx
+    \countUTFz = \countUTFy}
+
+  \gdef\parseUTFviiiB#1#2#3#4{%
+    \advance\countUTFz by "#10\relax
+    \uccode `#3\countUTFz
+    \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
+\endgroup
+
+\def\utfeightchardefs{%
+  \DeclareUnicodeCharacter{00A0}{\tie}
+  \DeclareUnicodeCharacter{00A1}{\exclamdown}
+  \DeclareUnicodeCharacter{00A3}{\pounds}
+  \DeclareUnicodeCharacter{00A8}{\"{ }}
+  \DeclareUnicodeCharacter{00A9}{\copyright}
+  \DeclareUnicodeCharacter{00AA}{\ordf}
+  \DeclareUnicodeCharacter{00AD}{\-}
+  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
+  \DeclareUnicodeCharacter{00AF}{\={ }}
+
+  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
+  \DeclareUnicodeCharacter{00B4}{\'{ }}
+  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
+  \DeclareUnicodeCharacter{00BA}{\ordm}
+  \DeclareUnicodeCharacter{00BF}{\questiondown}
+
+  \DeclareUnicodeCharacter{00C0}{\`A}
+  \DeclareUnicodeCharacter{00C1}{\'A}
+  \DeclareUnicodeCharacter{00C2}{\^A}
+  \DeclareUnicodeCharacter{00C3}{\~A}
+  \DeclareUnicodeCharacter{00C4}{\"A}
+  \DeclareUnicodeCharacter{00C5}{\AA}
+  \DeclareUnicodeCharacter{00C6}{\AE}
+  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
+  \DeclareUnicodeCharacter{00C8}{\`E}
+  \DeclareUnicodeCharacter{00C9}{\'E}
+  \DeclareUnicodeCharacter{00CA}{\^E}
+  \DeclareUnicodeCharacter{00CB}{\"E}
+  \DeclareUnicodeCharacter{00CC}{\`I}
+  \DeclareUnicodeCharacter{00CD}{\'I}
+  \DeclareUnicodeCharacter{00CE}{\^I}
+  \DeclareUnicodeCharacter{00CF}{\"I}
+
+  \DeclareUnicodeCharacter{00D1}{\~N}
+  \DeclareUnicodeCharacter{00D2}{\`O}
+  \DeclareUnicodeCharacter{00D3}{\'O}
+  \DeclareUnicodeCharacter{00D4}{\^O}
+  \DeclareUnicodeCharacter{00D5}{\~O}
+  \DeclareUnicodeCharacter{00D6}{\"O}
+  \DeclareUnicodeCharacter{00D8}{\O}
+  \DeclareUnicodeCharacter{00D9}{\`U}
+  \DeclareUnicodeCharacter{00DA}{\'U}
+  \DeclareUnicodeCharacter{00DB}{\^U}
+  \DeclareUnicodeCharacter{00DC}{\"U}
+  \DeclareUnicodeCharacter{00DD}{\'Y}
+  \DeclareUnicodeCharacter{00DF}{\ss}
+
+  \DeclareUnicodeCharacter{00E0}{\`a}
+  \DeclareUnicodeCharacter{00E1}{\'a}
+  \DeclareUnicodeCharacter{00E2}{\^a}
+  \DeclareUnicodeCharacter{00E3}{\~a}
+  \DeclareUnicodeCharacter{00E4}{\"a}
+  \DeclareUnicodeCharacter{00E5}{\aa}
+  \DeclareUnicodeCharacter{00E6}{\ae}
+  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
+  \DeclareUnicodeCharacter{00E8}{\`e}
+  \DeclareUnicodeCharacter{00E9}{\'e}
+  \DeclareUnicodeCharacter{00EA}{\^e}
+  \DeclareUnicodeCharacter{00EB}{\"e}
+  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
+  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
+  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
+  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
+
+  \DeclareUnicodeCharacter{00F1}{\~n}
+  \DeclareUnicodeCharacter{00F2}{\`o}
+  \DeclareUnicodeCharacter{00F3}{\'o}
+  \DeclareUnicodeCharacter{00F4}{\^o}
+  \DeclareUnicodeCharacter{00F5}{\~o}
+  \DeclareUnicodeCharacter{00F6}{\"o}
+  \DeclareUnicodeCharacter{00F8}{\o}
+  \DeclareUnicodeCharacter{00F9}{\`u}
+  \DeclareUnicodeCharacter{00FA}{\'u}
+  \DeclareUnicodeCharacter{00FB}{\^u}
+  \DeclareUnicodeCharacter{00FC}{\"u}
+  \DeclareUnicodeCharacter{00FD}{\'y}
+  \DeclareUnicodeCharacter{00FF}{\"y}
+
+  \DeclareUnicodeCharacter{0100}{\=A}
+  \DeclareUnicodeCharacter{0101}{\=a}
+  \DeclareUnicodeCharacter{0102}{\u{A}}
+  \DeclareUnicodeCharacter{0103}{\u{a}}
+  \DeclareUnicodeCharacter{0106}{\'C}
+  \DeclareUnicodeCharacter{0107}{\'c}
+  \DeclareUnicodeCharacter{0108}{\^C}
+  \DeclareUnicodeCharacter{0109}{\^c}
+  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
+  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
+  \DeclareUnicodeCharacter{010C}{\v{C}}
+  \DeclareUnicodeCharacter{010D}{\v{c}}
+  \DeclareUnicodeCharacter{010E}{\v{D}}
+
+  \DeclareUnicodeCharacter{0112}{\=E}
+  \DeclareUnicodeCharacter{0113}{\=e}
+  \DeclareUnicodeCharacter{0114}{\u{E}}
+  \DeclareUnicodeCharacter{0115}{\u{e}}
+  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
+  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
+  \DeclareUnicodeCharacter{011A}{\v{E}}
+  \DeclareUnicodeCharacter{011B}{\v{e}}
+  \DeclareUnicodeCharacter{011C}{\^G}
+  \DeclareUnicodeCharacter{011D}{\^g}
+  \DeclareUnicodeCharacter{011E}{\u{G}}
+  \DeclareUnicodeCharacter{011F}{\u{g}}
+
+  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
+  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
+  \DeclareUnicodeCharacter{0124}{\^H}
+  \DeclareUnicodeCharacter{0125}{\^h}
+  \DeclareUnicodeCharacter{0128}{\~I}
+  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
+  \DeclareUnicodeCharacter{012A}{\=I}
+  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
+  \DeclareUnicodeCharacter{012C}{\u{I}}
+  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
+
+  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
+  \DeclareUnicodeCharacter{0131}{\dotless{i}}
+  \DeclareUnicodeCharacter{0132}{IJ}
+  \DeclareUnicodeCharacter{0133}{ij}
+  \DeclareUnicodeCharacter{0134}{\^J}
+  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
+  \DeclareUnicodeCharacter{0139}{\'L}
+  \DeclareUnicodeCharacter{013A}{\'l}
+
+  \DeclareUnicodeCharacter{0141}{\L}
+  \DeclareUnicodeCharacter{0142}{\l}
+  \DeclareUnicodeCharacter{0143}{\'N}
+  \DeclareUnicodeCharacter{0144}{\'n}
+  \DeclareUnicodeCharacter{0147}{\v{N}}
+  \DeclareUnicodeCharacter{0148}{\v{n}}
+  \DeclareUnicodeCharacter{014C}{\=O}
+  \DeclareUnicodeCharacter{014D}{\=o}
+  \DeclareUnicodeCharacter{014E}{\u{O}}
+  \DeclareUnicodeCharacter{014F}{\u{o}}
+
+  \DeclareUnicodeCharacter{0150}{\H{O}}
+  \DeclareUnicodeCharacter{0151}{\H{o}}
+  \DeclareUnicodeCharacter{0152}{\OE}
+  \DeclareUnicodeCharacter{0153}{\oe}
+  \DeclareUnicodeCharacter{0154}{\'R}
+  \DeclareUnicodeCharacter{0155}{\'r}
+  \DeclareUnicodeCharacter{0158}{\v{R}}
+  \DeclareUnicodeCharacter{0159}{\v{r}}
+  \DeclareUnicodeCharacter{015A}{\'S}
+  \DeclareUnicodeCharacter{015B}{\'s}
+  \DeclareUnicodeCharacter{015C}{\^S}
+  \DeclareUnicodeCharacter{015D}{\^s}
+  \DeclareUnicodeCharacter{015E}{\cedilla{S}}
+  \DeclareUnicodeCharacter{015F}{\cedilla{s}}
+
+  \DeclareUnicodeCharacter{0160}{\v{S}}
+  \DeclareUnicodeCharacter{0161}{\v{s}}
+  \DeclareUnicodeCharacter{0162}{\cedilla{t}}
+  \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+  \DeclareUnicodeCharacter{0164}{\v{T}}
+
+  \DeclareUnicodeCharacter{0168}{\~U}
+  \DeclareUnicodeCharacter{0169}{\~u}
+  \DeclareUnicodeCharacter{016A}{\=U}
+  \DeclareUnicodeCharacter{016B}{\=u}
+  \DeclareUnicodeCharacter{016C}{\u{U}}
+  \DeclareUnicodeCharacter{016D}{\u{u}}
+  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
+  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
+
+  \DeclareUnicodeCharacter{0170}{\H{U}}
+  \DeclareUnicodeCharacter{0171}{\H{u}}
+  \DeclareUnicodeCharacter{0174}{\^W}
+  \DeclareUnicodeCharacter{0175}{\^w}
+  \DeclareUnicodeCharacter{0176}{\^Y}
+  \DeclareUnicodeCharacter{0177}{\^y}
+  \DeclareUnicodeCharacter{0178}{\"Y}
+  \DeclareUnicodeCharacter{0179}{\'Z}
+  \DeclareUnicodeCharacter{017A}{\'z}
+  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
+  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
+  \DeclareUnicodeCharacter{017D}{\v{Z}}
+  \DeclareUnicodeCharacter{017E}{\v{z}}
+
+  \DeclareUnicodeCharacter{01C4}{D\v{Z}}
+  \DeclareUnicodeCharacter{01C5}{D\v{z}}
+  \DeclareUnicodeCharacter{01C6}{d\v{z}}
+  \DeclareUnicodeCharacter{01C7}{LJ}
+  \DeclareUnicodeCharacter{01C8}{Lj}
+  \DeclareUnicodeCharacter{01C9}{lj}
+  \DeclareUnicodeCharacter{01CA}{NJ}
+  \DeclareUnicodeCharacter{01CB}{Nj}
+  \DeclareUnicodeCharacter{01CC}{nj}
+  \DeclareUnicodeCharacter{01CD}{\v{A}}
+  \DeclareUnicodeCharacter{01CE}{\v{a}}
+  \DeclareUnicodeCharacter{01CF}{\v{I}}
+
+  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
+  \DeclareUnicodeCharacter{01D1}{\v{O}}
+  \DeclareUnicodeCharacter{01D2}{\v{o}}
+  \DeclareUnicodeCharacter{01D3}{\v{U}}
+  \DeclareUnicodeCharacter{01D4}{\v{u}}
+
+  \DeclareUnicodeCharacter{01E2}{\={\AE}}
+  \DeclareUnicodeCharacter{01E3}{\={\ae}}
+  \DeclareUnicodeCharacter{01E6}{\v{G}}
+  \DeclareUnicodeCharacter{01E7}{\v{g}}
+  \DeclareUnicodeCharacter{01E8}{\v{K}}
+  \DeclareUnicodeCharacter{01E9}{\v{k}}
+
+  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
+  \DeclareUnicodeCharacter{01F1}{DZ}
+  \DeclareUnicodeCharacter{01F2}{Dz}
+  \DeclareUnicodeCharacter{01F3}{dz}
+  \DeclareUnicodeCharacter{01F4}{\'G}
+  \DeclareUnicodeCharacter{01F5}{\'g}
+  \DeclareUnicodeCharacter{01F8}{\`N}
+  \DeclareUnicodeCharacter{01F9}{\`n}
+  \DeclareUnicodeCharacter{01FC}{\'{\AE}}
+  \DeclareUnicodeCharacter{01FD}{\'{\ae}}
+  \DeclareUnicodeCharacter{01FE}{\'{\O}}
+  \DeclareUnicodeCharacter{01FF}{\'{\o}}
+
+  \DeclareUnicodeCharacter{021E}{\v{H}}
+  \DeclareUnicodeCharacter{021F}{\v{h}}
+
+  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
+  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
+  \DeclareUnicodeCharacter{0228}{\cedilla{E}}
+  \DeclareUnicodeCharacter{0229}{\cedilla{e}}
+  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
+  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
+
+  \DeclareUnicodeCharacter{0232}{\=Y}
+  \DeclareUnicodeCharacter{0233}{\=y}
+  \DeclareUnicodeCharacter{0237}{\dotless{j}}
+
+  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
+  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
+  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
+  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
+  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
+  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
+  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
+  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
+  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
+  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
+  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
+  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
+
+  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
+  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
+
+  \DeclareUnicodeCharacter{1E20}{\=G}
+  \DeclareUnicodeCharacter{1E21}{\=g}
+  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
+  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
+  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
+  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
+  \DeclareUnicodeCharacter{1E26}{\"H}
+  \DeclareUnicodeCharacter{1E27}{\"h}
+
+  \DeclareUnicodeCharacter{1E30}{\'K}
+  \DeclareUnicodeCharacter{1E31}{\'k}
+  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
+  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
+  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
+  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
+  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
+  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
+  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
+  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
+  \DeclareUnicodeCharacter{1E3E}{\'M}
+  \DeclareUnicodeCharacter{1E3F}{\'m}
+
+  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
+  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
+  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
+  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
+  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
+  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
+  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
+  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
+  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
+  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
+
+  \DeclareUnicodeCharacter{1E54}{\'P}
+  \DeclareUnicodeCharacter{1E55}{\'p}
+  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
+  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
+  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
+  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
+  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
+  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
+  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
+  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
+
+  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
+  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
+  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
+  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
+  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
+  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
+  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
+  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
+  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
+  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
+
+  \DeclareUnicodeCharacter{1E7C}{\~V}
+  \DeclareUnicodeCharacter{1E7D}{\~v}
+  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
+  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
+
+  \DeclareUnicodeCharacter{1E80}{\`W}
+  \DeclareUnicodeCharacter{1E81}{\`w}
+  \DeclareUnicodeCharacter{1E82}{\'W}
+  \DeclareUnicodeCharacter{1E83}{\'w}
+  \DeclareUnicodeCharacter{1E84}{\"W}
+  \DeclareUnicodeCharacter{1E85}{\"w}
+  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
+  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
+  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
+  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
+  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
+  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
+  \DeclareUnicodeCharacter{1E8C}{\"X}
+  \DeclareUnicodeCharacter{1E8D}{\"x}
+  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
+  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
+
+  \DeclareUnicodeCharacter{1E90}{\^Z}
+  \DeclareUnicodeCharacter{1E91}{\^z}
+  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
+  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
+  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
+  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
+  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
+  \DeclareUnicodeCharacter{1E97}{\"t}
+  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
+  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
+
+  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
+  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
+
+  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
+  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
+  \DeclareUnicodeCharacter{1EBC}{\~E}
+  \DeclareUnicodeCharacter{1EBD}{\~e}
+
+  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
+  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
+  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
+  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
+
+  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
+  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
+
+  \DeclareUnicodeCharacter{1EF2}{\`Y}
+  \DeclareUnicodeCharacter{1EF3}{\`y}
+  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
+
+  \DeclareUnicodeCharacter{1EF8}{\~Y}
+  \DeclareUnicodeCharacter{1EF9}{\~y}
+
+  \DeclareUnicodeCharacter{2013}{--}
+  \DeclareUnicodeCharacter{2014}{---}
+  \DeclareUnicodeCharacter{2022}{\bullet}
+  \DeclareUnicodeCharacter{2026}{\dots}
+  \DeclareUnicodeCharacter{20AC}{\euro}
+
+  \DeclareUnicodeCharacter{2192}{\expansion}
+  \DeclareUnicodeCharacter{21D2}{\result}
+
+  \DeclareUnicodeCharacter{2212}{\minus}
+  \DeclareUnicodeCharacter{2217}{\point}
+  \DeclareUnicodeCharacter{2261}{\equiv}
+}% end of \utfeightchardefs
+
+
+% US-ASCII character definitions.
+\def\asciichardefs{% nothing need be done
+   \relax
+}
+
+% Make non-ASCII characters printable again for compatibility with
+% existing Texinfo documents that may use them, even without declaring a
+% document encoding.
+%
+\setnonasciicharscatcode \other
+
+
+\message{formatting,}
+
 \newdimen\defaultparindent \defaultparindent = 15pt
 
 \chapheadingskip = 15pt plus 4pt minus 2pt
@@ -7121,6 +8348,10 @@ should work if nowhere else does.}
   \ifpdf
     \pdfpageheight #7\relax
     \pdfpagewidth #8\relax
+    % if we don't reset these, they will remain at "1 true in" of
+    % whatever layout pdftex was dumped with.
+    \pdfhorigin = 1 true in
+    \pdfvorigin = 1 true in
   \fi
   %
   \setleading{\textleading}
@@ -7147,7 +8378,7 @@ should work if nowhere else does.}
   \textleading = 12pt
   %
   \internalpagesizes{7.5in}{5in}%
-                    {\voffset}{.25in}%
+                    {-.2in}{0in}%
                     {\bindingoffset}{16pt}%
                     {9.25in}{7in}%
   %