From: Joe Neeman Date: Wed, 4 Jul 2007 09:32:22 +0000 (+1000) Subject: Merge branch 'master' into jneeman X-Git-Tag: release/2.11.28-1~21^2~15 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=b80683cc94b0c22bbe3fccb94a9b2e23787fd10b;hp=8efa15a11e4fd490ab796e91f8685198cdabaf08;p=lilypond.git Merge branch 'master' into jneeman --- diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 84466887e0..a2b1730e02 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -30,6 +30,9 @@ txt-to-html: po-update: make -C po po-update +all-translations-update: po-update + $(foreach lang, $(LANGS), make ISOLANG=$(lang) skeleton-update snippet-update &&) true + ifneq ($(ISOLANG),) new-lang: @if (( $$(file -b $(ISOLANG)) == directory )) 2>/dev/null; \ @@ -52,4 +55,7 @@ check-translation: skeleton-update: $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -l $(ISOLANG) --skeleton ../user/lilypond.tely $(PYTHON) $(buildscript-dir)/texi-skeleton-update.py $(ISOLANG)/user $(outdir) + +snippet-update: + $(PYTHON) $(buildscript-dir)/update-snippets.py user $(ISOLANG)/user '*.itely' endif diff --git a/Documentation/TRANSLATION b/Documentation/TRANSLATION index a34cd4b0ec..54da776699 100644 --- a/Documentation/TRANSLATION +++ b/Documentation/TRANSLATION @@ -5,7 +5,7 @@ SOURCES The sources live in a GIT repository. Git 1.4.4.1 or newer is required, and Git 1.5.x is highly recommended. To get a fresh version -run +of LilyPond sources run mkdir lily ; cd lily git init-db @@ -29,6 +29,16 @@ Working on LilyPond documentation translations requires: * gettext +WHICH DOCUMENTATION CAN BE TRANSLATED + +The makfiles and scripts infrastructure currently supports translation +of the following documentation: + + * documentation index (HTML) + * user manual -- Texinfo source, PDF and HTML output; Info output +might be added if there is enough demand for it. + + STARTING A TRANSLATION IN A NEW LANGUAGE At top of the source directory, do @@ -56,6 +66,7 @@ buildscripts/langdefs.py. See next section about what files to translate and the following detailed instructions after the next section. + FILES TO BE TRANSLATED All the following files are in Documentation/ @@ -170,6 +181,8 @@ translated directly in the Texinfo source As a notable exception, the second argument 'Bar baz' of @ref{Foo,'Bar baz',,info-file} should be translated. +@uref's names are to be translated. + In any section which looks like @menu @@ -181,13 +194,27 @@ In any section which looks like the node names (nodeN) are NOT to be translated, whereas extra title information (thingN) is. - Every node name or section title must from now on be translated separately in a .po file (just as well as LilyPond output messages). This .po file should be in Documentation/po. -Make sure to keep *verbatim* copies of music snippets (in @lilypond blocs). -@example blocs do not have to be verbatim copies, e.g. variable names, + +Please keep verbatim copies of music snippets (in @lilypond blocs). +However, some music snippets containing text that shows in the +rendered music, and sometimes translating this text really helps the +user to understand the documentation; in this case, and only in this +case, you may as an exception translate text in the music snippet, and +then you must add a line immediately before the @lilypond block, +beginning with + +@c KEEP LY + +Otherwise the music snippet would be reset to the same contents as the +English version at next 'make snippet-update' run (see UPDATING A +TRANSLATION below). + + +@example blocs need not be verbatim copies, e.g. variable names, file names and comments should be translated. Index entries (@cindex and so on) should be translated. @@ -213,9 +240,9 @@ replace 'make' with 'make -C Documentation') and run make ISOLANG= check-translation This presents a diff of the original files since the most recent -revision of the translation. To check a single page, run +revision of the translation. To check a single file, run - buildscripts/check-translation.py Documentation/user//foo/bar.itely + python buildscripts/check_translation.py Documentation//user/foo.itely @@ -223,7 +250,7 @@ UPDATE A TRANSLATION Texinfo skeleton files, i.e. .itely files not yet translated, containing only the Texinfo structure can be updated automatically: -whenever 'make check-translation' shows that such files shouldbe +whenever 'make check-translation' shows that such files should be updated, run from Documentation make ISOLANG= skeleton-update @@ -233,6 +260,24 @@ Documentation or Documentation/po) make po-update +Updating music snippets can quickly become cumbersome, as most +snippets should be identical in all languages. Fortunately, there is +a script than can do this odd job for you (run from Documentation): + + make ISOLANG= snippet-update + +This script overwrites music snippets in /user/every.itely +with music snippets from user/every.itely. It ignores skeleton files, +and keeps intact music snippets preceded with a line starting with '@c +KEEP LY'; it reports an error for each .itely that has not the same +music snippet count in both languages. + +Finally, a command runs the three update processes above for all +enabled languages (from Documentation): + + make all-translations-update + +This command is mainly intended to be used by the Translation meister. TECHNICAL BACKGROUND @@ -240,12 +285,18 @@ TECHNICAL BACKGROUND A number of Python scripts handle a part of the documentation translation process: -langdefs.py -- language definitions -check_translation.py -- show diff to update a translation -texi-langutils.py -- quickly and dirtily parse Texinfo files to +* langdefs.py -- language definitions +* check_translation.py -- show diff to update a translation +* texi-langutils.py -- quickly and dirtily parse Texinfo files to make message catalogs and Texinfo skeleton files -texi-skeleton-update.py -- update Texinfo skeleton files -html-gettext.py -- translate node names, section titles and cross +* texi-skeleton-update.py -- update Texinfo skeleton files +* html-gettext.py -- translate node names, section titles and cross references in HTML files generated by makeinfo -add_html_footer.py (module called by www_post.py) -- add footer and +* add_html_footer.py (module called by www_post.py) -- add footer and tweak links in HTML pages +* texi-gettext.py -- gettext node names, section titles and references +before calling texi2pdf +* mass-link.py -- link or symlink files between English documentation +and documentation in other languages +* update-snippets.py -- synchronize ly snippets with those from +English docs diff --git a/Documentation/de/index.html.in b/Documentation/de/index.html.in index 72e2cf5267..12e9f77546 100644 --- a/Documentation/de/index.html.in +++ b/Documentation/de/index.html.in @@ -73,7 +73,7 @@
  • Benutzerhandbuch (auch auf einer großen Seite, ca. 4 Mb, oder -als PDF) +als PDF)
    (Alles über LilyPond) diff --git a/Documentation/de/user/advanced-notation.itely b/Documentation/de/user/advanced-notation.itely index 62ade263b7..79d2b615fd 100644 --- a/Documentation/de/user/advanced-notation.itely +++ b/Documentation/de/user/advanced-notation.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/basic-notation.itely b/Documentation/de/user/basic-notation.itely index 46cfeb7e8f..8dc746f5c6 100644 --- a/Documentation/de/user/basic-notation.itely +++ b/Documentation/de/user/basic-notation.itely @@ -1990,7 +1990,7 @@ die @internalsref{systemStartDelimiter}-Eigenschaft bestimmt. Anfangsklammern können tief einander verschachtelt werden. @lilypond[quote,ragged-right,verbatim] -\new StaffGroup +\new StaffGroup \relative << \set StaffGroup.systemStartDelimiterHierarchy = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d) @@ -3531,9 +3531,8 @@ c4 c4 Programmreferenz: @internalsref{VoltaBracket}, @internalsref{RepeatedMusic}, -@internalsref{VoltaRepeatedMusic}, -@internalsref{UnfoldedRepeatedMusic} und -@internalsref{FoldedRepeatedMusic}. +@internalsref{VoltaRepeatedMusic} und +@internalsref{UnfoldedRepeatedMusic}. @node Tremolo repeats diff --git a/Documentation/de/user/changing-defaults.itely b/Documentation/de/user/changing-defaults.itely index e3d6cf7654..11b29f1275 100644 --- a/Documentation/de/user/changing-defaults.itely +++ b/Documentation/de/user/changing-defaults.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/converters.itely b/Documentation/de/user/converters.itely index fadf31af0f..d97c846b51 100644 --- a/Documentation/de/user/converters.itely +++ b/Documentation/de/user/converters.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/instrument-notation.itely b/Documentation/de/user/instrument-notation.itely index 6e05a22d63..4a467995d8 100644 --- a/Documentation/de/user/instrument-notation.itely +++ b/Documentation/de/user/instrument-notation.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/introduction.itely b/Documentation/de/user/introduction.itely index 2166ddd2cf..be65ef5ffc 100644 --- a/Documentation/de/user/introduction.itely +++ b/Documentation/de/user/introduction.itely @@ -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 diff --git a/Documentation/de/user/lilypond-book.itely b/Documentation/de/user/lilypond-book.itely index d72b2b62ac..7d76a01d43 100644 --- a/Documentation/de/user/lilypond-book.itely +++ b/Documentation/de/user/lilypond-book.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/lilypond.tely b/Documentation/de/user/lilypond.tely index 9f18b005ff..27ebf9a6bb 100644 --- a/Documentation/de/user/lilypond.tely +++ b/Documentation/de/user/lilypond.tely @@ -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. @@ -55,9 +61,12 @@ Distributions will want to install lilypond.info in postinstall, doing: @ifhtml Dieses Dokument ist auch als -@uref{source/Documentation/user/lilypond.pdf,PDF} verfügbar. +@uref{source/Documentation/user/lilypond.de.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 @@ -81,6 +87,14 @@ Dieses Dokument ist auch als Copyright @copyright{} 1999--2007 bei den Autoren +@emph{The translation of the following copyright notice is provided +for courtesy to non-English speakers, but only the notice in English +legally counts.} + +@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung +für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber +nur die englische Version gültig.} + @quotation Es ist erlaubt, dieses Dokument unter den Bedingungen der GNU Free Documentation Lizenz (Version 1.1 oder @@ -90,6 +104,15 @@ zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU Free Documentation License'' angefügt. @end quotation +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 +or any later version published by the Free Software Foundation; +with no Invariant Sections. +A copy of the license is included in the section entitled ``GNU +Free Documentation License''. +@end quotation + @vskip 20pt @lilypond[ragged-right] diff --git a/Documentation/de/user/literature.itely b/Documentation/de/user/literature.itely index 00e6ab75d6..166f46002a 100644 --- a/Documentation/de/user/literature.itely +++ b/Documentation/de/user/literature.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/macros.itexi b/Documentation/de/user/macros.itexi index 6aa222e313..bf7aa7ac00 100644 --- a/Documentation/de/user/macros.itexi +++ b/Documentation/de/user/macros.itexi @@ -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 diff --git a/Documentation/de/user/non-music.itely b/Documentation/de/user/non-music.itely index b91f801f71..512786bc4e 100644 --- a/Documentation/de/user/non-music.itely +++ b/Documentation/de/user/non-music.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the @@ -78,6 +78,7 @@ UNTRANSLATED NODE: IGNORE ME @menu * Creating titles:: * Custom titles:: +* Reference to page numbers:: * Table of contents:: @end menu @node Creating titles @@ -90,6 +91,11 @@ UNTRANSLATED NODE: IGNORE ME UNTRANSLATED NODE: IGNORE ME +@node Reference to page numbers +@subsection Reference to page numbers + +UNTRANSLATED NODE: IGNORE ME + @node Table of contents @subsection Table of contents diff --git a/Documentation/de/user/notation-appendices.itely b/Documentation/de/user/notation-appendices.itely index 9a0f9c4093..5cd75ae3e6 100644 --- a/Documentation/de/user/notation-appendices.itely +++ b/Documentation/de/user/notation-appendices.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/programming-interface.itely b/Documentation/de/user/programming-interface.itely index 06be6e0abc..37c878434b 100644 --- a/Documentation/de/user/programming-interface.itely +++ b/Documentation/de/user/programming-interface.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/running.itely b/Documentation/de/user/running.itely index 49a6b7a2ea..59f3f1a548 100644 --- a/Documentation/de/user/running.itely +++ b/Documentation/de/user/running.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/scheme-tutorial.itely b/Documentation/de/user/scheme-tutorial.itely index 9cd9fefe8e..a34cd46cef 100644 --- a/Documentation/de/user/scheme-tutorial.itely +++ b/Documentation/de/user/scheme-tutorial.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/spacing.itely b/Documentation/de/user/spacing.itely index 125eb90592..714804edad 100644 --- a/Documentation/de/user/spacing.itely +++ b/Documentation/de/user/spacing.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/de/user/templates.itely b/Documentation/de/user/templates.itely index b0ff9516e2..83c09724ae 100644 --- a/Documentation/de/user/templates.itely +++ b/Documentation/de/user/templates.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c946d2870fa81d9f07f763762d512501273d65a6 + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/index.html.in b/Documentation/es/index.html.in index 7821d3eee4..f42dffde4f 100644 --- a/Documentation/es/index.html.in +++ b/Documentation/es/index.html.in @@ -73,7 +73,7 @@
  • Manual del usuario [parcialmente traducido]
    (en una sola página [en inglés] ~ 4 Mb,
    -y en PDF [en inglés]) +y en PDF)
    (todo sobre LilyPond) diff --git a/Documentation/es/user/advanced-notation.itely b/Documentation/es/user/advanced-notation.itely index ae79928a67..9c0c603e18 100644 --- a/Documentation/es/user/advanced-notation.itely +++ b/Documentation/es/user/advanced-notation.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/basic-notation.itely b/Documentation/es/user/basic-notation.itely index 7261394d36..301a3f0d63 100644 --- a/Documentation/es/user/basic-notation.itely +++ b/Documentation/es/user/basic-notation.itely @@ -3355,9 +3355,8 @@ c4 c4 Referencia del programa: @internalsref{VoltaBracket}, @internalsref{RepeatedMusic}, -@internalsref{VoltaRepeatedMusic}, -@internalsref{UnfoldedRepeatedMusic} y -@internalsref{FoldedRepeatedMusic}. +@internalsref{VoltaRepeatedMusic} y +@internalsref{UnfoldedRepeatedMusic}. @node Tremolo repeats diff --git a/Documentation/es/user/changing-defaults.itely b/Documentation/es/user/changing-defaults.itely index 43f4fe1e8a..fc99a9c08a 100644 --- a/Documentation/es/user/changing-defaults.itely +++ b/Documentation/es/user/changing-defaults.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/cheatsheet.itely b/Documentation/es/user/cheatsheet.itely index e4704a195b..bd4d973672 100644 --- a/Documentation/es/user/cheatsheet.itely +++ b/Documentation/es/user/cheatsheet.itely @@ -155,8 +155,14 @@ a8-[ b-] @tab más pentagramas @tab @lilypond[fragment] -<< \new Staff { c'1 } - \new Staff { c'1 } >> +<< \new Staff { + \set Staff.implicitTimeSignatureVisibility = #all-invisible + c'1 + } + \new Staff { + \set Staff.implicitTimeSignatureVisibility = #all-invisible + c'1 + } >> @end lilypond @@ -174,7 +180,7 @@ c-> c-. @tab @lilypond[fragment,relative=2] \set Staff.implicitTimeSignatureVisibility = #all-invisible -c\mf c\sfz +c2\mf c\sfz @end lilypond @@ -203,6 +209,7 @@ a\> a a\! @tab acorde @tab @lilypond[fragment,relative=2] +\set Staff.implicitTimeSignatureVisibility = #all-invisible @end lilypond @@ -220,6 +227,7 @@ f8 c2 d e @tab tresillos @tab @lilypond[relative=1,fragment] +\set Staff.implicitTimeSignatureVisibility = #all-invisible \times 2/3 { f8 g a } @end lilypond @@ -228,6 +236,7 @@ f8 c2 d e @tab mordentes @tab @lilypond[relative=2,fragment] +\set Staff.implicitTimeSignatureVisibility = #all-invisible \context Voice { \grace b16 c4 } @end lilypond @@ -248,6 +257,7 @@ twinkle @tab separador de sílabas @tab @lilypond[fragment,relative=2] +\set Staff.implicitTimeSignatureVisibility = #all-invisible << { g'1 g } \new Lyrics \lyricsto "" { twin -- kle } @@ -258,6 +268,7 @@ twinkle @tab acordes @tab @lilypond[fragment,relative=2] +\set Staff.implicitTimeSignatureVisibility = #all-invisible \chordmode { c:dim f:maj7 } @end lilypond @@ -272,6 +283,7 @@ twinkle @tab polifonía @tab @lilypond[fragment,relative=2] +\set Staff.implicitTimeSignatureVisibility = #all-invisible \context Staff <<{e f} \\ {c d}>> @end lilypond diff --git a/Documentation/es/user/converters.itely b/Documentation/es/user/converters.itely index 210f7ad478..0629e9291b 100644 --- a/Documentation/es/user/converters.itely +++ b/Documentation/es/user/converters.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/instrument-notation.itely b/Documentation/es/user/instrument-notation.itely index 000b3670ae..3664cf2d36 100644 --- a/Documentation/es/user/instrument-notation.itely +++ b/Documentation/es/user/instrument-notation.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/lilypond-book.itely b/Documentation/es/user/lilypond-book.itely index 53775bf4cc..3801b346e5 100644 --- a/Documentation/es/user/lilypond-book.itely +++ b/Documentation/es/user/lilypond-book.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/lilypond.tely b/Documentation/es/user/lilypond.tely index ebce43de89..b13a611fb5 100644 --- a/Documentation/es/user/lilypond.tely +++ b/Documentation/es/user/lilypond.tely @@ -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. @@ -56,9 +62,11 @@ Distributions will want to install lilypond.info in postinstall, doing: @ifhtml Este documento también está disponible como -@uref{source/Documentation/user/lilypond.pdf,PDF}. +@uref{source/Documentation/user/lilypond.es.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 @@ -81,6 +86,14 @@ Este documento también está disponible como Copyright @copyright{} 1999--2007 por los autores +@emph{The translation of the following copyright notice is provided +for courtesy to non-English speakers, but only the notice in English +legally counts.} + +@emph{La traducción de la siguiente nota de copyright se ofrece como +cortesía para las personas de habla no inglesa, pero únicamente la +nota en inglés tiene validez legal.} + @quotation Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, versión 1.1 @@ -90,6 +103,15 @@ Se incluye una copia de esta licencia dentro de la sección titulada ``Licencia de Documentación Libre de GNU''. @end quotation +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 +or any later version published by the Free Software Foundation; +with no Invariant Sections. +A copy of the license is included in the section entitled ``GNU +Free Documentation License''. +@end quotation + @vskip 20pt @lilypond[ragged-right] diff --git a/Documentation/es/user/literature.itely b/Documentation/es/user/literature.itely index ca05e82cf0..4fe257433a 100644 --- a/Documentation/es/user/literature.itely +++ b/Documentation/es/user/literature.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/non-music.itely b/Documentation/es/user/non-music.itely index 44c1fe627e..64e30e20a1 100644 --- a/Documentation/es/user/non-music.itely +++ b/Documentation/es/user/non-music.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the @@ -78,6 +78,7 @@ UNTRANSLATED NODE: IGNORE ME @menu * Creating titles:: * Custom titles:: +* Reference to page numbers:: * Table of contents:: @end menu @node Creating titles @@ -90,6 +91,11 @@ UNTRANSLATED NODE: IGNORE ME UNTRANSLATED NODE: IGNORE ME +@node Reference to page numbers +@subsection Reference to page numbers + +UNTRANSLATED NODE: IGNORE ME + @node Table of contents @subsection Table of contents diff --git a/Documentation/es/user/notation-appendices.itely b/Documentation/es/user/notation-appendices.itely index 1d9c20fb21..108d3492fe 100644 --- a/Documentation/es/user/notation-appendices.itely +++ b/Documentation/es/user/notation-appendices.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/programming-interface.itely b/Documentation/es/user/programming-interface.itely index b1ba88a65b..821355af2a 100644 --- a/Documentation/es/user/programming-interface.itely +++ b/Documentation/es/user/programming-interface.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/running.itely b/Documentation/es/user/running.itely index 7746a346e4..cd8b12bf6d 100644 --- a/Documentation/es/user/running.itely +++ b/Documentation/es/user/running.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/scheme-tutorial.itely b/Documentation/es/user/scheme-tutorial.itely index 03c02daa17..84ff8683d0 100644 --- a/Documentation/es/user/scheme-tutorial.itely +++ b/Documentation/es/user/scheme-tutorial.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/spacing.itely b/Documentation/es/user/spacing.itely index bd0d32ba2c..078df77e81 100644 --- a/Documentation/es/user/spacing.itely +++ b/Documentation/es/user/spacing.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/es/user/templates.itely b/Documentation/es/user/templates.itely index 88e70044c0..ae75c6a5d9 100644 --- a/Documentation/es/user/templates.itely +++ b/Documentation/es/user/templates.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: c9b08ba86f4c59228b92e2357b2a0bc1c62c29dc + Translation of GIT committish: 9634340429eb0518432b152fe4aaf7471b67b013 When revising a translation, copy the HEAD committish of the diff --git a/Documentation/fr/index.html.in b/Documentation/fr/index.html.in index 6c29d0dbaa..795a15ec81 100644 --- a/Documentation/fr/index.html.in +++ b/Documentation/fr/index.html.in @@ -1,6 +1,6 @@ ' footer_tag = '' @@ -83,6 +83,23 @@ def build_pages_dict (filelist): else: pages_dict[g[0]].append (e) +def source_links_replace (m, source_val): + return 'href="' + os.path.join (source_val, m.group (1)) + '"' + +splitted_docs_re = re.compile ('Documentation/user/out-www/(lilypond|music-glossary)/') + +# On systems without symlinks (e.g. Windows), docs are not very usable +# Get rid of symlinks references here +# Get rid of symlinks in GNUmakefile.in (local-WWW-post) +def replace_symlinks_urls (s, prefix): + if splitted_docs_re.match (prefix): + s = re.sub ('(href|src)="(lily-.*?|.*?-flat-.*?)"', '\\1="../\\2"', s) + source_path = os.path.join (os.path.dirname (prefix), 'source') + if not os.path.islink (source_path): + return s + source_val = os.readlink (source_path) + return re.sub ('href="source/(.*?)"', lambda m: source_links_replace (m, source_val), s) + def add_header (s): """Add header ( and doctype)""" if re.search (header_tag, s) == None: @@ -102,10 +119,6 @@ def add_header (s): s = doctype + s return s -def info_external_ref_remove (s): - """Remove info's annoying's indication of referencing external document""" - return re.sub (' \((lilypond|lilypond-internals|music-glossary)\)', '', s) - def add_title (s): # urg # maybe find first node? @@ -149,7 +162,7 @@ def find_translations (prefix, lang_ext): if lang_ext != e: if e in pages_dict[prefix]: available.append (l) - elif lang_ext == '' and l.enabled and not prefix in non_copied_pages: + elif lang_ext == '' and l.enabled and reduce (lambda x, y: x and y, [not prefix.startswith (s) for s in non_copied_pages]): # English version of missing translated pages will be written missing.append (e) return available, missing @@ -247,9 +260,9 @@ def add_html_footer (translation, in_f.close() s = re.sub ('%', '%%', s) + if target == 'offline': + s = replace_symlinks_urls (s, prefix) s = add_header (s) - # seems to be no more needed - # s = info_external_ref_remove (s) ### add footer if re.search (footer_tag, s) == None: @@ -259,11 +272,6 @@ def add_html_footer (translation, page_flavors = process_links (s, prefix, lang_ext, file_name, missing, target) # Add menu after stripping: must not have autoselection for language menu. page_flavors = add_menu (page_flavors, prefix, available, target, translation) - # urg, this stuff is outdated and seems useless, let's disable it - #else: - # for e in [l.webext for l in langdefs.LANGUAGES]: - # if not e in pages_dict[prefix]: - # page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = s subst = dict ([i for i in globals().items() if type (i[1]) is str]) subst.update (dict ([i for i in locals().items() if type (i[1]) is str])) for k in page_flavors.keys(): @@ -272,6 +280,7 @@ def add_html_footer (translation, subst[name] = translation[page_flavors[k][0]] (subst[name]) subst['footer_name_version'] = subst['footer_name_version'] % subst subst['footer_report_errors'] = subst['footer_report_errors'] % subst + subst['footer_suggest_docs'] = subst['footer_suggest_docs'] % subst page_flavors[k][1] = page_flavors[k][1] % subst out_f = open (name_filter (k), 'w') out_f.write (page_flavors[k][1]) diff --git a/buildscripts/makelsr.py b/buildscripts/makelsr.py index cc79192bd8..ab18da2ace 100755 --- a/buildscripts/makelsr.py +++ b/buildscripts/makelsr.py @@ -4,7 +4,7 @@ import os import os.path import shutil -dirs = ['ancient','chords','connecting','contemporary','expressive','education','guitar','parts','pitch','repeats','scheme','spacing','staff','text','vocal','other','non-music','engravers','instrument-specific'] +dirs = ['ancient','chords','connecting','contemporary','expressive','education','guitar','parts','pitch','repeats','scheme','spacing','staff','text','vocal','other','nonmusic','engravers','instrument'] notsafe=[] try: diff --git a/buildscripts/mass-link.py b/buildscripts/mass-link.py new file mode 100644 index 0000000000..113495512d --- /dev/null +++ b/buildscripts/mass-link.py @@ -0,0 +1,64 @@ +#!@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 wildcards expansion is performed on FILES. + +import sys +import os +import glob +import getopt + +print "mass-link.py" + +optlist, args = getopt.getopt (sys.argv[1:], '', ['prepend-suffix=']) +link_type, source_dir, dest_dir = args[0:3] +files = args[3:] + +source_dir = os.path.normpath (source_dir) +dest_dir = os.path.normpath (dest_dir) + +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))) + +def relative_path (f): + if source_dir == '.': + return f + return f[len (source_dir) + 1:] + +destfiles = map (lambda f: os.path.join (dest_dir, insert_suffix (relative_path (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 index 0000000000..00807407b0 --- /dev/null +++ b/buildscripts/texi-gettext.py @@ -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) diff --git a/buildscripts/update-snippets.py b/buildscripts/update-snippets.py new file mode 100644 index 0000000000..d5503c09a6 --- /dev/null +++ b/buildscripts/update-snippets.py @@ -0,0 +1,102 @@ +#!@PYTHON@ +# update-snippets.py + +# USAGE: update-snippets.py REFERENCE-DIR TARGET-DIR FILES +# +# update ly snippets in TARGET-DIR/FILES with snippets from REFERENCE-DIR/FILES +# +# More precisely, each existing FILE in TARGET-DIR is matched to the FILE in +# REFERENCE-DIR (it the latter does not exist, a warning is given). +# +# Shell wildcards expansion is performed on FILES. +# This script currently supports Texinfo format. +# Ly snippets preceded with a line containing '@c KEEP LY' in TARGET-DIR/FILES +# will not be updated. +# An error occurs if REFERENCE-DIR/FILE and TARGET-DIR/FILE do not have the +# same snippets count. + +import sys +import os +import glob +import re + +print "update-snippets.py" + +comment_re = re.compile (r'(? 0 and (not target_source[j-1].startswith ('@c KEEP LY')) and target_source[j] != ref_source[k]: + target_source[j] = ref_source[k] + c += 1 + changed_snippets_count += 1 + f = open (file, 'w') + f.write (''.join (target_source)) + sys.stderr.write ('%s: %d/%d snippets updated\n' % (file, c, snippet_count)) + +sys.stderr.write ('\nTotal: %d snippets, %d updated snippets.\n' % (total_snippet_count, changed_snippets_count)) +sys.exit (exit_code) diff --git a/buildscripts/www_post.py b/buildscripts/www_post.py index 39c0747d7e..a61c75961b 100644 --- a/buildscripts/www_post.py +++ b/buildscripts/www_post.py @@ -18,17 +18,21 @@ doc_dirs = ['input', 'Documentation', outdir] target_pattern = os.path.join (outdir, '%s-root') static_files = { - # ugly hack: the following overwrites HTML Info dir with a link to - # the (more useful) documentation index - os.path.join ('Documentation/user', outdir, 'index.html'): - ''' -Redirecting to the documentation index...\n''', os.path.join (outdir, 'index.html'): ''' Redirecting to the documentation index...\n''', os.path.join (outdir, 'VERSION'): package_version + '\n' } +import langdefs + +# ugly hack: the following overwrites HTML Info dir with a link to +# the (more useful) documentation index +for l in langdefs.LANGUAGES: + static_files[os.path.join ('Documentation/user', outdir, l.file_name ('index', '.html'))] = \ + '\nRedirecting to the documentation index...\n' + for f, contents in static_files.items (): open (f, 'w').write (contents) @@ -36,7 +40,6 @@ for f, contents in static_files.items (): sys.path.append (buildscript_dir) import mirrortree import add_html_footer -import langdefs sys.stderr.write ("Mirrorring...\n") dirs, symlinks, files = mirrortree.walk_tree ( diff --git a/input/lsr/GNUmakefile b/input/lsr/GNUmakefile index 6cc66a8a50..0aedc718d6 100644 --- a/input/lsr/GNUmakefile +++ b/input/lsr/GNUmakefile @@ -2,7 +2,7 @@ depth = ../../ SUBDIRS = ancient chords connecting contemporary education expressive SUBDIRS += guitar parts pitch repeats spacing staff text vocal scheme other -SUBDIRS += engravers non-music instrument-specific +SUBDIRS += engravers nonmusic instrument STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc diff --git a/input/lsr/LSR.ly b/input/lsr/LSR.ly index a05842e207..726c31e120 100644 --- a/input/lsr/LSR.ly +++ b/input/lsr/LSR.ly @@ -33,9 +33,9 @@ These pages show LilyPond examples (snippets) from the @strong{@uref{vocal/collated-files.html,Vocal music}} -@strong{@uref{non-music/collated-files.html,Non-musical}} +@strong{@uref{nonmusic/collated-files.html,Non-musical}} -@strong{@uref{instrument-specific/collated-files.html,Instrument-specific}} +@strong{@uref{instrument/collated-files.html,Instrument-specific}} @strong{@uref{engravers/collated-files.html,Engravers}} diff --git a/input/lsr/engravers/engravers-one-by-one.ly b/input/lsr/engravers/engravers-one-by-one.ly new file mode 100644 index 0000000000..c950efe0ac --- /dev/null +++ b/input/lsr/engravers/engravers-one-by-one.ly @@ -0,0 +1,278 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +The notation problem, creating a certain symbol, is handled by plugins. +Each plugin is called an Engraver. In this example, engravers are +switched on one by one, in the following order: + +- note heads + + +- staff symbol, + + +- clef, + + +- stem, + + +- beams, slurs, accents, + + +- accidentals, bar lines, time signature, and key signature. + + + +Engravers are grouped. For example, note heads, slurs, beams etc. form +a Voice context. Engravers for key, accidental, bar, etc. form a Staff +context. + + +You may only see the first example in this document; please download +this snippet and run it from your own computer. +" } + +%% sample music +topVoice = \relative c' { + \key d\major + es8([ g] a[ fis]) + b4 + b16[-. b-. b-. cis-.] + d4-> +} + +botVoice = \relative c' { + \key d\major + c8[( f] b[ a)] + es4 + es16[-. es-. es-. fis-.] + b4-> +} + +hoom = \relative c { + \key d \major + \clef bass + g8-. r + r4 + fis8-. + r8 + r4 + b'4-> +} + +pah = \relative c' { + r8 b-. + r4 + r8 g8-. + r16 g-. r8 + \clef treble + fis'4-> +} + +% +% setup for Request->Element conversion. Guru-only +% + +MyStaff =\context { + \type "Engraver_group" + \name Staff + + \description "Handles clefs, bar lines, keys, accidentals. It can contain +@code{Voice} contexts." + + + \consists "Output_property_engraver" + + \consists "Font_size_engraver" + + \consists "Volta_engraver" + \consists "Separating_line_group_engraver" + \consists "Dot_column_engraver" + + \consists "Ottava_spanner_engraver" + \consists "Rest_collision_engraver" + \consists "Piano_pedal_engraver" + \consists "Piano_pedal_align_engraver" + \consists "Instrument_name_engraver" + \consists "Grob_pq_engraver" + \consists "Forbid_line_break_engraver" + \consists "Axis_group_engraver" + + \consists "Pitch_squash_engraver" + + \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6) + extraVerticalExtent = ##f + verticalExtent = ##f + localKeySignature = #'() + + % explicitly set instrument, so we don't get + % weird effects when doing instrument names for + % piano staves + + instrumentName = #'() + shortInstrumentName = #'() + + \accepts "Voice" +} + + +MyVoice = \context { + \type "Engraver_group" + \name Voice + + \description " + Corresponds to a voice on a staff. This context handles the + conversion of dynamic signs, stems, beams, super- and subscripts, + slurs, ties, and rests. + + You have to instantiate this explicitly if you want to have + multiple voices on the same staff." + + localKeySignature = #'() + \consists "Font_size_engraver" + + % must come before all + \consists "Output_property_engraver" + \consists "Arpeggio_engraver" + \consists "Multi_measure_rest_engraver" + \consists "Text_spanner_engraver" + \consists "Grob_pq_engraver" + \consists "Note_head_line_engraver" + \consists "Glissando_engraver" + \consists "Ligature_bracket_engraver" + \consists "Breathing_sign_engraver" + % \consists "Rest_engraver" + \consists "Grace_beam_engraver" + \consists "New_fingering_engraver" + \consists "Chord_tremolo_engraver" + \consists "Percent_repeat_engraver" + \consists "Slash_repeat_engraver" + +%{ + Must come before text_engraver, but after note_column engraver. + +%} + \consists "Text_engraver" + \consists "Dynamic_engraver" + \consists "Fingering_engraver" + + \consists "Script_column_engraver" + \consists "Rhythmic_column_engraver" + \consists "Cluster_spanner_engraver" + \consists "Tie_engraver" + \consists "Tie_engraver" + \consists "Tuplet_engraver" + \consists "Note_heads_engraver" + \consists "Rest_engraver" + + \consists "Skip_event_swallow_translator" +} + + +\score { + \topVoice + \layout { + \context { \MyStaff } + \context { \MyVoice } + } +} + + +MyStaff = \context { + \MyStaff + \consists "Staff_symbol_engraver" +} + +\score { + \topVoice + \layout { + \context { \MyStaff } + \context { \MyVoice } + } +} + +MyStaff = \context { + \MyStaff + \consists "Clef_engraver" + \remove "Pitch_squash_engraver" +} + +\score { + \topVoice + \layout { + \context { \MyStaff } + \context { \MyVoice } + } +} + +MyVoice = \context { + \MyVoice + \consists "Stem_engraver" +} + +\score { + \topVoice + \layout { + \context { \MyStaff } + \context { \MyVoice } + } +} + +MyVoice = \context { + \MyVoice + \consists "Beam_engraver" +} + +\score { + \topVoice + \layout { + \context { \MyStaff } + \context { \MyVoice } + } +} + +MyVoice= \context { + \MyVoice + \consists "Phrasing_slur_engraver" + \consists "Slur_engraver" + \consists "Script_engraver" +} + + +\score { + \topVoice + \layout { + \context { \MyStaff } + \context { \MyVoice } + } +} + +MyStaff = \context { + \MyStaff + \consists "Bar_engraver" + \consists "Time_signature_engraver" +} + +\score { + \topVoice + \layout { + \context { \MyStaff } + \context { \MyVoice } + } +} + +MyStaff = \context { + \MyStaff + \consists "Accidental_engraver" + \consists "Key_engraver" +} +\score { + \topVoice + \layout { + \context { \MyStaff } + \context { \MyVoice } + } +} + diff --git a/input/lsr/engravers/removing-time-signature-and-bar-lines.ly b/input/lsr/engravers/removing-time-signature-and-bar-lines.ly new file mode 100644 index 0000000000..9d73b4012d --- /dev/null +++ b/input/lsr/engravers/removing-time-signature-and-bar-lines.ly @@ -0,0 +1,27 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +Engravers can be removed one by one. Here, the time signature and bar +lines have been removed. + + +" } + +\score { + \relative c'' { + a b c d + d c b a + } + \layout { + raggedright = ##t + \context { + \Staff + whichBar = #"" + \remove "Time_signature_engraver" + } + } +} + + + diff --git a/input/lsr/expressive/attaching-an-arpeggio-to-different-voices-inside-a-same-staff.ly b/input/lsr/expressive/attaching-an-arpeggio-to-different-voices-inside-a-same-staff.ly new file mode 100644 index 0000000000..0ad69b7e51 --- /dev/null +++ b/input/lsr/expressive/attaching-an-arpeggio-to-different-voices-inside-a-same-staff.ly @@ -0,0 +1,32 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +If you've read the manual, you already know that an arpeggio can be +drawn across to staves in PianoStaff context, if you set the +connectArpeggios property. + +However, printing an arpeggio between two simultaneous chords inside a +same staff (with more than one voice), is a bit more tricky. As the +Span_arpeggio_engraver, which is in charge when arpeggios have to be +connected, is not included by default in the Staff context, you have to +add it by yourself using the \consists command. +" } + +\layout { + \context { + \Staff + \consists Span_arpeggio_engraver + } +} + +\new Staff + { + \set Staff.connectArpeggios = ##t + << + {4\arpeggio 4 2 } + \\ + {2\arpeggio 2 } + >> + +} diff --git a/input/lsr/instrument-specific/AAA-intro.ly b/input/lsr/instrument-specific/AAA-intro.ly deleted file mode 100644 index 4997892c3c..0000000000 --- a/input/lsr/instrument-specific/AAA-intro.ly +++ /dev/null @@ -1,17 +0,0 @@ -%% Do not edit this file; it is auto-generated from LSR! -\version "2.11.23" - -\header{ -texidoc = " -@unnumbered Introduction - -This document shows examples from the -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}. - -In the web version of this document, you can click on the file name -or figure for each example to see the corresponding input file." -} - -% make sure .png is generated. -\markup{ "This document is for LilyPond version" #(ly:export(lilypond-version)) } - diff --git a/input/lsr/instrument-specific/GNUmakefile b/input/lsr/instrument-specific/GNUmakefile deleted file mode 100644 index 43325ab698..0000000000 --- a/input/lsr/instrument-specific/GNUmakefile +++ /dev/null @@ -1,16 +0,0 @@ - -depth = ../../../ - -STEPMAKE_TEMPLATES=documentation texinfo tex -LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc - -## Hmm, would this work? No -- if we really want examples, move -## to other dir (input/) comes to mind. -## examples = font20 ancient-font -## LOCALSTEPMAKE_TEMPLATES += ly mutopia - -EXTRA_DIST_FILES= - -include $(depth)/make/stepmake.make - -TITLE=Advanced snippets diff --git a/input/lsr/instrument-specific/SConscript b/input/lsr/instrument-specific/SConscript deleted file mode 100644 index f72bfffc28..0000000000 --- a/input/lsr/instrument-specific/SConscript +++ /dev/null @@ -1,4 +0,0 @@ -# -*-python-*- - -Import ('env', 'collate') -collate (title = 'Advanced snippets') diff --git a/input/lsr/instrument/AAA-intro.ly b/input/lsr/instrument/AAA-intro.ly new file mode 100644 index 0000000000..4997892c3c --- /dev/null +++ b/input/lsr/instrument/AAA-intro.ly @@ -0,0 +1,17 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header{ +texidoc = " +@unnumbered Introduction + +This document shows examples from the +@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}. + +In the web version of this document, you can click on the file name +or figure for each example to see the corresponding input file." +} + +% make sure .png is generated. +\markup{ "This document is for LilyPond version" #(ly:export(lilypond-version)) } + diff --git a/input/lsr/instrument/GNUmakefile b/input/lsr/instrument/GNUmakefile new file mode 100644 index 0000000000..43325ab698 --- /dev/null +++ b/input/lsr/instrument/GNUmakefile @@ -0,0 +1,16 @@ + +depth = ../../../ + +STEPMAKE_TEMPLATES=documentation texinfo tex +LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc + +## Hmm, would this work? No -- if we really want examples, move +## to other dir (input/) comes to mind. +## examples = font20 ancient-font +## LOCALSTEPMAKE_TEMPLATES += ly mutopia + +EXTRA_DIST_FILES= + +include $(depth)/make/stepmake.make + +TITLE=Advanced snippets diff --git a/input/lsr/instrument/SConscript b/input/lsr/instrument/SConscript new file mode 100644 index 0000000000..f72bfffc28 --- /dev/null +++ b/input/lsr/instrument/SConscript @@ -0,0 +1,4 @@ +# -*-python-*- + +Import ('env', 'collate') +collate (title = 'Advanced snippets') diff --git a/input/lsr/instrument/adding-drum-parts.ly b/input/lsr/instrument/adding-drum-parts.ly new file mode 100644 index 0000000000..5bf80e3e3b --- /dev/null +++ b/input/lsr/instrument/adding-drum-parts.ly @@ -0,0 +1,45 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +LilyPond makes drums input quite easy, with powerful pre-configured +tools such as the \drummode function and the DrumStaff context: drums +are placed to their own staff positions (with a special clef symbol) +and have note heads according to the drum. You can easily attach an +extra symbol to the drum, and restrict the number of lines. +" } + +drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh \repeat "unfold" 5 {hhc8 hho hhc8 hh16 hh} hhc4 r4 r2 } +drl = \drummode {\repeat "unfold" 3 {bd4 sn8 bd bd4 << bd ss >> } bd8 tommh tommh bd toml toml bd tomfh16 tomfh } +timb = \drummode { \repeat "unfold" 2 {timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb} } + +\score { + \repeat "volta" 2 { + << + \new DrumStaff \with { + drumStyleTable = #timbales-style + \override StaffSymbol #'line-count = #2 + \override BarLine #'bar-size = #2 + } << + \set Staff.instrumentName = "timbales" + \timb + >> + \new DrumStaff << + \set Staff.instrumentName = "drums" + \new DrumVoice {\stemUp \drh } + \new DrumVoice {\stemDown \drl } + >> + >> + } + \layout {} + + \midi { + \context { + \Score + tempoWholesPerMinute = #(ly:make-moment 120 4) + } + } + + +} + diff --git a/input/lsr/non-music/AAA-intro.ly b/input/lsr/non-music/AAA-intro.ly deleted file mode 100644 index 4997892c3c..0000000000 --- a/input/lsr/non-music/AAA-intro.ly +++ /dev/null @@ -1,17 +0,0 @@ -%% Do not edit this file; it is auto-generated from LSR! -\version "2.11.23" - -\header{ -texidoc = " -@unnumbered Introduction - -This document shows examples from the -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}. - -In the web version of this document, you can click on the file name -or figure for each example to see the corresponding input file." -} - -% make sure .png is generated. -\markup{ "This document is for LilyPond version" #(ly:export(lilypond-version)) } - diff --git a/input/lsr/non-music/GNUmakefile b/input/lsr/non-music/GNUmakefile deleted file mode 100644 index 43325ab698..0000000000 --- a/input/lsr/non-music/GNUmakefile +++ /dev/null @@ -1,16 +0,0 @@ - -depth = ../../../ - -STEPMAKE_TEMPLATES=documentation texinfo tex -LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc - -## Hmm, would this work? No -- if we really want examples, move -## to other dir (input/) comes to mind. -## examples = font20 ancient-font -## LOCALSTEPMAKE_TEMPLATES += ly mutopia - -EXTRA_DIST_FILES= - -include $(depth)/make/stepmake.make - -TITLE=Advanced snippets diff --git a/input/lsr/non-music/SConscript b/input/lsr/non-music/SConscript deleted file mode 100644 index f72bfffc28..0000000000 --- a/input/lsr/non-music/SConscript +++ /dev/null @@ -1,4 +0,0 @@ -# -*-python-*- - -Import ('env', 'collate') -collate (title = 'Advanced snippets') diff --git a/input/lsr/non-music/clip-systems.ly b/input/lsr/non-music/clip-systems.ly deleted file mode 100644 index 66e8e79428..0000000000 --- a/input/lsr/non-music/clip-systems.ly +++ /dev/null @@ -1,86 +0,0 @@ -%% Do not edit this file; it is auto-generated from LSR! -\header { - texidoc = "Clipping snippets from a finished score - -Notes: - -@itemize @bullet -@item If system starts and ends are included, they include extents of the System grob, eg. instrument names. -@item Grace notes at the end point of the region are not included -@item Regions can span multiple systems. In this case, multiple EPS files are generated. -@end itemize - -This file needs to be run separately with @code{-dclip-systems}; the -collated-files.html of the regression test does not adequately show -the results. - -The result will be files named -@file{@var{base}-from-@var{start}-to-@var{end}[-@var{count}].eps}. -" - -} - -\version "2.11.23" - -#(ly:set-option 'clip-systems) - -#(set! output-count 1) - -origScore = \score{ - \relative { - \set Staff.instrumentName = #"bla" - c1 - d - \grace c16 - e1 - \key d\major - - f - \break \clef bass - g, - fis - } -} - -\book { - \score { - \origScore - \layout { - - %% each clip-region is a (START . END) pair - %% where both are rhythmic-locations. - - %% (make-rhythmic-locations BAR-NUMBER NUM DEN) - %% means NUM/DEN whole-notes into bar numbered BAR-NUMBER - - clip-regions - = #(list - (cons - (make-rhythmic-location 2 0 1) - (make-rhythmic-location 4 0 1)) - - (cons - (make-rhythmic-location 0 0 1) - (make-rhythmic-location 4 0 1)) - - (cons - (make-rhythmic-location 0 0 1) - (make-rhythmic-location 6 0 1)) - ) - } - } -} - -#(set! output-count 0) -#(ly:set-option 'clip-systems #f) - -\book { - \score { \origScore } - \markup { \bold \fontsize #6 clips } - \score { - \lyrics { - \markup { from-2.0.1-to-4.0.1-clip.eps } - \markup { \epsfile #X #30.0 #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps" (ly:parser-output-name parser)) } - } - } -} diff --git a/input/lsr/non-music/toc.ly b/input/lsr/non-music/toc.ly deleted file mode 100644 index 8b988ea4b7..0000000000 --- a/input/lsr/non-music/toc.ly +++ /dev/null @@ -1,30 +0,0 @@ -%% Do not edit this file; it is auto-generated from LSR! -\version "2.11.26" - -\header { - texidoc = "A table of contents is included using -@code{\\markuplines \\table-of-contents}. The toc items are added with -the @code{\\tocItem} command." -} - -#(set-default-paper-size "a6") - -\book { - \markuplines \table-of-contents - \pageBreak - - \tocItem \markup "The first score" - \score { - { - c'1 \pageBreak - \mark "A" \tocItem \markup "Mark A" - d' - } - } - \pageBreak - \tocItem \markup "The second score" - \score { - { e' } - \header { piece = "Second score" } - } -} \ No newline at end of file diff --git a/input/lsr/nonmusic/AAA-intro.ly b/input/lsr/nonmusic/AAA-intro.ly new file mode 100644 index 0000000000..4997892c3c --- /dev/null +++ b/input/lsr/nonmusic/AAA-intro.ly @@ -0,0 +1,17 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header{ +texidoc = " +@unnumbered Introduction + +This document shows examples from the +@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}. + +In the web version of this document, you can click on the file name +or figure for each example to see the corresponding input file." +} + +% make sure .png is generated. +\markup{ "This document is for LilyPond version" #(ly:export(lilypond-version)) } + diff --git a/input/lsr/nonmusic/GNUmakefile b/input/lsr/nonmusic/GNUmakefile new file mode 100644 index 0000000000..43325ab698 --- /dev/null +++ b/input/lsr/nonmusic/GNUmakefile @@ -0,0 +1,16 @@ + +depth = ../../../ + +STEPMAKE_TEMPLATES=documentation texinfo tex +LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc + +## Hmm, would this work? No -- if we really want examples, move +## to other dir (input/) comes to mind. +## examples = font20 ancient-font +## LOCALSTEPMAKE_TEMPLATES += ly mutopia + +EXTRA_DIST_FILES= + +include $(depth)/make/stepmake.make + +TITLE=Advanced snippets diff --git a/input/lsr/nonmusic/SConscript b/input/lsr/nonmusic/SConscript new file mode 100644 index 0000000000..f72bfffc28 --- /dev/null +++ b/input/lsr/nonmusic/SConscript @@ -0,0 +1,4 @@ +# -*-python-*- + +Import ('env', 'collate') +collate (title = 'Advanced snippets') diff --git a/input/lsr/nonmusic/all-headers.ly b/input/lsr/nonmusic/all-headers.ly new file mode 100644 index 0000000000..abfeee42c3 --- /dev/null +++ b/input/lsr/nonmusic/all-headers.ly @@ -0,0 +1,48 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +A demonstration of all headers. +" } + +\header { +copyright = "copyright" +title = "title" +subtitle = "subtitle" +composer = "composer" +arranger = "arranger" +instrument = "instrument" +metre = "metre" +opus = "opus" +piece = "piece" +poet = "poet" +texidoc = "All header fields with special meanings." + copyright = "public domain" + enteredby = "jcn" + source = "urtext" + +} + + +\score { + \relative c'' { c1 c1 c1 c1 } +} + +\score { + \relative c'' { c1 c1 c1 c1 } + + \header { + + title = "localtitle" + subtitle = "localsubtitle" + composer = "localcomposer" + arranger = "localarranger" + instrument = "localinstrument" + metre = "localmetre" + opus = "localopus" + piece = "localpiece" + poet = "localpoet" + copyright = "localcopyright" + } +} + diff --git a/input/lsr/nonmusic/clip-systems.ly b/input/lsr/nonmusic/clip-systems.ly new file mode 100644 index 0000000000..66e8e79428 --- /dev/null +++ b/input/lsr/nonmusic/clip-systems.ly @@ -0,0 +1,86 @@ +%% Do not edit this file; it is auto-generated from LSR! +\header { + texidoc = "Clipping snippets from a finished score + +Notes: + +@itemize @bullet +@item If system starts and ends are included, they include extents of the System grob, eg. instrument names. +@item Grace notes at the end point of the region are not included +@item Regions can span multiple systems. In this case, multiple EPS files are generated. +@end itemize + +This file needs to be run separately with @code{-dclip-systems}; the +collated-files.html of the regression test does not adequately show +the results. + +The result will be files named +@file{@var{base}-from-@var{start}-to-@var{end}[-@var{count}].eps}. +" + +} + +\version "2.11.23" + +#(ly:set-option 'clip-systems) + +#(set! output-count 1) + +origScore = \score{ + \relative { + \set Staff.instrumentName = #"bla" + c1 + d + \grace c16 + e1 + \key d\major + + f + \break \clef bass + g, + fis + } +} + +\book { + \score { + \origScore + \layout { + + %% each clip-region is a (START . END) pair + %% where both are rhythmic-locations. + + %% (make-rhythmic-locations BAR-NUMBER NUM DEN) + %% means NUM/DEN whole-notes into bar numbered BAR-NUMBER + + clip-regions + = #(list + (cons + (make-rhythmic-location 2 0 1) + (make-rhythmic-location 4 0 1)) + + (cons + (make-rhythmic-location 0 0 1) + (make-rhythmic-location 4 0 1)) + + (cons + (make-rhythmic-location 0 0 1) + (make-rhythmic-location 6 0 1)) + ) + } + } +} + +#(set! output-count 0) +#(ly:set-option 'clip-systems #f) + +\book { + \score { \origScore } + \markup { \bold \fontsize #6 clips } + \score { + \lyrics { + \markup { from-2.0.1-to-4.0.1-clip.eps } + \markup { \epsfile #X #30.0 #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps" (ly:parser-output-name parser)) } + } + } +} diff --git a/input/lsr/nonmusic/toc.ly b/input/lsr/nonmusic/toc.ly new file mode 100644 index 0000000000..8b988ea4b7 --- /dev/null +++ b/input/lsr/nonmusic/toc.ly @@ -0,0 +1,30 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.26" + +\header { + texidoc = "A table of contents is included using +@code{\\markuplines \\table-of-contents}. The toc items are added with +the @code{\\tocItem} command." +} + +#(set-default-paper-size "a6") + +\book { + \markuplines \table-of-contents + \pageBreak + + \tocItem \markup "The first score" + \score { + { + c'1 \pageBreak + \mark "A" \tocItem \markup "Mark A" + d' + } + } + \pageBreak + \tocItem \markup "The second score" + \score { + { e' } + \header { piece = "Second score" } + } +} \ No newline at end of file diff --git a/input/lsr/other/adding-drum-parts.ly b/input/lsr/other/adding-drum-parts.ly deleted file mode 100644 index 5bf80e3e3b..0000000000 --- a/input/lsr/other/adding-drum-parts.ly +++ /dev/null @@ -1,45 +0,0 @@ -%% Do not edit this file; it is auto-generated from LSR! -\version "2.11.23" - -\header { texidoc = " -LilyPond makes drums input quite easy, with powerful pre-configured -tools such as the \drummode function and the DrumStaff context: drums -are placed to their own staff positions (with a special clef symbol) -and have note heads according to the drum. You can easily attach an -extra symbol to the drum, and restrict the number of lines. -" } - -drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh \repeat "unfold" 5 {hhc8 hho hhc8 hh16 hh} hhc4 r4 r2 } -drl = \drummode {\repeat "unfold" 3 {bd4 sn8 bd bd4 << bd ss >> } bd8 tommh tommh bd toml toml bd tomfh16 tomfh } -timb = \drummode { \repeat "unfold" 2 {timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb} } - -\score { - \repeat "volta" 2 { - << - \new DrumStaff \with { - drumStyleTable = #timbales-style - \override StaffSymbol #'line-count = #2 - \override BarLine #'bar-size = #2 - } << - \set Staff.instrumentName = "timbales" - \timb - >> - \new DrumStaff << - \set Staff.instrumentName = "drums" - \new DrumVoice {\stemUp \drh } - \new DrumVoice {\stemDown \drl } - >> - >> - } - \layout {} - - \midi { - \context { - \Score - tempoWholesPerMinute = #(ly:make-moment 120 4) - } - } - - -} - diff --git a/input/lsr/other/all-headers.ly b/input/lsr/other/all-headers.ly deleted file mode 100644 index abfeee42c3..0000000000 --- a/input/lsr/other/all-headers.ly +++ /dev/null @@ -1,48 +0,0 @@ -%% Do not edit this file; it is auto-generated from LSR! -\version "2.11.23" - -\header { texidoc = " -A demonstration of all headers. -" } - -\header { -copyright = "copyright" -title = "title" -subtitle = "subtitle" -composer = "composer" -arranger = "arranger" -instrument = "instrument" -metre = "metre" -opus = "opus" -piece = "piece" -poet = "poet" -texidoc = "All header fields with special meanings." - copyright = "public domain" - enteredby = "jcn" - source = "urtext" - -} - - -\score { - \relative c'' { c1 c1 c1 c1 } -} - -\score { - \relative c'' { c1 c1 c1 c1 } - - \header { - - title = "localtitle" - subtitle = "localsubtitle" - composer = "localcomposer" - arranger = "localarranger" - instrument = "localinstrument" - metre = "localmetre" - opus = "localopus" - piece = "localpiece" - poet = "localpoet" - copyright = "localcopyright" - } -} - diff --git a/input/lsr/other/engravers-one-by-one.ly b/input/lsr/other/engravers-one-by-one.ly deleted file mode 100644 index c950efe0ac..0000000000 --- a/input/lsr/other/engravers-one-by-one.ly +++ /dev/null @@ -1,278 +0,0 @@ -%% Do not edit this file; it is auto-generated from LSR! -\version "2.11.23" - -\header { texidoc = " -The notation problem, creating a certain symbol, is handled by plugins. -Each plugin is called an Engraver. In this example, engravers are -switched on one by one, in the following order: - -- note heads - - -- staff symbol, - - -- clef, - - -- stem, - - -- beams, slurs, accents, - - -- accidentals, bar lines, time signature, and key signature. - - - -Engravers are grouped. For example, note heads, slurs, beams etc. form -a Voice context. Engravers for key, accidental, bar, etc. form a Staff -context. - - -You may only see the first example in this document; please download -this snippet and run it from your own computer. -" } - -%% sample music -topVoice = \relative c' { - \key d\major - es8([ g] a[ fis]) - b4 - b16[-. b-. b-. cis-.] - d4-> -} - -botVoice = \relative c' { - \key d\major - c8[( f] b[ a)] - es4 - es16[-. es-. es-. fis-.] - b4-> -} - -hoom = \relative c { - \key d \major - \clef bass - g8-. r - r4 - fis8-. - r8 - r4 - b'4-> -} - -pah = \relative c' { - r8 b-. - r4 - r8 g8-. - r16 g-. r8 - \clef treble - fis'4-> -} - -% -% setup for Request->Element conversion. Guru-only -% - -MyStaff =\context { - \type "Engraver_group" - \name Staff - - \description "Handles clefs, bar lines, keys, accidentals. It can contain -@code{Voice} contexts." - - - \consists "Output_property_engraver" - - \consists "Font_size_engraver" - - \consists "Volta_engraver" - \consists "Separating_line_group_engraver" - \consists "Dot_column_engraver" - - \consists "Ottava_spanner_engraver" - \consists "Rest_collision_engraver" - \consists "Piano_pedal_engraver" - \consists "Piano_pedal_align_engraver" - \consists "Instrument_name_engraver" - \consists "Grob_pq_engraver" - \consists "Forbid_line_break_engraver" - \consists "Axis_group_engraver" - - \consists "Pitch_squash_engraver" - - \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6) - extraVerticalExtent = ##f - verticalExtent = ##f - localKeySignature = #'() - - % explicitly set instrument, so we don't get - % weird effects when doing instrument names for - % piano staves - - instrumentName = #'() - shortInstrumentName = #'() - - \accepts "Voice" -} - - -MyVoice = \context { - \type "Engraver_group" - \name Voice - - \description " - Corresponds to a voice on a staff. This context handles the - conversion of dynamic signs, stems, beams, super- and subscripts, - slurs, ties, and rests. - - You have to instantiate this explicitly if you want to have - multiple voices on the same staff." - - localKeySignature = #'() - \consists "Font_size_engraver" - - % must come before all - \consists "Output_property_engraver" - \consists "Arpeggio_engraver" - \consists "Multi_measure_rest_engraver" - \consists "Text_spanner_engraver" - \consists "Grob_pq_engraver" - \consists "Note_head_line_engraver" - \consists "Glissando_engraver" - \consists "Ligature_bracket_engraver" - \consists "Breathing_sign_engraver" - % \consists "Rest_engraver" - \consists "Grace_beam_engraver" - \consists "New_fingering_engraver" - \consists "Chord_tremolo_engraver" - \consists "Percent_repeat_engraver" - \consists "Slash_repeat_engraver" - -%{ - Must come before text_engraver, but after note_column engraver. - -%} - \consists "Text_engraver" - \consists "Dynamic_engraver" - \consists "Fingering_engraver" - - \consists "Script_column_engraver" - \consists "Rhythmic_column_engraver" - \consists "Cluster_spanner_engraver" - \consists "Tie_engraver" - \consists "Tie_engraver" - \consists "Tuplet_engraver" - \consists "Note_heads_engraver" - \consists "Rest_engraver" - - \consists "Skip_event_swallow_translator" -} - - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - - -MyStaff = \context { - \MyStaff - \consists "Staff_symbol_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyStaff = \context { - \MyStaff - \consists "Clef_engraver" - \remove "Pitch_squash_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyVoice = \context { - \MyVoice - \consists "Stem_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyVoice = \context { - \MyVoice - \consists "Beam_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyVoice= \context { - \MyVoice - \consists "Phrasing_slur_engraver" - \consists "Slur_engraver" - \consists "Script_engraver" -} - - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyStaff = \context { - \MyStaff - \consists "Bar_engraver" - \consists "Time_signature_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyStaff = \context { - \MyStaff - \consists "Accidental_engraver" - \consists "Key_engraver" -} -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - diff --git a/input/lsr/other/removing-time-signature-and-bar-lines.ly b/input/lsr/other/removing-time-signature-and-bar-lines.ly deleted file mode 100644 index 9d73b4012d..0000000000 --- a/input/lsr/other/removing-time-signature-and-bar-lines.ly +++ /dev/null @@ -1,27 +0,0 @@ -%% Do not edit this file; it is auto-generated from LSR! -\version "2.11.23" - -\header { texidoc = " -Engravers can be removed one by one. Here, the time signature and bar -lines have been removed. - - -" } - -\score { - \relative c'' { - a b c d - d c b a - } - \layout { - raggedright = ##t - \context { - \Staff - whichBar = #"" - \remove "Time_signature_engraver" - } - } -} - - - diff --git a/input/lsr/pitch/combining-two-parts-on-the-same-staff.ly b/input/lsr/pitch/combining-two-parts-on-the-same-staff.ly new file mode 100644 index 0000000000..3569f3f5a5 --- /dev/null +++ b/input/lsr/pitch/combining-two-parts-on-the-same-staff.ly @@ -0,0 +1,74 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +The part combiner tool ( \partcombine command ) allows you to combine +different parts on a same Staff. You can choose whether you want or +don't want to add texts such as \"solo\" or \"a2\", by defining the +printPartCombineTexts property. + +For vocal scores (hymns), there is no need to add solo/a2 texts, so +they should be switched off. However, you'd better not use it if there +are any solos, as they won't be indicated. In such cases, you may +simply wan't to use standard LilyPond polyphony. + +This snippet presents the three ways two parts can be printed on a same +staff : standard polyphony, \partcombine whitout texts, and +\partcombine with texts. + + +" } + +musicUp = { \time 4/4 + \relative c'' { + a4 c4.(g8) a4 | + g4 e' g,( a8 b) | + c b a2. + } +} + +musicDown = { + \relative c'' { + g4 e4.(d8) c4 | + r2 g'4( f8 e) | + d2 a + } +} +\score{ + \new Staff { + \set Staff.instrumentName = "Standard polyphony " + << \musicUp \\ \musicDown >> + } + \layout{ + indent = 6.0\cm + } +} + +\score{ + \context Staff { + \set Staff.instrumentName = "PartCombine without texts " + \partcombine \musicUp \musicDown + } + \layout{ + indent = 6.0\cm + \context { + \Voice + printPartCombineTexts = ##f + } + } +} + +\score{ + \context Staff { + \set Staff.instrumentName = "PartCombine with texts " + \partcombine \musicUp \musicDown + } + \layout{ + indent = 6.0\cm + \context { + \Voice + printPartCombineTexts = ##t + } + } +} + diff --git a/input/lsr/pitch/forced-and-cautionary-accidentals.ly b/input/lsr/pitch/forced-and-cautionary-accidentals.ly new file mode 100644 index 0000000000..1a29e94ae3 --- /dev/null +++ b/input/lsr/pitch/forced-and-cautionary-accidentals.ly @@ -0,0 +1,26 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " + Normally accidentals are printed automatically, but you may also print +them manually. A reminder accidental can be forced by adding an +exclamation mark ! after the pitch. A cautionary accidental (i.e., an +accidental within parentheses) can be obtained by adding the question +mark `?' after the pitch. + + + +Cautionary accidentals may be made smaller, or placed inside +parentheses +" } + +{ +cis' cis' cis'! cis'? + + c''4 + cis''?4 + \once \override Staff.AccidentalCautionary #'font-size = #-2 + cis''?4 + \once \override Staff.AccidentalCautionary #'parenthesized = ##t + cis''?4 +} diff --git a/input/lsr/pitch/preventing-stem-extension.ly b/input/lsr/pitch/preventing-stem-extension.ly new file mode 100644 index 0000000000..731a76e0de --- /dev/null +++ b/input/lsr/pitch/preventing-stem-extension.ly @@ -0,0 +1,30 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +Extending stems to the center line may be prevented using +@code{no-stem-extend}. + + +" } + +\score { + \context Voice \relative c { + \context Staff << + \new Voice { + f2 f8 g a b + \override Stem #'no-stem-extend = ##t + f2 f8 g a b + } + \new Voice { + c''2 c8 b a g + \override Stem #'no-stem-extend = ##t + c2 c8 b a g + } + >> + + } + +} + + diff --git a/input/lsr/pitch/rest-styles.ly b/input/lsr/pitch/rest-styles.ly new file mode 100644 index 0000000000..c14c92710f --- /dev/null +++ b/input/lsr/pitch/rest-styles.ly @@ -0,0 +1,39 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +Rests may be used in various styles. + + + +" } + +\layout { + indent = 0.0 + raggedright = ##t +} + +\context Staff \relative c { + \set Score.timing = ##f + \override Staff.Rest #'style = #'mensural + r\maxima^\markup \typewriter { mensural } + r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 + \bar "" + + \override Staff.Rest #'style = #'neomensural + r\maxima^\markup \typewriter { neomensural } + r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 + \bar "" + + \override Staff.Rest #'style = #'classical + r\maxima^\markup \typewriter { classical } + r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 + \bar "" + + \override Staff.Rest #'style = #'default + r\maxima^\markup \typewriter { default } + r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 + +} + + diff --git a/input/new/GNUmakefile b/input/new/GNUmakefile index af209b82fe..d212c6cec8 100644 --- a/input/new/GNUmakefile +++ b/input/new/GNUmakefile @@ -1,6 +1,9 @@ depth = ../../ -SUBDIRS = ancient chords connecting contemporary guitar parts repeats spacing staff text vocal expressive scheme other education pitch +SUBDIRS = ancient chords connecting contemporary education expressive +SUBDIRS += guitar parts pitch repeats spacing staff text vocal scheme other +SUBDIRS += engravers nonmusic instrument + STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc diff --git a/input/new/instrument-specific/AAA-intro.ly b/input/new/instrument-specific/AAA-intro.ly deleted file mode 100644 index 93c62a94e3..0000000000 --- a/input/new/instrument-specific/AAA-intro.ly +++ /dev/null @@ -1,16 +0,0 @@ -\version "2.10.0" - -\header{ -texidoc = " -@unnumbered Introduction - -This document shows examples from the -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}. - -In the web version of this document, you can click on the file name -or figure for each example to see the corresponding input file." -} - -% make sure .png is generated. -\markup{ "This document is for LilyPond version" #(ly:export(lilypond-version)) } - diff --git a/input/new/instrument-specific/GNUmakefile b/input/new/instrument-specific/GNUmakefile deleted file mode 100644 index 43325ab698..0000000000 --- a/input/new/instrument-specific/GNUmakefile +++ /dev/null @@ -1,16 +0,0 @@ - -depth = ../../../ - -STEPMAKE_TEMPLATES=documentation texinfo tex -LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc - -## Hmm, would this work? No -- if we really want examples, move -## to other dir (input/) comes to mind. -## examples = font20 ancient-font -## LOCALSTEPMAKE_TEMPLATES += ly mutopia - -EXTRA_DIST_FILES= - -include $(depth)/make/stepmake.make - -TITLE=Advanced snippets diff --git a/input/new/instrument-specific/SConscript b/input/new/instrument-specific/SConscript deleted file mode 100644 index f72bfffc28..0000000000 --- a/input/new/instrument-specific/SConscript +++ /dev/null @@ -1,4 +0,0 @@ -# -*-python-*- - -Import ('env', 'collate') -collate (title = 'Advanced snippets') diff --git a/input/new/instrument/AAA-intro.ly b/input/new/instrument/AAA-intro.ly new file mode 100644 index 0000000000..93c62a94e3 --- /dev/null +++ b/input/new/instrument/AAA-intro.ly @@ -0,0 +1,16 @@ +\version "2.10.0" + +\header{ +texidoc = " +@unnumbered Introduction + +This document shows examples from the +@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}. + +In the web version of this document, you can click on the file name +or figure for each example to see the corresponding input file." +} + +% make sure .png is generated. +\markup{ "This document is for LilyPond version" #(ly:export(lilypond-version)) } + diff --git a/input/new/instrument/GNUmakefile b/input/new/instrument/GNUmakefile new file mode 100644 index 0000000000..43325ab698 --- /dev/null +++ b/input/new/instrument/GNUmakefile @@ -0,0 +1,16 @@ + +depth = ../../../ + +STEPMAKE_TEMPLATES=documentation texinfo tex +LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc + +## Hmm, would this work? No -- if we really want examples, move +## to other dir (input/) comes to mind. +## examples = font20 ancient-font +## LOCALSTEPMAKE_TEMPLATES += ly mutopia + +EXTRA_DIST_FILES= + +include $(depth)/make/stepmake.make + +TITLE=Advanced snippets diff --git a/input/new/instrument/SConscript b/input/new/instrument/SConscript new file mode 100644 index 0000000000..f72bfffc28 --- /dev/null +++ b/input/new/instrument/SConscript @@ -0,0 +1,4 @@ +# -*-python-*- + +Import ('env', 'collate') +collate (title = 'Advanced snippets') diff --git a/input/new/non-music/AAA-intro.ly b/input/new/non-music/AAA-intro.ly deleted file mode 100644 index 93c62a94e3..0000000000 --- a/input/new/non-music/AAA-intro.ly +++ /dev/null @@ -1,16 +0,0 @@ -\version "2.10.0" - -\header{ -texidoc = " -@unnumbered Introduction - -This document shows examples from the -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}. - -In the web version of this document, you can click on the file name -or figure for each example to see the corresponding input file." -} - -% make sure .png is generated. -\markup{ "This document is for LilyPond version" #(ly:export(lilypond-version)) } - diff --git a/input/new/non-music/GNUmakefile b/input/new/non-music/GNUmakefile deleted file mode 100644 index 43325ab698..0000000000 --- a/input/new/non-music/GNUmakefile +++ /dev/null @@ -1,16 +0,0 @@ - -depth = ../../../ - -STEPMAKE_TEMPLATES=documentation texinfo tex -LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc - -## Hmm, would this work? No -- if we really want examples, move -## to other dir (input/) comes to mind. -## examples = font20 ancient-font -## LOCALSTEPMAKE_TEMPLATES += ly mutopia - -EXTRA_DIST_FILES= - -include $(depth)/make/stepmake.make - -TITLE=Advanced snippets diff --git a/input/new/non-music/SConscript b/input/new/non-music/SConscript deleted file mode 100644 index f72bfffc28..0000000000 --- a/input/new/non-music/SConscript +++ /dev/null @@ -1,4 +0,0 @@ -# -*-python-*- - -Import ('env', 'collate') -collate (title = 'Advanced snippets') diff --git a/input/new/non-music/clip-systems.ly b/input/new/non-music/clip-systems.ly deleted file mode 100644 index 06247e76b5..0000000000 --- a/input/new/non-music/clip-systems.ly +++ /dev/null @@ -1,85 +0,0 @@ -\header { - texidoc = "Clipping snippets from a finished score - -Notes: - -@itemize @bullet -@item If system starts and ends are included, they include extents of the System grob, eg. instrument names. -@item Grace notes at the end point of the region are not included -@item Regions can span multiple systems. In this case, multiple EPS files are generated. -@end itemize - -This file needs to be run separately with @code{-dclip-systems}; the -collated-files.html of the regression test does not adequately show -the results. - -The result will be files named -@file{@var{base}-from-@var{start}-to-@var{end}[-@var{count}].eps}. -" - -} - -\version "2.10.0" - -#(ly:set-option 'clip-systems) - -#(set! output-count 1) - -origScore = \score{ - \relative { - \set Staff.instrumentName = #"bla" - c1 - d - \grace c16 - e1 - \key d\major - - f - \break \clef bass - g, - fis - } -} - -\book { - \score { - \origScore - \layout { - - %% each clip-region is a (START . END) pair - %% where both are rhythmic-locations. - - %% (make-rhythmic-locations BAR-NUMBER NUM DEN) - %% means NUM/DEN whole-notes into bar numbered BAR-NUMBER - - clip-regions - = #(list - (cons - (make-rhythmic-location 2 0 1) - (make-rhythmic-location 4 0 1)) - - (cons - (make-rhythmic-location 0 0 1) - (make-rhythmic-location 4 0 1)) - - (cons - (make-rhythmic-location 0 0 1) - (make-rhythmic-location 6 0 1)) - ) - } - } -} - -#(set! output-count 0) -#(ly:set-option 'clip-systems #f) - -\book { - \score { \origScore } - \markup { \bold \fontsize #6 clips } - \score { - \lyrics { - \markup { from-2.0.1-to-4.0.1-clip.eps } - \markup { \epsfile #X #30.0 #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps" (ly:parser-output-name parser)) } - } - } -} diff --git a/input/new/non-music/toc.ly b/input/new/non-music/toc.ly deleted file mode 100644 index e6164ea602..0000000000 --- a/input/new/non-music/toc.ly +++ /dev/null @@ -1,29 +0,0 @@ -\version "2.11.26" - -\header { - texidoc = "A table of contents is included using -@code{\\markuplines \\table-of-contents}. The toc items are added with -the @code{\\tocItem} command." -} - -#(set-default-paper-size "a6") - -\book { - \markuplines \table-of-contents - \pageBreak - - \tocItem \markup "The first score" - \score { - { - c'1 \pageBreak - \mark "A" \tocItem \markup "Mark A" - d' - } - } - \pageBreak - \tocItem \markup "The second score" - \score { - { e' } - \header { piece = "Second score" } - } -} \ No newline at end of file diff --git a/input/new/nonmusic/AAA-intro.ly b/input/new/nonmusic/AAA-intro.ly new file mode 100644 index 0000000000..93c62a94e3 --- /dev/null +++ b/input/new/nonmusic/AAA-intro.ly @@ -0,0 +1,16 @@ +\version "2.10.0" + +\header{ +texidoc = " +@unnumbered Introduction + +This document shows examples from the +@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}. + +In the web version of this document, you can click on the file name +or figure for each example to see the corresponding input file." +} + +% make sure .png is generated. +\markup{ "This document is for LilyPond version" #(ly:export(lilypond-version)) } + diff --git a/input/new/nonmusic/GNUmakefile b/input/new/nonmusic/GNUmakefile new file mode 100644 index 0000000000..43325ab698 --- /dev/null +++ b/input/new/nonmusic/GNUmakefile @@ -0,0 +1,16 @@ + +depth = ../../../ + +STEPMAKE_TEMPLATES=documentation texinfo tex +LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc + +## Hmm, would this work? No -- if we really want examples, move +## to other dir (input/) comes to mind. +## examples = font20 ancient-font +## LOCALSTEPMAKE_TEMPLATES += ly mutopia + +EXTRA_DIST_FILES= + +include $(depth)/make/stepmake.make + +TITLE=Advanced snippets diff --git a/input/new/nonmusic/SConscript b/input/new/nonmusic/SConscript new file mode 100644 index 0000000000..f72bfffc28 --- /dev/null +++ b/input/new/nonmusic/SConscript @@ -0,0 +1,4 @@ +# -*-python-*- + +Import ('env', 'collate') +collate (title = 'Advanced snippets') diff --git a/input/new/nonmusic/clip-systems.ly b/input/new/nonmusic/clip-systems.ly new file mode 100644 index 0000000000..06247e76b5 --- /dev/null +++ b/input/new/nonmusic/clip-systems.ly @@ -0,0 +1,85 @@ +\header { + texidoc = "Clipping snippets from a finished score + +Notes: + +@itemize @bullet +@item If system starts and ends are included, they include extents of the System grob, eg. instrument names. +@item Grace notes at the end point of the region are not included +@item Regions can span multiple systems. In this case, multiple EPS files are generated. +@end itemize + +This file needs to be run separately with @code{-dclip-systems}; the +collated-files.html of the regression test does not adequately show +the results. + +The result will be files named +@file{@var{base}-from-@var{start}-to-@var{end}[-@var{count}].eps}. +" + +} + +\version "2.10.0" + +#(ly:set-option 'clip-systems) + +#(set! output-count 1) + +origScore = \score{ + \relative { + \set Staff.instrumentName = #"bla" + c1 + d + \grace c16 + e1 + \key d\major + + f + \break \clef bass + g, + fis + } +} + +\book { + \score { + \origScore + \layout { + + %% each clip-region is a (START . END) pair + %% where both are rhythmic-locations. + + %% (make-rhythmic-locations BAR-NUMBER NUM DEN) + %% means NUM/DEN whole-notes into bar numbered BAR-NUMBER + + clip-regions + = #(list + (cons + (make-rhythmic-location 2 0 1) + (make-rhythmic-location 4 0 1)) + + (cons + (make-rhythmic-location 0 0 1) + (make-rhythmic-location 4 0 1)) + + (cons + (make-rhythmic-location 0 0 1) + (make-rhythmic-location 6 0 1)) + ) + } + } +} + +#(set! output-count 0) +#(ly:set-option 'clip-systems #f) + +\book { + \score { \origScore } + \markup { \bold \fontsize #6 clips } + \score { + \lyrics { + \markup { from-2.0.1-to-4.0.1-clip.eps } + \markup { \epsfile #X #30.0 #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps" (ly:parser-output-name parser)) } + } + } +} diff --git a/input/new/nonmusic/toc.ly b/input/new/nonmusic/toc.ly new file mode 100644 index 0000000000..e6164ea602 --- /dev/null +++ b/input/new/nonmusic/toc.ly @@ -0,0 +1,29 @@ +\version "2.11.26" + +\header { + texidoc = "A table of contents is included using +@code{\\markuplines \\table-of-contents}. The toc items are added with +the @code{\\tocItem} command." +} + +#(set-default-paper-size "a6") + +\book { + \markuplines \table-of-contents + \pageBreak + + \tocItem \markup "The first score" + \score { + { + c'1 \pageBreak + \mark "A" \tocItem \markup "Mark A" + d' + } + } + \pageBreak + \tocItem \markup "The second score" + \score { + { e' } + \header { piece = "Second score" } + } +} \ No newline at end of file diff --git a/input/regression/display-lily-tests.ly b/input/regression/display-lily-tests.ly index 5b2b4f198c..434f76fa83 100644 --- a/input/regression/display-lily-tests.ly +++ b/input/regression/display-lily-tests.ly @@ -187,7 +187,6 @@ stderr of this run." %% Repeats \test "" ##[ \repeat volta 2 { c d } #] % VoltaRepeatedMusic \test "" ##[ \repeat unfold 2 { c d } #] % UnfoldedRepeatedMusic -\test "" ##[ \repeat fold 2 { c d } #] % FoldedRepeatedMusic \test "" ##[ \repeat percent 2 { c d } #] % PercentRepeatedMusic \test "" ##[ \repeat tremolo 4 { c16 d } #] % TremoloRepeatedMusic \test "" ##[ \repeat volta 2 { c4 d } \alternative { { c d } { e f } } #] % diff --git a/input/regression/repeat-fold.ly b/input/regression/repeat-fold.ly deleted file mode 100644 index 7a5f1c66e2..0000000000 --- a/input/regression/repeat-fold.ly +++ /dev/null @@ -1,20 +0,0 @@ -\version "2.10.0" - -\header{ -texidoc=" -Folded repeat may not make sense without alternatives, and there -should not be more alternatives than repeats. -" -} - -\paper { ragged-right = ##t } - -\context Staff \relative c'' { - \repeat fold 3 { c^"3x 0alt" d } - % less alts than body - \repeat fold 4 { c^"4x 2alt" d } \alternative { e f } - % more alts than body - \repeat fold 2 { c^"2x 3alt" d } \alternative { e f g } - } - - diff --git a/input/regression/repeat-unfold.ly b/input/regression/repeat-unfold.ly index 03ac55f35b..2ff7e2304a 100644 --- a/input/regression/repeat-unfold.ly +++ b/input/regression/repeat-unfold.ly @@ -1,22 +1,16 @@ -\version "2.10.0" +\version "2.11.27" \header{ - texidoc=" -LilyPond has three modes for repeats: folded, unfolded and -semi-unfolded. Unfolded repeats are fully written out. Semi unfolded -repeats have the body written and all alternatives sequentially. -Folded repeats have the body written and all alternatives -simultaneo.ly. If the number of alternatives is larger than the -repeat count, the excess alternatives are ignored. If the number of -alternatives is smaller, the first alternative is multiplied to get to -the number of repeats. + texidoc="LilyPond has two modes for repeats: unfolded and semi-unfolded. +Unfolded repeats are fully written out. Semi unfolded repeats have the body +written and all alternatives sequentially. If the number of alternatives is +larger than the repeat count, the excess alternatives are ignored. If the +number of alternatives is smaller, the first alternative is multiplied to +get to the number of repeats. -Unfolded behavior: -" +Unfolded behavior:" } - - \context Voice \relative c'' { \repeat unfold 3 { c^"3x 0a" d } %% less alts than body @@ -24,5 +18,3 @@ Unfolded behavior: %% more alts than body \repeat unfold 2 { c^"2x 3a" d } \alternative { e f g } } - - diff --git a/lily/all-font-metrics-scheme.cc b/lily/all-font-metrics-scheme.cc index 793b4c5875..a3b19e468d 100644 --- a/lily/all-font-metrics-scheme.cc +++ b/lily/all-font-metrics-scheme.cc @@ -13,7 +13,7 @@ LY_DEFINE (ly_reset_all_fonts, "ly:reset-all-fonts", 0, 0, 0, (), - "Forget all about previously loaded fonts. ") + "Forget all about previously loaded fonts.") { delete all_fonts_global; all_fonts_global = new All_font_metrics (global_path.to_string ()); @@ -24,7 +24,7 @@ LY_DEFINE (ly_reset_all_fonts, "ly:reset-all-fonts", 0, 0, 0, LY_DEFINE (ly_font_load, "ly:font-load", 1, 0, 0, (SCM name), - "Load the font @var{name}. ") + "Load the font @var{name}.") { LY_ASSERT_TYPE (scm_is_string, name, 1); diff --git a/lily/axis-group-interface-scheme.cc b/lily/axis-group-interface-scheme.cc index 3b529ed34e..45236e6ca5 100644 --- a/lily/axis-group-interface-scheme.cc +++ b/lily/axis-group-interface-scheme.cc @@ -13,8 +13,8 @@ LY_DEFINE (ly_relative_group_extent, "ly:relative-group-extent", 3, 0, 0, (SCM elements, SCM common, SCM axis), - "Determine the extent of @var{elements} relative to @var{common} in the " - "@var{axis} direction.") + "Determine the extent of @var{elements} relative to @var{common} in the" + " @var{axis} direction.") { Grob_array *ga = unsmob_grob_array (elements); diff --git a/lily/book-scheme.cc b/lily/book-scheme.cc index 567504cf07..e00f1ded49 100644 --- a/lily/book-scheme.cc +++ b/lily/book-scheme.cc @@ -15,8 +15,8 @@ LY_DEFINE (ly_make_book, "ly:make-book", 2, 0, 1, (SCM paper, SCM header, SCM scores), - "Make a \\book of @var{paper} and @var{header} (which may be #f as well) " - "containing @code{\\scores}.") + "Make a @code{\\book} of @var{paper} and @var{header}" + " (which may be @code{#f} as well) containing @code{\\scores}.") { Output_def *odef = unsmob_output_def (paper); LY_ASSERT_SMOB (Output_def, paper, 1); @@ -39,10 +39,9 @@ LY_DEFINE (ly_book_process, "ly:book-process", SCM default_paper, SCM default_layout, SCM output), - "Print book. @var{output} is passed to the backend unchanged. " - "Eg. it may be " - "a string (for file based outputs) or a socket (for network based " - "output).") + "Print book. @var{output} is passed to the backend unchanged." + " For example, it may be a string (for file based outputs)" + " or a socket (for network based output).") { Book *book = unsmob_book (book_smob); @@ -67,10 +66,9 @@ LY_DEFINE (ly_book_process_to_systems, "ly:book-process-to-systems", SCM default_paper, SCM default_layout, SCM output), - "Print book. @var{output} is passed to the backend unchanged. " - "Eg. it may be " - "a string (for file based outputs) or a socket (for network based " - "output).") + "Print book. @var{output} is passed to the backend unchanged." + " For example, it may be a string (for file based outputs)" + " or a socket (for network based output).") { LY_ASSERT_SMOB (Book, book_smob, 1); LY_ASSERT_SMOB (Output_def, default_paper, 2); @@ -91,7 +89,7 @@ LY_DEFINE (ly_book_process_to_systems, "ly:book-process-to-systems", LY_DEFINE (ly_book_add_score_x, "ly:book-add-score!", 2, 0, 0, (SCM book_smob, SCM score), - "Add @var{score} to @var{book_smob} score list.") + "Add @var{score} to @var{book-smob} score list.") { LY_ASSERT_SMOB (Book, book_smob, 1); Book *book = unsmob_book (book_smob); diff --git a/lily/context-scheme.cc b/lily/context-scheme.cc index 4ff48155e3..d4289d7bcc 100644 --- a/lily/context-scheme.cc +++ b/lily/context-scheme.cc @@ -13,9 +13,9 @@ LY_DEFINE (ly_context_id, "ly:context-id", 1, 0, 0, (SCM context), - "Return the id string of @var{context}, " - "i.e. for @code{\\context Voice = one .. } " - "return the string @code{one}.") + "Return the ID string of @var{context}," + " i.e., for @code{\\context Voice = one @dots{}}" + " return the string @code{one}.") { Context *tr = unsmob_context (context); @@ -26,9 +26,9 @@ LY_DEFINE (ly_context_id, "ly:context-id", LY_DEFINE (ly_context_name, "ly:context-name", 1, 0, 0, (SCM context), - "Return the name of @var{context}, " - "i.e. for @code{\\context Voice = one .. } " - "return the symbol @code{Voice}.") + "Return the name of @var{context}," + " i.e., for @code{\\context Voice = one @dots{}}" + " return the symbol @code{Voice}.") { LY_ASSERT_SMOB (Context, context, 1); @@ -39,8 +39,8 @@ LY_DEFINE (ly_context_name, "ly:context-name", LY_DEFINE (ly_context_grob_definition, "ly:context-grob-definition", 2, 0, 0, (SCM context, SCM name), - "Return the definition of @var{name} (a symbol) within @var{context} " - "as an alist") + "Return the definition of @var{name} (a symbol) within" + " @var{context} as an alist.") { Context *tr = unsmob_context (context); @@ -52,10 +52,10 @@ LY_DEFINE (ly_context_grob_definition, "ly:context-grob-definition", LY_DEFINE (ly_context_pushpop_property, "ly:context-pushpop-property", 3, 1, 0, (SCM context, SCM grob, SCM eltprop, SCM val), - "Do a single @code{\\override} or @code{\\revert} operation " - "in @var{context}. The grob definition @code{grob} is extended " - "with @code{eltprop} (if @var{val} is specified) " - "or reverted (if unspecified).") + "Do a single @code{\\override} or @code{\\revert} operation" + " in @var{context}. The grob definition @var{grob} is extended" + " with @var{eltprop} (if @var{val} is specified) or reverted" + " (if unspecified).") { Context *tg = unsmob_context (context); @@ -70,7 +70,7 @@ LY_DEFINE (ly_context_pushpop_property, "ly:context-pushpop-property", LY_DEFINE (ly_context_property, "ly:context-property", 2, 0, 0, (SCM c, SCM name), - "Return the value of @var{name} from context @var{c}") + "Return the value of @var{name} from context @var{c}.") { LY_ASSERT_SMOB (Context, c, 1); LY_ASSERT_TYPE (ly_is_symbol, name, 2); @@ -81,8 +81,8 @@ LY_DEFINE (ly_context_property, "ly:context-property", LY_DEFINE (ly_context_set_property_x, "ly:context-set-property!", 3, 0, 0, (SCM context, SCM name, SCM val), - "Set value of property @var{name} in context @var{context} " - "to @var{val}.") + "Set value of property @var{name} in context @var{context}" + " to @var{val}.") { LY_ASSERT_SMOB (Context, context, 1); LY_ASSERT_TYPE (ly_is_symbol, name, 2); @@ -96,8 +96,8 @@ LY_DEFINE (ly_context_set_property_x, "ly:context-set-property!", LY_DEFINE (ly_context_property_where_defined, "ly:context-property-where-defined", 2, 0, 0, (SCM context, SCM name), - "Return the context above @var{context} " - "where @var{name} is defined.") + "Return the context above @var{context}" + " where @var{name} is defined.") { LY_ASSERT_SMOB (Context, context, 1); LY_ASSERT_TYPE (ly_is_symbol, name, 2); @@ -141,8 +141,8 @@ LY_DEFINE (ly_context_parent, "ly:context-parent", /* FIXME: todo: should support translator IDs, and creation? */ LY_DEFINE (ly_context_find, "ly:context-find", 2, 0, 0, (SCM context, SCM name), - "Find a parent of @var{context} that has name or alias @var{name}. " - "Return @code{#f} if not found.") + "Find a parent of @var{context} that has name or alias @var{name}." + " Return @code{#f} if not found.") { LY_ASSERT_SMOB (Context, context, 1); LY_ASSERT_TYPE (ly_is_symbol, name, 2); @@ -160,7 +160,7 @@ LY_DEFINE (ly_context_find, "ly:context-find", LY_DEFINE (ly_context_now, "ly:context-now", 1, 0, 0, (SCM context), - "Return now-moment of context CONTEXT") + "Return @code{now-moment} of context @var{context}.") { LY_ASSERT_SMOB (Context, context, 1); Context *ctx = unsmob_context (context); @@ -169,7 +169,7 @@ LY_DEFINE (ly_context_now, "ly:context-now", LY_DEFINE (ly_context_event_source, "ly:context-event-source", 1, 0, 0, (SCM context), - "Return event-source of context CONTEXT") + "Return @code{event-source} of context @var{context}.") { LY_ASSERT_SMOB (Context, context, 1); Context *ctx = unsmob_context (context); @@ -178,7 +178,7 @@ LY_DEFINE (ly_context_event_source, "ly:context-event-source", LY_DEFINE (ly_context_events_below, "ly:context-events-below", 1, 0, 0, (SCM context), - "Return a stream-distributor that distributes all events\n" + "Return a @code{stream-distributor} that distributes all events" " from @var{context} and all its subcontexts.") { LY_ASSERT_SMOB (Context, context, 1); diff --git a/lily/dimensions-scheme.cc b/lily/dimensions-scheme.cc index 4025b4078a..c64b901f8f 100644 --- a/lily/dimensions-scheme.cc +++ b/lily/dimensions-scheme.cc @@ -12,7 +12,7 @@ LY_DEFINE (ly_pt, "ly:pt", 1, 0, 0, (SCM num), - "@var{num} printer points") + "@var{num} printer points.") { LY_ASSERT_TYPE (scm_is_number, num, 1); return scm_from_double (point_constant @@ -21,7 +21,7 @@ LY_DEFINE (ly_pt, "ly:pt", LY_DEFINE (ly_cm, "ly:cm", 1, 0, 0, (SCM num), - "@var{num} cm") + "@var{num} cm.") { LY_ASSERT_TYPE (scm_is_number, num, 1); return scm_from_double (cm_constant @@ -30,7 +30,7 @@ LY_DEFINE (ly_cm, "ly:cm", LY_DEFINE (ly_inch, "ly:inch", 1, 0, 0, (SCM num), - "@var{num} inches") + "@var{num} inches.") { LY_ASSERT_TYPE (scm_is_number, num, 1); return scm_from_double (inch_constant @@ -39,7 +39,7 @@ LY_DEFINE (ly_inch, "ly:inch", LY_DEFINE (ly_mm, "ly:mm", 1, 0, 0, (SCM num), - "@var{num} mm") + "@var{num} mm.") { LY_ASSERT_TYPE (scm_is_number, num, 1); return scm_from_double (mm_constant @@ -48,7 +48,7 @@ LY_DEFINE (ly_mm, "ly:mm", LY_DEFINE (ly_bp, "ly:bp", 1, 0, 0, (SCM num), - "@var{num} bigpoints (1/72th inch)") + "@var{num} bigpoints (1/72th inch).") { LY_ASSERT_TYPE (scm_is_number, num, 1); return scm_from_double (bigpoint_constant diff --git a/lily/dispatcher-scheme.cc b/lily/dispatcher-scheme.cc index e467064bf4..5f0acb229d 100644 --- a/lily/dispatcher-scheme.cc +++ b/lily/dispatcher-scheme.cc @@ -10,14 +10,14 @@ LY_DEFINE (ly_make_dispatcher, "ly:make-dispatcher", 0, 0, 0, (), - "Returns a newly created dispatcher.") + "Return a newly created dispatcher.") { return (new Dispatcher ())->unprotect (); } LY_DEFINE (ly_connect_dispatchers, "ly:connect-dispatchers", 2, 0, 0, (SCM to, SCM from), - "Makes the dispatcher @var{to} listen to events from @var{from}." ) + "Make the dispatcher @var{to} listen to events from @var{from}.") { Dispatcher *t = unsmob_dispatcher (to); Dispatcher *f = unsmob_dispatcher (from); @@ -32,8 +32,9 @@ LY_DEFINE (ly_connect_dispatchers, "ly:connect-dispatchers", LY_DEFINE (ly_add_listener, "ly:add-listener", 2, 0, 1, (SCM list, SCM disp, SCM cl), - "Adds the listener @var{list} to the dispatcher @var{disp}.\n" - " Whenever @var{disp} hears an event of class @var{cl}, it will be forwarded to @var{list}.\n" ) + "Add the listener @var{list} to the dispatcher @var{disp}." + " Whenever @var{disp} hears an event of class @var{cl}," + " it is forwarded to @var{list}.") { Listener *l = unsmob_listener (list); Dispatcher *d = unsmob_dispatcher (disp); @@ -53,8 +54,7 @@ LY_DEFINE (ly_add_listener, "ly:add-listener", LY_DEFINE (ly_broadcast, "ly:broadcast", 2, 0, 0, (SCM disp, SCM ev), - "Sends the stream event @var{ev} to the dispatcher\n" - "@var{disp}.") + "Send the stream event @var{ev} to the dispatcher @var{disp}.") { Dispatcher *d = unsmob_dispatcher (disp); Stream_event *e = unsmob_stream_event (ev); diff --git a/lily/duration-scheme.cc b/lily/duration-scheme.cc index f62bba582a..d371475581 100644 --- a/lily/duration-scheme.cc +++ b/lily/duration-scheme.cc @@ -41,17 +41,17 @@ LY_DEFINE (ly_duration_less_p, "ly:durationduration_log ()); @@ -96,7 +96,7 @@ LY_DEFINE (ly_duration_log, "ly:duration-log", LY_DEFINE (ly_duration_dot_count, "ly:duration-dot-count", 1, 0, 0, (SCM dur), - "Extract the dot count from @var{dur}") + "Extract the dot count from @var{dur}.") { LY_ASSERT_SMOB (Duration, dur, 1); return scm_from_int (unsmob_duration (dur)->dot_count ()); @@ -113,7 +113,7 @@ LY_DEFINE (ly_intlog2, "ly:intlog2", LY_DEFINE (ly_duration_length, "ly:duration-length", 1, 0, 0, (SCM dur), - "The length of the duration as a Moment.") + "The length of the duration as a @code{moment}.") { LY_ASSERT_SMOB (Duration, dur, 1); return Moment (unsmob_duration (dur)->get_length ()).smobbed_copy (); @@ -121,7 +121,7 @@ LY_DEFINE (ly_duration_length, "ly:duration-length", LY_DEFINE (ly_duration_2_string, "ly:duration->string", 1, 0, 0, (SCM dur), - "Convert @var{dur} to string.") + "Convert @var{dur} to a string.") { LY_ASSERT_SMOB (Duration, dur, 1); return ly_string2scm (unsmob_duration (dur)->to_string ()); @@ -129,7 +129,8 @@ LY_DEFINE (ly_duration_2_string, "ly:duration->string", LY_DEFINE (ly_duration_factor, "ly:duration-factor", 1, 0, 0, (SCM dur), - "Extract the compression factor from @var{dur}. Return as a pair.") + "Extract the compression factor from @var{dur}." + " Return it as a pair.") { LY_ASSERT_SMOB (Duration, dur, 1); Rational r = unsmob_duration (dur)->factor (); diff --git a/lily/engraver.cc b/lily/engraver.cc index 84780dd0a2..70a8bf512f 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -90,11 +90,11 @@ Engraver::Engraver () static SCM creation_callback = SCM_EOL; LY_DEFINE (ly_set_grob_creation_callback, "ly:set-grob-creation-callback", 1, 0, 0, (SCM cb), - "Specify a procedure that will be called every time a new grob " - "is created. The callback will receive as arguments the grob " - "that was created, the name of the C++ source file that caused " - "the grob to be created and the corresponding line number in the " - "C++ source file.") + "Specify a procedure that will be called every time a new grob" + " is created. The callback will receive as arguments the grob" + " that was created, the name of the C++ source file that caused" + " the grob to be created, and the corresponding line number in" + " the C++ source file.") { LY_ASSERT_TYPE (ly_is_procedure, cb, 1); diff --git a/lily/fall-engraver.cc b/lily/fall-engraver.cc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/file-name-map.cc b/lily/file-name-map.cc index 3f6939c1ff..61bad60423 100644 --- a/lily/file-name-map.cc +++ b/lily/file-name-map.cc @@ -24,7 +24,7 @@ map_file_name (string s) LY_DEFINE (ly_add_file_name_alist, "ly:add-file-name-alist", 1, 0, 0, (SCM alist), - "Add mappings for error messages from specified alist") + "Add mappings for error messages from @var{alist}.") { for (SCM s = alist; scm_is_pair (s); s = scm_cdr (s)) { diff --git a/lily/folded-repeat-iterator.cc b/lily/folded-repeat-iterator.cc deleted file mode 100644 index f22e8b879b..0000000000 --- a/lily/folded-repeat-iterator.cc +++ /dev/null @@ -1,128 +0,0 @@ -/* - folded-repeat-iterator.cc -- implement Folded_repeat_iterator - - source file of the GNU LilyPond music typesetter - - (c) 1999--2007 Han-Wen Nienhuys -*/ - -#include "folded-repeat-iterator.hh" - -#include "context.hh" -#include "input.hh" -#include "international.hh" -#include "repeated-music.hh" -#include "simultaneous-music-iterator.hh" - -Folded_repeat_iterator::Folded_repeat_iterator () -{ - main_iter_ = 0; - alternative_iter_ = 0; -} - -bool -Folded_repeat_iterator::ok () const -{ - return main_iter_ || alternative_iter_; -} -void -Folded_repeat_iterator::do_quit () -{ - if (main_iter_)main_iter_->quit (); - if (alternative_iter_)alternative_iter_->quit (); -} - -Moment -Folded_repeat_iterator::pending_moment () const -{ - if (main_iter_) - return main_iter_->pending_moment (); - else - return main_length_mom_ + alternative_iter_->pending_moment (); -} - -void -Folded_repeat_iterator::construct_children () -{ - Music *mus = get_music (); - main_iter_ = unsmob_iterator (get_iterator (Repeated_music::body (mus))); - if (!main_iter_->ok ()) - { - leave_body (); - enter_alternative (); - } -} - -void -Folded_repeat_iterator::process (Moment m) -{ - if (main_iter_) - { - main_iter_->process (m); - if (!main_iter_->ok ()) - leave_body (); - } - - if (!main_iter_ && !alternative_iter_) - enter_alternative (); - - if (alternative_iter_) - { - alternative_iter_->process (m - main_length_mom_); - if (!alternative_iter_->ok ()) - { - alternative_iter_->quit (); - alternative_iter_ = 0; - } - } -} - -void -Folded_repeat_iterator::leave_body () -{ - Music *mus = get_music (); - - main_iter_->quit (); - main_iter_ = 0; - main_length_mom_ += Repeated_music::body (mus)->get_length (); -} - -void -Folded_repeat_iterator::enter_alternative () -{ - Music *mus = get_music (); - if (scm_is_pair (Repeated_music::alternatives (mus))) - { - /* - ugh. - */ - Simultaneous_music_iterator *s = new Simultaneous_music_iterator; - s->create_separate_contexts_ = true; - s->init_context (mus, get_outlet ()); - - alternative_iter_ = s; - alternative_iter_->construct_children (); - - s->unprotect (); - } -} - -void -Folded_repeat_iterator::derived_mark () const -{ - if (main_iter_) - scm_gc_mark (main_iter_->self_scm ()); - if (alternative_iter_) - scm_gc_mark (alternative_iter_->self_scm ()); -} - -void -Folded_repeat_iterator::derived_substitute (Context *f, Context *t) -{ - if (main_iter_) - main_iter_->substitute_outlet (f, t); - if (alternative_iter_) - alternative_iter_->substitute_outlet (f, t); -} - -IMPLEMENT_CTOR_CALLBACK (Folded_repeat_iterator); diff --git a/lily/font-config-scheme.cc b/lily/font-config-scheme.cc index 6ccc616793..79f074cef8 100644 --- a/lily/font-config-scheme.cc +++ b/lily/font-config-scheme.cc @@ -87,7 +87,7 @@ display_list (FcConfig *fcc) LY_DEFINE (ly_font_config_get_font_file, "ly:font-config-get-font-file", 1, 0, 0, (SCM name), - "Get the file for font @var{name}") + "Get the file for font @var{name}.") { LY_ASSERT_TYPE (scm_is_string, name, 1); diff --git a/lily/font-metric-scheme.cc b/lily/font-metric-scheme.cc index aa49a29e23..88cfc58e2b 100644 --- a/lily/font-metric-scheme.cc +++ b/lily/font-metric-scheme.cc @@ -15,9 +15,9 @@ LY_DEFINE (ly_font_get_glyph, "ly:font-get-glyph", 2, 0, 0, (SCM font, SCM name), - "Return a Stencil from @var{font} for the glyph named @var{name}. " - "@var{font} must be available as an AFM file. If the glyph " - "is not available, return @code{#f}.") + "Return a stencil from @var{font} for the glyph named @var{name}." + " @var{font} must be available as an AFM file. If the glyph" + " is not available, return @code{#f}.") { Font_metric *fm = unsmob_metrics (font); LY_ASSERT_SMOB (Font_metric, font, 1); @@ -32,8 +32,8 @@ LY_DEFINE (ly_font_get_glyph, "ly:font-get-glyph", LY_DEFINE (ly_get_glyph, "ly:get-glyph", 2, 0, 0, (SCM font, SCM index), - "Retrieve a Stencil for the glyph numbered @var{index} " - "in @var{font}.") + "Retrieve a stencil for the glyph numbered @var{index}" + " in @var{font}.") { Font_metric *fm = unsmob_metrics (font); LY_ASSERT_SMOB (Font_metric, font, 1); @@ -57,7 +57,7 @@ LY_DEFINE (ly_font_glyph_name_to_index, "ly:font-glyph-name-to-index", LY_DEFINE (ly_font_index_to_charcode, "ly:font-index-to-charcode", 2, 0, 0, (SCM font, SCM index), - "Return the character code for @var{index} @var{font}.") + "Return the character code for @var{index} in @var{font}.") { Font_metric *fm = unsmob_metrics (font); LY_ASSERT_SMOB (Font_metric, font, 1); @@ -81,9 +81,9 @@ LY_DEFINE (ly_font_glyph_name_to_charcode, "ly:font-glyph-name-to-charcode", LY_DEFINE (ly_text_dimension, "ly:text-dimension", 2, 0, 0, (SCM font, SCM text), - "Given the font metric in @var{font} and the string @var{text}, " - "compute the extents of that text in that font. " - "The return value is a pair of number-pairs.") + "Given the font metric in @var{font} and the string @var{text}," + " compute the extents of that text in that font. The return" + " value is a pair of number-pairs.") { Box b; Modified_font_metric *fm = dynamic_cast @@ -103,8 +103,8 @@ LY_DEFINE (ly_text_dimension, "ly:text-dimension", LY_DEFINE (ly_font_file_name, "ly:font-file-name", 1, 0, 0, (SCM font), - "Given the font metric @var{font}, " - "return the corresponding file name.") + "Given the font metric @var{font}," + " return the corresponding file name.") { LY_ASSERT_SMOB (Font_metric, font, 1); @@ -117,8 +117,8 @@ LY_DEFINE (ly_font_file_name, "ly:font-file-name", LY_DEFINE (ly_font_name, "ly:font-name", 1, 0, 0, (SCM font), - "Given the font metric @var{font}, " - "return the corresponding name.") + "Given the font metric @var{font}," + " return the corresponding name.") { LY_ASSERT_SMOB (Font_metric, font, 1); Font_metric *fm = unsmob_metrics (font); @@ -128,8 +128,8 @@ LY_DEFINE (ly_font_name, "ly:font-name", LY_DEFINE (ly_font_magnification, "ly:font-magnification", 1, 0, 0, (SCM font), - "Given the font metric @var{font}, return the " - "magnification, relative to the current output-scale.") + "Given the font metric @var{font}, return the" + " magnification, relative to the current output-scale.") { LY_ASSERT_SMOB (Font_metric, font, 1); @@ -139,8 +139,8 @@ LY_DEFINE (ly_font_magnification, "ly:font-magnification", 1, 0, 0, LY_DEFINE (ly_font_design_size, "ly:font-design-size", 1, 0, 0, (SCM font), - "Given the font metric @var{font}, return the " - "design size, relative to the current output-scale.") + "Given the font metric @var{font}, return the" + " design size, relative to the current output-scale.") { LY_ASSERT_SMOB (Font_metric, font, 1); diff --git a/lily/function-documentation.cc b/lily/function-documentation.cc index c5b1387726..909eb1030b 100644 --- a/lily/function-documentation.cc +++ b/lily/function-documentation.cc @@ -50,7 +50,7 @@ ly_add_function_documentation (SCM func, LY_DEFINE (ly_get_all_function_documentation, "ly:get-all-function-documentation", 0, 0, 0, (), - "Get a hash table with all lilypond Scheme extension functions.") + "Get a hash table with all LilyPond Scheme extension functions.") { return doc_hash_table; } diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index 48ee4503b1..7d4b5c1c30 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -29,7 +29,8 @@ using namespace std; LY_DEFINE (ly_start_environment, "ly:start-environment", 0, 0, 0, (), - "Return the environment, a list of strings, that was in effect at program start") + "Return the environment (a list of strings) that was in" + " effect at program start.") { SCM l = SCM_EOL; SCM *tail = &l; @@ -47,8 +48,8 @@ LY_DEFINE (ly_start_environment, "ly:start-environment", LY_DEFINE (ly_find_file, "ly:find-file", 1, 0, 0, (SCM name), - "Return the absolute file name of @var{name}, " - "or @code{#f} if not found.") + "Return the absolute file name of @var{name}," + " or @code{#f} if not found.") { LY_ASSERT_TYPE (scm_is_string, name, 1); @@ -66,8 +67,8 @@ LY_DEFINE (ly_find_file, "ly:find-file", */ LY_DEFINE (ly_gulp_file, "ly:gulp-file", 1, 1, 0, (SCM name, SCM size), - "Read the file @var{name}, and return its contents in a string. " - "The file is looked up using the search path. ") + "Read the file @var{name}, and return its contents in a string." + " The file is looked up using the search path.") { LY_ASSERT_TYPE (scm_is_string, name, 1); int sz = INT_MAX; @@ -83,8 +84,8 @@ LY_DEFINE (ly_gulp_file, "ly:gulp-file", LY_DEFINE (ly_error, "ly:error", 1, 0, 1, (SCM str, SCM rest), - "Scheme callable function to issue the error @code{msg}. " - "The error is formatted with @code{format} and @code{rest}.") + "A Scheme callable function to issue the error @var{str}." + " The error is formatted with @code{format} and @var{rest}.") { LY_ASSERT_TYPE (scm_is_string, str, 1); str = scm_simple_format (SCM_BOOL_F, str, rest); @@ -94,8 +95,8 @@ LY_DEFINE (ly_error, "ly:error", LY_DEFINE (ly_message, "ly:message", 1, 0, 1, (SCM str, SCM rest), - "Scheme callable function to issue the message @code{msg}. " - "The message is formatted with @code{format} and @code{rest}.") + "A Scheme callable function to issue the message @var{str}." + " The message is formatted with @code{format} and @var{rest}.") { LY_ASSERT_TYPE (scm_is_string, str, 1); str = scm_simple_format (SCM_BOOL_F, str, rest); @@ -105,8 +106,8 @@ LY_DEFINE (ly_message, "ly:message", LY_DEFINE (ly_progress, "ly:progress", 1, 0, 1, (SCM str, SCM rest), - "Scheme callable function to print progress @code{str}. " - "The message is formatted with @code{format} and @code{rest}.") + "A Scheme callable function to print progress @var{str}." + " The message is formatted with @code{format} and @var{rest}.") { LY_ASSERT_TYPE (scm_is_string, str, 1); str = scm_simple_format (SCM_BOOL_F, str, rest); @@ -116,8 +117,9 @@ LY_DEFINE (ly_progress, "ly:progress", LY_DEFINE (ly_programming_error, "ly:programming-error", 1, 0, 1, (SCM str, SCM rest), - "Scheme callable function to issue the warning @code{msg}. " - "The message is formatted with @code{format} and @code{rest}.") + "A Scheme callable function to issue the internal warning" + " @var{str}. The message is formatted with @code{format}" + " and @var{rest}.") { LY_ASSERT_TYPE (scm_is_string, str, 1); str = scm_simple_format (SCM_BOOL_F, str, rest); @@ -127,8 +129,8 @@ LY_DEFINE (ly_programming_error, "ly:programming-error", LY_DEFINE (ly_warning, "ly:warning", 1, 0, 1, (SCM str, SCM rest), - "Scheme callable function to issue the warning @code{str}. " - "The message is formatted with @code{format} and @code{rest}.") + "A Scheme callable function to issue the warning @code{str}." + " The message is formatted with @code{format} and @code{rest}.") { LY_ASSERT_TYPE (scm_is_string, str, 1); str = scm_simple_format (SCM_BOOL_F, str, rest); @@ -138,9 +140,9 @@ LY_DEFINE (ly_warning, "ly:warning", LY_DEFINE (ly_dir_p, "ly:dir?", 1, 0, 0, (SCM s), - "type predicate. A direction is @code{-1}, @code{0} or " - "@code{1}, where @code{-1} represents " - "left or down and @code{1} represents right or up.") + "A type predicate. The direction@tie{}@code{s} is @code{-1}," + " @code{0} or@tie{}@code{1}, where @code{-1} represents" + " left or down and @code{1} represents right or up.") { if (scm_is_number (s)) { @@ -153,8 +155,8 @@ LY_DEFINE (ly_dir_p, "ly:dir?", LY_DEFINE (ly_assoc_get, "ly:assoc-get", 2, 1, 0, (SCM key, SCM alist, SCM default_value), - "Return value if KEY in ALIST, else DEFAULT-VALUE " - "(or #f if not specified).") + "Return value if @var{key} in @var{alist}, else @code{default-value}" + " (or @code{#f} if not specified).") { LY_ASSERT_TYPE(ly_cheap_is_list, alist, 2); @@ -170,7 +172,8 @@ LY_DEFINE (ly_assoc_get, "ly:assoc-get", LY_DEFINE (ly_string_substitute, "ly:string-substitute", 3, 0, 0, (SCM a, SCM b, SCM s), - "Replace string @var{a} by string @var{b} in string @var{s}.") + "Replace string@tie{}@var{a} by string@tie{}@var{b} in" + " string@tie{}@var{s}.") { LY_ASSERT_TYPE (scm_is_string, s, 1); LY_ASSERT_TYPE (scm_is_string, b, 2); @@ -210,7 +213,8 @@ LY_DEFINE (ly_number_2_string, "ly:number->string", } LY_DEFINE (ly_version, "ly:version", 0, 0, 0, (), - "Return the current lilypond version as a list, e.g. @code{(1 3 127 uu1)}. ") + "Return the current lilypond version as a list, e.g.," + " @code{(1 3 127 uu1)}.") { char const *vs = "\'(" MAJOR_VERSION " " MINOR_VERSION " " PATCH_LEVEL " " MY_PATCH_LEVEL ")"; @@ -224,8 +228,8 @@ LY_DEFINE (ly_unit, "ly:unit", 0, 0, 0, (), } LY_DEFINE (ly_dimension_p, "ly:dimension?", 1, 0, 0, (SCM d), - "Return @var{d} is a number. Used to distinguish length " - "variables from normal numbers.") + "Return @var{d} as a number. Used to distinguish length" + " variables from normal numbers.") { return scm_number_p (d); } @@ -242,7 +246,7 @@ LY_DEFINE (ly_protects, "ly:protects", LY_DEFINE (ly_gettext, "ly:gettext", 1, 0, 0, (SCM string), - "Gettext wrapper.") + "A Scheme wrapper function for @code{gettext}.") { LY_ASSERT_TYPE (scm_is_string, string, 1); return ly_string2scm (_ (scm_i_string_chars (string))); @@ -250,8 +254,8 @@ LY_DEFINE (ly_gettext, "ly:gettext", LY_DEFINE (ly_output_formats, "ly:output-formats", 0, 0, 0, (), - "Formats passed to --format as a list of strings, " - "used for the output.") + "Formats passed to @option{--format} as a list of strings," + " used for the output.") { vector output_formats = string_split (output_format_global, ','); @@ -265,7 +269,7 @@ LY_DEFINE (ly_output_formats, "ly:output-formats", LY_DEFINE (ly_wide_char_2_utf_8, "ly:wide-char->utf-8", 1, 0, 0, (SCM wc), - "Encode the Unicode codepoint @var{wc}, an integer, as UTF-8") + "Encode the Unicode codepoint @var{wc}, an integer, as UTF-8.") { char buf[5]; @@ -307,9 +311,9 @@ LY_DEFINE (ly_effective_prefix, "ly:effective-prefix", LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get", 2, 1, 0, (SCM key, SCM achain, SCM dfault), - "Return value for @var{key} from a list of alists @var{achain}. " - "If no if no entry is found, return DFAULT, " - "or #f if no DFAULT not specified.") + "Return value for @var{key} from a list of alists @var{achain}." + " If no entry is found, return @var{dfault} or @code{#f} if no" + " @var{dfault} is specified.") { if (scm_is_pair (achain)) { @@ -325,7 +329,7 @@ LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get", LY_DEFINE (ly_stderr_redirect, "ly:stderr-redirect", 1, 1, 0, (SCM file_name, SCM mode), - "Redirect stderr to FILE-NAME, opened with MODE.") + "Redirect stderr to @var{file-name}, opened with @var{mode}.") { LY_ASSERT_TYPE (scm_is_string, file_name, 1); @@ -349,7 +353,7 @@ accumulate_symbol (void *closure, SCM key, SCM val, SCM result) LY_DEFINE (ly_hash_table_keys, "ly:hash-table-keys", 1,0,0, (SCM tab), - "return a list of keys in @var{tab}") + "Return a list of keys in @var{tab}.") { return scm_internal_hash_fold ((Hash_closure_function) & accumulate_symbol, NULL, SCM_EOL, tab); @@ -357,7 +361,7 @@ LY_DEFINE (ly_hash_table_keys, "ly:hash-table-keys", LY_DEFINE (ly_camel_case_2_lisp_identifier, "ly:camel-case->lisp-identifier", 1, 0, 0, (SCM name_sym), - "Convert FooBar_Bla to foo-bar-bla style symbol.") + "Convert @code{FooBar_Bla} to @code{foo-bar-bla} style symbol.") { LY_ASSERT_TYPE (ly_is_symbol, name_sym, 1); @@ -373,7 +377,7 @@ LY_DEFINE (ly_camel_case_2_lisp_identifier, "ly:camel-case->lisp-identifier", LY_DEFINE (ly_expand_environment, "ly:expand-environment", 1, 0, 0, (SCM str), - "Expand $VAR and $@{VAR@} in @var{str}.") + "Expand @code{$VAR} and @code{$@{VAR@}} in @var{str}.") { LY_ASSERT_TYPE (scm_is_string, str, 1); @@ -383,7 +387,7 @@ LY_DEFINE (ly_expand_environment, "ly:expand-environment", LY_DEFINE (ly_truncate_list_x, "ly:truncate-list!", 2, 0, 0, (SCM lst, SCM i), - "Take at most the first @var{i} of list @var{lst}") + "Take at most the first @var{i} of list @var{lst}.") { LY_ASSERT_TYPE (scm_is_integer, i, 1); @@ -438,7 +442,7 @@ format_single_argument (SCM arg, int precision) LY_DEFINE (ly_format, "ly:format", 1, 0, 1, (SCM str, SCM rest), - "LilyPond specific format, supporting ~a ~[0-9]f.") + "LilyPond specific format, supporting @code{~a} and @code{~[0-9]f}.") { LY_ASSERT_TYPE (scm_is_string, str, 1); diff --git a/lily/global-context-scheme.cc b/lily/global-context-scheme.cc index 18d1d80712..8fbcc99b46 100644 --- a/lily/global-context-scheme.cc +++ b/lily/global-context-scheme.cc @@ -19,8 +19,9 @@ LY_DEFINE (ly_format_output, "ly:format-output", 1, 0, 0, (SCM context), - "Given a Global context in its final state, " - "process it and return the @code{Music_output} object in its final state.") + "Given a global context in its final state," + " process it and return the @code{Music_output} object" + " in its final state.") { Global_context *g = dynamic_cast (unsmob_context (context)); @@ -37,8 +38,8 @@ LY_DEFINE (ly_format_output, "ly:format-output", LY_DEFINE (ly_make_global_translator, "ly:make-global-translator", 1, 0, 0, (SCM global), - "Create a translator group and connect it to the global context\n" - "@var{global}. The translator group is returned.") + "Create a translator group and connect it to the global context" + " @var{global}. The translator group is returned.") { Global_context *g = dynamic_cast (unsmob_context (global)); LY_ASSERT_TYPE (unsmob_global_context, global, 1) @@ -52,10 +53,8 @@ LY_DEFINE (ly_make_global_translator, "ly:make-global-translator", LY_DEFINE (ly_make_global_context, "ly:make-global-context", 1, 0, 0, (SCM output_def), - "Set up a global interpretation context, using the output\n" - "block @var{output_def}.\n" - "The context is returned.\n" - ) + "Set up a global interpretation context, using the output" + " block @var{output_def}. The context is returned.\n") { LY_ASSERT_SMOB (Output_def, output_def, 1); Output_def *odef = unsmob_output_def (output_def); @@ -73,9 +72,8 @@ LY_DEFINE (ly_make_global_context, "ly:make-global-context", LY_DEFINE (ly_interpret_music_expression, "ly:interpret-music-expression", 2, 0, 0, (SCM mus, SCM ctx), - "Interpret the music expression @var{mus} in the\n" - "global context @var{ctx}. The context is returned in its\n" - "final state.\n") + "Interpret the music expression @var{mus} in the global context" + " @var{ctx}. The context is returned in its final state.") { LY_ASSERT_SMOB (Music, mus, 1); LY_ASSERT_TYPE (unsmob_global_context, ctx, 2); @@ -122,13 +120,13 @@ LY_DEFINE (ly_interpret_music_expression, "ly:interpret-music-expression", LY_DEFINE (ly_run_translator, "ly:run-translator", 2, 1, 0, (SCM mus, SCM output_def), - "Process @var{mus} according to @var{output_def}. \n" - "An interpretation context is set up,\n" - "and @var{mus} is interpreted with it. \n" - "The context is returned in its final state.\n" - "\n\n" - "Optionally, this routine takes an Object-key to\n" - "to uniquely identify the Score block containing it.\n") + "Process @var{mus} according to @var{output-def}. An" + " interpretation context is set up, and @var{mus} is" + " interpreted with it. The context is returned in its" + " final state.\n" + "\n" + "Optionally, this routine takes an object-key to" + " to uniquely identify the score block containing it.") { LY_ASSERT_SMOB (Music, mus, 1); LY_ASSERT_SMOB (Output_def, output_def, 2); diff --git a/lily/grob-array-scheme.cc b/lily/grob-array-scheme.cc index e01468f9f3..49fac4c21a 100644 --- a/lily/grob-array-scheme.cc +++ b/lily/grob-array-scheme.cc @@ -13,7 +13,7 @@ LY_DEFINE (ly_grob_array_length, "ly:grob-array-length", 1, 0, 0, (SCM grob_arr), - "Return the grob_array length.") + "Return the length of @var{grob-arr}.") { LY_ASSERT_SMOB (Grob_array, grob_arr, 1); @@ -25,7 +25,7 @@ LY_DEFINE (ly_grob_array_length, "ly:grob-array-length", LY_DEFINE (ly_grob_array_ref, "ly:grob-array-ref", 2, 0, 0, (SCM grob_arr, SCM index), - "Retrieve the @code{index} element of @code{grob-arr}.") + "Retrieve the @var{index}th element of @var{grob-arr}.") { Grob_array *me = unsmob_grob_array (grob_arr); LY_ASSERT_SMOB (Grob_array, grob_arr, 1); diff --git a/lily/grob-pq-engraver.cc b/lily/grob-pq-engraver.cc index 563e7218c0..7265d46347 100644 --- a/lily/grob-pq-engraver.cc +++ b/lily/grob-pq-engraver.cc @@ -49,7 +49,8 @@ Grob_pq_engraver::initialize () LY_DEFINE (ly_grob_pq_less_p, "ly:grob-pq -*/ - -#ifndef FOLDED_REPEAT_ITERATOR_HH -#define FOLDED_REPEAT_ITERATOR_HH - -#include "music-iterator.hh" - -/** - Iterate through a repeated section: first do the body, then - all alternatives in parallel. -*/ -class Folded_repeat_iterator : public Music_iterator -{ -public: - DECLARE_SCHEME_CALLBACK (constructor, ()); - DECLARE_CLASSNAME(Folded_repeat_iterator); - - Folded_repeat_iterator (Folded_repeat_iterator const &src); - Folded_repeat_iterator (); - virtual void derived_mark () const; - virtual void derived_substitute (Context *f, Context *t); - - virtual void construct_children (); - virtual Moment pending_moment () const; - virtual void do_quit (); - virtual bool ok () const; - -protected: - void enter_alternative (); - void leave_body (); - - virtual void process (Moment); - -private: - Music_iterator *main_iter_; - Music_iterator *alternative_iter_; - - Moment main_length_mom_; -}; -#endif /* FOLDED_REPEAT_ITERATOR_HH */ - diff --git a/lily/include/grob-pitch-tuple.hh b/lily/include/grob-pitch-tuple.hh deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 4754d498da..8de07c990b 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -55,7 +55,6 @@ class Event; class Event_chord; class Event_chord_iterator; class Event_iterator; -class Folded_repeat_iterator; class Font_metric; class Font_size_engraver; class Global_context; diff --git a/lily/input-scheme.cc b/lily/input-scheme.cc index f6f2a3f449..922112b087 100644 --- a/lily/input-scheme.cc +++ b/lily/input-scheme.cc @@ -19,8 +19,9 @@ LY_DEFINE (ly_input_location_p, "ly:input-location?", 1, 0, 0, } LY_DEFINE (ly_input_message, "ly:input-message", 2, 0, 1, (SCM sip, SCM msg, SCM rest), - "Print @var{msg} as a GNU compliant error message, pointing to the " - "location in @var{sip}. @var{msg} is interpreted similar to @code{format}'s argument\n") + "Print @var{msg} as a GNU compliant error message, pointing" + " to the location in @var{sip}. @var{msg} is interpreted" + " similar to @code{format}'s argument, using @var{rest}.") { Input *ip = unsmob_input (sip); @@ -39,7 +40,8 @@ LY_DEFINE (ly_input_message, "ly:input-message", 2, 0, 1, (SCM sip, SCM msg, SCM LY_DEFINE (ly_input_file_line_char_column, "ly:input-file-line-char-column", 1, 0, 0, (SCM sip), - "Return input location in @var{sip} as (file-name line char column).") + "Return input location in @var{sip} as" + " @code{(file-name line char column)}.") { LY_ASSERT_TYPE (unsmob_input, sip, 1); Input *ip = unsmob_input (sip); @@ -57,8 +59,8 @@ LY_DEFINE (ly_input_file_line_char_column, LY_DEFINE (ly_input_both_locations, "ly:input-both-locations", 1, 0, 0, (SCM sip), - "Return input location in @var{sip} as " - "(file-name first-line first-column last-line last-column).") + "Return input location in @var{sip} as" + " @code{(file-name first-line first-column last-line last-column)}.") { LY_ASSERT_TYPE (unsmob_input, sip, 1); diff --git a/lily/item-scheme.cc b/lily/item-scheme.cc index 426d9532a6..2d561fbc06 100644 --- a/lily/item-scheme.cc +++ b/lily/item-scheme.cc @@ -21,8 +21,9 @@ LY_DEFINE (ly_item_p, "ly:item?", LY_DEFINE (ly_item_break_dir, "ly:item-break-dir", 1, 0, 0, (SCM it), - "The break status dir of item @var{it}. @code{-1} is end of " - "line, @code{0} unbroken, and @code{1} begin of line.") + "The break status direction of item @var{it}. @code{-1} means" + " end of line, @code{0}@tie{}unbroken, and" + " @code{1}@tie{}beginning of line.") { LY_ASSERT_TYPE (unsmob_item, it, 1); Item *me = unsmob_item (it); diff --git a/lily/lily-lexer-scheme.cc b/lily/lily-lexer-scheme.cc index 0d561f9d8b..e619c8e795 100644 --- a/lily/lily-lexer-scheme.cc +++ b/lily/lily-lexer-scheme.cc @@ -11,7 +11,8 @@ LY_DEFINE (ly_lexer_keywords, "ly:lexer-keywords", 1, 0, 0, (SCM lexer), - "Return a list of (KEY . CODE) pairs, signifying the lilypond reserved words list.") + "Return a list of @code{(KEY . CODE)} pairs, signifying the" + " LilyPond reserved words list.") { LY_ASSERT_SMOB (Lily_lexer, lexer, 1); diff --git a/lily/lily-parser-scheme.cc b/lily/lily-parser-scheme.cc index 6e628d8ae8..1631c4a3da 100644 --- a/lily/lily-parser-scheme.cc +++ b/lily/lily-parser-scheme.cc @@ -33,8 +33,8 @@ LY_DEFINE (ly_set_point_and_click, "ly:set-point-and-click", LY_DEFINE (ly_parse_file, "ly:parse-file", 1, 0, 0, (SCM name), - "Parse a single @code{.ly} file. " - "Upon failure, throw @code{ly-file-failed} key.") + "Parse a single @code{.ly} file." + " Upon failure, throw @code{ly-file-failed} key.") { LY_ASSERT_TYPE (scm_is_string, name, 1); string file = ly_scm2string (name); @@ -183,8 +183,8 @@ LY_DEFINE (ly_parser_define_x, "ly:parser-define!", LY_DEFINE (ly_parser_lookup, "ly:parser-lookup", 2, 0, 0, (SCM parser_smob, SCM symbol), - "Lookup @var{symbol} in @var{parser-smob}'s module. " - "Undefined is '().") + "Look up @var{symbol} in @var{parser-smob}'s module." + " Return @code{'()} if not defined.") { LY_ASSERT_SMOB (Lily_parser, parser_smob, 1); @@ -201,8 +201,8 @@ LY_DEFINE (ly_parser_lookup, "ly:parser-lookup", LY_DEFINE (ly_parser_parse_string, "ly:parser-parse-string", 2, 0, 0, (SCM parser_smob, SCM ly_code), - "Parse the string @code{ly-code} with @code{parser-smob}." - "Upon failure, throw @code{ly-file-failed} key.") + "Parse the string @var{ly-code} with @var{parser-smob}." + " Upon failure, throw @code{ly-file-failed} key.") { LY_ASSERT_SMOB (Lily_parser, parser_smob, 1); Lily_parser *parser = unsmob_lily_parser (parser_smob); @@ -215,9 +215,9 @@ LY_DEFINE (ly_parser_parse_string, "ly:parser-parse-string", LY_DEFINE (ly_parser_set_note_names, "ly:parser-set-note-names", 2, 0, 0, (SCM parser, SCM names), - "Replace current note names in @var{parser}. " - "@var{names} is an alist of symbols. " - "This only has effect if the current mode is notes.") + "Replace current note names in @var{parser}." + " @var{names} is an alist of symbols. This only has effect" + " if the current mode is notes.") { LY_ASSERT_SMOB (Lily_parser, parser, 1); Lily_parser *p = unsmob_lily_parser (parser); @@ -243,7 +243,7 @@ LY_DEFINE (ly_parser_output_name, "ly:parser-output-name", LY_DEFINE (ly_parser_error, "ly:parser-error", 2, 1, 0, (SCM parser, SCM msg, SCM input), - "Display an error message, and make the parser fail") + "Display an error message and make the parser fail.") { LY_ASSERT_SMOB (Lily_parser, parser, 1); Lily_parser *p = unsmob_lily_parser (parser); diff --git a/lily/lilypond-key.cc b/lily/lilypond-key.cc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/ly-module.cc b/lily/ly-module.cc index 581984dfe9..acf7b06f88 100644 --- a/lily/ly-module.cc +++ b/lily/ly-module.cc @@ -108,7 +108,7 @@ entry_to_alist (void *closure, SCM key, SCM val, SCM result) LY_DEFINE (ly_module_2_alist, "ly:module->alist", 1, 0, 0, (SCM mod), - "Dump the contents of module @var{mod} as an alist.") + "Dump the contents of module @var{mod} as an alist.") { SCM_VALIDATE_MODULE (1, mod); SCM obarr = SCM_MODULE_OBARRAY (mod); diff --git a/lily/module-scheme.cc b/lily/module-scheme.cc index ce08c42456..9f4832628f 100644 --- a/lily/module-scheme.cc +++ b/lily/module-scheme.cc @@ -30,7 +30,7 @@ module_define_closure_func (void *closure, SCM key, SCM val, SCM result) LY_DEFINE (ly_module_copy, "ly:module-copy", 2, 0, 0, (SCM dest, SCM src), - "Copy all bindings from module SRC into DEST.") + "Copy all bindings from module @var{src} into @var{dest}.") { #define FUNC_NAME __FUNCTION__ SCM_VALIDATE_MODULE (1, src); @@ -42,8 +42,8 @@ LY_DEFINE (ly_module_copy, "ly:module-copy", LY_DEFINE (ly_clear_anonymous_modules, "ly:clear-anonymous-modules", 0, 0, 0, (), - "Plug a GUILE 1.6 and 1.7 memory leak by breaking a weak reference " - "pointer cycle explicitly.") + "Plug a GUILE 1.6 and 1.7 memory leak by breaking a weak" + " reference pointer cycle explicitly.") { #ifdef MODULE_GC_KLUDGE clear_anonymous_modules (); @@ -68,9 +68,9 @@ ly_module_lookup (SCM module, SCM sym) LY_DEFINE (ly_modules_lookup, "ly:modules-lookup", 2, 1, 0, (SCM modules, SCM sym, SCM def), - "Lookup @var{sym} in the list @var{modules}, " - "returning the first occurence. " - "If not found, return @var{default}, or @code{#f}.") + "Look up @var{sym} in the list @var{modules}," + " returning the first occurence. If not found, return" + " @var{def} or @code{#f} if @var{def} isn't specified.") { for (SCM s = modules; scm_is_pair (s); s = scm_cdr (s)) { diff --git a/lily/moment-scheme.cc b/lily/moment-scheme.cc index 4eb3086adf..85155034c5 100644 --- a/lily/moment-scheme.cc +++ b/lily/moment-scheme.cc @@ -11,15 +11,13 @@ /* TODO: add optional factor argument. */ LY_DEFINE (ly_make_moment, "ly:make-moment", 2, 2, 0, (SCM n, SCM d, SCM gn, SCM gd), - "Create the rational number with main timing @var{n}/@var{d}, " - "and optional grace timin @var{gn}/@var{gd}.\n" + "Create the rational number with main timing @var{n}/@var{d}," + " and optional grace timing @var{gn}/@var{gd}.\n" "\n" - "\n" - "Moment is a point in musical time. " - "It is consists of a pair of rationals (@var{m}, @var{g}), " - "where @var{m} is the timing for the main\n" - "notes, and @var{g} the timing for grace notes. " - "In absence of grace notes, @var{g} is zero.\n") + "A @dfn{moment} is a point in musical time. It consists of" + " a pair of rationals (@var{m},@tie{}@var{g}), where @var{m} is" + " the timing for the main notes, and @var{g} the timing for" + " grace notes. In absence of grace notes, @var{g}@tie{}is zero.") { LY_ASSERT_TYPE (scm_is_integer, n, 1); LY_ASSERT_TYPE (scm_is_integer, d, 2); diff --git a/lily/music-function-scheme.cc b/lily/music-function-scheme.cc index 828929994a..c22634f152 100644 --- a/lily/music-function-scheme.cc +++ b/lily/music-function-scheme.cc @@ -2,14 +2,14 @@ LY_DEFINE (ly_music_function_p, "ly:music-function?", 1, 0, 0, (SCM x), - "Is @var{x} an @code{music-function}?") + "Is @var{x} a @code{music-function}?") { return is_music_function (x) ? SCM_BOOL_T : SCM_BOOL_F; } LY_DEFINE (ly_music_function_extract, "ly:music-function-extract", 1, 0, 0, (SCM x), - "Return the Scheme function inside @var{x}") + "Return the Scheme function inside@tie{}@var{x}.") { LY_ASSERT_TYPE (is_music_function, x, 1); @@ -18,10 +18,11 @@ LY_DEFINE (ly_music_function_extract, "ly:music-function-extract", 1, 0, 0, LY_DEFINE (ly_make_music_function, "ly:make-music-function", 2, 0, 0, (SCM signature, SCM func), - "Make a function to process music, to be used for the " - "parser. @code{func} is the function, and @code{signature} describes " - "Its arguments. @code{signature} is a list containing either " - "@code{ly:music?} predicates or other type predicates.") + "Make a function to process music, to be used for the" + " parser. @code{func} is the function, and @code{signature}" + " describes its arguments. @code{signature} is a list" + " containing either @code{ly:music?} predicates or other type" + " predicates.") { LY_ASSERT_TYPE (ly_is_procedure, func, 1); return make_music_function (signature, func); diff --git a/lily/music-scheme.cc b/lily/music-scheme.cc index c52b1d6a87..b6f0fbe7a2 100644 --- a/lily/music-scheme.cc +++ b/lily/music-scheme.cc @@ -13,7 +13,8 @@ LY_DEFINE (ly_music_length, "ly:music-length", 1, 0, 0, (SCM mus), - "Get the length of music expression @var{mus}, and return as a @code{Moment} object.") + "Get the length of music expression @var{mus} and return" + " it as a @code{Moment} object.") { LY_ASSERT_TYPE (unsmob_music, mus, 1); Music *sc = unsmob_music (mus); @@ -22,8 +23,8 @@ LY_DEFINE (ly_music_length, "ly:music-length", LY_DEFINE (ly_music_property, "ly:music-property", 2, 1, 0, (SCM mus, SCM sym, SCM dfault), - "Get the property @var{sym} of music expression @var{mus}.\n" - "If @var{sym} is undefined, return @code{'()}.\n") + "Get the property @var{sym} of music expression @var{mus}." + " If @var{sym} is undefined, return @code{'()}.") { LY_ASSERT_TYPE (unsmob_music, mus, 1); return ly_prob_property (mus, sym, dfault); @@ -31,7 +32,8 @@ LY_DEFINE (ly_music_property, LY_DEFINE (ly_music_set_property_x, "ly:music-set-property!", 3, 0, 0, (SCM mus, SCM sym, SCM val), - "Set property @var{sym} in music expression @var{mus} to @var{val}.") + "Set property @var{sym} in music expression @var{mus} to" + " @var{val}.") { LY_ASSERT_TYPE (unsmob_music, mus, 1); @@ -42,12 +44,12 @@ LY_DEFINE (ly_music_set_property_x, "ly:music-set-property!", /* todo: property args */ LY_DEFINE (ly_make_music, "ly:make-music", 1, 0, 0, (SCM props), - "Make a C++ Music object, initialize with\n" - "@var{props}. \n\n" - "" - "This function is for internal use, and is only called by " - "@code{make-music}, which is the preferred interface " - "for creating music objects. ") + "Make a C++ @code{Music} object and initialize it with" + " @var{props}.\n" + "\n" + "This function is for internal use and is only called by" + " @code{make-music}, which is the preferred interface" + " for creating music objects.") { Music *ms = new Music (props); return ms->unprotect (); @@ -55,7 +57,7 @@ LY_DEFINE (ly_make_music, "ly:make-music", LY_DEFINE (ly_music_p, "ly:music?", 1, 0, 0, (SCM obj), - "Type predicate") + "Type predicate.") { return scm_from_bool (unsmob_music (obj)); } @@ -63,10 +65,9 @@ LY_DEFINE (ly_music_p, "ly:music?", /* todo: property args */ LY_DEFINE (ly_music_mutable_properties, "ly:music-mutable-properties", 1, 0, 0, (SCM mus), - "Return an alist containing the mutable properties of @var{mus}.\n" - "The immutable properties are not available, since " - "they are constant and initialized by the " - "@code{make-music} function.\n") + "Return an alist containing the mutable properties of @var{mus}." + " The immutable properties are not available, since they are" + " constant and initialized by the @code{make-music} function.") { LY_ASSERT_TYPE (unsmob_music, mus, 1); Music *m = unsmob_music (mus); @@ -75,8 +76,8 @@ LY_DEFINE (ly_music_mutable_properties, "ly:music-mutable-properties", LY_DEFINE (ly_music_list_p, "ly:music-list?", 1, 0, 0, (SCM lst), - "Type predicate: return true if @var{lst} is a list " - "of music objects.") + "Type predicate: Return true if @var{lst} is a list" + " of music objects.") { if (scm_list_p (lst) == SCM_BOOL_T) while (scm_is_pair (lst)) @@ -91,7 +92,7 @@ LY_DEFINE (ly_music_list_p, "ly:music-list?", LY_DEFINE (ly_music_deep_copy, "ly:music-deep-copy", 1, 0, 0, (SCM m), - "Copy @var{m} and all sub expressions of @var{m}") + "Copy @var{m} and all sub expressions of@tie{}@var{m}.") { SCM copy = m; if (unsmob_music (m)) @@ -107,8 +108,8 @@ LY_DEFINE (ly_music_deep_copy, "ly:music-deep-copy", LY_DEFINE (ly_music_transpose, "ly:music-transpose", 2, 0, 0, (SCM m, SCM p), - "Transpose @var{m} such that central C is mapped to @var{p}. " - "Return @var{m}.") + "Transpose @var{m} such that central@tie{}C is mapped" + " to@tie{}@var{p}. Return@tie{}@var{m}.") { LY_ASSERT_TYPE (unsmob_music, m, 1); LY_ASSERT_SMOB (Pitch, p, 2); @@ -126,7 +127,7 @@ LY_DEFINE (ly_music_transpose, "ly:music-transpose", */ LY_DEFINE (ly_music_compress, "ly:music-compress", 2, 0, 0, (SCM m, SCM factor), - "Compress music object @var{m} by moment @var{factor}.") + "Compress music object@tie{}@var{m} by moment @var{factor}.") { LY_ASSERT_TYPE (unsmob_music, m, 1); LY_ASSERT_TYPE (unsmob_moment, factor, 2); @@ -138,7 +139,8 @@ LY_DEFINE (ly_music_compress, "ly:music-compress", LY_DEFINE (ly_music_duration_length, "ly:music-duration-length", 1, 0, 0, (SCM mus), - "Extract the duration field from @var{mus}, and return the length.") + "Extract the duration field from @var{mus} and return the" + " length.") { LY_ASSERT_TYPE (unsmob_music, mus, 1); Music *m = unsmob_music (mus); @@ -155,7 +157,8 @@ LY_DEFINE (ly_music_duration_length, "ly:music-duration-length", 1, 0, 0, LY_DEFINE (ly_music_duration_compress, "ly:music-duration-compress", 2, 0, 0, (SCM mus, SCM fact), - "Compress @var{mus} by factor @var{fact}, which is a @code{Moment}.") + "Compress @var{mus} by factor @var{fact}, which is a" + " @code{Moment}.") { LY_ASSERT_TYPE (unsmob_music, mus, 1); LY_ASSERT_SMOB (Moment, fact, 2); @@ -178,7 +181,8 @@ LY_DEFINE (ly_music_duration_compress, "ly:music-duration-compress", 2, 0, 0, */ LY_DEFINE (ly_transpose_key_alist, "ly:transpose-key-alist", 2, 0, 0, (SCM l, SCM pit), - "Make a new key alist of @var{l} transposed by pitch @var{pit}") + "Make a new key alist of@tie{}@var{l} transposed by" + " pitch @var{pit}.") { SCM newlist = SCM_EOL; Pitch *p = unsmob_pitch (pit); diff --git a/lily/note-head-scheme.cc b/lily/note-head-scheme.cc index 89f17453cf..bf0bd99177 100644 --- a/lily/note-head-scheme.cc +++ b/lily/note-head-scheme.cc @@ -13,8 +13,8 @@ LY_DEFINE (ly_note_head__stem_attachment, "ly:note-head::stem-attachment", 2, 0, 0, (SCM font_metric, SCM glyph_name), - "Get attachment in @var{font-metric} for attaching a stem to notehead " - "@var{glyph-name}.") + "Get attachment in @var{font-metric} for attaching a stem to" + " notehead @var{glyph-name}.") { LY_ASSERT_SMOB (Font_metric, font_metric, 1); Font_metric *fm = unsmob_metrics (font_metric); diff --git a/lily/object-key.cc b/lily/object-key.cc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/open-type-font-scheme.cc b/lily/open-type-font-scheme.cc index 6f95641325..173eb56d37 100644 --- a/lily/open-type-font-scheme.cc +++ b/lily/open-type-font-scheme.cc @@ -11,8 +11,8 @@ LY_DEFINE (ly_font_sub_fonts, "ly:font-sub-fonts", 1, 0, 0, (SCM font), - "Given the font metric @var{font} of an OpenType font, return the " - "names of the subfonts within @var{font}.") + "Given the font metric @var{font} of an OpenType font, return the" + " names of the subfonts within @var{font}.") { LY_ASSERT_SMOB (Font_metric, font, 1); Font_metric *fm = unsmob_metrics (font); @@ -21,8 +21,8 @@ LY_DEFINE (ly_font_sub_fonts, "ly:font-sub-fonts", 1, 0, 0, LY_DEFINE (ly_otf_font_glyph_info, "ly:otf-font-glyph-info", 2, 0, 0, (SCM font, SCM glyph), - "Given the font metric @var{font} of an OpenType font, return the " - "information about named glyph @var{glyph} (a string)") + "Given the font metric @var{font} of an OpenType font, return the" + " information about named glyph @var{glyph} (a string).") { Modified_font_metric *fm = dynamic_cast (unsmob_metrics (font)); @@ -37,8 +37,8 @@ LY_DEFINE (ly_otf_font_glyph_info, "ly:otf-font-glyph-info", 2, 0, 0, LY_DEFINE (ly_otf_font_table_data, "ly:otf-font-table-data", 2, 0, 0, (SCM font, SCM tag), - "Extract a table @var{tag} from @var{font}. Return empty string for " - "non-existent @var{tag}.") + "Extract a table @var{tag} from @var{font}. Return empty string" + " for non-existent @var{tag}.") { Modified_font_metric *fm = dynamic_cast (unsmob_metrics (font)); @@ -74,7 +74,7 @@ LY_DEFINE (ly_otf_font_p, "ly:otf-font?", 1, 0, 0, LY_DEFINE (ly_otf_glyph_list, "ly:otf-glyph-list", 1, 0, 0, (SCM font), - "Return a list of glyphnames for @var{font}.") + "Return a list of glyph names for @var{font}.") { Modified_font_metric *fm = dynamic_cast (unsmob_metrics (font)); diff --git a/lily/optimal-page-breaking.cc b/lily/optimal-page-breaking.cc index 728e726a5e..34ff7f1b18 100644 --- a/lily/optimal-page-breaking.cc +++ b/lily/optimal-page-breaking.cc @@ -52,7 +52,7 @@ Optimal_page_breaking::solve () vsize ideal_sys_count = best.system_count (); vsize min_sys_count = ideal_sys_count - best.systems_per_page_.back (); - if (page_count > 1) + if (page_count > 1 && best.systems_per_page_[page_count - 2] > 1) min_sys_count -= best.systems_per_page_[page_count - 2]; if (page_count == 1) diff --git a/lily/output-def-scheme.cc b/lily/output-def-scheme.cc index ea216a371f..29c8949ab9 100644 --- a/lily/output-def-scheme.cc +++ b/lily/output-def-scheme.cc @@ -16,8 +16,9 @@ LY_DEFINE (ly_output_def_lookup, "ly:output-def-lookup", 2, 1, 0, (SCM pap, SCM sym, SCM def), - "Lookup @var{sym} in the Output_def @var{pap}. " - "Return the value or @var{def} (which defaults to @code{'()}) if undefined.") + "Look up @var{sym} in the @var{pap} output definition" + " (e.g., @code{\\paper}). Return the value or @var{def}" + " (which defaults to @code{'()}) if undefined.") { LY_ASSERT_SMOB (Output_def, pap, 1); Output_def *op = unsmob_output_def (pap); @@ -46,7 +47,7 @@ LY_DEFINE (ly_output_def_scope, "ly:output-def-scope", LY_DEFINE (ly_output_def_parent, "ly:output-def-parent", 1, 0, 0, (SCM def), - "Get the parent output-def of @var{def}.") + "Get the parent output definition of @var{def}.") { LY_ASSERT_SMOB (Output_def, def, 1); Output_def *op = unsmob_output_def (def); @@ -55,7 +56,7 @@ LY_DEFINE (ly_output_def_parent, "ly:output-def-parent", LY_DEFINE (ly_output_def_clone, "ly:output-def-clone", 1, 0, 0, (SCM def), - "Clone @var{def}.") + "Clone output definition @var{def}.") { LY_ASSERT_SMOB (Output_def, def, 1); Output_def *op = unsmob_output_def (def); @@ -91,7 +92,7 @@ LY_DEFINE (ly_output_def_p, "ly:output-def?", LY_DEFINE (ly_paper_outputscale, "ly:paper-outputscale", 1, 0, 0, (SCM bp), - "Get output-scale for BP.") + "Get output-scale for @var{bp}.") { LY_ASSERT_SMOB (Output_def, bp, 1); Output_def *b = unsmob_output_def (bp); @@ -100,7 +101,7 @@ LY_DEFINE (ly_paper_outputscale, "ly:paper-outputscale", LY_DEFINE (ly_make_output_def, "ly:make-output-def", 0, 0, 0, (), - "Make a output def.") + "Make an output definition.") { Output_def *bp = new Output_def; return bp->unprotect (); @@ -108,11 +109,9 @@ LY_DEFINE (ly_make_output_def, "ly:make-output-def", LY_DEFINE (ly_paper_get_font, "ly:paper-get-font", 2, 0, 0, (SCM paper_smob, SCM chain), - - "Return a font metric satisfying the font-qualifiers " - "in the alist chain @var{chain}.\n" - "(An alist chain is a list of alists, " - "containing grob properties).\n") + "Return a font metric satisfying the font-qualifiers" + " in the alist chain @var{chain}. (An alist chain is a" + " list of alists, containing grob properties.)") { LY_ASSERT_SMOB (Output_def, paper_smob, 1); diff --git a/lily/page-breaking-scheme.cc b/lily/page-breaking-scheme.cc index 87d21383b3..2241b503a7 100644 --- a/lily/page-breaking-scheme.cc +++ b/lily/page-breaking-scheme.cc @@ -13,8 +13,9 @@ LY_DEFINE (ly_page_turn_breaking, "ly:page-turn-breaking", 1, 0, 0, (SCM pb), - "Optimally break (pages and lines) the Paper_book PB such that page turns " - "only happen in specified places, returning its pages.") + "Optimally break (pages and lines) the @code{Paper_book} object" + " @var{pb} such that page turns only happen in specified places," + " returning its pages.") { Page_turn_page_breaking b (unsmob_paper_book (pb)); return b.solve (); @@ -22,8 +23,9 @@ LY_DEFINE (ly_page_turn_breaking, "ly:page-turn-breaking", LY_DEFINE (ly_optimal_breaking, "ly:optimal-breaking", 1, 0, 0, (SCM pb), - "Optimally break (pages and lines) the Paper_book PB to minimise badness in " - "bother vertical and horizontal spacing.") + "Optimally break (pages and lines) the @code{Paper_book} object" + " @var{pb} to minimize badness in bother vertical and horizontal" + " spacing.") { Optimal_page_breaking b (unsmob_paper_book (pb)); return b.solve (); diff --git a/lily/page-breaking.cc b/lily/page-breaking.cc index 2c137e3684..709ee52cb3 100644 --- a/lily/page-breaking.cc +++ b/lily/page-breaking.cc @@ -726,7 +726,9 @@ Page_breaking::space_systems_on_n_or_one_more_pages (vsize configuration, vsize Real penalty = blank_page_penalty (); n_res.demerits_ += penalty; - n_res.force_.back () += penalty; + + if (n_res.force_.size ()) + n_res.force_.back () += penalty; return (m_res.demerits_ < n_res.demerits_) ? m_res : n_res; } @@ -759,6 +761,9 @@ Page_breaking::space_systems_on_best_pages (vsize configuration, vsize first_pag Page_spacing_result Page_breaking::finalize_spacing_result (vsize configuration, Page_spacing_result res) { + if (res.force_.empty ()) + return res; + cache_line_details (configuration); res.systems_per_page_ = uncompress_solution (res.systems_per_page_, cached_line_details_); diff --git a/lily/pango-font-scheme.cc b/lily/pango-font-scheme.cc index fe6d4bacd4..20f15764b5 100644 --- a/lily/pango-font-scheme.cc +++ b/lily/pango-font-scheme.cc @@ -30,7 +30,7 @@ LY_DEFINE (ly_pango_font_p, "ly:pango-font?", LY_DEFINE (ly_pango_font_physical_fonts, "ly:pango-font-physical-fonts", 1, 0, 0, (SCM f), - "Return alist of (PSNAME . FILENAME) tuples.") + "Return alist of @code{(PSNAME . FILENAME)} tuples.") { Pango_font *pf = dynamic_cast (unsmob_metrics (f)); diff --git a/lily/pango-select-scheme.cc b/lily/pango-select-scheme.cc index 613cd01cae..6c8bcd42cd 100644 --- a/lily/pango-select-scheme.cc +++ b/lily/pango-select-scheme.cc @@ -13,7 +13,8 @@ LY_DEFINE (ly_make_pango_description_string, "ly:make-pango-description-string", 2, 0, 0, (SCM chain, SCM size), - "Make a PangoFontDescription string for the property alist @var{chain} at size @var{size}.") + "Make a @code{PangoFontDescription} string for the property" + " alist @var{chain} at size @var{size}.") { LY_ASSERT_TYPE (scm_is_number, size, 1); PangoFontDescription *pfd = properties_to_pango_description (chain, scm_to_double (size)); diff --git a/lily/paper-book-scheme.cc b/lily/paper-book-scheme.cc index 94bb17f05e..275e3ced53 100644 --- a/lily/paper-book-scheme.cc +++ b/lily/paper-book-scheme.cc @@ -12,7 +12,7 @@ LY_DEFINE (ly_paper_book_pages, "ly:paper-book-pages", 1, 0, 0, (SCM pb), - "Return pages in book PB.") + "Return pages in book @var{pb}.") { LY_ASSERT_SMOB (Paper_book, pb, 1); return unsmob_paper_book (pb)->pages (); @@ -42,7 +42,7 @@ LY_DEFINE (ly_paper_book_performances, "ly:paper-book-performances", LY_DEFINE (ly_paper_book_systems, "ly:paper-book-systems", 1, 0, 0, (SCM pb), - "Return systems in book PB.") + "Return systems in book @var{pb}.") { LY_ASSERT_SMOB (Paper_book, pb, 1); return unsmob_paper_book (pb)->systems (); @@ -50,7 +50,7 @@ LY_DEFINE (ly_paper_book_systems, "ly:paper-book-systems", LY_DEFINE (ly_paper_book_paper, "ly:paper-book-paper", 1, 0, 0, (SCM pb), - "Return pages in book PB.") + "Return pages in book @var{pb}.") { LY_ASSERT_SMOB (Paper_book, pb, 1); Paper_book *pbook = unsmob_paper_book (pb); diff --git a/lily/paper-outputter-scheme.cc b/lily/paper-outputter-scheme.cc index 2149f0ec2c..625494d6d9 100644 --- a/lily/paper-outputter-scheme.cc +++ b/lily/paper-outputter-scheme.cc @@ -14,8 +14,8 @@ LY_DEFINE (ly_make_paper_outputter, "ly:make-paper-outputter", 2, 0, 0, (SCM port, SCM format), - "Create an outputter that evaluates within " - "@code{output-}@var{format}, writing to @var{port}.") + "Create an outputter that evaluates within" + " @code{output-}@var{format}, writing to @var{port}.") { LY_ASSERT_TYPE (ly_is_port, port, 1); LY_ASSERT_TYPE (ly_is_symbol, format, 2); diff --git a/lily/paper-score-scheme.cc b/lily/paper-score-scheme.cc index 055b5363df..b973647fa2 100644 --- a/lily/paper-score-scheme.cc +++ b/lily/paper-score-scheme.cc @@ -11,7 +11,8 @@ LY_DEFINE (ly_paper_score_paper_systems, "ly:paper-score-paper-systems", 1, 0, 0, (SCM paper_score), - "Return vector of paper_system objects from @var{paper-score}.") + "Return vector of @code{paper_system} objects from" + " @var{paper-score}.") { LY_ASSERT_TYPE (unsmob_paper_score, paper_score, 1); diff --git a/lily/performance-scheme.cc b/lily/performance-scheme.cc index c16c0c3754..a00e6b8efd 100644 --- a/lily/performance-scheme.cc +++ b/lily/performance-scheme.cc @@ -10,7 +10,7 @@ LY_DEFINE (ly_performance_write, "ly:performance-write", 2, 0, 0, (SCM performance, SCM filename), - "Write @var{performance} to @var{filename}") + "Write @var{performance} to @var{filename}.") { LY_ASSERT_TYPE (unsmob_performance, performance, 1); LY_ASSERT_TYPE (scm_is_string, filename, 2); diff --git a/lily/pfb-scheme.cc b/lily/pfb-scheme.cc index f22a745ac7..7fcdc73de5 100644 --- a/lily/pfb-scheme.cc +++ b/lily/pfb-scheme.cc @@ -31,8 +31,8 @@ LY_DEFINE (ly_pfb_2_pfa, "ly:pfb->pfa", LY_DEFINE (ly_otf_2_cff, "ly:otf->cff", 1, 0, 0, (SCM otf_file_name), - "Convert the contents of a OTF file to CFF file, returning it as " - " a string.") + "Convert the contents of an OTF file to a CFF file," + " returning it as a string.") { LY_ASSERT_TYPE (scm_is_string, otf_file_name, 1); diff --git a/lily/pitch-scheme.cc b/lily/pitch-scheme.cc index e2f3aecf69..12ddddf10a 100644 --- a/lily/pitch-scheme.cc +++ b/lily/pitch-scheme.cc @@ -10,8 +10,8 @@ LY_DEFINE (ly_pitch_transpose, "ly:pitch-transpose", 2, 0, 0, (SCM p, SCM delta), - "Transpose @var{p} by the amount @var{delta}, " - "where @var{delta} is relative to middle C.") + "Transpose @var{p} by the amount @var{delta}," + " where @var{delta} is relative to middle@tie{}C.") { LY_ASSERT_SMOB (Pitch, p, 1); LY_ASSERT_SMOB (Pitch, delta, 2); @@ -24,11 +24,11 @@ LY_DEFINE (ly_pitch_transpose, "ly:pitch-transpose", /* Should add optional args. */ LY_DEFINE (ly_make_pitch, "ly:make-pitch", 2, 1, 0, (SCM octave, SCM note, SCM alter), - "@var{octave} is specified by an integer, " - "zero for the octave containing middle C. " - "@var{note} is a number from 0 to 6, " - "with 0 corresponding to C and 6 corresponding to B. " - "The @var{alter} is a rational number of whole tones for alteration.") + "@var{octave} is specified by an integer, zero for the octave" + " containing middle@tie{}C. @var{note} is a number from 0" + " to@tie{}6, with 0 corresponding to pitch@tie{}C and 6" + " corresponding to pitch@tie{}B. @var{alter} is a rational" + " number of whole tones for alteration.") { LY_ASSERT_TYPE (scm_is_integer, octave, 1); LY_ASSERT_TYPE (scm_is_integer, note, 2); @@ -51,7 +51,8 @@ LY_DEFINE (ly_pitch_negate, "ly:pitch-negate", 1, 0, 0, LY_DEFINE (ly_pitch_steps, "ly:pitch-steps", 1, 0, 0, (SCM p), - "Number of steps counted from middle C of the pitch @var{p}.") + "Number of steps counted from middle@tie{}C of the" + " pitch@tie{}@var{p}.") { LY_ASSERT_SMOB (Pitch, p, 1); Pitch *pp = unsmob_pitch (p); @@ -60,7 +61,7 @@ LY_DEFINE (ly_pitch_steps, "ly:pitch-steps", 1, 0, 0, LY_DEFINE (ly_pitch_octave, "ly:pitch-octave", 1, 0, 0, (SCM pp), - "Extract the octave from pitch @var{p}.") + "Extract the octave from pitch@tie{}@var{pp}.") { LY_ASSERT_SMOB (Pitch, pp, 1); Pitch *p = unsmob_pitch (pp); @@ -70,7 +71,7 @@ LY_DEFINE (ly_pitch_octave, "ly:pitch-octave", LY_DEFINE (ly_pitch_alteration, "ly:pitch-alteration", 1, 0, 0, (SCM pp), - "Extract the alteration from pitch @var{p}.") + "Extract the alteration from pitch@tie{}@var{pp}.") { LY_ASSERT_SMOB (Pitch, pp, 1); Pitch *p = unsmob_pitch (pp); @@ -81,7 +82,7 @@ LY_DEFINE (ly_pitch_alteration, "ly:pitch-alteration", LY_DEFINE (pitch_notename, "ly:pitch-notename", 1, 0, 0, (SCM pp), - "Extract the note name from pitch @var{pp}.") + "Extract the note name from pitch @var{pp}.") { LY_ASSERT_SMOB (Pitch, pp, 1); Pitch *p = unsmob_pitch (pp); @@ -91,7 +92,8 @@ LY_DEFINE (pitch_notename, "ly:pitch-notename", LY_DEFINE (ly_pitch_quartertones, "ly:pitch-quartertones", 1, 0, 0, (SCM pp), - "Calculate the number of quarter tones of @var{p} from middle C.") + "Calculate the number of quarter tones of@tie{}@var{pp} from" + " middle@tie{}C.") { LY_ASSERT_SMOB (Pitch, pp, 1); Pitch *p = unsmob_pitch (pp); @@ -101,7 +103,8 @@ LY_DEFINE (ly_pitch_quartertones, "ly:pitch-quartertones", LY_DEFINE (ly_pitch_semitones, "ly:pitch-semitones", 1, 0, 0, (SCM pp), - "calculate the number of semitones of @var{p} from middle C.") + "Calculate the number of semitones of@tie{}@var{pp} from" + " middle@tie{}C.") { LY_ASSERT_SMOB (Pitch, pp, 1); Pitch *p = unsmob_pitch (pp); @@ -127,8 +130,8 @@ LY_DEFINE (ly_pitch_less_p, "ly:pitchtype () == type); @@ -61,7 +61,7 @@ LY_DEFINE (ly_prob_type_p, "ly:prob-type?", LY_DEFINE (ly_make_prob, "ly:make-prob", 2, 0, 1, (SCM type, SCM init, SCM rest), - "Create a Prob.") + "Create a @code{Prob} object.") { Prob *pr = new Prob (type, init); @@ -87,9 +87,9 @@ LY_DEFINE (ly_paper_system_p, "ly:paper-system?", LY_DEFINE (ly_paper_system_minimum_distance, "ly:paper-system-minimum-distance", 2, 0, 0, (SCM sys1, SCM sys2), - "Measure the minimum distance between these two paper-systems " - "using their stored skylines if possible and falling back to " - "their extents otherwise.") + "Measure the minimum distance between these two paper-systems," + " using their stored skylines if possible and falling back to" + " their extents otherwise.") { Real ret = 0; Prob *p1 = unsmob_prob (sys1); diff --git a/lily/profile.cc b/lily/profile.cc index 0390a64a62..234780c2ec 100644 --- a/lily/profile.cc +++ b/lily/profile.cc @@ -16,8 +16,9 @@ SCM prob_property_lookup_table; LY_DEFINE (ly_property_lookup_stats, "ly:property-lookup-stats", 1, 0, 0, (SCM sym), - "Return hash table with a property access corresponding to @var{sym}. " - "Choices are prob, grob and context.") + "Return hash table with a property access corresponding to" + " @var{sym}. Choices are @code{prob}, @code{grob}, and" + " @code{context}.") { if (sym == ly_symbol2scm ("context")) return context_property_lookup_table ? context_property_lookup_table diff --git a/lily/program-option-scheme.cc b/lily/program-option-scheme.cc index 638aaf634d..4ec898092e 100644 --- a/lily/program-option-scheme.cc +++ b/lily/program-option-scheme.cc @@ -168,7 +168,7 @@ get_help_string () LY_DEFINE (ly_option_usage, "ly:option-usage", 0, 0, 0, (), - "Print @code{ly:set-option} usage") + "Print @code{ly:set-option} usage.") { string help = get_help_string (); progress_indication (help); @@ -219,19 +219,19 @@ LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val), } LY_DEFINE (ly_command_line_options, "ly:command-line-options", 0, 0, 0, (), - "The Scheme specified on command-line with @samp{-d}.") + "The Scheme options specified on command-line with @option{-d}.") { return ly_string2scm (init_scheme_variables_global); } LY_DEFINE (ly_command_line_code, "ly:command-line-code", 0, 0, 0, (), - "The Scheme specified on command-line with @samp{-e}.") + "The Scheme code specified on command-line with @option{-e}.") { return ly_string2scm (init_scheme_code_global); } LY_DEFINE (ly_command_line_verbose_p, "ly:command-line-verbose?", 0, 0, 0, (), - "Was be_verbose_global set?") + "Was @code{be_verbose_global} set?") { return scm_from_bool (be_verbose_global); } diff --git a/lily/scale.cc b/lily/scale.cc index ecd2b9357e..5d8ccc9a38 100644 --- a/lily/scale.cc +++ b/lily/scale.cc @@ -17,7 +17,7 @@ */ LY_DEFINE (ly_make_scale, "ly:make-scale", 1, 0, 0, (SCM steps), - "Create a scale. Takes a vector of ints as argument") + "Create a scale. Takes a vector of integers as argument.") { bool type_ok = scm_is_vector (steps); diff --git a/lily/scheme-listener-scheme.cc b/lily/scheme-listener-scheme.cc index 004c14c14f..01eaa22ba1 100644 --- a/lily/scheme-listener-scheme.cc +++ b/lily/scheme-listener-scheme.cc @@ -10,11 +10,10 @@ LY_DEFINE (ly_make_listener, "ly:make-listener", 1, 0, 0, (SCM callback), - "Creates a listener. Any time the listener hears\n" - " an object, it will call @var{callback}\n" - " with that object.\n" + "Create a listener. Any time the listener hears an object," + " it will call @var{callback} with that object.\n" "\n" - " @var{callback} should take exactly one argument." ) + "@var{callback} should take exactly one argument.") { LY_ASSERT_TYPE (ly_is_procedure, callback, 1); Scheme_listener *l = new Scheme_listener (callback); diff --git a/lily/score-scheme.cc b/lily/score-scheme.cc index 83111f6707..c103475302 100644 --- a/lily/score-scheme.cc +++ b/lily/score-scheme.cc @@ -30,7 +30,7 @@ LY_DEFINE (ly_make_score, "ly:make-score", LY_DEFINE (ly_score_output_defs, "ly:score-output-defs", 1, 0, 0, (SCM score), - "All output defs in a score.") + "All output definitions in a score.") { LY_ASSERT_SMOB (Score, score, 1); Score *sc = unsmob_score (score); @@ -45,7 +45,7 @@ LY_DEFINE (ly_score_output_defs, "ly:score-output-defs", LY_DEFINE (ly_score_header, "ly:score-header", 1, 0, 0, (SCM score), - "return score header.") + "Return score header.") { LY_ASSERT_SMOB (Score, score, 1); Score *sc = unsmob_score (score); @@ -55,7 +55,7 @@ LY_DEFINE (ly_score_header, "ly:score-header", LY_DEFINE (ly_score_music, "ly:score-music", 1, 0, 0, (SCM score), - "return score music.") + "Return score music.") { LY_ASSERT_SMOB (Score, score, 1); Score *sc = unsmob_score (score); @@ -73,10 +73,10 @@ LY_DEFINE (ly_score_error_p, "ly:score-error?", LY_DEFINE (ly_score_embedded_format, "ly:score-embedded-format", 2, 0, 0, (SCM score, SCM layout), - "Run @var{score} through @var{layout}, an output definition, " - "scaled to correct output-scale already, " - "return a list of layout-lines. " - "\nTake optional Object_key argument.") + "Run @var{score} through @var{layout} (an output definition)" + " scaled to correct output-scale already, returning a list of" + " layout-lines. This function takes an optional" + " @code{Object_key} argument.") { LY_ASSERT_SMOB (Score, score, 1); LY_ASSERT_SMOB (Output_def, layout, 2); diff --git a/lily/script-column.cc b/lily/script-column.cc index 1ae7969b4e..3e4092f7c6 100644 --- a/lily/script-column.cc +++ b/lily/script-column.cc @@ -32,7 +32,7 @@ Script_column::add_side_positioned (Grob *me, Grob *script) LY_DEFINE (ly_grob_script_priority_less, "ly:grob-script-priority-less", 2, 0, 0, (SCM a, SCM b), - "Compare two grobs by script priority. For internal use.") + "Compare two grobs by script priority. For internal use.") { Grob *i1 = unsmob_grob (a); Grob *i2 = unsmob_grob (b); diff --git a/lily/simple-closure.cc b/lily/simple-closure.cc index 22ee294f49..737bb3965b 100644 --- a/lily/simple-closure.cc +++ b/lily/simple-closure.cc @@ -92,9 +92,10 @@ LY_DEFINE (ly_simple_closure_p, "ly:simple-closure?", LY_DEFINE (ly_make_simple_closure, "ly:make-simple-closure", 1, 0, 0, (SCM expr), - "Make a simple closure. @var{expr} should be form of " - "@code{(@var{func} @var{a1} @var{A2} ...)}, and will be invoked " - "as @code{(@var{func} @var{delayed-arg} @var{a1} @var{a2} ... )}.") + "Make a simple closure. @var{expr} should be form of" + " @code{(@var{func} @var{a1} @var{A2} @dots{})}, and will be" + " invoked as @code{(@var{func} @var{delayed-arg} @var{a1}" + " @var{a2} @dots{})}.") { SCM z; @@ -104,9 +105,9 @@ LY_DEFINE (ly_make_simple_closure, "ly:make-simple-closure", LY_DEFINE (ly_eval_simple_closure, "ly:eval-simple-closure", 2, 2, 0, (SCM delayed, SCM closure, SCM scm_start, SCM scm_end), - "Evaluate a simple closure with the given delayed argument. " - "If start and end are defined, evaluate it purely with those " - "start- and end-points.") + "Evaluate a simple @var{closure} with the given @var{delayed}" + " argument. If @var{scm-start} and @var{scm-end} are defined," + " evaluate it purely with those start and end points.") { bool pure = (scm_is_number (scm_start) && scm_is_number (scm_end)); int start = robust_scm2int (scm_start, 0); diff --git a/lily/simple-spacer-scheme.cc b/lily/simple-spacer-scheme.cc index 17b09c1063..48f127bfca 100644 --- a/lily/simple-spacer-scheme.cc +++ b/lily/simple-spacer-scheme.cc @@ -15,13 +15,19 @@ LY_DEFINE (ly_solve_spring_rod_problem, "ly:solve-spring-rod-problem", 4, 1, 0, (SCM springs, SCM rods, SCM length, SCM ragged), - "Solve a spring and rod problem for @var{count} objects, that " - "are connected by @var{count-1} springs, and an arbitrary number of rods " - "Springs have the format (ideal, inverse_hooke) and rods (idx1, idx2, distance) " - "@var{length} is a number, @var{ragged} a boolean " - "Return: a list containing the force (positive for stretching, " - "negative for compressing and #f for non-satisfied constraints) " - "followed by the @var{spring-count}+1 positions of the objects. ") + "Solve a spring and rod problem for @var{count} objects, that" + " are connected by @var{count}-1 @var{springs}, and an arbitrary" + " number of @var{rods}. @var{count} is implicitly given by" + " @var{springs} and @var{rods}. The @var{springs} argument has" + " the format @code{(ideal, inverse_hook)} and @var{rods} is of" + " the form @code{(idx1, idx2, distance)}.\n" + "\n" + "@var{length} is a number, @var{ragged} a boolean.\n" + "\n" + "The function returns a list containing the force (positive for" + " stretching, negative for compressing and @code{#f} for" + " non-satisfied constraints) followed by @var{spring-count}+1" + " positions of the objects.") { int len = scm_ilength (springs); if (len == 0) diff --git a/lily/smobs.cc b/lily/smobs.cc index a4c88fe58b..7bdaaa7f92 100644 --- a/lily/smobs.cc +++ b/lily/smobs.cc @@ -23,7 +23,7 @@ ADD_SCM_INIT_FUNC (init_smob_protection, init_smob_protection); LY_DEFINE (ly_smob_protects, "ly:smob-protects", 0, 0, 0, (), - "Return lily's internal smob protection list") + "Return LilyPond's internal smob protection list.") { return scm_is_pair (smob_protection_list) ? scm_cdr (smob_protection_list) diff --git a/lily/source.cc b/lily/source.cc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/spanner-scheme.cc b/lily/spanner-scheme.cc index 0dc62b3a51..3e9e947060 100644 --- a/lily/spanner-scheme.cc +++ b/lily/spanner-scheme.cc @@ -12,8 +12,8 @@ LY_DEFINE (ly_spanner_bound, "ly:spanner-bound", 2, 0, 0, (SCM slur, SCM dir), - "Get one of the bounds of @var{spanner}. @var{dir} is @code{-1} " - "for left, and @code{1} for right.") + "Get one of the bounds of @var{slur}. @var{dir} is @code{-1}" + " for left, and @code{1} for right.") { LY_ASSERT_TYPE (unsmob_spanner, slur, 1); LY_ASSERT_TYPE (is_direction, dir,2); @@ -38,7 +38,7 @@ LY_DEFINE (ly_spanner_broken_into, "ly:spanner-broken-into", LY_DEFINE (ly_spanner_p, "ly:spanner?", 1, 0, 0, (SCM g), - "Is @var{g} a spanner object?") + "Is @var{g} a spanner object?") { Grob *me = unsmob_grob (g); bool b = dynamic_cast (me); diff --git a/lily/stencil-scheme.cc b/lily/stencil-scheme.cc index 125b142d26..a092856a0a 100644 --- a/lily/stencil-scheme.cc +++ b/lily/stencil-scheme.cc @@ -18,7 +18,8 @@ LY_DEFINE (ly_stencil_translate_axis, "ly:stencil-translate-axis", 3, 0, 0, (SCM stil, SCM amount, SCM axis), - "Return a copy of @var{stil} but translated by @var{amount} in @var{axis} direction.") + "Return a copy of @var{stil} but translated by @var{amount}" + " in @var{axis} direction.") { Stencil *s = unsmob_stencil (stil); LY_ASSERT_SMOB (Stencil, stil, 1); @@ -35,8 +36,8 @@ LY_DEFINE (ly_stencil_translate_axis, "ly:stencil-translate-axis", LY_DEFINE (ly_stencil_translate, "ly:stencil-translate", 2, 0, 0, (SCM stil, SCM offset), - "Return a @var{stil}, " - "but translated by @var{offset} (a pair of numbers).") + "Return a @var{stil}, but translated by @var{offset}" + " (a pair of numbers).") { Stencil *s = unsmob_stencil (stil); LY_ASSERT_SMOB (Stencil, stil, 1); @@ -60,8 +61,9 @@ LY_DEFINE (ly_stencil_expr, "ly:stencil-expr", LY_DEFINE (ly_stencil_extent, "ly:stencil-extent", 2, 0, 0, (SCM stil, SCM axis), - "Return a pair of numbers signifying the extent of @var{stil} in " - "@var{axis} direction (0 or 1 for x and y axis respectively).") + "Return a pair of numbers signifying the extent of @var{stil} in" + " @var{axis} direction (@code{0} or @code{1} for x and" + " y@tie{}axis, respectively).") { Stencil *s = unsmob_stencil (stil); LY_ASSERT_SMOB (Stencil, stil, 1); @@ -72,7 +74,7 @@ LY_DEFINE (ly_stencil_extent, "ly:stencil-extent", LY_DEFINE (ly_stencil_empty_p, "ly:stencil-empty?", 1, 0, 0, (SCM stil), - "Return whether @var{stil} is empty ") + "Return whether @var{stil} is empty.") { Stencil *s = unsmob_stencil (stil); LY_ASSERT_SMOB (Stencil, stil, 1); @@ -84,13 +86,14 @@ LY_DEFINE (ly_stencil_combine_at_edge, "ly:stencil-combine-at-edge", SCM second, SCM padding, SCM minimum), - "Construct a stencil by putting @var{second} next to @var{first}. " - "@var{axis} can be 0 (x-axis) or 1 (y-axis), " - "@var{direction} can be -1 (left or down) or 1 (right or up). " - "The stencils are juxtaposed with @var{padding} as extra space. " - "If this puts the reference points closer than @var{minimum}, " - "they are moved by the latter amount." - "@var{first} and @var{second} may also be '() or #f.") + "Construct a stencil by putting @var{second} next to @var{first}." + " @var{axis} can be 0 (x-axis) or@tie{}1 (y-axis)." + " @var{direction} can be -1 (left or down) or@tie{}1 (right or" + " up). The stencils are juxtaposed with @var{padding} as extra" + " space. If this puts the reference points closer than" + " @var{minimum}, they are moved by the latter amount." + " @var{first} and @var{second} may also be @code{'()} or" + " @code{#f}.") { Stencil *s1 = unsmob_stencil (first); Stencil *s2 = unsmob_stencil (second); @@ -128,7 +131,7 @@ LY_DEFINE (ly_stencil_combine_at_edge, "ly:stencil-combine-at-edge", LY_DEFINE (ly_stencil_add, "ly:stencil-add", 0, 0, 1, (SCM args), - "Combine stencils. Takes any number of arguments.") + "Combine stencils. Takes any number of arguments.") { #define FUNC_NAME __FUNCTION__ SCM_VALIDATE_REST_ARGUMENT (args); @@ -156,22 +159,19 @@ LY_DEFINE (ly_stencil_add, "ly:stencil-add", LY_DEFINE (ly_make_stencil, "ly:make-stencil", 1, 2, 0, (SCM expr, SCM xext, SCM yext), - "Stencils are device independent output expressions. " - "They carry two pieces of information:\n" - + "Stencils are device independent output expressions." + " They carry two pieces of information:\n" + "\n" "@enumerate\n" - "@item\n" - "A specification of how to print this object. " - "This specification is processed by the output backends, " - "for example @file{scm/output-ps.scm}.\n" - + "A specification of how to print this object." + " This specification is processed by the output backends," + " for example @file{scm/output-ps.scm}.\n" + "\n" "@item\n" - "The vertical and horizontal extents of the object, " - "given as pairs. " - "If an extent is unspecified (or if you use " - "@code{(1000 . -1000)} as its value), it is taken to be empty.\n" - + "The vertical and horizontal extents of the object, given as" + " pairs. If an extent is unspecified (or if you use" + " @code{(1000 . -1000)} as its value), it is taken to be empty.\n" "@end enumerate\n") { SCM_ASSERT_TYPE (!scm_is_pair (expr) @@ -200,9 +200,9 @@ LY_DEFINE (ly_make_stencil, "ly:make-stencil", LY_DEFINE (ly_stencil_aligned_to, "ly:stencil-aligned-to", 3, 0, 0, (SCM stil, SCM axis, SCM dir), - "Align @var{stil} using its own extents. " - "@var{dir} is a number -1, 1 are left and right respectively. " - "Other values are interpolated (so 0 means the center).") + "Align @var{stil} using its own extents. @var{dir} is a number." + " @code{-1} and @code{1} are left and right, respectively." + " Other values are interpolated (so @code{0} means the center).") { LY_ASSERT_SMOB (Stencil, stil, 1); LY_ASSERT_TYPE (is_axis, axis, 2); @@ -217,7 +217,8 @@ LY_DEFINE (ly_stencil_aligned_to, "ly:stencil-aligned-to", LY_DEFINE (ly_stencil_fonts, "ly:stencil-fonts", 1, 0, 0, (SCM s), - " Analyse @var{s}, and return a list of fonts used in @var{s}.") + "Analyze @var{s}, and return a list of fonts used" + " in@tie{}@var{s}.") { LY_ASSERT_SMOB (Stencil, s, 1); Stencil *stil = unsmob_stencil (s); @@ -250,7 +251,8 @@ void stencil_interpret_in_scm (void *p, SCM expr) LY_DEFINE (ly_interpret_stencil_expression, "ly:interpret-stencil-expression", 4, 0, 0, (SCM expr, SCM func, SCM arg1, SCM offset), - "Parse EXPR, feed bits to FUNC with first arg ARG1") + "Parse @var{expr}, feed bits to @var{func} with first arg" + " @var{arg1} having offset @var{offset}.") { LY_ASSERT_TYPE (ly_is_procedure, func, 2); @@ -267,9 +269,10 @@ LY_DEFINE (ly_interpret_stencil_expression, "ly:interpret-stencil-expression", LY_DEFINE (ly_bracket, "ly:bracket", 4, 0, 0, (SCM a, SCM iv, SCM t, SCM p), - "Make a bracket in direction @var{a}. The extent of the bracket is " - "given by @var{iv}. The wings protude by an amount of @var{p}, which " - "may be negative. The thickness is given by @var{t}.") + "Make a bracket in direction@tie{}@var{a}. The extent of the" + " bracket is given by @var{iv}. The wings protude by an amount" + " of@tie{}@var{p}, which may be negative. The thickness is given" + " by@tie{}@var{t}.") { LY_ASSERT_TYPE (is_axis, a, 1); LY_ASSERT_TYPE (is_number_pair, iv, 2); @@ -284,7 +287,8 @@ LY_DEFINE (ly_bracket, "ly:bracket", LY_DEFINE (ly_stencil_rotate, "ly:stencil-rotate", 4, 0, 0, (SCM stil, SCM angle, SCM x, SCM y), - "Return a @var{stil} rotated @var{angle} degrees around point (@var{x}, @var{y}).") + "Return a stencil @var{stil} rotated @var{angle} degrees around" + " point (@var{x}, @var{y}).") { Stencil *s = unsmob_stencil (stil); LY_ASSERT_SMOB (Stencil, stil, 1); @@ -304,9 +308,8 @@ LY_DEFINE (ly_stencil_rotate, "ly:stencil-rotate", LY_DEFINE (ly_round_filled_box, "ly:round-filled-box", 3, 0, 0, (SCM xext, SCM yext, SCM blot), - "Make a @code{Stencil} " - "that prints a black box of dimensions @var{xext}, " - "@var{yext} and roundness @var{blot}.") + "Make a @code{Stencil} object that prints a black box of" + " dimensions @var{xext}, @var{yext} and roundness @var{blot}.") { LY_ASSERT_TYPE (is_number_pair, xext, 1); LY_ASSERT_TYPE (is_number_pair, yext, 2); @@ -319,7 +322,7 @@ LY_DEFINE (ly_round_filled_box, "ly:round-filled-box", LY_DEFINE (ly_register_stencil_expression, "ly:register-stencil-expression", 1, 0, 0, (SCM symbol), - "Add @var{symbol} as head of a stencil expression") + "Add @var{symbol} as head of a stencil expression.") { LY_ASSERT_TYPE (ly_is_symbol, symbol, 1); register_stencil_head (symbol); diff --git a/lily/stream-event-scheme.cc b/lily/stream-event-scheme.cc index 04df26a722..f578a8332a 100644 --- a/lily/stream-event-scheme.cc +++ b/lily/stream-event-scheme.cc @@ -10,7 +10,8 @@ LY_DEFINE (ly_make_stream_event, "ly:make-stream-event", 1, 1, 0, (SCM cl, SCM proplist), - "Creates a stream event of class @var{cl} with the given mutable property list.\n" ) + "Create a stream event of class @var{cl} with the given" + " mutable property list.") { LY_ASSERT_TYPE (ly_is_symbol, cl, 1); @@ -26,8 +27,8 @@ LY_DEFINE (ly_make_stream_event, "ly:make-stream-event", LY_DEFINE (ly_event_property, "ly:event-property", 2, 0, 0, (SCM sev, SCM sym), - "Get the property @var{sym} of stream event @var{mus}.\n" - "If @var{sym} is undefined, return @code{'()}.\n") + "Get the property @var{sym} of stream event @var{mus}." + " If @var{sym} is undefined, return @code{'()}.") { LY_ASSERT_SMOB (Stream_event, sev, 1); LY_ASSERT_TYPE (ly_is_symbol, sym, 2); @@ -49,7 +50,7 @@ LY_DEFINE (ly_event_set_property_x, "ly:event-set-property!", LY_DEFINE (ly_event_deep_copy, "ly:event-deep-copy", 1, 0, 0, (SCM m), - "Copy @var{m} and all sub expressions of @var{m}") + "Copy @var{m} and all sub expressions of@tie{}@var{m}.") { SCM copy = m; if (Stream_event *ev = unsmob_stream_event (m)) diff --git a/lily/system-scheme.cc b/lily/system-scheme.cc index d0b7cfc9b2..284dc4102c 100644 --- a/lily/system-scheme.cc +++ b/lily/system-scheme.cc @@ -13,8 +13,8 @@ LY_DEFINE (ly_system_print, "ly:system-print", 1, 0, 0, (SCM system), - "Draw the system and return the prob containing its " - "stencil.") + "Draw the system and return the prob containing its" + " stencil.") { Grob *me = unsmob_grob (system); System *me_system = dynamic_cast (me); @@ -25,9 +25,9 @@ LY_DEFINE (ly_system_print, "ly:system-print", LY_DEFINE (ly_system_stretch, "ly:system-stretch", 2, 0, 0, (SCM system, SCM amount_scm), - "Stretch the system vertically by the given amount. " - "This must be called before the system is drawn (for example " - "with ly:system-print).") + "Stretch the system vertically by the given amount." + " This must be called before the system is drawn (for example" + " with @code{ly:system-print}).") { Grob *me = unsmob_grob (system); Real amount = robust_scm2double (amount_scm, 0.0); diff --git a/lily/text-interface.cc b/lily/text-interface.cc index 0c514a35d8..de773b62ca 100644 --- a/lily/text-interface.cc +++ b/lily/text-interface.cc @@ -35,15 +35,14 @@ Text_interface::interpret_string (SCM layout_smob, } MAKE_SCHEME_CALLBACK_WITH_OPTARGS (Text_interface, interpret_markup, 3, 0, - "Convert a text markup into a stencil. " -"Takes 3 arguments, @var{layout}, @var{props} and @var{markup}. " -"\n\n" -"@var{layout} is a @code{\\layout} block; it may be obtained from a grob with " -"@code{ly:grob-layout}. @var{props} is a alist chain, ie. a list of alists. " -"This is typically obtained with " -"@code{(ly:grob-alist-chain (ly:layout-lookup layout 'text-font-defaults))}. " -"@var{markup} is the markup text to be processed. " - ); + "Convert a text markup into a stencil." +" Takes three arguments, @var{layout}, @var{props}, and @var{markup}.\n" +"\n" +"@var{layout} is a @code{\\layout} block; it may be obtained from a grob with" +" @code{ly:grob-layout}. @var{props} is a alist chain, ie. a list of alists." +" This is typically obtained with" +" @code{(ly:grob-alist-chain (ly:layout-lookup layout 'text-font-defaults))}." +" @var{markup} is the markup text to be processed."); SCM Text_interface::interpret_markup (SCM layout_smob, SCM props, SCM markup) { diff --git a/lily/text-metrics.cc b/lily/text-metrics.cc index 05b17fdfcc..c83f561dc7 100644 --- a/lily/text-metrics.cc +++ b/lily/text-metrics.cc @@ -50,7 +50,8 @@ lookup_tex_text_dimension (Font_metric *font, SCM text) LY_DEFINE (ly_load_text_dimensions, "ly:load-text-dimensions", 1, 0, 0, (SCM dimension_alist), - "Load dimensions from TeX in a (KEY . (W H D)) format alist") + "Load dimensions from @TeX{} in a @code{(KEY . (W H D))} format" + " alist.") { if (!text_dimension_hash_tab) { diff --git a/lily/translator-ctors.cc b/lily/translator-ctors.cc index f4eaeaf31a..c024abe388 100644 --- a/lily/translator-ctors.cc +++ b/lily/translator-ctors.cc @@ -19,7 +19,8 @@ Scheme_hash_table *global_translator_dict = 0; LY_DEFINE (get_all_translators, "ly:get-all-translators", 0, 0, 0, (), - "Return a list of all translator objects that may be instantiated. ") + "Return a list of all translator objects that may be" + " instantiated.") { SCM l = global_translator_dict ? global_translator_dict->to_alist () : SCM_EOL; diff --git a/lily/translator-scheme.cc b/lily/translator-scheme.cc index 31e7afa92e..71fa6af2c2 100644 --- a/lily/translator-scheme.cc +++ b/lily/translator-scheme.cc @@ -12,8 +12,8 @@ LY_DEFINE (ly_translator_name, "ly:translator-name", 1, 0, 0, (SCM trans), - "Return the type name of the translator object @var{trans}. " - "The name is a symbol.") + "Return the type name of the translator object @var{trans}." + " The name is a symbol.") { LY_ASSERT_SMOB (Translator, trans, 1); Translator *tr = unsmob_translator (trans); @@ -23,7 +23,7 @@ LY_DEFINE (ly_translator_name, "ly:translator-name", LY_DEFINE (ly_translator_description, "ly:translator-description", 1, 0, 0, (SCM me), - "Return an alist of properties of translator @var{me}.") + "Return an alist of properties of translator @var{me}.") { LY_ASSERT_SMOB (Translator, me, 1); Translator *tr = unsmob_translator (me); diff --git a/lily/translator.cc b/lily/translator.cc index ae1dfbe7ff..d0ed1e5213 100644 --- a/lily/translator.cc +++ b/lily/translator.cc @@ -132,7 +132,8 @@ ensure_listened_hash () LY_DEFINE (ly_get_listened_event_classes, "ly:get-listened-event-classes", 0, 0, 0, (), - "Returns a list of all event classes that some translator listens to.") + "Return a list of all event classes that some translator listens" + " to.") { ensure_listened_hash (); return ly_hash_table_keys (listened_event_class_table); diff --git a/make/doclang-rules.make b/make/doclang-rules.make index e69de29bb2..ea30561d83 100644 --- a/make/doclang-rules.make +++ b/make/doclang-rules.make @@ -0,0 +1 @@ +#empty diff --git a/make/doclang-targets.make b/make/doclang-targets.make index a259350175..ec5ac2bd22 100644 --- a/make/doclang-targets.make +++ b/make/doclang-targets.make @@ -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,28 @@ $(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 + cd $(outdir); find -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME' | xargs $(PYTHON) ../$(buildscript-dir)/mass-link.py --prepend-suffix .$(ISOLANG) hard . $(top-build-dir)/Documentation/user/$(outdir) lilypond.pdf + cd $(outdir); find \( -name 'lily-??????????.png' -o -name 'lily-??????????.ly' \) -a -not -type l | xargs $(PYTHON) ../$(buildscript-dir)/mass-link.py hard . $(top-build-dir)/Documentation/user/$(outdir) +# FIXME +# 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 diff --git a/make/doclang-vars.make b/make/doclang-vars.make index e69de29bb2..ea30561d83 100644 --- a/make/doclang-vars.make +++ b/make/doclang-vars.make @@ -0,0 +1 @@ +#empty diff --git a/po/es.po b/po/es.po index d32790e9d2..3eed95f1c8 100644 --- 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 , 2002, 2004. +# Daniel Tonda , 2006. +# Francisco Vila , 2007. # -# Quique , 2002. -# Daniel Tonda Castillo , 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 \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 \n" "Language-Team: Spanish \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 cambiará 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 to ~S" msgstr "no se puede convertir 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 \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 \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 \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 ..." +#~ msgstr "%s salida hacia ..." + +#~ 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)" diff --git a/po/nl.po b/po/nl.po index 1ec73c63b1..8edc74bc82 100644 --- a/po/nl.po +++ b/po/nl.po @@ -10,69 +10,19 @@ 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 \n" "Language-Team: Dutch \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: \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 %(mail_address)s." -msgstr "" -"Meld fouten naar %(mail_address)s." - -#: add_html_footer.py:54 -#, python-format -msgid "Other languages: %s." -msgstr "Andere talen: %s." - -#: add_html_footer.py:55 -#, python-format -msgid "About automatic language selection." -msgstr "Gebruik van automatische taalkeuze." - -#: 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 of ." +"meld onjuistheden in de vertaling aan of ." #: 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 \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 ..." +#~ msgstr "%s uitvoer naar ..." + +#~ 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 "#" +#~ msgstr "#" + +#~ 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 %(mail_address)s." +#~ msgstr "Meld fouten naar %(mail_address)s." + +#~ msgid "Other languages: %s." +#~ msgstr "Andere talen: %s." + +#~ msgid "About automatic language selection." +#~ msgstr "Gebruik van automatische taalkeuze.\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/scm/define-music-display-methods.scm b/scm/define-music-display-methods.scm index 3212e5f0b8..e3afd7f273 100644 --- a/scm/define-music-display-methods.scm +++ b/scm/define-music-display-methods.scm @@ -689,9 +689,6 @@ Otherwise, return #f." (define-display-method UnfoldedRepeatedMusic (expr parser) (repeat->lily-string expr "unfold" parser)) -(define-display-method FoldedRepeatedMusic (expr parser) - (repeat->lily-string expr "fold" parser)) - (define-display-method PercentRepeatedMusic (expr parser) (repeat->lily-string expr "percent" parser)) diff --git a/scm/define-music-properties.scm b/scm/define-music-properties.scm index e3a6e3d9a7..2e95b5a7c9 100644 --- a/scm/define-music-properties.scm +++ b/scm/define-music-properties.scm @@ -1,7 +1,7 @@ ;;;; music-property-description.scm -- part of generated backend documentation ;;;; ;;;; source file of the GNU LilyPond music typesetter -;;;; +;;;; ;;;; (c) 1998--2006 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen @@ -16,120 +16,171 @@ (map (lambda (x) (apply music-property-description x)) `( - (X-offset ,number? "Offset of resulting grob; only used for balloon texts.") - (Y-offset ,number? "Offset of resulting grob; only used for balloon texts. ") - - (alteration ,number? "alteration for figured bass") + (X-offset ,number? + "Offset of resulting grob; only used for balloon texts.") + (Y-offset ,number? + "Offset of resulting grob; only used for balloon texts.") + (alteration ,number? "Alteration for figured bass.") (absolute-octave ,integer? "The absolute octave for a octave check note.") (articulations ,ly:music-list? "Articulation events specifically for this note.") - (articulation-type ,string? "key for script definitions alist. - -TODO: consider making type into symbol ") - (augmented ,boolean? "This figure is for an augmented figured bass (with +) sign.") - (associated-context ,string? "Name of the Voice context associated with this \\newaddlyrics section") - (bass ,boolean? "Set if this note is a bass note in a chord") - (bracket-start ,boolean? "start a bracket -here. TODO: use SpanEvents?") - (bracket-stop ,boolean? "stop a bracket here.") + (articulation-type ,string? "Key for script definitions alist. + +TODO: Consider making type into symbol.") + (augmented ,boolean? "This figure is for an augmented figured bass +(with @code{+} sign).") + (associated-context ,string? "Name of the Voice context associated with +this @code{\\newaddlyrics} section.") + + (bass ,boolean? "Set if this note is a bass note in a chord.") + (bracket-start ,boolean? "Start a bracket here. + +TODO: Use SpanEvents?") + (bracket-stop ,boolean? "Stop a bracket here.") (break-penalty ,number? "Penalty for line break hint.") - (break-permission ,symbol? "Whether to allow, forbid or force a line break.") - (cautionary ,boolean? "If set, this alteration needs cautionary accidental") - (change-to-id ,string? "name of the context to change to ") - (change-to-type ,symbol? "type of the context to change to.") - (compress-procedure ,procedure? "compress this music expression. Argument 1: the music, arg 2: factor") - (context-id ,string? "name of context") - (context-type ,symbol? "type of context") + (break-permission ,symbol? + "Whether to allow, forbid or force a line break.") + + (cautionary ,boolean? "If set, this alteration needs a +cautionary accidental.") + (change-to-id ,string? "Name of the context to change to.") + (change-to-type ,symbol? "Type of the context to change to.") + (compress-procedure ,procedure? "Compress this music expression. +Arg@tie{}1: the music, arg@tie{}2: factor.") + (context-id ,string? "Name of context.") + (context-type ,symbol? "Type of context.") (create-new ,boolean? "Create a fresh context.") - (delta-step ,number? "How much should a fall change pitch?") - (descend-only ,boolean? "If set, this @code{\\context} will only descend in the context tree.") - (denominator ,integer? "denominator in a time signature") - (digit ,integer? "digit for fingering") + + (delta-step ,number? "How much should a fall change pitch?") + (descend-only ,boolean? "If set, this @code{\\context} only descends +in the context tree.") + (denominator ,integer? "Denominator in a time signature.") + (digit ,integer? "Digit for fingering.") (diminished ,boolean? "This bass figure should be slashed.") (direction ,ly:dir? "Print this up or down?") (drum-type ,symbol? "Which percussion instrument to play this note on.") - (duration ,ly:duration? "Duration of this note/lyric.") - (error-found ,boolean? "If true, a parsing error was found in this expression") - (element ,ly:music? "The single child of a Music_wrapper music object, or the body of a repeat.") - (elements ,ly:music-list? "A list of elements for sequential of simultaneous music, or the alternatives of repeated music. ") - (elements-callback ,procedure? "Return a list of children, for use by a sequential iterator. Takes a single Music parameter") - (expected-beam-count ,integer? "Expected number of non-tremolo beams in a tremolo repeat") - (figure ,integer? "a bass figure") - (force-accidental ,boolean? "If set, a cautionary accidental should always be printed on this note") - (grob-property ,symbol? "The symbol of the grob property to set. ") - (grob-property-path ,list? "A list of symbols, locating a nested grob property, e.g. (beamed-lengths details). ") - (grob-value ,scheme? "The value of the grob property to set") - (input-tag ,scheme? "Arbitrary marker to relate input and output") + (duration ,ly:duration? "Duration of this note or lyric.") + + (error-found ,boolean? + "If true, a parsing error was found in this expression.") + (element ,ly:music? "The single child of a Music_wrapper music object, +or the body of a repeat.") + (elements ,ly:music-list? "A list of elements for sequential of +simultaneous music, or the alternatives of repeated music.") + (elements-callback ,procedure? "Return a list of children, for use by +a sequential iterator. Takes a single music parameter.") + (expected-beam-count ,integer? "Expected number of non-tremolo beams +in a tremolo repeat.") + + (figure ,integer? "A bass figure.") + (force-accidental ,boolean? "If set, a cautionary accidental should +always be printed on this note.") + + (grob-property ,symbol? "The symbol of the grob property to set.") + (grob-property-path ,list? "A list of symbols, locating a nested grob +property, e.g., @code{(beamed-lengths details)}.") + (grob-value ,scheme? "The value of the grob property to set.") + + (input-tag ,scheme? "Arbitrary marker to relate input and output.") (inversion ,boolean? "If set, this chord note is inverted.") - (iterator-ctor ,procedure? "Function to construct music-event-iterator object for this Music") - - (label ,markup? "label of a mark.") + (iterator-ctor ,procedure? "Function to construct a +@code{music-event-iterator} object for this music.") + + (label ,markup? "Label of a mark.") (last-pitch ,ly:pitch? "The last pitch after relativization.") - (length ,ly:moment? "The duration of this music") - (length-callback ,procedure? "How to compute the duration of this music. This property can only be defined as initializer in @file{define-music-types.scm}.") - (line-break-permission ,symbol? "When the music is at top-level, whether to allow, forbid or force a line break.") + (length ,ly:moment? "The duration of this music.") + (length-callback ,procedure? "How to compute the duration of this music. +This property can only be defined as initializer in +@file{scm/@/define-music-types.scm}.") + (line-break-permission ,symbol? "When the music is at top-level, +whether to allow, forbid or force a line break.") + (metronome-count ,number? "How many beats in a minute?") - (name ,symbol? "Name of this music object") - (no-continuation ,boolean? "If set, disallow continuation lines") - (numerator ,integer? "numerator of a time signature") + + (name ,symbol? "Name of this music object.") + (no-continuation ,boolean? "If set, disallow continuation lines.") + (numerator ,integer? "Numerator of a time signature.") + (once ,boolean? "Apply this operation only during one time step?") - (octavation ,integer? "This pitch was octavated by how many octaves? For chord inversions, this is negative.") - (origin ,ly:input-location? "where was this piece of music defined?") - (page-break-permission ,symbol? "When the music is at top-level, whether to allow, forbid or force a page break.") - (page-label ,symbol? "The label of a page marker") - (page-marker ,boolean? "If true, and the music expression is found at top-level, a page marker object is instanciated instead of a score.") - (page-turn-permission ,symbol? "When the music is at top-level, whether to allow, forbid or force a page turn.") - (part-combine-status ,symbol? - "Change to what kind of state? Options are -solo1, solo2 and unisono") + (octavation ,integer? "This pitch was octavated by how many octaves? +For chord inversions, this is negative.") + (origin ,ly:input-location? "Where was this piece of music defined?") + + (page-break-permission ,symbol? "When the music is at top-level, +whether to allow, forbid or force a page break.") + (page-label ,symbol? "The label of a page marker.") + (page-marker ,boolean? "If true, and the music expression is found at +top-level, a page marker object is instanciated instead of a score.") + (page-turn-permission ,symbol? "When the music is at top-level, +whether to allow, forbid or force a page turn.") + (part-combine-status ,symbol? "Change to what kind of state? +Options are @code{solo1}, @code{solo2} and @code{unisono}.") (parenthesize ,boolean? "Enclose resulting objects in parentheses?") - (pitch ,ly:pitch? "the pitch of this note") - (pitch-alist ,list? "list of pitches jointly forming the scale of a key signature") - (pop-first ,boolean? "Do a revert before we try to do a override on some grob property.") - (prob-property ,symbol? "The symbol of the prob property to set. ") - (procedure ,procedure? - "The function to run with \\applycontext. + (pitch ,ly:pitch? "The pitch of this note.") + (pitch-alist ,list? "A list of pitches jointly forming the scale +of a key signature.") + (pop-first ,boolean? "Do a revert before we try to do a override +on some grob property.") + (prob-property ,symbol? "The symbol of the prob property to set.") + (procedure ,procedure? "The function to run with @code{\\applycontext}. It must take a single argument, being the context.") - (property-operations ,list? - "Do these operations for instantiating the context.") - (quoted-events ,vector? "A vector of with moment/event-list entries.") + (property-operations ,list? "Do these operations for instantiating +the context.") + + (quoted-events ,vector? "A vector of with @code{moment} and +@code{event-list} entries.") (quoted-music-name ,string? "The name of the voice to quote.") - (quoted-voice-direction ,ly:dir? "Should the quoted voice be up-stem or down-stem?") - (quoted-context-type ,symbol? "The name of the context to direct quotes to, eg., @code{Voice}.") - (quoted-context-id ,string? "The id of the context to direct quotes to, eg., @code{cue}.") - (quoted-transposition ,ly:pitch? "The pitch used for the quote, overriding \\transposition") - (to-relative-callback ,procedure? "How to transform a piece of music to relative pitches") - (repeat-count ,integer? "do a @code{\repeat} how ofen?") + (quoted-voice-direction ,ly:dir? "Should the quoted voice be up-stem +or down-stem?") + (quoted-context-type ,symbol? "The name of the context to +direct quotes to, e.g., @code{Voice}.") + (quoted-context-id ,string? "The ID of the context to direct quotes to, +e.g., @code{cue}.") + (quoted-transposition ,ly:pitch? "The pitch used for the quote, +overriding @code{\\transposition}.") + + (repeat-count ,integer? "Do a @code{\\repeat} how often?") + (span-direction ,ly:dir? "Does this start or stop a spanner?") (span-type ,string? "What kind of spanner should be created? -TODO: consider making type into symbol") - (split-list ,list? "splitting moments for part combiner.") - (start-callback ,procedure? "Function to compute the negative -length of starting grace notes. This property can only be defined as -initializer in @file{define-music-types.scm}.") - (string-number ,integer? "The number of the string in a StringNumberEvent") - (symbol ,symbol? "Grob name to perform an override/revert on.") - (tags ,list? "List of symbols that for denoting extra details, -e.g. @code{\\tag #'part ...} could tag a piece of music as only being active in a part.") - (text-type ,symbol? "Particular type of text script (e.g. finger, dynamic).") - - (text ,markup? "markup expression to be printed") +TODO: Consider making type into symbol.") + (split-list ,list? "Splitting moments for part combiner.") + (start-callback ,procedure? "Function to compute the negative length +of starting grace notes. This property can only be defined as initializer +in @file{scm/@/define-music-types.scm}.") + (string-number ,integer? "The number of the string in +a @code{StringNumberEvent.}") + (symbol ,symbol? "Grob name to perform an override or revert on.") + + (tags ,list? "List of symbols that for denoting extra details, e.g., +@code{\\tag #'part @dots{}} could tag a piece of music as only being active +in a part.") + (text-type ,symbol? + "Particular type of text script (e.g., finger, dynamic).") + (text ,markup? "Markup expression to be printed.") (tempo-unit ,ly:duration? "The unit for the metronome count.") - (tonic ,ly:pitch? "Base of the scale") - (tremolo-type ,integer? "speed of tremolo, e.g. 16 for c4:16") + (to-relative-callback ,procedure? "How to transform a piece of music +to relative pitches.") + (tonic ,ly:pitch? "Base of the scale.") + (tremolo-type ,integer? "Speed of tremolo, e.g., 16 for @code{c4:16}.") (trill-pitch ,ly:pitch? "Pitch of other note of the trill.") - (type ,symbol? "The type of this music object. Determines iteration in some cases.") + (type ,symbol? "The type of this music object. +Determines iteration in some cases.") (types ,list? "The types of this music object; determines by what engraver this music expression is processed.") (tweaks ,list? "An alist of properties to override in the backend --for the grob made of this event.") - (value ,scheme? "Assignment value for a -translation property") - (void ,boolean? "If this property is #t, then the music expression is to be -discarded by the toplevel music handler.") - (what ,symbol? "What to change for auto-change. FIXME, naming") +for the grob made of this event.") + (untransposable ,boolean? "If set, this music is not transposed.") - ))) + + (value ,scheme? "Assignment value for a translation property.") + (void ,boolean? "If this property is @code{#t}, then the +music expression is to be discarded by the toplevel music handler.") + + (what ,symbol? "What to change for auto-change. + +FIXME: Naming.") + ))) diff --git a/scm/define-music-types.scm b/scm/define-music-types.scm index c6a83c42c2..993d93b6d0 100644 --- a/scm/define-music-types.scm +++ b/scm/define-music-types.scm @@ -1,14 +1,15 @@ ;;;; define-music-types.scm -- ;;;; ;;;; source file of the GNU LilyPond music typesetter -;;;; +;;;; ;;;; (c) 1998--2006 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;; TODO: should link back into user manual. (define (mm-rest-child-list music) - "Generate events for multimeasure rests, to be used by the sequential-iterator" + "Generate events for multimeasure rests, +to be used by the sequential-iterator" (let ((location (ly:music-property music 'origin)) (duration (ly:music-property music 'duration))) (list (make-music 'BarCheck @@ -23,11 +24,11 @@ (define-public music-descriptions `( (AbsoluteDynamicEvent - . ( - (description . "Creates a dynamic mark. + . ((description . "Create a dynamic mark. -Syntax: @var{note}@code{\\x}, -where x is one of \\ppp, \\pp, \\p, \\mp, \\mf, \\f, \\ff, \\fff.") +Syntax: @var{note}@code{\\x}, where @code{\\x} is a dynamic mark like +@code{\\ppp} or @code{\\sfz}. A complete list is in file +@file{ly/@/dynamic-scripts-init.ly}.") (types . (general-music event dynamic-event absolute-dynamic-event)) )) @@ -35,414 +36,401 @@ where x is one of \\ppp, \\pp, \\p, \\mp, \\mf, \\f, \\ff, \\fff.") . ((description . "Print an annotation of an output element.") (types . (general-music event annotate-output-event)) )) - + (ApplyContext - . ( - (description . "Call the argument with the current context during interpreting phase") + . ((description . "Call the argument with the current context during +interpreting phase.") (types . (general-music apply-context)) (iterator-ctor . ,ly:apply-context-iterator::constructor) )) - - (ApplyOutputEvent - . ( - (description . " -Call the argument with all current grobs during interpreting phase. -Syntax - -\\applyOutput #'Context FUNC + (ApplyOutputEvent + . ((description . "Call the argument with all current grobs during +interpreting phase. -arguments to func are 1. the grob, 2. the originating context, -3. context where FUNC is called. +Syntax: @code{\\applyOutput #'@var{context} @var{func}} -") +Arguments to @var{func} are 1.@tie{}the grob, 2.@tie{}the originating +context, and 3.@tie{}the context where @var{func} is called.") (types . (general-music event apply-output-event)) )) - (ArpeggioEvent - . ( - (description . "Make an arpeggio on this note. -Syntax: -@var{note}-@code{\\arpeggio}") + (ArpeggioEvent + . ((description . "Make an arpeggio on this note. + +Syntax: @var{note}@code{-\\arpeggio}") (types . (general-music arpeggio-event event)) )) ;; todo: use articulation-event for slur as well. - ;; separate non articulation scripts + ;; separate non articulation scripts (ArticulationEvent - . ( - (description . "Adds an articulation marking to a note. - -Syntax: -@var{note}@code{X}@code{Y}, where X is a direction (up @code{^}, down -@code{_}, or LilyPond's choice (no direction specified)), and where Y -is an articulation (such as @code{-.}, @code{->}, @code{\\tenuto}, -@code{\\downbow}). See the user manual for details.") + . ((description . "Add an articulation marking to a note. +Syntax: @var{note}@code{x}@code{y}, where @code{x} is a direction +(@code{^} for up or @code{_} for down), or LilyPond's choice +(no direction specified)), and where @code{y} is an articulation +(such as @code{-.}, @code{->}, @code{\\tenuto}, @code{\\downbow}). +See the user manual for details.") (types . (general-music event articulation-event script-event)) - )) + )) + (AutoChangeMusic - . ( - (description . "Used for making voices that switch between piano staves automatically.") + . ((description . "Used for making voices that switch between +piano staves automatically.") (iterator-ctor . ,ly:auto-change-iterator::constructor) (start-callback . ,ly:music-wrapper::start-callback) (length-callback . ,ly:music-wrapper::length-callback) (types . (general-music music-wrapper-music auto-change-instruction)) )) + (BarCheck - . ( - (description . - "Check whether this music coincides with the start of the measure.") + . ((description . "Check whether this music coincides with +the start of the measure.") (types . (general-music bar-check)) (iterator-ctor . ,ly:bar-check-iterator::constructor) )) - (BassFigureEvent - . ( - (description . "Print a bass-figure text") + (BassFigureEvent + . ((description . "Print a bass-figure text.") (types . (general-music event rhythmic-event bass-figure-event)) )) - + (BeamEvent - . ( - (description . "Starts or stops a beam. + . ((description . "Start or stop a beam. -Syntax for manual control: -c8-[ c c-] c8") +Syntax for manual control: @code{c8-[ c c-] c8}") (types . (general-music event beam-event span-event)) )) + + (BeamForbidEvent + . ((description . "Specify that a note may not auto-beamed.") + (types . (general-music event beam-forbid-event)) + )) + (BendAfterEvent - . ((description . "A drop/fall/doit jazz articulation") + . ((description . "A drop/fall/doit jazz articulation.") (types . (general-music bend-after-event event)))) (BreathingEvent - . ( - (description . "Creates a `breath mark' or `comma'. + . ((description . "Create a @q{breath mark} or @q{comma}. -Syntax: -@var{note}\\breathe.") +Syntax: @var{note}@code{\\breathe}") (types . (general-music event breathing-event)) - )) + )) + (ContextChange - . ( - (description . "Change staves in Piano staff. + . ((description . "Change staves in Piano staff. -Syntax @code{\\translator Staff = @var{new-id}}.") - (iterator-ctor . , ly:change-iterator::constructor) +Syntax: @code{\\change Staff = @var{new-id}}") + (iterator-ctor . ,ly:change-iterator::constructor) (types . (general-music translator-change-instruction)) )) (ClusterNoteEvent - . ((description . "A note that is part of a cluster.") - - ;; not a note-event, to ensure that Note_engraver doesn't eat it. - (types . (general-music cluster-note-event melodic-event rhythmic-event event)) + . ((description . "A note that is part of a cluster.") + ;; not a note-event, to ensure that Note_engraver doesn't eat it. + (types . (general-music cluster-note-event melodic-event + rhythmic-event event)) )) - + (ContextSpeccedMusic - . ( - (description . "Interpret the argument music within a specific context.") + . ((description . "Interpret the argument music within a +specific context.") (iterator-ctor . ,ly:context-specced-music-iterator::constructor) (length-callback . ,ly:music-wrapper::length-callback) (start-callback . ,ly:music-wrapper::start-callback) (types . (context-specification general-music music-wrapper-music)) )) - + (CrescendoEvent - . ( - (description . "Begins or ends a crescendo. + . ((description . "Begin or end a crescendo. -Syntax: @var{note}\\cr -... @var{note}\\rc (you can also use \\<, \\!, \\cresc, and -\\endcresc. See the user manual for details.).") +Syntax: @var{note}@code{\\cr} @dots{} @var{note}@code{\\rc} - (types . (general-music span-event span-dynamic-event crescendo-event event)) - )) - (DecrescendoEvent - . ( - (description . "See @ref{CrescendoEvent}.") +You can also use @code{\\<}, @code{\\!}, @code{\\cresc}, and +@code{\\endcresc}. See the user manual for details.") + (types . (general-music span-event span-dynamic-event crescendo-event + event)) + )) - (types . (general-music span-event span-dynamic-event decrescendo-event event)) + (DecrescendoEvent + . ((description . "See @ref{CrescendoEvent}.") + (types . (general-music span-event span-dynamic-event decrescendo-event + event)) )) - - (ExtenderEvent - . ( - (description . "Extend lyrics.") + (ExtenderEvent + . ((description . "Extend lyrics.") (types . (general-music extender-event event)) )) (Event - . ( - (description . "Atomic music event.") + . ((description . "Atomic music event.") (types . (general-music event)) )) - + (EventChord - . ( - (description . "Internally used to group a set of events.") + . ((description . "Internally used to group a set of events.") (iterator-ctor . ,ly:event-chord-iterator::constructor) (length-callback . ,ly:music-sequence::maximum-length-callback) - (to-relative-callback . ,ly:music-sequence::event-chord-relative-callback) + (to-relative-callback . + ,ly:music-sequence::event-chord-relative-callback) (types . (general-music event-chord simultaneous-music)) )) - (FingeringEvent - . ( - (description . "Specify what finger to use for this note.") + . ((description . "Specify what finger to use for this note.") (types . (general-music fingering-event event)) )) - (BeamForbidEvent - . ( - (description . "Specify that a note may not auto-beamed ") - (types . (general-music event beam-forbid-event)) - )) + (GlissandoEvent - . ( - (description . "Start a glissando on this note.") + . ((description . "Start a glissando on this note.") (types . (general-music glissando-event event)) )) - + (GraceMusic - . ( - (description . "Interpret the argument as grace notes. ") + . ((description . "Interpret the argument as grace notes.") (start-callback . ,ly:grace-music::start-callback) (length . ,ZERO-MOMENT) (iterator-ctor . ,ly:grace-iterator::constructor) (types . (grace-music music-wrapper-music general-music)) )) - (NoteGroupingEvent - . ( - (description . "Start or stop grouping brackets.") - (types . (general-music event note-grouping-event)) - )) + (HarmonicEvent - . ( - (description . "Mark a note as harmonic") + . ((description . "Mark a note as harmonic.") (types . (general-music event harmonic-event)) )) - (HyphenEvent - . ( - (description . "A hyphen between lyric syllables.") + (HyphenEvent + . ((description . "A hyphen between lyric syllables.") (types . (general-music hyphen-event event)) )) - + (KeyChangeEvent - . ( - (description . "Change the key signature. + . ((description . "Change the key signature. -Syntax: @code{\\key } @var{name} @var{scale}.") +Syntax: @code{\\key} @var{name} @var{scale}") (to-relative-callback . ,(lambda (x p) p)) (types . (general-music key-change-event event)) )) + (LabelEvent - . ((description . "Place a bookmarking label") - (types . (general-music label-event event)))) + . ((description . "Place a bookmarking label.") + (types . (general-music label-event event)) + )) + (LaissezVibrerEvent . ((description . "Don't damp this chord. -Syntax: @var{note}\\laissezVibrer.") - +Syntax: @var{note}@code{\\laissezVibrer}") (types . (general-music event laissez-vibrer-event)) )) + (LigatureEvent - . ( - (description . "Start or end a ligature.") + . ((description . "Start or end a ligature.") (span-type . ligature) (types . (general-music span-event ligature-event event)) )) + (LineBreakEvent - . ( - (description . "Allow, forbid or force a line break.") + . ((description . "Allow, forbid or force a line break.") (types . (general-music line-break-event break-event event)) )) - + (LyricCombineMusic - . ( - (description . "Align lyrics to the start of notes. + . ((description . "Align lyrics to the start of notes. -Syntax @var{\\lyricsto }@var{voicename} @var{lyrics}.") +Syntax: @code{\\lyricsto} @var{voicename} @var{lyrics}") (length . ,ZERO-MOMENT) (types . (general-music lyric-combine-music)) (iterator-ctor . ,ly:lyric-combine-music-iterator::constructor) )) (LyricEvent - . ( - (description . "A lyric syllable. Must be entered in lyrics mode, i.e. -@code{\\lyrics @{ twinkle4 twinkle4 @} } .") - + . ((description . "A lyric syllable. Must be entered in lyrics mode, +i.e., @code{\\lyrics @{ twinkle4 twinkle4 @} }.") (types . (general-music rhythmic-event lyric-event event)) )) + (MarkEvent - . ( - (description . "Insert a rehearsal mark. + . ((description . "Insert a rehearsal mark. -Syntax: @code{\\mark} @var{marker}, -e.g. @code{\\mark \"A\"}.") +Syntax: @code{\\mark} @var{marker} +Example: @code{\\mark \"A\"}") (types . (general-music mark-event event)) )) + + (MultiMeasureRestEvent + . ((description . "Used internally by @code{MultiMeasureRestMusic} +to signal rests.") + (types . (general-music event rhythmic-event + multi-measure-rest-event)) + )) + (MultiMeasureRestMusic - . ( - (description . "Rests that may be compressed into Multi rests. + . ((description . "Rests that may be compressed into Multi rests. -Syntax -@code{R2.*4} for 4 measures in 3/4 time.") +Syntax: @code{R2.*4} for 4 measures in 3/4 time.") (iterator-ctor . ,ly:sequential-iterator::constructor) (elements-callback . ,mm-rest-child-list) (types . (general-music multi-measure-rest)) )) - (MultiMeasureRestEvent - . ( - (description . "Used internally by MultiMeasureRestMusic to signal rests") - (types . (general-music event rhythmic-event multi-measure-rest-event)) - )) - (MultiMeasureTextEvent - . ( - (description . "Texts on mm rests. + . ((description . "Texts on multi measure rests. + +Syntax: @code{R-\\markup @{ \\roman \"bla\" @}} -Syntax -@code{R-\\markup @{ \\roman \"bla\" @}}. Note the explicit font switch.") +Note the explicit font switch.") (types . (general-music event multi-measure-text-event)) )) (Music - . ( - (description . "Generic type for music expressions.") - - (types . (general-music)) + . ((description . "Generic type for music expressions.") + (types . (general-music)) )) + (NoteEvent - . ( - (description . "A note.") - (types . (general-music event note-event rhythmic-event melodic-event)) + . ((description . "A note.") + (types . (general-music event note-event rhythmic-event + melodic-event)) + )) + + (NoteGroupingEvent + . ((description . "Start or stop grouping brackets.") + (types . (general-music event note-grouping-event)) )) - - (OverrideProperty - . ( - (description . "Extend the definition of a graphical object. -SYNTAX + (OverrideProperty + . ((description . "Extend the definition of a graphical object. -@code{\\override [ @var{Ctxt} . ] @var{Obj} @var{prop} = @var{val}} -") - (types . (general-music layout-instruction-event override-property-event)) +Syntax: @code{\\override} [ @var{context} @code{.} ] +@var{object} @var{property} @code{=} @var{value}") + (types . (general-music layout-instruction-event + override-property-event)) (iterator-ctor . ,ly:push-property-iterator::constructor) )) + (PageBreakEvent - . ( - (description . "Allow, forbid or force a page break.") + . ((description . "Allow, forbid or force a page break.") (types . (general-music break-event page-break-event event)) )) + (PageTurnEvent - . ( - (description . "Allow, forbid or force a page turn.") + . ((description . "Allow, forbid or force a page turn.") (types . (general-music break-event page-turn-event event)) )) + (PartCombineMusic - . ( - (description . "Combine two parts on a staff, either merged or + . ((description . "Combine two parts on a staff, either merged or as separate voices.") (length-callback . ,ly:music-sequence::maximum-length-callback) (start-callback . ,ly:music-sequence::minimum-start-callback) (types . (general-music part-combine-music)) (iterator-ctor . ,ly:part-combine-iterator::constructor) )) + + (PercentEvent + . ((description . "Used internally to signal percent repeats.") + (types . (general-music event percent-event rhythmic-event)) + )) + + (PercentRepeatedMusic + . ((description . "Repeats encoded by percents.") + (iterator-ctor . ,ly:percent-repeat-iterator::constructor) + (start-callback . ,ly:repeated-music::first-start) + (length-callback . ,ly:repeated-music::unfolded-music-length) + (types . (general-music repeated-music percent-repeated-music)) + )) + + (PesOrFlexaEvent + . ((description . "Within a ligature, mark the previous and the +following note to form a pes (if melody goes up) or a flexa (if melody +goes down).") + (types . (general-music pes-or-flexa-event event)) + )) + (PhrasingSlurEvent - . ( - (description . "Start or end phrasing slur. + . ((description . "Start or end phrasing slur. -Syntax NOTE \\( and \\) NOTE") +Syntax: @var{note}@code{\\(} and @var{note}@code{\\)}") (types . (general-music span-event event phrasing-slur-event)) )) - + (PropertySet - . ( - (description . "Set a context property. + . ((description . "Set a context property. -Syntax: @code{\\property @var{context}.@var{prop} = @var{scheme-val}}.") +Syntax: @code{\\property @var{context}.@var{prop} = @var{scheme-val}}") (types . (layout-instruction-event general-music)) (iterator-ctor . ,ly:property-iterator::constructor) )) (PropertyUnset - . ( - (description . "Remove the definition of a context @code{\\property}.") - + . ((description . "Remove the definition of a context +@code{\\property}.") (types . (layout-instruction-event general-music)) (iterator-ctor . ,ly:property-unset-iterator::constructor) )) - (PercentEvent - . ( - (description . "Used internally to signal percent repeats.") - (types . (general-music event percent-event rhythmic-event)) - )) - - (PesOrFlexaEvent - . ( - (description . "Within a ligature, mark the previous and the -following note to form a pes (if melody goes up) or a flexa (if melody -goes down).") - - (types . (general-music pes-or-flexa-event event)) - )) - (QuoteMusic - . ( - (description . "Quote preprocessed snippets of music. ") + . ((description . "Quote preprocessed snippets of music.") (iterator-ctor . ,ly:music-wrapper-iterator::constructor) (length-callback . ,ly:music-wrapper::length-callback) (start-callback . ,ly:music-wrapper::start-callback) (types . (general-music music-wrapper-music)) )) - + (RelativeOctaveCheck . ((description . "Check if a pitch is in the correct octave.") (to-relative-callback . ,ly:relative-octave-check::relative-callback) (types . (general-music relative-octave-check)) )) - - (RepeatedMusic - . ( - (description . "Repeat music in different ways") - (types . (general-music repeated-music)) + + (RelativeOctaveMusic + . ((description . "Music that was entered in relative octave notation.") + (to-relative-callback . ,ly:relative-octave-music::relative-callback) + (iterator-ctor . ,ly:music-wrapper-iterator::constructor) + (length-callback . ,ly:music-wrapper::length-callback) + (start-callback . ,ly:music-wrapper::start-callback) + (types . (music-wrapper-music general-music relative-octave-music)) )) + (RepeatTieEvent - . ( - (description . "Ties for starting a second volta bracket.") + . ((description . "Ties for starting a second volta bracket.") (types . (general-music event repeat-tie-event)) )) - (RestEvent - . ( - (description . "A Rest. -Syntax @code{r4} for a quarter rest. ") + (RepeatedMusic + . ((description . "Repeat music in different ways.") + (types . (general-music repeated-music)) + )) + + (RestEvent + . ((description . "A Rest. +Syntax: @code{r4} for a quarter rest.") (types . (general-music event rhythmic-event rest-event)) - )) - (RevertProperty - . ( - (description . "The opposite of @ref{OverrideProperty}: remove a -previously added property from a graphical object definition - ") + )) + (RevertProperty + . ((description . "The opposite of @ref{OverrideProperty}: remove a +previously added property from a graphical object definition.") (types . (general-music layout-instruction-event)) - (iterator-ctor . , ly:pop-property-iterator::constructor) + (iterator-ctor . ,ly:pop-property-iterator::constructor) )) - (SequentialMusic - . ( - (description . "Music expressions concatenated. + (ScriptEvent + . ((description . "Add an articulation mark to a note.") + (types . (general-music event)) + )) -Syntax \\sequential @{..@} or simply @{..@} .") + (SequentialMusic + . ((description . "Music expressions concatenated. +Syntax: @code{\\sequential @{ @dots{} @}} or simply @code{@{ @dots{} @}}") (length-callback . ,ly:music-sequence::cumulative-length-callback) (start-callback . ,ly:music-sequence::first-start-callback) (elements-callback . ,(lambda (m) (ly:music-property m 'elements))) @@ -450,267 +438,203 @@ Syntax \\sequential @{..@} or simply @{..@} .") (types . (general-music sequential-music)) )) - (SoloOneEvent - . ( - (description . "Print Solo.1") - (part-combine-status . solo1) - (types . (general-music event part-combine-event solo-one-event)) - )) - (SoloTwoEvent - . ( - (description . "Print Solo.2") - (part-combine-status . solo2) - (types . (general-music event part-combine-event solo-two-event)) - )) - (UnisonoEvent - . ((description . "Print a2") - (part-combine-status . unisono) - (types . (general-music event part-combine-event unisono-event)))) - (SimultaneousMusic - . ( - (description . "Music playing together. - -SYNTAX - -@code{ \\simultaneous @{ .. @}} or << .. >>.") + . ((description . "Music playing together. +Syntax: @code{\\simultaneous @{ @dots{} @}} or @code{<< @dots{} >>}") (iterator-ctor . ,ly:simultaneous-music-iterator::constructor) (start-callback . ,ly:music-sequence::minimum-start-callback) (length-callback . ,ly:music-sequence::maximum-length-callback) - (to-relative-callback . ,ly:music-sequence::simultaneous-relative-callback) - + (to-relative-callback . + ,ly:music-sequence::simultaneous-relative-callback) (types . (general-music simultaneous-music)) )) - - (SlurEvent - . ( - (description . "Start or end slur. -Syntax NOTE( and NOTE) ") + (SkipEvent + . ((description . "Filler that takes up duration, but does not +print anything. - (types . (general-music span-event event slur-event)) - )) - - (StaffSpanEvent - . ((description . "Start or stop a staff symbol.") - (types . (general-music event span-event staff-span-event)) - )) - - (TextSpanEvent - . ( - (description . "Start a text spanner like 8va.....|") - (types . (general-music span-event event text-span-event)) - )) - - (TrillSpanEvent - . ( - (description . "Start a trill spanner tr~~~") - (types . (general-music span-event event trill-span-event)) - )) - - (TransposedMusic - . ( - (description . "Music that has been transposed.") - (iterator-ctor . ,ly:music-wrapper-iterator::constructor) - (start-callback . ,ly:music-wrapper::start-callback) - (length-callback . ,ly:music-wrapper::length-callback) - (to-relative-callback . ,ly:relative-octave-music::no-relative-callback) - (types . (music-wrapper-music general-music transposed-music)) +Syntax: @code{s4} for a skip equivalent to a quarter rest.") + (types . (general-music event rhythmic-event skip-event)) )) - (TimeScaledMusic - . ( - (description . "Multiply durations, as in tuplets. + (SkipMusic + . ((description . "Filler that takes up duration, does not +print anything, and also does not create staves or voices implicitly. -Syntax @code{\\times @var{fraction} @var{music}}, e.g. -@code{\\times 2/3 @{ ... @}} for triplets. - ") - (length-callback . ,ly:music-wrapper::length-callback) - (start-callback . ,ly:music-wrapper::start-callback) - (iterator-ctor . ,ly:time-scaled-music-iterator::constructor) - (types . (time-scaled-music music-wrapper-music general-music)) +Syntax: @code{\\skip} @var{duration}") + (length-callback . ,ly:music-duration-length) + (iterator-ctor . ,ly:simple-music-iterator::constructor) + (types . (general-music event rhythmic-event skip-event)) )) - (TupletSpanEvent - . ( - (description . "Used internally to signal where tuplet brackets start and stop.") - (types . (tuplet-span-event span-event event general-music)) - )) + (SlurEvent + . ((description . "Start or end slur. - (UnrelativableMusic - . ( - (description . "Music that can not be converted from relative to absolute notation. -For example, transposed music.") - (to-relative-callback . ,ly:relative-octave-music::no-relative-callback) - (iterator-ctor . ,ly:music-wrapper-iterator::constructor) - (length-callback . ,ly:music-wrapper::length-callback) - (types . (music-wrapper-music general-music unrelativable-music)) +Syntax: @var{note}@code{(} and @var{note}@code{)}") + (types . (general-music span-event event slur-event)) )) - (RelativeOctaveMusic - . ( - (description . "Music that was entered in relative octave notation.") - (to-relative-callback . ,ly:relative-octave-music::relative-callback) - (iterator-ctor . ,ly:music-wrapper-iterator::constructor) - (length-callback . ,ly:music-wrapper::length-callback) - (start-callback . ,ly:music-wrapper::start-callback) - (types . (music-wrapper-music general-music relative-octave-music)) + (SoloOneEvent + . ((description . "Print @q{Solo@tie{}1}.") + (part-combine-status . solo1) + (types . (general-music event part-combine-event solo-one-event)) )) - (ScriptEvent - . ( - (description . "Add an articulation mark to a note. ") - (types . (general-music event)) + (SoloTwoEvent + . ((description . "Print @q{Solo@tie{}2}.") + (part-combine-status . solo2) + (types . (general-music event part-combine-event solo-two-event)) )) - (SkipMusic - . ( - (description . "Filler that takes up duration, does not print anything, and also -does not create staves or voices implicitly. - + (SostenutoEvent + . ((description . "Depress or release sostenuto pedal.") + (types . (general-music event pedal-event sostenuto-event)) + )) + (SpacingSectionEvent + . ((description . "Start a new spacing section.") + (types . (general-music event spacing-section-event)))) -Syntax: @code{\\skip }@var{duration}.") - (length-callback . ,ly:music-duration-length) - (iterator-ctor . ,ly:simple-music-iterator::constructor) - (types . (general-music event rhythmic-event skip-event)) + (SpanEvent + . ((description . "Event for anything that is started at a +different time than stopped.") + (types . (general-music event)) )) - - (SkipEvent - . ( - (description . "Filler that takes up duration, but does not print anything. - + (StaffSpanEvent + . ((description . "Start or stop a staff symbol.") + (types . (general-music event span-event staff-span-event)) + )) -Syntax: @code{s}@var{duration}") + (StringNumberEvent + . ((description . "Specify on which string to play this note. - (types . (general-music event rhythmic-event skip-event)) +Syntax: @code{\\@var{number}}") + (types . (general-music string-number-event event)) )) - (SpacingSectionEvent - . ((description . "Start a new spacing section") - (types . (general-music event spacing-section-event)))) - - (SpanEvent - . ( - (description . "Event for anything that is started at a different time than stopped.") + (StrokeFingerEvent + . ((description . "Specify with which finger to pluck a string. - (types . (general-music event)) +Syntax: @code{\\rightHandFinger @var{text}}") + (types . (general-music stroke-finger-event event)) )) - + (SustainEvent - . ( - (description . "Depress or release sustain pedal. ") + . ((description . "Depress or release sustain pedal.") (types . (general-music event pedal-event sustain-event)) )) - - (SostenutoEvent - . ( - (description . "Depress or release sostenuto pedal. ") - (types . (general-music event pedal-event sostenuto-event)) + + (TextScriptEvent + . ((description . "Print text.") + (types . (general-music script-event text-script-event event)) )) - - (UnaCordaEvent - . ( - (description . "Depress or release una-corda pedal.") - (types . (general-music event pedal-event una-corda-event)) + + (TextSpanEvent + . ((description . "Start a text spanner, e.g., 8va.....|") + (types . (general-music span-event event text-span-event)) )) - - (StringNumberEvent - . ( - (description . "Specify on which string to play this note. -Syntax: @code{\\@var{number}}.") + (TieEvent + . ((description . "A tie. - (types . (general-music string-number-event event)) - )) +Syntax: @var{note}@code{-~}") + (types . (general-music tie-event event)) + )) - (StrokeFingerEvent - . ( - (description . "Specify with which finger to pluck a string. + (TimeScaledMusic + . ((description . "Multiply durations, as in tuplets. -Syntax: @code{\\rightHandFinger @var{text}}.") +Syntax: @code{\\times @var{fraction} @var{music}}, e.g. +@code{\\times 2/3 @{ @dots{} @}} for triplets.") + (length-callback . ,ly:music-wrapper::length-callback) + (start-callback . ,ly:music-wrapper::start-callback) + (iterator-ctor . ,ly:time-scaled-music-iterator::constructor) + (types . (time-scaled-music music-wrapper-music general-music)) + )) - (types . (general-music stroke-finger-event event)) - )) - - (TextScriptEvent - . ( - (description . "") - (types . (general-music script-event text-script-event event)) - )) - (TieEvent - . ( - (description . "A tie. Entered as @var{note}-~.") - (types . (general-music tie-event event)) + (TransposedMusic + . ((description . "Music that has been transposed.") + (iterator-ctor . ,ly:music-wrapper-iterator::constructor) + (start-callback . ,ly:music-wrapper::start-callback) + (length-callback . ,ly:music-wrapper::length-callback) + (to-relative-callback . + ,ly:relative-octave-music::no-relative-callback) + (types . (music-wrapper-music general-music transposed-music)) )) + (TremoloEvent - . ( - (description . "Un measured tremolo.") + . ((description . "Unmeasured tremolo.") (types . (general-music event tremolo-event)) )) - + + (TremoloRepeatedMusic + . ((description . "Repeated notes denoted by tremolo beams.") + (iterator-ctor . ,ly:chord-tremolo-iterator::constructor) + (start-callback . ,ly:repeated-music::first-start) + ;; the length of the repeat is handled by shifting the note logs + (length-callback . ,ly:repeated-music::folded-music-length) + (types . (general-music repeated-music tremolo-repeated-music)) + )) + (TremoloSpanEvent - . ( - (description . "Tremolo over two stems") + . ((description . "Tremolo over two stems") (types . (general-music event span-event tremolo-span-event)) )) - (VoiceSeparator - . ( - (description . "Separate polyphonic voices in simultaneous music. + (TrillSpanEvent + . ((description . "Start a trill spanner tr~~~") + (types . (general-music span-event event trill-span-event)) + )) -Syntax: @code{\\\\}") + (TupletSpanEvent + . ((description . "Used internally to signal where tuplet +brackets start and stop.") + (types . (tuplet-span-event span-event event general-music)) + )) - (types . (separator general-music)) + (UnaCordaEvent + . ((description . "Depress or release una-corda pedal.") + (types . (general-music event pedal-event una-corda-event)) )) - (VoltaRepeatedMusic - . ( - (iterator-ctor . ,ly:volta-repeat-iterator::constructor) - (description . "") - (start-callback . ,ly:repeated-music::first-start) - (length-callback . ,ly:repeated-music::volta-music-length) - (types . (general-music repeated-music volta-repeated-music)) - )) - (UnfoldedRepeatedMusic - . ( + . ((description . "Repeated music which is fully written +(and played) out.") (iterator-ctor . ,ly:unfolded-repeat-iterator::constructor) - (description . "") (start-callback . ,ly:repeated-music::first-start) (types . (general-music repeated-music unfolded-repeated-music)) (length-callback . ,ly:repeated-music::unfolded-music-length) )) - (PercentRepeatedMusic - . ( - (description . "Repeats encoded by percents.") - (iterator-ctor . ,ly:percent-repeat-iterator::constructor) - (start-callback . ,ly:repeated-music::first-start) - (length-callback . ,ly:repeated-music::unfolded-music-length) - (types . (general-music repeated-music percent-repeated-music)) + + (UnisonoEvent + . ((description . "Print @q{a@tie{}2}.") + (part-combine-status . unisono) + (types . (general-music event part-combine-event unisono-event)))) + + (UnrelativableMusic + . ((description . "Music that cannot be converted from relative +to absolute notation. For example, transposed music.") + (to-relative-callback . ,ly:relative-octave-music::no-relative-callback) + (iterator-ctor . ,ly:music-wrapper-iterator::constructor) + (length-callback . ,ly:music-wrapper::length-callback) + (types . (music-wrapper-music general-music unrelativable-music)) )) - - (TremoloRepeatedMusic - . ( - (iterator-ctor . ,ly:chord-tremolo-iterator::constructor) - (description . "Repeated notes denoted by tremolo beams.") - (start-callback . ,ly:repeated-music::first-start) - ;; the length of the repeat is handled by shifting the note logs - (length-callback . ,ly:repeated-music::folded-music-length) - (types . (general-music repeated-music tremolo-repeated-music)) - - )) - - (FoldedRepeatedMusic - . ( - (description . "Repeats with alternatives placed in parallel. ") - (iterator-ctor . ,ly:folded-repeat-iterator::constructor) - (start-callback . ,ly:repeated-music::minimum-start) - (length-callback . ,ly:repeated-music::folded-music-length) - (types . (general-music repeated-music folded-repeated-music)) + (VoiceSeparator + . ((description . "Separate polyphonic voices in simultaneous music. + +Syntax: @code{\\\\}") + (types . (separator general-music)) + )) + + (VoltaRepeatedMusic + . ((description . "Repeats with alternatives placed sequentially.") + (iterator-ctor . ,ly:volta-repeat-iterator::constructor) + (start-callback . ,ly:repeated-music::first-start) + (length-callback . ,ly:repeated-music::volta-music-length) + (types . (general-music repeated-music volta-repeated-music)) )) )) @@ -736,9 +660,9 @@ Syntax: @code{\\\\}") (define-safe-public (make-music name . music-properties) "Create a music object of given name, and set its properties -according to `music-properties', a list of alterning property symbols +according to @code{music-properties}, a list of alterning property symbols and values. E.g: - (make-music 'OverrideProperty + (make-music 'OverrideProperty 'symbol 'Stem 'grob-property 'thickness 'grob-value (* 2 1.5))" @@ -761,8 +685,7 @@ and values. E.g: (let* ((handle (assoc name '(("volta" . VoltaRepeatedMusic) ("unfold" . UnfoldedRepeatedMusic) ("percent" . PercentRepeatedMusic) - ("tremolo" . TremoloRepeatedMusic) - ("fold" . FoldedRepeatedMusic)))) + ("tremolo" . TremoloRepeatedMusic)))) (music-name (if (pair? handle) (cdr handle) (begin @@ -770,4 +693,3 @@ and values. E.g: (ly:warning (_ "See music-types.scm for supported repeats")) 'VoltaRepeatedMusic)))) (make-music music-name))) - diff --git a/scm/document-backend.scm b/scm/document-backend.scm index 08cc17cd33..2a23e49afa 100644 --- a/scm/document-backend.scm +++ b/scm/document-backend.scm @@ -31,7 +31,7 @@ (if (pair? iprops) (string-append - "\n\n@unnumberedsubsubsec Internal properties: \n" + "\n\n@unnumberedsubsubsec Internal properties:\n" (description-list->texi internal-propdocs)) "")))) @@ -110,7 +110,7 @@ node." (define (all-grobs-doc) (make #:name "All layout objects" - #:desc "Description and defaults for all Grobs" + #:desc "Description and defaults for all graphical objects (grobs)." #:children (map (lambda (x) (grob-doc (cdr x))) all-grob-descriptions))) @@ -147,7 +147,7 @@ node." (define (all-interfaces-doc) (make #:name "Graphical Object Interfaces" - #:desc "Building blocks of graphical objects" + #:desc "Building blocks of graphical objects." #:children (map interface-doc interface-description-alist))) @@ -162,16 +162,16 @@ node." (define (backend-doc-node) (make #:name "Backend" - #:desc "Reference for the layout engine" + #:desc "Reference for the layout engine." #:children (list (all-grobs-doc) (all-interfaces-doc) (make #:name "User backend properties" - #:desc "All tunable properties in a big list" + #:desc "All tunable properties in a big list." #:text (backend-properties-doc-string all-user-grob-properties)) (make #:name "Internal backend properties" - #:desc "All internal layout properties in a big list" + #:desc "All internal layout properties in a big list." #:text (backend-properties-doc-string all-internal-grob-properties))))) diff --git a/scm/document-functions.scm b/scm/document-functions.scm index 5515b1312e..b057a7aab5 100644 --- a/scm/document-functions.scm +++ b/scm/document-functions.scm @@ -37,7 +37,7 @@ (sfdocs (sort fdocs string #:name "Scheme functions" - #:desc "Primitive functions exported by LilyPond" + #:desc "Primitive functions exported by LilyPond." #:text (apply string-append sfdocs)))) diff --git a/scm/document-music.scm b/scm/document-music.scm index b720b592f7..0d01abb6b9 100644 --- a/scm/document-music.scm +++ b/scm/document-music.scm @@ -8,7 +8,7 @@ (define (music-props-doc) (make #:name "Music properties" - #:desc "All music properties, including descriptions" + #:desc "All music properties, including descriptions." #:text (let* ((ps (sort (map symbol->string all-music-properties) stringstring (car entry)) - "} is in Music objects of type " + "} is in music objects of type " (human-listify (sort (map (lambda (x) (ref-ify (symbol->string x))) (cdr entry)) stringstring classes))) - "\n\n" + "." + "\n\nAccepted by: " (human-listify (map ref-ify (map symbol->string (map ly:translator-name (filter - (lambda (x) (engraver-accepts-music-types? classes x)) all-engravers-list)))))) + (lambda (x) (engraver-accepts-music-types? classes x)) all-engravers-list))))) + ".") ""))) (string-append (object-property namesym 'music-description) event-texi - "\n\nProperties: \n" + "\n\nProperties:\n" (description-list->texi (map - (lambda (x) (property->texi 'music x props)) + (lambda (x) (property->texi 'music x props)) (map car props)))))) (define (music-object-doc obj) @@ -107,7 +111,7 @@ (define (music-doc-node) (make #:name "Music definitions" - #:desc "Definition of the Input data structures" + #:desc "Definition of the input data structures." #:children (list (music-expressions-doc) diff --git a/scm/document-translation.scm b/scm/document-translation.scm index 4784872897..9db6bb4b88 100644 --- a/scm/document-translation.scm +++ b/scm/document-translation.scm @@ -45,7 +45,7 @@ (string-append "Properties (read)" (description-list->texi - (map (lambda (x) (property->texi 'translation x '())) propsr))) + (map (lambda (x) (property->texi 'translation x '())) propsr))) "") (if (null? propsw) @@ -53,12 +53,12 @@ (string-append "Properties (write)" (description-list->texi - (map (lambda (x) (property->texi 'translation x '())) propsw)))) + (map (lambda (x) (property->texi 'translation x '())) propsw)))) (if (null? grobs) "" (string-append - "This engraver creates the following layout objects: \n " - (human-listify (map ref-ify (uniq-list (sort grobs stringstring path) " ")) - (format " in @ref{~a} to @code{~a}. " context-sym (scm->texi value)) + (format "grob-property @code{~a} " + (string-join (map symbol->string path) " ")) + (format "in @ref{~a} to ~a." + context-sym (scm->texi value)) "\n"))) ((equal? (object-property context-sym 'is-grob?) #t) "") ((equal? tag 'assign) - (format "@item Set translator property @code{~a} to @code{~a}" + (format "@item Set translator property @code{~a} to ~a.\n" context-sym (scm->texi (car args)))) ))) @@ -158,30 +160,42 @@ (string-append desc (if (pair? aliases) - (string-append "\n\n This context also accepts commands for the following context(s):\n\n" - (human-listify aliases)) + (string-append + "\n\nThis context also accepts commands for the following context(s):\n\n" + (human-listify aliases) + ".") "") - "\n\nThis context creates the following layout objects: \n\n" - (human-listify (uniq-list (sort grob-refs stringstring accepts))))) + name + " can contain\n" + (human-listify (map ref-ify (map symbol->string accepts))) + ".")) - "\n\nThis context is built from the following engravers: " - (description-list->texi - (map document-engraver-by-name consists)))))) + (if (null? consists) + "" + (string-append + "\n\nThis context is built from the following engravers:" + (description-list->texi (map document-engraver-by-name consists)))))))) (define (engraver-grobs grav) (let* ((eg (if (symbol? grav) @@ -211,7 +225,7 @@ (make #:name "Contexts" - #:desc "Complete descriptions of all contexts" + #:desc "Complete descriptions of all contexts." #:children (map context-doc contexts)))) @@ -224,7 +238,7 @@ (define (all-engravers-doc) (make #:name "Engravers" - #:desc "All separate engravers" + #:desc "All separate engravers." #:text "See @usermanref{Modifying context plug-ins}." #:children (map engraver-doc all-engravers-list))) @@ -242,19 +256,19 @@ (define (translation-doc-node) (make #:name "Translation" - #:desc "From music to layout" + #:desc "From music to layout." #:children (list (all-contexts-doc) (all-engravers-doc) (make #:name "Tunable context properties" - #:desc "All tunable context properties" + #:desc "All tunable context properties." #:text (translation-properties-doc-string all-user-translation-properties)) (make #:name "Internal context properties" - #:desc "All internal context properties" + #:desc "All internal context properties." #:text (translation-properties-doc-string all-internal-translation-properties))))) diff --git a/scm/documentation-generate.scm b/scm/documentation-generate.scm index fe37a366ba..fa6298cd00 100644 --- a/scm/documentation-generate.scm +++ b/scm/documentation-generate.scm @@ -156,7 +156,9 @@ (make #:name "Top" #:text - (string-append "This is the program reference for LilyPond version " (lilypond-version)) + (string-append "This is the program reference for version " + (lilypond-version) + " of LilyPond, the GNU music typesetter.") #:children (list @@ -171,10 +173,6 @@ @printindex cp -@unnumbered Variable index - -@printindex vr - @unnumbered Function index @printindex fn @@ -183,7 +181,3 @@ (dump-node top-node out-port 0) (newline (current-error-port)) - - - - diff --git a/scm/documentation-lib.scm b/scm/documentation-lib.scm index 5a0afbbf34..5dc35f25a9 100644 --- a/scm/documentation-lib.scm +++ b/scm/documentation-lib.scm @@ -78,9 +78,13 @@ . string-to-use) " (string-append - "\n@table @asis\n" + "\n" + "@quotation\n" + "@table @asis\n" (apply string-append (map one-item->texi items-alist)) - "\n@end table\n")) + "\n" + "@end table\n" + "@end quotation\n")) (define (texi-menu items-alist) "Generate what is between @menu and @end menu." diff --git a/tex/texinfo.cnf b/tex/texinfo.cnf deleted file mode 100644 index ef267420c3..0000000000 --- a/tex/texinfo.cnf +++ /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 diff --git a/tex/texinfo.tex b/tex/texinfo.tex index 62fa9a4f63..060f622245 100644 --- a/tex/texinfo.tex +++ b/tex/texinfo.tex @@ -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. @@ -157,6 +157,18 @@ \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{} @@ -327,9 +339,9 @@ \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}% %