From: Jean-Charles Malahieude Date: Sat, 6 Feb 2016 10:17:18 +0000 (+0100) Subject: Merge branch 'master' into translation X-Git-Tag: release/2.19.37-1~34 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=8211950f0931c4d8a0e18ee9e436e489bd583dbd;hp=49b253c37b3129d6c2e69c7133495213419e5dbd;p=lilypond.git Merge branch 'master' into translation --- diff --git a/Documentation/changes.tely b/Documentation/changes.tely index 24e973e4fd..00e53b5e88 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -61,9 +61,46 @@ which scares away people. @end ignore +@item +A new page breaking function @code{ly:one-line-auto-height-breaking} +places a whole score on a single line and changes the page width +to match, just like @code{ly:one-line-breaking}. The difference is that +it also automatically modifies the height of the page to fit the height +of the music. + +@item +Markup-command @code{\draw-squiggle-line} is now available. +Customizing is possible with overrides of @code{thickness}, @code{angularity}, +@code{height} and @code{orientation} +@lilypond[quote,verbatim] +\markup + \overlay { + \draw-squiggle-line #0.5 #'(3 . 3) ##t + + \translate #'(3 . 3) + \override #'(thickness . 4) + \draw-squiggle-line #0.5 #'(3 . -3) ##t + + \translate #'(6 . 0) + \override #'(angularity . -5) + \draw-squiggle-line #0.5 #'(-3 . -3) ##t + + \translate #'(3 . -3) + \override #'(angularity . 2) + \override #'(height . 0.3) + \override #'(orientation . -1) + \draw-squiggle-line #0.2 #'(-3 . 3) ##t + } +@end lilypond + +@item +A new command, @code{\RemoveAllEmptyStaves}, has been made available, which +acts exactly like @code{\RemoveEmptyStaves}, except for also removing empty +staves on the first system in a score. + @item Markup-commands @code{\undertie} and @code{\overtie} are now available, as well -the generic markup-command @code{\tie}. +as the generic markup-command @code{\tie}. @lilypond[quote,verbatim] \markup { \undertie "undertied" diff --git a/Documentation/contributor/administration.itexi b/Documentation/contributor/administration.itexi index ec8e751a03..a392f7d660 100644 --- a/Documentation/contributor/administration.itexi +++ b/Documentation/contributor/administration.itexi @@ -803,7 +803,7 @@ Should we change the "structure" / "framework" for bounties? (prep: 2 hours. discuss: 10 hours) @item @strong{code readability}: -"Our aim when producing source code for Lilypond in whatever +"Our aim when producing source code for LilyPond in whatever language is that it should be totally comprehensible to a relatively inexperienced developer at the second reading." diff --git a/Documentation/contributor/doc-work.itexi b/Documentation/contributor/doc-work.itexi index 70fd22660d..0435b96265 100644 --- a/Documentation/contributor/doc-work.itexi +++ b/Documentation/contributor/doc-work.itexi @@ -9,7 +9,7 @@ this allows us to generate different output formats from a single set of source files. To organize multiple authors working on the documentation, we use a -Version Control System (VCS) called git, previously discussed in +Version Control System (VCS) called Git, previously discussed in @ref{Starting with Git}. @menu @@ -291,12 +291,12 @@ five, levels. @item Level 5: @@subsubsubheading @end itemize -The first three levels are numbered in html, the last two are not. -Numbered sections correspond to a single html page in the split html +The first three levels are numbered in HTML, the last two are not. +Numbered sections correspond to a single HTML page in the split HTML documents. The first four levels always have accompanying nodes so they can be -referenced and are also included in the ToC in html. +referenced and are also included in the ToC in HTML. Most of the manual is written at level 4 under headings created with @@ -681,7 +681,7 @@ command ;) Enter the exact @code{@@node} name of the target reference between the brackets (eg.@tie{}@w{@samp{@@ref@{Syntax survey@}}}). Do not split a cross-reference across two lines -- this causes the -cross-reference to be rendered incorrectly in html documents. +cross-reference to be rendered incorrectly in HTML documents. @itemize @item @@ -1516,10 +1516,12 @@ the difficulty. @unnumberedsubsubsec Building only one section of the documentation In order to save build time, a script is available to build only -one section of the documentation in English with a default html +one section of the documentation in English with a default HTML appearance. -You can build a section of the documentation with: +If you do not yet have a @file{build/} subdirectory within the LilyPond +Git tree, you should create this first. You can then build a section of +the documentation with the following command: @example scripts/auxiliar/doc-section.sh MANUAL SECTION @@ -1538,12 +1540,12 @@ scripts/auxiliar/doc-section.sh notation pitches You can then see the generated document for the section at @example -tempdocs/pitches/out/pitches.html +build/tempdocs/pitches/out/pitches.html @end example According to -@uref{http://code.google.com/p/lilypond/issues/detail?id=1236,Lilypond issue 1236}, -the location of the lilypond git tree is taken from @code{$LILYPOND_GIT} +@uref{http://code.google.com/p/lilypond/issues/detail?id=1236,LilyPond issue 1236}, +the location of the LilyPond Git tree is taken from @code{$LILYPOND_GIT} if specified, otherwise it is auto-detected. It is assumed that compilation takes place in the @file{build/} @@ -1555,7 +1557,7 @@ overridden by setting the environment variable @code{LILYPOND_TEMPDOCS}. This script will not work for building sections of the -Contributors' guide. For building sections of the Contributors' +Contributors' Guide. For building sections of the Contributors' Guide, use: @example @@ -1564,7 +1566,7 @@ scripts/auxiliar/cg-section.sh SECTION @noindent where @code{SECTION} is the name of the file containing the sections -to be built. For example, to build section 4 of the Contributors' guide, +to be built. For example, to build section 4 of the Contributors' Guide, use: @example diff --git a/Documentation/contributor/programming-work.itexi b/Documentation/contributor/programming-work.itexi index 99dc79da4a..66a792066c 100644 --- a/Documentation/contributor/programming-work.itexi +++ b/Documentation/contributor/programming-work.itexi @@ -771,8 +771,8 @@ The error functions come in three different flavors: fatal error messages, programming error messages and normal error messages. Errors written by the @code{error ()} function will cause LilyPond to exit immediately, errors by @code{Input::error ()} will continue the compilation, but -return a non-zero return value of the lilypond call (i.e. indicate an -unsuccessful program execution). All other errors will be printed on the +return a non-zero return value of the LilyPond call (i.e. indicate an +unsuccessful program execution). All other errors will be printed on the console, but not exit LilyPond or indicate an unsuccessful return code. Their only differences to a warnings are the displayed text and that they will be shown with loglevel @code{ERROR}. @@ -882,7 +882,7 @@ treated as if @code{Input::error} was called. The most commonly used tool for debugging LilyPond is the GNU debugger gdb. The gdb tool is used for investigating and debugging -core Lilypond code written in C++. Another tool is available for +core LilyPond code written in C++. Another tool is available for debugging Scheme code using the Guile debugger. This section describes how to use both gdb and the Guile Debugger. @@ -935,7 +935,7 @@ information from the LilyPond binary. @subheading Typical gdb usage -Once you have compiled the Lilypond image with the necessary +Once you have compiled the LilyPond image with the necessary debugging information it will have been written to a location in a subfolder of your current working directory: @@ -1109,7 +1109,7 @@ commands. For a listing of these commands, type: debug> help @end example -Alternatively you may code the breakpoints in your Lilypond source +Alternatively you may code the breakpoints in your LilyPond source file using a command such as: @example @@ -1232,9 +1232,9 @@ In order to use the graphviz utility, the @file{.ly} file must include grobs and symbols that should be tracked. An example of this is found in @file{input/regression/graphviz.ly}. -@item Run lilypond with output sent to a log file +@item Run LilyPond with output sent to a log file -The Graphviz data is sent to stderr by lilypond, so it is +The Graphviz data is sent to stderr by LilyPond, so it is necessary to redirect stderr to a logfile: @example @@ -1243,11 +1243,11 @@ lilypond graphviz.ly 2> graphviz.log @item Edit the logfile -The logfile has standard lilypond output, as well as the Graphviz +The logfile has standard LilyPond output, as well as the Graphviz output data. Delete everything from the beginning of the file up to but not including the first occurrence of @code{digraph}. -Also, delete the final lilypond message about success from the end +Also, delete the final LilyPond message about success from the end of the file. @item Process the logfile with @code{dot} @@ -1263,10 +1263,10 @@ dot -Tpdf graphviz.log > graphviz.pdf The pdf file can then be viewed with any pdf viewer. -When compiled with @option{-DDEBUG}, lilypond may run slower +When compiled with @option{-DDEBUG}, LilyPond may run slower than normal. The original configuration can be restored by rerunning @code{./configure} with @option{--disable-checking}. Then -rebuild lilypond with +rebuild LilyPond with @example make -C lily clean && make -C lily @@ -1383,7 +1383,7 @@ LILYPOND_BUILD_DIR=../build-lilypond/ scripts/auxiliar/update-with-convert-ly.sh @subsection Manually update documentation Where the convert-ly rule is not able to automatically update the inline -lilypond code in the documentation (i.e. if a NOT_SMART rule is used), the +LilyPond code in the documentation (i.e. if a NOT_SMART rule is used), the documentation must be manually updated. The inline snippets that require changing must be changed in the English version of the docs and all translated versions. If the inline code is not changed in the @@ -1818,7 +1818,8 @@ time and to prevent you some major headaches. @node Purity in LilyPond @subsection Purity in LilyPond -Pure properties in LilyPond that do not have any @q{side effects}. +Pure properties in LilyPond are properties that do not have any +@q{side effects}. That is, looking up a pure property should never result in calls to the following functions: @itemize @@ -1899,7 +1900,7 @@ of a spanner broken at given starting and ending columns. @node How purity is defined and stored @subsection How purity is defined and stored Purity is defined in LilyPond with the creation of an unpure-pure container -(unpure is not a word, but hey, neither was Lilypond until the 90s). For example: +(unpure is not a word, but hey, neither was LilyPond until the 90s). For example: @example #(define (foo grob) @@ -2022,7 +2023,7 @@ instead of pure height. @node LilyPond scoping @section LilyPond scoping -The Lilypond language has a concept of scoping, i.e. you can do: +The LilyPond language has a concept of scoping, i.e. you can do: @example foo = 1 @@ -2038,7 +2039,7 @@ is translated in to a scheme variable definition. This implemented using modules, with each scope being an anonymous module that imports its enclosing scope's module. -Lilypond's core, loaded from @file{.scm} files, is usually placed in the +LilyPond's core, loaded from @file{.scm} files, is usually placed in the @code{lily} module, outside the @file{.ly} level. In the case of @example @@ -2141,7 +2142,7 @@ but not @code{scm_is_equal}. Return @code{true} if @var{b} is @code{SCM_BOOL_T}, else return @code{false}. This should be used instead of @code{scm_is_true} and -@code{scm_is_false} for properties since in Lilypond, unset properties +@code{scm_is_false} for properties since in LilyPond, unset properties are read as an empty list, and by convention unset Boolean properties default to false. Since both @code{scm_is_true} and @code{scm_is_false} only compare with @code{##f} in line with what @@ -2156,7 +2157,7 @@ Behave the same as scm_is_[something] would do if it existed. Test whether the type of @var{s} is [type]. [type] is a LilyPond-only set of values (direction, axis...). More -often than not, the code checks Lilypond specific C++-implemented +often than not, the code checks LilyPond specific C++-implemented types using @subsubheading [Type *] unsmob (SCM s) diff --git a/Documentation/contributor/quick-start.itexi b/Documentation/contributor/quick-start.itexi index b515eff1de..a6da27402b 100644 --- a/Documentation/contributor/quick-start.itexi +++ b/Documentation/contributor/quick-start.itexi @@ -28,7 +28,7 @@ LilyPond, the documentation and the website (also see @warning{LilyDev does not include the software for the Grand Unified Builder -- also see @ref{Grand Unified Builder (GUB)}.} -While compiling LilyPond on MacOs and Windows is possible, both +While compiling LilyPond on Mac OS and Windows is possible, both environments are complex to set up. LilyDev can be easily installed and run inside a @q{virtual machine} on either of these operating systems relatively easily using readily available virtualization @@ -39,8 +39,8 @@ The LilyDev disk image can also be written to a USB device or @q{burnt} to a DVD -- it is approximately 900 MB in size -- and installed just like any standard GNU/Linux distribution. -The current image is based on a 32bit version of Debian 8 (@q{Jessie}) -and the Disk image was generated using Debian +The current image is based on a 32-bit version of Debian 8 (@q{Jessie}) +and the disk image was generated using Debian @uref{http://live.debian.net/, live-build 4}. @noindent @@ -295,7 +295,7 @@ directory and the entire source code will start to be downloaded into it. @warning{Be patient! There is no progress bar in the lily-git UI but the -complete source is around 180@tie{}Mb.} +complete source is around 180@tie{}MB.} @noindent When the source code has been downloaded, the @qq{command output} window @@ -489,7 +489,7 @@ PATH=~/directory_containing_git-cl:"$@{PATH@}" @node Updating git-cl @unnumberedsubsec Updating @code{git-cl} -LilyDev users should always make sure that they alwsys have the latest +LilyDev users should make sure that they always have the latest version of git-cl installed. It is possible that changes may have been made to git-cl that are not (yet) included in the version of LilyDev has been installed. diff --git a/Documentation/contributor/release-work.itexi b/Documentation/contributor/release-work.itexi index 05241fc7ba..3869505630 100644 --- a/Documentation/contributor/release-work.itexi +++ b/Documentation/contributor/release-work.itexi @@ -108,7 +108,7 @@ VERSION_STABLE = the current stable version (probably no change here) @end itemize @item -update the @qq{Welcome to Lilypond} version numbers to the version about to be +update the @qq{Welcome to LilyPond} version numbers to the version about to be released @end itemize diff --git a/Documentation/contributor/source-code.itexi b/Documentation/contributor/source-code.itexi index 20077e6891..4a7357878c 100644 --- a/Documentation/contributor/source-code.itexi +++ b/Documentation/contributor/source-code.itexi @@ -1352,12 +1352,12 @@ Account Settings must have the @q{Access for less secure apps} set to @q{Allowed}. This is normally the default setting.} @item -Move into the top source directory and then configure @command{git -cl} with the following commands: +Move into the top source directory and then configure +@command{git-cl} with the following commands: @example cd $LILYPOND_GIT -git cl config +git-cl config @end example For the @qq{Rietveld server} question, the default value @@ -1371,7 +1371,7 @@ lilypond-devel@@gnu.org @end example The @qq{Tree status URL} value should be left blank. So should -the @qq{ViewVC URL} value, since it is used by @command{git cl +the @qq{ViewVC URL} value, since it is used by @command{git-cl dcommit} which is only for repositories which use @command{git svn} (LilyPond doesn't). @@ -1434,7 +1434,7 @@ git pull -r origin master Finally, start the upload by entering: @example -git cl upload +git-cl upload @end example @noindent @@ -1443,7 +1443,7 @@ as a reference source for the patch. Generally, this will be the SHA1 ID of origin/master, and in that case the command: @example -git cl upload origin/master +git-cl upload origin/master @end example @noindent @@ -1487,20 +1487,20 @@ associate the new branch with an existing Rietveld issue, the following command can be used: @example -git cl issue issue-number +git-cl issue issue-number @end example @noindent where @code{issue-number} is the number of the existing Rietveld issue. -@subsubheading Resetting git cl +@subsubheading Resetting git-cl -If @command{git cl} becomes confused, you can @qq{reset} it by +If @command{git-cl} becomes confused, you can @qq{reset} it by running: @example -git cl issue 0 +git-cl issue 0 @end example @subsubheading Wait for a countdown diff --git a/Documentation/extending/programming-interface.itely b/Documentation/extending/programming-interface.itely index 861105029f..f54b1ad0ce 100644 --- a/Documentation/extending/programming-interface.itely +++ b/Documentation/extending/programming-interface.itely @@ -1333,7 +1333,7 @@ set at fixed values with @code{\override}, e.g. \override Stem.thickness = #2.0 @end example -Properties can also be set to a Scheme procedure, +Properties can also be set to a Scheme procedure: @lilypond[fragment,verbatim,quote] \override Stem.thickness = #(lambda (grob) diff --git a/Documentation/extending/scheme-tutorial.itely b/Documentation/extending/scheme-tutorial.itely index 8588ff2685..f8f23a5fa4 100644 --- a/Documentation/extending/scheme-tutorial.itely +++ b/Documentation/extending/scheme-tutorial.itely @@ -72,7 +72,7 @@ see @rlearning{Other sources of information}. Alternatively, Windows users may simply choose @q{Run} from the Start menu and enter @q{guile}. -However, a hands-on Scheme sandbox with all of Lilypond loaded is +However, a hands-on Scheme sandbox with all of LilyPond loaded is available with this command line: @example lilypond scheme-sandbox @@ -680,7 +680,7 @@ feasible. Another way to call the Scheme interpreter from LilyPond is the use of dollar@tie{}@code{$} instead of a hash mark for introducing Scheme -expressions. In this case, Lilypond evaluates the code right after the +expressions. In this case, LilyPond evaluates the code right after the lexer has read it. It checks the resulting type of the Scheme expression and then picks a token type (one of several @code{xxx_IDENTIFIER} in the syntax) for it. It creates a @emph{copy} @@ -688,18 +688,18 @@ of the value and uses that for the value of the token. If the value of the expression is void (Guile's value of @code{*unspecified*}), nothing at all is passed to the parser. -This is, in fact, exactly the same mechanism that Lilypond employs when +This is, in fact, exactly the same mechanism that LilyPond employs when you call any variable or music function by name, as @code{\name}, with -the only difference that the name is determined by the Lilypond lexer +the only difference that the name is determined by the LilyPond lexer without consulting the Scheme reader, and thus only variable names -consistent with the current Lilypond mode are accepted. - -The immediate action of @code{$} can lead to surprises, @ref{Input -variables and Scheme}. Using @code{#} where the parser supports it -is usually preferable. Inside of music expressions, expressions -created using @code{#} @emph{are} interpreted as music. However, -they are @emph{not} copied before use. If they are part of some -structure that might still get used, you may need to use +consistent with the current LilyPond mode are accepted. + +The immediate action of @code{$} can lead to surprises, see +@ref{Importing Scheme in LilyPond}. Using @code{#} where the +parser supports it is usually preferable. Inside of music expressions, +expressions created using @code{#} @emph{are} interpreted as +music. However, they are @emph{not} copied before use. If they are +part of some structure that might still get used, you may need to use @code{ly:music-deep-copy} explicitly. @funindex $@@ @@ -731,11 +731,11 @@ as follows: @end example For the rest of this section, we will assume that the data is entered -in a music file, so we add@tie{}@code{#}s at the beginning of each Scheme +in a music file, so we add a @code{#} at the beginning of each Scheme expression. All of the top-level Scheme expressions in a LilyPond input file can -be combined into a single Scheme expression by the use of the +be combined into a single Scheme expression by use of the @code{begin} statement: @example @@ -773,8 +773,8 @@ twentyFour = #(* 2 twelve) which would result in the number 24 being stored in the LilyPond (and Scheme) variable @code{twentyFour}. -The usual way to refer to Lilypond variables, @ref{LilyPond Scheme -syntax}, is to call them using a backslash, i.e., @code{\twentyFour}. +The usual way to refer to LilyPond variables is to call them using a +backslash, i.e., @code{\twentyFour} (see @ref{LilyPond Scheme syntax}). Since this creates a copy of the value for most of LilyPond's internal types, in particular music expressions, music functions don't usually create copies of material they change. For this reason, music @@ -870,7 +870,7 @@ $(make-sequential-music newLa) You can use @code{$} with a Scheme expression anywhere you could use @code{\@var{name}} after having assigned the Scheme expression to a variable @var{name}. This replacement happens in the @q{lexer}, so -Lilypond is not even aware of the difference. +LilyPond is not even aware of the difference. One drawback, however, is that of timing. If we had been using @code{$} instead of @code{#} for defining @code{newLa} in the above example, the @@ -1105,7 +1105,7 @@ to create complicated music functions. When writing a music function it is often instructive to inspect how a music expression is stored internally. This can be done with the -music function @code{\displayMusic} +music function @code{\displayMusic}. @example @{ @@ -1157,7 +1157,7 @@ your port and reuse it: @end example Guile's manual describes ports in detail. Closing the port is actually -only necessary if you need to read the file before Lilypond finishes; in +only necessary if you need to read the file before LilyPond finishes; in the first example, we did not bother to do so. A bit of reformatting makes the above information easier to read: @@ -1165,13 +1165,13 @@ A bit of reformatting makes the above information easier to read: @example (make-music 'SequentialMusic 'elements (list - (make-music 'NoteEvent + (make-music 'NoteEvent 'articulations (list - (make-music 'AbsoluteDynamicEvent - 'text - "f")) - 'duration (ly:make-duration 2 0 1/1) - 'pitch (ly:make-pitch 0 0 0)))) + (make-music 'AbsoluteDynamicEvent + 'text + "f")) + 'duration (ly:make-duration 2 0 1/1) + 'pitch (ly:make-pitch 0 0 0)))) @end example A @code{@{ @dots{} @}} music sequence has the name @@ -1189,9 +1189,11 @@ interpreted as well as displayed. To avoid interpretation, write @node Music properties @subsection Music properties +@ignore TODO -- make sure we delineate between @emph{music} properties, @emph{context} properties, and @emph{layout} properties. These are potentially confusing. +@end ignore Let's look at an example: @@ -1244,7 +1246,7 @@ expression. @end example Then the note pitch is accessed through the @code{'pitch} property -of the @code{NoteEvent} object, +of the @code{NoteEvent} object. @example #(display-scheme-music @@ -1254,7 +1256,7 @@ of the @code{NoteEvent} object, (ly:make-pitch 0 0 0) @end example -The note pitch can be changed by setting this @code{'pitch} property, +The note pitch can be changed by setting this @code{'pitch} property. @funindex \displayLilyMusic @@ -1309,7 +1311,7 @@ The bad news is that the @code{SlurEvent} expressions must be added @q{inside} the note (in its @code{articulations} property). -Now we examine the input, +Now we examine the input. @example \displayMusic a' @@ -1374,7 +1376,7 @@ the articulation to an empty chord, @noindent but for the sake of this example, we will learn how to do this in -Scheme. We begin by examining our input and desired output, +Scheme. We begin by examining our input and desired output. @example % input @@ -1518,7 +1520,7 @@ addAccent = #(define-music-function (note-event) note-event) @end example -We may verify that this music function works correctly, +We may verify that this music function works correctly: @example \displayMusic \addAccent c4 diff --git a/Documentation/learning/common-notation.itely b/Documentation/learning/common-notation.itely index 9ce651fc02..1f68b2b5c7 100644 --- a/Documentation/learning/common-notation.itely +++ b/Documentation/learning/common-notation.itely @@ -1340,8 +1340,7 @@ cello = \new Staff { @end lilypond @noindent -The name of a variable must have alphabetic characters only, no -numbers, underscores, or dashes. +By convention, variable names consist of alphabetic characters only. Variables must be defined @emph{before} the main music expression, but may be used as many times as required anywhere after diff --git a/Documentation/learning/templates.itely b/Documentation/learning/templates.itely index ee148cc23f..2f04fae957 100644 --- a/Documentation/learning/templates.itely +++ b/Documentation/learning/templates.itely @@ -351,13 +351,13 @@ this simple built-in template. @node Notes only @appendixsubsec Notes only -@lilypondfile[verbatim,quote,ragged-right,texidoc,addversion] +@lilypondfile[verbatim,quote,ragged-right,texidoc] {single-staff-template-with-only-notes.ly} @node Notes and lyrics @appendixsubsec Notes and lyrics -@lilypondfile[verbatim,quote,ragged-right,texidoc,addversion] +@lilypondfile[verbatim,quote,ragged-right,texidoc] {single-staff-template-with-notes-and-lyrics.ly} @node Notes and chords diff --git a/Documentation/learning/tweaks.itely b/Documentation/learning/tweaks.itely index d5d5951b12..8aeb618952 100644 --- a/Documentation/learning/tweaks.itely +++ b/Documentation/learning/tweaks.itely @@ -109,7 +109,7 @@ shape. Objects with an extended shape like these are called Spanners cannot be tweaked after their creation. This includes both @code{StaffSymbol} and @code{LedgerLineSpanner} which continue -throughout the score (except if they are terminated by the +throughout the score, except if they are terminated by the @code{\stopStaff} command and then recreated using @code{\startStaff} command. @@ -2179,7 +2179,7 @@ change @code{outside-staff-priority} of the associated placed at the start of the spanner, which might include several linked hairpins and dynamics. -@multitable @columnfractions .3 .3 .3 +@multitable @columnfractions .3 .15 .45 @headitem Layout Object @tab Priority @tab Controls position of: @@ -2189,15 +2189,33 @@ linked hairpins and dynamics. @item @code{MetronomeMark} @tab @code{1000} @tab Metronome marks +@item @code{SostenutoPedalLineSpanner} + @tab @code{1000} + @tab Pedal indication +@item @code{SustainPedalLineSpanner} + @tab @code{1000} + @tab +@item @code{UnaCordaPedalLineSpanner} + @tab @code{1000} + @tab +@item @code{MeasureCounter} + @tab @code{750} + @tab Measure number @item @code{VoltaBracketSpanner} @tab @code{600} @tab Volta brackets +@item @code{InstrumentSwitch} + @tab @code{500} + @tab Instrument switch text @item @code{TextScript} @tab @code{450} @tab Markup text @item @code{MultiMeasureRestText} @tab @code{450} - @tab Markup text over full-bar rests + @tab Markup text over multimeasure rests +@item @code{CombineTextScript} + @tab @code{450} + @tab Part-combine text @item @code{OttavaBracket} @tab @code{400} @tab Ottava brackets @@ -2208,11 +2226,14 @@ linked hairpins and dynamics. @tab @code{250} @tab All dynamic markings @item @code{BarNumber} - @tab @code{ 100} + @tab @code{100} @tab Bar numbers @item @code{TrillSpanner} @tab @code{50} @tab Spanning trills +@item @code{AccidentalSuggestion} + @tab @code{0} + @tab Annotational accidentals @end multitable Here is an example showing the default placement of some of @@ -2272,7 +2293,7 @@ the placing you want, the priority of any of the objects may be overridden. Suppose we would like the ottava bracket to be placed below the text spanner in the example above. All we need to do is to look up the priority of @code{OttavaBracket} in the IR or in the -tables above, and reduce it to a value lower than that of a +table above, and reduce it to a value lower than that of a @code{TextSpanner}, remembering that @code{OttavaBracket} is created in the @code{Staff} context: diff --git a/Documentation/lilypond-texi2html-lang.init b/Documentation/lilypond-texi2html-lang.init new file mode 100644 index 0000000000..dc89070bc3 --- /dev/null +++ b/Documentation/lilypond-texi2html-lang.init @@ -0,0 +1,18 @@ +# Languages minimum initialization for texi2html +# $LANGUAGES will be overwritten by lilypond-texi2html.init. + +use utf8; + +my @langlist = ( + 'ca', 'cs', 'de', 'es', 'fr', 'hu', 'it', 'ja', 'nl', 'po', 'zh' +); + +foreach my $lang (@langlist) +{ + unless (exists($LANGUAGES->{$lang}) && defined($LANGUAGES->{$lang})) + { + $LANGUAGES->{$lang} = {}; + } +} + +return 1; diff --git a/Documentation/notation/input.itely b/Documentation/notation/input.itely index 2ac6fc8a22..c109df7b28 100644 --- a/Documentation/notation/input.itely +++ b/Documentation/notation/input.itely @@ -2126,7 +2126,7 @@ sopranoMusic = \relative { a'4 b c b8( a) } altoMusic = \relative { e'4 e e f } tenorMusic = \relative { c'4 b e d8( c) } bassMusic = \relative { a4 gis a d, } -allLyrics = \lyricmode {King of glo -- ry } +allLyrics = \lyricmode { King of glo -- ry } << \new Staff = "Soprano" \sopranoMusic \new Lyrics \allLyrics @@ -2144,17 +2144,11 @@ allLyrics = \lyricmode {King of glo -- ry } \new Lyrics \allLyrics \new PianoStaff << \new Staff = "RH" { - \set Staff.printPartCombineTexts = ##f - \partcombine - \sopranoMusic - \altoMusic + \partcombine \sopranoMusic \altoMusic } \new Staff = "LH" { - \set Staff.printPartCombineTexts = ##f \clef "bass" - \partcombine - \tenorMusic - \bassMusic + \partcombine \tenorMusic \bassMusic } >> >> diff --git a/Documentation/notation/spacing.itely b/Documentation/notation/spacing.itely index e954e9b9a6..d3cfa42ff1 100644 --- a/Documentation/notation/spacing.itely +++ b/Documentation/notation/spacing.itely @@ -892,8 +892,8 @@ Default values not listed here are defined in The page-breaking algorithm to use. Choices are @code{ly:minimal-breaking}, @code{ly:page-turn-breaking}, -@code{ly:one-line-breaking} and @code{ly:optimal-breaking} -(the default). +@code{ly:one-line-breaking}, @code{ly:one-line-auto-height-breaking}, +and @code{ly:optimal-breaking} (the default). @item page-breaking-system-system-spacing @funindex page-breaking-system-system-spacing @@ -1559,6 +1559,7 @@ how to modify them. * Optimal page breaking:: * Minimal page breaking:: * One-line page breaking:: +* One-line-auto-height page breaking:: * Optimal page turning:: @end menu @@ -1596,8 +1597,8 @@ bottom of the final page (or the final page in each @ref{Fixed vertical spacing paper variables,,Fixed vertical spacing @code{@bs{}paper} variables}. Page breaks are computed by the @code{page-breaking} function. -LilyPond provides three algorithms for computing page breaks, -@code{ly:optimal-breaking}, @code{ly:page-turn-breaking} and +LilyPond provides several algorithms for computing page breaks, +including @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} and @code{ly:minimal-breaking}. The default is @code{ly:optimal-breaking}, but the value can be changed in the @code{\paper} block: @@ -1710,14 +1711,31 @@ Snippets: The @code{ly:one-line-breaking} function is a special-purpose page breaking algorithm that puts each score on its own page, and -on a single line. This page breaking function does not typeset -titles or margins; only the score will be displayed. +on a single line. No titles or margins are typeset; only the score is +displayed. -The page width will be adjusted so that the longest score fits on +The page width is adjusted so that the longest score fits on one line. In particular, @code{paper-width}, @code{line-width} -and @code{indent} variables in the @code{\paper} block will be -ignored, although @code{left-margin} and @code{right-margin} will -still be honored. The height of the page will be left unmodified. +and @code{indent} variables in the @code{\paper} block are ignored, +although @code{left-margin} and @code{right-margin} are still honored. +The height of the page is left unmodified. + + +@node One-line-auto-height page breaking +@unnumberedsubsubsec One-line-auto-height page breaking + +@funindex ly:one-line-auto-height-breaking + +The @code{ly:one-line-auto-height-breaking} function works just like +@code{ly:one-line-breaking} except the page height is automatically +modified to fit the height of the music. Specifically, the +@code{paper-height} variable in the @code{\paper} block is set so that +it spans the height of the tallest score plus the @code{top-margin} and +@code{bottom-margin}. + +Note that the @code{top-system-spacing} setting will affect the +vertical position of the music. Set it to @code{##f} in a paper block +to simply place the music between the top and bottom margins. @node Optimal page turning @@ -2642,6 +2660,9 @@ is, if two outside-staff grobs are competing for the same space, the one with the lower @code{outside-staff-priority} will be placed closer to the staff. +A listing of outside-staff-priorities may be found in +@rlearning{The outside-staff-priority property}. + @lilypond[quote,ragged-right,verbatim] \relative c'' { c4_"Text"\pp diff --git a/Documentation/notation/staff.itely b/Documentation/notation/staff.itely index db5d5ebab8..1a2f07566d 100644 --- a/Documentation/notation/staff.itely +++ b/Documentation/notation/staff.itely @@ -669,11 +669,11 @@ example. @end lilypond -Using the @code{\Staff \RemoveEmptyStaves} command to create ossia +Using the @code{\RemoveAllEmptyStaves} command to create ossia staves may be used as an alternative. This method is most convenient when ossia staves occur immediately following a line break. For more information about -@code{\Staff \RemoveEmptyStaves}, see @ref{Hiding staves}. +@code{\RemoveAllEmptyStaves}, see @ref{Hiding staves}. @lilypond[verbatim,quote,ragged-right] << @@ -681,6 +681,7 @@ break. For more information about \remove "Time_signature_engraver" \hide Clef \magnifyStaff #2/3 + \RemoveAllEmptyStaves } \relative { R1*3 c''4 e8 d c2 @@ -694,13 +695,6 @@ break. For more information about e4 d c2 } >> - -\layout { - \context { - \Staff \RemoveEmptyStaves - \override VerticalAxisGroup.remove-first = ##t - } -} @end lilypond @@ -737,10 +731,14 @@ Internals Reference: @cindex Frenched staff @cindex staff, hiding @cindex staff, empty -@cindex hiding of staves +@cindex hiding staves +@cindex hiding ancient staves +@cindex hiding rhythmic staves +@cindex hiding vaticana staves @cindex empty staves @funindex \RemoveEmptyStaves +@funindex \RemoveAllEmptyStaves @funindex Staff_symbol_engraver @funindex \stopStaff @funindex stopStaff @@ -758,11 +756,14 @@ alternative, @code{\stopStaff} may be used. @end lilypond -Empty staves can be hidden by setting the -@code{\Staff \RemoveEmptyStaves} command in the @code{\layout} -block. In orchestral scores, this style is known as @q{Frenched -Score}. By default, this command hides and removes all empty -staves in a score except for those in the first system. +Empty staves can be hidden (for a so-called @q{Frenched Score}) +by applying the @code{\RemoveEmptyStaves} command on a context, which +can be done globally (in a @code{\layout} block) as well as for +specific staves only (in a @code{\with} block). This command removes +all empty staves in a score except for those in the first system. If +you want those in the first system to be hidden also, use +@code{\RemoveAllEmptyStaves}. Supported contexts are @code{Staff}, +@code{RhythmicStaff} and @code{VaticanaStaff}. @warning{A staff is considered empty when it contains only multi-measure rests, rests, skips, spacer rests, or a combination of these @@ -771,7 +772,8 @@ elements.} @lilypond[verbatim,quote,ragged-right] \layout { \context { - \Staff \RemoveEmptyStaves + \Staff + \RemoveEmptyStaves } } @@ -792,32 +794,15 @@ elements.} @cindex ossia @noindent -@code{\Staff \RemoveEmptyStaves} can also be used to create ossia +@code{\RemoveAllEmptyStaves} can also be used to create ossia sections for a staff. For details, see @ref{Ossia staves}. -@cindex hiding ancient staves -@cindex hiding rhythmic staves - -@funindex \RemoveEmptyStaves - -The @code{\VaticanaStaff \RemoveEmptyStaves} command may be used to -hide empty staves in ancient music contexts. Similarly, -@code{\RhythmicStaff \RemoveEmptyStaves} may be used to hide empty -@code{RhythmicStaff} contexts. - @predefined -@code{\Staff \RemoveEmptyStaves}, -@code{\VaticanaStaff \RemoveEmptyStaves}, -@code{\RhythmicStaff \RemoveEmptyStaves}. +@code{\RemoveEmptyStaves}, +@code{\RemoveAllEmptyStaves}. @endpredefined - -@snippets - -@lilypondfile[verbatim,quote,texidoc,doctitle] -{removing-the-first-empty-line.ly} - @seealso Music Glossary: @rglos{Frenched staff}. diff --git a/Documentation/pictures/GNUmakefile b/Documentation/pictures/GNUmakefile index 131de3e323..ef72775059 100644 --- a/Documentation/pictures/GNUmakefile +++ b/Documentation/pictures/GNUmakefile @@ -19,7 +19,7 @@ include $(depth)/make/stepmake.make default: ifeq ($(out),www) -local-WWW-1: $(OUT_BITMAP_IMAGES) $(OUT_PDF_IMAGES) +local-WWW-1: $(OUT_BITMAP_IMAGES) $(OUT_PDF_IMAGES) $(outdir)/pdf endif ######### @@ -43,3 +43,5 @@ $(outdir)/%.png: %.eps $(outdir)/%.pdf: %.eps gs -dAutoRotatePages=/None -q -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@ -dEPSCrop -c .setpdfwrite -f $< +$(outdir)/pdf: + ln -sf $(top-src-dir)/Documentation/pictures/pdf $@ diff --git a/Documentation/snippets/new/subdividing-beams.ly b/Documentation/snippets/new/subdividing-beams.ly index 94cdccf724..0030c5a1cb 100644 --- a/Documentation/snippets/new/subdividing-beams.ly +++ b/Documentation/snippets/new/subdividing-beams.ly @@ -10,7 +10,7 @@ entire groups of notes. This behavior can be modified to subdivide the beams into sub-groups by setting the property @code{subdivideBeams}. When set, multiple beams will be subdivided at intervals defined by the current value of @code{baseMoment} by reducing the multiple beams to -the number of beams that indicates the metric value of the subdivision. +the number of beams that indicates the metric value of the subdivision. If the group following the division is shorter than the current metric value (usually because the beam is incomplete) the number of beams reflects the longest possible subdivision group. However, if there is @@ -40,12 +40,12 @@ changed to match the new @code{baseMoment}: \set baseMoment = #(ly:make-moment 1/16) \set beatStructure = #'(4 4 4 4) c32[ c c c c c c c] - + % Shorten beam by 1/32 \set baseMoment = #(ly:make-moment 1/8) \set beatStructure = #'(2 2 2 2) c32[ c c c c c c] r32 - + % Shorten beam by 3/32 \set baseMoment = #(ly:make-moment 1/8) \set beatStructure = #'(2 2 2 2) diff --git a/Documentation/web/community.itexi b/Documentation/web/community.itexi index fa6826b541..a220917700 100644 --- a/Documentation/web/community.itexi +++ b/Documentation/web/community.itexi @@ -412,7 +412,7 @@ then that is a bug. We may already know about this bug. Check here: @example -@uref{http://code.google.com/p/lilypond/issues/list} +@uref{http://sourceforge.net/p/testlilyissues/issues/} @end example @warning{Please @strong{DO NOT} add bug reports directly to the @@ -884,30 +884,64 @@ manuals can be found at @url{http://lilypond.org}} @divClass{column-center-top} @subheading What is Google Summer of Code? -A global program run by Google that offers students stipends for working -on open source software projects during summer vacations. +@uref{https://developers.google.com/open-source/gsoc/, GSoC} is a global +program that offers students stipends to write code for free software +and open source projects during the summer. It is an excellent +opportunity for students to gain experience with real-world software +development and make a contribution that benefits everyone. It brings +new contributors to LilyPond and enables students who are already +involved to become more involved. LilyPond participates in GSoC as part +of the @uref{http://www.gnu.org/, GNU project}. -It is an excellent opportunity to find new contributors, and encourage -students already participating in LilyPond development, to become more -involved. One of our contributors was accepted in the 2012 program as -part of the @uref{http://www.gnu.org/, GNU project}; and we are always -looking for others to participate in future programs. +We have had GSoC participants in 2012 and 2015 and encourage students to +apply for future summers. + +If you have questions or would like to apply, send us an email on our +developer mailing list (see @ref{Contact}). @divEnd @divClass{column-center-middle-color2} -@subheading Our Ideas List +@subheading Project Ideas List -Below is a list of projects that were suggested for the GSoC 2012 -students and is retained here as an inspiration for anyone -who is interested in developing LilyPond for future GSoC projects. +Below is a list of projects that was initially drawn up for GSoC 2012. +It is maintained here as inspiration for future GSoC projects and for +anyone who is interested in developing LilyPond. -There are many more things that can be done to improve LilyPond and -members of the LilyPond development team are always willing to help -those who would like to tackle projects such as those listed below. +Note that this is not an exhaustive list. Other GSoC projects are also +possible. There are a number of areas where LilyPond could be improved +and the LilyPond development team is always willing to help those who +would like to tackle a project like those listed below. A full list of all the current open issues can be found -@uref{http://code.google.com/p/lilypond/issues/list, here}. +@uref{http://sourceforge.net/p/testlilyissues/issues/, here}. + +@divEnd + +@divClass{column-center-middle-color3} +@subheading ScholarLY + +ScholarLY is a library in +@uref{https://github.com/openlilylib/snippets, openLilyLib} that +provides functionality for annotating scores, making it possible +to manage scholarly workflows completely in the context of the score +document. So far it is possible to enter annotations of different +types, produce clickable messages in the console output and export +to text and LaTeX files. + +There are numerous feature requests to turn this library into an +even more powerful and comprehensive tool, for example: Inserting +music examples, producing footnotes, automatically applying styles +to the annotated item (e.g. dash a slur, parenthesize an accidental), +creating reports with point-and-click entries. For a full description +of this project suggestion please visit +@uref{https://github.com/openlilylib/scholarly/wiki/GSoC}. + +@strong{Difficulty:} medium +@strong{Requirements:} Scheme, possibly LaTeX, (optionally Python) +@strong{Recommended:} Experience with or interest in scholarly +edition and collaborative workflows. +@strong{Potential Mentor:} Urs Liska @divEnd @@ -921,7 +955,7 @@ multiple staffs are used where some have grace notes and others don't. @strong{Difficulty:} medium @strong{Requirements:} C++, MIDI @strong{Recommended:} familiarity with LilyPond internals -@strong{Mentor(s):} Mike Solomon, Carl Sorensen +@strong{Potential Mentors:} Mike Solomon, Carl Sorensen @divEnd @@ -957,7 +991,7 @@ each output object to the XML tags. @strong{Difficulty:} medium @strong{Requirements:} MusicXML, Python, basic LilyPond knowledge -@strong{Mentor(s):} Reinhold Kainhofer, Mike Solomon +@strong{Potential Mentors:} Reinhold Kainhofer, Mike Solomon Familiarity with other scorewriters (for cross-testing) would also help. @@ -974,7 +1008,7 @@ the intended output and writing code to improve them. @strong{Difficulty:} hard @strong{Requirements:} C++, experience with writing heuristics @strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense -@strong{Mentor(s):} Mike Solomon +@strong{Potential Mentor:} Mike Solomon @divEnd @@ -999,7 +1033,7 @@ it. @strong{Difficulty:} easy @strong{Requirements:} MetaFont, C++, good eye for details @strong{Recommended knowledge:} basic LilyPond knowledge -@strong{Mentor(s):} Werner Lemberg +@strong{Potential Mentor:} Werner Lemberg @divEnd @@ -1014,7 +1048,7 @@ section 2.2 here}). If possible also reduce beaming-computation time. @strong{Difficulty:} medium @strong{Requirements:} C++, experience with writing heuristics @strong{Recommended knowledge:} aesthetic sense -@strong{Mentor(s):} Mike Solomon, Carl Sorensen +@strong{Potential Mentors:} Mike Solomon, Carl Sorensen @divEnd @@ -1028,7 +1062,7 @@ the rejection of any patch which introduced extra warnings. @strong{Difficulty:} medium @strong{Requirements:} C++ -@strong{Mentor(s):} Joe Neeman, Reinhold Kainhofer +@strong{Potential Mentors:} Joe Neeman, Reinhold Kainhofer @divEnd diff --git a/Documentation/web/introduction.itexi b/Documentation/web/introduction.itexi index 3a796c7d4b..b75104d040 100644 --- a/Documentation/web/introduction.itexi +++ b/Documentation/web/introduction.itexi @@ -621,18 +621,19 @@ reportedly very happy with them. Aurélien has also re-orchestrated @emph{Der Ring des Nibelungen} by Richard Wagner to a -@uref{http://www.rsb-online.de/content/konzerte/wagnerzyklus-10-13/wagner-fuer-kinder/index_ger.html,100-minute version for children}. +@uref{http://www.rsb-online.de/content/concerts/new-season-1516/family-concerts-age-7-and-above/index_eng.html,100-minute version for children}. Written for a standard symphony orchestra, but with a reduced cast of -singers, it was performed by the @emph{Radio-Sinfonieorchester Berlin} +singers, it was performed by the +@uref{http://www.rsb-online.de/,@emph{Radio-Sinfonieorchester Berlin}} in April 2014 at the Atze Musiktheater, Berlin. The Conductor was Heiko Matthias Förster. @item Joe Smeets created sheet music for the children's book @emph{Zing Mee} -(@emph{Sing along}) by Annie M.G. published by Querido -- ISBN -9789045106205: -@uref{http://www.queridokinderenjeugdboeken.nl/web/Boek.htm?dbid=18954&typeofpage=134707, www.queridokinderenjeugdboeken.nl}; choir -rehearsal scores for the Dutch translation of Benjamin Britten's +(@emph{Sing along}) by Annie M.G. published by +@uref{http://www.queridokinderenjeugdboeken.nl/, Querido} +-- ISBN 9789045106205; +choir rehearsal scores for the Dutch translation of Benjamin Britten's @emph{Saint Nicolas} performed by @emph{Muziektheater Hollands Diep} in 2011; @uref{http://www.muziektheaterhollandsdiep.nl/nl/voorstellingen/sint_nicolaas_leeft, www.muziektheaterhollandsdiep.nl}. @@ -656,11 +657,11 @@ for his Ph.D. Thesis. @item Mussorgsky's @emph{Pictures at an exhibition}, was re-orchestrated and conducted by @uref{http://www.aurelienbello.com/,Aurélien Bello} with -the @uref{http://www.junge-philharmonie-brandenburg.de/, +the @uref{https://junge-philharmonie-brandenburg.de/, Junge Philharmonie Brandenburg} in October 2011 and April 2012. @item -@uref{http://www.kierenmacmillan.info/, Kieren MacMillan}, composer and +@uref{http://kierenmacmillan.info/, Kieren MacMillan}, composer and musical director. His many, recent works include; @emph{Go Thy Way}, performed by the @uref{http://www.saltlakechoralartists.org/, Salt Lake Choral Artists} in March 2012; The @@ -668,16 +669,16 @@ Salt Lake Choral Artists} in March 2012; The by the @uref{http://www.herald-dispatch.com/news/marshall/x1883873762/Music-duo-Chrysalis-to-perform-at-Marshall-University-on-Jan-19, Chrysalis Duo} ; @emph{thrafsmata} performed in July 2011 by the -@uref{http://www.pnme.org/CurrentSeason/PreviousSeasons.html, Pittsburgh +@uref{http://www.pnme.org/, Pittsburgh New Music Ensemble}. @item @emph{Anonymous Student Compliment or Complaint}, by @uref{http://www.mikesolomon.org, Mike Solomon}, winner chosen from among 172 entries from 22 countries of the -@uref{http://leftcoastensemble.org, 2011 Left Coast Composition Contest}. +@uref{http://www.leftcoastensemble.org, 2011 Left Coast Composition Contest}. Other works include, Norman (age 1) for clarinet solo, performed at the -@uref{http://emu.music.ufl.edu/fems_concerts.html, University of Florida}'s +@uref{http://arts.ufl.edu/academics/music/, University of Florida}'s Electroacoustic Music Festival (FEMF), October 2010. @item @@ -688,7 +689,7 @@ Italy. @uref{http://www.ascarlatti2010.net, Alessandro Scarlatti 2010}, in celebration of the composer's 350th birthday. @item -@uref{http://www.mercurybaroque.org, Mercury Baroque}'s performance of +@uref{http://www.mercuryhouston.org/, Mercury Baroque}'s performance of Lully's @emph{Armide}, May 15-16, 2009, in Houston, Texas (engraving by @uref{http://nicolas.sceaux.free.fr/, Nicolas Sceaux}). @@ -703,7 +704,7 @@ New York} (engraving by @emph{Affaire étrangère}, an opera by @uref{http://valentin.villenave.net/,Valentin Villenave} to a French libretto by -@uref{http://en.wikipedia.org/wiki/Lewis_Trondheim, Lewis +@uref{https://en.wikipedia.org/wiki/Lewis_Trondheim, Lewis Trondheim}, premiered February 1, 2009 at @uref{http://www.orchestre-montpellier.com/, L'Opéra National de Montpellier}, France. @@ -734,12 +735,12 @@ piano keyboard showing which keys to press to help beginners learn how to read sheet music. @item -@uref{http://www.adoromusicpub.com/, Adoro Music Publishing}, +@uref{https://twitter.com/adoromusic, Adoro Music Publishing}, high-quality scores of sacred music, available for immediate download or in traditional paper format. @item -@uref{http://www.shadylane.fr, The Shady Lane Publishing}, +@uref{http://matthieujacquot.com/, The Shady Lane Publishing}, a @qq{micro musical publishing house} whose goal is to promote a new form of musical economy closer to the musicians and music lovers. diff --git a/Documentation/web/news-front.itexi b/Documentation/web/news-front.itexi index 0ac9889fdd..8596786a1a 100644 --- a/Documentation/web/news-front.itexi +++ b/Documentation/web/news-front.itexi @@ -9,10 +9,10 @@ @c used for news about the upcoming release; see CG 10.2 @newsItem -@subheading LilyPond 2.19.34 released @emph{December 22, 2015} +@subheading LilyPond 2.19.36 released @emph{January 31, 2016} We are happy to announce the release of LilyPond -2.19.34. This release includes a number of enhancements, and contains some +2.19.36. This release includes a number of enhancements, and contains some work in progress. You will have access to the very latest features, but some may be incomplete, and you may encounter bugs and crashes. If you require a stable version of Lilypond, we recommend using the 2.18 diff --git a/Documentation/web/news.itexi b/Documentation/web/news.itexi index 894c37c53b..f6ef627fb5 100644 --- a/Documentation/web/news.itexi +++ b/Documentation/web/news.itexi @@ -26,6 +26,30 @@ NOTE: * don't duplicate entries from news-front.itexi @end ignore +@newsItem +@subheading LilyPond 2.19.35 released @emph{January 02, 2016} + +We are happy to announce the release of LilyPond +2.19.35. This release includes a number of enhancements, and contains some +work in progress. You will have access to the very latest features, but +some may be incomplete, and you may encounter bugs and crashes. If you +require a stable version of Lilypond, we recommend using the 2.18 +version. + +@newsEnd + +@newsItem +@subheading LilyPond 2.19.34 released @emph{December 22, 2015} + +We are happy to announce the release of LilyPond +2.19.34. This release includes a number of enhancements, and contains some +work in progress. You will have access to the very latest features, but +some may be incomplete, and you may encounter bugs and crashes. If you +require a stable version of Lilypond, we recommend using the 2.18 +version. + +@newsEnd + @newsItem @subheading LilyPond 2.19.33 released @emph{December 6, 2015} diff --git a/VERSION b/VERSION index cce14f28ef..9cd0ed40f5 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=2 MINOR_VERSION=19 -PATCH_LEVEL=35 +PATCH_LEVEL=37 MY_PATCH_LEVEL= VERSION_STABLE=2.18.2 -VERSION_DEVEL=2.19.34 +VERSION_DEVEL=2.19.36 diff --git a/config.make.in b/config.make.in index e915a0b3cd..c681d76199 100644 --- a/config.make.in +++ b/config.make.in @@ -129,6 +129,7 @@ MFMODE = @MFMODE@ MSGFMT = @MSGFMT@ PAPERSIZE=a4 PATHSEP = @PATHSEP@ +PDFTEX = @PDFTEX@ PDFLATEX = @PDFLATEX@ PERL = @PERL@ PLATFORM_WINDOWS = @PLATFORM_WINDOWS@ diff --git a/input/regression/beam-subdivide-quarter-notes.ly b/input/regression/beam-subdivide-quarter-notes.ly index a69dcf0390..29599835f9 100644 --- a/input/regression/beam-subdivide-quarter-notes.ly +++ b/input/regression/beam-subdivide-quarter-notes.ly @@ -1,10 +1,10 @@ \version "2.19.32" \header { - + doctitle = "Beam subdivide over quarter notes" - texidoc = "Beam count at subdivisions should match the location + texidoc = "Beam count at subdivisions should match the location of the current subdivision. However, if the groups are equal or longer than quarter notes, one beam should always be left." diff --git a/input/regression/beam-subdivide-shortened-beam.ly b/input/regression/beam-subdivide-shortened-beam.ly index 665d837442..fb15a75ebe 100644 --- a/input/regression/beam-subdivide-shortened-beam.ly +++ b/input/regression/beam-subdivide-shortened-beam.ly @@ -1,10 +1,10 @@ \version "2.19.34" \header { - + doctitle = "Beam subdivide with incomplete remainder" - texidoc = "Beam count at subdivisions should match the count corresponding + texidoc = "Beam count at subdivisions should match the count corresponding to the location of the current subdivision. However, if the remainder of the beam is shorter than that the beam count should be adopted accordingly." @@ -19,7 +19,7 @@ beam is shorter than that the beam count should be adopted accordingly." \time 1/4 \set subdivideBeams = ##t \set baseMoment = #(ly:make-moment 1/32) - c64 ^\markup "Full beam (1/32 division)" [ c c c c c c c c c c c c c c c ] + c64 ^\markup "Full beam (1/32 division)" [ c c c c c c c c c c c c c c c ] c64 ^\markup "Shortened by 1/32" [ c c c c c c c c c c c c c ] r32 c64 ^\markup "Shortened by 3/32" [ c c c c c c c c c ] r16. \set baseMoment = #(ly:make-moment 1/16) diff --git a/input/regression/beam-subdivide-trailing-stem.ly b/input/regression/beam-subdivide-trailing-stem.ly index de6d6bd1d2..c09dad4eb9 100644 --- a/input/regression/beam-subdivide-trailing-stem.ly +++ b/input/regression/beam-subdivide-trailing-stem.ly @@ -1,7 +1,7 @@ \version "2.19.34" \header { - + doctitle = "Beam subdivide over quarter notes" texidoc = "If in a subdivided beam one single stem follows a subdivision diff --git a/input/regression/beam-subdivision.ly b/input/regression/beam-subdivision.ly index e7dd0a7b73..c88eab152c 100644 --- a/input/regression/beam-subdivision.ly +++ b/input/regression/beam-subdivision.ly @@ -1,6 +1,6 @@ \header { - texidoc = "Beam count at subdivisions should match the location + texidoc = "Beam count at subdivisions should match the location of the current subdivision." } @@ -10,7 +10,7 @@ of the current subdivision." ragged-right = ##t } -{ +{ \set subdivideBeams = ##t \set baseMoment = #(ly:make-moment 1 4) c''32[^\markup{"baseMoment 1/4"} c'' c'' c'' c'' c'' c'' c''] diff --git a/input/regression/ledger-extra.ly b/input/regression/ledger-extra.ly new file mode 100644 index 0000000000..55ad653ef6 --- /dev/null +++ b/input/regression/ledger-extra.ly @@ -0,0 +1,28 @@ +\version "2.19.36" + +\header { + texidoc = "The ledger-extra grob property increases +the number of ledger lines drawn, but they are not +drawn on top of staff lines." +} + +notes = \relative { + \time 6/8 + a4. b | c d | e f | + g4. a | b c | d e | + f4. g | a b | +} + +\new Staff { + \notes +} + +\new Staff { + \override Staff.StaffSymbol.ledger-extra = 1 + \notes +} + +\new Staff { + \override Staff.StaffSymbol.ledger-extra = 2 + \notes +} diff --git a/input/regression/lilypond-book/GNUmakefile b/input/regression/lilypond-book/GNUmakefile index ebe18303f5..6ddabeae88 100644 --- a/input/regression/lilypond-book/GNUmakefile +++ b/input/regression/lilypond-book/GNUmakefile @@ -25,7 +25,7 @@ $(outdir)/collated-files.list: $(OUT_FILES) echo $(sort $(filter-out %.xml,$(OUT_FILES))) > $@ $(outdir)/suffix-texi.texi: suffix-texi.texi $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES) - LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< + LILYPOND_VERSION=$(TOPLEVEL_VERSION) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< # Due to automatic language detection the standard rule using the script # extract_texi_filenames would create .es.xref-map for these files. The diff --git a/input/regression/markup-line-styles.ly b/input/regression/markup-line-styles.ly index ac15fa78ad..aa718e4f5c 100644 --- a/input/regression/markup-line-styles.ly +++ b/input/regression/markup-line-styles.ly @@ -1,11 +1,13 @@ \version "2.19.22" \header { - texidoc = "The markup-commands @code{\\draw-dashed-line} and - @code{\\draw-dotted-line} should print the same visual length as - @code{\\draw-line}." + texidoc = "The markup-commands @code{\\draw-dashed-line}, + @code{\\draw-dotted-line} and @code{\\draw-squiggle-line} should print the + same visual length as @code{\\draw-line}. + Also testing possible overrides for @code{\\draw-squiggle-line}" } +%% draw-dotted-line and draw-dashed-line test = #(define-scheme-function (x-nmbr y-nmbr)(number? number?) (let* ((lst (map @@ -57,4 +59,71 @@ test = (iota (abs x-nmbr))))) lst)) +%% draw-squiggle-line +mrkp = +\markup + \override #'(word-space . 2) + \column { + \line { \draw-squiggle-line #0.5 #'(6 . 0) ##t \tiny \vcenter "default" } + \line { + \override #'(orientation . -1) \draw-squiggle-line #0.5 #'(6 . 0) ##t + \tiny \vcenter "different orientation" + } + \line { + \draw-squiggle-line #0.5 #'(6 . 0) ##f + \tiny \vcenter "\"eq-end?\" set #f" + } + \line { + \override #'(height . 1) \draw-squiggle-line #0.5 #'(6 . 0) ##t + \tiny \vcenter "different height" + } + \line { + \override #'(thickness . 5) \draw-squiggle-line #0.5 #'(6 . 0) ##t + \tiny \vcenter "different thickness" + } + \line { + \override #'(angularity . 2) \draw-squiggle-line #0.5 #'(6 . 0) ##t + \tiny \vcenter "different angularity" + } + } + +test-draw-squiggle-line = +#(define-scheme-function (steps) (integer?) +;; Puts out a markup combining draw-line-markup and draw-squiggle-line-markup +;; in a helix-like mannor + (define (val-pts-list steps) + ;; Puts out a list, with each element being a pair of a numerical value + ;; and a number-pair + ;; The numerical value is used for first-bow-length and its height + ;; The number-pair is the destination-point of the line. + ;; Those points are on a simple helix around '(0 . 0) + (map + (lambda (n r) + (let* ((y (* (sin n) r)) + (x (* (cos n) r))) + (if (< (abs x) 0.00001) + (set! x 0)) + (if (< (abs y) 0.00001) + (set! y 0)) + (cons (max 0.1 (- 0.5 (/ 1 r))) (cons x y )))) + (iota steps 0 (/ TWO-PI steps)) + (iota steps 3 0.5))) + + (let ((args + (map + (lambda (arg) + #{ + \markup + \combine + \draw-line $(cdr arg) + \override #`(height . , (car arg)) + \draw-squiggle-line + #(car arg) + $(cdr arg) ##f + #}) + (val-pts-list steps)))) + #{ \markup { \hspace #10 \overlay $args \hspace #5 \vcenter \mrkp } #})) + \test #15 #0 + +\test-draw-squiggle-line #12 #10 diff --git a/input/regression/markup-note-styles.ly b/input/regression/markup-note-styles.ly index f5fbc9b60d..316a87c2a6 100644 --- a/input/regression/markup-note-styles.ly +++ b/input/regression/markup-note-styles.ly @@ -1,14 +1,15 @@ -\version "2.17.19" +\version "2.19.35" \header { texidoc = "@code{\\note-by-number} and @code{\\note} support -all note head styles and straight flags." +all note head styles and all flag styles (default, straight, flat, mensural)." } #(define styles-list '(default altdefault baroque neomensural mensural petrucci + semipetrucci blackpetrucci harmonic harmonic-black harmonic-mixed diamond cross xcircle @@ -35,6 +36,8 @@ all note head styles and straight flags." '(-3 -2 -1 0 1 2 3 4 5 6)))))))) styles)))) +%% Testing all combinations of note-head/flag-styles would be too much +%% Thus, limited examples \markup { \column { \combine \null \vspace #1 @@ -49,7 +52,7 @@ all note head styles and straight flags." \combine \null \vspace #1 \underline "Modern-straight-flag:" \override #'(flag-style . modern-straight-flag) - \show-note-styles #'(default) + \show-note-styles #'(default mensural) } } @@ -70,3 +73,12 @@ all note head styles and straight flags." \show-note-styles #'(default) } } + +\markup { + \column { + \combine \null \vspace #1 + \underline "default-flag:" + \override #'(flag-style . default) + \show-note-styles #'(default mensural) + } +} diff --git a/input/regression/one-line-auto-height-breaking.ly b/input/regression/one-line-auto-height-breaking.ly new file mode 100644 index 0000000000..087ff501e5 --- /dev/null +++ b/input/regression/one-line-auto-height-breaking.ly @@ -0,0 +1,11 @@ +\version "2.19.36" + +\header { + texidoc = "The @var{ly:one-line-auto-height-breaking} algorithm puts + everything on one line (just like @code{ly:one-line-breaking}) and + sets the page-height to fit the music." +} + +\paper { page-breaking = #ly:one-line-auto-height-breaking } + +\include "typography-demo.ly" diff --git a/input/regression/tweaks-as-overrides.ly b/input/regression/tweaks-as-overrides.ly index 871a364fb3..bcd1680b90 100644 --- a/input/regression/tweaks-as-overrides.ly +++ b/input/regression/tweaks-as-overrides.ly @@ -1,7 +1,7 @@ -\version "2.19.25" +\version "2.19.36" \header { - texidoc = "Overrides can be the target of a @code{\\tweak}, with the + texidoc = "Overrides can be the target of a @code{\\propertyTweak}, with the tweaks accumulating as override. The main application is for stacking commands implemented in terms of @code{\\propertyTweak}. This example should show the starting chord with blue, cross-styled note heads and @@ -11,8 +11,8 @@ a red stem." \layout { ragged-right = ##t } { - \once \tweak Stem.color #red - \tweak color #blue + \once \propertyTweak Stem.color #red + \propertyTweak color #blue \override NoteHead.style = #'cross 2 c'2 } diff --git a/lily/beaming-pattern.cc b/lily/beaming-pattern.cc index a889990525..46a46a5d2e 100644 --- a/lily/beaming-pattern.cc +++ b/lily/beaming-pattern.cc @@ -166,17 +166,17 @@ Beaming_pattern::beamify (Beaming_options const &options) Direction non_flag_dir = -flag_directions[i]; if (non_flag_dir) { - int count = - (infos_[i + 1].rhythmic_importance_ < 0 && + int count = + (infos_[i + 1].rhythmic_importance_ < 0 && options.subdivide_beams_) - // we're left of a subdivision + // we're left of a subdivision ? (i != infos_.size () - 2) - // respect the beam count for shortened beams ... + // respect the beam count for shortened beams ... ? max (beam_count_for_rhythmic_position (i + 1), beam_count_for_length (remaining_length (i + 1))) // ... except if there's only one trailing stem : beam_count_for_rhythmic_position (i + 1) - + // we're at any other stem : min (min (infos_[i].count (non_flag_dir), infos_[i + non_flag_dir].count (-non_flag_dir)), @@ -184,7 +184,7 @@ Beaming_pattern::beamify (Beaming_options const &options) // Ensure at least one beam is left, even for groups longer than 1/8 count = max (count, 1); - + infos_[i].beam_count_drul_[non_flag_dir] = count; } } @@ -386,7 +386,7 @@ Beaming_pattern::beam_count_for_rhythmic_position (int idx) const return intlog2(infos_[idx].start_moment_.main_part_.den()) - 2; } -int +int Beaming_pattern::beam_count_for_length (Moment len) const { return intlog2(len.main_part_.den()) - 2 - intlog2(len.main_part_.num()); diff --git a/lily/include/one-line-auto-height-breaking.hh b/lily/include/one-line-auto-height-breaking.hh new file mode 100644 index 0000000000..92209de04e --- /dev/null +++ b/lily/include/one-line-auto-height-breaking.hh @@ -0,0 +1,35 @@ +/* + This file is part of LilyPond, the GNU music typesetter. + + Copyright (C) 2012 Joe Neeman + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ + +#ifndef ONE_LINE_AUTO_HEIGHT_BREAKING_HH +#define ONE_LINE_AUTO_HEIGHT_BREAKING_HH + +#include "page-breaking.hh" +#include "page-spacing.hh" + +class One_line_auto_height_breaking: public Page_breaking +{ +public: + virtual SCM solve (); + + One_line_auto_height_breaking (Paper_book *pb); + virtual ~One_line_auto_height_breaking (); +}; + +#endif /* ONE_LINE_AUTO_HEIGHT_BREAKING_HH */ diff --git a/lily/one-line-auto-height-breaking.cc b/lily/one-line-auto-height-breaking.cc new file mode 100644 index 0000000000..bb0698fed4 --- /dev/null +++ b/lily/one-line-auto-height-breaking.cc @@ -0,0 +1,103 @@ +/* + This file is part of LilyPond, the GNU music typesetter. + + Copyright (C) 2012 Joe Neeman + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ + +#include "one-line-auto-height-breaking.hh" + +#include + +#include "column-x-positions.hh" +#include "international.hh" +#include "output-def.hh" +#include "page-spacing.hh" +#include "paper-book.hh" +#include "paper-score.hh" +#include "simple-spacer.hh" +#include "system.hh" + +One_line_auto_height_breaking::One_line_auto_height_breaking (Paper_book *pb) + : Page_breaking (pb, 0, 0) +{ +} + +One_line_auto_height_breaking::~One_line_auto_height_breaking () +{ +} + +/* + This is a somewhat unconventional page-breaking algorithm. Like + ly:one-line-breaking, every score is put on a single page, whose width + is enough to fit the entire score on one line. Line breaks and page + breaks are ignored, and the paper-width setting in the paper + block is modified to fit the music. Unlike ly:one-line-breaking + the paper-height setting in the paper block is also modified to fit + the music. +*/ +SCM +One_line_auto_height_breaking::solve () +{ + SCM all_pages = SCM_EOL; + Real max_width = 0; + Real max_height = 0; + + for (vsize i = 0; i < system_specs_.size (); ++i) + { + if (Paper_score *ps = system_specs_[i].pscore_) + { + vector cols = ps->root_system ()->used_columns (); + + // No indent, "infinite" line width, ragged. + Column_x_positions pos = get_line_configuration (cols, numeric_limits::max (), 0, true); + vector positions; + positions.push_back (pos); + + ps->root_system ()->break_into_pieces (positions); + ps->root_system ()->do_break_substitution_and_fixup_refpoints (); + Grob *system = ps->root_system ()->broken_intos_[0]; + + vector lines_per_page; + lines_per_page.push_back (1); + SCM systems = scm_list_1 (system->self_scm ()); + SCM pages = make_pages (lines_per_page, systems); + + max_width = max (max_width, system->extent (system, X_AXIS).length ()); + max_height = max (max_height, system->extent (system, Y_AXIS).length ()); + all_pages = scm_cons (scm_car (pages), all_pages); + } + else if (Prob *pb = system_specs_[i].prob_) + // Because we don't call Page_breaking::systems in this algorithm, + // we need to manually unprotect the titles. + pb->unprotect (); + } + + // Alter paper-width so that it is large enough to fit every system. + // TODO: it might be nice to allow different pages to have different widths + // and heights. This would need support in the backends (eg. framework-ps.scm). + Real right_margin = robust_scm2double (book_->paper_->c_variable ("right-margin"), 0.0); + Real left_margin = robust_scm2double (book_->paper_->c_variable ("left-margin"), 0.0); + Real width = max_width + right_margin + left_margin; + book_->paper_->set_variable (ly_symbol2scm ("paper-width"), scm_from_double (width)); + + // Alter paper-height so that it fits the height of the tallest system. + Real top_margin = robust_scm2double (book_->paper_->c_variable ("top-margin"), 0.0); + Real bottom_margin = robust_scm2double (book_->paper_->c_variable ("bottom-margin"), 0.0); + Real height = max_height + top_margin + bottom_margin; + book_->paper_->set_variable (ly_symbol2scm ("paper-height"), scm_from_double (height)); + + return scm_reverse_x (all_pages, SCM_EOL); +} diff --git a/lily/one-line-page-breaking.cc b/lily/one-line-page-breaking.cc index 213864462f..a3276f4216 100644 --- a/lily/one-line-page-breaking.cc +++ b/lily/one-line-page-breaking.cc @@ -41,10 +41,9 @@ One_line_page_breaking::~One_line_page_breaking () /* This is a somewhat unconventional page-breaking algorithm. Every - score will be put on a single page, whose width is enough - to fit the entire score one one line. Line breaks and page breaks - are ignored, and the paper-width setting in the paper block - will be modified to fit the music. + score is put on a single page, whose width is enough to fit the entire + score on one line. Line breaks and page breaks are ignored, and the + paper-width setting in the paper block is modified to fit the music. */ SCM One_line_page_breaking::solve () diff --git a/lily/page-breaking-scheme.cc b/lily/page-breaking-scheme.cc index 70ec63971d..0c806493b4 100644 --- a/lily/page-breaking-scheme.cc +++ b/lily/page-breaking-scheme.cc @@ -20,6 +20,7 @@ #include "paper-book.hh" #include "page-turn-page-breaking.hh" #include "one-line-page-breaking.hh" +#include "one-line-auto-height-breaking.hh" #include "optimal-page-breaking.hh" #include "minimal-page-breaking.hh" @@ -56,9 +57,20 @@ LY_DEFINE (ly_minimal_breaking, "ly:minimal-breaking", LY_DEFINE (ly_one_line_breaking, "ly:one-line-breaking", 1, 0, 0, (SCM pb), "Put each score on a single line, and put each line on its own" - " page. The paper-width setting will be modified so that" - " every page will be wider than the widest line.") + " page. Modify the paper-width setting so that every page" + " is wider than the widest line.") { One_line_page_breaking b (unsmob (pb)); return b.solve (); } + +LY_DEFINE (ly_one_line_auto_height_breaking, "ly:one-line-auto-height-breaking", + 1, 0, 0, (SCM pb), + "Put each score on a single line, and put each line on its own" + " page. Modify the paper-width setting so that every page" + " is wider than the widest line. Modify the paper-height" + " setting to fit the height of the tallest line.") +{ + One_line_auto_height_breaking b (unsmob (pb)); + return b.solve (); +} diff --git a/lily/parser.yy b/lily/parser.yy index c60c6ed64c..f09b437fa3 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -3693,7 +3693,7 @@ markup_top: ; markup_scm: - embedded_scm_bare + embedded_scm { if (Text_interface::is_markup ($1)) MYBACKUP (MARKUP_IDENTIFIER, $1, @1); diff --git a/lily/staff-performer.cc b/lily/staff-performer.cc index 0648d0aae8..26781f0dcd 100644 --- a/lily/staff-performer.cc +++ b/lily/staff-performer.cc @@ -331,6 +331,7 @@ Staff_performer::acknowledge_audio_element (Audio_element_info inf) set_instrument_name (voice); } ai->channel_ = channel_; + Audio_staff *audio_staff = get_audio_staff (voice); bool encode_dynamics_as_velocity_ = true; if (encode_dynamics_as_velocity_) { @@ -344,11 +345,11 @@ Staff_performer::acknowledge_audio_element (Audio_element_info inf) else if (Audio_dynamic *d = dynamic_cast (inf.elem_)) { dynamic_map_[voice] = d; - // Output volume as velocity: must disable Midi_dynamic output - d->silent_ = true; + // Output volume as velocity: skip Midi_dynamic output for the + // current element. + return; } } - Audio_staff *audio_staff = get_audio_staff (voice); audio_staff->add_audio_item (ai); } } diff --git a/lily/staff-symbol.cc b/lily/staff-symbol.cc index de88102d14..256a9bdd0d 100644 --- a/lily/staff-symbol.cc +++ b/lily/staff-symbol.cc @@ -247,7 +247,20 @@ Staff_symbol::ledger_positions (Grob *me, int pos) values[i] = nearest_line + dir * (ledger_count - i) * 2; } } - return values; + // remove any ledger lines that would fall on staff lines, + // which can happen when ledger-extra > 0 + vector final_values; + for (vector::const_iterator i = values.begin (), + e = values.end (); + i != e; + ++i) + { + if (find (line_positions.begin (), line_positions.end (), *i) == line_positions.end ()) + { + final_values.push_back (*i); + } + } + return final_values; } int diff --git a/ly/Welcome-to-LilyPond-MacOS.ly b/ly/Welcome-to-LilyPond-MacOS.ly index 17bf91958a..a36bc5e8f0 100644 --- a/ly/Welcome-to-LilyPond-MacOS.ly +++ b/ly/Welcome-to-LilyPond-MacOS.ly @@ -23,7 +23,7 @@ That's it. For more information, visit http://lilypond.org . %} -\version "2.19.34" % necessary for upgrading to future LilyPond versions. +\version "2.19.36" % necessary for upgrading to future LilyPond versions. \header{ title = "A scale in LilyPond" diff --git a/ly/Welcome_to_LilyPond.ly b/ly/Welcome_to_LilyPond.ly index 0bbd29b80f..4d27606c52 100644 --- a/ly/Welcome_to_LilyPond.ly +++ b/ly/Welcome_to_LilyPond.ly @@ -32,7 +32,7 @@ Good luck with LilyPond! Happy engraving. %} -\version "2.19.34" % necessary for upgrading to future LilyPond versions. +\version "2.19.36" % necessary for upgrading to future LilyPond versions. \header{ title = "A scale in LilyPond" diff --git a/ly/context-mods-init.ly b/ly/context-mods-init.ly index 24b8ce0558..a4064f4b32 100644 --- a/ly/context-mods-init.ly +++ b/ly/context-mods-init.ly @@ -24,6 +24,14 @@ RemoveEmptyStaves = \with { to the list of interfaces set by @code{keepAliveInterfaces}." } +RemoveAllEmptyStaves = \with { + \override VerticalAxisGroup.remove-empty = ##t + \override VerticalAxisGroup.remove-first = ##t + \description "Remove staves which are considered to be empty according +to the list of interfaces set by @code{keepAliveInterfaces}, including those +in the first system." +} + inherit-acceptability = #(define-void-function (to from) (symbol? symbol?) diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 5c6fb24e6e..77ca2d0b00 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -1425,7 +1425,47 @@ property (inside of an alist) is tweaked.") ;; should only be attempted when the simple uses don't match the ;; given predicate. (if (ly:music? item) - (tweak prop value item) + (if (music-is-of-type? item 'context-specification) + ;; This is essentially dealing with the case + ;; \propertyTweak color #red \propertyTweak font-size #3 NoteHead + ;; namely when stacked tweaks end in a symbol list + ;; rather than a music expression. + ;; + ;; We have a tweak here to convert into an override, + ;; so we need to know the grob to apply it to. That's + ;; easy if we have a directed tweak, and otherwise we + ;; need to find the symbol in the expression itself. + (let* ((p (check-grob-path prop (*location*) + #:start 1 + #:default #t + #:min 2)) + (elt (ly:music-property item 'element)) + (seq (if (music-is-of-type? elt 'sequential-music) + elt + (make-sequential-music (list elt)))) + (elts (ly:music-property seq 'elements)) + (symbol (if (symbol? (car p)) + (car p) + (and (pair? elts) + (ly:music-property (car elts) + 'symbol))))) + (if (symbol? symbol) + (begin + (set! (ly:music-property seq 'elements) + (cons (make-music 'OverrideProperty + 'symbol symbol + 'grob-property-path (cdr p) + 'pop-first #t + 'grob-value value + 'origin (*location*)) + elts)) + (set! (ly:music-property item 'element) seq)) + (begin + (ly:parser-error (_ "Cannot \\propertyTweak") + (*location*)) + (ly:music-message item (_ "untweakable")))) + item) + (tweak prop value item)) (propertyOverride (append item (if (symbol? prop) (list prop) prop)) value))) @@ -1868,41 +1908,6 @@ property (inside of an alist) is tweaked.") ;; p now contains at least two elements. The first ;; element is #t when no grob has been explicitly ;; specified, otherwise it is a grob name. - ((music-is-of-type? music 'context-specification) - ;; This is essentially dealing with the case - ;; \tweak color #red \propertyTweak font-size #3 NoteHead - ;; namely when stacked tweaks end in a symbol list - ;; rather than a music expression. - ;; - ;; We have a tweak here to convert into an override, - ;; so we need to know the grob to apply it to. That's - ;; easy if we have a directed tweak, and otherwise we - ;; need to find the symbol in the expression itself. - (let* ((elt (ly:music-property music 'element)) - (seq (if (music-is-of-type? elt 'sequential-music) - elt - (make-sequential-music (list elt)))) - (elts (ly:music-property seq 'elements)) - (symbol (if (symbol? (car p)) - (car p) - (and (pair? elts) - (ly:music-property (car elts) - 'symbol))))) - (if (symbol? symbol) - (begin - (set! (ly:music-property seq 'elements) - (cons (make-music 'OverrideProperty - 'symbol symbol - 'grob-property-path (cdr p) - 'pop-first #t - 'grob-value value - 'origin (*location*)) - elts)) - (set! (ly:music-property music 'element) seq)) - (begin - (ly:parser-error (_ "Cannot \\tweak") - (*location*)) - (ly:music-message music (_ "untweakable")))))) (else (set! (ly:music-property music 'tweaks) (acons (cond ((pair? (cddr p)) p) diff --git a/ly/paper-defaults-init.ly b/ly/paper-defaults-init.ly index a8d7c7da30..a106ba9a10 100644 --- a/ly/paper-defaults-init.ly +++ b/ly/paper-defaults-init.ly @@ -60,14 +60,32 @@ %% Flexible vertical spacing %% %% Note: these are not scaled; they are in staff-spaces. - system-system-spacing = #'((basic-distance . 12) (minimum-distance . 8) (padding . 1) (stretchability . 60)) - score-system-spacing = #'((basic-distance . 14) (minimum-distance . 8) (padding . 1) (stretchability . 120)) - markup-system-spacing = #'((basic-distance . 5) (padding . 0.5) (stretchability . 30)) - score-markup-spacing = #'((basic-distance . 12) (padding . 0.5) (stretchability . 60)) - markup-markup-spacing = #'((basic-distance . 1) (padding . 0.5)) - top-system-spacing = #'((basic-distance . 1) (minimum-distance . 0) (padding . 1)) - top-markup-spacing = #'((basic-distance . 0) (minimum-distance . 0) (padding . 1)) - last-bottom-spacing = #'((basic-distance . 1) (minimum-distance . 0) (padding . 1) (stretchability . 30)) + system-system-spacing = #'((basic-distance . 12) + (minimum-distance . 8) + (padding . 1) + (stretchability . 60)) + score-system-spacing = #'((basic-distance . 14) + (minimum-distance . 8) + (padding . 1) + (stretchability . 120)) + markup-system-spacing = #'((basic-distance . 5) + (padding . 0.5) + (stretchability . 30)) + score-markup-spacing = #'((basic-distance . 12) + (padding . 0.5) + (stretchability . 60)) + markup-markup-spacing = #'((basic-distance . 1) + (padding . 0.5)) + top-system-spacing = #'((basic-distance . 1) + (minimum-distance . 0) + (padding . 1)) + top-markup-spacing = #'((basic-distance . 0) + (minimum-distance . 0) + (padding . 1)) + last-bottom-spacing = #'((basic-distance . 1) + (minimum-distance . 0) + (padding . 1) + (stretchability . 30)) %% diff --git a/ly/text-replacements.ly b/ly/text-replacements.ly index c741f4faf8..50f06b484b 100644 --- a/ly/text-replacements.ly +++ b/ly/text-replacements.ly @@ -91,6 +91,8 @@ ("&AA;" . "Å") ("&ae;" . "æ") ("&AE;" . "Æ") + ("ä" . "ä") + ("Ä" . "Ä") ("&dh;" . "ð") ("&DH;" . "Ð") ("&dj;" . "đ") @@ -103,10 +105,14 @@ ("&O;" . "Ø") ("&oe;" . "œ") ("&OE;" . "Œ") + ("ö" . "ö") + ("Ö" . "Ö") ("&s;" . "Å¿") ("&ss;" . "ß") ("&th;" . "þ") ("&TH;" . "Þ") + ("ü" . "ü") + ("Ü" . "Ü") ;; Mathematical symbols ("+" . "+") diff --git a/make/doc-i18n-root-vars.make b/make/doc-i18n-root-vars.make index 48cfcdbb12..9ff0df3a77 100644 --- a/make/doc-i18n-root-vars.make +++ b/make/doc-i18n-root-vars.make @@ -41,7 +41,8 @@ WEB_MANUALS=web ########### ifneq ($(ISOLANG),) -TEXI2HTML_LANG = --lang=$(ISOLANG) +TEXI2HTML_LANG_INIT = --init-file=$(top-src-dir)/Documentation/lilypond-texi2html-lang.init +TEXI2HTML_LANG = --document-language=$(ISOLANG) endif $(XREF_MAPS_DIR)/web.$(ISOLANG).xref-map:\ @@ -52,7 +53,12 @@ TEXI2HTML_INIT = --init-file=$(top-src-dir)/Documentation/lilypond-texi2html.ini TEXI2HTML_SPLIT = --prefix=index --split=section TEXI2HTML_INCLUDES += --I=. --I=$(src-dir) --I=$(outdir) $(DOCUMENTATION_INCLUDES) --I=$(XREF_MAPS_DIR) -TEXI2HTML_FLAGS += $(TEXI2HTML_INCLUDES) $(TEXI2HTML_LANG) $(TEXI2HTML_INIT) +# To overwrite texi2html default i18n messages with the LilyPond init file, +# delete TEXI2HTML_INIT that exists before TEXI2HTML_LANG. +TEXI2HTML_FLAGS := $(filter-out $(TEXI2HTML_INIT),$(TEXI2HTML_FLAGS)) +# Instead, add languages minimum initialization before TEXI2HTML_LANG. +TEXI2HTML_FLAGS := $(subst $(TEXI2HTML_LANG),$(TEXI2HTML_LANG_INIT) $(TEXI2HTML_LANG),$(TEXI2HTML_FLAGS)) +TEXI2HTML_FLAGS += $(TEXI2HTML_INCLUDES) $(TEXI2HTML_LANG_INIT) $(TEXI2HTML_LANG) $(TEXI2HTML_INIT) TEXI2HTML = TOP_SRC_DIR=$(top-src-dir) PERL_UNICODE=SD $(TEXI2HTML_PROGRAM) ########### diff --git a/make/lilypond-book-rules.make b/make/lilypond-book-rules.make index b27aa56e14..3dda429003 100644 --- a/make/lilypond-book-rules.make +++ b/make/lilypond-book-rules.make @@ -52,5 +52,5 @@ $(outdir)/%.xml: %.lyxml # Add the xml => pdf rule only if we have dblatex ifeq (,$(findstring dblatex,$(MISSING_OPTIONAL))) $(outdir)/%.pdf: $(outdir)/%.xml - cd $(outdir) && $(buildscript-dir)/run-and-check "$(DBLATEX) $(notdir $<)" "$*.dblatex.log" + cd $(outdir) && $(buildscript-dir)/run-and-check "$(DBLATEX) $(DBLATEX_BACKEND) $(notdir $<)" "$*.dblatex.log" endif diff --git a/make/lilypond-book-vars.make b/make/lilypond-book-vars.make index bb1fc23dfe..8d9955b6a4 100644 --- a/make/lilypond-book-vars.make +++ b/make/lilypond-book-vars.make @@ -1,6 +1,7 @@ # rules for directories with html files. LILYPOND_BOOK_COMMAND = LILYPOND_VERSION=$(TOPLEVEL_VERSION) \ + PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) \ $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) \ --process='$(LILYPOND_BOOK_PROCESS) \ $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) \ @@ -39,6 +40,11 @@ OUT_DOCBOOK_FILES = ${DOCBOOK_FILES:%.lyxml=$(outdir)/%.pdf} else OUT_DOCBOOK_FILES = ${DOCBOOK_FILES:%.lyxml=$(outdir)/%.xml} endif +ifeq ($(PDFLATEX),xelatex) +DBLATEX_BACKEND = -b xetex +else +DBLATEX_BACKEND = +endif OUT_FILES = $(sort $(OUT_HTML_FILES) \ $(OUT_HTMLY_FILES) \ diff --git a/make/ly-rules.make b/make/ly-rules.make index 25dd5b2fbb..a9137b39ac 100644 --- a/make/ly-rules.make +++ b/make/ly-rules.make @@ -5,7 +5,7 @@ LYS_OUTPUT_OPTION= --lily-output-dir $(LYS_OUTPUT_DIR) LYS_OUTPUT_DIR=$(top-build-dir)/out/lybook-db LILYPOND_BOOK_FLAGS += $(LYS_OUTPUT_OPTION) $(outdir)/%.latex: %.doc $(INIT_LY_SOURCES) $(SCHEME_SOURCES) - LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< + LILYPOND_VERSION=$(TOPLEVEL_VERSION) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< # This allows -j make option while making sure only one lilypond-book instance @@ -23,11 +23,11 @@ $(eval $(firstword $(TEXI_FILES_FROM_TELY)):\ # don't do ``cd $(outdir)'', and assume that $(outdir)/.. is the src dir. # it is not, for --srcdir builds $(outdir)/%.texi: %.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES) - LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< + LILYPOND_VERSION=$(TOPLEVEL_VERSION) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< $(outdir)/%.texi: $(outdir)/%.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES) - LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< + LILYPOND_VERSION=$(TOPLEVEL_VERSION) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< $(outdir)/%.html.omf: %.tely diff --git a/po/da.po b/po/da.po index 4731a97b24..bd8c02af9f 100644 --- a/po/da.po +++ b/po/da.po @@ -1,9 +1,9 @@ # Danish translation of lilypond -# Copyright (C) 2015 Free Software Foundation, Inc. +# Copyright (C) 2016 Free Software Foundation, Inc. # This file is distributed under the same license as the lilypond package. # Keld Simonsen , 2001-2002. # Reviewed 2001-09-28 Rune Zedeler -# Joe Hansen , 2015. +# Joe Hansen , 2015, 2016. # # Konventioner: # alteration -> alteration @@ -30,10 +30,10 @@ # msgid "" msgstr "" -"Project-Id-Version: lilypond 2.19.16\n" +"Project-Id-Version: lilypond 2.19.26\n" "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n" -"POT-Creation-Date: 2015-02-28 14:31+0000\n" -"PO-Revision-Date: 2015-05-06 21:00+0200\n" +"POT-Creation-Date: 2015-08-27 10:48+0100\n" +"PO-Revision-Date: 2016-01-10 21:00+0200\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" @@ -191,7 +191,7 @@ msgstr "forældet \\textstyle, ny \\key-syntaks" #: convertrules.py:82 convertrules.py:1856 convertrules.py:2032 #: convertrules.py:2175 convertrules.py:2506 convertrules.py:2801 -#: convertrules.py:3151 convertrules.py:3385 convertrules.py:3697 +#: convertrules.py:3151 convertrules.py:3388 convertrules.py:3700 msgid "bump version for release" msgstr "bump version for udgivelse" @@ -611,10 +611,10 @@ msgstr "Fjern oldaddlyrics" #: convertrules.py:2820 msgid "" "oldaddlyrics is no longer supported. \n" -" Use addlyrics or lyrsicsto instead.\n" +" Use addlyrics or lyricsto instead.\n" msgstr "" "oldaddlyrics er ikke længere understøttet. \n" -" Brug addlyrics eller lyrsicsto i stedet.\n" +" Brug addlyrics eller lyricsto i stedet.\n" #: convertrules.py:2826 msgid "" @@ -854,15 +854,15 @@ msgstr "consistent-broken-slope hÃ¥ndteres nu via positionstilbagekaldene.\n" msgid "input/regression/beam-broken-classic.ly shows how broken beams are now handled.\n" msgstr "input/regression/beam-broken-classic.ly viser hvordan ødelagte bjælker nu hÃ¥ndteres.\n" -#: convertrules.py:3369 +#: convertrules.py:3372 msgid "beamExceptions controls whole-measure beaming." msgstr "beamExceptions kontrollerer bjælker i hele mÃ¥l." -#: convertrules.py:3606 +#: convertrules.py:3609 msgid "Flag.transparent and Flag.color inherit from Stem" msgstr "Flag.transparent og Flag.color arver fra Stem (nodehals)" -#: convertrules.py:3672 +#: convertrules.py:3675 msgid "Staff-padding now controls the distance to the baseline, not the nearest point." msgstr "Staff-padding kontrollerer nu afstanden til basislinjen, ikke det nærmeste punkt." @@ -968,12 +968,12 @@ msgstr "Toneartealterationsoktav angivet for en ikkeeksisterende alteration nr. msgid "Unable to find instrument for ID=%s\n" msgstr "Kan ikke finde instrument for ID=%s\n" -#: abc2ly.py:1386 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1044 +#: abc2ly.py:1389 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1044 #, python-format msgid "%s [OPTION]... FILE" msgstr "%s [TILVALG] ... FIL" -#: abc2ly.py:1387 +#: abc2ly.py:1390 #, python-format msgid "" "abc2ly converts ABC music files (see\n" @@ -982,29 +982,29 @@ msgstr "" "abc2ly konverterer ABC-musikfiler (se\n" "%s) til LilyPond-inddata.\n" -#: abc2ly.py:1395 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231 -#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:183 +#: abc2ly.py:1398 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231 +#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:184 msgid "show version number and exit" msgstr "vis versionsnummer og afslut" -#: abc2ly.py:1398 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140 -#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:162 +#: abc2ly.py:1401 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140 +#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:163 msgid "show this help and exit" msgstr "vis denne hjælpetekst og afslut" -#: abc2ly.py:1401 etf2ly.py:1209 midi2ly.py:1071 +#: abc2ly.py:1404 etf2ly.py:1209 midi2ly.py:1071 msgid "write output to FILE" msgstr "skriv uddata til FIL" -#: abc2ly.py:1404 +#: abc2ly.py:1407 msgid "be strict about success" msgstr "vær nøje omkring succes" -#: abc2ly.py:1407 +#: abc2ly.py:1410 msgid "preserve ABC's notion of beams" msgstr "bevar ABC's begreb om bjælker" -#: abc2ly.py:1410 +#: abc2ly.py:1413 msgid "suppress progress messages" msgstr "undertryk statusbeskeder" @@ -1012,8 +1012,8 @@ msgstr "undertryk statusbeskeder" #. "Report bugs in English via %s", #. or if there is a LilyPond users list or forum in your language #. "Report bugs in English via %s or in YOUR_LANG via URI" -#: abc2ly.py:1413 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258 -#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:317 +#: abc2ly.py:1416 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258 +#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:318 #, c-format, python-format msgid "Report bugs via %s" msgstr "Rapporter fejl pÃ¥ engelsk via %s eller vedrørende den danske oversættelse til " @@ -1064,7 +1064,7 @@ msgid "Print log messages according to LOGLEVEL (NONE, ERROR, WARNING, PROGRESS msgstr "Vis logbeskeder jævnfør LOGNIVEAU (NONE, ERROR, WARNING, PROGRESS (standard), DEBUG)" #: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181 -#: musicxml2ly.py:2629 main.cc:176 +#: musicxml2ly.py:2629 main.cc:177 msgid "LOGLEVEL" msgstr "LOGNIVEAU" @@ -1096,7 +1096,7 @@ msgid "make a numbered backup [default: filename.ext~]" msgstr "lav en nummereret sikkerhedskopi [standard: filnavn.ext~]" #: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096 -#: main.cc:185 +#: main.cc:186 msgid "show warranty and copyright" msgstr "vis garanti og ophavsret" @@ -1117,17 +1117,17 @@ msgstr "Stopper pÃ¥ sidste succesfulde regel" msgid "Processing `%s'... " msgstr "Behandler »%s« ..." -#: convert-ly.py:368 +#: convert-ly.py:366 #, python-format msgid "%s: Unable to open file" msgstr "%s: kan ikke Ã¥bne fil" -#: convert-ly.py:374 +#: convert-ly.py:372 #, python-format msgid "%s: Unable to determine version. Skipping" msgstr "%s: Kan ikke bestemme version. Udelader" -#: convert-ly.py:380 +#: convert-ly.py:378 #, python-format msgid "" "%s: Invalid version string `%s' \n" @@ -1136,7 +1136,7 @@ msgstr "" "%s: Ugyldig versionsstreng »%s« \n" "Gyldige versionsstrenge bestÃ¥r af tre numre, adskilt af punktummer, f.eks. 2.8.12" -#: convert-ly.py:386 +#: convert-ly.py:384 #, python-format msgid "There was %d error." msgid_plural "There were %d errors." @@ -1158,7 +1158,7 @@ msgstr "" "LilyPond-fil.\n" #: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659 -#: main.cc:168 main.cc:180 +#: main.cc:169 main.cc:181 msgid "FILE" msgstr "FIL" @@ -1196,7 +1196,7 @@ msgid "add DIR to include path" msgstr "tilføj MAPPE til inkluderingsstien" #: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169 -#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:167 +#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:168 msgid "DIR" msgstr "MAPPE" @@ -1208,9 +1208,11 @@ msgstr "formater Texinfo-uddata sÃ¥ at Info vil kigge efter musikaftryk i MAPPE" msgid "PAD" msgstr "TILPAS" +# "music" referer nok til en samling af noder. PÃ¥ dansk et partitur. +# Jeg ville sige "tilpas... partituret for at justere noderne pÃ¥ trods af...." #: lilypond-book.py:157 -msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)" -msgstr "tilpas venstre side af musikken for at justere musik pÃ¥ trods af et ulige antal bjælkeantal (i mm)" +msgid "pad left side of music to align music in spite of uneven bar numbers (in mm)" +msgstr "tilpas venstre side af partituret for at justere musik pÃ¥ trods af et ulige antal bjælker (i mm)" #: lilypond-book.py:162 msgid "Print lilypond log messages according to LOGLEVEL" @@ -1750,7 +1752,7 @@ msgstr "undertrykt advarsel: %s" msgid "accidental typesetting list must begin with context-name: %s" msgstr "fortegnsopsætningsliste skal begynde med kontekstnavn: %s" -#: accidental-engraver.cc:210 +#: accidental-engraver.cc:207 #, c-format msgid "procedure or context-name expected for accidental rule, found %s" msgstr "procedure eller kontekstnavn forventet for fortegnsregel, fandt %s" @@ -1764,7 +1766,7 @@ msgstr "Kunne ikke finde skrifttegnnavn for alteration %s" msgid "natural alteration glyph not found" msgstr "naturlig alterationskrifttegn blev ikke fundet" -#: all-font-metrics.cc:149 +#: all-font-metrics.cc:159 #, c-format msgid "cannot find font: `%s'" msgstr "kan ikke finde skrifttype: »%s«" @@ -1777,11 +1779,6 @@ msgstr "\\applycontext-argument er ikke en procedure" msgid "no heads for arpeggio found?" msgstr "ingen hoveder for arpeggio blev fundet?" -#: auto-change-iterator.cc:74 change-iterator.cc:72 -#, c-format -msgid "cannot change, already in translator: %s" -msgstr "kan ikke ændre, allerede i oversætter: %s" - #: axis-group-engraver.cc:149 msgid "Axis_group_engraver: vertical group already has a parent" msgstr "Axis_group_engraver: vertikal gruppe har allerede en overgruppe" @@ -1794,12 +1791,12 @@ msgstr "er der to Axis_group_engravers?" msgid "removing this vertical group" msgstr "fjerner denne vertikale gruppe" -#: axis-group-interface.cc:714 +#: axis-group-interface.cc:716 #, c-format msgid "\"%s\" is not a valid outside-staff-placement-directive" msgstr "»%s« er ikke et gyldigt outside-staff-placement-directive" -#: axis-group-interface.cc:786 +#: axis-group-interface.cc:788 msgid "an outside-staff object should have a direction, defaulting to up" msgstr "et outside-staff-objekt skal have en retning, bruger standarden op" @@ -1829,11 +1826,11 @@ msgid "beam was started here" msgstr "bjælken startede her" #. We are completely screwed. -#: beam-quanting.cc:839 +#: beam-quanting.cc:850 msgid "no viable initial configuration found: may not find good beam slope" msgstr "ingen egnet oprindelig konfiguration blev fundet: finder mÃ¥ske ikke en god bjælkehældning" -#: beam.cc:181 +#: beam.cc:183 msgid "removing beam with no stems" msgstr "fjerner bjælke uden nodehalse" @@ -1843,22 +1840,24 @@ msgid "cannot change `%s' to `%s'" msgstr "kan ikke ændre »%s« til »%s«" #. FIXME: constant error message. -#: change-iterator.cc:93 +#: change-iterator.cc:67 msgid "cannot find context to switch to" msgstr "kan ikke finde konteksten at skifte til" +#. No enclosing context was found because the iterator's immediate +#. context is the kind that was sought. #. We could change the current translator's id, but that would make #. errors hard to catch. #. #. last->translator_id_string () = get_change #. ()->change_to_id_string (); -#: change-iterator.cc:102 +#: change-iterator.cc:78 #, c-format msgid "not changing to same context type: %s" msgstr "ændrer ikke til samme konteksttype: %s" -#. FIXME: uncomprehensable message -#: change-iterator.cc:106 +#. FIXME: incomprehensible message +#: change-iterator.cc:82 msgid "none of these in my family" msgstr "ingen af disse i min familie" @@ -1897,22 +1896,22 @@ msgstr "kan ikke finde linjeombrydning som opfylder begrænsninger" msgid "need symbol arguments for \\override and \\revert" msgstr "kræver symbolargumenter for \\override og \\revert" -#: context.cc:143 +#: context.cc:144 #, c-format msgid "cannot find or create new `%s'" msgstr "kan ikke finde eller oprette ny »%s«" -#: context.cc:222 +#: context.cc:223 #, c-format msgid "cannot find or create `%s' called `%s'" msgstr "kan ikke finde eller oprette »%s« kaldt »%s«" -#: context.cc:419 +#: context.cc:416 #, c-format msgid "cannot find or create: `%s'" msgstr "kan ikke finde eller oprette: »%s«" -#: context.cc:433 +#: context.cc:430 #, c-format msgid "cannot find or create new Bottom = \"%s\"" msgstr "kan ikke finde eller oprette ny bund = »%s«" @@ -1922,20 +1921,20 @@ msgstr "kan ikke finde eller oprette ny bund = »%s«" msgid "custos `%s' not found" msgstr "custos »%s« blev ikke fundet" -#: dispatcher.cc:83 +#: dispatcher.cc:82 msgid "Event class should be a list" msgstr "Hændelsesklasse skal være en liste" -#: dispatcher.cc:166 +#: dispatcher.cc:165 #, c-format msgid "Junking event: %s" msgstr "Stryger hændelsen: %s" -#: dispatcher.cc:271 +#: dispatcher.cc:279 msgid "Attempting to remove nonexisting listener." msgstr "Forsøger at fjerne ikkeeksisterende lytter." -#: dispatcher.cc:297 +#: dispatcher.cc:305 msgid "Already listening to dispatcher, ignoring request" msgstr "Lytter allerede til afsender, ignorerer forespørgsel" @@ -1944,7 +1943,7 @@ msgstr "Lytter allerede til afsender, ignorerer forespørgsel" msgid "dot `%s' not found" msgstr "punktum »%s« blev ikke fundet" -#: dynamic-engraver.cc:168 +#: dynamic-engraver.cc:169 #, c-format msgid "" "unknown crescendo style: %s\n" @@ -1953,7 +1952,7 @@ msgstr "" "ukendt crescendostil: %s\n" "bruger standarden hairpin." -#: dynamic-engraver.cc:233 slur-proto-engraver.cc:119 +#: dynamic-engraver.cc:234 slur-proto-engraver.cc:119 #, c-format msgid "unterminated %s" msgstr "uafsluttet %s" @@ -1981,22 +1980,22 @@ msgstr "uafsluttet episema" msgid "unterminated extender" msgstr "uafsluttet udvider" -#: flag.cc:134 +#: flag.cc:133 #, c-format msgid "flag `%s' not found" msgstr "flaget »%s« blev ikke fundet" -#: flag.cc:154 +#: flag.cc:153 #, c-format msgid "flag stroke `%s' not found" msgstr "flag stroke »%s« blev ikke fundet" -#: font-config-scheme.cc:151 font-config.cc:53 +#: font-config-scheme.cc:151 font-config.cc:82 #, c-format msgid "failed adding font directory: %s" msgstr "kunne ikke tilføje skriftmappe: %s" -#: font-config-scheme.cc:153 font-config.cc:55 +#: font-config-scheme.cc:153 font-config.cc:84 #, c-format msgid "Adding font directory: %s" msgstr "Tilføjer skriftmappe: %s" @@ -2015,7 +2014,17 @@ msgstr "Tilføjer skriftfil: %s" msgid "Initializing FontConfig..." msgstr "Initialiserer FontConfig ..." -#: font-config.cc:58 +#: font-config.cc:70 +#, c-format +msgid "failed to add fontconfig configuration file `%s'" +msgstr "kunne ikke tilføje fontconfig-konfigurationsfil: »%s«" + +#: font-config.cc:73 +#, c-format +msgid "Adding fontconfig configuration file: %s" +msgstr "Tilføjer fontconfig-konfigurationsfil: %s" + +#: font-config.cc:86 msgid "Building font database..." msgstr "Bygger skriftdatabase ..." @@ -2079,12 +2088,12 @@ msgstr "Ukendt grænseflade »%s«" msgid "Grob `%s' has no interface for property `%s'" msgstr "Grob »%s« har ingen grænseflade for egenskab »%s«" -#: grob-property.cc:35 +#: grob-property.cc:33 #, c-format msgid "%d: %s" msgstr "%d: %s" -#: grob.cc:481 +#: grob.cc:492 #, c-format msgid "ignored infinite %s-offset" msgstr "ignoreret uendelig %s-forskydning" @@ -2114,7 +2123,7 @@ msgstr "fjerner uafsluttet bindestreg" msgid "unterminated hyphen; removing" msgstr "uafsluttet bindestreg; fjerner" -#: includable-lexer.cc:71 lily-guile.cc:91 lily-parser-scheme.cc:108 +#: includable-lexer.cc:71 lily-guile.cc:92 lily-parser-scheme.cc:108 #, c-format msgid "cannot find file: `%s'" msgstr "kan ikke finde filen: »%s«" @@ -2124,11 +2133,11 @@ msgstr "kan ikke finde filen: »%s«" msgid "(search path: `%s')" msgstr "(søgesti: »%s«)" -#: input.cc:138 source-file.cc:177 source-file.cc:192 +#: input.cc:138 source-file.cc:180 source-file.cc:195 msgid "position unknown" msgstr "ukendt position" -#: key-engraver.cc:198 +#: key-engraver.cc:197 msgid "Incomplete keyAlterationOrder for key signature" msgstr "Ufuldstændig keyAlterationOrder for toneartunderskrift" @@ -2169,21 +2178,21 @@ msgstr "ignorerer pause: fraseringsbue mÃ¥ ikke indeholde en pause" msgid "ligature was started here" msgstr "fraseringsbuen startede her" -#: lily-guile.cc:93 +#: lily-guile.cc:94 #, c-format msgid "(load path: `%s')" msgstr "(indlæsningssti: »%s«)" -#: lily-guile.cc:412 +#: lily-guile.cc:413 #, c-format msgid "cannot find property type-check for `%s' (%s)." msgstr "kan ikke finde egenskaben type-check for »%s« (%s)." -#: lily-guile.cc:415 +#: lily-guile.cc:416 msgid "perhaps a typing error?" msgstr "mÃ¥ske en tastefejl?" -#: lily-guile.cc:422 +#: lily-guile.cc:423 msgid "skipping assignment" msgstr "udelader tildeling" @@ -2192,20 +2201,33 @@ msgstr "udelader tildeling" msgid "type check for `%s' failed; value `%s' must be of type `%s'" msgstr "typekontrol for »%s« mislykkedes; værdien »%s« skal være af typen »%s«" -#: lily-lexer.cc:249 +#. Uh oh. unsmob delivered 0, yet +#. unsmob delivers true. This means that unsmob is a +#. matching check from a base class of T, but var is of an +#. incompatible derived type. +#: lily-guile.cc:462 +msgid "Wrong kind of " +msgstr "Forkert type for " + +#: lily-lexer.cc:251 msgid "include files are not allowed in safe mode" msgstr "inkluderingsfiler er ikke tilladte i sikker tilstand" -#: lily-lexer.cc:276 +#: lily-lexer.cc:278 #, c-format msgid "identifier name is a keyword: `%s'" msgstr "Identificerernavn er et nøgleord: »%s«" -#: lily-lexer.cc:297 lily-lexer.cc:310 +#: lily-lexer.cc:299 lily-lexer.cc:312 #, c-format msgid "%s:EOF" msgstr "%s:EOF" +#: lily-modules.cc:81 +#, c-format +msgid "Uninitialized variable `%s' in module (%s)" +msgstr "Variablen »%s« er ikke initialiseret i modul (%s)" + #: lily-parser-scheme.cc:80 #, c-format msgid "Changing working directory to: `%s'" @@ -2226,19 +2248,19 @@ msgstr "kan ikke finde init-fil: »%s«" msgid "Processing `%s'" msgstr "Behandler »%s«" -#: lily-parser-scheme.cc:209 +#: lily-parser-scheme.cc:210 msgid "ly:parser-parse-string is only valid with a new parser. Use ly:parser-include-string instead." msgstr "ly:parser-parse-string er kun gyldig med en ny fortolker. Brug ly:parser-include-string i stedet." -#: lily-parser-scheme.cc:240 +#: lily-parser-scheme.cc:241 msgid "ly:parse-string-expression is only valid with a new parser. Use ly:parser-include-string instead." msgstr "ly:parse-string-expression er kun gyldig med en ny fortolker. Brug ly:parser-include-string i stedet." -#: lily-parser.cc:107 +#: lily-parser.cc:106 msgid "Parsing..." msgstr "Tolker ..." -#: lookup.cc:181 +#: lookup.cc:178 #, c-format msgid "Not drawing a box with negative dimension, %.2f by %.2f." msgstr "Tegner ikke en boks med negative dimensioner, %.2f x %.2f." @@ -2247,12 +2269,12 @@ msgstr "Tegner ikke en boks med negative dimensioner, %.2f x %.2f." msgid "argument of \\lyricsto should contain Lyrics context" msgstr "argumentet \\lyricsto skal indeholde lyrikindhold" -#: lyric-combine-music-iterator.cc:349 +#: lyric-combine-music-iterator.cc:344 #, c-format msgid "cannot find %s `%s'" msgstr "kan ikke finde %s »%s«" -#: main.cc:105 +#: main.cc:106 #, c-format msgid "" "This program is free software. It is covered by the GNU General Public\n" @@ -2264,7 +2286,7 @@ msgstr "" "og du er velkommen til at ændre og/eller distribuere kopier af det under\n" "visse betingelser. Kør »%s --warranty« for yderligere information.\n" -#: main.cc:111 +#: main.cc:112 msgid "" " This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as \n" @@ -2295,11 +2317,11 @@ msgstr "" "dette program. Hvis ikke, skriv til Free Software Foundation, Inc., 59\n" "Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -#: main.cc:149 +#: main.cc:150 msgid "SYM[=VAL]" msgstr "SYM[=VAL]" -#: main.cc:150 +#: main.cc:151 msgid "" "set Scheme option SYM to VAL (default: #t).\n" "Use -dhelp for help." @@ -2307,45 +2329,45 @@ msgstr "" "sæt Schemetilvalg SYM til VAL (standard: #t).\n" "Brug -dhelp for hjælp." -#: main.cc:154 +#: main.cc:155 msgid "EXPR" msgstr "UDTR" -#: main.cc:154 +#: main.cc:155 msgid "evaluate scheme code" msgstr "evaluer Schemekode" #. Bug in option parser: --output =foe is taken as an abbreviation #. for --output-format. -#: main.cc:157 +#: main.cc:158 msgid "FORMATs" msgstr "FORMATer" -#: main.cc:157 +#: main.cc:158 msgid "dump FORMAT,... Also as separate options:" msgstr "dump FORMAT,... ogsÃ¥ som separate tilvalg:" -#: main.cc:158 +#: main.cc:159 msgid "generate PDF (default)" msgstr "opret PDF (standard)" -#: main.cc:159 +#: main.cc:160 msgid "generate PNG" msgstr "opret PNG" -#: main.cc:160 +#: main.cc:161 msgid "generate PostScript" msgstr "opret PostScript" -#: main.cc:161 +#: main.cc:162 msgid "generate big PDF files" msgstr "opret store PDF-filer" -#: main.cc:164 +#: main.cc:165 msgid "FIELD" msgstr "FELT" -#: main.cc:164 +#: main.cc:165 msgid "" "dump header field FIELD to file\n" "named BASENAME.FIELD" @@ -2353,19 +2375,19 @@ msgstr "" "dump teksthovedfelt FIELD til fil\n" "navngivet BASENAME.FIELD" -#: main.cc:167 +#: main.cc:168 msgid "add DIR to search path" msgstr "tilføj MAPPE til søgestien" -#: main.cc:168 +#: main.cc:169 msgid "use FILE as init file" msgstr "brug FIL som init-fil" -#: main.cc:171 +#: main.cc:172 msgid "USER, GROUP, JAIL, DIR" msgstr "USER, GROUP, JAIL, DIR" -#: main.cc:171 +#: main.cc:172 msgid "" "chroot to JAIL, become USER:GROUP\n" "and cd into DIR" @@ -2373,7 +2395,7 @@ msgstr "" "chroot til JAIL, bliv USER:GROUP\n" "og cd til DIR" -#: main.cc:176 +#: main.cc:177 msgid "" "print log messages according to LOGLEVEL. Possible values are:\n" "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG." @@ -2381,24 +2403,24 @@ msgstr "" "udskriv logbeskeder jævnfør LOGNIVEAU. Mulige værdier er:\n" "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (standard) og DEBUG." -#: main.cc:180 +#: main.cc:181 msgid "write output to FILE (suffix will be added)" msgstr "skriv uddata til FIL (suffiks vil blive tilføjet)" -#: main.cc:181 +#: main.cc:182 msgid "relocate using directory of lilypond program" msgstr "flyt via mappen for lilypondprogrammet" -#: main.cc:182 +#: main.cc:183 msgid "no progress, only error messages (equivalent to loglevel=ERROR)" msgstr "ingen status, kun fejlbeskeder (svarer til loglevel=ERROR)" -#: main.cc:184 +#: main.cc:185 msgid "be verbose (equivalent to loglevel=DEBUG)" msgstr "vær uddybende (svarer til loglevel=DEBUG)" #. Do not update the copyright years here, run `make grand-replace' -#: main.cc:263 +#: main.cc:264 #, c-format msgid "" "Copyright (c) %s by\n" @@ -2408,84 +2430,84 @@ msgstr "" "%s med flere." #. No version number or newline here. It confuses help2man. -#: main.cc:301 +#: main.cc:302 #, c-format msgid "Usage: %s [OPTION]... FILE..." msgstr "Brug: %s [TILVALG] ... FIL ..." -#: main.cc:303 +#: main.cc:304 msgid "Typeset music and/or produce MIDI from FILE." msgstr "Typesæt musik og/eller afspil MIDI fra FIL." -#: main.cc:305 +#: main.cc:306 msgid "LilyPond produces beautiful music notation." msgstr "LilyPond fremstiller smuk musiknotation." -#: main.cc:307 +#: main.cc:308 #, c-format msgid "For more information, see %s" msgstr "For yderligere information, se %s" -#: main.cc:309 +#: main.cc:310 msgid "Options:" msgstr "Tilvalg:" -#: main.cc:376 +#: main.cc:377 #, c-format msgid "expected %d arguments with jail, found: %u" msgstr "forventede %d parametre med jail, fandt: %u" -#: main.cc:390 +#: main.cc:391 #, c-format msgid "no such user: %s" msgstr "ingen sÃ¥dan bruger: %s" -#: main.cc:392 +#: main.cc:393 #, c-format msgid "cannot get user id from user name: %s: %s" msgstr "kan ikke indhente bruger-id fra brugernavn: %s: %s" -#: main.cc:407 +#: main.cc:408 #, c-format msgid "no such group: %s" msgstr "ingen sÃ¥dan gruppe: %s" -#: main.cc:409 +#: main.cc:410 #, c-format msgid "cannot get group id from group name: %s: %s" msgstr "kan ikke indhente gruppe-id fra gruppenavn: %s: %s" -#: main.cc:417 +#: main.cc:418 #, c-format msgid "cannot chroot to: %s: %s" msgstr "kan ikke chroot til: %s: %s" -#: main.cc:424 +#: main.cc:425 #, c-format msgid "cannot change group id to: %d: %s" msgstr "kan ikke ændre gruppe-id til: %d: %s" -#: main.cc:430 +#: main.cc:431 #, c-format msgid "cannot change user id to: %d: %s" msgstr "kan ikke ændre bruger-id til: %d: %s" -#: main.cc:436 +#: main.cc:437 #, c-format msgid "cannot change working directory to: %s: %s" msgstr "kan ikke ændre arbejdsmappe til: %s: %s" -#: main.cc:825 +#: main.cc:826 #, c-format msgid "exception caught: %s" msgstr "undtagelse opstod: %s" #. FIXME: constant error message. -#: mark-engraver.cc:156 +#: mark-engraver.cc:150 msgid "rehearsalMark must have integer value" msgstr "rehearsalMark skal have en heltalsværdi" -#: mark-engraver.cc:162 +#: mark-engraver.cc:156 msgid "mark label must be a markup object" msgstr "mærkeetiket skal være et opmærkningsobjekt" @@ -2537,7 +2559,7 @@ msgstr "" msgid "unexpected case fall-through" msgstr "uventet tilfælde fald-igennem" -#: midi-control-function-performer.cc:109 staff-performer.cc:152 +#: midi-control-function-performer.cc:107 staff-performer.cc:153 #, c-format msgid "ignoring out-of-range value change for MIDI property `%s'" msgstr "ignorerer uden for interval-værdiændring for MIDE-egenskab »%s«" @@ -2573,7 +2595,7 @@ msgstr "Beregner sideskift ..." msgid "usable-duration-logs must be a non-empty list. Falling back to whole rests." msgstr "usable-duration-logs skal være en udfyldt liste. Falder tilbage pÃ¥ hele pauser." -#: music.cc:149 +#: music.cc:150 #, c-format msgid "octave check failed; expected \"%s\", found: \"%s\"" msgstr "oktavkontrol mislykkedes; forventede »%s«, fandt: »%s«" @@ -2607,37 +2629,37 @@ msgstr "ingen af nodehovederne »%s« eller »%s« blev fundet" msgid "NoteEvent without pitch" msgstr "NoteEvent uden tonehøjde" -#: open-type-font.cc:46 +#: open-type-font.cc:45 #, c-format msgid "cannot allocate %lu bytes" msgstr "kan ikke allokere %lu byte" -#: open-type-font.cc:50 +#: open-type-font.cc:49 #, c-format msgid "cannot load font table: %s" msgstr "kan ikke indlæse skrifttypetabel: %s" -#: open-type-font.cc:55 +#: open-type-font.cc:54 #, c-format msgid "FreeType error: %s" msgstr "FreeType-fejl: %s" -#: open-type-font.cc:112 +#: open-type-font.cc:115 #, c-format msgid "unsupported font format: %s" msgstr "skrifttypeformatet er ikke understøttet: %s" -#: open-type-font.cc:114 +#: open-type-font.cc:117 #, c-format msgid "error reading font file %s: %s" msgstr "fejl under læsning af skrifttypefilen %s: %s" -#: open-type-font.cc:189 +#: open-type-font.cc:192 #, c-format msgid "FT_Get_Glyph_Name () Freetype error: %s" msgstr "FT_Get_Glyph_Name () Freetype-fejl: %s" -#: open-type-font.cc:337 pango-font.cc:257 +#: open-type-font.cc:340 pango-font.cc:258 #, c-format msgid "FT_Get_Glyph_Name () error: %s" msgstr "FT_Get_Glyph_Name ()-fejl: %s" @@ -2675,16 +2697,16 @@ msgstr "prøver med %d systemer" msgid "best score for this sys-count: %f" msgstr "bedste bedømmelse for denne sys-count: %f" -#: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:248 +#: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:249 #: paper-score.cc:156 msgid "Drawing systems..." msgstr "Tegner systemer ..." -#: output-def.cc:230 +#: output-def.cc:229 msgid "margins do not fit with line-width, setting default values" msgstr "margener passer ikke med linjebredde, angiver standardværdier" -#: output-def.cc:237 +#: output-def.cc:236 msgid "systems run off the page due to improper paper settings, setting default values" msgstr "systemer gÃ¥r ud over siden pÃ¥ grund af ukorrekt sideindstillinger, vælger standardværdier" @@ -2701,68 +2723,68 @@ msgstr "minimum systemer per side er større end maksimal antal systemer per sid msgid "page %d has been compressed" msgstr "side %d er blevet komprimeret" -#: page-layout-problem.cc:402 +#: page-layout-problem.cc:400 msgid "A page layout problem has been initiated that cannot accommodate footnotes." msgstr "Et sidelayoutproblem er opstÃ¥et som ikke kan tilpasse sidefødder." -#: page-layout-problem.cc:731 +#: page-layout-problem.cc:729 msgid "ragged-bottom was specified, but page must be compressed" msgstr "ragged-bottom blev specificeret, men siden mÃ¥ være komprimeret" -#: page-layout-problem.cc:734 +#: page-layout-problem.cc:732 #, c-format msgid "compressing over-full page by %.1f staff-spaces" msgstr "komprimerer overfuld side med %.1f nodemellemrum" -#: page-layout-problem.cc:1199 +#: page-layout-problem.cc:1197 msgid "staff-affinities should only decrease" msgstr "staff-affinities bør kun falde" -#: page-turn-page-breaking.cc:168 +#: page-turn-page-breaking.cc:169 #, c-format msgid "page-turn-page-breaking: breaking from %d to %d" msgstr "page-turn-page-breaking: bryder fra %d til %d" -#: page-turn-page-breaking.cc:217 +#: page-turn-page-breaking.cc:218 msgid "cannot fit the first page turn onto a single page. Consider setting first-page-number to an even number." msgstr "kan ikke tilpasse den første sidevending pÃ¥ en enkel side. Overveje at sætte first-page-number til et lige nummer." -#: page-turn-page-breaking.cc:230 +#: page-turn-page-breaking.cc:231 #, c-format msgid "Calculating page and line breaks (%d possible page breaks)..." msgstr "Beregner side- og linjeombrydninger (%d mulige sideombrydninger) ..." -#: page-turn-page-breaking.cc:300 +#: page-turn-page-breaking.cc:301 #, c-format msgid "break starting at page %d" msgstr "ombrydning starter pÃ¥ side %d" -#: page-turn-page-breaking.cc:301 +#: page-turn-page-breaking.cc:302 #, c-format msgid "\tdemerits: %f" msgstr "\tulemper: %f" -#: page-turn-page-breaking.cc:302 +#: page-turn-page-breaking.cc:303 #, c-format msgid "\tsystem count: %d" msgstr "\tsystemantal %d" -#: page-turn-page-breaking.cc:303 +#: page-turn-page-breaking.cc:304 #, c-format msgid "\tpage count: %d" msgstr "\tsideantal %d" -#: page-turn-page-breaking.cc:304 +#: page-turn-page-breaking.cc:305 #, c-format msgid "\tprevious break: %d" msgstr "\tforrige ombrydning: %d" -#: pango-font.cc:246 +#: pango-font.cc:247 #, c-format msgid "no glyph for character U+%0X in font `%s'" msgstr "intet skrifttegn for tegn U+%0X i skrifttypen »%s«" -#: pango-font.cc:273 +#: pango-font.cc:274 #, c-format msgid "" "Glyph has no name, but font supports glyph naming.\n" @@ -2771,21 +2793,21 @@ msgstr "" "Skrifttegn har intet navn, men skrifttypen understøtter skrifttegnnavngivning.\n" "Udelader skrifttegn U+%0X, fil %s" -#: pango-font.cc:323 +#: pango-font.cc:324 #, c-format msgid "no PostScript font name for font `%s'" msgstr "intet PostScript-skriftnavn for skrifttypen »%s«" -#: pango-font.cc:373 +#: pango-font.cc:374 msgid "FreeType face has no PostScript font name" msgstr "FreeType-ansigt har intet PostScript-skrifttypenavn" -#: paper-book.cc:201 +#: paper-book.cc:200 #, c-format msgid "program option -dprint-pages not supported by backend `%s'" msgstr "programtilvalg -dprint-pages er ikke understøttet af motoren »%s«" -#: paper-book.cc:220 +#: paper-book.cc:219 #, c-format msgid "program option -dpreview not supported by backend `%s'" msgstr "programtilvalg -dpreview er ikke understøttet af motoren »%s«" @@ -2808,7 +2830,7 @@ msgstr "Elementantal %d (er bro over %d) " msgid "Preprocessing graphical objects..." msgstr "Forbehandler grafiske objekter ..." -#: parse-scm.cc:128 +#: parse-scm.cc:124 msgid "GUILE signaled an error for the expression beginning here" msgstr "GUILE signalerede en fejl for udtrykket, der begynder her" @@ -2821,11 +2843,11 @@ msgstr "Konvertering af streng »%s« til UTF-16be mislykkedes: %s" msgid "unterminated percent repeat" msgstr "uafsluttet procentgentagelse" -#: performance.cc:55 +#: performance.cc:76 msgid "Track..." msgstr "Spor ... " -#: performance.cc:90 +#: performance.cc:126 #, c-format msgid "MIDI output to `%s'..." msgstr "MIDI-uddata til »%s« ..." @@ -2860,25 +2882,25 @@ msgstr "ikke et grobnavn, »%s«" msgid "Failed octave check, got: " msgstr "Mislykket oktavkontrol, fik: " -#: relocate.cc:52 +#: relocate.cc:56 #, c-format msgid "Setting %s to %s" msgstr "Sætter %s til %s" #. this warning should only be printed in debug mode! -#: relocate.cc:73 +#: relocate.cc:77 #, c-format msgid "no such file: %s for %s" msgstr "ingen sÃ¥dan fil: %s for %s" #. this warning should only be printed in debug mode! #. this warning should only be printed in debug mode -#: relocate.cc:84 relocate.cc:102 +#: relocate.cc:88 relocate.cc:106 #, c-format msgid "no such directory: %s for %s" msgstr "denne mappe findes ikke: %s for %s" -#: relocate.cc:93 +#: relocate.cc:97 #, c-format msgid "%s=%s (prepend)\n" msgstr "%s=%s (foranstil)\n" @@ -2908,7 +2930,7 @@ msgstr "Flytning: er absolut: argv0=%s\n" msgid "Relocation : from cwd: argv0=%s\n" msgstr "Flytning: fra cwd: argv0=%s\n" -#: relocate.cc:194 +#: relocate.cc:196 #, c-format msgid "" "Relocation: from PATH=%s\n" @@ -2917,30 +2939,30 @@ msgstr "" "Flytning: fra PATH=%s\n" "argv0=%s\n" -#: relocate.cc:220 +#: relocate.cc:222 msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR" msgstr "LILYPONDPREFIX er forældet, brug LILYPOND_DATADIR" -#: relocate.cc:345 +#: relocate.cc:347 #, c-format msgid "Relocation file: %s" msgstr "Flytningsfil: %s" -#: relocate.cc:349 source-file.cc:65 +#: relocate.cc:351 source-file.cc:65 #, c-format msgid "cannot open file: `%s'" msgstr "kan ikke Ã¥bne fil: »%s«" -#: relocate.cc:379 +#: relocate.cc:381 #, c-format msgid "Unknown relocation command %s" msgstr "Ukendt flytningskommando %s" -#: rest-collision.cc:153 +#: rest-collision.cc:154 msgid "cannot resolve rest collision: rest direction not set" msgstr "kan ikke løse pausekollision: pauseretning ikke angivet" -#: rest-collision.cc:164 rest-collision.cc:273 +#: rest-collision.cc:165 rest-collision.cc:274 msgid "too many colliding rests" msgstr "for mange kolliderende pauser" @@ -2949,33 +2971,33 @@ msgstr "for mange kolliderende pauser" msgid "rest `%s' not found" msgstr "pausen »%s« blev ikke fundet" -#: score-engraver.cc:79 +#: score-engraver.cc:77 #, c-format msgid "cannot find `%s'" msgstr "kan ikke finde: »%s«" -#: score-engraver.cc:81 +#: score-engraver.cc:79 msgid "Music font has not been installed properly." msgstr "Musikskrifttype er ikke blevet korrekt installeret." -#: score-engraver.cc:83 +#: score-engraver.cc:81 #, c-format msgid "Search path `%s'" msgstr "Søgesti »%s«" -#: score-engraver.cc:85 +#: score-engraver.cc:83 msgid "Aborting" msgstr "Afbryder" -#: score.cc:160 +#: score.cc:161 msgid "already have music in score" msgstr "har allerede musik i partitur" -#: score.cc:161 +#: score.cc:163 msgid "this is the previous music" msgstr "dette er den forrige musik" -#: score.cc:166 +#: score.cc:169 msgid "errors found, ignoring music expression" msgstr "der blev fundet fejl, ignorerer musikudtryk" @@ -3014,7 +3036,7 @@ msgstr "%s uden en Ã¥rsag" msgid "cannot end %s" msgstr "kan ikke afslutte %s" -#: slur.cc:434 +#: slur.cc:436 #, c-format msgid "Ignoring grob for slur: %s. avoid-slur not set?" msgstr "Ignorerer grob for legatobue: %s. Er avoid-slur ikke angivet?" @@ -3049,18 +3071,18 @@ msgstr "mÃ¥ske skal inddata specificere polyfoniske stemmer" msgid "weird stem size, check for narrow beams" msgstr "mærkelig nodehalsstørrelse; kontroller for smalle bjælker" -#: system.cc:201 +#: system.cc:202 #, c-format msgid "Element count %d" msgstr "Elementantal %d" -#: system.cc:512 +#: system.cc:513 #, c-format msgid "Grob count %d" msgstr "Grobantal %d" #. TODO: Also print the arguments of the markup! -#: text-interface.cc:138 +#: text-interface.cc:139 #, c-format msgid "Markup depth exceeds maximal value of %d; Markup: %s" msgstr "Opmærkningsdybde er større end maksimalværdi for %d; Opmærkning: %s" @@ -3081,7 +3103,7 @@ msgstr "uafsluttet tekstbro" msgid "unterminated tie" msgstr "uafsluttet bindebue" -#: tie-engraver.cc:373 +#: tie-engraver.cc:377 msgid "lonely tie" msgstr "ensom bindebue" @@ -3095,7 +3117,7 @@ msgstr "ensom bindebue" msgid "strange time signature found: %d/%d" msgstr "mærkelig tidssignatur fundet: %d/%d" -#: translator-ctors.cc:65 +#: translator-ctors.cc:68 #, c-format msgid "unknown translator: `%s'" msgstr "ukendt oversætter: »%s«" @@ -3105,17 +3127,17 @@ msgstr "ukendt oversætter: »%s«" msgid "fatal error. Couldn't find type: %s" msgstr "fatal fejl. Kunne ikke finde type: %s" -#: translator-group.cc:188 +#: translator-group.cc:187 #, c-format msgid "cannot find: `%s'" msgstr "kan ikke finde: »%s«" -#: translator.cc:320 +#: translator.cc:310 #, c-format msgid "Two simultaneous %s events, junking this one" msgstr "To samtidige %s hændelser, forkaster denne" -#: translator.cc:321 +#: translator.cc:311 #, c-format msgid "Previous %s event here" msgstr "Forrige %s hændelse her" @@ -3180,206 +3202,206 @@ msgstr "har ogsÃ¥ allerede en afsluttet bro" msgid "giving up" msgstr "giver op" -#: parser.yy:463 parser.yy:847 parser.yy:928 parser.yy:1150 +#: parser.yy:476 parser.yy:947 parser.yy:1028 parser.yy:1248 msgid "bad expression type" msgstr "ugyldigt udtrykstype" -#: parser.yy:759 parser.yy:1361 parser.yy:1406 +#: parser.yy:859 parser.yy:1458 parser.yy:1503 msgid "not a context mod" msgstr "ikke en kontekst-mod" -#: parser.yy:954 +#: parser.yy:1054 msgid "Missing music in \\score" msgstr "Mangler musik i \\score" -#: parser.yy:991 +#: parser.yy:1091 msgid "\\paper cannot be used in \\score, use \\layout instead" msgstr "\\paper kan ikke bruges i \\score, brug \\layout i stedet for" -#: parser.yy:1027 +#: parser.yy:1126 msgid "Spurious expression in \\score" msgstr "Falsk udtryk i \\score" -#: parser.yy:1057 +#: parser.yy:1156 msgid "need \\paper for paper block" msgstr "kræver \\paper for papirblok" -#: parser.yy:1234 +#: parser.yy:1331 msgid "music expected" msgstr "forventede musik" -#: parser.yy:1244 parser.yy:1278 +#: parser.yy:1341 parser.yy:1375 msgid "unexpected post-event" msgstr "uventet post-hændelse" -#: parser.yy:1286 +#: parser.yy:1383 msgid "Ignoring non-music expression" msgstr "Ignorerer ikke-musik udtryk" -#: parser.yy:1587 +#: parser.yy:1691 msgid "not a symbol" msgstr "ikke et symbol" -#: parser.yy:2337 parser.yy:2451 parser.yy:2464 parser.yy:2473 +#: parser.yy:2491 parser.yy:2605 parser.yy:2618 parser.yy:2627 msgid "bad grob property path" msgstr "ugyldig grob-egenskabssti" -#: parser.yy:2431 +#: parser.yy:2585 msgid "only \\consists and \\remove take non-string argument." msgstr "kun \\consists og \\remove bruger ikke-streng argument." -#: parser.yy:2492 +#: parser.yy:2646 msgid "bad context property path" msgstr "ugyldig kontekst-egenskabssti" -#: parser.yy:2593 +#: parser.yy:2733 msgid "simple string expected" msgstr "forventede simpel streng" -#: parser.yy:2611 +#: parser.yy:2750 msgid "symbol expected" msgstr "forventede symbol" -#: parser.yy:2747 +#: parser.yy:2886 msgid "not a rhythmic event" msgstr "ikke en rytmisk hændelse" -#: parser.yy:2797 +#: parser.yy:2936 msgid "post-event expected" msgstr "forventede post-hændelse" -#: parser.yy:2806 parser.yy:2811 +#: parser.yy:2945 parser.yy:2950 msgid "have to be in Lyric mode for lyrics" msgstr "skal være i teksttilstand (Lyric mode) for tekst" -#: parser.yy:2887 +#: parser.yy:3026 msgid "expecting string or post-event as script definition" msgstr "forventer streng eller post-hændelse som skriptdefinition" -#: parser.yy:2991 +#: parser.yy:3130 msgid "not an articulation" msgstr "ikke en artikulation" -#: parser.yy:3063 parser.yy:3106 +#: parser.yy:3202 parser.yy:3245 msgid "not a duration" msgstr "ikke en længde" -#: parser.yy:3127 +#: parser.yy:3266 msgid "bass number expected" msgstr "forventede bass-nummer" -#: parser.yy:3219 +#: parser.yy:3358 msgid "have to be in Note mode for notes" msgstr "skal være i nodetilstand (Note mode) for noder" -#: parser.yy:3258 +#: parser.yy:3397 msgid "have to be in Chord mode for chords" msgstr "skal være i akkordtilstand (Chord mode) for akkord" -#: parser.yy:3301 +#: parser.yy:3440 msgid "markup outside of text script or \\lyricmode" msgstr "opmærkning uden for tekstskript eller \\lyricmode" -#: parser.yy:3306 +#: parser.yy:3445 msgid "unrecognized string, not in text script or \\lyricmode" msgstr "streng blev ikke genkendt, ikke i tekstskript eller \\lyricmode" -#: parser.yy:3458 parser.yy:3467 +#: parser.yy:3597 parser.yy:3606 msgid "not an unsigned integer" msgstr "ikke et ej underskrevet heltal" -#: parser.yy:3541 +#: parser.yy:3693 msgid "not a markup" msgstr "ikke en opmærkning" -#: lexer.ll:192 +#: lexer.ll:193 msgid "stray UTF-8 BOM encountered" msgstr "mødte malplaceret UTF-8 BOM" -#: lexer.ll:195 +#: lexer.ll:196 msgid "Skipping UTF-8 BOM" msgstr "Udelader UTF-8 BOM" -#: lexer.ll:247 +#: lexer.ll:248 #, c-format msgid "Renaming input to: `%s'" msgstr "Omdøber inddata til: »%s«" -#: lexer.ll:264 +#: lexer.ll:265 msgid "quoted string expected after \\version" msgstr "citatstreng forventet efter \\version" -#: lexer.ll:268 +#: lexer.ll:269 msgid "quoted string expected after \\sourcefilename" msgstr "citatstreng forventet efter \\sourcefilename" -#: lexer.ll:272 +#: lexer.ll:273 msgid "integer expected after \\sourcefileline" msgstr "heltal ventet efter \\sourcefileline" -#: lexer.ll:299 +#: lexer.ll:300 msgid "\\maininput not allowed outside init files" msgstr "\\maininput er ikke tilladt uden for init-filer" -#: lexer.ll:323 +#: lexer.ll:324 #, c-format msgid "wrong or undefined identifier: `%s'" msgstr "fejlagtig eller ikke defineret identifikator: »%s«" -#: lexer.ll:348 +#: lexer.ll:349 msgid "string expected after \\include" msgstr "streng ventet efter \\include" -#: lexer.ll:358 +#: lexer.ll:359 msgid "end quote missing" msgstr "slutcitationstegn mangler" -#: lexer.ll:713 +#: lexer.ll:714 msgid "EOF found inside a comment" msgstr "filslutning (EOF) fundet inden i en kommentar" -#: lexer.ll:718 +#: lexer.ll:719 msgid "EOF found inside string" msgstr "filslutning (EOF) fundet inden i streng" -#: lexer.ll:733 +#: lexer.ll:734 msgid "Unfinished main input" msgstr "Ufærdige hovedinddata" -#: lexer.ll:804 +#: lexer.ll:805 #, c-format msgid "invalid character: `%s'" msgstr "ugyldigt tegn: »%s«" -#: lexer.ll:924 +#: lexer.ll:925 #, c-format msgid "unknown escaped string: `\\%s'" msgstr "ukendt undvigestreng: »\\%s«" -#: lexer.ll:944 +#: lexer.ll:945 #, c-format msgid "undefined character or shorthand: %s" msgstr "ikke defineret tegn eller stenografi: %s" -#: lexer.ll:1235 +#: lexer.ll:1236 msgid "non-UTF-8 input" msgstr "ikke-UTF-8-inddata" -#: lexer.ll:1279 +#: lexer.ll:1280 #, c-format msgid "Invalid version string \"%s\"" msgstr "Ugyldig versionstreng »%s«" -#: lexer.ll:1284 +#: lexer.ll:1285 #, c-format msgid "file too old: %s (oldest supported: %s)" msgstr "filen er for gammel: %s (ældest understøttet: %s)" -#: lexer.ll:1285 +#: lexer.ll:1286 msgid "consider updating the input with the convert-ly script" msgstr "overvej at opdatere inddata med skriptet convert-ly" -#: lexer.ll:1291 +#: lexer.ll:1292 #, c-format msgid "program too old: %s (file requires: %s)" msgstr "program for gammelt: %s (fil kræver: %s)" @@ -3398,24 +3420,34 @@ msgstr "Starter »~a« ..." msgid "`~a' failed (~a)\n" msgstr "»~a« mislykkedes (~a)\n" -#: backend-library.scm:94 +#: backend-library.scm:108 #, scheme-format msgid "Converting to `~a'...\n" msgstr "Konverterer til »~a« ...\n" #. Do not try to guess the name of the png file, #. GS produces PNG files like BASE-page%d.png. -#: backend-library.scm:103 +#: backend-library.scm:118 #, scheme-format msgid "Converting to ~a..." msgstr "Konverterer til ~a ..." -#: backend-library.scm:141 +#: backend-library.scm:134 +#, scheme-format +msgid "Copying to `~a'...\n" +msgstr "Kopierer til »~a« ...\n" + +#: backend-library.scm:200 +#, scheme-format +msgid "Deleting `~a'...\n" +msgstr "Sletter »~a« ...\n" + +#: backend-library.scm:219 #, scheme-format msgid "Writing header field `~a' to `~a'..." msgstr "Skriver teksthovedfelt »~a« til »~a« ..." -#: backend-library.scm:190 +#: backend-library.scm:268 #, scheme-format msgid "missing stencil expression `~S'" msgstr "manglende stenciludtryk »~S«" @@ -3471,60 +3503,60 @@ msgstr "Kan ikke omdefinere hændelsesklasse »~S«" msgid "Undefined parent event class `~S'" msgstr "Overhændelsesklassen »~S« er ikke defineret" -#: define-markup-commands.scm:1062 +#: define-markup-commands.scm:1098 msgid "no systems found in \\score markup, does it have a \\layout block?" msgstr "ingen systemer fundet i \\score-opmærkning, har den en \\layout-blok?" -#: define-markup-commands.scm:2886 +#: define-markup-commands.scm:2922 #, scheme-format msgid "Cannot find glyph ~a" msgstr "Kan ikke finde teksttegn ~a" -#: define-markup-commands.scm:3362 +#: define-markup-commands.scm:3398 #, scheme-format msgid "no brace found for point size ~S " msgstr "ingen akkolade fundet for punktstørrelse ~S " -#: define-markup-commands.scm:3363 +#: define-markup-commands.scm:3399 #, scheme-format msgid "defaulting to ~S pt" msgstr "bruger standarden ~S pt" -#: define-markup-commands.scm:3615 +#: define-markup-commands.scm:3643 #, scheme-format msgid "not a valid duration string: ~a" msgstr "ikke en gyldig længdestreng: ~a" -#: define-markup-commands.scm:3826 +#: define-markup-commands.scm:3854 #, scheme-format msgid "not a valid duration string: ~a - ignoring" msgstr "ikke en gyldig længdestreng: ~a - ignorerer" -#: define-music-types.scm:797 +#: define-music-types.scm:803 #, scheme-format msgid "symbol expected: ~S" msgstr "forventede symbol: ~S" -#: define-music-types.scm:800 +#: define-music-types.scm:806 #, scheme-format msgid "cannot find music object: ~S" msgstr "kan ikke finde musikobjekt: ~S" -#: define-music-types.scm:820 +#: define-music-types.scm:826 #, scheme-format msgid "bad make-music argument: ~S" msgstr "ugyldigt make-music-argument: ~S" -#: define-note-names.scm:972 +#: define-note-names.scm:1000 msgid "Select note names language." msgstr "Vælg sprog for nodenavne." -#: define-note-names.scm:978 +#: define-note-names.scm:1006 #, scheme-format msgid "Using `~a' note names..." msgstr "Bruger »~a« nodenavne ..." -#: define-note-names.scm:981 +#: define-note-names.scm:1009 #, scheme-format msgid "Could not find language `~a'. Ignoring." msgstr "Kunne ikke finde sprog »~a«. Ignorerer." @@ -3564,12 +3596,12 @@ msgstr "kan ikke finde beskrivelse for egenskab »~S« (~S)" msgid "cannot find description for property ~S (~S)" msgstr "kan ikke finde beskrivelse for egenskab ~S (~S)" -#: flag-styles.scm:162 +#: flag-styles.scm:155 #, scheme-format msgid "flag stroke `~a' or `~a' not found" msgstr "flagslag »~a« eller »~a« blev ikke fundet" -#: framework-eps.scm:108 +#: framework-eps.scm:112 #, scheme-format msgid "Writing ~a..." msgstr "Skriver ~a ..." @@ -3594,7 +3626,7 @@ msgstr "ved ikke hvordan der skal indlejres ~S=~S" msgid "do not know how to embed font ~s ~s ~s" msgstr "ved ikke hvordan skrifttype skal indlejres ~s ~s ~s" -#: framework-ps.scm:729 +#: framework-ps.scm:723 msgid "" "\n" "The PostScript backend does not support the\n" @@ -3642,20 +3674,20 @@ msgstr "Fejl i bjælkequanting. Forventede (~S,~S) fandt ~S." msgid "Error in beam quanting. Expected ~S 0, found ~S." msgstr "Fejl i bjælkequanting. Forventede ~S 0, fandt ~S." -#: lily-library.scm:350 +#: lily-library.scm:333 msgid "Music unsuitable for context-mod" msgstr "Musik uegnet for context-mod" -#: lily-library.scm:405 +#: lily-library.scm:388 #, scheme-format msgid "Cannot find context-def \\~a" msgstr "Kan ikke finde context-def \\~a" -#: lily-library.scm:421 +#: lily-library.scm:404 msgid "Music unsuitable for output-def" msgstr "Musik uegnet for output-def" -#: lily-library.scm:921 +#: lily-library.scm:904 msgid "" "Find the index between @var{start} and @var{end} (an integer)\n" "which produces the closest match to @var{target-val} if\n" @@ -3665,51 +3697,51 @@ msgstr "" "som laver det bedste match til @var{target-val} hvis\n" "anvendt pÃ¥ funktionen @var{getter}." -#: lily-library.scm:1015 +#: lily-library.scm:998 #, scheme-format msgid "unknown unit: ~S" msgstr "ukendt enhed: ~S" -#: lily-library.scm:1040 +#: lily-library.scm:1023 #, scheme-format msgid "no \\version statement found, please add~afor future compatibility" msgstr "ingen \\version-udtryk fundet, tilføj venligst~afor fremtidig kompatibilitet" -#: lily.scm:75 +#: lily.scm:93 msgid "call-after-session used after session start" msgstr "call-after-session brugt efter sessionstart" -#: lily.scm:93 +#: lily.scm:111 msgid "define-session used after session start" msgstr "define-session brugt efter sessionstart" -#: lily.scm:399 +#: lily.scm:417 msgid "Using (ice-9 curried-definitions) module\n" msgstr "Bruger (ice-9 curried-definitions) modul\n" -#: lily.scm:402 +#: lily.scm:420 msgid "Guile 1.8\n" msgstr "Guile 1.8\n" -#: lily.scm:459 +#: lily.scm:477 #, scheme-format msgid "cannot find: ~A" msgstr "kan ikke finde: ~A" -#: lily.scm:886 +#: lily.scm:903 msgid "Success: compilation successfully completed" msgstr "Succes: Kompilation blev færdig" -#: lily.scm:887 +#: lily.scm:904 msgid "Compilation completed with warnings or errors" msgstr "Kompilation færdig med advarsler eller fejl" -#: lily.scm:948 +#: lily.scm:965 #, scheme-format msgid "job ~a terminated with signal: ~a" msgstr "job ~a afsluttedes med signal: ~a" -#: lily.scm:951 +#: lily.scm:968 #, scheme-format msgid "" "logfile ~a (exit ~a):\n" @@ -3718,36 +3750,31 @@ msgstr "" "logfil ~a (afslut ~a):\n" "~a" -#: lily.scm:973 lily.scm:1062 +#: lily.scm:990 lily.scm:1079 #, scheme-format msgid "failed files: ~S" msgstr "mislykkede filer: ~S" -#: lily.scm:1053 +#: lily.scm:1070 #, scheme-format msgid "Redirecting output to ~a..." msgstr "Sender uddata videre til ~a ..." -#: lily.scm:1072 ps-to-png.scm:66 +#: lily.scm:1089 #, scheme-format msgid "Invoking `~a'...\n" msgstr "Starter »~a« ...\n" -#: ly-syntax-constructors.scm:66 +#: ly-syntax-constructors.scm:27 #, scheme-format msgid "~a function cannot return ~a" msgstr "~a-funktion kan ikke returnere ~a" -#: ly-syntax-constructors.scm:76 +#: ly-syntax-constructors.scm:60 #, scheme-format msgid "wrong type for argument ~a. Expecting ~a, found ~s" msgstr "forkert type for argument ~a. Forventede ~a, fandt ~s" -#: ly-syntax-constructors.scm:200 -#, scheme-format -msgid "Invalid property operation ~a" -msgstr "Ugyldig egenskabsoperation ~a" - #: markup-macros.scm:331 #, scheme-format msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S" @@ -3787,67 +3814,77 @@ msgstr "tonehøjde der skal vendes om er ikke i skala; ignorerer" msgid "negative replication count; ignoring" msgstr "negativ replikationsantal; ignorerer" -#: music-functions.scm:311 +#: music-functions.scm:319 #, scheme-format msgid "invalid tremolo repeat count: ~a" msgstr "ugyldig gentagantal for tremole: ~a" -#: music-functions.scm:340 +#: music-functions.scm:348 #, scheme-format msgid "unknown repeat type `~S': must be volta, unfold, percent, or tremolo" msgstr "ukendt gentagtype »~S«: skal være volta, unfold, procent eller tremolo" -#: music-functions.scm:344 +#: music-functions.scm:352 msgid "More alternatives than repeats. Junking excess alternatives" msgstr "Flere alternativer end gentagelser. Stryger tiloversblevne alternativer" -#: music-functions.scm:480 +#: music-functions.scm:487 #, scheme-format msgid "bad grob property path ~a" msgstr "ugyldig grob-egenskabssti ~a" -#: music-functions.scm:779 +#: music-functions.scm:511 +#, scheme-format +msgid "bad context property ~a" +msgstr "ugyldig kontekstegenskab ~a" + +#: music-functions.scm:534 +#, scheme-format +msgid "bad music property ~a" +msgstr "ugyldig musikegenskab ~a" + +#: music-functions.scm:840 msgid "Bad chord repetition" msgstr "Ugyldig akkordgentagelse" -#: music-functions.scm:884 +#: music-functions.scm:945 #, scheme-format msgid "music expected: ~S" msgstr "forventede musik: ~S" -#: music-functions.scm:1226 +#: music-functions.scm:1295 #, scheme-format msgid "cannot find quoted music: `~S'" msgstr "kan ikke finde citeret musik: »~S«" -#: music-functions.scm:1366 +#: music-functions.scm:1432 msgid "Add @var{octave-shift} to the octave of @var{pitch}." msgstr "Tilføj @var{octave-shift} til oktaven for @var{pitch}." -#: music-functions.scm:1429 +#: music-functions.scm:1495 #, scheme-format msgid "Unknown octaveness type: ~S " msgstr "Ukendt octaveness-type: ~S " -#: music-functions.scm:1430 +#: music-functions.scm:1496 msgid "Defaulting to 'any-octave." msgstr "Bruger standarden »any-octave«." -#: music-functions.scm:1822 +#: music-functions.scm:1888 #, scheme-format msgid "unknown accidental style: ~S" msgstr "ukendt utilsigte stil: ~S" -#: music-functions.scm:2040 +#: music-functions.scm:2098 msgid "Missing duration" msgstr "Manglende længde" -#: music-functions.scm:2549 +#: music-functions.scm:2626 #, scheme-format msgid "not a symbol list: ~a" msgstr "ikke en symbolliste: ~a" -#: music-functions.scm:2552 +#: music-functions.scm:2629 #, scheme-format msgid "conflicting tag group ~a" msgstr "mærkegruppe er i konflikt ~a" @@ -3876,23 +3913,23 @@ msgstr "Skrifttegn skal have en unicodeværdi" msgid "cannot find SVG font ~S" msgstr "kan ikke finde SVGskriften ~S" -#: paper.scm:122 +#: paper.scm:121 msgid "set-global-staff-size: not in toplevel scope" msgstr "set-global-staff-size: ikke i topniveauanvendelsesomrÃ¥de" -#: paper.scm:322 +#: paper.scm:321 #, scheme-format msgid "This is not a \\layout {} object, ~S" msgstr "Dette er ikke et \\layout {}-objekt, ~S" -#: paper.scm:330 +#: paper.scm:329 #, scheme-format msgid "Unknown paper size: ~a" msgstr "Ukendt papirstørrelse: ~a" #. TODO: should raise (generic) exception with throw, and catch #. that in parse-scm.cc -#: paper.scm:349 +#: paper.scm:348 msgid "Must use #(set-paper-size .. ) within \\paper { ... }" msgstr "Skal bruge #(set-paper-size .. ) inden i \\paper { ... }" @@ -3906,19 +3943,24 @@ msgstr "ukendt nøgletype »~a«" msgid "supported clefs: ~a" msgstr "understøttede nøgler: ~a" -#: parser-ly-from-scheme.scm:74 +#: parser-ly-from-scheme.scm:73 msgid "error in #{ ... #}" msgstr "fejl i #{ ... #}" -#: part-combiner.scm:748 +#: part-combiner.scm:894 #, scheme-format msgid "quoted music `~a' is empty" msgstr "citeret musik »~a« er tom" -#: ps-to-png.scm:70 +#: ps-to-png.scm:72 ps-to-png.scm:75 +#, scheme-format +msgid "Copying `~a' to `~a'..." +msgstr "Kopierer »~a« til »~a« ..." + +#: ps-to-png.scm:77 ps-to-png.scm:79 #, scheme-format -msgid "~a exited with status: ~S" -msgstr "~a afsluttede med status: ~S" +msgid "Deleting `~a'..." +msgstr "Sletter »~a« ..." #: to-xml.scm:190 #, scheme-format @@ -3966,3 +4008,12 @@ msgid "" msgstr "" "Ingen etiket for bÃ¥nd ~a (pÃ¥ streng ~a);\n" "kun ~a bÃ¥ndetiketter tilbudt" + +#~ msgid "cannot change, already in translator: %s" +#~ msgstr "kan ikke ændre, allerede i oversætter: %s" + +#~ msgid "Invalid property operation ~a" +#~ msgstr "Ugyldig egenskabsoperation ~a" + +#~ msgid "~a exited with status: ~S" +#~ msgstr "~a afsluttede med status: ~S" diff --git a/po/ja.po b/po/ja.po index d96ccd1e34..f456eef66a 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1,259 +1,302 @@ # Japanese message for lilypond -# Copyright (C) 2000, 2012 Free Software Foundation, Inc. +# Copyright (C) 2000, 2012, 2015 Free Software Foundation, Inc. # This file is distributed under the same license as the lilypond package. # Daisuke Yamashita , 2000. # Takeshi Hamasaki , 2012. +# Masamichi Hosoda , 2016. msgid "" msgstr "" -"Project-Id-Version: lilypond 2.15.29\n" +"Project-Id-Version: lilypond 2.19.26\n" "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n" -"POT-Creation-Date: 2012-02-04 15:42+0100\n" -"PO-Revision-Date: 2012-03-25 00:31+0900\n" -"Last-Translator: Takeshi Hamasaki \n" +"POT-Creation-Date: 2015-08-27 10:48+0100\n" +"PO-Revision-Date: 2016-01-03 18:35+0900\n" +"Last-Translator: Masamichi Hosoda \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: fontextract.py:25 -#, python-format -msgid "Scanning %s" -msgstr "%s をスキャン中" +#: book_base.py:26 +#, fuzzy, python-format +msgid "file not found: %s" +msgstr "ファイルがありません" -#: fontextract.py:70 +#: book_base.py:164 +#, fuzzy +msgid "Output function not implemented" +msgstr "PASSMECH は完全には実装されていません" + +#: book_latex.py:174 +msgid "cannot find \\begin{document} in LaTeX document" +msgstr "LaTeX 文書の中に \\begin{document} がありません" + +#: book_latex.py:190 #, python-format -msgid "Extracted %s" +msgid "Running `%s' on file `%s' to detect default page settings.\n" msgstr "" -#: fontextract.py:85 +#: book_latex.py:219 book_texinfo.py:228 +msgid "Unable to auto-detect default settings:\n" +msgstr "既定の設定を自動検出できません:\n" + +#: book_latex.py:231 book_texinfo.py:240 #, python-format -msgid "Writing fonts to %s" -msgstr "%s にフォントを書き込みます" +msgid "" +"Unable to auto-detect default settings:\n" +"%s" +msgstr "" +"既定の設定を自動検出できません:\n" +"%s" + +#: book_latex.py:254 +#, fuzzy +msgid "cannot detect textwidth from LaTeX" +msgstr "RPM ファイルからカタログを抽出できません。" -#: book_snippets.py:409 +#: book_snippets.py:406 #, fuzzy, python-format msgid "deprecated ly-option used: %s=%s" msgstr "警告:“%s”は、問題視されているオプションです\n" -#: book_snippets.py:411 +#: book_snippets.py:408 #, fuzzy, python-format msgid "compatibility mode translation: %s=%s" msgstr " -a|pipe \"ispell -a\" 互換モード" -#: book_snippets.py:414 +#: book_snippets.py:411 #, fuzzy, python-format msgid "deprecated ly-option used: %s" msgstr "警告:“%s”は、問題視されているオプションです\n" -#: book_snippets.py:416 +#: book_snippets.py:413 #, fuzzy, python-format msgid "compatibility mode translation: %s" msgstr " -a|pipe \"ispell -a\" 互換モード" -#: book_snippets.py:533 +#: book_snippets.py:530 #, fuzzy, python-format msgid "ignoring unknown ly option: %s" msgstr "不明な強制・拒否 (force/refuse) オプション `%.*s'" -#: book_snippets.py:741 +#: book_snippets.py:621 +#, fuzzy, python-format +msgid "Missing files: %s" +msgstr "ウィンドウ飾りも含める" + +#: book_snippets.py:661 +#, fuzzy, python-format +msgid "Could not overwrite file %s" +msgstr "" +"ファイル %s に書き込めません:\n" +"%s\n" + +#: book_snippets.py:748 #, python-format msgid "Running through filter `%s'" msgstr "フィルタ `%s' で処理中です " -#: book_snippets.py:761 +#: book_snippets.py:769 #, python-format msgid "`%s' failed (%d)" msgstr "`%s' 失敗しました(%d)" -#: book_snippets.py:762 +#: book_snippets.py:770 msgid "The error log is as follows:" msgstr "エラーログは以下の通りです:" -#: book_snippets.py:882 +#: book_snippets.py:890 #, fuzzy, python-format msgid "Converting MusicXML file `%s'...\n" msgstr "MusicXML ファイル (*.mxml)" -#: book_snippets.py:909 +#: book_snippets.py:917 #, python-format msgid "" "%s: duplicate filename but different contents of original file,\n" "printing diff against existing file." msgstr "" -#: book_snippets.py:922 +#: book_snippets.py:930 #, python-format msgid "" "%s: duplicate filename but different contents of converted lilypond file,\n" "printing diff against existing file." msgstr "" -#: convertrules.py:12 +#. Work around a texi2pdf bug: if LANG=C is not given, a broken regexp is +#. used to detect relative/absolute paths, so the absolute path is not +#. detected as such and this command fails: +#: book_texinfo.py:206 +#, python-format +msgid "Running texi2pdf on file %s to detect default page settings.\n" +msgstr "" + +#: convertrules.py:13 #, fuzzy, python-format msgid "Not smart enough to convert %s." msgstr "アンカーポイントが不足しているので描画できません" -#: convertrules.py:13 +#: convertrules.py:14 msgid "Please refer to the manual for details, and update manually." msgstr "詳細についてはマニュアルを参照して、手動で更新してください。" -#: convertrules.py:14 +#: convertrules.py:15 #, fuzzy, python-format msgid "%s has been replaced by %s" msgstr "あなたは %s さんによって追加されました" -#: convertrules.py:24 lilylib.py:131 warn.cc:223 +#: convertrules.py:25 lilylib.py:136 warn.cc:223 #, c-format, python-format msgid "warning: %s" msgstr "警告: %s" -#: convertrules.py:49 convertrules.py:94 +#: convertrules.py:50 convertrules.py:95 msgid "\\header { key = concat + with + operator }" msgstr "" -#: convertrules.py:56 +#: convertrules.py:57 #, python-format msgid "deprecated %s" msgstr "非推奨です %s" -#: convertrules.py:65 +#: convertrules.py:66 msgid "deprecated \\textstyle, new \\key syntax" msgstr "" -#: convertrules.py:81 convertrules.py:1855 convertrules.py:2031 -#: convertrules.py:2174 convertrules.py:2505 convertrules.py:2800 -#: convertrules.py:3150 +#: convertrules.py:82 convertrules.py:1856 convertrules.py:2032 +#: convertrules.py:2175 convertrules.py:2506 convertrules.py:2801 +#: convertrules.py:3151 convertrules.py:3388 convertrules.py:3700 #, fuzzy msgid "bump version for release" msgstr "'%2$s' のリリース '%1$s' が見つかりませんでした" -#: convertrules.py:97 +#: convertrules.py:98 msgid "new \\header format" msgstr "新しい \\header の書式" -#: convertrules.py:124 +#: convertrules.py:125 #, fuzzy msgid "\\translator syntax" msgstr "%s: 文法エラー" -#: convertrules.py:175 +#: convertrules.py:176 msgid "\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative" msgstr "" -#: convertrules.py:205 convertrules.py:678 convertrules.py:1350 -#: convertrules.py:2317 +#: convertrules.py:206 convertrules.py:679 convertrules.py:1351 +#: convertrules.py:2318 #, python-format msgid "deprecate %s" msgstr "" -#: convertrules.py:279 +#: convertrules.py:280 #, python-format msgid "deprecate %s " msgstr "" -#: convertrules.py:305 +#: convertrules.py:306 msgid "new \\notenames format" msgstr "新しい \\notenames の書式" -#: convertrules.py:321 +#: convertrules.py:322 #, fuzzy msgid "new tremolo format" msgstr "新しい \\header の書式" -#: convertrules.py:325 +#: convertrules.py:326 msgid "Staff_margin_engraver deprecated, use Instrument_name_engraver" msgstr "" -#: convertrules.py:376 +#: convertrules.py:377 msgid "change property definition case (eg. onevoice -> oneVoice)" msgstr "" -#: convertrules.py:437 +#: convertrules.py:438 #, fuzzy msgid "new \\textscript markup text" msgstr "新しい置換の追加" -#: convertrules.py:509 +#: convertrules.py:510 #, fuzzy, python-format msgid "identifier names: %s" msgstr " -a, --alias エイリアス名\n" -#: convertrules.py:548 +#: convertrules.py:549 msgid "point-and-click argument changed to procedure." msgstr "" -#: convertrules.py:590 +#: convertrules.py:591 #, fuzzy msgid "semicolons removed" msgstr "パッチ %s を削除しました\\n" #. 40 ? -#: convertrules.py:633 +#: convertrules.py:634 #, fuzzy, python-format msgid "%s property names" msgstr " -a, --alias エイリアス名\n" -#: convertrules.py:703 +#: convertrules.py:704 #, fuzzy msgid "automaticMelismata turned on by default" msgstr "%2$s から %1$s へのログインは、初期状態では拒否されました。\n" -#: convertrules.py:708 +#: convertrules.py:709 msgid "automaticMelismata is turned on by default since 1.5.67." msgstr "" -#: convertrules.py:942 convertrules.py:1635 convertrules.py:1889 -#: convertrules.py:2134 +#: convertrules.py:943 convertrules.py:1636 convertrules.py:1890 +#: convertrules.py:2135 #, python-format msgid "remove %s" msgstr "%s を削除" -#: convertrules.py:977 convertrules.py:980 +#: convertrules.py:978 convertrules.py:981 msgid "cluster syntax" msgstr "クラスタの文法" -#: convertrules.py:987 +#: convertrules.py:988 #, fuzzy msgid "new Pedal style syntax" msgstr "新しいスタイルのグループ・オブジェクト (テスト用)" -#: convertrules.py:1246 +#: convertrules.py:1247 msgid "" "New relative mode,\n" "Postfix articulations, new text markup syntax, new chord syntax." msgstr "" -#: convertrules.py:1259 +#: convertrules.py:1260 #, fuzzy msgid "Remove - before articulation" msgstr "保存前に確認(&M)" -#: convertrules.py:1294 +#: convertrules.py:1295 #, python-format msgid "%s misspelling" msgstr "%s スペルミスです" -#: convertrules.py:1313 +#: convertrules.py:1314 #, fuzzy msgid "Swap < > and << >>" msgstr "黒と白を反転する" -#: convertrules.py:1316 +#: convertrules.py:1317 msgid "attempting automatic \\figures conversion. Check results!" msgstr "" -#: convertrules.py:1362 +#: convertrules.py:1363 msgid "Use Scheme code to construct arbitrary note events." msgstr "" -#: convertrules.py:1369 +#: convertrules.py:1370 msgid "" "use symbolic constants for alterations,\n" "remove \\outputproperty, move ly:verbose into ly:get-option" msgstr "" -#: convertrules.py:1394 +#: convertrules.py:1395 #, python-format msgid "" "\\outputproperty found,\n" @@ -264,7 +307,7 @@ msgid "" "as a substitution text." msgstr "" -#: convertrules.py:1406 +#: convertrules.py:1407 msgid "" "The alteration field of Scheme pitches was multiplied by 2\n" "to support quarter tone accidentals. You must update the following constructs manually:\n" @@ -273,25 +316,25 @@ msgid "" "* keySignature settings made with \\property\n" msgstr "" -#: convertrules.py:1449 +#: convertrules.py:1450 msgid "removal of automaticMelismata; use melismaBusyProperties instead." msgstr "" -#: convertrules.py:1556 +#: convertrules.py:1557 msgid "\\partcombine syntax change to \\newpartcombine" msgstr "" -#: convertrules.py:1581 +#: convertrules.py:1582 msgid "" "Drum notation changes, Removing \\chordmodifiers, \\notenames.\n" "Harmonic notes. Thread context removed. Lyrics context removed." msgstr "" -#: convertrules.py:1585 +#: convertrules.py:1586 msgid "Drums found. Enclose drum notes in \\drummode" msgstr "" -#: convertrules.py:1596 convertrules.py:1603 convertrules.py:1614 +#: convertrules.py:1597 convertrules.py:1604 convertrules.py:1615 #, python-format msgid "" "\n" @@ -300,47 +343,47 @@ msgstr "" "\n" "%s が見つかりました\n" -#: convertrules.py:1596 +#: convertrules.py:1597 #, fuzzy msgid "Drum notation" msgstr "HTML 表記: " -#: convertrules.py:1655 +#: convertrules.py:1656 #, fuzzy msgid "new syntax for property settings:" msgstr "属性 '%s' の新しい値を '%s' に設定しました\n" -#: convertrules.py:1681 +#: convertrules.py:1682 msgid "Property setting syntax in \\translator{ }" msgstr "" -#: convertrules.py:1720 +#: convertrules.py:1721 msgid "Scheme grob function renaming" msgstr "" -#: convertrules.py:1731 convertrules.py:2138 convertrules.py:2142 -#: convertrules.py:2708 +#: convertrules.py:1732 convertrules.py:2139 convertrules.py:2143 +#: convertrules.py:2709 #, fuzzy, python-format msgid "Use %s\n" msgstr "ON" -#: convertrules.py:1747 +#: convertrules.py:1748 msgid "More Scheme function renaming" msgstr "" -#: convertrules.py:1871 +#: convertrules.py:1872 msgid "" "Page layout has been changed, using paper size and margins.\n" "textheight is no longer used.\n" msgstr "" -#: convertrules.py:1957 +#: convertrules.py:1958 msgid "" "\\foo -> \\foomode (for chords, notes, etc.)\n" "fold \\new FooContext \\foomode into \\foo." msgstr "" -#: convertrules.py:1995 +#: convertrules.py:1996 msgid "" "staff size should be changed at top-level\n" "with\n" @@ -349,83 +392,83 @@ msgid "" "\n" msgstr "" -#: convertrules.py:2015 +#: convertrules.py:2016 #, fuzzy msgid "regularize other identifiers" msgstr "他のタブを閉じる" -#: convertrules.py:2083 +#: convertrules.py:2084 msgid "\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click" msgstr "" -#: convertrules.py:2094 +#: convertrules.py:2095 msgid "LilyPond source must be UTF-8" msgstr "LilyPond のソースファイルは UTF-8 で記述してください" -#: convertrules.py:2097 +#: convertrules.py:2098 #, fuzzy msgid "Try the texstrings backend" msgstr "バックエンドによる較正" -#: convertrules.py:2100 +#: convertrules.py:2101 #, fuzzy, python-format msgid "Do something like: %s" msgstr "lynx 風動作(&Y)" -#: convertrules.py:2103 +#: convertrules.py:2104 msgid "Or save as UTF-8 in your editor" msgstr "エディタで保存する際の文字コードには UTF-8 を指定してください" -#: convertrules.py:2153 +#: convertrules.py:2154 msgid "warn about auto beam settings" msgstr "" -#: convertrules.py:2157 +#: convertrules.py:2158 #, fuzzy msgid "auto beam settings" msgstr "Cisco VPN 設定" -#: convertrules.py:2158 +#: convertrules.py:2159 msgid "" "\n" "Auto beam settings must now specify each interesting moment in a measure\n" "explicitly; 1/4 is no longer multiplied to cover moments 1/2 and 3/4 too.\n" msgstr "" -#: convertrules.py:2271 +#: convertrules.py:2272 #, fuzzy msgid "verticalAlignmentChildCallback has been deprecated" msgstr "鍵がパクられました" -#: convertrules.py:2276 +#: convertrules.py:2277 msgid "Remove callbacks property, deprecate XY-extent-callback." msgstr "" -#: convertrules.py:2297 +#: convertrules.py:2298 msgid "Use grob closures iso. XY-offset-callbacks." msgstr "" -#: convertrules.py:2359 +#: convertrules.py:2360 msgid "foobar -> foo-bar for \\paper, \\layout" msgstr "" -#: convertrules.py:2469 +#: convertrules.py:2470 msgid "deprecate \\tempo in \\midi" msgstr "" -#: convertrules.py:2522 +#: convertrules.py:2523 msgid "deprecate cautionary-style. Use AccidentalCautionary properties" msgstr "" -#: convertrules.py:2535 +#: convertrules.py:2536 msgid "Rename accidental glyphs, use glyph-name-alist." msgstr "" -#: convertrules.py:2590 +#: convertrules.py:2591 msgid "edge-text settings for TextSpanner" msgstr "" -#: convertrules.py:2591 +#: convertrules.py:2592 #, fuzzy, python-format msgid "" "Use\n" @@ -433,127 +476,127 @@ msgid "" "%s" msgstr "ON" -#: convertrules.py:2624 +#: convertrules.py:2625 msgid "Use the `alignment-offsets' sub-property of\n" msgstr "" -#: convertrules.py:2625 +#: convertrules.py:2626 msgid "NonMusicalPaperColumn #'line-break-system-details\n" msgstr "" -#: convertrules.py:2626 +#: convertrules.py:2627 msgid "to set fixed distances between staves.\n" msgstr "" -#: convertrules.py:2638 +#: convertrules.py:2639 msgid "Use #'style not #'dash-fraction to select solid/dashed lines." msgstr "" -#: convertrules.py:2644 +#: convertrules.py:2645 msgid "all settings related to dashed lines" msgstr "" -#: convertrules.py:2645 +#: convertrules.py:2646 msgid "Use \\override ... #'style = #'line for solid lines and\n" msgstr "" -#: convertrules.py:2646 +#: convertrules.py:2647 msgid "\t\\override ... #'style = #'dashed-line for dashed lines." msgstr "" -#: convertrules.py:2682 +#: convertrules.py:2683 msgid "" "metronomeMarkFormatter uses text markup as second argument,\n" "fret diagram properties moved to fret-diagram-details." msgstr "" -#: convertrules.py:2688 +#: convertrules.py:2689 msgid "metronomeMarkFormatter got an additional text argument.\n" msgstr "" -#: convertrules.py:2689 +#: convertrules.py:2690 #, python-format msgid "" "The function assigned to Score.metronomeMarkFunction now uses the signature\n" "%s" msgstr "" -#: convertrules.py:2707 +#: convertrules.py:2708 #, python-format msgid "%s in fret-diagram properties" msgstr "" -#: convertrules.py:2751 +#: convertrules.py:2752 msgid "\\put-adjacent argument order" msgstr "" -#: convertrules.py:2752 +#: convertrules.py:2753 msgid "Axis and direction now come before markups:\n" msgstr "" -#: convertrules.py:2753 +#: convertrules.py:2754 msgid "\\put-adjacent axis dir markup markup." msgstr "" -#: convertrules.py:2784 +#: convertrules.py:2785 #, fuzzy msgid "re-definition of InnerStaffGroup" msgstr "%s:%d: 不正な文字列定義" -#: convertrules.py:2789 +#: convertrules.py:2790 #, fuzzy msgid "re-definition of InnerChoirStaff" msgstr "%s:%d: 不正な文字列定義" -#: convertrules.py:2799 +#: convertrules.py:2800 msgid "Syntax changes for \\addChordShape and \\chord-shape" msgstr "" -#: convertrules.py:2804 +#: convertrules.py:2805 msgid "stringTuning must be added to addChordShape call.\n" msgstr "" -#: convertrules.py:2809 +#: convertrules.py:2810 msgid "stringTuning must be added to chord-shape call.\n" msgstr "" -#: convertrules.py:2815 +#: convertrules.py:2816 #, fuzzy msgid "Remove oldaddlyrics" msgstr "%s を削除できません" -#: convertrules.py:2819 +#: convertrules.py:2820 msgid "" "oldaddlyrics is no longer supported. \n" -" Use addlyrics or lyrsicsto instead.\n" +" Use addlyrics or lyricsto instead.\n" msgstr "" -#: convertrules.py:2825 +#: convertrules.py:2826 msgid "" "keySignature property not reversed any more\n" "MIDI 47: orchestral strings -> orchestral harp" msgstr "" -#: convertrules.py:2830 +#: convertrules.py:2831 msgid "The alist for Staff.keySignature is no longer in reversed order.\n" msgstr "" -#: convertrules.py:2836 +#: convertrules.py:2837 msgid "" "\\bar \".\" now produces a thick barline\n" "ly:hairpin::after-line-breaking -> ly:spanner::kill-zero-spanned-time\n" "Dash parameters for slurs and ties are now in dash-definition" msgstr "" -#: convertrules.py:2842 +#: convertrules.py:2843 msgid "\\bar \".\" now produces a thick barline.\n" msgstr "" -#: convertrules.py:2848 +#: convertrules.py:2849 msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" msgstr "" -#: convertrules.py:2853 +#: convertrules.py:2854 msgid "" "Autobeaming rules have changed. override-auto-beam-setting and\n" "revert-auto-beam-setting have been eliminated.\n" @@ -568,25 +611,25 @@ msgid "" "template replaced by new `Dynamics' context." msgstr "" -#: convertrules.py:2867 +#: convertrules.py:2868 msgid " Autobeam settings are now overriden with \\overrideBeamSettings.\n" msgstr "" -#: convertrules.py:2872 +#: convertrules.py:2873 msgid " Autobeam settings are now reverted with \\revertBeamSettings.\n" msgstr "" -#: convertrules.py:2878 +#: convertrules.py:2879 msgid "" " beatGrouping with a specified context must now be accomplished with\n" " \\overrideBeamSettings.\n" msgstr "" -#: convertrules.py:2884 +#: convertrules.py:2885 msgid "alignment-offsets has been changed to alignment-distances: you must now specify the distances between staves rather than the offset of staves.\n" msgstr "" -#: convertrules.py:2895 +#: convertrules.py:2896 msgid "" "Remove obsolete engravers/translators: Note_swallow_translator,\n" "Rest_swallow_translator, Skip_event_swallow_translator, Swallow_engraver,\n" @@ -594,188 +637,205 @@ msgid "" "New vertical spacing variables." msgstr "" -#: convertrules.py:2926 +#: convertrules.py:2927 msgid "Vertical spacing no longer depends on the Y-extent of a VerticalAxisGroup.\n" msgstr "" -#: convertrules.py:2932 +#: convertrules.py:2933 msgid "Unify fetaNumber and fetaDynamic encodings" msgstr "" -#: convertrules.py:2937 +#: convertrules.py:2938 msgid "\\RemoveEmpty*StaffContext -> \\*Staff \\RemoveEmptyStaves" msgstr "" -#: convertrules.py:2948 +#: convertrules.py:2949 msgid "\\cresc etc. are now postfix operators" msgstr "" -#: convertrules.py:2960 +#: convertrules.py:2961 msgid "" "Eliminate beamSettings, beatLength, \\setBeatGrouping, \\overrideBeamSettings and \\revertBeamSettings.\n" "\"accordion.accEtcbase\" -> \"accordion.etcbass\"" msgstr "" -#: convertrules.py:2978 +#: convertrules.py:2979 msgid "Use \\set beamExceptions or \\overrideTimeSignatureSettings.\n" msgstr "" -#: convertrules.py:2982 +#: convertrules.py:2983 msgid "Use \\set beamExceptions or \\revertTimeSignatureSettings.\n" msgstr "" -#: convertrules.py:2986 +#: convertrules.py:2987 msgid "Use baseMoment, beatStructure, and beamExceptions.\n" msgstr "" -#: convertrules.py:2990 convertrules.py:2994 +#: convertrules.py:2991 convertrules.py:2995 #, fuzzy msgid "Use baseMoment and beatStructure.\n" msgstr "選択範囲の作成と使用(_S)" -#: convertrules.py:2999 +#: convertrules.py:3000 msgid "" "Woodwind diagrams: Move size, thickness, and graphic from argument list to properties.\n" "Deprecate negative dash-period for hidden lines: use #'style = #'none instead." msgstr "" -#: convertrules.py:3004 +#: convertrules.py:3005 msgid "Move size, thickness, and graphic to properties. Argument should be just the key list.\n" msgstr "" -#: convertrules.py:3012 +#: convertrules.py:3013 msgid "" "Rename vertical spacing variables.\n" "Add fretboard-table argument to savePredefinedFretboard." msgstr "" -#: convertrules.py:3030 +#: convertrules.py:3031 msgid "Rename vertical spacing grob properties." msgstr "" -#: convertrules.py:3046 +#: convertrules.py:3047 msgid "Remove \\paper variables head-separation and foot-separation." msgstr "" -#: convertrules.py:3050 +#: convertrules.py:3051 msgid "Adjust settings for top-system-spacing instead.\n" msgstr "" -#: convertrules.py:3054 +#: convertrules.py:3055 msgid "Adjust settings for last-bottom-spacing instead.\n" msgstr "" -#: convertrules.py:3060 +#: convertrules.py:3061 msgid "" "Rename space to basic-distance in various spacing alists.\n" "Remove HarmonicParenthesesItem grob." msgstr "" -#: convertrules.py:3067 +#: convertrules.py:3068 #, fuzzy msgid "HarmonicParenthesesItem has been eliminated.\n" msgstr "鍵がパクられました" -#: convertrules.py:3068 +#: convertrules.py:3069 msgid "Harmonic parentheses are part of the TabNoteHead grob.\n" msgstr "" -#: convertrules.py:3073 +#: convertrules.py:3074 msgid "Remove context from overrideTimeSignatureSettings and revertTimeSignatureSettings.\n" msgstr "" -#: convertrules.py:3080 +#: convertrules.py:3081 msgid "" "Change stringTunings from a list of semitones to a list of pitches.\n" "Change tenor and baritone ukulele names in string tunings.\n" "Generate messages for manual conversion of vertical spacing if required." msgstr "" -#: convertrules.py:3123 +#: convertrules.py:3124 msgid "Vertical spacing changes might affect user-defined contexts." msgstr "" -#: convertrules.py:3129 +#: convertrules.py:3130 msgid "Replace bar-size with bar-extent." msgstr "" -#: convertrules.py:3141 +#: convertrules.py:3142 msgid "Woodwind diagrams: Changes to the clarinet diagram." msgstr "" -#: convertrules.py:3145 +#: convertrules.py:3146 msgid "Clarinet fingering changed to reflect actual anatomy of instrument.\n" msgstr "" -#: convertrules.py:3155 +#: convertrules.py:3156 msgid "Handling of non-automatic footnotes." msgstr "" -#: convertrules.py:3159 +#: convertrules.py:3160 msgid "If you are using non-automatic footnotes, make sure to set footnote-auto-numbering = ##f in the paper block.\n" msgstr "" -#: convertrules.py:3164 +#: convertrules.py:3165 msgid "Change in internal property for MultiMeasureRest" msgstr "" -#: convertrules.py:3168 +#: convertrules.py:3169 msgid "This internal property has been replaced by round-up-to-longer-rest, round-up-exceptions and usable-duration-logs.\n" msgstr "" -#: convertrules.py:3173 +#: convertrules.py:3174 msgid "Creation of a Flag grob and moving of certain Stem properties to this grob" msgstr "" -#: convertrules.py:3209 +#: convertrules.py:3210 msgid "consistent-broken-slope is now handled through the positions callback.\n" msgstr "" -#: convertrules.py:3210 +#: convertrules.py:3211 msgid "input/regression/beam-broken-classic.ly shows how broken beams are now handled.\n" msgstr "" -#: book_base.py:26 -#, fuzzy, python-format -msgid "file not found: %s" -msgstr "ファイルがありません" +#: convertrules.py:3372 +msgid "beamExceptions controls whole-measure beaming." +msgstr "" -#: book_base.py:164 -#, fuzzy -msgid "Output function not implemented" -msgstr "PASSMECH は完全には実装されていません" +#: convertrules.py:3609 +msgid "Flag.transparent and Flag.color inherit from Stem" +msgstr "" + +#: convertrules.py:3675 +msgid "Staff-padding now controls the distance to the baseline, not the nearest point." +msgstr "" + +#: fontextract.py:25 +#, python-format +msgid "Scanning %s" +msgstr "%s をスキャン中" + +#: fontextract.py:70 +#, python-format +msgid "Extracted %s" +msgstr "" + +#: fontextract.py:85 +#, python-format +msgid "Writing fonts to %s" +msgstr "%s にフォントを書き込みます" -#: lilylib.py:96 +#: lilylib.py:101 #, fuzzy, python-format msgid "Setting loglevel to %s" msgstr "ドメインを`%s'へ設定しました\n" -#: lilylib.py:99 +#: lilylib.py:104 #, fuzzy, python-format msgid "Unknown or invalid loglevel '%s'" msgstr "非対応または不正なビット深度です" -#: lilylib.py:128 warn.cc:211 -#, fuzzy, c-format, python-format +#: lilylib.py:133 warn.cc:211 +#, c-format, python-format msgid "error: %s" -msgstr " エラー: " +msgstr " エラー: %s" -#: lilylib.py:185 +#: lilylib.py:190 #, python-format msgid "Processing %s.ly" msgstr "%s.ly を処理中です" -#: lilylib.py:189 lilylib.py:250 +#: lilylib.py:194 lilylib.py:255 #, fuzzy, python-format msgid "Invoking `%s'" msgstr "PGP 起動中..." -#: lilylib.py:191 lilylib.py:252 +#: lilylib.py:196 lilylib.py:257 #, fuzzy, python-format msgid "Running %s..." msgstr "実行中 " -#: lilylib.py:328 +#: lilylib.py:333 #, python-format msgid "Usage: %s" msgstr "利用法: %s" @@ -832,441 +892,201 @@ msgstr "" msgid "Unable to find instrument for ID=%s\n" msgstr "%s: ARM グルー '%s' (`%s' 用) を見つけられません" -#. Work around a texi2pdf bug: if LANG=C is not given, a broken regexp is -#. used to detect relative/absolute paths, so the absolute path is not -#. detected as such and this command fails: -#: book_texinfo.py:206 -#, python-format -msgid "Running texi2pdf on file %s to detect default page settings.\n" -msgstr "" - -#: book_texinfo.py:228 book_latex.py:209 -msgid "Unable to auto-detect default settings:\n" -msgstr "既定の設定を自動検出できません:\n" +#: abc2ly.py:1389 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1044 +#, fuzzy, python-format +msgid "%s [OPTION]... FILE" +msgstr "オプション・ファイル「%s」: %s\n" -#: book_texinfo.py:240 book_latex.py:221 +#: abc2ly.py:1390 #, python-format msgid "" -"Unable to auto-detect default settings:\n" -"%s" +"abc2ly converts ABC music files (see\n" +"%s) to LilyPond input.\n" msgstr "" -"既定の設定を自動検出できません:\n" -"%s" - -#: book_latex.py:170 -msgid "cannot find \\begin{document} in LaTeX document" -msgstr "LaTeX 文書の中に \\begin{document} がありません" -#: book_latex.py:188 -#, python-format -msgid "Running `%s' on file `%s' to detect default page settings.\n" -msgstr "" +#: abc2ly.py:1398 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231 +#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:184 +msgid "show version number and exit" +msgstr "バージョン情報を表示して終了します" -#: musicxml2ly.py:228 -#, python-format -msgid "Encountered file created by %s, containing wrong beaming information. All beaming information in the MusicXML file will be ignored" -msgstr "" +#: abc2ly.py:1401 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140 +#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:163 +msgid "show this help and exit" +msgstr "このヘルプを表示して終了します" -#: musicxml2ly.py:247 musicxml2ly.py:249 -#, fuzzy, python-format -msgid "Unprocessed PartGroupInfo %s encountered" -msgstr "ループしているリンクに遭遇しました" +#: abc2ly.py:1404 etf2ly.py:1209 midi2ly.py:1071 +#, fuzzy +msgid "write output to FILE" +msgstr " -o, --output-file=FILE 指定したファイルに出力\n" -#: musicxml2ly.py:502 -#, python-format -msgid "Encountered note at %s without type and duration (=%s)" +#: abc2ly.py:1407 +msgid "be strict about success" msgstr "" -#: musicxml2ly.py:522 -#, python-format -msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration" +#: abc2ly.py:1410 +msgid "preserve ABC's notion of beams" msgstr "" -#: musicxml2ly.py:769 +#: abc2ly.py:1413 #, fuzzy -msgid "Unable to extract key signature!" -msgstr "メタデータの値を設定できませんでした" +msgid "suppress progress messages" +msgstr "未知のシステムエラー" -#: musicxml2ly.py:796 -#, python-format -msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!" -msgstr "" +#. Translators, please translate this string as +#. "Report bugs in English via %s", +#. or if there is a LilyPond users list or forum in your language +#. "Report bugs in English via %s or in YOUR_LANG via URI" +#: abc2ly.py:1416 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258 +#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:318 +#, c-format, python-format +msgid "Report bugs via %s" +msgstr "バグレポートは英語で %s まで" -#: musicxml2ly.py:934 -#, fuzzy, python-format -msgid "Encountered unprocessed marker %s\n" -msgstr "ループしているリンクに遭遇しました" +#: convert-ly.py:47 +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 "" -#: musicxml2ly.py:1028 -#, fuzzy, python-format -msgid "unknown span event %s" -msgstr "MIDI イベントコントローラ" +#: convert-ly.py:50 +msgid "If FILE is `-', read from standard input." +msgstr "" -#: musicxml2ly.py:1038 -#, fuzzy, python-format -msgid "unknown span type %s for %s" -msgstr "%s: 再配置タイプ %d (シンボル %s) が不明です" +#: convert-ly.py:52 lilypond-book.py:82 +msgid "Examples:" +msgstr "例:" -#: musicxml2ly.py:1458 -#, fuzzy -msgid "Unknown metronome mark, ignoring" -msgstr "未知の拡張ヘッダキーワード `%s' を無視" +#: convert-ly.py:79 etf2ly.py:1191 lilypond-book.py:115 midi2ly.py:81 +#, python-format +msgid "Copyright (c) %s by" +msgstr "Copyright (c) %s by" -#. TODO: Implement the other (more complex) way for tempo marks! -#: musicxml2ly.py:1463 -msgid "Metronome marks with complex relations ( in MusicXML) are not yet implemented." +#: convert-ly.py:81 etf2ly.py:1193 lilypond-book.py:117 midi2ly.py:83 +msgid "Distributed under terms of the GNU General Public License." msgstr "" -#: musicxml2ly.py:1665 -#, python-format -msgid "Unable to convert chord type %s to lilypond." +#: convert-ly.py:82 etf2ly.py:1194 lilypond-book.py:118 midi2ly.py:84 +msgid "It comes with NO WARRANTY." msgstr "" -#: musicxml2ly.py:1814 -#, python-format -msgid "drum %s type unknown, please add to instrument_drumtype_dict" +#: convert-ly.py:100 convert-ly.py:141 +#, fuzzy +msgid "VERSION" +msgstr "%s ver.%s" + +#: convert-ly.py:102 +msgid "start from VERSION [default: \\version found in file]" msgstr "" -#: musicxml2ly.py:1818 +#: convert-ly.py:105 #, fuzzy -msgid "cannot find suitable event" -msgstr "'%s' の URL が見つかりません" +msgid "edit in place" +msgstr "ファイルをテキストエディタで編集する" -#: musicxml2ly.py:1966 -#, python-format -msgid "Negative skip %s (from position %s to %s)" +#: convert-ly.py:109 lilypond-book.py:179 musicxml2ly.py:2627 +msgid "Print log messages according to LOGLEVEL (NONE, ERROR, WARNING, PROGRESS (default), DEBUG)" msgstr "" -#: musicxml2ly.py:2107 -#, python-format -msgid "Negative skip found: from %s to %s, difference is %s" +#: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181 +#: musicxml2ly.py:2629 main.cc:177 +msgid "LOGLEVEL" +msgstr "LOGLEVEL" + +#: convert-ly.py:117 +msgid "do not add \\version command if missing" msgstr "" -#: musicxml2ly.py:2188 +#: convert-ly.py:123 #, fuzzy, python-format -msgid "unexpected %s; expected %s or %s or %s" -msgstr "\\が「a」「c」「i」の後に予期されます" +msgid "force updating \\version number to %s" +msgstr "バージョン番号を表示" -#: musicxml2ly.py:2294 -msgid "Encountered closing slur, but no slur is open" +#: convert-ly.py:129 +msgid "only update \\version number if file is modified" msgstr "" -#: musicxml2ly.py:2297 -msgid "Cannot have two simultaneous (closing) slurs" -msgstr "" +#: convert-ly.py:135 +#, fuzzy, python-format +msgid "show rules [default: -f 0, -t %s]" +msgstr "自動" -#: musicxml2ly.py:2306 -msgid "Cannot have a slur inside another slur" -msgstr "スラーの中に別のスラーを含むことはできません" +#: convert-ly.py:140 +#, fuzzy, python-format +msgid "convert to VERSION [default: %s]" +msgstr "既定の RGB カラープロファイルに変換" -#: musicxml2ly.py:2309 -msgid "Cannot have two simultaneous slurs" -msgstr "スラーを二つ同時に指定することはできません" +#: convert-ly.py:147 +msgid "make a numbered backup [default: filename.ext~]" +msgstr "" -#: musicxml2ly.py:2443 -#, fuzzy, python-format -msgid "cannot simultaneously have more than one mode: %s" -msgstr "-anrw を2つ以上一緒に使用することはできません" +#: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096 +#: main.cc:186 +msgid "show warranty and copyright" +msgstr "保証と著作権について表示します" -#: musicxml2ly.py:2551 +#: convert-ly.py:196 #, fuzzy -msgid "Converting to LilyPond expressions..." -msgstr "和音にLilyPond 言語を追加" +msgid "Applying conversion: " +msgstr "変換対象:\n" -#: musicxml2ly.py:2562 +#: convert-ly.py:215 #, fuzzy -msgid "musicxml2ly [OPTION]... FILE.xml" -msgstr "Visio XFIG ファイル形式" +msgid "Error while converting" +msgstr "\"%s\" を読み込み中にエラーが発生しました" -#: musicxml2ly.py:2564 -msgid "" -"Convert MusicXML from FILE.xml to LilyPond input.\n" -"If the given filename is -, musicxml2ly reads from the command line.\n" +#: convert-ly.py:217 +msgid "Stopping at last successful rule" msgstr "" -#: musicxml2ly.py:2570 midi2ly.py:1060 abc2ly.py:1387 lilypond-book.py:141 -#: convert-ly.py:92 etf2ly.py:1204 main.cc:153 -#, fuzzy -msgid "show this help and exit" -msgstr " -h, --help このヘルプを表示して終了\n" +#: convert-ly.py:256 +#, python-format +msgid "Processing `%s'... " +msgstr "`%s' を処理しています..." -#: musicxml2ly.py:2574 -msgid "" -"Copyright (c) 2005--2015 by\n" -" Han-Wen Nienhuys ,\n" -" Jan Nieuwenhuizen and\n" -" Reinhold Kainhofer \n" -msgstr "" - -#: musicxml2ly.py:2588 midi2ly.py:1091 abc2ly.py:1383 lilypond-book.py:232 -#: convert-ly.py:88 etf2ly.py:1208 main.cc:174 -#, fuzzy -msgid "show version number and exit" -msgstr "バージョン情報を表示して終了する" - -#: musicxml2ly.py:2594 midi2ly.py:1085 lilypond-book.py:224 -msgid "be verbose" -msgstr "詳細な情報を表示します" - -#: musicxml2ly.py:2600 -msgid "use lxml.etree; uses less memory and cpu time" -msgstr "" - -#: musicxml2ly.py:2606 -msgid "input file is a zip-compressed MusicXML file" -msgstr "" - -#: musicxml2ly.py:2612 -msgid "convert pitches in relative mode (default)" -msgstr "" - -#: musicxml2ly.py:2617 -msgid "convert pitches in absolute mode" -msgstr "" - -#: musicxml2ly.py:2620 -#, fuzzy -msgid "LANG" -msgstr "HREF_LANG:" - -#: musicxml2ly.py:2622 -msgid "use LANG for pitch names, e.g. 'deutsch' for note names in German" -msgstr "" - -#: musicxml2ly.py:2625 lilypond-book.py:180 convert-ly.py:105 -msgid "Print log messages according to LOGLEVEL (NONE, ERROR, WARNING, PROGRESS (default), DEBUG)" -msgstr "" - -#: musicxml2ly.py:2627 lilypond-book.py:164 lilypond-book.py:182 -#: convert-ly.py:107 main.cc:167 -msgid "LOGLEVEL" -msgstr "" - -#: musicxml2ly.py:2636 -msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc." -msgstr "" - -#: musicxml2ly.py:2642 -msgid "do not convert exact vertical positions of rests" -msgstr "" - -#: musicxml2ly.py:2648 -msgid "do not convert the exact page layout and breaks" -msgstr "" - -#: musicxml2ly.py:2654 -msgid "do not convert beaming information, use lilypond's automatic beaming instead" -msgstr "" - -#: musicxml2ly.py:2657 midi2ly.py:1065 midi2ly.py:1070 etf2ly.py:1210 -#: main.cc:159 main.cc:171 -msgid "FILE" -msgstr "FILE" - -#: musicxml2ly.py:2662 -msgid "set output filename to FILE, stdout if -" -msgstr "" - -#: musicxml2ly.py:2668 -msgid "add midi-block to .ly file" -msgstr "" - -#. Translators, please translate this string as -#. "Report bugs in English via %s", -#. or if there is a LilyPond users list or forum in your language -#. "Report bugs in English via %s or in YOUR_LANG via URI" -#: musicxml2ly.py:2672 midi2ly.py:1104 abc2ly.py:1396 lilypond-book.py:259 -#: convert-ly.py:146 etf2ly.py:1218 main.cc:285 -#, fuzzy, c-format, python-format -msgid "Report bugs via %s" -msgstr "バグレポートは %s まで\n" - -#: musicxml2ly.py:2752 -#, fuzzy, python-format -msgid "unknown part in part-list: %s" -msgstr "キーワード一覧の各項目:" - -#: musicxml2ly.py:2814 -msgid "Input is compressed, extracting raw MusicXML data from stdin" -msgstr "" - -#: musicxml2ly.py:2827 +#: convert-ly.py:366 #, python-format -msgid "Input file %s is compressed, extracting raw MusicXML data" -msgstr "" - -#: musicxml2ly.py:2857 -#, fuzzy -msgid "Reading MusicXML from Standard input ..." -msgstr "標準入力からパスワードを読み込む\n" - -#: musicxml2ly.py:2859 -#, fuzzy, python-format -msgid "Reading MusicXML from %s ..." -msgstr "「%s」からオプションを読み出します\n" - -#: musicxml2ly.py:2892 -#, fuzzy, python-format -msgid "Output to `%s'" -msgstr "%s へ出力リダイレクトされました\n" +msgid "%s: Unable to open file" +msgstr "'%s: ファイルをオープンできません" -#: musicxml2ly.py:2962 +#: convert-ly.py:372 #, fuzzy, python-format -msgid "Unable to find input file %s" -msgstr "インクルードファイルが見つかりません: \"%s\"" +msgid "%s: Unable to determine version. Skipping" +msgstr "ローカルネームを決定することができません" -#: midi2ly.py:81 lilypond-book.py:116 convert-ly.py:75 etf2ly.py:1191 +#: convert-ly.py:378 #, python-format -msgid "Copyright (c) %s by" -msgstr "Copyright (c) %s by" - -#: midi2ly.py:83 lilypond-book.py:118 convert-ly.py:77 etf2ly.py:1193 -msgid "Distributed under terms of the GNU General Public License." -msgstr "" - -#: midi2ly.py:84 lilypond-book.py:119 convert-ly.py:78 etf2ly.py:1194 -msgid "It comes with NO WARRANTY." -msgstr "" - -#: midi2ly.py:90 -msgid "warning: " -msgstr "警告: " - -#: midi2ly.py:93 midi2ly.py:1121 -msgid "error: " -msgstr "エラー: " - -#: midi2ly.py:94 -msgid "Exiting... " -msgstr "終了します..." - -#: midi2ly.py:834 -msgid "found more than 5 voices on a staff, expect bad output" +msgid "" +"%s: Invalid version string `%s' \n" +"Valid version strings consist of three numbers, separated by dots, e.g. `2.8.12'" msgstr "" -#: midi2ly.py:1030 -#, fuzzy, python-format -msgid "%s output to `%s'..." -msgstr "%s へ出力リダイレクトされました\n" - -#: midi2ly.py:1042 abc2ly.py:1374 lilypond-book.py:123 convert-ly.py:81 -#, fuzzy, python-format -msgid "%s [OPTION]... FILE" -msgstr "オプション・ファイル「%s」: %s\n" +#: convert-ly.py:384 +#, python-format +msgid "There was %d error." +msgid_plural "There were %d errors." +msgstr[0] "" +msgstr[1] "" -#: midi2ly.py:1043 +#: etf2ly.py:1197 #, fuzzy, python-format -msgid "Convert %s to LilyPond input.\n" -msgstr " " - -#: midi2ly.py:1048 -#, fuzzy -msgid "print absolute pitches" -msgstr "音程待ち" - -#: midi2ly.py:1050 midi2ly.py:1075 -msgid "DUR" -msgstr "DUR" - -#: midi2ly.py:1051 -msgid "quantise note durations on DUR" -msgstr "" - -#: midi2ly.py:1054 -#, fuzzy -msgid "debug printing" -msgstr "印刷機能を利用不可にする" - -#: midi2ly.py:1057 -#, fuzzy -msgid "print explicit durations" -msgstr " 非明示的メンバ\n" - -#: midi2ly.py:1062 -#, fuzzy -msgid "prepend FILE to output" -msgstr " -o, --output-file=FILE 指定したファイルに出力\n" - -#: midi2ly.py:1066 -#, fuzzy -msgid "set key: ALT=+sharps|-flats; MINOR=1" -msgstr "調を設定: ACC +シャープ/-フラット :1 短調" - -#: midi2ly.py:1067 -#, fuzzy -msgid "ALT[:MINOR]" -msgstr "Major/Minor \t\t\t%d/%d\n" - -#: midi2ly.py:1069 abc2ly.py:1389 etf2ly.py:1209 -#, fuzzy -msgid "write output to FILE" -msgstr " -o, --output-file=FILE 指定したファイルに出力\n" - -#: midi2ly.py:1072 -#, fuzzy -msgid "preview of first 4 bars" -msgstr "スクロールバーを表示(_B)" - -#: midi2ly.py:1074 -msgid "quantise note starts on DUR" -msgstr "" - -#: midi2ly.py:1078 -#, fuzzy -msgid "use s instead of r for rests" -msgstr "グラデーションの代わりにパターンを輪郭に使う" - -#: midi2ly.py:1080 -#, fuzzy -msgid "DUR*NUM/DEN" -msgstr "書式: %s [p num] [-n] [パッチ]\n" - -#: midi2ly.py:1083 -msgid "allow tuplet durations DUR*NUM/DEN" -msgstr "" - -#: midi2ly.py:1092 lilypond-book.py:235 convert-ly.py:141 etf2ly.py:1212 -#: main.cc:176 -msgid "show warranty and copyright" -msgstr "保証と著作権について表示する" - -#: midi2ly.py:1095 -#, fuzzy -msgid "treat every text as a lyric" -msgstr "-a --text すべてテキストとして処理。" - -#: midi2ly.py:1098 -#, fuzzy -msgid "Examples" -msgstr "例:" - -#: midi2ly.py:1122 -msgid "no files specified on command line." -msgstr "" +msgid "%s [OPTION]... ETF-FILE" +msgstr "使用法: %s [オプション] [ファイル]...\n" -#: abc2ly.py:1375 -#, python-format +#: etf2ly.py:1198 msgid "" -"abc2ly converts ABC music files (see\n" -"%s) to LilyPond input.\n" -msgstr "" - -#: abc2ly.py:1391 -msgid "be strict about success" +"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.\n" msgstr "" -#: abc2ly.py:1393 -msgid "preserve ABC's notion of beams" -msgstr "" +#: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659 +#: main.cc:169 main.cc:181 +msgid "FILE" +msgstr "FILE" #: lilypond-book.py:80 msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document." msgstr "" -#: lilypond-book.py:82 convert-ly.py:48 -msgid "Examples:" -msgstr "例:" - #: lilypond-book.py:87 #, fuzzy msgid "BOOK" @@ -1277,750 +1097,817 @@ msgstr "LDIF アドレス帳" msgid "Exiting (%d)..." msgstr "終了します (%d)..." -#: lilypond-book.py:128 +#: lilypond-book.py:127 #, fuzzy msgid "FILTER" msgstr " フィルタ " -#: lilypond-book.py:131 +#: lilypond-book.py:130 msgid "pipe snippets through FILTER [default: `convert-ly -n -']" msgstr "" -#: lilypond-book.py:135 +#: lilypond-book.py:134 msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)" msgstr "" -#: lilypond-book.py:136 +#: lilypond-book.py:135 #, fuzzy msgid "FORMAT" msgstr "FORMAT" -#: lilypond-book.py:143 +#: lilypond-book.py:142 #, fuzzy msgid "add DIR to include path" msgstr "DIR を検索パスに追加" -#: lilypond-book.py:144 lilypond-book.py:151 lilypond-book.py:170 -#: lilypond-book.py:188 lilypond-book.py:209 lilypond-book.py:215 main.cc:158 +#: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169 +#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:168 msgid "DIR" msgstr "DIR" -#: lilypond-book.py:149 +#: lilypond-book.py:148 msgid "format Texinfo output so that Info will look for images of music in DIR" msgstr "" -#: lilypond-book.py:156 +#: lilypond-book.py:155 #, fuzzy msgid "PAD" msgstr "PAD" -#: lilypond-book.py:158 -msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)" +#: lilypond-book.py:157 +msgid "pad left side of music to align music in spite of uneven bar numbers (in mm)" msgstr "" -#: lilypond-book.py:163 +#: lilypond-book.py:162 msgid "Print lilypond log messages according to LOGLEVEL" msgstr "" -#: lilypond-book.py:169 +#: lilypond-book.py:168 msgid "write lily-XXX files to DIR, link into --output dir" msgstr "" -#: lilypond-book.py:174 +#: lilypond-book.py:173 msgid "Load the additional python PACKAGE (containing e.g. a custom output format)" msgstr "" -#: lilypond-book.py:175 +#: lilypond-book.py:174 #, fuzzy msgid "PACKAGE" msgstr "パッケージ" -#: lilypond-book.py:187 +#: lilypond-book.py:186 #, fuzzy msgid "write output to DIR" msgstr " -o, --output-file=FILE 指定したファイルに出力\n" -#: lilypond-book.py:192 +#: lilypond-book.py:191 #, fuzzy msgid "COMMAND" msgstr "COMMAND" -#: lilypond-book.py:193 +#: lilypond-book.py:192 msgid "process ly_files using COMMAND FILE..." msgstr "" -#: lilypond-book.py:198 +#: lilypond-book.py:197 #, fuzzy msgid "Redirect the lilypond output" msgstr "%s: 制限されています: 出力をリダイレクト出来ません" -#: lilypond-book.py:202 +#: lilypond-book.py:201 msgid "Compile snippets in safe mode" msgstr "" -#: lilypond-book.py:208 +#: lilypond-book.py:207 msgid "do not fail if no lilypond output is found" msgstr "" -#: lilypond-book.py:214 +#: lilypond-book.py:213 msgid "do not fail if no PNG images are found for EPS files" msgstr "" -#: lilypond-book.py:220 +#: lilypond-book.py:219 msgid "write snippet output files with the same base name as their source file" msgstr "" -#: lilypond-book.py:240 +#: lilypond-book.py:223 midi2ly.py:1090 musicxml2ly.py:2596 +msgid "be verbose" +msgstr "詳細な情報を表示します" + +#: lilypond-book.py:239 msgid "" "run executable PROG instead of latex, or in\n" "case --pdf option is set instead of pdflatex" msgstr "" -#: lilypond-book.py:242 lilypond-book.py:247 +#: lilypond-book.py:241 lilypond-book.py:246 #, fuzzy msgid "PROG" msgstr "PROG" -#: lilypond-book.py:246 +#: lilypond-book.py:245 msgid "run executable PROG instead of texi2pdf" msgstr "" -#: lilypond-book.py:253 +#: lilypond-book.py:252 msgid "create PDF files for use with PDFTeX" msgstr "" -#: lilypond-book.py:456 +#: lilypond-book.py:463 #, fuzzy msgid "Writing snippets..." msgstr "音楽スニペット" -#: lilypond-book.py:461 +#: lilypond-book.py:468 msgid "Processing..." msgstr "処理中..." -#: lilypond-book.py:466 +#: lilypond-book.py:473 msgid "All snippets are up to date..." msgstr "" -#: lilypond-book.py:485 +#: lilypond-book.py:475 +#, fuzzy +msgid "Linking files..." +msgstr "音楽スニペット" + +#: lilypond-book.py:495 #, fuzzy, python-format msgid "cannot determine format for: %s" msgstr "未サポートのWAVフォーマット %d: %s\n" -#: lilypond-book.py:494 +#: lilypond-book.py:504 #, python-format msgid "%s is up to date." msgstr "%s は更新済みです" -#: lilypond-book.py:507 +#: lilypond-book.py:517 #, python-format msgid "Writing `%s'..." msgstr "`%s' 書き込み中..." -#: lilypond-book.py:568 +#: lilypond-book.py:580 msgid "Output would overwrite input file; use --output." msgstr "" -#: lilypond-book.py:572 +#: lilypond-book.py:584 #, python-format msgid "Reading %s..." msgstr "%s 読み出し中..." -#: lilypond-book.py:579 +#: lilypond-book.py:591 #, fuzzy msgid "Dissecting..." msgstr "処理中..." -#: lilypond-book.py:590 +#: lilypond-book.py:602 #, python-format msgid "Compiling %s..." msgstr "%s をコンパイル中..." -#: lilypond-book.py:598 +#: lilypond-book.py:610 #, fuzzy, python-format msgid "Processing include: %s" msgstr "ウィンドウ飾りも含める" -#: lilypond-book.py:609 +#: lilypond-book.py:621 #, python-format msgid "Removing `%s'" msgstr "'%s' を削除しています" -#: lilypond-book.py:676 +#: lilypond-book.py:727 #, fuzzy, python-format msgid "Setting LilyPond's loglevel to %s" msgstr "和音にLilyPond 言語を追加" -#: lilypond-book.py:680 +#: lilypond-book.py:731 #, python-format msgid "Setting LilyPond's loglevel to %s (from environment variable LILYPOND_LOGLEVEL)" msgstr "" -#: lilypond-book.py:683 +#: lilypond-book.py:734 msgid "Setting LilyPond's output to --verbose, implied by lilypond-book's setting" msgstr "" -#: convert-ly.py:46 -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 "" - -#: convert-ly.py:96 convert-ly.py:137 -#, fuzzy -msgid "VERSION" -msgstr "%s ver.%s" +#: midi2ly.py:90 +msgid "warning: " +msgstr "警告: " -#: convert-ly.py:98 -msgid "start from VERSION [default: \\version found in file]" -msgstr "" +#: midi2ly.py:93 midi2ly.py:1124 +msgid "error: " +msgstr "エラー: " -#: convert-ly.py:101 -#, fuzzy -msgid "edit in place" -msgstr "ファイルをテキストエディタで編集する" +#: midi2ly.py:94 +msgid "Exiting... " +msgstr "終了します..." -#: convert-ly.py:113 -msgid "do not add \\version command if missing" +#: midi2ly.py:835 +msgid "found more than 5 voices on a staff, expect bad output" msgstr "" -#: convert-ly.py:119 +#: midi2ly.py:1032 #, fuzzy, python-format -msgid "force updating \\version number to %s" -msgstr "バージョン番号を表示" - -#: convert-ly.py:125 -msgid "only update \\version number if file is modified" -msgstr "" +msgid "%s output to `%s'..." +msgstr "%s へ出力リダイレクトされました\n" -#: convert-ly.py:131 +#: midi2ly.py:1045 #, fuzzy, python-format -msgid "show rules [default: -f 0, -t %s]" -msgstr "自動" - -#: convert-ly.py:136 -#, fuzzy, python-format -msgid "convert to VERSION [default: %s]" -msgstr "既定の RGB カラープロファイルに変換" +msgid "Convert %s to LilyPond input.\n" +msgstr " " -#: convert-ly.py:186 +#: midi2ly.py:1050 #, fuzzy -msgid "Applying conversion: " -msgstr "変換対象:\n" +msgid "print absolute pitches" +msgstr "音程待ち" -#: convert-ly.py:202 -#, fuzzy -msgid "Error while converting" -msgstr "\"%s\" を読み込み中にエラーが発生しました" +#: midi2ly.py:1052 midi2ly.py:1080 +msgid "DUR" +msgstr "DUR" -#: convert-ly.py:204 -msgid "Stopping at last successful rule" +#: midi2ly.py:1053 +msgid "quantise note durations on DUR" msgstr "" -#: convert-ly.py:231 -#, python-format -msgid "Processing `%s'... " -msgstr "`%s' を処理しています..." +#: midi2ly.py:1056 +#, fuzzy +msgid "debug printing" +msgstr "印刷機能を利用不可にする" -#: convert-ly.py:338 -#, python-format -msgid "%s: Unable to open file" -msgstr "'%s: ファイルをオープンできません" +#: midi2ly.py:1059 +#, fuzzy +msgid "print explicit durations" +msgstr " 非明示的メンバ\n" -#: convert-ly.py:345 -#, fuzzy, python-format -msgid "%s: Unable to determine version. Skipping" -msgstr "ローカルネームを決定することができません" +#: midi2ly.py:1064 +#, fuzzy +msgid "prepend FILE to output" +msgstr " -o, --output-file=FILE 指定したファイルに出力\n" -#: convert-ly.py:350 -#, python-format -msgid "" -"%s: Invalid version string `%s' \n" -"Valid version strings consist of three numbers, separated by dots, e.g. `2.8.12'" -msgstr "" +#: midi2ly.py:1068 +#, fuzzy +msgid "set key: ALT=+sharps|-flats; MINOR=1" +msgstr "調を設定: ACC +シャープ/-フラット :1 短調" -#: etf2ly.py:1197 -#, fuzzy, python-format -msgid "%s [OPTION]... ETF-FILE" -msgstr "使用法: %s [オプション] [ファイル]...\n" +#: midi2ly.py:1069 +#, fuzzy +msgid "ALT[:MINOR]" +msgstr "Major/Minor \t\t\t%d/%d\n" -#: etf2ly.py:1198 -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.\n" +#: midi2ly.py:1074 +#, fuzzy +msgid "preview of first 4 bars" +msgstr "スクロールバーを表示(_B)" + +#: midi2ly.py:1078 +msgid "suppress progress messages and warnings about excess voices" msgstr "" -#: website_post.py:123 -#, fuzzy -msgid "English" -msgstr "英語" +#: midi2ly.py:1079 +msgid "quantise note starts on DUR" +msgstr "" -#: website_post.py:126 +#: midi2ly.py:1083 #, fuzzy -msgid "Other languages" -msgstr "多言語" +msgid "use s instead of r for rests" +msgstr "グラデーションの代わりにパターンを輪郭に使う" -#: warn.cc:56 -#, fuzzy, c-format -msgid "Log level set to %d\n" -msgstr "デバッグレベルを <レベル> に設定します。" +#: midi2ly.py:1085 +#, fuzzy +msgid "DUR*NUM/DEN" +msgstr "書式: %s [p num] [-n] [パッチ]\n" -#: warn.cc:89 -#, c-format -msgid "unknown log level `%s', using default (INFO)" +#: midi2ly.py:1088 +msgid "allow tuplet durations DUR*NUM/DEN" msgstr "" -#. Some expected warning was not triggered, so print out a warning. -#: warn.cc:112 -#, fuzzy, c-format -msgid "%d expected warning(s) not encountered: " -msgstr "警告: $PATH が設定されていません" +#: midi2ly.py:1098 +#, fuzzy +msgid "treat every text as a lyric" +msgstr "-a --text すべてテキストとして処理。" -#: warn.cc:183 -#, c-format -msgid "fatal error: %s" -msgstr "致命的なエラー: %s" +#: midi2ly.py:1101 +#, fuzzy +msgid "Examples" +msgstr "例:" -#: warn.cc:192 -#, fuzzy, c-format -msgid "suppressed programming error: %s" -msgstr "未知のシステムエラー" +#: midi2ly.py:1125 +msgid "no files specified on command line." +msgstr "" -#: warn.cc:197 -#, fuzzy, c-format -msgid "programming error: %s" -msgstr "プログラミングエラー" +#: musicxml2ly.py:228 +#, python-format +msgid "Encountered file created by %s, containing wrong beaming information. All beaming information in the MusicXML file will be ignored" +msgstr "" -#: warn.cc:198 -#, fuzzy -msgid "continuing, cross fingers" -msgstr "クロスデバイスリンク" +#: musicxml2ly.py:247 musicxml2ly.py:249 +#, fuzzy, python-format +msgid "Unprocessed PartGroupInfo %s encountered" +msgstr "ループしているリンクに遭遇しました" -#: warn.cc:207 -#, fuzzy, c-format -msgid "suppressed error: %s" -msgstr "%s サブプロセス入出力エラー" +#: musicxml2ly.py:500 +#, python-format +msgid "Encountered note at %s without type and duration (=%s)" +msgstr "" -#: warn.cc:219 -#, fuzzy, c-format -msgid "suppressed warning: %s" -msgstr "警告: %sは%sより優先\n" +#: musicxml2ly.py:520 +#, python-format +msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration" +msgstr "" -#: getopt-long.cc:153 -#, c-format -msgid "option `%s' requires an argument" -msgstr "オプション `%s' には引数が必要です" +#: musicxml2ly.py:767 +#, fuzzy +msgid "Unable to extract key signature!" +msgstr "メタデータの値を設定できませんでした" -#: getopt-long.cc:157 -#, fuzzy, c-format -msgid "option `%s' does not allow an argument" -msgstr "オプション %s には '%s' ではなく整数の引数が必要です" +#: musicxml2ly.py:794 +#, python-format +msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!" +msgstr "" -#: getopt-long.cc:161 -#, c-format -msgid "unrecognized option: `%s'" -msgstr "認識できないオプション: `%s'" +#: musicxml2ly.py:932 +#, fuzzy, python-format +msgid "Encountered unprocessed marker %s\n" +msgstr "ループしているリンクに遭遇しました" -#: getopt-long.cc:167 -#, c-format -msgid "invalid argument `%s' to option `%s'" -msgstr "オプション `%2$s' に対する無効な引数 `%1$s'" +#: musicxml2ly.py:1026 +#, fuzzy, python-format +msgid "unknown span event %s" +msgstr "MIDI イベントコントローラ" -#: flag.cc:110 -#, fuzzy, c-format -msgid "flag `%s' not found" -msgstr "ブラシ '%s' が見つかりません。" +#: musicxml2ly.py:1036 +#, fuzzy, python-format +msgid "unknown span type %s for %s" +msgstr "%s: 再配置タイプ %d (シンボル %s) が不明です" -#: flag.cc:130 -#, fuzzy, c-format -msgid "flag stroke `%s' not found" -msgstr " 検索文字列が見付かりません " +#: musicxml2ly.py:1456 +#, fuzzy +msgid "Unknown metronome mark, ignoring" +msgstr "未知の拡張ヘッダキーワード `%s' を無視" -#: parse-scm.cc:112 -msgid "GUILE signaled an error for the expression beginning here" +#. TODO: Implement the other (more complex) way for tempo marks! +#: musicxml2ly.py:1461 +msgid "Metronome marks with complex relations ( in MusicXML) are not yet implemented." msgstr "" -#: lily-lexer.cc:255 -msgid "include files are not allowed in safe mode" +#: musicxml2ly.py:1663 +#, python-format +msgid "Unable to convert chord type %s to lilypond." msgstr "" -#: lily-lexer.cc:282 -#, fuzzy, c-format -msgid "identifier name is a keyword: `%s'" -msgstr "`%s' という名前は既に使用されています!" - -#: lily-lexer.cc:303 lily-lexer.cc:316 -#, c-format -msgid "%s:EOF" -msgstr "%s:EOF" +#: musicxml2ly.py:1816 +#, python-format +msgid "drum %s type unknown, please add to instrument_drumtype_dict" +msgstr "" -#. if we get to here, just put everything on one line -#: constrained-breaking.cc:187 constrained-breaking.cc:205 +#: musicxml2ly.py:1820 #, fuzzy -msgid "cannot find line breaking that satisfies constraints" -msgstr "その解決は制限を満たしません" +msgid "cannot find suitable event" +msgstr "'%s' の URL が見つかりません" -#: context-property.cc:43 -msgid "need symbol arguments for \\override and \\revert" +#: musicxml2ly.py:1968 +#, python-format +msgid "Negative skip %s (from position %s to %s)" msgstr "" -#: horizontal-bracket-engraver.cc:62 -#, fuzzy -msgid "do not have that many brackets" -msgstr "マッチしないパラグラフのみ表示します。" +#: musicxml2ly.py:2109 +#, python-format +msgid "Negative skip found: from %s to %s, difference is %s" +msgstr "" -#: horizontal-bracket-engraver.cc:71 -#, fuzzy -msgid "conflicting note group events" -msgstr "拍子の要求が競合します" +#: musicxml2ly.py:2190 +#, fuzzy, python-format +msgid "unexpected %s; expected %s or %s or %s" +msgstr "\\が「a」「c」「i」の後に予期されます" -#: new-fingering-engraver.cc:113 -msgid "cannot add text scripts to individual note heads" +#: musicxml2ly.py:2296 +msgid "Encountered closing slur, but no slur is open" msgstr "" -#: new-fingering-engraver.cc:265 -#, fuzzy -msgid "no placement found for fingerings" -msgstr "“%s”用の失効鍵が見つかりません\n" +#: musicxml2ly.py:2299 +msgid "Cannot have two simultaneous (closing) slurs" +msgstr "" -#: new-fingering-engraver.cc:266 -#, fuzzy -msgid "placing below" -msgstr "ラインより下のピクセル数" +#: musicxml2ly.py:2308 +msgid "Cannot have a slur inside another slur" +msgstr "スラーの中に別のスラーを含むことはできません" -#: translator-group.cc:188 -#, c-format -msgid "cannot find: `%s'" -msgstr "見つかりません: `%s'" +#: musicxml2ly.py:2311 +msgid "Cannot have two simultaneous slurs" +msgstr "スラーを二つ同時に指定することはできません" -#: glissando-engraver.cc:158 -#, fuzzy -msgid "unterminated glissando" -msgstr "「s」コマンドが終了していません" +#: musicxml2ly.py:2445 +#, fuzzy, python-format +msgid "cannot simultaneously have more than one mode: %s" +msgstr "-anrw を2つ以上一緒に使用することはできません" -#: midi-item.cc:89 -#, fuzzy, c-format -msgid "no such MIDI instrument: `%s'" -msgstr "そのユーザーIDはありません。\n" +#: musicxml2ly.py:2553 +#, fuzzy +msgid "Converting to LilyPond expressions..." +msgstr "和音にLilyPond 言語を追加" -#: open-type-font.cc:44 -#, c-format -msgid "cannot allocate %lu bytes" -msgstr "%lu バイトを割当できません" +#: musicxml2ly.py:2564 +#, fuzzy +msgid "musicxml2ly [OPTION]... FILE.xml" +msgstr "Visio XFIG ファイル形式" -#: open-type-font.cc:48 -#, fuzzy, c-format -msgid "cannot load font table: %s" -msgstr "実行ファイルを動的にロードできません" +#: musicxml2ly.py:2566 +msgid "" +"Convert MusicXML from FILE.xml to LilyPond input.\n" +"If the given filename is -, musicxml2ly reads from the command line.\n" +msgstr "" -#: open-type-font.cc:53 -#, c-format -msgid "FreeType error: %s" -msgstr "FreeType エラー: %s" +#: musicxml2ly.py:2576 +msgid "" +"Copyright (c) 2005--2015 by\n" +" Han-Wen Nienhuys ,\n" +" Jan Nieuwenhuizen and\n" +" Reinhold Kainhofer \n" +msgstr "" -#: open-type-font.cc:110 -#, c-format -msgid "unsupported font format: %s" -msgstr "非対応のフォント形式: %s" +#: musicxml2ly.py:2602 +msgid "use lxml.etree; uses less memory and cpu time" +msgstr "" -#: open-type-font.cc:112 -#, fuzzy, c-format -msgid "error reading font file %s: %s" -msgstr "ファイルデスクリプタ %1 (%2)を読み込み中にエラー" +#: musicxml2ly.py:2608 +msgid "input file is a zip-compressed MusicXML file" +msgstr "" -#: open-type-font.cc:187 -#, c-format -msgid "FT_Get_Glyph_Name () Freetype error: %s" +#: musicxml2ly.py:2614 +msgid "convert pitches in relative mode (default)" msgstr "" -#: open-type-font.cc:318 pango-font.cc:189 -#, c-format -msgid "FT_Get_Glyph_Name () error: %s" +#: musicxml2ly.py:2619 +msgid "convert pitches in absolute mode" msgstr "" -#: note-heads-engraver.cc:76 +#: musicxml2ly.py:2622 #, fuzzy -msgid "NoteEvent without pitch" -msgstr "'~%c' が '~%c' に一致していません." +msgid "LANG" +msgstr "HREF_LANG:" -#: skyline-pair.cc:131 -msgid "direction must not be CENTER in ly:skyline-pair::skyline" +#: musicxml2ly.py:2624 +msgid "use LANG for pitch names, e.g. 'deutsch' for note names in German" msgstr "" -#: hyphen-engraver.cc:104 -#, fuzzy -msgid "removing unterminated hyphen" -msgstr "%s:%d: 警告: 文字列に終端がありません" +#: musicxml2ly.py:2638 +msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc." +msgstr "" -#: hyphen-engraver.cc:118 -#, fuzzy -msgid "unterminated hyphen; removing" -msgstr "リモートファイル %s を削除中に %s " +#: musicxml2ly.py:2644 +msgid "do not convert exact vertical positions of rests" +msgstr "" -#: output-def.cc:235 -msgid "margins do not fit with line-width, setting default values" +#: musicxml2ly.py:2650 +msgid "do not convert the exact page layout and breaks" msgstr "" -#: output-def.cc:242 -msgid "systems run off the page due to improper paper settings, setting default values" +#: musicxml2ly.py:2656 +msgid "do not convert beaming information, use lilypond's automatic beaming instead" msgstr "" -#: accidental.cc:200 -#, c-format -msgid "Could not find glyph-name for alteration %s" +#: musicxml2ly.py:2664 +msgid "set output filename to FILE, stdout if -" msgstr "" -#: accidental.cc:215 -msgid "natural alteration glyph not found" +#: musicxml2ly.py:2670 +msgid "activate midi-block" msgstr "" -#: lyric-combine-music-iterator.cc:337 -#, fuzzy, c-format -msgid "cannot find Voice `%s'" -msgstr "ディレクトリ %s が見つかりません\n" +#: musicxml2ly.py:2754 +#, fuzzy, python-format +msgid "unknown part in part-list: %s" +msgstr "キーワード一覧の各項目:" -#: context.cc:148 -#, fuzzy, c-format -msgid "cannot find or create new `%s'" -msgstr "%s: 新しいデフォルトファイルを作れません\n" +#: musicxml2ly.py:2816 +msgid "Input is compressed, extracting raw MusicXML data from stdin" +msgstr "" -#: context.cc:206 -#, fuzzy, c-format -msgid "cannot find or create `%s' called `%s'" -msgstr "`%2$s' に呼ばれた `%1$s' が見つからないか作れません" +#: musicxml2ly.py:2829 +#, python-format +msgid "Input file %s is compressed, extracting raw MusicXML data" +msgstr "" -#: context.cc:399 -#, fuzzy, c-format -msgid "cannot find or create: `%s'" -msgstr "警告: cat ディレクトリ %s を作成できません" +#: musicxml2ly.py:2859 +#, fuzzy +msgid "Reading MusicXML from Standard input ..." +msgstr "標準入力からパスワードを読み込む\n" -#: dispatcher.cc:82 -msgid "Event class should be a symbol" -msgstr "" +#: musicxml2ly.py:2861 +#, fuzzy, python-format +msgid "Reading MusicXML from %s ..." +msgstr "「%s」からオプションを読み出します\n" -#: dispatcher.cc:89 -#, fuzzy, c-format -msgid "Unknown event class %s" -msgstr "未知の署名クラスです" +#: musicxml2ly.py:2894 +#, fuzzy, python-format +msgid "Output to `%s'" +msgstr "%s へ出力リダイレクトされました\n" -#: dispatcher.cc:171 -#, fuzzy, c-format -msgid "Junking event: %s" -msgstr "イベントを横取り(_G)" +#: musicxml2ly.py:2964 +#, fuzzy, python-format +msgid "Unable to find input file %s" +msgstr "インクルードファイルが見つかりません: \"%s\"" -#: auto-change-iterator.cc:74 change-iterator.cc:72 -#, c-format -msgid "cannot change, already in translator: %s" -msgstr "" +#: website_post.py:129 +#, fuzzy +msgid "English" +msgstr "英語" -#: tie-engraver.cc:117 +#: website_post.py:132 #, fuzzy -msgid "unterminated tie" -msgstr "タイの切替え" +msgid "Other languages" +msgstr "多言語" -#: tie-engraver.cc:348 -msgid "lonely tie" -msgstr "一つだけのタイ" +#: website_post.py:133 +#, python-format +msgid "About automatic language selection." +msgstr "" -#: dynamic-engraver.cc:193 -#, fuzzy -msgid "cannot find start of (de)crescendo" -msgstr "(デ)クレッシェンドの始点が見つかりません" +#: getopt-long.cc:153 +#, c-format +msgid "option `%s' requires an argument" +msgstr "オプション `%s' には引数が必要です" -#: dynamic-engraver.cc:200 -msgid "already have a decrescendo" -msgstr "デクレッシェンドが既にあります" +#: getopt-long.cc:157 +#, c-format +msgid "option `%s' does not allow an argument" +msgstr "オプション `%s' には引数が不要です" -#: dynamic-engraver.cc:202 -msgid "already have a crescendo" -msgstr "クレッシェンドが既にあります" +#: getopt-long.cc:161 +#, c-format +msgid "unrecognized option: `%s'" +msgstr "認識できないオプション: `%s'" -#: dynamic-engraver.cc:205 -#, fuzzy -msgid "cresc starts here" -msgstr "ここにリクエストをどうぞ" +#: getopt-long.cc:167 +#, c-format +msgid "invalid argument `%s' to option `%s'" +msgstr "オプション `%2$s' に対する無効な引数 `%1$s'" -#: dynamic-engraver.cc:333 -msgid "unterminated (de)crescendo" -msgstr "終端のない(デ)クレッシェンド" +#: warn.cc:56 +#, c-format +msgid "Log level set to %d\n" +msgstr "ログレベルを %d にセットします\n" -#: paper-score.cc:122 minimal-page-breaking.cc:40 -#, fuzzy -msgid "Calculating line breaks..." -msgstr "自発的休憩" +#: warn.cc:89 +#, c-format +msgid "unknown log level `%s', using default (INFO)" +msgstr "ログレベル `%s' は不明です, デフォルト (INFO) を使います" -#: paper-score.cc:134 -#, fuzzy, c-format -msgid "Element count %d (spanners %d) " -msgstr "ストリップのデータ量" +#. Some expected warning was not triggered, so print out a warning. +#: warn.cc:112 +#, c-format +msgid "%d expected warning(s) not encountered: " +msgstr "%d 個の予想された警告が発生していません:" -#: paper-score.cc:138 +#: warn.cc:183 +#, c-format +msgid "fatal error: %s" +msgstr "致命的なエラー: %s" + +#: warn.cc:192 +#, c-format +msgid "suppressed programming error: %s" +msgstr "抑制されたプログラミングエラー: %s" + +#: warn.cc:197 +#, c-format +msgid "programming error: %s" +msgstr "プログラミングエラー: %s" + +#: warn.cc:198 #, fuzzy -msgid "Preprocessing graphical objects..." -msgstr "オブジェクトが多すぎます" +msgid "continuing, cross fingers" +msgstr "クロスデバイスリンク" + +#: warn.cc:207 +#, c-format +msgid "suppressed error: %s" +msgstr "抑制されたエラー: %s" -#: paper-score.cc:162 optimal-page-breaking.cc:208 -#: page-turn-page-breaking.cc:248 -#, fuzzy -msgid "Drawing systems..." -msgstr "KIllustrator 絵画" +#: warn.cc:219 +#, c-format +msgid "suppressed warning: %s" +msgstr "抑制された警告: %s" -#: mensural-ligature-engraver.cc:96 -msgid "ligature with less than 2 heads -> skipping" +#: accidental-engraver.cc:180 +#, c-format +msgid "accidental typesetting list must begin with context-name: %s" msgstr "" -#: mensural-ligature-engraver.cc:123 -msgid "cannot determine pitch of ligature primitive -> skipping" +#: accidental-engraver.cc:207 +#, c-format +msgid "procedure or context-name expected for accidental rule, found %s" msgstr "" -#: mensural-ligature-engraver.cc:137 -msgid "single note ligature - skipping" +#: accidental.cc:141 +#, c-format +msgid "Could not find glyph-name for alteration %s" msgstr "" -#: mensural-ligature-engraver.cc:148 -msgid "prime interval within ligature -> skipping" +#: accidental.cc:157 +msgid "natural alteration glyph not found" msgstr "" -#: mensural-ligature-engraver.cc:159 -msgid "mensural ligature: duration none of Mx, L, B, S -> skipping" +#: all-font-metrics.cc:159 +#, c-format +msgid "cannot find font: `%s'" +msgstr "フォントが見つかりません: `%s'" + +#: apply-context-iterator.cc:42 +#, fuzzy +msgid "\\applycontext argument is not a procedure" +msgstr "エラー: %s() の 第%d引数が文字列ではありません\n" + +#: arpeggio.cc:138 +msgid "no heads for arpeggio found?" msgstr "" -#: mensural-ligature-engraver.cc:202 -msgid "semibrevis must be followed by another one -> skipping" +#: axis-group-engraver.cc:149 +msgid "Axis_group_engraver: vertical group already has a parent" msgstr "" -#: mensural-ligature-engraver.cc:212 -msgid "" -"semibreves can only appear at the beginning of a ligature,\n" -"and there may be only zero or two of them" +#: axis-group-engraver.cc:150 +msgid "are there two Axis_group_engravers?" msgstr "" -#: mensural-ligature-engraver.cc:232 -msgid "" -"invalid ligatura ending:\n" -"when the last note is a descending brevis,\n" -"the penultimate note must be another one,\n" -"or the ligatura must be LB or SSB" +#: axis-group-engraver.cc:151 +#, fuzzy +msgid "removing this vertical group" +msgstr "このグループには %d 個のパッケージが含まれています。" + +#: axis-group-interface.cc:716 +#, c-format +msgid "\"%s\" is not a valid outside-staff-placement-directive" msgstr "" -#: mensural-ligature-engraver.cc:387 -msgid "unexpected case fall-through" +#: axis-group-interface.cc:788 +msgid "an outside-staff object should have a direction, defaulting to up" msgstr "" -#: piano-pedal-engraver.cc:279 -#, fuzzy, c-format -msgid "expect 3 strings for piano pedals, found: %ld" -msgstr "ピアノペダルの始点が見つかりません: `%s'" +#: bar-check-iterator.cc:84 +#, c-format +msgid "barcheck failed at: %s" +msgstr "小節チェックが失敗: %s" -#: piano-pedal-engraver.cc:294 piano-pedal-engraver.cc:305 -#: piano-pedal-performer.cc:104 -#, fuzzy, c-format -msgid "cannot find start of piano pedal: `%s'" -msgstr "ピアノペダルの始点が見つかりません: `%s'" +#: beam-engraver.cc:148 +msgid "already have a beam" +msgstr "既に連桁があります" -#: piano-pedal-engraver.cc:340 -#, fuzzy, c-format -msgid "cannot find start of piano pedal bracket: `%s'" -msgstr "ピアノペダルの始点が見つかりません: `%s'" +#: beam-engraver.cc:235 +msgid "unterminated beam" +msgstr "終端のない連桁" -#: input.cc:138 source-file.cc:178 source-file.cc:193 -msgid "position unknown" -msgstr "位置が判りません" +#: beam-engraver.cc:282 chord-tremolo-engraver.cc:149 +msgid "stem must have Rhythmic structure" +msgstr "符尾はリズム構造を持たねばなりません" -#: stem.cc:128 +#: beam-engraver.cc:293 #, fuzzy -msgid "weird stem size, check for narrow beams" -msgstr "変な符尾のサイズ -- 細い鈎のチェックをして下さい" +msgid "stem does not fit in beam" +msgstr "符尾が連桁の中におさまりません" -#: relative-octave-check.cc:49 -#, fuzzy -msgid "Failed octave check, got: " -msgstr "シンボリックリンク %s のチェックに失敗しました: %s" +#: beam-engraver.cc:294 +msgid "beam was started here" +msgstr "連桁はここから開始されました" -#: translator-ctors.cc:65 -#, c-format -msgid "unknown translator: `%s'" -msgstr "判らないトランスレータ: `%s'" +#. We are completely screwed. +#: beam-quanting.cc:850 +msgid "no viable initial configuration found: may not find good beam slope" +msgstr "" -#: ligature-engraver.cc:104 ligature-bracket-engraver.cc:72 -#, fuzzy -msgid "cannot find start of ligature" -msgstr "'%s' の URL が見つかりません" +#: beam.cc:183 +msgid "removing beam with no stems" +msgstr "" -#: ligature-engraver.cc:109 -#, fuzzy -msgid "no right bound" -msgstr "境界 Import ディレクトリ" +#: change-iterator.cc:34 +#, fuzzy, c-format +msgid "cannot change `%s' to `%s'" +msgstr "警告: %s に変更できません.\n" -#: ligature-engraver.cc:131 ligature-bracket-engraver.cc:85 +#. FIXME: constant error message. +#: change-iterator.cc:67 #, fuzzy -msgid "already have a ligature" -msgstr "AE 合字 Æ" +msgid "cannot find context to switch to" +msgstr "実効ユーザID を %ld に変更できません: %s\n" -#: ligature-engraver.cc:140 -#, fuzzy -msgid "no left bound" -msgstr "リソースに空きがありません" +#. No enclosing context was found because the iterator's immediate +#. context is the kind that was sought. +#. We could change the current translator's id, but that would make +#. errors hard to catch. +#. +#. last->translator_id_string () = get_change +#. ()->change_to_id_string (); +#: change-iterator.cc:78 +#, c-format +msgid "not changing to same context type: %s" +msgstr "" -#: ligature-engraver.cc:184 +#. FIXME: incomprehensible message +#: change-iterator.cc:82 +msgid "none of these in my family" +msgstr "ファミリの中にありません" + +#: chord-tremolo-engraver.cc:88 #, fuzzy -msgid "unterminated ligature" -msgstr "AE 合字 Æ" +msgid "No tremolo to end" +msgstr "ファイルの末尾に追加" -#: ligature-engraver.cc:211 -msgid "ignoring rest: ligature may not contain rest" -msgstr "" +#: chord-tremolo-engraver.cc:109 +msgid "unterminated chord tremolo" +msgstr "終端のないコードトレモロ" -#: ligature-engraver.cc:212 -#, fuzzy -msgid "ligature was started here" -msgstr "鈎はここから開始されました" +#: clef.cc:65 +#, fuzzy, c-format +msgid "clef `%s' not found" +msgstr "ブラシ '%s' が見つかりません。" -#: tuplet-engraver.cc:110 +#: cluster.cc:120 +#, fuzzy, c-format +msgid "unknown cluster style `%s'" +msgstr "名前復元 (demangle) の方式 `%s' が不明です" + +#: cluster.cc:157 #, fuzzy -msgid "No tuplet to end" -msgstr "ファイルの末尾に追加" +msgid "junking empty cluster" +msgstr "警告: $PATH が定義されていません" -#: ttf.cc:480 ttf.cc:528 +#: coherent-ligature-engraver.cc:110 #, c-format -msgid "font index %d too large for font `%s', using index 0" +msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul" msgstr "" -#: ttf.cc:512 ttf.cc:562 -msgid "font index must be non-negative, using index 0" -msgstr "" +#: constrained-breaking.cc:187 constrained-breaking.cc:206 +#, fuzzy +msgid "cannot find line breaking that satisfies constraints" +msgstr "その解決は制限を満たしません" -#: multi-measure-rest.cc:140 -msgid "usable-duration-logs must be a non-empty list. Falling back to whole rests." +#: context-property.cc:46 +msgid "need symbol arguments for \\override and \\revert" msgstr "" -#: partial-iterator.cc:45 -msgid "trying to use \\partial after the start of a piece" +#: context.cc:144 +#, fuzzy, c-format +msgid "cannot find or create new `%s'" +msgstr "%s: 新しいデフォルトファイルを作れません\n" + +#: context.cc:223 +#, fuzzy, c-format +msgid "cannot find or create `%s' called `%s'" +msgstr "`%2$s' に呼ばれた `%1$s' が見つからないか作れません" + +#: context.cc:416 +#, fuzzy, c-format +msgid "cannot find or create: `%s'" +msgstr "警告: cat ディレクトリ %s を作成できません" + +#: context.cc:430 +#, fuzzy, c-format +msgid "cannot find or create new Bottom = \"%s\"" +msgstr "%s: 新しいデフォルトファイルを作れません\n" + +#: custos.cc:87 +#, fuzzy, c-format +msgid "custos `%s' not found" +msgstr "ブラシ '%s' が見つかりません。" + +#: dispatcher.cc:82 +msgid "Event class should be a list" msgstr "" -#: minimal-page-breaking.cc:44 -#, fuzzy -msgid "Calculating page breaks..." -msgstr "自発的休憩" +#: dispatcher.cc:165 +#, fuzzy, c-format +msgid "Junking event: %s" +msgstr "イベントを横取り(_G)" -#: vaticana-ligature-engraver.cc:400 -#, c-format -msgid "ignored prefix(es) `%s' of this head according to restrictions of the selected ligature style" +#: dispatcher.cc:279 +msgid "Attempting to remove nonexisting listener." msgstr "" -#: vaticana-ligature-engraver.cc:736 -#, c-format -msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul" +#: dispatcher.cc:305 +msgid "Already listening to dispatcher, ignoring request" msgstr "" -#: paper-book.cc:214 +#: dots.cc:48 +#, fuzzy, c-format +msgid "dot `%s' not found" +msgstr "ブラシ '%s' が見つかりません。" + +#: dynamic-engraver.cc:169 #, c-format -msgid "program option -dprint-pages not supported by backend `%s'" +msgid "" +"unknown crescendo style: %s\n" +"defaulting to hairpin." msgstr "" -#: paper-book.cc:233 -#, c-format -msgid "program option -dpreview not supported by backend `%s'" +#: dynamic-engraver.cc:234 slur-proto-engraver.cc:119 +#, fuzzy, c-format +msgid "unterminated %s" +msgstr "「s」コマンドが終了していません" + +#. No explicit dynamic script events have occurred yet, but there is +#. nevertheless a dynamic spanner. Initialize last_volume_ to a +#. value within the available range. +#: dynamic-performer.cc:129 +msgid "(De)crescendo with unspecified starting volume in MIDI." msgstr "" #: episema-engraver.cc:75 @@ -2038,109 +1925,162 @@ msgstr "'%s' の URL が見つかりません" msgid "unterminated episema" msgstr "「s」コマンドが終了していません" -#: score-engraver.cc:78 +#: extender-engraver.cc:169 extender-engraver.cc:178 +msgid "unterminated extender" +msgstr "終端のないエクステンダ" + +#: flag.cc:133 #, fuzzy, c-format -msgid "cannot find `%s'" -msgstr "見つかりません: `%s'" +msgid "flag `%s' not found" +msgstr "ブラシ '%s' が見つかりません。" + +#: flag.cc:153 +#, fuzzy, c-format +msgid "flag stroke `%s' not found" +msgstr " 検索文字列が見付かりません " + +#: font-config-scheme.cc:151 font-config.cc:82 +#, c-format +msgid "failed adding font directory: %s" +msgstr "フォントディレクトリの追加に失敗しました: %s" + +#: font-config-scheme.cc:153 font-config.cc:84 +#, c-format +msgid "Adding font directory: %s" +msgstr "フォントディレクトリを追加しています: %s" + +#: font-config-scheme.cc:167 +#, c-format +msgid "failed adding font file: %s" +msgstr "フォントファイルの追加に失敗しました: %s" + +#: font-config-scheme.cc:169 +#, c-format +msgid "Adding font file: %s" +msgstr "フォントファイルを追加しています: %s" + +#: font-config.cc:38 +msgid "Initializing FontConfig..." +msgstr "FontConfig 初期化中..." + +#: font-config.cc:70 +#, c-format +msgid "failed to add fontconfig configuration file `%s'" +msgstr "fontconfig 設定ファイルの追加に失敗しました: %s" + +#: font-config.cc:73 +#, c-format +msgid "Adding fontconfig configuration file: %s" +msgstr "fontconfig 設定ファイルを追加しています: %s" + +#: font-config.cc:86 +msgid "Building font database..." +msgstr "フォントデータベースを構築しています" + +#: footnote-engraver.cc:87 +msgid "Must be footnote-event." +msgstr "" + +#: general-scheme.cc:403 +#, fuzzy, c-format +msgid "failed redirecting stderr to `%s'" +msgstr "" +"\n" +"%s を受信しました、%s に出力をリダイレクトします。\n" + +#: general-scheme.cc:482 output-ps.scm:48 +msgid "Found infinity or nan in output. Substituting 0.0" +msgstr "" + +#: glissando-engraver.cc:158 +#, fuzzy +msgid "unterminated glissando" +msgstr "「s」コマンドが終了していません" -#: score-engraver.cc:80 -msgid "Music font has not been installed properly." -msgstr "" +#: global-context-scheme.cc:95 global-context-scheme.cc:113 +#, fuzzy +msgid "no music found in score" +msgstr " %s に特定のエントリーは見つかりませんでした " -#: score-engraver.cc:82 -#, fuzzy, c-format -msgid "Search path `%s'" -msgstr "検索パス : %s\n" +#: global-context-scheme.cc:103 +msgid "Interpreting music..." +msgstr "楽曲を解釈中..." -#: score-engraver.cc:84 -msgid "Aborting" -msgstr "終了します" +#: global-context-scheme.cc:125 +#, c-format +msgid "elapsed time: %.2f seconds" +msgstr "経過時間: %.2f 秒" -#: performance.cc:54 -#, fuzzy -msgid "Track..." -msgstr "トラックのピーク" +#: gregorian-ligature-engraver.cc:70 +#, c-format +msgid "\\%s ignored" +msgstr "\\%s を無視しました" -#: performance.cc:82 +#: gregorian-ligature-engraver.cc:75 #, fuzzy, c-format -msgid "MIDI output to `%s'..." -msgstr "%s へ出力リダイレクトされました\n" - -#: note-collision.cc:504 -#, fuzzy -msgid "ignoring too many clashing note columns" -msgstr "釣り合わない音符が多すぎます。それらを無視します。" +msgid "implied \\%s added" +msgstr "「追加済」を表示" -#. fixme: be more verbose. -#: volta-engraver.cc:111 -#, fuzzy -msgid "cannot end volta spanner" -msgstr "%s: 省略記号の範囲の終わりに`%s'がありません" +#. ligature may not start with 2nd head of pes or flexa +#: gregorian-ligature-engraver.cc:224 +msgid "cannot apply `\\~' on first head of ligature" +msgstr "" -#: volta-engraver.cc:121 -msgid "already have a volta spanner, ending that one prematurely" +#. (pitch == prev_pitch) +#: gregorian-ligature-engraver.cc:236 +msgid "cannot apply `\\~' on heads with identical pitch" msgstr "" -#: volta-engraver.cc:125 -#, fuzzy -msgid "also already have an ended spanner" -msgstr "既に鈎があります" +#: grob-interface.cc:68 +#, c-format +msgid "Unknown interface `%s'" +msgstr "`%s' は未知のインタフェースです" -#: volta-engraver.cc:126 -#, fuzzy -msgid "giving up" +#: grob-interface.cc:79 +#, c-format +msgid "Grob `%s' has no interface for property `%s'" msgstr "" -"中止しました。\n" -"\n" -#: page-layout-problem.cc:709 -msgid "cannot fit music on page: ragged-spacing was requested, but page was compressed" +#: grob-property.cc:33 +#, c-format +msgid "%d: %s" msgstr "" -#: page-layout-problem.cc:712 +#: grob.cc:492 #, c-format -msgid "cannot fit music on page: overflow is %f" +msgid "ignored infinite %s-offset" msgstr "" -#: page-layout-problem.cc:714 -#, fuzzy -msgid "compressing music to fit" -msgstr "画像に高さを合わせる(_F)" - -#: page-layout-problem.cc:1176 -msgid "staff-affinities should only decrease" +#: hairpin.cc:60 +msgid "Asking for broken bound padding at a non-broken bound." msgstr "" -#: apply-context-iterator.cc:42 +#: hairpin.cc:257 #, fuzzy -msgid "\\applycontext argument is not a procedure" -msgstr "エラー: %s() の 第%d引数が文字列ではありません\n" +msgid "decrescendo too small" +msgstr "時刻が小さすぎます" -#. FIXME: constant error message. -#: mark-engraver.cc:157 +#: horizontal-bracket-engraver.cc:62 #, fuzzy -msgid "rehearsalMark must have integer value" -msgstr "%sの値は整数でなければなりません" - -#: mark-engraver.cc:163 -msgid "mark label must be a markup object" -msgstr "" +msgid "do not have that many brackets" +msgstr "マッチしないパラグラフのみ表示します。" -#: stem-engraver.cc:105 +#: horizontal-bracket-engraver.cc:71 #, fuzzy -msgid "tremolo duration is too long" -msgstr "diversion パスが長すぎます" +msgid "conflicting note group events" +msgstr "拍子の要求が競合します" -#: stem-engraver.cc:157 -#, fuzzy, c-format -msgid "adding note head to incompatible stem (type = %d/%d)" -msgstr "矛盾した符尾へ符頭を追加します (タイプ = %d)" +#: hyphen-engraver.cc:104 +#, fuzzy +msgid "removing unterminated hyphen" +msgstr "%s:%d: 警告: 文字列に終端がありません" -#: stem-engraver.cc:160 -msgid "maybe input should specify polyphonic voices" -msgstr "" +#: hyphen-engraver.cc:118 +#, fuzzy +msgid "unterminated hyphen; removing" +msgstr "リモートファイル %s を削除中に %s " -#: includable-lexer.cc:71 lily-guile.cc:91 lily-parser-scheme.cc:108 +#: includable-lexer.cc:71 lily-guile.cc:92 lily-parser-scheme.cc:108 #, fuzzy, c-format msgid "cannot find file: `%s'" msgstr "ファイルが見つかりません" @@ -2150,217 +2090,158 @@ msgstr "ファイルが見つかりません" msgid "(search path: `%s')" msgstr "(検索パス: `%s')" -#: relocate.cc:52 -#, fuzzy, c-format -msgid "Setting %s to %s" -msgstr "ドメインを`%s'へ設定しました\n" +#: input.cc:138 source-file.cc:180 source-file.cc:195 +msgid "position unknown" +msgstr "位置が判りません" -#. this warning should only be printed in debug mode! -#: relocate.cc:73 -#, fuzzy, c-format -msgid "no such file: %s for %s" -msgstr "出力ファイル用の名前がありません" +#: key-engraver.cc:197 +#, fuzzy +msgid "Incomplete keyAlterationOrder for key signature" +msgstr "メタデータの値を設定できませんでした" -#. this warning should only be printed in debug mode! -#. this warning should only be printed in debug mode -#: relocate.cc:84 relocate.cc:102 +#: key-signature-interface.cc:77 #, fuzzy, c-format -msgid "no such directory: %s for %s" -msgstr "そのようなファイルやディレクトリはありません" - -#: relocate.cc:93 -#, c-format -msgid "%s=%s (prepend)\n" -msgstr "" +msgid "No glyph found for alteration: %s" +msgstr "“%s”用の失効鍵が見つかりません\n" -#: relocate.cc:124 -#, c-format -msgid "not relocating, no %s/ or current/ found under %s" -msgstr "" +#: key-signature-interface.cc:87 +#, fuzzy +msgid "alteration not found" +msgstr "ブラシ '%s' が見つかりません。" -#: relocate.cc:134 -#, c-format -msgid "Relocation: compile datadir=%s, new datadir=%s" -msgstr "" +#: ligature-bracket-engraver.cc:72 ligature-engraver.cc:109 +#, fuzzy +msgid "cannot find start of ligature" +msgstr "'%s' の URL が見つかりません" -#: relocate.cc:146 -#, fuzzy, c-format -msgid "Relocation: framework_prefix=%s" -msgstr "おかしな名前空間の接頭子" +#: ligature-bracket-engraver.cc:85 ligature-engraver.cc:136 +#, fuzzy +msgid "already have a ligature" +msgstr "AE 合字 Æ" -#: relocate.cc:186 -#, fuzzy, c-format -msgid "Relocation: is absolute: argv0=%s\n" -msgstr "ファイル名 \"%s\" は絶対パスではありません" +#: ligature-engraver.cc:114 +#, fuzzy +msgid "no right bound" +msgstr "境界 Import ディレクトリ" -#: relocate.cc:192 -#, c-format -msgid "Relocation: from cwd: argv0=%s\n" -msgstr "" +#: ligature-engraver.cc:145 +#, fuzzy +msgid "no left bound" +msgstr "リソースに空きがありません" -#: relocate.cc:208 -#, fuzzy, c-format -msgid "" -"Relocation: from PATH=%s\n" -"argv0=%s" -msgstr "このテキストレイヤーからパスを作成します" +#: ligature-engraver.cc:189 +#, fuzzy +msgid "unterminated ligature" +msgstr "AE 合字 Æ" -#: relocate.cc:235 -msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR" +#: ligature-engraver.cc:216 +msgid "ignoring rest: ligature may not contain rest" msgstr "" -#: relocate.cc:360 -#, fuzzy, c-format -msgid "Relocation file: %s" -msgstr "HTML ファイル (*.html)|*.html" - -#: relocate.cc:364 source-file.cc:65 -#, fuzzy, c-format -msgid "cannot open file: `%s'" -msgstr " ファイル '%s' を開けません " - -#: relocate.cc:394 -#, fuzzy, c-format -msgid "Unknown relocation command %s" -msgstr "不明なビルトインコマンド '%s'\n" - -#: note-column.cc:135 -msgid "cannot have note heads and rests together on a stem" -msgstr "" +#: ligature-engraver.cc:217 +#, fuzzy +msgid "ligature was started here" +msgstr "鈎はここから開始されました" -#: beam.cc:180 -msgid "removing beam with no stems" -msgstr "" +#: lily-guile.cc:94 +#, c-format +msgid "(load path: `%s')" +msgstr "(読込パス: `%s')" -#: staff-performer.cc:257 -msgid "MIDI channel wrapped around" +#: lily-guile.cc:413 +#, c-format +msgid "cannot find property type-check for `%s' (%s)." msgstr "" -#: staff-performer.cc:258 +#: lily-guile.cc:416 #, fuzzy -msgid "remapping modulo 16" -msgstr "Functionキー 16" - -#: dots.cc:48 -#, fuzzy, c-format -msgid "dot `%s' not found" -msgstr "ブラシ '%s' が見つかりません。" +msgid "perhaps a typing error?" +msgstr "未知のシステムエラー" -#: font-config.cc:38 +#: lily-guile.cc:423 #, fuzzy -msgid "Initializing FontConfig..." -msgstr "ストリームの初期化中" +msgid "skipping assignment" +msgstr "とにかくログイン" -#: font-config.cc:53 font-config-scheme.cc:151 -#, fuzzy, c-format -msgid "failed adding font directory: %s" -msgstr "ディレクトリの追加が失敗しました: %s (対象: %s) (%d)" +#: lily-guile.cc:442 +#, c-format +msgid "type check for `%s' failed; value `%s' must be of type `%s'" +msgstr "" -#: font-config.cc:55 font-config-scheme.cc:153 -#, fuzzy, c-format -msgid "Adding font directory: %s" -msgstr "フォントファイルを追加しています: %s" +#. Uh oh. unsmob delivered 0, yet +#. unsmob delivers true. This means that unsmob is a +#. matching check from a base class of T, but var is of an +#. incompatible derived type. +#: lily-guile.cc:462 +msgid "Wrong kind of " +msgstr "" -#: font-config.cc:58 -#, fuzzy -msgid "Building font database..." -msgstr "タグのデータベースを構築しています" +#: lily-lexer.cc:251 +msgid "include files are not allowed in safe mode" +msgstr "" -#: change-iterator.cc:34 +#: lily-lexer.cc:278 #, fuzzy, c-format -msgid "cannot change `%s' to `%s'" -msgstr "警告: %s に変更できません.\n" - -#. FIXME: constant error message. -#: change-iterator.cc:93 -#, fuzzy -msgid "cannot find context to switch to" -msgstr "実効ユーザID を %ld に変更できません: %s\n" +msgid "identifier name is a keyword: `%s'" +msgstr "`%s' という名前は既に使用されています!" -#. We could change the current translator's id, but that would make -#. errors hard to catch. -#. -#. last->translator_id_string () = get_change -#. ()->change_to_id_string (); -#: change-iterator.cc:102 +#: lily-lexer.cc:299 lily-lexer.cc:312 #, c-format -msgid "not changing to same context type: %s" -msgstr "" - -#. FIXME: uncomprehensable message -#: change-iterator.cc:106 -msgid "none of these in my family" -msgstr "ファミリの中にありません" +msgid "%s:EOF" +msgstr "%s:EOF" -#: slur.cc:438 +#: lily-modules.cc:81 #, c-format -msgid "Ignoring grob for slur: %s. avoid-slur not set?" +msgid "Uninitialized variable `%s' in module (%s)" msgstr "" -#: source-file.cc:85 +#: lily-parser-scheme.cc:80 #, fuzzy, c-format -msgid "expected to read %d characters, got %d" -msgstr "" -"読み込むファイルまたは\n" -"使用する文字列" +msgid "Changing working directory to: `%s'" +msgstr "作業ディレクトリを '%s' に変更できません" -#. find out the ideal number of pages -#: optimal-page-breaking.cc:62 -#, fuzzy -msgid "Finding the ideal number of pages..." -msgstr "印刷するページ数" +#: lily-parser-scheme.cc:84 +#, fuzzy, c-format +msgid "unable to change directory to: `%s'" +msgstr "ディレクトリーを %s に変更できません" -#: optimal-page-breaking.cc:85 -msgid "could not satisfy systems-per-page and page-count at the same time, ignoring systems-per-page" -msgstr "" +#: lily-parser-scheme.cc:99 +#, fuzzy, c-format +msgid "cannot find init file: `%s'" +msgstr " ヘルプファイルでノード %s を見付けることができません " -#: optimal-page-breaking.cc:105 -#, fuzzy -msgid "Fitting music on 1 page..." -msgstr "このページで %d 個見つかりました" +#: lily-parser-scheme.cc:117 +#, c-format +msgid "Processing `%s'" +msgstr "`%s' を処理しています" -#: optimal-page-breaking.cc:107 -#, fuzzy, c-format -msgid "Fitting music on %d pages..." -msgstr "MoH サーバ (Music on Hold)" +#: lily-parser-scheme.cc:210 +msgid "ly:parser-parse-string is only valid with a new parser. Use ly:parser-include-string instead." +msgstr "" -#: optimal-page-breaking.cc:109 -#, c-format -msgid "Fitting music on %d or %d pages..." +#: lily-parser-scheme.cc:241 +msgid "ly:parse-string-expression is only valid with a new parser. Use ly:parser-include-string instead." msgstr "" -#: optimal-page-breaking.cc:119 optimal-page-breaking.cc:173 -#, fuzzy, c-format -msgid "trying %d systems" -msgstr "ディレクトリ %s の試行中" +#: lily-parser.cc:106 +msgid "Parsing..." +msgstr "構文解析中..." -#: optimal-page-breaking.cc:138 optimal-page-breaking.cc:201 +#: lookup.cc:178 #, c-format -msgid "best score for this sys-count: %f" +msgid "Not drawing a box with negative dimension, %.2f by %.2f." msgstr "" -#: new-dynamic-engraver.cc:168 -#, c-format -msgid "" -"unknown crescendo style: %s\n" -"defaulting to hairpin." +#: lyric-combine-music-iterator.cc:204 +msgid "argument of \\lyricsto should contain Lyrics context" msgstr "" -#: new-dynamic-engraver.cc:233 +#: lyric-combine-music-iterator.cc:344 #, fuzzy, c-format -msgid "unterminated %s" -msgstr "「s」コマンドが終了していません" - -#: hairpin.cc:263 -#, fuzzy -msgid "decrescendo too small" -msgstr "時刻が小さすぎます" - -#: extender-engraver.cc:169 extender-engraver.cc:178 -msgid "unterminated extender" -msgstr "終端のないエクステンダ" +msgid "cannot find %s `%s'" +msgstr "見つかりません: `%s'" -#: main.cc:101 +#: main.cc:106 #, fuzzy, c-format msgid "" "This program is free software. It is covered by the GNU General Public\n" @@ -2377,7 +2258,7 @@ msgstr "" "これを改変したり、複製を配布したりする事は歓迎されます。\n" "`--warranty' オプション付きで起動すると、より詳細な情報が得られます。\n" -#: main.cc:107 +#: main.cc:112 #, fuzzy msgid "" " This program is free software; you can redistribute it and/or\n" @@ -2422,107 +2303,121 @@ msgstr "" "です(COPYING ファイルを参照)。そうでない場合は、Free Software Foundation,\n" "Inc., 675 Mass Ave, Cambridge, MA 02139, USA に手紙を書いてください。\n" -#: main.cc:141 -#, fuzzy +#: main.cc:150 msgid "SYM[=VAL]" -msgstr "円錐形 (対称)" +msgstr "SYM[=VAL]" -#: main.cc:142 +#: main.cc:151 msgid "" "set Scheme option SYM to VAL (default: #t).\n" "Use -dhelp for help." msgstr "" +"Scheme オプション SYM を VAL に\n" +"セットします(デフォルト: #t).\n" +"-dhelp でヘルプを表示します." -#: main.cc:146 -#, fuzzy +#: main.cc:155 msgid "EXPR" -msgstr "test [表現]" +msgstr "EXPR" -#: main.cc:146 -#, fuzzy +#: main.cc:155 msgid "evaluate scheme code" -msgstr "Scheme ソースコード" +msgstr "Scheme コードを評価します" #. Bug in option parser: --output =foe is taken as an abbreviation #. for --output-format. -#: main.cc:149 -#, fuzzy +#: main.cc:158 msgid "FORMATs" -msgstr "%s: 形式を照合します:" +msgstr "FORMATs" -#: main.cc:149 +#: main.cc:158 msgid "dump FORMAT,... Also as separate options:" msgstr "" +"FORMAT,... を吐き出します.\n" +"また個別のオプションとして:" -#: main.cc:150 -#, fuzzy +#: main.cc:159 msgid "generate PDF (default)" -msgstr "自動" +msgstr "PDF を生成します(デフォルト)" -#: main.cc:151 -#, fuzzy +#: main.cc:160 msgid "generate PNG" -msgstr "PNG 画像" +msgstr "PNG を生成します" -#: main.cc:152 -#, fuzzy +#: main.cc:161 msgid "generate PostScript" -msgstr "PostScript ドキュメント" +msgstr "PostScript を生成します" -#: main.cc:155 -#, fuzzy +#: main.cc:162 +msgid "generate big PDF files" +msgstr "大きい PDF ファイルを生成します" + +#: main.cc:165 msgid "FIELD" -msgstr "<フィールド>,<フィールド>,..." +msgstr "FIELD" -#: main.cc:155 +#: main.cc:165 msgid "" "dump header field FIELD to file\n" "named BASENAME.FIELD" msgstr "" +"ヘッダ フィールドをファイル\n" +"BASENAME.FIELD に吐き出します" -#: main.cc:158 +#: main.cc:168 msgid "add DIR to search path" -msgstr "DIR を検索パスに追加" +msgstr "DIR を検索パスに追加します" -#: main.cc:159 +#: main.cc:169 msgid "use FILE as init file" -msgstr "FILE を初期化ファイルとして使用" +msgstr "FILE を初期化ファイルとして使用します" -#: main.cc:162 -#, fuzzy +#: main.cc:172 msgid "USER, GROUP, JAIL, DIR" -msgstr "ユーザがグループにありません" +msgstr "USER, GROUP, JAIL, DIR" -#: main.cc:162 +#: main.cc:172 msgid "" "chroot to JAIL, become USER:GROUP\n" "and cd into DIR" msgstr "" +"JAIL に chroot, USER:GROUP になり\n" +"DIR に cd します" -#: main.cc:167 +#: main.cc:177 msgid "" "print log messages according to LOGLEVEL. Possible values are:\n" "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG." msgstr "" +"LOGLEVEL に応じたログメッセージを\n" +"出力します. 取り得る値は:\n" +"NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (デフォルト) および DEBUG." -#: main.cc:171 +#: main.cc:181 msgid "write output to FILE (suffix will be added)" -msgstr "" +msgstr "FILE に出力します(拡張子が追加されます)" -#: main.cc:172 +#: main.cc:182 msgid "relocate using directory of lilypond program" msgstr "" +"lilypond プログラムのディレクトリで\n" +"再配置します" -#: main.cc:173 +#: main.cc:183 msgid "no progress, only error messages (equivalent to loglevel=ERROR)" msgstr "" +"進捗メッセージを表示せず\n" +"エラーメッセージのみ表示します\n" +"(loglevel=ERROR と同じ)" -#: main.cc:175 +#: main.cc:185 msgid "be verbose (equivalent to loglevel=DEBUG)" msgstr "" +"メッセージを冗長にします\n" +"(loglevel=DEBUG と同じ)" #. Do not update the copyright years here, run `make grand-replace' -#: main.cc:242 +#: main.cc:264 #, fuzzy, c-format msgid "" "Copyright (c) %s by\n" @@ -2533,1259 +2428,1707 @@ msgstr "" "%s, %s 他.\n" #. No version number or newline here. It confuses help2man. -#: main.cc:269 -#, fuzzy, c-format +#: main.cc:302 +#, c-format msgid "Usage: %s [OPTION]... FILE..." -msgstr "使用法: %s [オプション] [ファイル]...\n" +msgstr "使用法: %s [オプション]... FILE..." -#: main.cc:271 -#, fuzzy +#: main.cc:304 msgid "Typeset music and/or produce MIDI from FILE." -msgstr "ファイルの楽曲を組版したり、MIDI 演奏したりする" +msgstr "FILE から楽譜を組版したり MIDI を生成したりします." -#: main.cc:273 +#: main.cc:306 msgid "LilyPond produces beautiful music notation." -msgstr "" +msgstr "LilyPond は美しい楽譜を生成します." -#: main.cc:275 -#, fuzzy, c-format +#: main.cc:308 +#, c-format msgid "For more information, see %s" -msgstr "より詳しい情報は %1 を参照してください" +msgstr "より詳しい情報は, %s を参照してください" -#: main.cc:277 +#: main.cc:310 msgid "Options:" msgstr "オプション:" -#: main.cc:331 +#: main.cc:377 #, c-format msgid "expected %d arguments with jail, found: %u" msgstr "" -#: main.cc:345 +#: main.cc:391 #, fuzzy, c-format msgid "no such user: %s" msgstr "%s: そのようなユーザは存在しません" -#: main.cc:347 +#: main.cc:393 #, c-format msgid "cannot get user id from user name: %s: %s" msgstr "" -#: main.cc:362 +#: main.cc:408 #, fuzzy, c-format msgid "no such group: %s" msgstr "-group: グループ名がない" -#: main.cc:364 +#: main.cc:410 #, c-format msgid "cannot get group id from group name: %s: %s" msgstr "" -#: main.cc:372 +#: main.cc:418 #, fuzzy, c-format msgid "cannot chroot to: %s: %s" msgstr "" -"\"%s\" へ chdir できません \n" -" %s " +"\"%s\" へ chdir できません \n" +" %s " + +#: main.cc:425 +#, fuzzy, c-format +msgid "cannot change group id to: %d: %s" +msgstr "ID を root へ変更できません。\n" + +#: main.cc:431 +#, fuzzy, c-format +msgid "cannot change user id to: %d: %s" +msgstr "ID を root へ変更できません。\n" + +#: main.cc:437 +#, fuzzy, c-format +msgid "cannot change working directory to: %s: %s" +msgstr "作業ディレクトリを '%s' に変更できません" + +#: main.cc:826 +#, fuzzy, c-format +msgid "exception caught: %s" +msgstr "シグナルを受け取りました" + +#. FIXME: constant error message. +#: mark-engraver.cc:150 +#, fuzzy +msgid "rehearsalMark must have integer value" +msgstr "%sの値は整数でなければなりません" + +#: mark-engraver.cc:156 +msgid "mark label must be a markup object" +msgstr "" + +#: mensural-ligature-engraver.cc:100 +msgid "ligature with less than 2 heads -> skipping" +msgstr "" + +#: mensural-ligature-engraver.cc:127 +msgid "cannot determine pitch of ligature primitive -> skipping" +msgstr "" + +#: mensural-ligature-engraver.cc:141 +msgid "single note ligature - skipping" +msgstr "" + +#: mensural-ligature-engraver.cc:152 +msgid "prime interval within ligature -> skipping" +msgstr "" + +#: mensural-ligature-engraver.cc:163 +msgid "mensural ligature: duration none of Mx, L, B, S -> skipping" +msgstr "" + +#: mensural-ligature-engraver.cc:206 +msgid "semibrevis must be followed by another one -> skipping" +msgstr "" + +#: mensural-ligature-engraver.cc:216 +msgid "" +"semibreves can only appear at the beginning of a ligature,\n" +"and there may be only zero or two of them" +msgstr "" + +#: mensural-ligature-engraver.cc:236 +msgid "" +"invalid ligatura ending:\n" +"when the last note is a descending brevis,\n" +"the penultimate note must be another one,\n" +"or the ligatura must be LB or SSB" +msgstr "" + +#: mensural-ligature-engraver.cc:396 +msgid "unexpected case fall-through" +msgstr "" + +#: midi-control-function-performer.cc:107 staff-performer.cc:153 +#, c-format +msgid "ignoring out-of-range value change for MIDI property `%s'" +msgstr "" + +#: midi-item.cc:93 +#, fuzzy, c-format +msgid "no such MIDI instrument: `%s'" +msgstr "そのユーザーIDはありません。\n" + +#: midi-item.cc:179 +msgid "Time signature with more than 255 beats. Truncating" +msgstr "" + +#: midi-stream.cc:38 +#, fuzzy, c-format +msgid "cannot open for write: %s: %s" +msgstr "%s を読み書きモードで開けません\n" + +#: midi-stream.cc:54 +#, fuzzy, c-format +msgid "cannot write to file: `%s'" +msgstr "" +"ファイル %s に書き込めません:\n" +"%s\n" + +#: minimal-page-breaking.cc:40 paper-score.cc:116 +#, fuzzy +msgid "Calculating line breaks..." +msgstr "自発的休憩" + +#: minimal-page-breaking.cc:44 +#, fuzzy +msgid "Calculating page breaks..." +msgstr "自発的休憩" + +#: multi-measure-rest.cc:152 +msgid "usable-duration-logs must be a non-empty list. Falling back to whole rests." +msgstr "" + +#: music.cc:150 +#, c-format +msgid "octave check failed; expected \"%s\", found: \"%s\"" +msgstr "" + +#: new-fingering-engraver.cc:113 +msgid "cannot add text scripts to individual note heads" +msgstr "" + +#: new-fingering-engraver.cc:269 +#, fuzzy +msgid "no placement found for fingerings" +msgstr "“%s”用の失効鍵が見つかりません\n" + +#: new-fingering-engraver.cc:270 +#, fuzzy +msgid "placing below" +msgstr "ラインより下のピクセル数" + +#: note-collision.cc:510 +msgid "this Voice needs a \\voiceXx or \\shiftXx setting" +msgstr "" + +#: note-column.cc:150 +msgid "cannot have note heads and rests together on a stem" +msgstr "" + +#: note-head.cc:95 +#, c-format +msgid "none of note heads `%s' or `%s' found" +msgstr "" + +#: note-heads-engraver.cc:76 +#, fuzzy +msgid "NoteEvent without pitch" +msgstr "'~%c' が '~%c' に一致していません." + +#: open-type-font.cc:45 +#, c-format +msgid "cannot allocate %lu bytes" +msgstr "%lu バイトを割当できません" + +#: open-type-font.cc:49 +#, fuzzy, c-format +msgid "cannot load font table: %s" +msgstr "実行ファイルを動的にロードできません" + +#: open-type-font.cc:54 +#, c-format +msgid "FreeType error: %s" +msgstr "FreeType エラー: %s" + +#: open-type-font.cc:115 +#, c-format +msgid "unsupported font format: %s" +msgstr "非対応のフォント形式: %s" + +#: open-type-font.cc:117 +#, fuzzy, c-format +msgid "error reading font file %s: %s" +msgstr "ファイルデスクリプタ %1 (%2)を読み込み中にエラー" + +#: open-type-font.cc:192 +#, c-format +msgid "FT_Get_Glyph_Name () Freetype error: %s" +msgstr "" + +#: open-type-font.cc:340 pango-font.cc:258 +#, c-format +msgid "FT_Get_Glyph_Name () error: %s" +msgstr "" + +#. find out the ideal number of pages +#: optimal-page-breaking.cc:62 +msgid "Finding the ideal number of pages..." +msgstr "理想的なページ数を見つけています..." + +#: optimal-page-breaking.cc:94 +msgid "could not satisfy systems-per-page and page-count at the same time, ignoring systems-per-page" +msgstr "" + +#: optimal-page-breaking.cc:114 +msgid "Fitting music on 1 page..." +msgstr "楽譜を 1 ページにしています..." + +#: optimal-page-breaking.cc:116 +#, fuzzy, c-format +msgid "Fitting music on %d pages..." +msgstr "楽譜を %d ページにしています..." + +#: optimal-page-breaking.cc:118 +#, c-format +msgid "Fitting music on %d or %d pages..." +msgstr "楽譜を %d または %d ページにしています..." + +#: optimal-page-breaking.cc:128 optimal-page-breaking.cc:181 +#, fuzzy, c-format +msgid "trying %d systems" +msgstr "ディレクトリ %s の試行中" + +#: optimal-page-breaking.cc:147 optimal-page-breaking.cc:209 +#, c-format +msgid "best score for this sys-count: %f" +msgstr "" + +#: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:249 +#: paper-score.cc:156 +msgid "Drawing systems..." +msgstr "描画しています..." + +#: output-def.cc:229 +msgid "margins do not fit with line-width, setting default values" +msgstr "" + +#: output-def.cc:236 +msgid "systems run off the page due to improper paper settings, setting default values" +msgstr "" + +#: page-breaking.cc:276 +msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set" +msgstr "" + +#: page-breaking.cc:281 +msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values" +msgstr "" + +#: page-breaking.cc:636 +#, c-format +msgid "page %d has been compressed" +msgstr "" -#: main.cc:379 -#, fuzzy, c-format -msgid "cannot change group id to: %d: %s" -msgstr "ID を root へ変更できません。\n" +#: page-layout-problem.cc:400 +msgid "A page layout problem has been initiated that cannot accommodate footnotes." +msgstr "" -#: main.cc:385 -#, fuzzy, c-format -msgid "cannot change user id to: %d: %s" -msgstr "ID を root へ変更できません。\n" +#: page-layout-problem.cc:729 +msgid "ragged-bottom was specified, but page must be compressed" +msgstr "" -#: main.cc:391 -#, fuzzy, c-format -msgid "cannot change working directory to: %s: %s" -msgstr "作業ディレクトリを '%s' に変更できません" +#: page-layout-problem.cc:732 +#, c-format +msgid "compressing over-full page by %.1f staff-spaces" +msgstr "" -#: main.cc:639 -#, fuzzy, c-format -msgid "exception caught: %s" -msgstr "シグナルを受け取りました" +#: page-layout-problem.cc:1197 +msgid "staff-affinities should only decrease" +msgstr "" -#: page-turn-page-breaking.cc:168 +#: page-turn-page-breaking.cc:169 #, fuzzy, c-format msgid "page-turn-page-breaking: breaking from %d to %d" msgstr "左から右に回転" -#: page-turn-page-breaking.cc:217 +#: page-turn-page-breaking.cc:218 msgid "cannot fit the first page turn onto a single page. Consider setting first-page-number to an even number." msgstr "" -#: page-turn-page-breaking.cc:230 +#: page-turn-page-breaking.cc:231 #, c-format msgid "Calculating page and line breaks (%d possible page breaks)..." msgstr "" -#: page-turn-page-breaking.cc:300 +#: page-turn-page-breaking.cc:301 #, c-format msgid "break starting at page %d" msgstr "" -#: page-turn-page-breaking.cc:301 +#: page-turn-page-breaking.cc:302 #, c-format msgid "\tdemerits: %f" msgstr "" -#: page-turn-page-breaking.cc:302 +#: page-turn-page-breaking.cc:303 #, fuzzy, c-format msgid "\tsystem count: %d" msgstr "合計数: " -#: page-turn-page-breaking.cc:303 +#: page-turn-page-breaking.cc:304 #, fuzzy, c-format msgid "\tpage count: %d" msgstr "合計数: " -#: page-turn-page-breaking.cc:304 +#: page-turn-page-breaking.cc:305 #, fuzzy, c-format msgid "\tprevious break: %d" msgstr "休憩時間:" -#: key-signature-interface.cc:77 -#, fuzzy, c-format -msgid "No glyph found for alteration: %s" -msgstr "“%s”用の失効鍵が見つかりません\n" - -#: key-signature-interface.cc:87 -#, fuzzy -msgid "alteration not found" -msgstr "ブラシ '%s' が見つかりません。" - -#: music.cc:150 +#: pango-font.cc:247 #, c-format -msgid "octave check failed; expected \"%s\", found: \"%s\"" +msgid "no glyph for character U+%0X in font `%s'" msgstr "" -#: music.cc:219 -#, fuzzy -msgid "(normalized pitch)" -msgstr "音の高さを変更" +#: pango-font.cc:274 +#, c-format +msgid "" +"Glyph has no name, but font supports glyph naming.\n" +"Skipping glyph U+%0X, file %s" +msgstr "" -#: music.cc:223 +#: pango-font.cc:324 #, fuzzy, c-format -msgid "Transposing %s by %s makes alteration larger than double" -msgstr "%s の変調によって、二つを超える派生音が作られました" +msgid "no PostScript font name for font `%s'" +msgstr "出力ファイル用の名前がありません" -#: vaticana-ligature.cc:95 -msgid "flexa-height undefined; assuming 0" +#: pango-font.cc:374 +msgid "FreeType face has no PostScript font name" msgstr "" -#: vaticana-ligature.cc:100 -msgid "ascending vaticana style flexa" +#: paper-book.cc:200 +#, c-format +msgid "program option -dprint-pages not supported by backend `%s'" msgstr "" -#: translator.cc:356 +#: paper-book.cc:219 #, c-format -msgid "Two simultaneous %s events, junking this one" +msgid "program option -dpreview not supported by backend `%s'" msgstr "" -#: translator.cc:357 -#, fuzzy, c-format -msgid "Previous %s event here" -msgstr "前の定義がここにありました" +#: paper-column-engraver.cc:263 +msgid "forced break was overridden by some other event, should you be using bar checks?" +msgstr "" -#: lily-guile.cc:93 +#: paper-outputter-scheme.cc:41 #, c-format -msgid "(load path: `%s')" -msgstr "(読込パス: `%s')" +msgid "Layout output to `%s'..." +msgstr "レイアウトを `%s' へ出力しています..." -#: lily-guile.cc:416 -#, c-format -msgid "cannot find property type-check for `%s' (%s)." -msgstr "" +#: paper-score.cc:128 +#, fuzzy, c-format +msgid "Element count %d (spanners %d) " +msgstr "ストリップのデータ量" -#: lily-guile.cc:419 -#, fuzzy -msgid "perhaps a typing error?" -msgstr "未知のシステムエラー" +#: paper-score.cc:132 +msgid "Preprocessing graphical objects..." +msgstr "グラフィカルオブジェクトの前処理中..." -#: lily-guile.cc:426 -#, fuzzy -msgid "doing assignment anyway" -msgstr "とにかくログイン" +#: parse-scm.cc:124 +msgid "GUILE signaled an error for the expression beginning here" +msgstr "" -#: lily-guile.cc:438 +#: pdf-scheme.cc:65 #, c-format -msgid "type check for `%s' failed; value `%s' must be of type `%s'" +msgid "Conversion of string `%s' to UTF-16be failed: %s" msgstr "" -#: text-spanner-engraver.cc:72 -#, fuzzy -msgid "cannot find start of text spanner" -msgstr "鈎の始点が見つかりません" - -#: text-spanner-engraver.cc:85 +#: percent-repeat-engraver.cc:148 #, fuzzy -msgid "already have a text spanner" -msgstr "リッチテキストドキュメント" +msgid "unterminated percent repeat" +msgstr "PINを再入力: " -#: text-spanner-engraver.cc:130 +#: performance.cc:76 #, fuzzy -msgid "unterminated text spanner" -msgstr "リッチテキストドキュメント" +msgid "Track..." +msgstr "トラックのピーク" -#: clef.cc:65 +#: performance.cc:126 #, fuzzy, c-format -msgid "clef `%s' not found" -msgstr "ブラシ '%s' が見つかりません。" - -#: beam-engraver.cc:147 -msgid "already have a beam" -msgstr "既に鈎があります" - -#: beam-engraver.cc:230 -msgid "unterminated beam" -msgstr "終端のない鈎" - -#: beam-engraver.cc:266 chord-tremolo-engraver.cc:149 -msgid "stem must have Rhythmic structure" -msgstr "符尾はリズム構造を持たねばなりません" - -#: beam-engraver.cc:277 -#, fuzzy -msgid "stem does not fit in beam" -msgstr "符尾が鈎の中におさまりません" - -#: beam-engraver.cc:278 -msgid "beam was started here" -msgstr "鈎はここから開始されました" +msgid "MIDI output to `%s'..." +msgstr "%s へ出力リダイレクトされました\n" -#. -#. Todo: should make typecheck? -#. -#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi. -#. -#: time-signature-engraver.cc:75 +#: piano-pedal-engraver.cc:279 #, fuzzy, c-format -msgid "strange time signature found: %d/%d" -msgstr "最初の拍子記号を変更する" - -#: paper-column-engraver.cc:261 -msgid "forced break was overridden by some other event, should you be using bar checks?" -msgstr "" +msgid "expect 3 strings for piano pedals, found: %ld" +msgstr "ピアノペダルの始点が見つかりません: `%s'" -#: lily-parser-scheme.cc:80 +#: piano-pedal-engraver.cc:294 piano-pedal-engraver.cc:305 +#: piano-pedal-performer.cc:104 #, fuzzy, c-format -msgid "Changing working directory to: `%s'" -msgstr "作業ディレクトリを '%s' に変更できません" +msgid "cannot find start of piano pedal: `%s'" +msgstr "ピアノペダルの始点が見つかりません: `%s'" -#: lily-parser-scheme.cc:84 +#: piano-pedal-engraver.cc:340 #, fuzzy, c-format -msgid "unable to change directory to: `%s'" -msgstr "ディレクトリーを %s に変更できません" +msgid "cannot find start of piano pedal bracket: `%s'" +msgstr "ピアノペダルの始点が見つかりません: `%s'" -#: lily-parser-scheme.cc:99 +#: program-option-scheme.cc:223 #, fuzzy, c-format -msgid "cannot find init file: `%s'" -msgstr " ヘルプファイルでノード %s を見付けることができません " - -#: lily-parser-scheme.cc:117 -#, c-format -msgid "Processing `%s'" -msgstr "`%s' を処理しています" +msgid "no such internal option: %s" +msgstr "そのユーザーIDはありません。\n" -#: lily-parser-scheme.cc:208 -msgid "ly:parser-parse-string is only valid with a new parser. Use ly:parser-include-string instead." -msgstr "" +#: property-iterator.cc:115 +#, fuzzy, c-format +msgid "not a grob name, `%s'" +msgstr "名前ファイルではありません" -#: lily-parser-scheme.cc:239 -msgid "ly:parse-string-expression is only valid with a new parser. Use ly:parser-include-string instead." -msgstr "" +#: relative-octave-check.cc:49 +#, fuzzy +msgid "Failed octave check, got: " +msgstr "シンボリックリンク %s のチェックに失敗しました: %s" -#: font-config-scheme.cc:167 -#, c-format -msgid "failed adding font file: %s" -msgstr "フォントファイルの追加に失敗しました: %s" +#: relocate.cc:56 +#, fuzzy, c-format +msgid "Setting %s to %s" +msgstr "ドメインを`%s'へ設定しました\n" -#: font-config-scheme.cc:169 -#, c-format -msgid "Adding font file: %s" -msgstr "フォントファイルを追加しています: %s" +#. this warning should only be printed in debug mode! +#: relocate.cc:77 +#, fuzzy, c-format +msgid "no such file: %s for %s" +msgstr "出力ファイル用の名前がありません" -#: custos.cc:88 +#. this warning should only be printed in debug mode! +#. this warning should only be printed in debug mode +#: relocate.cc:88 relocate.cc:106 #, fuzzy, c-format -msgid "custos `%s' not found" -msgstr "ブラシ '%s' が見つかりません。" +msgid "no such directory: %s for %s" +msgstr "そのようなファイルやディレクトリはありません" -#: accidental-engraver.cc:179 +#: relocate.cc:97 #, c-format -msgid "accidental typesetting list must begin with context-name: %s" +msgid "%s=%s (prepend)\n" msgstr "" -#: accidental-engraver.cc:209 +#: relocate.cc:124 #, c-format -msgid "procedure or context-name expected for accidental rule, found %s" -msgstr "" - -#: rest-collision.cc:146 -msgid "cannot resolve rest collision: rest direction not set" +msgid "not relocating, no %s/ or current/ found under %s" msgstr "" -#: rest-collision.cc:160 rest-collision.cc:276 -msgid "too many colliding rests" -msgstr "休符の衝突が多すぎます" - -#: pango-font.cc:205 +#: relocate.cc:134 #, c-format -msgid "" -"Glyph has no name, but font supports glyph naming.\n" -"Skipping glyph U+%0X, file %s" +msgid "Relocation: compile datadir=%s, new datadir=%s" msgstr "" -#: pango-font.cc:242 +#: relocate.cc:146 #, fuzzy, c-format -msgid "no PostScript font name for font `%s'" -msgstr "出力ファイル用の名前がありません" - -#: pango-font.cc:291 -msgid "FreeType face has no PostScript font name" -msgstr "" - -#: lyric-engraver.cc:186 -msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice." -msgstr "" - -#: page-breaking.cc:277 -msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set" -msgstr "" - -#: page-breaking.cc:282 -msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values" -msgstr "" +msgid "Relocation: framework_prefix=%s" +msgstr "おかしな名前空間の接頭子" -#: paper-outputter-scheme.cc:41 +#: relocate.cc:172 #, fuzzy, c-format -msgid "Layout output to `%s'..." -msgstr "%s へ出力リダイレクトされました\n" - -#: gregorian-ligature-engraver.cc:70 -#, c-format -msgid "\\%s ignored" -msgstr "\\%s を無視しました" +msgid "Relocation: is absolute: argv0=%s\n" +msgstr "ファイル名 \"%s\" は絶対パスではありません" -#: gregorian-ligature-engraver.cc:75 +#: relocate.cc:178 #, fuzzy, c-format -msgid "implied \\%s added" -msgstr "「追加済」を表示" - -#. ligature may not start with 2nd head of pes or flexa -#: gregorian-ligature-engraver.cc:224 -msgid "cannot apply `\\~' on first head of ligature" -msgstr "" - -#. (pitch == prev_pitch) -#: gregorian-ligature-engraver.cc:236 -msgid "cannot apply `\\~' on heads with identical pitch" -msgstr "" - -#: chord-tremolo-engraver.cc:88 -#, fuzzy -msgid "No tremolo to end" -msgstr "ファイルの末尾に追加" - -#: chord-tremolo-engraver.cc:109 -msgid "unterminated chord tremolo" -msgstr "終端のないコードトレモロ" +msgid "Relocation : from cwd: argv0=%s\n" +msgstr "このテキストレイヤーからパスを作成します" -#: general-scheme.cc:390 +#: relocate.cc:196 #, fuzzy, c-format -msgid "failed redirecting stderr to `%s'" -msgstr "" -"\n" -"%s を受信しました、%s に出力をリダイレクトします。\n" +msgid "" +"Relocation: from PATH=%s\n" +"argv0=%s\n" +msgstr "このテキストレイヤーからパスを作成します" -#: general-scheme.cc:469 -msgid "Found infinity or nan in output. Substituting 0.0" +#: relocate.cc:222 +msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR" msgstr "" -#: system.cc:200 +#: relocate.cc:347 #, fuzzy, c-format -msgid "Element count %d" -msgstr "合計数: " +msgid "Relocation file: %s" +msgstr "HTML ファイル (*.html)|*.html" -#: system.cc:466 +#: relocate.cc:351 source-file.cc:65 #, fuzzy, c-format -msgid "Grob count %d" -msgstr "合計数: " +msgid "cannot open file: `%s'" +msgstr " ファイル '%s' を開けません " -#: axis-group-engraver.cc:94 -msgid "Axis_group_engraver: vertical group already has a parent" -msgstr "" +#: relocate.cc:381 +#, fuzzy, c-format +msgid "Unknown relocation command %s" +msgstr "不明なビルトインコマンド '%s'\n" -#: axis-group-engraver.cc:95 -msgid "are there two Axis_group_engravers?" +#: rest-collision.cc:154 +msgid "cannot resolve rest collision: rest direction not set" msgstr "" -#: axis-group-engraver.cc:96 -#, fuzzy -msgid "removing this vertical group" -msgstr "このグループには %d 個のパッケージが含まれています。" +#: rest-collision.cc:165 rest-collision.cc:274 +msgid "too many colliding rests" +msgstr "休符の衝突が多すぎます" -#: cluster.cc:120 +#: rest.cc:239 #, fuzzy, c-format -msgid "unknown cluster style `%s'" -msgstr "名前復元 (demangle) の方式 `%s' が不明です" - -#: cluster.cc:157 -#, fuzzy -msgid "junking empty cluster" -msgstr "警告: $PATH が定義されていません" +msgid "rest `%s' not found" +msgstr "ブラシ '%s' が見つかりません。" -#: grob-property.cc:35 -#, c-format -msgid "%d: %s" -msgstr "" +#: score-engraver.cc:77 +#, fuzzy, c-format +msgid "cannot find `%s'" +msgstr "見つかりません: `%s'" -#: rest-collision-engraver.cc:70 -msgid "rhythmic head is not part of a rhythmic column" +#: score-engraver.cc:79 +msgid "Music font has not been installed properly." msgstr "" -#: axis-group-interface.cc:670 -msgid "an outside-staff object should have a direction, defaulting to up" -msgstr "" +#: score-engraver.cc:81 +#, fuzzy, c-format +msgid "Search path `%s'" +msgstr "検索パス : %s\n" -#: coherent-ligature-engraver.cc:110 -#, c-format -msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul" -msgstr "" +#: score-engraver.cc:83 +msgid "Aborting" +msgstr "終了します" -#. We are completely screwed. -#: beam-quanting.cc:853 -msgid "no viable initial configuration found: may not find good beam slope" -msgstr "" +#: score.cc:161 +#, fuzzy +msgid "already have music in score" +msgstr "%s は設定ファイルの中に既に存在しています\n" -#: percent-repeat-engraver.cc:147 +#: score.cc:163 #, fuzzy -msgid "unterminated percent repeat" -msgstr "PINを再入力: " +msgid "this is the previous music" +msgstr "このメッセージは未翻訳です" -#: note-head.cc:85 -#, c-format -msgid "none of note heads `%s' or `%s' found" -msgstr "" +#: score.cc:169 +#, fuzzy +msgid "errors found, ignoring music expression" +msgstr "エラーを発見/*, 楽譜を処理しません*/" #. FIXME: -#: script-engraver.cc:113 +#: script-engraver.cc:115 #, fuzzy msgid "do not know how to interpret articulation:" msgstr "音節 `%s' の解釈方法が判りません" -#: script-engraver.cc:114 +#: script-engraver.cc:116 #, fuzzy msgid " scheme encoding: " msgstr "不明なエンコーディング。" -#: program-option-scheme.cc:235 -#, fuzzy, c-format -msgid "no such internal option: %s" -msgstr "そのユーザーIDはありません。\n" +#: skyline-pair.cc:135 +msgid "direction must not be CENTER in ly:skyline-pair::skyline" +msgstr "" -#: property-iterator.cc:93 +#: slur-proto-engraver.cc:51 #, fuzzy, c-format -msgid "not a grob name, `%s'" -msgstr "名前ファイルではありません" +msgid "direction of %s invalid: %d" +msgstr "無効な方向 -- %s\n" -#: all-font-metrics.cc:149 +#. We already have an old slur, so give a warning +#. and completely ignore the new slur. +#: slur-proto-engraver.cc:166 #, fuzzy, c-format -msgid "cannot find font: `%s'" -msgstr "ディレクトリ %s が見つかりません\n" +#| msgid "already have slur" +msgid "already have %s" +msgstr "スラーを既に開始しています" -#: pdf-scheme.cc:50 +#: slur-proto-engraver.cc:183 #, c-format -msgid "Conversion of string `%s' to UTF-16be failed: %s" +msgid "%s without a cause" msgstr "" -#: rest.cc:171 +#: slur-proto-engraver.cc:244 #, fuzzy, c-format -msgid "rest `%s' not found" -msgstr "ブラシ '%s' が見つかりません。" +#| msgid "cannot end slur" +msgid "cannot end %s" +msgstr "スラーを終了できません" -#: bar-check-iterator.cc:84 +#: slur.cc:436 #, c-format -msgid "barcheck failed at: %s" -msgstr "小節チェックが失敗: %s" +msgid "Ignoring grob for slur: %s. avoid-slur not set?" +msgstr "" -#: slur-engraver.cc:92 phrasing-slur-engraver.cc:91 +#: source-file.cc:85 #, fuzzy, c-format -msgid "direction of %s invalid: %d" -msgstr "無効な方向 -- %s\n" - -#: slur-engraver.cc:166 -msgid "unterminated slur" -msgstr "終端されていないスラー" +msgid "expected to read %d characters, got %d" +msgstr "" +"読み込むファイルまたは\n" +"使用する文字列" -#: slur-engraver.cc:191 -msgid "cannot end slur" -msgstr "スラーを終了できません" +#: staff-performer.cc:301 +msgid "MIDI channel wrapped around" +msgstr "" -#. We already have a slur, so give a warning and completely ignore -#. the new slur. -#: slur-engraver.cc:208 -msgid "already have slur" -msgstr "スラーを既に開始しています" +#: staff-performer.cc:302 +#, fuzzy +msgid "remapping modulo 16" +msgstr "Functionキー 16" -#: global-context-scheme.cc:96 global-context-scheme.cc:114 +#: stem-engraver.cc:100 #, fuzzy -msgid "no music found in score" -msgstr " %s に特定のエントリーは見つかりませんでした " +msgid "tremolo duration is too long" +msgstr "diversion パスが長すぎます" + +#: stem-engraver.cc:152 +#, fuzzy, c-format +msgid "adding note head to incompatible stem (type = %d/%d)" +msgstr "矛盾した符尾へ符頭を追加します (タイプ = %d)" + +#: stem-engraver.cc:155 +msgid "maybe input should specify polyphonic voices" +msgstr "" -#: global-context-scheme.cc:104 +#: stem.cc:128 #, fuzzy -msgid "Interpreting music... " -msgstr "%s %s 楽曲プレイヤ" +msgid "weird stem size, check for narrow beams" +msgstr "変な符尾のサイズ -- 細い鈎のチェックをして下さい" -#: global-context-scheme.cc:126 -#, c-format -msgid "elapsed time: %.2f seconds" -msgstr "経過時間: %.2f 秒" +#: system.cc:202 +#, fuzzy, c-format +msgid "Element count %d" +msgstr "合計数: " -#: translator-group-ctors.cc:40 +#: system.cc:513 +#, fuzzy, c-format +msgid "Grob count %d" +msgstr "合計数: " + +#. TODO: Also print the arguments of the markup! +#: text-interface.cc:139 #, c-format -msgid "fatal error. Couldn't find type: %s" +msgid "Markup depth exceeds maximal value of %d; Markup: %s" msgstr "" -#: phrasing-slur-engraver.cc:165 +#: text-spanner-engraver.cc:72 #, fuzzy -msgid "unterminated phrasing slur" -msgstr "スラーを終了できません" +msgid "cannot find start of text spanner" +msgstr "鈎の始点が見つかりません" -#: phrasing-slur-engraver.cc:190 +#: text-spanner-engraver.cc:85 #, fuzzy -msgid "cannot end phrasing slur" -msgstr "スラーの中に別のスラーを含むことはできません" +msgid "already have a text spanner" +msgstr "リッチテキストドキュメント" -#: phrasing-slur-engraver.cc:204 +#: text-spanner-engraver.cc:130 #, fuzzy -msgid "already have phrasing slur" -msgstr "スラーを終了できません" - -#: lily-parser.cc:109 -msgid "Parsing..." -msgstr "構文解析中..." +msgid "unterminated text spanner" +msgstr "リッチテキストドキュメント" -#: score.cc:176 +#: tie-engraver.cc:121 #, fuzzy -msgid "already have music in score" -msgstr "%s は設定ファイルの中に既に存在しています\n" +msgid "unterminated tie" +msgstr "タイの切替え" -#: score.cc:177 -#, fuzzy -msgid "this is the previous music" -msgstr "このメッセージは未翻訳です" +#: tie-engraver.cc:377 +msgid "lonely tie" +msgstr "一つだけのタイ" -#: score.cc:182 -#, fuzzy -msgid "errors found, ignoring music expression" -msgstr "エラーを発見/*, 楽譜を処理しません*/" +#. +#. Todo: should make typecheck? +#. +#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi. +#. +#: time-signature-engraver.cc:95 +#, fuzzy, c-format +msgid "strange time signature found: %d/%d" +msgstr "最初の拍子記号を変更する" + +#: translator-ctors.cc:68 +#, c-format +msgid "unknown translator: `%s'" +msgstr "判らないトランスレータ: `%s'" -#. If there is no such symbol, we default to the numbered style. -#. (Here really with a warning!) -#: time-signature.cc:94 +#: translator-group-ctors.cc:40 #, c-format -msgid "time signature symbol `%s' not found; reverting to numbered style" +msgid "fatal error. Couldn't find type: %s" msgstr "" -#: grob-interface.cc:68 +#: translator-group.cc:187 #, c-format -msgid "Unknown interface `%s'" -msgstr "`%s' は未知のインタフェースです" +msgid "cannot find: `%s'" +msgstr "見つかりません: `%s'" -#: grob-interface.cc:79 +#: translator.cc:310 #, c-format -msgid "Grob `%s' has no interface for property `%s'" +msgid "Two simultaneous %s events, junking this one" msgstr "" -#: midi-stream.cc:39 +#: translator.cc:311 #, fuzzy, c-format -msgid "cannot open for write: %s: %s" -msgstr "%s を読み書きモードで開けません\n" +msgid "Previous %s event here" +msgstr "前の定義がここにありました" -#: midi-stream.cc:55 -#, fuzzy, c-format -msgid "cannot write to file: `%s'" +#: ttf.cc:480 ttf.cc:528 +#, c-format +msgid "font index %d too large for font `%s', using index 0" msgstr "" -"ファイル %s に書き込めません:\n" -"%s\n" -#. TODO: Also print the arguments of the markup! -#: text-interface.cc:129 -#, fuzzy, c-format -msgid "Cyclic markup detected: %s" -msgstr "自動検出ボリューム" +#: ttf.cc:512 ttf.cc:562 +msgid "font index must be non-negative, using index 0" +msgstr "" -#. TODO: Also print the arguments of the markup! -#: text-interface.cc:142 +#: tuplet-engraver.cc:110 +#, fuzzy +msgid "No tuplet to end" +msgstr "ファイルの末尾に追加" + +#: vaticana-ligature-engraver.cc:400 #, c-format -msgid "Markup depth exceeds maximal value of %d; Markup: %s" +msgid "ignored prefix(es) `%s' of this head according to restrictions of the selected ligature style" +msgstr "" + +#: vaticana-ligature-engraver.cc:466 +msgid "Ambiguous use of dots in ligature: there are multiple dotted notes with the same pitch. The ligature should be split." +msgstr "" + +#: vaticana-ligature-engraver.cc:524 +msgid "This ligature has a dotted head followed by a non-dotted head. The ligature should be split after the last dotted head before this head." +msgstr "" + +#: vaticana-ligature-engraver.cc:736 +#, c-format +msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul" +msgstr "" + +#: vaticana-ligature.cc:94 +msgid "flexa-height undefined; assuming 0" +msgstr "" + +#: vaticana-ligature.cc:99 +msgid "ascending vaticana style flexa" +msgstr "" + +#: vertical-align-engraver.cc:95 +msgid "Ignoring Vertical_align_engraver in VerticalAxisGroup" +msgstr "" + +#. fixme: be more verbose. +#: volta-engraver.cc:110 +#, fuzzy +msgid "cannot end volta spanner" +msgstr "%s: 省略記号の範囲の終わりに`%s'がありません" + +#: volta-engraver.cc:120 +msgid "already have a volta spanner, ending that one prematurely" msgstr "" -#: parser.yy:162 parser.yy:176 +#: volta-engraver.cc:124 +#, fuzzy +msgid "also already have an ended spanner" +msgstr "既に鈎があります" + +#: volta-engraver.cc:125 #, fuzzy -msgid "Too much lookahead" -msgstr "アドレスファミリの引数が多すぎます.\n" +msgid "giving up" +msgstr "" +"中止しました。\n" +"\n" + +#: parser.yy:476 parser.yy:947 parser.yy:1028 parser.yy:1248 +msgid "bad expression type" +msgstr "" -#: parser.yy:827 parser.yy:1193 parser.yy:1226 +#: parser.yy:859 parser.yy:1458 parser.yy:1503 #, fuzzy msgid "not a context mod" msgstr "有効なセキュリティコンテキストでありません" -#: parser.yy:995 -msgid "\\paper cannot be used in \\score, use \\layout instead" +#: parser.yy:1054 +#, fuzzy +msgid "Missing music in \\score" +msgstr " %s に特定のエントリーは見つかりませんでした " + +#: parser.yy:1091 +msgid "\\paper cannot be used in \\score, use \\layout instead" +msgstr "" + +#: parser.yy:1126 +msgid "Spurious expression in \\score" +msgstr "" + +#: parser.yy:1156 +#, fuzzy +msgid "need \\paper for paper block" +msgstr "まばらな (sparse) ファイルのブロックサイズ" + +#: parser.yy:1331 +#, fuzzy +msgid "music expected" +msgstr "コロンを期待しました" + +#: parser.yy:1341 parser.yy:1375 +#, fuzzy +#| msgid "unimplemented MIDI meta-event" +msgid "unexpected post-event" +msgstr "未実装の MIDI メタイベント" + +#: parser.yy:1383 +#, fuzzy +msgid "Ignoring non-music expression" +msgstr "エラーを発見/*, 楽譜を処理しません*/" + +#: parser.yy:1691 +msgid "not a symbol" msgstr "" -#: parser.yy:1019 -#, fuzzy -msgid "need \\paper for paper block" -msgstr "まばらな (sparse) ファイルのブロックサイズ" +#: parser.yy:2491 parser.yy:2605 parser.yy:2618 parser.yy:2627 +msgid "bad grob property path" +msgstr "" -#: parser.yy:1943 -msgid "only \\consists takes non-string argument." +#: parser.yy:2585 +msgid "only \\consists and \\remove take non-string argument." msgstr "" -#: parser.yy:1956 -msgid "Grob name should be alphanumeric" +#: parser.yy:2646 +msgid "bad context property path" msgstr "" -#: parser.yy:2150 +#: parser.yy:2733 +#, fuzzy +msgid "simple string expected" +msgstr "コロンを期待しました" + +#: parser.yy:2750 +#, fuzzy +msgid "symbol expected" +msgstr "コロンを期待しました" + +#: parser.yy:2886 #, fuzzy msgid "not a rhythmic event" msgstr "MIDI イベントコントローラ" -#: parser.yy:2246 parser.yy:2251 +#: parser.yy:2936 +msgid "post-event expected" +msgstr "" + +#: parser.yy:2945 parser.yy:2950 #, fuzzy msgid "have to be in Lyric mode for lyrics" msgstr "歌詞は Lyric モード内に書いてください" -#: parser.yy:2366 -msgid "expecting string as script definition" +#: parser.yy:3026 +msgid "expecting string or post-event as script definition" msgstr "" -#: parser.yy:2518 parser.yy:2569 -#, c-format -msgid "not a duration: %d" +#: parser.yy:3130 +#, fuzzy +#| msgid "not a duration: %d" +msgid "not an articulation" msgstr "音長ではありません: %d" -#: parser.yy:2688 +#: parser.yy:3202 parser.yy:3245 +#, fuzzy +#| msgid "not a duration: %d" +msgid "not a duration" +msgstr "音長ではありません: %d" + +#: parser.yy:3266 +#, fuzzy +msgid "bass number expected" +msgstr "コロンを期待しました" + +#: parser.yy:3358 #, fuzzy msgid "have to be in Note mode for notes" msgstr "音符は Note モード内に書いてください" -#: parser.yy:2737 +#: parser.yy:3397 #, fuzzy msgid "have to be in Chord mode for chords" msgstr "コードは Chord モード内に書いてください" -#: parser.yy:2997 +#: parser.yy:3440 +msgid "markup outside of text script or \\lyricmode" +msgstr "" + +#: parser.yy:3445 +msgid "unrecognized string, not in text script or \\lyricmode" +msgstr "" + +#: parser.yy:3597 parser.yy:3606 +msgid "not an unsigned integer" +msgstr "" + +#: parser.yy:3693 msgid "not a markup" msgstr "マークアップではありません" -#: lexer.ll:225 +#: lexer.ll:193 msgid "stray UTF-8 BOM encountered" msgstr "" -#: lexer.ll:228 +#: lexer.ll:196 msgid "Skipping UTF-8 BOM" msgstr "UTF-8 の BOM をスキップします" -#: lexer.ll:286 +#: lexer.ll:248 #, c-format msgid "Renaming input to: `%s'" msgstr "入力の名前を `%s' に変更します" -#: lexer.ll:303 +#: lexer.ll:265 #, fuzzy msgid "quoted string expected after \\version" msgstr "警告: 文法エラー, 文字列の後には ';'" -#: lexer.ll:307 +#: lexer.ll:269 #, fuzzy msgid "quoted string expected after \\sourcefilename" msgstr "警告: 文法エラー, 文字列の後には ';'" -#: lexer.ll:311 +#: lexer.ll:273 #, fuzzy msgid "integer expected after \\sourcefileline" msgstr "-q= の後に番号が期待されますが、%s が与えられました\n" -#: lexer.ll:334 +#: lexer.ll:300 #, fuzzy msgid "\\maininput not allowed outside init files" msgstr "初期化ファイルの外では \\maininput を記述できません" -#: lexer.ll:358 +#: lexer.ll:324 #, fuzzy, c-format msgid "wrong or undefined identifier: `%s'" msgstr "定数または識別子が適当です" -#: lexer.ll:384 +#: lexer.ll:349 msgid "string expected after \\include" msgstr "\\include の後には文字列が必要です" -#. backup rule -#: lexer.ll:394 +#: lexer.ll:359 msgid "end quote missing" msgstr "終端の引用符がありません" -#: lexer.ll:556 -msgid "Brace found at end of lyric. Did you forget a space?" -msgstr "" - -#: lexer.ll:671 -msgid "Brace found at end of markup. Did you forget a space?" -msgstr "" - -#: lexer.ll:683 +#: lexer.ll:714 msgid "EOF found inside a comment" msgstr "コメント内に EOF が見つかりました" -#: lexer.ll:775 +#: lexer.ll:719 +#, fuzzy +#| msgid "EOF found inside a comment" +msgid "EOF found inside string" +msgstr "コメント内に EOF が見つかりました" + +#: lexer.ll:734 +#, fuzzy +#| msgid "unfinished beam" +msgid "Unfinished main input" +msgstr "終了されていない鈎" + +#: lexer.ll:805 #, c-format msgid "invalid character: `%s'" msgstr "無効な文字: `%s'" -#: lexer.ll:868 lexer.ll:869 +#: lexer.ll:925 #, c-format msgid "unknown escaped string: `\\%s'" msgstr "未知のエスケープ文字列: `\\%s'" -#: lexer.ll:1117 lexer.ll:1118 +#: lexer.ll:945 +#, fuzzy, c-format +#| msgid "can't find character called: `%s'" +msgid "undefined character or shorthand: %s" +msgstr "呼び出された文字が見つかりません: `%s'" + +#: lexer.ll:1236 #, fuzzy msgid "non-UTF-8 input" msgstr " INPUTFILE ... 入力ファイル\n" -#: lexer.ll:1161 lexer.ll:1162 +#: lexer.ll:1280 +#, fuzzy, c-format +msgid "Invalid version string \"%s\"" +msgstr "文字列 '%s' は有効な長さではありません。\n" + +#: lexer.ll:1285 #, c-format msgid "file too old: %s (oldest supported: %s)" msgstr "" -#: lexer.ll:1162 lexer.ll:1163 +#: lexer.ll:1286 msgid "consider updating the input with the convert-ly script" msgstr "" -#: lexer.ll:1168 lexer.ll:1169 +#: lexer.ll:1292 #, c-format msgid "program too old: %s (file requires: %s)" msgstr "" -#: parser-clef.scm:141 parser-clef.scm:181 +#: auto-beam.scm:147 +msgid "Beam end fits no pattern" +msgstr "" + +#: backend-library.scm:27 #, fuzzy, scheme-format -msgid "unknown clef type `~a'" -msgstr "ファイルタイプが不明です" +msgid "Invoking `~a'..." +msgstr "PGP 起動中..." -#: parser-clef.scm:142 parser-clef.scm:182 +#: backend-library.scm:31 #, fuzzy, scheme-format -msgid "supported clefs: ~a" -msgstr "サポートしていません" +msgid "`~a' failed (~a)\n" +msgstr "失敗" + +#: backend-library.scm:108 +#, scheme-format +msgid "Converting to `~a'...\n" +msgstr "`~a' へ変換しています...\n" + +#. Do not try to guess the name of the png file, +#. GS produces PNG files like BASE-page%d.png. +#: backend-library.scm:118 +#, scheme-format +msgid "Converting to ~a..." +msgstr "~a へ変換しています..." + +#: backend-library.scm:134 +#, scheme-format +msgid "Copying to `~a'...\n" +msgstr "`~a' へコピーしています...\n" -#: document-backend.scm:132 +#: backend-library.scm:200 +#, scheme-format +msgid "Deleting `~a'...\n" +msgstr "`~a' を削除しています...\n" + +#: backend-library.scm:219 #, fuzzy, scheme-format -msgid "pair expected in doc ~s" -msgstr "種類 (%s と %s) のペアを期待しましたが、得られたのは種類 (%s と %s) です" +msgid "Writing header field `~a' to `~a'..." +msgstr "Contents ファイルへのヘッダの書き込み中にエラーが発生しました" -#: document-backend.scm:189 +#: backend-library.scm:268 #, fuzzy, scheme-format -msgid "cannot find interface for property: ~S" -msgstr "'%s' の属性のハッシュを書き込めません" +msgid "missing stencil expression `~S'" +msgstr "マジック(識別鍵)モード式が欠けています" + +#: bar-line.scm:133 +#, scheme-format +msgid "Bar glyph ~a not known. Ignoring." +msgstr "" + +#: bar-line.scm:161 +#, scheme-format +msgid "Annotation '~a' is allowed in the first argument of a bar line definition only." +msgstr "" -#: document-backend.scm:199 +#: bar-line.scm:169 +#, scheme-format +msgid "Replacement '~a' is allowed in the last argument of a bar line definition only." +msgstr "" + +#: bar-line.scm:230 +#, scheme-format +msgid "add-bar-glyph-print-procedure: glyph '~a' has to be a single ASCII character." +msgstr "" + +#: bar-line.scm:795 +#, scheme-format +msgid "No span bar glyph defined for bar glyph '~a'; ignoring." +msgstr "" + +#: chord-entry.scm:52 +#, scheme-format +msgid "Spurious garbage following chord: ~A" +msgstr "" + +#: define-context-properties.scm:31 define-grob-properties.scm:21 +#: define-music-properties.scm:21 #, fuzzy, scheme-format -msgid "unknown Grob interface: ~S" -msgstr "XUL インターフェイスドキュメント" +msgid "symbol ~S redefined" +msgstr "シンボル %s が再定義されました" -#: graphviz.scm:64 +#: define-event-classes.scm:74 #, fuzzy, scheme-format -msgid "Writing graph `~a'..." -msgstr "\"%s\" を書き込み中にエラーが発生しました" +msgid "unknown parent class `~a'" +msgstr "未知の署名クラスです" -#: parser-ly-from-scheme.scm:71 -#, fuzzy -msgid "error in #{ ... #}" -msgstr "「%s」でエラー: %s\n" +#: define-event-classes.scm:108 +#, fuzzy, scheme-format +msgid "Cannot redefine event class `~S'" +msgstr "未知の署名クラスです" -#: framework-eps.scm:108 +#: define-event-classes.scm:110 #, fuzzy, scheme-format -msgid "Writing ~a..." -msgstr "%s 書き込み中..." +msgid "Undefined parent event class `~S'" +msgstr "未知の署名クラスです" -#: output-ps.scm:48 -msgid "Found infinity or nan in output. Substituting 0.0" +#: define-markup-commands.scm:1098 +msgid "no systems found in \\score markup, does it have a \\layout block?" msgstr "" -#: output-ps.scm:313 output-svg.scm:556 +#: define-markup-commands.scm:2922 #, fuzzy, scheme-format -msgid "unknown line-cap-style: ~S" -msgstr "改行文字形式が一貫していません" +msgid "Cannot find glyph ~a" +msgstr "ディレクトリ %s が見つかりません\n" + +#: define-markup-commands.scm:3398 +#, scheme-format +msgid "no brace found for point size ~S " +msgstr "" -#: output-ps.scm:318 output-svg.scm:562 +#: define-markup-commands.scm:3399 #, fuzzy, scheme-format -msgid "unknown line-join-style: ~S" -msgstr "改行文字形式が一貫していません" +msgid "defaulting to ~S pt" +msgstr "%{エラーです。デフォルトを使います%}C" -#: paper.scm:120 -msgid "set-global-staff-size: not in toplevel scope" -msgstr "" +#: define-markup-commands.scm:3643 +#, fuzzy, scheme-format +msgid "not a valid duration string: ~a" +msgstr "文字列 '%s' は有効な長さではありません。\n" -#: paper.scm:304 +#: define-markup-commands.scm:3854 #, fuzzy, scheme-format -msgid "This is not a \\layout {} object, ~S" -msgstr "エラー: %s() の 第%d引数がオブジェクトではありません\n" +msgid "not a valid duration string: ~a - ignoring" +msgstr "文字列 '%s' は有効な長さではありません。\n" -#: paper.scm:316 +#: define-music-types.scm:803 #, fuzzy, scheme-format -msgid "Unknown paper size: ~a" -msgstr "用紙のサイズ '%s' を認識できません (デフォルトを使用します)\n" +msgid "symbol expected: ~S" +msgstr "コロンを期待しました" -#. TODO: should raise (generic) exception with throw, and catch -#. that in parse-scm.cc -#: paper.scm:331 -msgid "Must use #(set-paper-size .. ) within \\paper { ... }" +#: define-music-types.scm:806 +#, fuzzy, scheme-format +msgid "cannot find music object: ~S" +msgstr "%s が共有オブジェクト %s に存在しません: %s" + +#: define-music-types.scm:826 +#, scheme-format +msgid "bad make-music argument: ~S" msgstr "" -#: backend-library.scm:27 -#, fuzzy, scheme-format -msgid "Invoking `~a'..." -msgstr "PGP 起動中..." +#: define-note-names.scm:1000 +#, fuzzy +msgid "Select note names language." +msgstr "言語のコードを選択してください:" -#: backend-library.scm:31 +#: define-note-names.scm:1006 #, fuzzy, scheme-format -msgid "`~a' failed (~a)\n" -msgstr "失敗" +msgid "Using `~a' note names..." +msgstr "パッケージ名総数: " -#: backend-library.scm:90 +#: define-note-names.scm:1009 #, fuzzy, scheme-format -msgid "Converting to `~a'...\n" -msgstr "%s から %s へ変換しています..." +msgid "Could not find language `~a'. Ignoring." +msgstr "マスター・ブラウザが見つかりませんでした" -#. Do not try to guess the name of the png file, -#. GS produces PNG files like BASE-page%d.png. -#: backend-library.scm:99 +#: document-backend.scm:135 #, fuzzy, scheme-format -msgid "Converting to ~a..." -msgstr "%s から %s へ変換しています..." +msgid "pair expected in doc ~s" +msgstr "種類 (%s と %s) のペアを期待しましたが、得られたのは種類 (%s と %s) です" -#: backend-library.scm:137 +#: document-backend.scm:202 #, fuzzy, scheme-format -msgid "Writing header field `~a' to `~a'..." -msgstr "Contents ファイルへのヘッダの書き込み中にエラーが発生しました" +msgid "cannot find interface for property: ~S" +msgstr "'%s' の属性のハッシュを書き込めません" -#: backend-library.scm:187 +#: document-backend.scm:212 #, fuzzy, scheme-format -msgid "missing stencil expression `~S'" -msgstr "マジック(識別鍵)モード式が欠けています" +msgid "unknown Grob interface: ~S" +msgstr "XUL インターフェイスドキュメント" -#: output-svg.scm:47 +#: documentation-lib.scm:62 #, fuzzy, scheme-format -msgid "undefined: ~S" -msgstr "名前なし" +msgid "Processing ~S..." +msgstr "処理中..." -#: output-svg.scm:157 -#, scheme-format -msgid "cannot decypher Pango description: ~a" -msgstr "" +#: documentation-lib.scm:178 +#, fuzzy, scheme-format +msgid "Writing ~S..." +msgstr "%s 書き込み中..." -#: output-svg.scm:237 -#, fuzzy -msgid "Glyph must have a unicode value" -msgstr "" -"\n" -"%s.%s: 値は boolean でなければなりません\n" +#: documentation-lib.scm:190 +#, fuzzy, scheme-format +msgid "cannot find description for property `~S' (~S)" +msgstr "'%s' の属性のハッシュを書き込めません" -#: output-svg.scm:289 output-svg.scm:299 +#: documentation-lib.scm:211 #, fuzzy, scheme-format -msgid "cannot find SVG font ~S" -msgstr "'%s' の URL が見つかりません" +msgid "cannot find description for property ~S (~S)" +msgstr "'%s' の属性のハッシュを書き込めません" -#: flag-styles.scm:151 +#: flag-styles.scm:155 #, fuzzy, scheme-format msgid "flag stroke `~a' or `~a' not found" msgstr "'%s' が PATH 上に見つからないか実行可能になっていません。" -#: modal-transforms.scm:38 -msgid "'from' pitch not in scale; ignoring" +#: framework-eps.scm:112 +#, fuzzy, scheme-format +msgid "Writing ~a..." +msgstr "%s 書き込み中..." + +#: framework-ps.scm:281 +#, fuzzy, scheme-format +msgid "cannot embed ~S=~S" +msgstr "%s: %s: stat できません: %s\n" + +#: framework-ps.scm:324 +#, fuzzy, scheme-format +msgid "cannot extract file matching ~a from ~a" +msgstr "RPM ファイルからカタログを抽出できません。" + +#: framework-ps.scm:342 +#, scheme-format +msgid "do not know how to embed ~S=~S" msgstr "" -#: modal-transforms.scm:42 modal-transforms.scm:75 -msgid "'to' pitch not in scale; ignoring" +#: framework-ps.scm:367 +#, scheme-format +msgid "do not know how to embed font ~s ~s ~s" msgstr "" -#: modal-transforms.scm:46 -msgid "pitch to be transposed not in scale; ignoring" +#: framework-ps.scm:723 +msgid "" +"\n" +"The PostScript backend does not support the\n" +"system-by-system output. For that, use the EPS backend instead,\n" +"\n" +" lilypond -dbackend=eps FILE\n" +"\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" msgstr "" -#: modal-transforms.scm:71 -msgid "'around' pitch not in scale; ignoring" +#: framework-svg.scm:84 +#, fuzzy, scheme-format +msgid "Updating font into: ~a" +msgstr "選択範囲内に貼り付け(_I)" + +#: graphviz.scm:64 +#, fuzzy, scheme-format +msgid "Writing graph `~a'..." +msgstr "\"%s\" を書き込み中にエラーが発生しました" + +#: layout-beam.scm:40 +#, scheme-format +msgid "Error in beam quanting. Expected (~S,~S) found ~S." msgstr "" -#: modal-transforms.scm:79 -msgid "pitch to be inverted not in scale; ignoring" +#: layout-beam.scm:54 +#, scheme-format +msgid "Error in beam quanting. Expected ~S 0, found ~S." msgstr "" -#: modal-transforms.scm:95 -msgid "negative replication count; ignoring" +#: lily-library.scm:333 +msgid "Music unsuitable for context-mod" +msgstr "" + +#: lily-library.scm:388 +#, fuzzy, scheme-format +msgid "Cannot find context-def \\~a" +msgstr "実効ユーザID を %ld に変更できません: %s\n" + +#: lily-library.scm:404 +msgid "Music unsuitable for output-def" msgstr "" -#: to-xml.scm:191 -#, fuzzy, scheme-format -msgid "assertion failed: ~S" -msgstr "malloc: 失敗したアサーション: %s\n" +#: lily-library.scm:904 +msgid "" +"Find the index between @var{start} and @var{end} (an integer)\n" +"which produces the closest match to @var{target-val} if\n" +"applied to function @var{getter}." +msgstr "" -#: define-grob-properties.scm:21 define-context-properties.scm:31 -#: define-music-properties.scm:21 +#: lily-library.scm:998 #, fuzzy, scheme-format -msgid "symbol ~S redefined" -msgstr "シンボル %s が再定義されました" +msgid "unknown unit: ~S" +msgstr "単位の編集" -#: chord-entry.scm:52 +#: lily-library.scm:1023 #, scheme-format -msgid "Spurious garbage following chord: ~A" +msgid "no \\version statement found, please add~afor future compatibility" +msgstr "\\version 宣言がみつかりません, 将来の互換性のために~aを追加してください" + +#: lily.scm:93 +msgid "call-after-session used after session start" +msgstr "" + +#: lily.scm:111 +msgid "define-session used after session start" msgstr "" -#: lily.scm:234 +#: lily.scm:417 msgid "Using (ice-9 curried-definitions) module\n" msgstr "" -#: lily.scm:237 +#: lily.scm:420 msgid "Guile 1.8\n" msgstr "" -#: lily.scm:297 +#: lily.scm:477 #, fuzzy, scheme-format msgid "cannot find: ~A" msgstr "見つかりません: `%s'" -#: lily.scm:701 -#, fuzzy +#: lily.scm:903 msgid "Success: compilation successfully completed" -msgstr "全ての操作が無事完了しました" +msgstr "成功: コンパイルが正常に完了しました" -#: lily.scm:702 +#: lily.scm:904 msgid "Compilation completed with warnings or errors" -msgstr "" +msgstr "コンパイルが警告またはエラーで終了しました" -#: lily.scm:764 +#: lily.scm:965 #, fuzzy, scheme-format msgid "job ~a terminated with signal: ~a" msgstr "サーバへの接続開始前に実行したコマンドがシグナル %d で終了しました\n" -#: lily.scm:767 +#: lily.scm:968 #, fuzzy, scheme-format msgid "" "logfile ~a (exit ~a):\n" "~a" msgstr " 終了を確認(&E) " -#: lily.scm:789 lily.scm:869 +#: lily.scm:990 lily.scm:1079 #, fuzzy, scheme-format msgid "failed files: ~S" msgstr "ファイルの追加" -#: lily.scm:860 +#: lily.scm:1070 #, fuzzy, scheme-format msgid "Redirecting output to ~a..." msgstr "" "\n" "%s を受信しました、%s に出力をリダイレクトします。\n" -#: lily.scm:879 ps-to-png.scm:66 +#: lily.scm:1089 #, fuzzy, scheme-format msgid "Invoking `~a'...\n" msgstr "PGP 起動中..." -#: lily-library.scm:761 -msgid "" -"Find the index between @var{start} and @var{end} (an integer)\n" -"which produces the closest match to @var{target-val} if\n" -"applied to function @var{getter}." -msgstr "" - -#: lily-library.scm:835 +#: ly-syntax-constructors.scm:27 #, fuzzy, scheme-format -msgid "unknown unit: ~S" -msgstr "単位の編集" +msgid "~a function cannot return ~a" +msgstr "リターンで自動的にインデント(&R)" -#: lily-library.scm:860 +#: ly-syntax-constructors.scm:60 #, scheme-format -msgid "no \\version statement found, please add~afor future compatibility" +msgid "wrong type for argument ~a. Expecting ~a, found ~s" msgstr "" -#: lily-library.scm:866 -#, fuzzy -msgid "old relative compatibility not used" -msgstr "GP が未定義の時に GP 関連再配置が使われました" +#: markup-macros.scm:331 +#, scheme-format +msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S" +msgstr "" -#: framework-svg.scm:84 +#: markup-macros.scm:337 +#, scheme-format +msgid "Invalid argument in position ~A. Expect: ~A, found: ~S." +msgstr "" + +#: markup-macros.scm:373 #, fuzzy, scheme-format -msgid "Updating font into: ~a" -msgstr "選択範囲内に貼り付け(_I)" +msgid "Not a markup command: ~A" +msgstr "「e」コマンドは、サポートされていません" + +#: modal-transforms.scm:38 +msgid "'from' pitch not in scale; ignoring" +msgstr "" + +#: modal-transforms.scm:42 modal-transforms.scm:75 +msgid "'to' pitch not in scale; ignoring" +msgstr "" + +#: modal-transforms.scm:46 +msgid "pitch to be transposed not in scale; ignoring" +msgstr "" + +#: modal-transforms.scm:71 +msgid "'around' pitch not in scale; ignoring" +msgstr "" + +#: modal-transforms.scm:79 +msgid "pitch to be inverted not in scale; ignoring" +msgstr "" + +#: modal-transforms.scm:95 +msgid "negative replication count; ignoring" +msgstr "" -#: part-combiner.scm:598 +#: music-functions.scm:319 #, fuzzy, scheme-format -msgid "quoted music `~a' is empty" -msgstr "警告: 「%s」は空のファイルです\n" +msgid "invalid tremolo repeat count: ~a" +msgstr "%s: 繰り返しカウントには `}' が必要です" + +#: music-functions.scm:348 +#, scheme-format +msgid "unknown repeat type `~S': must be volta, unfold, percent, or tremolo" +msgstr "" -#: music-functions.scm:273 +#: music-functions.scm:352 #, fuzzy msgid "More alternatives than repeats. Junking excess alternatives" msgstr "繰り返しよりも選択肢が多い。超過分を捨てます。" -#: music-functions.scm:302 +#: music-functions.scm:487 #, fuzzy, scheme-format -msgid "invalid tremolo repeat count: ~a" -msgstr "%s: 繰り返しカウントには `}' が必要です" +msgid "bad grob property path ~a" +msgstr "無効な操作コード" + +#: music-functions.scm:511 +#, scheme-format +msgid "bad context property ~a" +msgstr "" + +#: music-functions.scm:534 +#, fuzzy, scheme-format +msgid "bad music property ~a" +msgstr " -a, --alias エイリアス名\n" -#: music-functions.scm:634 +#: music-functions.scm:840 #, fuzzy msgid "Bad chord repetition" msgstr "和音にAを追加" -#: music-functions.scm:669 +#: music-functions.scm:945 #, fuzzy, scheme-format msgid "music expected: ~S" msgstr "コロンを期待しました" -#: music-functions.scm:985 +#: music-functions.scm:1295 #, fuzzy, scheme-format msgid "cannot find quoted music: `~S'" msgstr "'%s' の URL が見つかりません" -#: music-functions.scm:1123 +#: music-functions.scm:1432 msgid "Add @var{octave-shift} to the octave of @var{pitch}." msgstr "" -#: music-functions.scm:1183 +#: music-functions.scm:1495 #, fuzzy, scheme-format msgid "Unknown octaveness type: ~S " msgstr "ファイルタイプが不明です" -#: music-functions.scm:1184 +#: music-functions.scm:1496 #, fuzzy msgid "Defaulting to 'any-octave." msgstr "%{エラーです。デフォルトを使います%}ト音記号" -#: music-functions.scm:1521 +#: music-functions.scm:1888 #, fuzzy, scheme-format msgid "unknown accidental style: ~S" msgstr "名前復元 (demangle) の方式 `%s' が不明です" -#: define-event-classes.scm:80 -msgid "All classes must be the last in their matrilineal line." -msgstr "" - -#: define-event-classes.scm:84 -msgid "All classes must have a well-defined pedigree in the existing class hierarchy." -msgstr "" +#: music-functions.scm:2098 +#, fuzzy +#| msgid "silly duration" +msgid "Missing duration" +msgstr "馬鹿げた音長" -#: define-event-classes.scm:151 +#: music-functions.scm:2626 #, scheme-format -msgid "event class ~A seems to be unused" +msgid "not a symbol list: ~a" msgstr "" -#. should be programming-error -#: define-event-classes.scm:157 -#, scheme-format -msgid "translator listens to nonexisting event class ~A" -msgstr "" +#: music-functions.scm:2629 +#, fuzzy, scheme-format +msgid "conflicting tag group ~a" +msgstr "拍子の要求が競合します" -#: markup-macros.scm:331 -#, scheme-format -msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S" -msgstr "" +#: output-ps.scm:290 output-svg.scm:539 +#, fuzzy, scheme-format +msgid "unknown line-cap-style: ~S" +msgstr "改行文字形式が一貫していません" -#: markup-macros.scm:337 +#: output-ps.scm:295 output-svg.scm:545 +#, fuzzy, scheme-format +msgid "unknown line-join-style: ~S" +msgstr "改行文字形式が一貫していません" + +#: output-svg.scm:148 #, scheme-format -msgid "Invalid argument in position ~A. Expect: ~A, found: ~S." +msgid "cannot decypher Pango description: ~a" msgstr "" -#: markup-macros.scm:373 -#, fuzzy, scheme-format -msgid "Not a markup command: ~A" -msgstr "「e」コマンドは、サポートされていません" - -#: define-note-names.scm:962 +#: output-svg.scm:228 #, fuzzy -msgid "Select note names language." -msgstr "言語のコードを選択してください:" +msgid "Glyph must have a unicode value" +msgstr "" +"\n" +"%s.%s: 値は boolean でなければなりません\n" -#: define-note-names.scm:968 +#: output-svg.scm:280 output-svg.scm:290 #, fuzzy, scheme-format -msgid "Using `~a' note names..." -msgstr "パッケージ名総数: " +msgid "cannot find SVG font ~S" +msgstr "'%s' の URL が見つかりません" -#: define-note-names.scm:971 -#, fuzzy, scheme-format -msgid "Could not find language `~a'. Ignoring." -msgstr "マスター・ブラウザが見つかりませんでした" +#: paper.scm:121 +msgid "set-global-staff-size: not in toplevel scope" +msgstr "" -#: framework-ps.scm:250 +#: paper.scm:321 #, fuzzy, scheme-format -msgid "cannot embed ~S=~S" -msgstr "%s: %s: stat できません: %s\n" +msgid "This is not a \\layout {} object, ~S" +msgstr "エラー: %s() の 第%d引数がオブジェクトではありません\n" -#: framework-ps.scm:293 +#: paper.scm:329 #, fuzzy, scheme-format -msgid "cannot extract file matching ~a from ~a" -msgstr "RPM ファイルからカタログを抽出できません。" +msgid "Unknown paper size: ~a" +msgstr "用紙のサイズ '%s' を認識できません (デフォルトを使用します)\n" -#: framework-ps.scm:311 -#, scheme-format -msgid "do not know how to embed ~S=~S" +#. TODO: should raise (generic) exception with throw, and catch +#. that in parse-scm.cc +#: paper.scm:348 +msgid "Must use #(set-paper-size .. ) within \\paper { ... }" msgstr "" -#: framework-ps.scm:336 -#, scheme-format -msgid "do not know how to embed font ~s ~s ~s" -msgstr "" +#: parser-clef.scm:154 +#, fuzzy, scheme-format +msgid "unknown clef type `~a'" +msgstr "ファイルタイプが不明です" -#: framework-ps.scm:686 -msgid "" -"\n" -"The PostScript backend does not support the\n" -"system-by-system output. For that, use the EPS backend instead,\n" -"\n" -" lilypond -dbackend=eps FILE\n" -"\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" -msgstr "" +#: parser-clef.scm:155 +#, fuzzy, scheme-format +msgid "supported clefs: ~a" +msgstr "サポートしていません" -#: layout-beam.scm:40 -#, scheme-format -msgid "Error in beam quanting. Expected (~S,~S) found ~S." -msgstr "" +#: parser-ly-from-scheme.scm:73 +#, fuzzy +msgid "error in #{ ... #}" +msgstr "「%s」でエラー: %s\n" -#: layout-beam.scm:54 -#, scheme-format -msgid "Error in beam quanting. Expected ~S 0, found ~S." -msgstr "" +#: part-combiner.scm:894 +#, fuzzy, scheme-format +msgid "quoted music `~a' is empty" +msgstr "警告: 「%s」は空のファイルです\n" -#: define-music-types.scm:752 +#: ps-to-png.scm:72 ps-to-png.scm:75 #, fuzzy, scheme-format -msgid "symbol expected: ~S" -msgstr "コロンを期待しました" +msgid "Copying `~a' to `~a'..." +msgstr "%s から %s へ変換しています..." -#: define-music-types.scm:755 +#: ps-to-png.scm:77 ps-to-png.scm:79 #, fuzzy, scheme-format -msgid "cannot find music object: ~S" -msgstr "%s が共有オブジェクト %s に存在しません: %s" +msgid "Deleting `~a'..." +msgstr "%s 書き込み中..." -#: define-music-types.scm:774 +#: to-xml.scm:190 #, fuzzy, scheme-format -msgid "unknown repeat type `~S'" -msgstr "ファイルタイプが不明です" +msgid "assertion failed: ~S" +msgstr "malloc: 失敗したアサーション: %s\n" -#: define-music-types.scm:775 -msgid "See define-music-types.scm for supported repeats" +#: translation-functions.scm:389 +#, scheme-format +msgid "Negative fret for pitch ~a on string ~a" msgstr "" -#: translation-functions.scm:351 +#: translation-functions.scm:392 #, scheme-format -msgid "Negative fret for pitch ~a on string ~a" +msgid "Missing fret for pitch ~a on string ~a" msgstr "" -#: translation-functions.scm:402 +#: translation-functions.scm:435 #, scheme-format msgid "No open string for pitch ~a" msgstr "" -#: translation-functions.scm:417 translation-functions.scm:429 +#: translation-functions.scm:450 translation-functions.scm:462 #, scheme-format msgid "Requested string for pitch requires negative fret: string ~a pitch ~a" msgstr "" -#: translation-functions.scm:420 +#: translation-functions.scm:453 msgid "Ignoring string request and recalculating." msgstr "" -#: translation-functions.scm:432 +#: translation-functions.scm:465 #, fuzzy msgid "Ignoring note in tablature." msgstr "'%s' が '%s' の中で重複しているので無視します" -#: translation-functions.scm:455 +#: translation-functions.scm:490 #, scheme-format msgid "No string for pitch ~a (given frets ~a)" msgstr "" -#: translation-functions.scm:560 +#: translation-functions.scm:595 #, scheme-format msgid "" "No label for fret ~a (on string ~a);\n" "only ~a fret labels provided" msgstr "" -#: ps-to-png.scm:70 -#, fuzzy, scheme-format -msgid "~a exited with status: ~S" -msgstr "%s はステータス %d で終了しました" +#, fuzzy +#~ msgid "cannot find Voice `%s'" +#~ msgstr "ディレクトリ %s が見つかりません\n" -#: define-markup-commands.scm:887 -msgid "no systems found in \\score markup, does it have a \\layout block?" -msgstr "" +#, fuzzy +#~ msgid "cannot find start of (de)crescendo" +#~ msgstr "(デ)クレッシェンドの始点が見つかりません" -#: define-markup-commands.scm:2614 -#, fuzzy, scheme-format -msgid "Cannot find glyph ~a" -msgstr "ディレクトリ %s が見つかりません\n" +#~ msgid "already have a decrescendo" +#~ msgstr "デクレッシェンドが既にあります" -#: define-markup-commands.scm:3040 -#, scheme-format -msgid "no brace found for point size ~S " -msgstr "" +#~ msgid "already have a crescendo" +#~ msgstr "クレッシェンドが既にあります" -#: define-markup-commands.scm:3041 -#, fuzzy, scheme-format -msgid "defaulting to ~S pt" -msgstr "%{エラーです。デフォルトを使います%}C" +#, fuzzy +#~ msgid "cresc starts here" +#~ msgstr "ここにリクエストをどうぞ" -#: define-markup-commands.scm:3194 -#, fuzzy, scheme-format -msgid "not a valid duration string: ~a" -msgstr "文字列 '%s' は有効な長さではありません。\n" +#~ msgid "unterminated (de)crescendo" +#~ msgstr "終端のない(デ)クレッシェンド" -#: documentation-lib.scm:59 -#, fuzzy, scheme-format -msgid "Processing ~S..." -msgstr "処理中..." +#, fuzzy +#~ msgid "ignoring too many clashing note columns" +#~ msgstr "釣り合わない音符が多すぎます。それらを無視します。" -#: documentation-lib.scm:176 -#, fuzzy, scheme-format -msgid "Writing ~S..." -msgstr "%s 書き込み中..." +#, fuzzy +#~ msgid "compressing music to fit" +#~ msgstr "画像に高さを合わせる(_F)" -#: documentation-lib.scm:188 -#, fuzzy, scheme-format -msgid "cannot find description for property `~S' (~S)" -msgstr "'%s' の属性のハッシュを書き込めません" +#, fuzzy +#~ msgid "(normalized pitch)" +#~ msgstr "音の高さを変更" -#: documentation-lib.scm:209 -#, fuzzy, scheme-format -msgid "cannot find description for property ~S (~S)" -msgstr "'%s' の属性のハッシュを書き込めません" +#, fuzzy +#~ msgid "Transposing %s by %s makes alteration larger than double" +#~ msgstr "%s の変調によって、二つを超える派生音が作られました" -#: ly-syntax-constructors.scm:65 -#, fuzzy, scheme-format -msgid "~a function cannot return ~a" -msgstr "リターンで自動的にインデント(&R)" +#~ msgid "unterminated slur" +#~ msgstr "終端されていないスラー" -#: ly-syntax-constructors.scm:74 -#, scheme-format -msgid "wrong type for argument ~a. Expecting ~a, found ~s" -msgstr "" +#, fuzzy +#~ msgid "unterminated phrasing slur" +#~ msgstr "スラーを終了できません" -#: ly-syntax-constructors.scm:187 -#, fuzzy, scheme-format -msgid "Invalid property operation ~a" -msgstr "無効な操作コード" +#, fuzzy +#~ msgid "cannot end phrasing slur" +#~ msgstr "スラーの中に別のスラーを含むことはできません" + +#, fuzzy +#~ msgid "already have phrasing slur" +#~ msgstr "スラーを終了できません" + +#, fuzzy +#~ msgid "Cyclic markup detected: %s" +#~ msgstr "自動検出ボリューム" + +#, fuzzy +#~ msgid "Too much lookahead" +#~ msgstr "アドレスファミリの引数が多すぎます.\n" + +#, fuzzy +#~ msgid "undefined: ~S" +#~ msgstr "名前なし" + +#, fuzzy +#~ msgid "old relative compatibility not used" +#~ msgstr "GP が未定義の時に GP 関連再配置が使われました" + +#, fuzzy +#~ msgid "unknown repeat type `~S'" +#~ msgstr "ファイルタイプが不明です" + +#, fuzzy +#~ msgid "~a exited with status: ~S" +#~ msgstr "%s はステータス %d で終了しました" #~ msgid "EOF in a string" #~ msgstr "文字列中に EOF があります" @@ -3805,9 +4148,6 @@ msgstr "無効な操作コード" #~ msgid "can't find character number: %d" #~ msgstr "文字番号が見つかりません: %d" -#~ msgid "can't find character called: `%s'" -#~ msgstr "呼び出された文字が見つかりません: `%s'" - #~ msgid "Error parsing AFM file" #~ msgstr "AFM ファイルを解析中にエラー" @@ -3943,9 +4283,6 @@ msgstr "無効な操作コード" #~ msgid "unconventional key: flats: %d, sharps: %d" #~ msgstr "慣習に合わないキーです: フラット: %d 個, シャープ %d 個" -#~ msgid "silly duration" -#~ msgstr "馬鹿げた音長" - #~ msgid "silly pitch" #~ msgstr "馬鹿げたピッチ" @@ -4123,9 +4460,6 @@ msgstr "無効な操作コード" #~ msgid "invalid running status" #~ msgstr "無効な動作状態" -#~ msgid "unimplemented MIDI meta-event" -#~ msgstr "未実装の MIDI メタイベント" - #~ msgid "invalid MIDI event" #~ msgstr "無効な MIDI イベント" @@ -4183,9 +4517,6 @@ msgstr "無効な操作コード" #~ msgid "(search path: `%s)'" #~ msgstr "(検索パス: `%s')" -#~ msgid "unfinished beam" -#~ msgstr "終了されていない鈎" - #~ msgid "0 lines" #~ msgstr "0 行" diff --git a/po/lilypond.pot b/po/lilypond.pot index 34bfbaf2db..91af9420db 100644 --- a/po/lilypond.pot +++ b/po/lilypond.pot @@ -6,10 +6,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: lilypond 2.19.34\n" +"Project-Id-Version: lilypond 2.19.36\n" "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu." "lilypond.bugs\n" -"POT-Creation-Date: 2015-12-22 11:48+0000\n" +"POT-Creation-Date: 2016-01-31 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,11 +36,11 @@ msgstr "" msgid "Running `%s' on file `%s' to detect default page settings.\n" msgstr "" -#: book_latex.py:219 book_texinfo.py:228 +#: book_latex.py:219 book_texinfo.py:230 msgid "Unable to auto-detect default settings:\n" msgstr "" -#: book_latex.py:231 book_texinfo.py:240 +#: book_latex.py:231 book_texinfo.py:242 #, python-format msgid "" "Unable to auto-detect default settings:\n" @@ -122,7 +122,7 @@ msgstr "" #. Work around a texi2pdf bug: if LANG=C is not given, a broken regexp is #. used to detect relative/absolute paths, so the absolute path is not #. detected as such and this command fails: -#: book_texinfo.py:206 +#: book_texinfo.py:208 #, python-format msgid "Running texi2pdf on file %s to detect default page settings.\n" msgstr "" @@ -3413,31 +3413,31 @@ msgstr "" msgid "Undefined parent event class `~S'" msgstr "" -#: define-markup-commands.scm:1191 +#: define-markup-commands.scm:1272 msgid "no systems found in \\score markup, does it have a \\layout block?" msgstr "" -#: define-markup-commands.scm:3031 +#: define-markup-commands.scm:3112 #, scheme-format msgid "Cannot find glyph ~a" msgstr "" -#: define-markup-commands.scm:3507 +#: define-markup-commands.scm:3588 #, scheme-format msgid "no brace found for point size ~S " msgstr "" -#: define-markup-commands.scm:3508 +#: define-markup-commands.scm:3589 #, scheme-format msgid "defaulting to ~S pt" msgstr "" -#: define-markup-commands.scm:3753 +#: define-markup-commands.scm:3847 #, scheme-format msgid "not a valid duration string: ~a" msgstr "" -#: define-markup-commands.scm:3966 +#: define-markup-commands.scm:4060 #, scheme-format msgid "not a valid duration string: ~a - ignoring" msgstr "" @@ -3516,27 +3516,27 @@ msgstr "" msgid "Writing ~a..." msgstr "" -#: framework-ps.scm:281 +#: framework-ps.scm:286 #, scheme-format msgid "cannot embed ~S=~S" msgstr "" -#: framework-ps.scm:324 +#: framework-ps.scm:329 #, scheme-format msgid "cannot extract file matching ~a from ~a" msgstr "" -#: framework-ps.scm:342 +#: framework-ps.scm:347 #, scheme-format msgid "do not know how to embed ~S=~S" msgstr "" -#: framework-ps.scm:367 +#: framework-ps.scm:372 #, scheme-format msgid "do not know how to embed font ~s ~s ~s" msgstr "" -#: framework-ps.scm:723 +#: framework-ps.scm:728 msgid "" "\n" "The PostScript backend does not support the\n" @@ -3623,37 +3623,37 @@ msgstr "" msgid "cannot find: ~A" msgstr "" -#: lily.scm:902 +#: lily.scm:903 msgid "Success: compilation successfully completed" msgstr "" -#: lily.scm:903 +#: lily.scm:904 msgid "Compilation completed with warnings or errors" msgstr "" -#: lily.scm:964 +#: lily.scm:965 #, scheme-format msgid "job ~a terminated with signal: ~a" msgstr "" -#: lily.scm:967 +#: lily.scm:968 #, scheme-format msgid "" "logfile ~a (exit ~a):\n" "~a" msgstr "" -#: lily.scm:989 lily.scm:1078 +#: lily.scm:990 lily.scm:1079 #, scheme-format msgid "failed files: ~S" msgstr "" -#: lily.scm:1069 +#: lily.scm:1070 #, scheme-format msgid "Redirecting output to ~a..." msgstr "" -#: lily.scm:1088 +#: lily.scm:1089 #, scheme-format msgid "Invoking `~a'...\n" msgstr "" @@ -3763,31 +3763,31 @@ msgstr "" msgid "Defaulting to 'any-octave." msgstr "" -#: music-functions.scm:1890 +#: music-functions.scm:1872 #, scheme-format msgid "unknown accidental style: ~S" msgstr "" -#: music-functions.scm:2100 +#: music-functions.scm:2097 msgid "Missing duration" msgstr "" -#: music-functions.scm:2636 +#: music-functions.scm:2633 #, scheme-format msgid "not a symbol list: ~a" msgstr "" -#: music-functions.scm:2639 +#: music-functions.scm:2636 #, scheme-format msgid "conflicting tag group ~a" msgstr "" -#: output-ps.scm:290 output-svg.scm:539 +#: output-ps.scm:286 output-svg.scm:535 #, scheme-format msgid "unknown line-cap-style: ~S" msgstr "" -#: output-ps.scm:295 output-svg.scm:545 +#: output-ps.scm:291 output-svg.scm:541 #, scheme-format msgid "unknown line-join-style: ~S" msgstr "" diff --git a/po/nl.po b/po/nl.po index 51cb9adf11..7ded65cbf3 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,19 +1,19 @@ # Dutch translations for GNU Lilypond. -# Copyright (C) 2015 Free Software Foundation, Inc. +# Copyright (C) 2016 Free Software Foundation, Inc. # This file is distributed under the same license as the lilypond package. # # "Dear future, gone fishing." # # Han-Wen Nienhuys , 1998. # Jan Nieuwenhuizen , 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007. -# Benno Schulenberg , 2013, 2015. -# Frans Spiesschaert , 2015. +# Benno Schulenberg , 2013, 2015, 2016. +# Frans Spiesschaert , 2015, 2016 msgid "" msgstr "" "Project-Id-Version: lilypond 2.19.26\n" "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n" "POT-Creation-Date: 2015-08-27 10:48+0100\n" -"PO-Revision-Date: 2015-12-10 21:02+0100\n" +"PO-Revision-Date: 2016-01-17 16:37+0100\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -1426,7 +1426,7 @@ msgstr "voor rusten s in plaats van r gebruiken" #: midi2ly.py:1085 msgid "DUR*NUM/DEN" -msgstr "DUUR*NOEM/TEL" +msgstr "DUUR*NOEMER/TELLER" #: midi2ly.py:1088 msgid "allow tuplet durations DUR*NUM/DEN" @@ -1481,12 +1481,12 @@ msgstr "Een niet-verwerkt merkteken %s gevonden\n" #: musicxml2ly.py:1026 #, python-format msgid "unknown span event %s" -msgstr "onbekende tijdspannegebeurtenis %s" +msgstr "onbekende overspanningsgebeurtenis %s" #: musicxml2ly.py:1036 #, python-format msgid "unknown span type %s for %s" -msgstr "onbekend tijdspannetype %s voor %s" +msgstr "onbekend overspanningstype %s voor %s" #: musicxml2ly.py:1456 msgid "Unknown metronome mark, ignoring" @@ -2329,7 +2329,7 @@ msgstr "EXPRESSIE" #: main.cc:155 msgid "evaluate scheme code" -msgstr "scheme-code evalueren" +msgstr "Scheme-code evalueren" #. Bug in option parser: --output =foe is taken as an abbreviation #. for --output-format. @@ -2556,53 +2556,53 @@ msgid "" msgstr "" "ongeldig ligatuureinde:\n" "als de laatste noot een neergaande brevis is,\n" -"moet de voorlaatste noot een andere zijn,\n" +"moet de voorlaatste noot er ook een zijn,\n" "of de ligatuur moet LB of SSB zijn" #: mensural-ligature-engraver.cc:396 msgid "unexpected case fall-through" -msgstr "onverwachte 'case'-doorval" +msgstr "onverwachte 'case'-doorval in switch statement" #: midi-control-function-performer.cc:107 staff-performer.cc:153 #, c-format msgid "ignoring out-of-range value change for MIDI property `%s'" -msgstr "" +msgstr "het veranderen van MIDI-eigenschap '%s' naar een buiten-bereik-vallende waarde wordt genegeerd" #: midi-item.cc:93 #, c-format msgid "no such MIDI instrument: `%s'" -msgstr "onbekend MIDI instrument: `%s'" +msgstr "onbekend MIDI-instrument: '%s'" #: midi-item.cc:179 msgid "Time signature with more than 255 beats. Truncating" -msgstr "" +msgstr "Maatsoort met meer dan 255 tellen. Wordt afgekapt" #: midi-stream.cc:38 #, c-format msgid "cannot open for write: %s: %s" -msgstr "kan bestand niet openen om te schrijven: %s: %s" +msgstr "kan %s niet openen om te schrijven: %s" #: midi-stream.cc:54 #, c-format msgid "cannot write to file: `%s'" -msgstr "kon niet naar bestand schrijven: `%s'" +msgstr "kan niet naar bestand '%s' schrijven" #: minimal-page-breaking.cc:40 paper-score.cc:116 msgid "Calculating line breaks..." -msgstr "Berekenen van regelbreuken..." +msgstr "Berekenen van regeleinden..." #: minimal-page-breaking.cc:44 msgid "Calculating page breaks..." -msgstr "Berekenen van paginabreuken..." +msgstr "Berekenen van pagina-einden..." #: multi-measure-rest.cc:152 msgid "usable-duration-logs must be a non-empty list. Falling back to whole rests." -msgstr "" +msgstr "usable-duration-logs mag geen lege lijst zijn. Teruggevallen op hele rusten." #: music.cc:150 #, c-format msgid "octave check failed; expected \"%s\", found: \"%s\"" -msgstr "octaafcontrole is mislukt; verwachtte \"%s\", vond \"%s\"" +msgstr "octaafcontrole is mislukt; verwachtte \"%s\", gevonden werd \"%s\"" #: new-fingering-engraver.cc:113 msgid "cannot add text scripts to individual note heads" @@ -2610,16 +2610,15 @@ msgstr "kan tekstscripts niet toevoegen aan individuele notenkoppen" #: new-fingering-engraver.cc:269 msgid "no placement found for fingerings" -msgstr "geen plaatsing gevonden voor vingers" +msgstr "geen plaatsing gevonden voor vingerzetting" #: new-fingering-engraver.cc:270 -#, fuzzy msgid "placing below" -msgstr "plaats onder" +msgstr "ze wordt eronder geplaatst" #: note-collision.cc:510 msgid "this Voice needs a \\voiceXx or \\shiftXx setting" -msgstr "" +msgstr "deze stem heeft een instelling van het type \\voiceXx of \\shiftXx nodig" #: note-column.cc:150 msgid "cannot have note heads and rests together on a stem" @@ -2632,7 +2631,7 @@ msgstr "geen van de notenkoppen '%s' of '%s' is gevonden" #: note-heads-engraver.cc:76 msgid "NoteEvent without pitch" -msgstr "NootGebeurtenis zonder toonhoogte" +msgstr "NoteEvent zonder toonhoogte" #: open-type-font.cc:45 #, c-format @@ -2642,32 +2641,32 @@ msgstr "kan geen %lu bytes reserveren" #: open-type-font.cc:49 #, c-format msgid "cannot load font table: %s" -msgstr "kan font-tabel niet laden: %s" +msgstr "kan lettertypetabel %s niet laden" #: open-type-font.cc:54 #, c-format msgid "FreeType error: %s" -msgstr "FreeType-fout: %s" +msgstr "FreeType-fout %s" #: open-type-font.cc:115 #, c-format msgid "unsupported font format: %s" -msgstr "niet-ondersteund font-formaat: %s" +msgstr "niet-ondersteunde lettertypeopmaak %s" #: open-type-font.cc:117 #, c-format msgid "error reading font file %s: %s" -msgstr "fout bij lezen van font-bestand %s: %s" +msgstr "fout bij lezen van lettertypebestand %s: %s" #: open-type-font.cc:192 #, c-format msgid "FT_Get_Glyph_Name () Freetype error: %s" -msgstr "FT_Get_Glyph_Name () Freetype fout: %s" +msgstr "FT_Get_Glyph_Name () Freetype-fout %s" #: open-type-font.cc:340 pango-font.cc:258 #, c-format msgid "FT_Get_Glyph_Name () error: %s" -msgstr "FT_Get_Glyph_Name () fout: %s" +msgstr "FT_Get_Glyph_Name () fout %s" #. find out the ideal number of pages #: optimal-page-breaking.cc:62 @@ -2676,21 +2675,21 @@ msgstr "Zoeken naar het ideale aantal pagina's..." #: optimal-page-breaking.cc:94 msgid "could not satisfy systems-per-page and page-count at the same time, ignoring systems-per-page" -msgstr "" +msgstr "kan niet tegelijkertijd tegemoetkomen aan systems-per-page en page-count; systems-per-page is genegeerd" #: optimal-page-breaking.cc:114 msgid "Fitting music on 1 page..." -msgstr "Muziek passend maken op 1 pagina..." +msgstr "Muziek passend maken voor 1 pagina..." #: optimal-page-breaking.cc:116 #, c-format msgid "Fitting music on %d pages..." -msgstr "Muziek passend maken op %d pagina's..." +msgstr "Muziek passend maken voor %d pagina's..." #: optimal-page-breaking.cc:118 #, c-format msgid "Fitting music on %d or %d pages..." -msgstr "Muziek passend maken op %d of %d pagina's..." +msgstr "Muziek passend maken voor %d of %d pagina's..." #: optimal-page-breaking.cc:128 optimal-page-breaking.cc:181 #, c-format @@ -2700,7 +2699,7 @@ msgstr "proberen van %d systemen" #: optimal-page-breaking.cc:147 optimal-page-breaking.cc:209 #, c-format msgid "best score for this sys-count: %f" -msgstr "" +msgstr "beste score voor dit aantal systemen: %f" #: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:249 #: paper-score.cc:156 @@ -2709,41 +2708,41 @@ msgstr "Tekenen van systemen..." #: output-def.cc:229 msgid "margins do not fit with line-width, setting default values" -msgstr "" +msgstr "marges passen niet bij regellengte; worden op de standaardwaarden ingesteld" #: output-def.cc:236 msgid "systems run off the page due to improper paper settings, setting default values" -msgstr "" +msgstr "er komen systemen buiten de paginarand door slechte pagina-instellingen; ze worden op de standaardwaarden ingesteld" #: page-breaking.cc:276 msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set" -msgstr "" +msgstr "min-systems-per-page en max-systems-per-page worden genegeerd omdat systems-per-page ingesteld werd" #: page-breaking.cc:281 msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values" -msgstr "" +msgstr "min-systems-per-page is groter dan max-systems-per-page; beide waarden worden genegeerd" #: page-breaking.cc:636 #, c-format msgid "page %d has been compressed" -msgstr "" +msgstr "pagina %d werd gecomprimeerd" #: page-layout-problem.cc:400 msgid "A page layout problem has been initiated that cannot accommodate footnotes." -msgstr "" +msgstr "Er is een probleem met de paginaopmaak opgetreden waardoor geen voetnoten opgenomen kunnen worden." #: page-layout-problem.cc:729 msgid "ragged-bottom was specified, but page must be compressed" -msgstr "" +msgstr "ragged-bottom werd opgegeven, maar de pagina moet gecomprimeerd worden" #: page-layout-problem.cc:732 #, c-format msgid "compressing over-full page by %.1f staff-spaces" -msgstr "" +msgstr "comprimeren van een overvolle pagina met %.1f maal de tussenruimte tussen notenbalklijnen" #: page-layout-problem.cc:1197 msgid "staff-affinities should only decrease" -msgstr "" +msgstr "staff-affinities mogen enkel afnemen" #: page-turn-page-breaking.cc:169 #, c-format @@ -2753,23 +2752,23 @@ msgstr "page-turn-page-breaking: afbreken van %d naar %d" #: page-turn-page-breaking.cc:218 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.\n" +"Kan de eerste paginaomslag niet op een enkele pagina ingepast krijgen.\n" "Overweeg om 'first-page-number' een even getal te maken." #: page-turn-page-breaking.cc:231 #, c-format msgid "Calculating page and line breaks (%d possible page breaks)..." -msgstr "Berekenen van pagina- en regelbreuken (%d mogelijke paginabreuken)..." +msgstr "Berekenen van pagina- en regeleinden (%d mogelijke pagina-einden)..." #: page-turn-page-breaking.cc:301 #, c-format msgid "break starting at page %d" -msgstr "breuk gestart op pagina %d" +msgstr "afbreken begint op pagina %d" #: page-turn-page-breaking.cc:302 #, c-format msgid "\tdemerits: %f" -msgstr "\tstrafpunten: %f" +msgstr "\tminpunten: %f" #: page-turn-page-breaking.cc:303 #, c-format @@ -2784,12 +2783,12 @@ msgstr "\taantal bladzijden: %d" #: page-turn-page-breaking.cc:305 #, c-format msgid "\tprevious break: %d" -msgstr "\tvorige breuk: %d" +msgstr "\tvorige afbreking: %d" #: pango-font.cc:247 #, c-format msgid "no glyph for character U+%0X in font `%s'" -msgstr "geen glief voor teken U+%0X in font '%s'" +msgstr "geen symbool voor teken U+%0X in lettertype '%s'" #: pango-font.cc:274 #, c-format @@ -2797,41 +2796,41 @@ msgid "" "Glyph has no name, but font supports glyph naming.\n" "Skipping glyph U+%0X, file %s" msgstr "" -"Glief heeft geen naam, terwijl het font gliefnamen ondersteunt.\n" -"Glief U+%0X, bestand %s, wordt overgeslagen." +"Symbool heeft geen naam, terwijl het lettertype symboolnamen ondersteunt.\n" +"Symbool U+%0X, bestand %s, wordt overgeslagen." #: pango-font.cc:324 #, c-format msgid "no PostScript font name for font `%s'" -msgstr "geen PostScript-font-naam voor font '%s'" +msgstr "geen PostScript-lettertypenaam voor lettertype '%s'" #: pango-font.cc:374 msgid "FreeType face has no PostScript font name" -msgstr "FreeType-lettertype heeft geen PostScript-font-naam" +msgstr "FreeType-lettertype heeft geen PostScript-lettertypenaam" #: paper-book.cc:200 #, c-format msgid "program option -dprint-pages not supported by backend `%s'" -msgstr "" +msgstr "de programmaoptie -dprint-pages wordt door backend '%s' niet ondersteund" #: paper-book.cc:219 #, c-format msgid "program option -dpreview not supported by backend `%s'" -msgstr "" +msgstr "de programmaoptie -dpreview wordt door backend '%s' niet ondersteund" #: paper-column-engraver.cc:263 msgid "forced break was overridden by some other event, should you be using bar checks?" -msgstr "geforceerde breuk werd opgeheven door andere gebeurtenis; dient u maatcontroles te gebruiken?" +msgstr "gedwongen afbreking werd opgeheven door andere gebeurtenis; zou u maatcontroles moeten gebruiken?" #: paper-outputter-scheme.cc:41 #, c-format msgid "Layout output to `%s'..." -msgstr "Opmaakuitvoer naar `%s'..." +msgstr "Opmaakuitvoer naar '%s'..." #: paper-score.cc:128 #, c-format msgid "Element count %d (spanners %d) " -msgstr "Aantal elementen %d (spanners %d)" +msgstr "Aantal elementen %d (overspanningen %d)" #: paper-score.cc:132 msgid "Preprocessing graphical objects..." @@ -2839,12 +2838,12 @@ msgstr "Voorbewerken van grafische objecten..." #: parse-scm.cc:124 msgid "GUILE signaled an error for the expression beginning here" -msgstr "GUILE signaleerde een fout voor de expressie beginnend alhier" +msgstr "GUILE signaleerde een fout voor de hier beginnende expressie" #: pdf-scheme.cc:65 #, c-format msgid "Conversion of string `%s' to UTF-16be failed: %s" -msgstr "" +msgstr "Conversie van tekenreeks '%s' naar UTF-16BE is mislukt: %s" #: percent-repeat-engraver.cc:148 msgid "unterminated percent repeat" @@ -2857,23 +2856,23 @@ msgstr "Spoor... " #: performance.cc:126 #, c-format msgid "MIDI output to `%s'..." -msgstr "MIDI uitvoer naar %s..." +msgstr "MIDI-uitvoer naar '%s'..." #: piano-pedal-engraver.cc:279 #, c-format msgid "expect 3 strings for piano pedals, found: %ld" -msgstr "verwacht 3 teksten voor pianopedalen, gevonden: %ld" +msgstr "verwacht 3 tekenreeksen voor pianopedalen, gevonden: %ld" #: piano-pedal-engraver.cc:294 piano-pedal-engraver.cc:305 #: piano-pedal-performer.cc:104 #, c-format msgid "cannot find start of piano pedal: `%s'" -msgstr "kan start van piano pedaal niet vinden: `%s'" +msgstr "kan begin van pianopedaal niet vinden: '%s'" #: piano-pedal-engraver.cc:340 #, c-format msgid "cannot find start of piano pedal bracket: `%s'" -msgstr "kan start van piano pedaal haak niet vinden: `%s'" +msgstr "kan begin van pianopedaalhaakje niet vinden: '%s'" #: program-option-scheme.cc:223 #, c-format @@ -2887,12 +2886,12 @@ msgstr "geen grob-naam: '%s'" #: relative-octave-check.cc:49 msgid "Failed octave check, got: " -msgstr "Octaafcontrole is mislukt; kreeg:" +msgstr "Octaafcontrole is mislukt; kreeg: " #: relocate.cc:56 #, c-format msgid "Setting %s to %s" -msgstr "Zetten van %s op %s" +msgstr "Instellen van %s op %s" #. this warning should only be printed in debug mode! #: relocate.cc:77 @@ -2915,36 +2914,36 @@ msgstr "%s=%s (voorvoegen)\n" #: relocate.cc:124 #, c-format msgid "not relocating, no %s/ or current/ found under %s" -msgstr "niet verhuizen, geen %s/ of current/ gevonden onder %s" +msgstr "er wordt niets verplaatst; er is geen %s/ of current/ gevonden onder %s" #: relocate.cc:134 #, c-format msgid "Relocation: compile datadir=%s, new datadir=%s" -msgstr "Verhuizing: samenstel datamap=%s, nieuwe datamap=%s" +msgstr "Verplaatsing: compilatiedatamap=%s, nieuwe datamap=%s" #: relocate.cc:146 #, c-format msgid "Relocation: framework_prefix=%s" -msgstr "Verhuizing: draadwerk_voorvoegel=%s" +msgstr "Verplaatsing: framework_prefix=%s" #: relocate.cc:172 -#, fuzzy, c-format +#, c-format msgid "Relocation: is absolute: argv0=%s\n" -msgstr "Verhuizing: is absoluut: argv0=%s" +msgstr "Verplaatsing: pad is absoluut: argv0=%s\n" #: relocate.cc:178 -#, fuzzy, c-format +#, c-format msgid "Relocation : from cwd: argv0=%s\n" -msgstr "Verhuizing: van cwd: argv0=%s" +msgstr "Verplaatsing: vanuit huidige werkmap: argv0=%s\n" #: relocate.cc:196 -#, fuzzy, c-format +#, c-format msgid "" "Relocation: from PATH=%s\n" "argv0=%s\n" msgstr "" -"Verhuizing: van PATH=%s\n" -"argv0=%s" +"Verplaatsing: vanuit PATH=%s\n" +"argv0=%s\n" #: relocate.cc:222 msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR" @@ -2953,7 +2952,7 @@ msgstr "LILYPONDPREFIX is verouderd, gebruik LILYPOND_DATADIR" #: relocate.cc:347 #, c-format msgid "Relocation file: %s" -msgstr "Verhuisbestand: %s" +msgstr "Verplaatsingsbestand: %s" #: relocate.cc:351 source-file.cc:65 #, c-format @@ -2963,11 +2962,11 @@ msgstr "kan bestand niet openen: '%s'" #: relocate.cc:381 #, c-format msgid "Unknown relocation command %s" -msgstr "Onbekend verhuizingscommando %s" +msgstr "Onbekend verplaatsingscommando %s" #: rest-collision.cc:154 msgid "cannot resolve rest collision: rest direction not set" -msgstr "kan rusten-botsing niet oplossen: richting van de rust is niet ingesteld" +msgstr "kan rustbotsing niet oplossen: richting van de rust is niet ingesteld" #: rest-collision.cc:165 rest-collision.cc:274 msgid "too many colliding rests" @@ -2985,7 +2984,7 @@ msgstr "kan '%s' niet vinden" #: score-engraver.cc:79 msgid "Music font has not been installed properly." -msgstr "Muziek-font is niet correct geïnstalleerd." +msgstr "Muzieklettertype is niet correct geïnstalleerd." #: score-engraver.cc:81 #, c-format @@ -3010,18 +3009,16 @@ msgstr "fouten gevonden; muziekexpressie wordt genegeerd" #. FIXME: #: script-engraver.cc:115 -#, fuzzy msgid "do not know how to interpret articulation:" -msgstr "weet niet hoe articulatie te vertolken: " +msgstr "weet niet hoe articulatieteken te interpreteren:" #: script-engraver.cc:116 -#, fuzzy msgid " scheme encoding: " -msgstr "scheme codering: " +msgstr " Scheme-codering: " #: skyline-pair.cc:135 msgid "direction must not be CENTER in ly:skyline-pair::skyline" -msgstr "" +msgstr "richting mag niet CENTER zijn in ly:skyline-pair::skyline" #: slur-proto-engraver.cc:51 #, c-format @@ -3038,7 +3035,7 @@ msgstr "heb al een %s" #: slur-proto-engraver.cc:183 #, c-format msgid "%s without a cause" -msgstr "" +msgstr "%s zonder reden" #: slur-proto-engraver.cc:244 #, c-format @@ -3046,26 +3043,26 @@ msgid "cannot end %s" msgstr "kan %s niet beëindigen" #: slur.cc:436 -#, fuzzy, c-format +#, c-format msgid "Ignoring grob for slur: %s. avoid-slur not set?" -msgstr "Negeren van grob voor boogje: %s. avoid-slur niet gezet?" +msgstr "Negeren van grob voor legatoboog: %s. Is avoid-slur niet gezet?" #: source-file.cc:85 #, c-format msgid "expected to read %d characters, got %d" -msgstr "verwachtte %d tekens te lezen, kreeg %d" +msgstr "verwachtte %d tekens te lezen, kreeg er %d" #: staff-performer.cc:301 msgid "MIDI channel wrapped around" -msgstr "MIDI-kanaal is klokje rond" +msgstr "MIDI-kanaal groter dan 15" #: staff-performer.cc:302 msgid "remapping modulo 16" -msgstr "herafbeelden modulo 16" +msgstr "toegewezen aan kanaal modulo 16" #: stem-engraver.cc:100 msgid "tremolo duration is too long" -msgstr "tremololengte is te lang" +msgstr "tremolo duurt te lang" #: stem-engraver.cc:152 #, c-format @@ -3074,11 +3071,11 @@ msgstr "toevoegen van nootkop aan incompatibele stok (type = %d/%d)" #: stem-engraver.cc:155 msgid "maybe input should specify polyphonic voices" -msgstr "misschien moet invoer polyfonische stemmen specificeren" +msgstr "misschien moet invoer polyfone stemmen specificeren" #: stem.cc:128 msgid "weird stem size, check for narrow beams" -msgstr "vreemde stoklengte; controleer op krappe waardestrepen" +msgstr "vreemde stoklengte; controleer op smalle waardestrepen" #: system.cc:202 #, c-format @@ -3094,28 +3091,27 @@ msgstr "Aantal grobs: %d" #: text-interface.cc:139 #, c-format msgid "Markup depth exceeds maximal value of %d; Markup: %s" -msgstr "" +msgstr "Mark-up overschrijdt maximale diepte %d; mark-up: %s" #: text-spanner-engraver.cc:72 msgid "cannot find start of text spanner" -msgstr "kan start van tekst-spanner niet vinden" +msgstr "kan begin van tekstoverspanning niet vinden" #: text-spanner-engraver.cc:85 msgid "already have a text spanner" -msgstr "heb al een tekst-spanner" +msgstr "heb al een tekstoverspanning" #: text-spanner-engraver.cc:130 msgid "unterminated text spanner" -msgstr "onbeëindigde tekst spanner" +msgstr "onbeëindigde tekstoverspanning" #: tie-engraver.cc:121 -#, fuzzy msgid "unterminated tie" -msgstr "onbeëindigde waardestreep" +msgstr "onbeëindigde overbinding" #: tie-engraver.cc:377 msgid "lonely tie" -msgstr "eenzame overbinding" +msgstr "verweesde overbinding" #. #. Todo: should make typecheck? @@ -3140,12 +3136,12 @@ msgstr "Fatale fout. Kan type niet vinden: %s" #: translator-group.cc:187 #, c-format msgid "cannot find: `%s'" -msgstr "kan niet vinden: '%s'" +msgstr "kan '%s' niet vinden" #: translator.cc:310 #, c-format msgid "Two simultaneous %s events, junking this one" -msgstr "Twee gelijktijdige %s-gebeurtenissen; deze ene wordt weggegooid" +msgstr "Twee gelijktijdige %s-gebeurtenissen; deze ene wordt weggegooid" #: translator.cc:311 #, c-format @@ -3155,28 +3151,28 @@ msgstr "Vorige %s-gebeurtenis hier" #: ttf.cc:480 ttf.cc:528 #, c-format msgid "font index %d too large for font `%s', using index 0" -msgstr "font-index %d is te groot voor font '%s'; index 0 wordt gebruikt" +msgstr "lettertype-index %d is te groot voor lettertype '%s'; index 0 wordt gebruikt" #: ttf.cc:512 ttf.cc:562 msgid "font index must be non-negative, using index 0" -msgstr "font-index mag niet negatief zijn; index 0 wordt gebruikt" +msgstr "lettertype-index mag niet negatief zijn; index 0 wordt gebruikt" #: tuplet-engraver.cc:110 msgid "No tuplet to end" -msgstr "Geen tuplet om te beëindigen" +msgstr "Geen antimetrische figuur om te eindigen" #: vaticana-ligature-engraver.cc:400 #, c-format msgid "ignored prefix(es) `%s' of this head according to restrictions of the selected ligature style" -msgstr "voorvoegsel(s) '%s' van deze kop worden genegeerd volgens restricties van de geselecteerde ligatuurstijl" +msgstr "voorvoegsel(s) '%s' van deze nootkop worden genegeerd volgens restricties van de geselecteerde ligatuurstijl" #: vaticana-ligature-engraver.cc:466 msgid "Ambiguous use of dots in ligature: there are multiple dotted notes with the same pitch. The ligature should be split." -msgstr "" +msgstr "Ambigue puntering gebruikt in ligatuur: er zijn meerdere gepunteerde noten met dezelfde toonhoogte. De ligatuur zou gesplitst moeten worden. " #: vaticana-ligature-engraver.cc:524 msgid "This ligature has a dotted head followed by a non-dotted head. The ligature should be split after the last dotted head before this head." -msgstr "" +msgstr "Deze ligatuur bevat een gepunteerde nootkop gevolgd door een niet-gepunteerde nootkop. De ligatuur zou gesplitst moeten worden na de laatste gepunteerde nootkop en voor die nootkop." #: vaticana-ligature-engraver.cc:736 #, c-format @@ -3185,28 +3181,28 @@ msgstr "Vaticana_ligature_engraver: instelling 'spacing-increment = %f': ptr=%ul #: vaticana-ligature.cc:94 msgid "flexa-height undefined; assuming 0" -msgstr "flexa-hoogte is ongedefinieerd; uitgegaan van 0" +msgstr "toonhoogte van clivis (flexa) is niet gedefinieerd; 0 wordt verondersteld" #: vaticana-ligature.cc:99 msgid "ascending vaticana style flexa" -msgstr "stijgende vaticana-stijl flexa" +msgstr "stijgende clivis (flexa) in Vaticaanse stijl" #: vertical-align-engraver.cc:95 msgid "Ignoring Vertical_align_engraver in VerticalAxisGroup" -msgstr "" +msgstr "Vertical_align_engraver in VerticalAxisGroup wordt genegeerd" #. fixme: be more verbose. #: volta-engraver.cc:110 msgid "cannot end volta spanner" -msgstr "kan volta spanner niet beëindigen" +msgstr "kan volta-overspanning niet beëindigen" #: volta-engraver.cc:120 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-overspanning; die wordt voortijdig beëindigd" #: volta-engraver.cc:124 msgid "also already have an ended spanner" -msgstr "heb ook al een beëindigde spanner" +msgstr "heb ook al een beëindigde overspanning" #: volta-engraver.cc:125 msgid "giving up" @@ -3218,7 +3214,7 @@ msgstr "ongeldig expressietype" #: parser.yy:859 parser.yy:1458 parser.yy:1503 msgid "not a context mod" -msgstr "" +msgstr "geen contextwijziging" #: parser.yy:1054 msgid "Missing music in \\score" @@ -3230,11 +3226,11 @@ msgstr "\\paper kan niet gebruikt worden in \\score; gebruik \\layout" #: parser.yy:1126 msgid "Spurious expression in \\score" -msgstr "" +msgstr "Schijnbare expressie in \\score" #: parser.yy:1156 msgid "need \\paper for paper block" -msgstr "heb \\paper nodig voor paper blok" +msgstr "heb \\paper nodig voor een blok van het type paper" #: parser.yy:1331 msgid "music expected" @@ -3246,7 +3242,7 @@ msgstr "onverwachte na-gebeurtenis" #: parser.yy:1383 msgid "Ignoring non-music expression" -msgstr "Negeren van non-muziekexpressie" +msgstr "Niet-muzikale expressie wordt genegeerd" #: parser.yy:1691 msgid "not a symbol" @@ -3258,7 +3254,7 @@ msgstr "ongeldig pad voor grob-eigenschap" #: parser.yy:2585 msgid "only \\consists and \\remove take non-string argument." -msgstr "alleen \\consists en \\remove nemen een argument dat geen tekenreeks is" +msgstr "alleen \\consists en \\remove nemen een argument dat geen tekenreeks is." #: parser.yy:2646 msgid "bad context property path" @@ -3290,15 +3286,15 @@ msgstr "verwachtte tekenreeks of na-gebeurtenis voor scriptdefinitie" #: parser.yy:3130 msgid "not an articulation" -msgstr "is geen articulatie" +msgstr "is geen articulatieteken" #: parser.yy:3202 parser.yy:3245 msgid "not a duration" -msgstr "is geen lengte" +msgstr "is geen tijdsduur" #: parser.yy:3266 msgid "bass number expected" -msgstr "basnummer werd verwacht" +msgstr "verwachtte een cijfer voor de bas" #: parser.yy:3358 msgid "have to be in Note mode for notes" @@ -3310,11 +3306,11 @@ msgstr "moet in Chord-modus zijn voor akkoorden" #: parser.yy:3440 msgid "markup outside of text script or \\lyricmode" -msgstr "" +msgstr "mark-up buiten tekstscript of \\lyricmode" #: parser.yy:3445 msgid "unrecognized string, not in text script or \\lyricmode" -msgstr "" +msgstr "niet-herkende tekenreeks, niet in tekstscript of \\lyricmode" #: parser.yy:3597 parser.yy:3606 msgid "not an unsigned integer" @@ -3322,7 +3318,7 @@ msgstr "is geen tekenloos geheel getal" #: parser.yy:3693 msgid "not a markup" -msgstr "" +msgstr "is geen mark-up" #: lexer.ll:193 msgid "stray UTF-8 BOM encountered" @@ -3351,12 +3347,12 @@ msgstr "geheel getal verwacht na \\sourcefileline" #: lexer.ll:300 msgid "\\maininput not allowed outside init files" -msgstr "\\maininput niet toegestaan buiten init bestanden" +msgstr "\\maininput niet toegestaan buiten init-bestanden" #: lexer.ll:324 #, c-format msgid "wrong or undefined identifier: `%s'" -msgstr "verkeerde of ongedefinieerde variabele: '%s'" +msgstr "verkeerde of ongedefinieerde variabelenaam: '%s'" #: lexer.ll:349 msgid "string expected after \\include" @@ -3368,7 +3364,7 @@ msgstr "afsluitend aanhalingsteken ontbreekt" #: lexer.ll:714 msgid "EOF found inside a comment" -msgstr "EOF gevonden in een kommentaar" +msgstr "EOF gevonden in een commentaar" #: lexer.ll:719 msgid "EOF found inside string" @@ -3395,7 +3391,7 @@ msgstr "teken of afkorting is ongedefinieerd: %s" #: lexer.ll:1236 msgid "non-UTF-8 input" -msgstr "invoer is non-UTF-8" +msgstr "invoer is geen UTF-8" #: lexer.ll:1280 #, c-format @@ -3409,16 +3405,16 @@ msgstr "bestand te oud: %s (oudste ondersteund: %s)" #: lexer.ll:1286 msgid "consider updating the input with the convert-ly script" -msgstr "overweeg het actualiseren van de invoer met het convert-ly script" +msgstr "overweeg het actualiseren van de invoer met het script convert-ly" #: lexer.ll:1292 #, c-format msgid "program too old: %s (file requires: %s)" -msgstr "programma is te oud: %s (bestand vereist: %s)" +msgstr "programma is te oud: %s (bestand vereist %s)" #: auto-beam.scm:147 msgid "Beam end fits no pattern" -msgstr "" +msgstr "Waardestreepeinde stemt niet met een patroon overeen" #: backend-library.scm:27 #, scheme-format @@ -3459,42 +3455,42 @@ msgstr "Verwijderen van '~a'...\n" #: backend-library.scm:219 #, scheme-format msgid "Writing header field `~a' to `~a'..." -msgstr "Schrijven van header-veld '~a' naar '~a'..." +msgstr "Schrijven van koptekstveld '~a' naar '~a'..." #: backend-library.scm:268 #, scheme-format msgid "missing stencil expression `~S'" -msgstr "ontbrekende stencilexpressie '~S'" +msgstr "ontbrekende stencil-expressie '~S'" #: bar-line.scm:133 #, scheme-format msgid "Bar glyph ~a not known. Ignoring." -msgstr "Maatglief ~a is onbekend. Genegeerd." +msgstr "Maatstreepsymbool ~a is onbekend. Genegeerd." #: bar-line.scm:161 #, scheme-format msgid "Annotation '~a' is allowed in the first argument of a bar line definition only." -msgstr "" +msgstr "Aantekening '~a' wordt enkel toegestaan in het eerste argument van de definitie van een maatstreep." #: bar-line.scm:169 #, scheme-format msgid "Replacement '~a' is allowed in the last argument of a bar line definition only." -msgstr "" +msgstr "Vervanging '~a' wordt enkel toegestaan in het laatste argument van de definitie van een maatstreep." #: bar-line.scm:230 #, scheme-format msgid "add-bar-glyph-print-procedure: glyph '~a' has to be a single ASCII character." -msgstr "" +msgstr "add-bar-glyph-print-procedure: symbool '~a' moet een enkelvoudig ASCII-teken zijn." #: bar-line.scm:795 #, scheme-format msgid "No span bar glyph defined for bar glyph '~a'; ignoring." -msgstr "" +msgstr "Geen overspanningsstreepsymbool gedefinieerd voor streepsymbool '~a'; genegeerd." #: chord-entry.scm:52 #, scheme-format msgid "Spurious garbage following chord: ~A" -msgstr "" +msgstr "Schijnbaar staat er rommel na akkoord: ~A" #: define-context-properties.scm:31 define-grob-properties.scm:21 #: define-music-properties.scm:21 @@ -3519,32 +3515,33 @@ msgstr "Ongedefinieerde moedergebeurtenisklasse '~S'" #: define-markup-commands.scm:1098 msgid "no systems found in \\score markup, does it have a \\layout block?" -msgstr "geen systemen gevonden in \\score markup; heeft het een \\layout blok?" +msgstr "geen systemen gevonden in de mark-up van \\score; heeft het een blok van het type \\layout?" #: define-markup-commands.scm:2922 #, scheme-format msgid "Cannot find glyph ~a" -msgstr "Kan glief ~a niet vinden" +msgstr "Kan symbool ~a niet vinden" +# FIXME: trailing space? #: define-markup-commands.scm:3398 #, scheme-format msgid "no brace found for point size ~S " -msgstr "" +msgstr "geen accolade gevonden voor puntgrootte ~S " #: define-markup-commands.scm:3399 #, scheme-format msgid "defaulting to ~S pt" -msgstr "" +msgstr "de standaard van ~S pt wordt gebruikt" #: define-markup-commands.scm:3643 #, scheme-format msgid "not a valid duration string: ~a" -msgstr "geen geldige manier om een tijdsduur aan te duiden: ~a" +msgstr "geen geldige aanduiding van een tijdsduur: ~a" #: define-markup-commands.scm:3854 #, scheme-format msgid "not a valid duration string: ~a - ignoring" -msgstr "geen geldige manier om een tijdsduur aan te duiden: ~a -> genegeerd" +msgstr "geen geldige aanduiding van een tijdsduur: ~a -> genegeerd" #: define-music-types.scm:803 #, scheme-format @@ -3559,16 +3556,16 @@ msgstr "kan muziekobject niet vinden: ~S" #: define-music-types.scm:826 #, scheme-format msgid "bad make-music argument: ~S" -msgstr "" +msgstr "foutief argument voor make-music: ~S" #: define-note-names.scm:1000 msgid "Select note names language." -msgstr "" +msgstr "Selecteer een taal voor de nootnamen." #: define-note-names.scm:1006 #, scheme-format msgid "Using `~a' note names..." -msgstr "" +msgstr "Nootnamen in het '~a' worden gebruikt..." #: define-note-names.scm:1009 #, scheme-format @@ -3578,17 +3575,17 @@ msgstr "Kan taal '~a' niet vinden. Genegeerd." #: document-backend.scm:135 #, scheme-format msgid "pair expected in doc ~s" -msgstr "paar werd verwacht in doc ~s" +msgstr "een paar werd verwacht in doc ~s" #: document-backend.scm:202 #, scheme-format msgid "cannot find interface for property: ~S" -msgstr "kan grob bediening voor eigenschap niet vinden: ~S" +msgstr "kan geen interface vinden voor eigenschap: ~S" #: document-backend.scm:212 #, scheme-format msgid "unknown Grob interface: ~S" -msgstr "onbekende Grob-bediening: ~S" +msgstr "onbekende Grob-interface: ~S" #: documentation-lib.scm:62 #, scheme-format @@ -3623,22 +3620,22 @@ msgstr "Schrijven van ~a..." #: framework-ps.scm:281 #, scheme-format msgid "cannot embed ~S=~S" -msgstr "kan niet inbedden ~S=~S" +msgstr "insluiten kan niet: ~S=~S" #: framework-ps.scm:324 #, scheme-format msgid "cannot extract file matching ~a from ~a" -msgstr "kan bestand dat past op ~a niet uit ~a extraheren" +msgstr "kan bestand dat met ~a overeenkomt niet uit ~a extraheren" #: framework-ps.scm:342 #, scheme-format msgid "do not know how to embed ~S=~S" -msgstr "weet niet hoe ~S=~S in te bedden" +msgstr "weet niet hoe in te sluiten: ~S=~S" #: framework-ps.scm:367 #, scheme-format msgid "do not know how to embed font ~s ~s ~s" -msgstr "weet niet hoe font in te bedden: ~s ~s ~s" +msgstr "weet niet hoe lettertype in te sluiten: ~s ~s ~s" #: framework-ps.scm:723 msgid "" @@ -3656,7 +3653,7 @@ msgid "" " %% ****************************************************************\n" msgstr "" "\n" -"Het PostScript-backend ondersteunt geen system-by-system uitvoer.\n" +"Het PostScript-backend ondersteunt geen uitvoer van systeem per systeem.\n" "Gebruik daarvoor het EPS-backend:\n" "\n" " lilypond -dbackend=eps BESTAND\n" @@ -3671,35 +3668,35 @@ msgstr "" #: framework-svg.scm:84 #, scheme-format msgid "Updating font into: ~a" -msgstr "" +msgstr "Bijwerken van lettertype in: ~a" #: graphviz.scm:64 #, scheme-format msgid "Writing graph `~a'..." -msgstr "Schrijven van graph '~a'..." +msgstr "Schrijven van graaf '~a'..." #: layout-beam.scm:40 #, scheme-format msgid "Error in beam quanting. Expected (~S,~S) found ~S." -msgstr "Fout in waardestreep kwantisering. Verwachtte (~S,~S), gevonden ~S." +msgstr "Fout in waardestreepdefiniëring. Verwachtte (~S,~S), gevonden werd ~S." #: layout-beam.scm:54 #, scheme-format msgid "Error in beam quanting. Expected ~S 0, found ~S." -msgstr "Fout in waardestreep-kwantisering. Verwachtte ~S 0, gevonden ~S." +msgstr "Fout in waardestreepdefiniëring. Verwachtte ~S 0, gevonden werd ~S." #: lily-library.scm:333 msgid "Music unsuitable for context-mod" -msgstr "" +msgstr "Muziek is niet geschikt voor context-mod" #: lily-library.scm:388 #, scheme-format msgid "Cannot find context-def \\~a" -msgstr "" +msgstr "Kan contextdefinitie \\~a niet vinden" #: lily-library.scm:404 msgid "Music unsuitable for output-def" -msgstr "" +msgstr "Muziek is niet geschikt voor output-def" #: lily-library.scm:904 msgid "" @@ -3707,6 +3704,9 @@ msgid "" "which produces the closest match to @var{target-val} if\n" "applied to function @var{getter}." msgstr "" +"Vind de index die ligt tussen @var{start} en @var{end} (een geheel getal)\n" +"en die @var{target-val} het dichtst benadert als hij op de functie\n" +"@var{getter} toegepast wordt." #: lily-library.scm:998 #, scheme-format @@ -3716,19 +3716,19 @@ msgstr "onbekende eenheid: ~S" #: lily-library.scm:1023 #, scheme-format msgid "no \\version statement found, please add~afor future compatibility" -msgstr "geen \\version uitdrukking gevonden, voeg~atoe voor toekomstige compatibiliteit" +msgstr "geen statement \\version gevonden; voeg ~a toe voor toekomstige compatibiliteit" #: lily.scm:93 msgid "call-after-session used after session start" -msgstr "" +msgstr "call-after-session werd gebruikt nadat de sessie gestart was" #: lily.scm:111 msgid "define-session used after session start" -msgstr "" +msgstr "define-session werd gebruikt nadat de sessie gestart was" #: lily.scm:417 msgid "Using (ice-9 curried-definitions) module\n" -msgstr "" +msgstr "Module (ice-9 curried-definitions) wordt gebruikt\n" #: lily.scm:420 msgid "Guile 1.8\n" @@ -3737,15 +3737,15 @@ msgstr "Guile 1.8\n" #: lily.scm:477 #, scheme-format msgid "cannot find: ~A" -msgstr "kan niet vinden: ~A" +msgstr "kan ~A niet vinden" #: lily.scm:903 msgid "Success: compilation successfully completed" -msgstr "Gelukt: compilatie is met succes afgesloten" +msgstr "Gelukt: compilatie is met succes voltooid" #: lily.scm:904 msgid "Compilation completed with warnings or errors" -msgstr "Compilatie is afgesloten met waarschuwingen of fouten" +msgstr "Compilatie werd voltooid met waarschuwingen of fouten" #: lily.scm:965 #, scheme-format @@ -3758,13 +3758,13 @@ msgid "" "logfile ~a (exit ~a):\n" "~a" msgstr "" -"logbestand ~a (exit ~a):\n" +"logbestand ~a (afsluitcode ~a):\n" "~a" #: lily.scm:990 lily.scm:1079 #, scheme-format msgid "failed files: ~S" -msgstr "gefaalde bestanden: ~S" +msgstr "mislukte bestanden: ~S" # lisp-format #: lily.scm:1070 @@ -3775,61 +3775,61 @@ msgstr "Omleiden van uitvoer naar ~a..." #: lily.scm:1089 #, scheme-format msgid "Invoking `~a'...\n" -msgstr "Aanroepen van '~a'...\n" +msgstr "Uitvoeren van '~a'...\n" #: ly-syntax-constructors.scm:27 #, scheme-format msgid "~a function cannot return ~a" -msgstr "een ~a-functie kan geen ~a teruggeven" +msgstr "een ~a-functie kan geen terugkeerwaarde ~a hebben" #: ly-syntax-constructors.scm:60 #, scheme-format msgid "wrong type for argument ~a. Expecting ~a, found ~s" -msgstr "Verkeerd type voor argument ~a. Verwachtte ~a, gevonden ~s" +msgstr "Verkeerd type voor argument ~a. Verwachtte ~a, gevonden werd ~s" #: markup-macros.scm:331 #, scheme-format msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S" -msgstr "Verkeerd aantal argumenten. Verwachtte ~A, gevonden ~A: ~S" +msgstr "Verkeerd aantal argumenten. Verwachtte ~A, gevonden werd ~A: ~S" #: markup-macros.scm:337 #, scheme-format msgid "Invalid argument in position ~A. Expect: ~A, found: ~S." -msgstr "Ongeldig argument in positie ~A. Verwachtte: ~A, gevonden: ~S." +msgstr "Ongeldig argument op positie ~A. Verwachtte: ~A, gevonden werd: ~S." #: markup-macros.scm:373 #, scheme-format msgid "Not a markup command: ~A" -msgstr "" +msgstr "Geen mark-upcommando: ~A" #: modal-transforms.scm:38 msgid "'from' pitch not in scale; ignoring" -msgstr "" +msgstr "'bron'-toonhoogte niet in toonladder; genegeerd" #: modal-transforms.scm:42 modal-transforms.scm:75 msgid "'to' pitch not in scale; ignoring" -msgstr "" +msgstr "'doel'-toonhoogte niet in toonladder; genegeerd" #: modal-transforms.scm:46 msgid "pitch to be transposed not in scale; ignoring" -msgstr "" +msgstr "om te zetten toonhoogte niet in toonladder; genegeerd" #: modal-transforms.scm:71 msgid "'around' pitch not in scale; ignoring" -msgstr "" +msgstr "'spil'-toonhoogte niet in toonladder; genegeerd" #: modal-transforms.scm:79 msgid "pitch to be inverted not in scale; ignoring" -msgstr "" +msgstr "om te keren toonhoogte niet in toonladder; genegeerd" #: modal-transforms.scm:95 msgid "negative replication count; ignoring" -msgstr "" +msgstr "kopieaantal is negatief; genegeerd" #: music-functions.scm:319 #, scheme-format msgid "invalid tremolo repeat count: ~a" -msgstr "ongeldig tremolo-herhalingsaantal: ~a" +msgstr "ongeldig aantal tremoloherhalingen: ~a" #: music-functions.scm:348 #, scheme-format @@ -3843,21 +3843,21 @@ msgstr "Meer alternatieven dan herhalingen. Overtollige alternatieven zijn wegg #: music-functions.scm:487 #, scheme-format msgid "bad grob property path ~a" -msgstr "ongeldig pad voor grob-eigenschap: ~a" +msgstr "foutief pad voor grob-eigenschap: ~a" #: music-functions.scm:511 #, scheme-format msgid "bad context property ~a" -msgstr "ongeldige contexteigenschap ~a" +msgstr "foutieve contexteigenschap ~a" #: music-functions.scm:534 #, scheme-format msgid "bad music property ~a" -msgstr "ongeldige muziekeigenschap ~a" +msgstr "foutieve muziekeigenschap ~a" #: music-functions.scm:840 msgid "Bad chord repetition" -msgstr "Ongeldige akkoordherhaling" +msgstr "Foutieve akkoordherhaling" #: music-functions.scm:945 #, scheme-format @@ -3871,18 +3871,18 @@ msgstr "kan aangehaalde muziek niet vinden: '~S'" #: music-functions.scm:1432 msgid "Add @var{octave-shift} to the octave of @var{pitch}." -msgstr "" +msgstr "Toevoegen van @var{octave-shift} aan het octaaf van @var{pitch}." # FIXME: trailing space? #: music-functions.scm:1495 #, scheme-format msgid "Unknown octaveness type: ~S " -msgstr "onbekend octaafheidstype: ~S " +msgstr "Onbekend type octaaf: ~S " -# FIXME: stray apostrophe +# FIXME: stray apostrophe? #: music-functions.scm:1496 msgid "Defaulting to 'any-octave." -msgstr "" +msgstr "De standaard 'any-octave wordt nu gebruikt." # FIXME: what does accidental mean? #: music-functions.scm:1888 @@ -3900,43 +3900,43 @@ msgid "not a symbol list: ~a" msgstr "is geen symbolenlijst: ~a" #: music-functions.scm:2629 -#, fuzzy, scheme-format +#, scheme-format msgid "conflicting tag group ~a" -msgstr "Tegenstrijdige nootgroeperingsgebeurtenissen" +msgstr "tegenstrijdige kentekengroep ~a" #: output-ps.scm:290 output-svg.scm:539 #, scheme-format msgid "unknown line-cap-style: ~S" -msgstr "onbekende lijnkopstijl: ~S" +msgstr "onbekende line-cap-style: ~S" #: output-ps.scm:295 output-svg.scm:545 #, scheme-format msgid "unknown line-join-style: ~S" -msgstr "onbekende lijnverbindingsstijl: ~S" +msgstr "onbekende line-join-style: ~S" #: output-svg.scm:148 #, scheme-format msgid "cannot decypher Pango description: ~a" -msgstr "kan Pango-font-omschrijving niet ontcijferen: ~a" +msgstr "kan Pango-omschrijving niet ontcijferen: ~a" # FIXME: capitalize Unicode #: output-svg.scm:228 msgid "Glyph must have a unicode value" -msgstr "Glief moet een Unicode-waarde hebben" +msgstr "Symbool moet een Unicode-waarde hebben" #: output-svg.scm:280 output-svg.scm:290 #, scheme-format msgid "cannot find SVG font ~S" -msgstr "kan SVG-font ~S niet vinden" +msgstr "kan SVG-lettertype ~S niet vinden" #: paper.scm:121 msgid "set-global-staff-size: not in toplevel scope" -msgstr "set-global-staff-size: niet op topniveau" +msgstr "set-global-staff-size: niet in het hoogste geldigheidsbereik" #: paper.scm:321 #, scheme-format msgid "This is not a \\layout {} object, ~S" -msgstr "Dit is geen \\layout {} object, ~S" +msgstr "Dit is geen object van het type \\layout {}, ~S" #: paper.scm:329 #, scheme-format @@ -3987,35 +3987,35 @@ msgstr "controletest is mislukt: ~S" #: translation-functions.scm:389 #, scheme-format msgid "Negative fret for pitch ~a on string ~a" -msgstr "" +msgstr "Negatieve fret voor toonhoogte ~a op snaar ~a" #: translation-functions.scm:392 #, scheme-format msgid "Missing fret for pitch ~a on string ~a" -msgstr "" +msgstr "Ontbrekende fret voor toonhoogte ~a op snaar ~a" #: translation-functions.scm:435 #, scheme-format msgid "No open string for pitch ~a" -msgstr "" +msgstr "Geen mogelijke snaar voor toonhoogte ~a" #: translation-functions.scm:450 translation-functions.scm:462 #, scheme-format msgid "Requested string for pitch requires negative fret: string ~a pitch ~a" -msgstr "" +msgstr "De voor de toonhoogte gevraagde snaar vereist een negatieve fret: snaar ~a toonhoogte ~a" #: translation-functions.scm:453 msgid "Ignoring string request and recalculating." -msgstr "" +msgstr "De gevraagde snaar wordt genegeerd en de berekening wordt opnieuw uitgevoerd." #: translation-functions.scm:465 msgid "Ignoring note in tablature." -msgstr "" +msgstr "Noot in tabulatuur wordt genegeerd." #: translation-functions.scm:490 #, scheme-format msgid "No string for pitch ~a (given frets ~a)" -msgstr "" +msgstr "Geen snaar voor toonhoogte ~a (gezien de frets ~a)" #: translation-functions.scm:595 #, scheme-format @@ -4023,6 +4023,8 @@ msgid "" "No label for fret ~a (on string ~a);\n" "only ~a fret labels provided" msgstr "" +"Geen label voor fret ~a (op snaar ~a);\n" +"er zijn slechts ~a fretlabels voorzien." #~ msgid "cannot change, already in translator: %s" #~ msgstr "kan niet wisselen, al in vertaler: %s" @@ -4030,14 +4032,6 @@ msgstr "" #~ msgid "cannot find Voice `%s'" #~ msgstr "kan Voice niet vinden: `%s'" -#, fuzzy -#~ msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice." -#~ msgstr "Liedtekst lettergreep heeft geen noot. Gebruik \\lyricsto of associatedVoice." - -#, fuzzy -#~ msgid "Using naive multi measure rest spacing." -#~ msgstr "enkelnootse ligatuur - overslaan" - #~ msgid "(normalized pitch)" #~ msgstr "(genormaliseerde toonhoogte)" @@ -4050,20 +4044,9 @@ msgstr "" #~ msgid "time signature symbol `%s' not found; reverting to numbered style" #~ msgstr "maatsoort-symbool '%s' niet gevonden; teruggevallen op numerieke stijl" -#, fuzzy -#~ msgid "Too much lookahead" -#~ msgstr "Te veel vooruitkijk" - #~ msgid "score expected" #~ msgstr "partituur verwacht" -#~ msgid "unknown repeat type `~S'" -#~ msgstr "onbekend herhaaltype `~S'" - -#, fuzzy -#~ msgid "See define-music-types.scm for supported repeats" -#~ msgstr "Zie music-types.scm voor ondersteunde herhalingen" - #~ msgid "Invalid property operation ~a" #~ msgstr "Ongeldige eigenschap operatie ~a" @@ -4249,18 +4232,9 @@ msgstr "" #~ msgid "undefined: ~S" #~ msgstr "ongedefiniëerd: ~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)" @@ -4288,9 +4262,6 @@ msgstr "" #~ 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." @@ -4312,9 +4283,6 @@ msgstr "" #~ msgid "don't run LilyPond" #~ msgstr "draai LilyPond niet" -#~ msgid "produce MIDI output only" -#~ msgstr "produceer alleen MIDI uitvoer" - #~ msgid "set the resolution of the preview to RES" #~ msgstr "zet de resolutie voor het testbeeld op RES" @@ -4463,9 +4431,6 @@ msgstr "" #~ msgid "distance=%f" #~ msgstr "afstand=%f" -#~ msgid "NaN" -#~ msgstr "NaN" - #~ msgid "no one to print a repeat brace" #~ msgstr "niemand om een herhalings haak af te drukken" @@ -4568,15 +4533,9 @@ msgstr "" #~ 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)" @@ -4625,15 +4584,6 @@ msgstr "" #~ msgid "Report errors to %(mail_address)s." #~ msgstr "Meld fouten naar %(mail_address)s." -#~ msgid "French" -#~ msgstr "Frans" - -#~ msgid "Spanish" -#~ msgstr "Spaans" - -#~ msgid "German" -#~ msgstr "Duits" - #~ msgid "" #~ "vertical alignment called before line-breaking.\n" #~ "Only do cross-staff spanners with PianoStaff." diff --git a/python/book_texinfo.py b/python/book_texinfo.py index 226ec8eb6f..1055615d67 100644 --- a/python/book_texinfo.py +++ b/python/book_texinfo.py @@ -170,6 +170,8 @@ TEXINFO_INSPECTION_DOCUMENT = r''' @message{Global: textwidth=@the@hsize,exampleindent=@the@lispnarrowing} +dummy + @bye ''' diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index 362080ed9b..edd70f216d 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -306,6 +306,87 @@ line-length. new-props (markup #:draw-dashed-line dest)))) +(define-markup-command (draw-squiggle-line layout props sq-length dest eq-end?) + (number? number-pair? boolean?) + #:category graphic + #:properties ((thickness 0.5) + (angularity 0) + (height 0.5) + (orientation 1)) + " +@cindex drawing squiggled lines within text + +A squiggled line. + +If @code{eq-end?} is set to @code{#t}, it is ensured the squiggled line ends +with a bow in same direction as the starting one. @code{sq-length} is the +length of the first bow. @code{dest} is the end point of the squiggled line. +To match @code{dest} the squiggled line is scaled accordingly. +Its appearance may be customized by overrides for @code{thickness}, +@code{angularity}, @code{height} and @code{orientation}. +@lilypond[verbatim,quote] +\\markup + \\column { + \\draw-squiggle-line #0.5 #'(6 . 0) ##t + \\override #'(orientation . -1) + \\draw-squiggle-line #0.5 #'(6 . 0) ##t + \\draw-squiggle-line #0.5 #'(6 . 0) ##f + \\override #'(height . 1) + \\draw-squiggle-line #0.5 #'(6 . 0) ##t + \\override #'(thickness . 5) + \\draw-squiggle-line #0.5 #'(6 . 0) ##t + \\override #'(angularity . 2) + \\draw-squiggle-line #0.5 #'(6 . 0) ##t + } +@end lilypond" + (let* ((line-thickness (ly:output-def-lookup layout 'line-thickness)) + (thick (* thickness line-thickness)) + (x (car dest)) + (y (cdr dest)) + (length-to-print (magnitude (make-rectangular x y))) + ;; Make a guess how many bows may be needed + (guess (max 1 (truncate (/ length-to-print sq-length)))) + ;; If `eq-end?' is set #t, make sure squiggle-line starts and ends + ;; with a bow in same direction + (amount (if (and (even? guess) eq-end?) (1+ guess) guess)) + ;; The lined-up bows needs to fit `length-to-print' + ;; Thus scale the length of first bow accordingly + ;; Other bows are copies + (guessed-squiggle-line-length (* amount sq-length)) + (line-length-diff (- length-to-print guessed-squiggle-line-length)) + (line-length-diff-for-each-squiggle + (/ line-length-diff amount)) + (first-bow-length (+ sq-length line-length-diff-for-each-squiggle)) + ;; Get first bows + ;; TODO two bows are created via `make-bow-stencil' + ;; cheaper to use `ly:stencil-scale'? + (first-bow-end-coord + (cons + (/ (* first-bow-length x) length-to-print) + (/ (* first-bow-length y) length-to-print))) + (init-bow + (lambda (o) + (make-bow-stencil + '(0 . 0) + first-bow-end-coord + thick angularity height o))) + (init-bow-up (init-bow orientation)) + (init-bow-down (init-bow (- orientation))) + ;; Get a list of starting-points for the bows + (list-of-starts + (map + (lambda (n) + (cons + (* n (car first-bow-end-coord)) + (* n (cdr first-bow-end-coord)))) + (iota amount)))) + ;; The final stencil: lined-up bows + (apply ly:stencil-add + (map + (lambda (stil pt) (ly:stencil-translate stil pt)) + (circular-list init-bow-up init-bow-down) + list-of-starts)))) + (define-markup-command (draw-hline layout props) () #:category graphic @@ -3543,9 +3624,12 @@ A feta brace in point size @var{size}, rotated 180 degrees. Construct a note symbol, with stem and flag. By using fractional values for @var{dir}, longer or shorter stems can be obtained. -Supports all note-head-styles. +Supports all note-head-styles. Ancient note-head-styles will get +mensural-style-flags. @code{flag-style} may be overridden independently. Supported flag-styles are @code{default}, @code{old-straight-flag}, -@code{modern-straight-flag} and @code{flat-flag}. +@code{modern-straight-flag}, @code{flat-flag}, @code{mensural} and +@code{neomensural}. The latter two flag-styles will both result in +mensural-flags. Both are supplied for convenience. @lilypond[verbatim,quote] \\markup { @@ -3556,7 +3640,8 @@ Supported flag-styles are @code{default}, @code{old-straight-flag}, @end lilypond" (define (get-glyph-name-candidates dir log style) (map (lambda (dir-name) - (format #f "noteheads.~a~a" dir-name + (format #f "noteheads.~a~a" + dir-name (if (and (symbol? style) (not (equal? 'default style))) (select-head-glyph style (min log 2)) @@ -3642,7 +3727,9 @@ Supported flag-styles are @code{default}, @code{old-straight-flag}, (sign dir) log 'default)) result))) (head-glyph (ly:font-get-glyph font head-glyph-name)) - (ancient-flags? (or (eq? style 'mensural) (eq? style 'neomensural))) + (ancient-flags? + (member style + '(mensural neomensural petrucci semipetrucci blackpetrucci))) (attach-indices (ly:note-head::stem-attachment font head-glyph-name)) (stem-length (* size-factor (max 3 (- log 1)))) ;; With ancient-flags we want a tighter stem @@ -3658,7 +3745,10 @@ Supported flag-styles are @code{default}, @code{old-straight-flag}, (cdr attach-indices))))) ;; For a tighter stem (with ancient-flags) the stem-width has to be ;; adjusted. - (stem-X-corr (if ancient-flags? (* 0.5 dir stem-thickness) 0)) + (stem-X-corr + (if (or ancient-flags? + (member flag-style '(mensural neomensural))) + (* 0.5 dir stem-thickness) 0)) (stem-glyph (and (> log 0) (ly:round-filled-box (ordered-cons (+ stem-X-corr (car attach-off)) @@ -3696,11 +3786,15 @@ Supported flag-styles are @code{default}, @code{old-straight-flag}, flat-flag) (else (ly:font-get-glyph font - (format #f (if ancient-flags? - "flags.mensural~a2~a" - "flags.~a~a") - (if (> dir 0) "u" "d") - log)))) + (format #f + (if (or (member flag-style + '(mensural neomensural)) + (and ancient-flags? + (null? flag-style))) + "flags.mensural~a2~a" + "flags.~a~a") + (if (> dir 0) "u" "d") + log)))) (cons (+ (car attach-off) ;; For tighter stems (with ancient-flags) the ;; flag has to be adjusted different. diff --git a/scm/lily.scm b/scm/lily.scm index c670eb15bf..eb487d33e9 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -507,7 +507,8 @@ messages into errors.") (and (eq? PLATFORM 'windows) (> file-name-length 2) (eq? (string-ref file-name 1) #\:) - (eq? (string-ref file-name 2) #\/)))))) + (or (eq? (string-ref file-name 2) #\\) + (eq? (string-ref file-name 2) #\/))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; If necessary, emulate Guile V2 module_export_all! for Guile V1.8.n diff --git a/scm/music-functions.scm b/scm/music-functions.scm index 325da29dd5..9c36ceaf4d 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -1699,173 +1699,136 @@ on the same staff line." (cons #f (not (or (equal? acc key-acc) (and (equal? entrybn barnum) (equal? entrymp measurepos))))))))) -(define-public (set-accidentals-properties extra-natural - auto-accs auto-cauts - context) - (context-spec-music - (make-sequential-music - (append (if (boolean? extra-natural) - (list (make-property-set 'extraNatural extra-natural)) - '()) - (list (make-property-set 'autoAccidentals auto-accs) - (make-property-set 'autoCautionaries auto-cauts)))) - context)) - -(define-public (set-accidental-style style . rest) - "Set accidental style to @var{style}. Optionally take a context -argument, e.g. @code{'Staff} or @code{'Voice}. The context defaults -to @code{Staff}, except for piano styles, which use @code{GrandStaff} -as a context." - (let ((context (if (pair? rest) - (car rest) 'Staff)) - (pcontext (if (pair? rest) - (car rest) 'GrandStaff))) - (cond +(define-session-public accidental-styles + ;; An alist containing specification for all accidental styles. + ;; Each accidental style needs three entries for the context properties + ;; extraNatural, autoAccidentals and autoCautionaries. + ;; An optional fourth entry may specify a default context for the accidental + ;; style, for use with the piano styles. + `( ;; accidentals as they were common in the 18th century. - ((equal? style 'default) - (set-accidentals-properties #t - `(Staff ,(make-accidental-rule 'same-octave 0)) - '() - context)) + (default #t + (Staff ,(make-accidental-rule 'same-octave 0)) + ()) ;; accidentals from one voice do NOT get canceled in other voices - ((equal? style 'voice) - (set-accidentals-properties #t - `(Voice ,(make-accidental-rule 'same-octave 0)) - '() - context)) - ;; accidentals as suggested by Kurt Stone, Music Notation in the 20th century. - ;; This includes all the default accidentals, but accidentals also needs canceling - ;; in other octaves and in the next measure. - ((equal? style 'modern) - (set-accidentals-properties #f - `(Staff ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1)) - '() - context)) + (voice #t + (Voice ,(make-accidental-rule 'same-octave 0)) + ()) + ;; accidentals as suggested by Kurt Stone in + ;; ‘Music Notation in the 20th century’. + ;; This includes all the default accidentals, but accidentals also need + ;; canceling in other octaves and in the next measure. + (modern #f + (Staff ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1)) + ()) ;; the accidentals that Stone adds to the old standard as cautionaries - ((equal? style 'modern-cautionary) - (set-accidentals-properties #f - `(Staff ,(make-accidental-rule 'same-octave 0)) - `(Staff ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1)) - context)) - ;; same as modern, but accidentals different from the key signature are always - ;; typeset - unless they directly follow a note of the same pitch. - ((equal? style 'neo-modern) - (set-accidentals-properties #f - `(Staff ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - ,neo-modern-accidental-rule) - '() - context)) - ((equal? style 'neo-modern-cautionary) - (set-accidentals-properties #f - `(Staff ,(make-accidental-rule 'same-octave 0)) - `(Staff ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - ,neo-modern-accidental-rule) - context)) - ((equal? style 'neo-modern-voice) - (set-accidentals-properties #f - `(Voice ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - ,neo-modern-accidental-rule - Staff ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - ,neo-modern-accidental-rule) - '() - context)) - ((equal? style 'neo-modern-voice-cautionary) - (set-accidentals-properties #f - `(Voice ,(make-accidental-rule 'same-octave 0)) - `(Voice ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - ,neo-modern-accidental-rule - Staff ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - ,neo-modern-accidental-rule) - context)) + (modern-cautionary #f + (Staff ,(make-accidental-rule 'same-octave 0)) + (Staff ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1))) + ;; same as modern, but accidentals different from the key signature are + ;; always typeset - unless they directly follow a note of the same pitch. + (neo-modern #f + (Staff ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + ,neo-modern-accidental-rule) + ()) + (neo-modern-cautionary #f + (Staff ,(make-accidental-rule 'same-octave 0)) + (Staff ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + ,neo-modern-accidental-rule)) + (neo-modern-voice #f + (Voice ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + ,neo-modern-accidental-rule + Staff + ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + ,neo-modern-accidental-rule) + ()) + (neo-modern-voice-cautionary #f + (Voice ,(make-accidental-rule 'same-octave 0)) + (Voice ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + ,neo-modern-accidental-rule + Staff + ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + ,neo-modern-accidental-rule)) + ;; Accidentals as they were common in dodecaphonic music with no tonality. ;; Each note gets one accidental. - ((equal? style 'dodecaphonic) - (set-accidentals-properties #f - `(Staff ,(lambda (c p bn mp) '(#f . #t))) - '() - context)) + (dodecaphonic #f + (Staff ,(lambda (c p bn mp) '(#f . #t))) + ()) ;; As in dodecaphonic style with the exception that immediately ;; repeated notes (in the same voice) don't get an accidental - ((equal? style 'dodecaphonic-no-repeat) - (set-accidentals-properties #f - `(Staff ,dodecaphonic-no-repeat-rule) - '() - context)) + (dodecaphonic-no-repeat #f + (Staff ,dodecaphonic-no-repeat-rule) + ()) ;; Variety of the dodecaphonic style. Each note gets an accidental, ;; except notes that were already handled in the same measure. - ((equal? style 'dodecaphonic-first) - (set-accidentals-properties #f - `(Staff ,(make-accidental-dodecaphonic-rule 'same-octave 0)) - '() - context)) + (dodecaphonic-first #f + (Staff ,(make-accidental-dodecaphonic-rule 'same-octave 0)) + ()) ;; Multivoice accidentals to be read both by musicians playing one voice - ;; and musicians playing all voices. - ;; Accidentals are typeset for each voice, but they ARE canceled across voices. - ((equal? style 'modern-voice) - (set-accidentals-properties #f - `(Voice ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - Staff ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1)) - '() - context)) - ;; same as modernVoiceAccidental eccept that all special accidentals are typeset - ;; as cautionaries - ((equal? style 'modern-voice-cautionary) - (set-accidentals-properties #f - `(Voice ,(make-accidental-rule 'same-octave 0)) - `(Voice ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - Staff ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1)) - context)) - ;; stone's suggestions for accidentals on grand staff. - ;; Accidentals are canceled across the staves in the same grand staff as well - ((equal? style 'piano) - (set-accidentals-properties #f - `(Staff ,(make-accidental-rule 'same-octave 0) - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - GrandStaff - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1)) - '() - pcontext)) - ((equal? style 'piano-cautionary) - (set-accidentals-properties #f - `(Staff ,(make-accidental-rule 'same-octave 0)) - `(Staff ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1) - GrandStaff - ,(make-accidental-rule 'any-octave 0) - ,(make-accidental-rule 'same-octave 1)) - pcontext)) - - ;; same as modern, but cautionary accidentals are printed for all sharp or flat - ;; tones specified by the key signature. - ((equal? style 'teaching) - (set-accidentals-properties #f - `(Staff ,(make-accidental-rule 'same-octave 0)) - `(Staff ,(make-accidental-rule 'same-octave 1) - ,teaching-accidental-rule) - context)) + ;; and musicians playing all voices. Accidentals are typeset for each + ;; voice, but they ARE canceled across voices. + (modern-voice #f + (Voice ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + Staff + ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1)) + ()) + ;; same as modernVoiceAccidental except that all special accidentals + ;; are typeset as cautionaries + (modern-voice-cautionary #f + (Voice ,(make-accidental-rule 'same-octave 0)) + (Voice ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + Staff + ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1))) + + ;; Stone's suggestions for accidentals on grand staff. + ;; Accidentals are canceled across the staves + ;; in the same grand staff as well + (piano #f + (Staff ,(make-accidental-rule 'same-octave 0) + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + GrandStaff + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1)) + () + GrandStaff) + (piano-cautionary #f + (Staff ,(make-accidental-rule 'same-octave 0)) + (Staff ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1) + GrandStaff + ,(make-accidental-rule 'any-octave 0) + ,(make-accidental-rule 'same-octave 1)) + GrandStaff) + + ;; same as modern, but cautionary accidentals are printed for all + ;; non-natural tones specified by the key signature. + (teaching #f + (Staff ,(make-accidental-rule 'same-octave 0)) + (Staff ,(make-accidental-rule 'same-octave 1) + ,teaching-accidental-rule)) ;; do not set localAlterations when a note alterated differently from ;; localAlterations is found. @@ -1873,22 +1836,41 @@ as a context." ;; remembered for the duration of a measure. ;; accidentals not being remembered, causing accidentals always to ;; be typeset relative to the time signature - ((equal? style 'forget) - (set-accidentals-properties '() - `(Staff ,(make-accidental-rule 'same-octave -1)) - '() - context)) + (forget () + (Staff ,(make-accidental-rule 'same-octave -1)) + ()) ;; Do not reset the key at the start of a measure. Accidentals will be ;; printed only once and are in effect until overridden, possibly many ;; measures later. - ((equal? style 'no-reset) - (set-accidentals-properties '() - `(Staff ,(make-accidental-rule 'same-octave #t)) - '() - context)) - (else - (ly:warning (_ "unknown accidental style: ~S") style) - (make-sequential-music '()))))) + (no-reset () + (Staff ,(make-accidental-rule 'same-octave #t)) + ()) + )) + +(define-public (set-accidental-style style . rest) + "Set accidental style to @var{style}. Optionally take a context +argument, e.g. @code{'Staff} or @code{'Voice}. The context defaults +to @code{Staff}, except for piano styles, which use @code{GrandStaff} +as a context." + (let ((spec (assoc-get style accidental-styles))) + (if spec + (let ((extra-natural (first spec)) + (auto-accs (second spec)) + (auto-cauts (third spec)) + (context (cond ((pair? rest) (car rest)) + ((= 4 (length spec)) (fourth spec)) + (else 'Staff)))) + (context-spec-music + (make-sequential-music + (append (if (boolean? extra-natural) + (list (make-property-set 'extraNatural extra-natural)) + '()) + (list (make-property-set 'autoAccidentals auto-accs) + (make-property-set 'autoCautionaries auto-cauts)))) + context)) + (begin + (ly:warning (_ "unknown accidental style: ~S") style) + (make-sequential-music '()))))) (define-public (invalidate-alterations context) "Invalidate alterations in @var{context}. diff --git a/scm/output-lib.scm b/scm/output-lib.scm index dcec6ae939..733531c3c7 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -395,56 +395,64 @@ (define-public (select-head-glyph style log) "Select a note head glyph string based on note head style @var{style} and duration-log @var{log}." - (case style - ;; "default" style is directly handled in note-head.cc as a - ;; special case (HW says, mainly for performance reasons). - ;; Therefore, style "default" does not appear in this case - ;; statement. -- jr - ((xcircle) "2xcircle") - ((harmonic) "0harmonic") - ((harmonic-black) "2harmonic") - ((harmonic-mixed) (if (<= log 1) "0harmonic" - "2harmonic")) - ((baroque) - ;; Oops, I actually would not call this "baroque", but, for - ;; backwards compatibility to 1.4, this is supposed to take - ;; brevis, longa and maxima from the neo-mensural font and all - ;; other note heads from the default font. -- jr - (if (< log 0) - (string-append (number->string log) "neomensural") - (number->string log))) - ((altdefault) - ;; Like default, but brevis is drawn with double vertical lines - (if (= log -1) - (string-append (number->string log) "double") - (number->string log))) - ((mensural) - (string-append (number->string log) (symbol->string style))) - ((petrucci) - (if (< log 0) - (string-append (number->string log) "mensural") - (string-append (number->string log) (symbol->string style)))) - ((blackpetrucci) - (if (< log 0) - (string-append (number->string log) "blackmensural") - (string-append (number->string log) (symbol->string style)))) - ((semipetrucci) - (if (< log 0) - (string-append (number->string log) "semimensural") - (string-append (number->string log) "petrucci"))) - ((neomensural) - (string-append (number->string log) (symbol->string style))) - ((kievan) - (string-append (number->string log) "kievan")) - (else - (if (string-match "vaticana*|hufnagel*|medicaea*" (symbol->string style)) - (symbol->string style) - (string-append (number->string (max 0 log)) - (symbol->string style)))))) + (if (symbol? style) + (case style + ;; "default" style is directly handled in note-head.cc as a + ;; special case (HW says, mainly for performance reasons). + ;; Therefore, style "default" does not appear in this case + ;; statement. -- jr + ;; Though we not to care if style is '(), see below. -- harm + ((xcircle) "2xcircle") + ((harmonic) "0harmonic") + ((harmonic-black) "2harmonic") + ((harmonic-mixed) (if (<= log 1) "0harmonic" + "2harmonic")) + ((baroque) + ;; Oops, I actually would not call this "baroque", but, for + ;; backwards compatibility to 1.4, this is supposed to take + ;; brevis, longa and maxima from the neo-mensural font and all + ;; other note heads from the default font. -- jr + (if (< log 0) + (string-append (number->string log) "neomensural") + (number->string log))) + ((altdefault) + ;; Like default, but brevis is drawn with double vertical lines + (if (= log -1) + (string-append (number->string log) "double") + (number->string log))) + ((mensural) + (string-append (number->string log) (symbol->string style))) + ((petrucci) + (if (< log 0) + (string-append (number->string log) "mensural") + (string-append (number->string log) (symbol->string style)))) + ((blackpetrucci) + (if (< log 0) + (string-append (number->string log) "blackmensural") + (string-append (number->string log) (symbol->string style)))) + ((semipetrucci) + (if (< log 0) + (string-append (number->string log) "semimensural") + (string-append (number->string log) "petrucci"))) + ((neomensural) + (string-append (number->string log) (symbol->string style))) + ((kievan) + (string-append (number->string log) "kievan")) + (else + (if (string-match "vaticana*|hufnagel*|medicaea*" + (symbol->string style)) + (symbol->string style) + (string-append (number->string (max 0 log)) + (symbol->string style))))) + ;; 'vaticana-ligature-interface has a 'glyph-name-property for NoteHead. + ;; Probably best to return an empty list here, if called in a context + ;; without setting 'style, i.e. 'style is '(), to avoid a scheme-error. + '())) (define-public (note-head::calc-glyph-name grob) (let* ((style (ly:grob-property grob 'style)) - (log (if (string-match "kievan*" (symbol->string style)) + (log (if (and (symbol? style) + (string-match "kievan*" (symbol->string style))) (min 3 (ly:grob-property grob 'duration-log)) (min 2 (ly:grob-property grob 'duration-log))))) (select-head-glyph style log))) diff --git a/scm/output-ps.scm b/scm/output-ps.scm index 70b13848e4..69f2772039 100644 --- a/scm/output-ps.scm +++ b/scm/output-ps.scm @@ -157,10 +157,6 @@ (ly:in-event-class? cause t)) point-and-click)))) (let* ((location (ly:input-file-line-char-column music-origin)) - (raw-file (car location)) - (file (if (is-absolute? raw-file) - raw-file - (string-append (ly-getcwd) "/" raw-file))) (x-ext (ly:grob-extent grob grob X)) (y-ext (ly:grob-extent grob grob Y))) @@ -175,7 +171,7 @@ ;; Backslashes are not valid ;; file URI path separators. (ly:string-percent-encode - (ly:string-substitute "\\" "/" file)) + (ly:string-substitute "\\" "/" (car location))) (cadr location) (caddr location) diff --git a/scm/output-svg.scm b/scm/output-svg.scm index 78bda3c35b..ca086318d7 100644 --- a/scm/output-svg.scm +++ b/scm/output-svg.scm @@ -485,18 +485,14 @@ (else (any (lambda (t) (ly:in-event-class? cause t)) point-and-click))) - (let* ((location (ly:input-file-line-char-column music-origin)) - (raw-file (car location)) - (file (if (is-absolute? raw-file) - raw-file - (string-append (ly-getcwd) "/" raw-file)))) - + (let* ((location (ly:input-file-line-char-column music-origin))) + (ly:format "\n" ;; Backslashes are not valid ;; file URI path separators. (ly:string-percent-encode - (ly:string-substitute "\\" "/" file)) - + (ly:string-substitute "\\" "/" (car location))) + (cadr location) (caddr location) (1+ (cadddr location)))))))) diff --git a/scm/stencil.scm b/scm/stencil.scm index bec0301650..bda7e29a8f 100644 --- a/scm/stencil.scm +++ b/scm/stencil.scm @@ -49,8 +49,6 @@ The higher the value of number @var{angularity}, the more angular the shape of the bow. @var{bow-height} determines the height of the bow. @var{orientation} determines, whether the bow is concave or convex. -@var{orientation} should be set to @val{-1} or @val{1}, other values are -possible but will affect the bow's height as well. Both variables are supplied to support independent usage. Done by calculating a horizontal unit-bow first, then moving all control-points @@ -77,9 +75,9 @@ Limitation: s-curves are currently not supported. ;;;; (1) calculate control-points for the horizontal unit-bow, ;; y-values for 2nd/3rd control-points (outer-control - (* 4/3 orientation (/ bow-height length-to-print))) + (* 4/3 (sign orientation) (/ bow-height length-to-print))) (inner-control - (* orientation + (* (sign orientation) (- (abs outer-control) (/ thickness length-to-print)))) ;; x-values for 2nd/3rd control-points depending on `angularity' (offset-index @@ -801,12 +799,19 @@ the white outline extends past the extents of stencil @var{stil}." (stencil-with-color (ly:round-filled-box x-ext y-ext blot) color) stil))) -(define-public (stencil-whiteout stil style thickness line-thickness) - "@var{style} is a symbol that determines the shape of the white -background. @var{thickness} is how far, as a multiple of -@var{line-thickness}, the white background extends past the extents -of stencil @var{stil}. If @var{thickness} has not been specified -by the user, an appropriate default is chosen based on @var{style}." +(define*-public (stencil-whiteout stil + #:optional style thickness (line-thickness 0.1)) + "@var{style}, @var{thickness} and @var{line-thickness} are optional +arguments. If set, @var{style} determines the shape of the white +background. Given @code{'outline} the white background is produced +by @code{stencil-whiteout-outline}, given @code{'rounded-box} it is +produced by @code{stencil-whiteout-box} with rounded corners, given +other arguments (e.g. @code{'box}) or when unspecified it defaults to +@code{stencil-whiteout-box} with square corners. If @var{thickness} is +specified it determines how far, as a multiple of @var{line-thickness}, +the white background extends past the extents of stencil @var{stil}. If +@var{thickness} has not been specified, an appropriate default is chosen +based on @var{style}." (let ((thick (* line-thickness (if (number? thickness) thickness diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make index 063a346091..4747347a90 100644 --- a/stepmake/stepmake/texinfo-rules.make +++ b/stepmake/stepmake/texinfo-rules.make @@ -68,9 +68,9 @@ endif $(outdir)/%.pdf: $(outdir)/%.texi $(outdir)/version.itexi $(outdir)/%.pdf.omf $(outdir)/weblinks.itexi | $(OUT_TEXINFO_MANUALS) ifeq ($(WEB_VERSION),yes) - $(buildscript-dir)/run-and-check "cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) -D web_version -I $(abs-src-dir) $(TEXINFO_PAPERSIZE_OPTION) $(\^^M' is replaced by a single space. % @@ -485,14 +519,13 @@ % \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} + +% \parseargdef - define a command taking an argument on the line +% % \parseargdef\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} -% -% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my -% favourite TeX trick. --kasal, 16nov03 - \def\parseargdef#1{% \expandafter \doparseargdef \csname\string#1\endcsname #1% } @@ -682,6 +715,12 @@ \endgraf % Not \par, as it may have been set to \lisppar. \global\dimen1 = \prevdepth \egroup % End the \vtop. + \addgroupbox + \prevdepth = \dimen1 + \checkinserts +} + +\def\addgroupbox{ % \dimen0 is the vertical size of the group's box. \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox % \dimen2 is how much space is left on the page (more or less). @@ -694,9 +733,8 @@ \fi \fi \box\groupbox - \prevdepth = \dimen1 - \checkinserts } + % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. @@ -939,12 +977,20 @@ where each line of input produces a line of output.} % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment % -\def\comment{\begingroup \catcode`\^^M=\other% +\def\comment{\begingroup \catcode`\^^M=\active% +\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other\commentxxx}% + +{\catcode`\^^M=\active% +\gdef\commentxxx#1^^M{\endgroup% +\futurelet\nexttoken\commentxxxx}% +\gdef\commentxxxx{\ifx\nexttoken\aftermacro\expandafter\comment\fi}% +} + +\def\c{\begingroup \catcode`\^^M=\active% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% -\commentxxx} -{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} -% -\let\c=\comment +\cxxx} +{\catcode`\^^M=\active \gdef\cxxx#1^^M{\endgroup}} +% See comment in \scanmacro about why the definitions of @c and @comment differ % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. @@ -1030,45 +1076,8 @@ where each line of input produces a line of output.} % @refill is a no-op. \let\refill=\relax -% If working on a large document in chapters, it is convenient to -% be able to disable indexing, cross-referencing, and contents, for test runs. -% This is done with @novalidate (before @setfilename). -% -\newif\iflinks \linkstrue % by default we want the aux files. -\let\novalidate = \linksfalse - -% @setfilename is done at the beginning of every texinfo file. -% So open here the files we need to have open while reading the input. -% This makes it possible to make a .fmt file for texinfo. -\def\setfilename{% - \fixbackslash % Turn off hack to swallow `\input texinfo'. - \iflinks - \tryauxfile - % Open the new aux file. TeX will close it automatically at exit. - \immediate\openout\auxfile=\jobname.aux - \fi % \openindices needs to do some work in any case. - \openindices - \let\setfilename=\comment % Ignore extra @setfilename cmds. - % - % If texinfo.cnf is present on the system, read it. - % Useful for site-wide @afourpaper, etc. - \openin 1 texinfo.cnf - \ifeof 1 \else \input texinfo.cnf \fi - \closein 1 - % - \comment % Ignore the actual filename. -} - -% Called from \setfilename. -% -\def\openindices{% - \newindex{cp}% - \newcodeindex{fn}% - \newcodeindex{vr}% - \newcodeindex{tp}% - \newcodeindex{ky}% - \newcodeindex{pg}% -} +% @setfilename INFO-FILENAME - ignored +\let\setfilename=\comment % @bye. \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} @@ -1086,6 +1095,7 @@ where each line of input produces a line of output.} \newtoks\toksC \newtoks\toksD \newbox\boxA +\newbox\boxB \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest @@ -1143,8 +1153,8 @@ output) for that.)} \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % - % k sets the color for filling (usual text, etc.); - % K sets the color for stroking (thin rules, e.g., normal _'s). + % rg sets the color for filling (usual text, etc.); + % RG sets the color for stroking (thin rules, e.g., normal _'s). \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, @@ -1822,8 +1832,10 @@ end % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1}{OT1} \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} +\setfont\defsl\slshape{10}{\magstep1}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf +\let\tenttsl=\defttsl \let\tensl=\defsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} @@ -1954,8 +1966,10 @@ end % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstephalf}{OT1} \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} +\setfont\defsl\slshape{10}{\magstephalf}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf +\let\tensl=\defsl \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} @@ -2426,8 +2440,8 @@ end % \catcode`@=11 \def\plainfrenchspacing{% - \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m - \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + \sfcode`\.=\@m \sfcode`\?=\@m \sfcode`\!=\@m + \sfcode`\:=\@m \sfcode`\;=\@m \sfcode`\,=\@m \def\endofsentencespacefactor{1000}% for @. and friends } \def\plainnonfrenchspacing{% @@ -2615,9 +2629,9 @@ end % Allow line breaks around only a few characters (only). \def\urefcatcodes{% - \catcode\ampChar=\active \catcode\dotChar=\active - \catcode\hashChar=\active \catcode\questChar=\active - \catcode\slashChar=\active + \catcode`\&=\active \catcode`\.=\active + \catcode`\#=\active \catcode`\?=\active + \catcode`\/=\active } { \urefcatcodes @@ -2774,11 +2788,6 @@ end % \def\dmn#1{\thinspace #1} -% @l was never documented to mean ``switch to the Lisp font'', -% and it is not used as such in any manual I can find. We need it for -% Polish suppressed-l. --karl, 22sep96. -%\def\l#1{{\li #1}\null} - % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. @@ -2831,23 +2840,24 @@ end \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% - \tex - \mathunderscore - \let\\ = \mathbackslash - \mathactive - % make the texinfo accent commands work in math mode - \let\"=\ddot - \let\'=\acute - \let\==\bar - \let\^=\hat - \let\`=\grave - \let\u=\breve - \let\v=\check - \let\~=\tilde - \let\dotaccent=\dot - % have to provide another name for sup operator - \let\mathopsup=\sup - $\finishmath + \ifmmode\else % only go into math if not in math mode already + \tex + \mathunderscore + \let\\ = \mathbackslash + \mathactive + % make the texinfo accent commands work in math mode + \let\"=\ddot + \let\'=\acute + \let\==\bar + \let\^=\hat + \let\`=\grave + \let\u=\breve + \let\v=\check + \let\~=\tilde + \let\dotaccent=\dot + % have to provide another name for sup operator + \let\mathopsup=\sup + $\expandafter\finishmath\fi } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. @@ -3389,7 +3399,7 @@ end \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages -% Now make TeX use those variables +% Now make \makeheadline and \makefootline in Plain TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline @@ -3445,6 +3455,10 @@ end % @everyheadingmarks % @everyfootingmarks +% These define \getoddheadingmarks, \getevenheadingmarks, +% \getoddfootingmarks, and \getevenfootingmarks, each to one of +% \gettopheadingmarks, \getbottomheadingmarks. +% \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} @@ -3492,7 +3506,7 @@ end \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} +\global\oddheadline={\line{\thischapterheading\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \let\contentsalignmacro = \chappager @@ -3503,8 +3517,8 @@ end \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} +\global\evenheadline={\line{\thischapterheading\hfil\folio}} +\global\oddheadline={\line{\thischapterheading\hfil\folio}} \global\let\contentsalignmacro = \chappager } \def\HEADINGSon{\HEADINGSdouble} @@ -3515,7 +3529,7 @@ end \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} +\global\oddheadline={\line{\thischapterheading\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } @@ -3523,8 +3537,8 @@ end \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} +\global\evenheadline={\line{\thischapterheading\hfil\folio}} +\global\oddheadline={\line{\thischapterheading\hfil\folio}} \global\let\contentsalignmacro = \chappager } @@ -3734,7 +3748,12 @@ end \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% % - \vadjust{\penalty 1200}}% not good to break after first line of item. + \ifinner\else + \vadjust{\penalty 1200}% not good to break after first line of item. + \fi + % We can be in inner vertical mode in a footnote, although an + % @itemize looks awful there. + }% \flushcr } @@ -4356,19 +4375,16 @@ end % except not \outer, so it can be used within macros and \if's. \edef\newwrite{\makecsname{ptexnewwrite}} -% \newindex {foo} defines an index named foo. -% It automatically defines \fooindex such that -% \fooindex ...rest of line... puts an entry in the index foo. -% It also defines \fooindfile to be the number of the output channel for -% the file that accumulates this index. The file's extension is foo. +% \newindex {foo} defines an index named IX. +% It automatically defines \IXindex such that +% \IXindex ...rest of line... puts an entry in the index IX. +% It also defines \IXindfile to be the number of the output channel for +% the file that accumulates this index. The file's extension is IX. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% - \iflinks - \expandafter\newwrite \csname#1indfile\endcsname - \openout \csname#1indfile\endcsname \jobname.#1 % Open the file - \fi + \expandafter\chardef\csname#1indfile\endcsname=0 \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } @@ -4382,14 +4398,19 @@ end \def\defcodeindex{\parsearg\newcodeindex} % \def\newcodeindex#1{% - \iflinks - \expandafter\newwrite \csname#1indfile\endcsname - \openout \csname#1indfile\endcsname \jobname.#1 - \fi + \expandafter\chardef\csname#1indfile\endcsname=0 \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } +% The default indices: +\newindex{cp}% concepts, +\newcodeindex{fn}% functions, +\newcodeindex{vr}% variables, +\newcodeindex{tp}% types, +\newcodeindex{ky}% keys +\newcodeindex{pg}% and programs. + % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. @@ -4418,26 +4439,19 @@ end \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% } -% Define \doindex, the driver for all \fooindex macros. +% Define \doindex, the driver for all index macros. % Argument #1 is generated by the calling \fooindex macro, -% and it is "foo", the name of the index. - -% \doindex just uses \parsearg; it calls \doind for the actual work. -% This is because \doind is more useful to call from other macros. - -% There is also \dosubind {index}{topic}{subtopic} -% which makes an entry in a two-level index such as the operation index. +% and it the two-letter name of the index. -\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} -\def\singleindexer #1{\doind{\indexname}{#1}} +\def\doindex#1{\edef\indexname{#1}\parsearg\doindexxxx} +\def\doindexxxx #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. -\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} -\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} +\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx} +\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}} -% Take care of Texinfo commands that can appear in an index entry. -% Since there are some commands we want to expand, and others we don't, -% we have to laboriously prevent expansion for those that we don't. +% Used when writing an index entry out to an index file, to prevent +% expansion of Texinfo commands that can appear in an index entry. % \def\indexdummies{% \escapechar = `\\ % use backslash in output files. @@ -4453,31 +4467,6 @@ end \def\{{{\tt\char123}}% \def\}{{\tt\char125}}% % - % I don't entirely understand this, but when an index entry is - % generated from a macro call, the \endinput which \scanmacro inserts - % causes processing to be prematurely terminated. This is, - % apparently, because \indexsorttmp is fully expanded, and \endinput - % is an expandable command. The redefinition below makes \endinput - % disappear altogether for that purpose -- although logging shows that - % processing continues to some further point. On the other hand, it - % seems \endinput does not hurt in the printed index arg, since that - % is still getting written without apparent harm. - % - % Sample source (mac-idx3.tex, reported by Graham Percival to - % help-texinfo, 22may06): - % @macro funindex {WORD} - % @findex xyz - % @end macro - % ... - % @funindex commtest - % This is not enough to reproduce the bug, but it gives the flavor. - % - % Sample whatsit resulting: - % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} - % - % So: - \let\endinput = \empty - % % Do the redefinitions. \commondummies } @@ -4606,6 +4595,8 @@ end } % \commondummiesnofonts: common to \commondummies and \indexnofonts. +% Define \definedumyletter, \definedummyaccent and \definedummyword before +% using. % \def\commondummiesnofonts{% % Control letters and accents. @@ -4674,21 +4665,54 @@ end \definedummyword\verb \definedummyword\w \definedummyword\xref - % - % Consider: - % @macro mkind{arg1,arg2} - % @cindex \arg2\ - % @end macro - % @mkind{foo, bar} - % The space after the comma will end up in the temporary definition - % that we make for arg2 (see \parsemargdef ff.). We want all this to be - % expanded for the sake of the index, so we end up just seeing "bar". - \let\xeatspaces = \eatspaces } % For testing: output @{ and @} in index sort strings as \{ and \}. \newif\ifusebracesinindexes +\let\indexlbrace\relax +\let\indexrbrace\relax + +{\catcode`\@=0 +\catcode`\\=13 + @gdef@backslashdisappear{@def\{}} +} + +{ +\catcode`\<=13 +\catcode`\-=13 +\catcode`\`=13 + \gdef\indexnonalnumdisappear{% + \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax\else + % @set txiindexlquoteignore makes us ignore left quotes in the sort term. + % (Introduced for FSFS 2nd ed.) + \let`=\empty + \fi + % + \expandafter\ifx\csname SETtxiindexbackslashignore\endcsname\relax\else + \backslashdisappear + \fi + % + \expandafter\ifx\csname SETtxiindexhyphenignore\endcsname\relax\else + \def-{}% + \fi + \expandafter\ifx\csname SETtxiindexlessthanignore\endcsname\relax\else + \def<{}% + \fi + \expandafter\ifx\csname SETtxiindexatsignignore\endcsname\relax\else + \def\@{}% + \fi + } + + \gdef\indexnonalnumreappear{% + \useindexbackslash + \let-\normaldash + \let<\normalless + \def\@{@}% + } +} + + % \indexnofonts is used when outputting the strings to sort the index % by, and when constructing control sequence names. It eliminates all % control sequences and just writes whatever the best ASCII sort string @@ -4701,7 +4725,6 @@ end \def\definedummyletter##1{\let##1\empty}% % All control words become @asis by default; overrides below. \let\definedummyword\definedummyaccent - % \commondummiesnofonts % % Don't no-op \tt, since it isn't a user-level command @@ -4714,16 +4737,8 @@ end \def\_{\normalunderscore}% \def\-{}% @- shouldn't affect sorting % - % Unfortunately, texindex is not prepared to handle braces in the - % content at all. So for index sorting, we map @{ and @} to strings - % starting with |, since that ASCII character is between ASCII { and }. - \ifusebracesinindexes - \def\lbracechar{\lbracecmd}% - \def\rbracechar{\rbracecmd}% - \else - \def\lbracechar{|a}% - \def\rbracechar{|b}% - \fi + \def\lbracechar{{\indexlbrace}}% + \def\rbracechar{{\indexrbrace}}% \let\{=\lbracechar \let\}=\rbracechar % @@ -4735,7 +4750,7 @@ end \def\L{L}% \def\OE{OE}% \def\O{O}% - \def\TH{ZZZ}% + \def\TH{TH}% \def\aa{aa}% \def\ae{ae}% \def\dh{dzz}% @@ -4747,7 +4762,7 @@ end \def\o{o}% \def\questiondown{?}% \def\ss{ss}% - \def\th{zzz}% + \def\th{th}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% @@ -4784,9 +4799,6 @@ end \def\result{=>}% \def\textdegree{o}% % - \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax - \else \indexlquoteignore \fi - % % 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. % makeinfo does not expand macros in the argument to @deffn, which ends up @@ -4800,19 +4812,18 @@ end \macrolist } -% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us -% ignore left quotes in the sort term. -{\catcode`\`=\active - \gdef\indexlquoteignore{\let`=\empty}} -\let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? % Most index entries go through here, but \dosubind is the general case. % #1 is the index name, #2 is the entry text. \def\doind#1#2{\dosubind{#1}{#2}{}} -% Workhorse for all \fooindexes. +% There is also \dosubind {index}{topic}{subtopic} +% which makes an entry in a two-level index such as the operation index. +% TODO: Two-level index? Operation index? + +% Workhorse for all indexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- % empty if called from \doind, as we usually are (the main exception % is with most defuns, which call us directly). @@ -4820,6 +4831,7 @@ end \def\dosubind#1#2#3{% \iflinks {% + \requireopenindexfile{#1}% % Store the main index entry text (including the third arg). \toks0 = {#2}% % If third arg is present, precede it with a space. @@ -4835,7 +4847,49 @@ end \fi } -% Write the entry in \toks0 to the index file: +% Check if an index file has been opened, and if not, open it. +\def\requireopenindexfile#1{% +\ifnum\csname #1indfile\endcsname=0 + \expandafter\newwrite \csname#1indfile\endcsname + \edef\suffix{#1}% + % A .fls suffix would conflict with the file extension for the output + % of -recorder, so use .f1s instead. + \ifx\suffix\indexisfl\def\suffix{f1}\fi + % Open the file + \immediate\openout\csname#1indfile\endcsname \jobname.\suffix + % Using \immediate here prevents an object entering into the current box, + % which could confound checks such as those in \safewhatsit for preceding + % skips. +\fi} +\def\indexisfl{fl} + +% Output \ as {\indexbackslash}, because \ is an escape character in +% the index files. +\let\indexbackslash=\relax +{\catcode`\@=0 \catcode`\\=\active + @gdef@useindexbackslash{@def\{{@indexbackslash}}} +} + +% Definition for writing index entry text. +\def\sortas#1{\ignorespaces}% + +% Definition for writing index entry sort key. Should occur at the at +% the beginning of the index entry, like +% @cindex @sortas{september} \september +% The \ignorespaces takes care of following space, but there's no way +% to remove space before it. +{ +\catcode`\-=13 +\gdef\indexwritesortas{% + \begingroup + \indexnonalnumreappear + \indexwritesortasxxx} +\gdef\indexwritesortasxxx#1{% + \xdef\indexsortkey{#1}\endgroup} +} + + +% Write the entry in \toks0 to the index file. % \def\dosubindwrite{% % Put the index entry in the margin if desired. @@ -4845,14 +4899,20 @@ end % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage - \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now - % so it will be output as is; and it will print as backslash. - % - % Process the index entry with all font commands turned off, to - % get the string to sort by. + \useindexbackslash % \indexbackslash isn't defined now so it will be output + % as is; and it will print as backslash. + % Get the string to sort by, by processing the index entry with all + % font commands turned off. {\indexnofonts - \edef\temp{\the\toks0}% need full expansion - \xdef\indexsorttmp{\temp}% + \indexnonalnumdisappear + \xdef\indexsortkey{}% + \let\sortas=\indexwritesortas + \edef\temp{\the\toks0}% + \setbox\dummybox = \hbox{\temp}% Make sure to execute any \sortas + \ifx\indexsortkey\empty + \xdef\indexsortkey{\temp}% + \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi + \fi }% % % Set up the complete index entry, with both the sort key and @@ -4862,10 +4922,11 @@ end % sorted result. \edef\temp{% \write\writeto{% - \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% + \string\entry{\indexsortkey}{\noexpand\folio}{\the\toks0}}% }% \temp } +\newbox\dummybox % used above % Take care of unwanted page breaks/skips around a whatsit: % @@ -4991,7 +5052,9 @@ end % as its first line, TeX doesn't complain about mismatched braces % (because it thinks @} is a control sequence). \catcode`\@ = 11 - \openin 1 \jobname.#1s + % See comment in \requireopenindexfile. + \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi + \openin 1 \jobname.\indexname s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the @@ -4999,60 +5062,82 @@ end % there is some text. \putwordIndexNonexistent \else + \catcode`\\ = 0 + \escapechar = `\\ % % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. - \read 1 to \temp + \read 1 to \thisline \ifeof 1 \putwordIndexIsEmpty \else % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. - \def\indexbackslash{\backslashcurfont}% - \catcode`\\ = 0 - \escapechar = `\\ + \def\indexbackslash{\ttbackslash}% + \let\indexlbrace\{ % Likewise, set these sequences for braces + \let\indexrbrace\} % used in the sort key. \begindoublecolumns - \input \jobname.#1s + \let\entryorphanpenalty=\indexorphanpenalty + % + % Read input from the index file line by line. + \loopdo + \ifeof1 + \let\firsttoken\relax + \else + \read 1 to \nextline + \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}% + \act + \fi + \thisline + % + \ifeof1\else + \let\thisline\nextline + \repeat + %% \enddoublecolumns \fi \fi \closein 1 \endgroup} +\def\getfirsttoken#1{\expandafter\getfirsttokenx#1\endfirsttoken} +\long\def\getfirsttokenx#1#2\endfirsttoken{\noexpand#1} + +\def\loopdo#1\repeat{\def\body{#1}\loopdoxxx} +\def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next} + % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. -\let\normalhyphen=- {\catcode`\/=13 \catcode`\-=13 \catcode`\^=13 \catcode`\~=13 \catcode`\_=13 \catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13 \catcode`\$=3 -\gdef\initialfonts{% - \usemathbackslash - \secfonts +\gdef\initialglyphs{% % Some changes for non-alphabetic characters. Using the glyphs from the % math fonts looks more consistent than the typewriter font used elsewhere % for these characters. + \def\indexbackslash{\math{\backslash}}% + \let\\=\indexbackslash + % % Can't get bold backslash so don't use bold forward slash \catcode`\/=13 - \def/{{\secrmnotbold \normalslash}} - \catcode`\-=13 - \def-{{\normalhyphen\normalhyphen}} - \let^=\normalcaret - \let~=\normaltilde + \def/{{\secrmnotbold \normalslash}}% + \def-{{\normaldash\normaldash}}% en dash `--' + \def^{{\chapbf \normalcaret}}% + \def~{{\chapbf \normaltilde}}% \def\_{% - \leavevmode \kern.07em \vbox{\hrule width.33em height.06ex}\kern .07em } - \def|{$\vert$} - \def<{$\less$} - \def>{$\gtr$} - \def+{$\normalplus$} - \let"=\normaldoublequote + \leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }% + \def|{$\vert$}% + \def<{$\less$}% + \def>{$\gtr$}% + \def+{$\normalplus$}% }} \def\initial{% \bgroup - \initialfonts + \initialglyphs \initialx } @@ -5061,10 +5146,12 @@ end \removelastskip % % We like breaks before the index initials, so insert a bonus. + % The glue before the bonus allows a little bit of space at the + % bottom of a column to reduce an increase in inter-line spacing. \nobreak - \vskip 0pt plus 3\baselineskip - \penalty 0 - \vskip 0pt plus -3\baselineskip + \vskip 0pt plus 5\baselineskip + \penalty -300 + \vskip 0pt plus -5\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column @@ -5072,25 +5159,24 @@ end % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. - \vskip 1.67\baselineskip plus .5\baselineskip - \leftline{\secbf #1}% + \vskip 1.67\baselineskip plus 1\baselineskip + \leftline{\secfonts \kern-0.05em \secbf #1}% + % \secfonts is inside the argument of \leftline so that the change of + % \baselineskip will not affect any glue inserted before the vbox that + % \leftline creates. % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip - \egroup % \initialfonts + \egroup % \initialglyphs } +\newdimen\entryrightmargin +\entryrightmargin=0pt + % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. % -% A straightforward implementation would start like this: -% \def\entry#1#2{... -% But this freezes the catcodes in the argument, and can cause problems to -% @code, which sets - active. This problem was fixed by a kludge--- -% ``-'' was active throughout whole index, but this isn't really right. -% The right solution is to prevent \entry from swallowing the whole text. -% --kasal, 21nov03 \def\entry{% \begingroup % @@ -5098,38 +5184,18 @@ end % affect previous text. \par % - % Do not fill out the last line with white space. - \parfillskip = 0in - % % No extra space above this paragraph. \parskip = 0in % - % Do not prefer a separate line ending with a hyphen to fewer lines. - \finalhyphendemerits = 0 - % - % \hangindent is only relevant when the entry text and page number - % don't both fit on one line. In that case, bob suggests starting the - % dots pretty far over on the line. Unfortunately, a large - % indentation looks wrong when the entry text itself is broken across - % lines. So we use a small indentation and put up with long leaders. - % - % \hangafter is reset to 1 (which is the value we want) at the start - % of each paragraph, so we need not do anything with that. - \hangindent = 2em - % - % When the entry text needs to be broken, just fill out the first line - % with blank space. - \rightskip = 0pt plus1fil - % - % A bit of stretch before each entry for the benefit of balancing - % columns. - \vskip 0pt plus1pt - % % When reading the text of entry, convert explicit line breaks % from @* into spaces. The user might give these in long section % titles, for instance. \def\*{\unskip\space\ignorespaces}% - \def\entrybreak{\hfil\break}% + \def\entrybreak{\hfil\break}% An undocumented command + % + % A bit of stretch before each entry for the benefit of balancing + % columns. + \vskip 0pt plus0.5pt % % Swallow the left brace of the text (first parameter): \afterassignment\doentry @@ -5137,45 +5203,162 @@ end } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% + % Save the text of the entry + \global\setbox\boxA=\hbox\bgroup \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. + % Not absorbing as a macro argument reduces the chance of problems + % with catcodes occurring. } -\def\finishentry#1{% +{\catcode`\@=11 +\gdef\finishentry#1{% + \egroup % end box A + \dimen@ = \wd\boxA % Length of text of entry + \global\setbox\boxA=\hbox\bgroup\unhbox\boxA % #1 is the page number. % - % 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. - \setbox\boxA = \hbox{#1}% - \ifdim\wd\boxA = 0pt - \ % + % Get the width of the page numbers, and only use + % leaders if they are present. + \global\setbox\boxB = \hbox{#1}% + \ifdim\wd\boxB = 0pt + \null\nobreak\hfill\ % \else % - % If we must, put the page number on a line of its own, and fill out - % this line with blank space. (The \hfil is overwhelmed with the - % fill leaders glue in \indexdotfill if the page number does fit.) - \hfil\penalty50 \null\nobreak\indexdotfill % Have leaders before the page number. % - % The `\ ' here is removed by the implicit \unskip that TeX does as - % part of (the primitive) \par. Without it, a spurious underfull - % \hbox ensues. \ifpdf - \pdfgettoks#1.% - \ \the\toksA + \pdfgettoks#1.% + \bgroup\let\domark\relax + \hskip\skip\thinshrinkable\the\toksA + \egroup + % The redefinion of \domark stops marks being added in \pdflink to + % preserve coloured links across page boundaries. Otherwise the marks + % would get in the way of \lastbox in \insertindexentrybox. \else - \ #1% + \hskip\skip\thinshrinkable #1% \fi \fi - \par + \egroup % end \boxA + \ifdim\wd\boxB = 0pt + \global\setbox\entryindexbox=\vbox{\unhbox\boxA}% + \else + \global\setbox\entryindexbox=\vbox\bgroup + \prevdepth=\entrylinedepth + \noindent + % We want the text of the entries to be aligned to the left, and the + % page numbers to be aligned to the right. + % + \advance\leftskip by 0pt plus 1fil + \advance\leftskip by 0pt plus -1fill + \rightskip = 0pt plus -1fil + \advance\rightskip by 0pt plus 1fill + % Cause last line, which could consist of page numbers on their own + % if the list of page numbers is long, to be aligned to the right. + \parfillskip=0pt plus -1fill + % + \hangindent=1em + % + \advance\rightskip by \entryrightmargin + % Determine how far we can stretch into the margin. + % This allows, e.g., "Appendix H GNU Free Documentation License" to + % fit on one line in @letterpaper format. + \ifdim\entryrightmargin>2.1em + \dimen@i=2.1em + \else + \dimen@i=0em + \fi + \advance \parfillskip by 0pt minus 1\dimen@i + % + \dimen@ii = \hsize + \advance\dimen@ii by -1\leftskip + \advance\dimen@ii by -1\entryrightmargin + \advance\dimen@ii by 1\dimen@i + \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line + \ifdim\dimen@ > 0.8\dimen@ii % due to long index text + \dimen@ = 0.7\dimen@ % Try to split the text roughly evenly + \dimen@ii = \hsize + \advance \dimen@ii by -1em + \ifnum\dimen@>\dimen@ii + % If the entry is too long, use the whole line + \dimen@ = \dimen@ii + \fi + \advance\leftskip by 0pt plus 1fill % ragged right + \advance \dimen@ by 1\rightskip + \parshape = 2 0pt \dimen@ 1em \dimen@ii + % Ideally we'd add a finite glue at the end of the first line only, but + % TeX doesn't seem to provide a way to do such a thing. + \fi\fi + \unhbox\boxA + % + % Do not prefer a separate line ending with a hyphen to fewer lines. + \finalhyphendemerits = 0 + % + % Word spacing - no stretch + \spaceskip=\fontdimen2\font minus \fontdimen4\font + % + \linepenalty=1000 % Discourage line breaks. + \hyphenpenalty=5000 % Discourage hyphenation. + % + \par % format the paragraph + \egroup % The \vbox + \fi \endgroup + % delay text of entry until after penalty + \bgroup\aftergroup\insertindexentrybox + \entryorphanpenalty +}} + +\newskip\thinshrinkable +\skip\thinshrinkable=.15em minus .15em + +\newbox\entryindexbox +\def\insertindexentrybox{% + \copy\entryindexbox + % The following gets the depth of the last box. This is for even + % line spacing when entries span several lines. + \setbox\dummybox\vbox{% + \unvbox\entryindexbox + \nointerlineskip + \lastbox + \global\entrylinedepth=\prevdepth + }% + % Note that we couldn't simply \unvbox\entryindexbox followed by + % \nointerlineskip\lastbox to remove the last box and then reinstate it, + % because this resets how far the box has been \moveleft'ed to 0. \unvbox + % doesn't affect \prevdepth either. +} +\newdimen\entrylinedepth + +% Default is no penalty +\let\entryorphanpenalty\egroup + +% Used from \printindex. \firsttoken should be the first token +% after the \entry. If it's not another \entry, we are at the last +% line of a group of index entries, so insert a penalty to discourage +% orphaned index entries. +\long\def\indexorphanpenalty{% + \def\isentry{\entry}% + \ifx\firsttoken\isentry + \else + \unskip\penalty 9000 + % The \unskip here stops breaking before the glue. It relies on the + % \vskip above being there, otherwise there is an error + % "You can't use `\unskip' in vertical mode". There has to be glue + % in the current vertical list that hasn't been added to the + % "current page". See Chapter 24 of the TeXbook. This contradicts + % Section 8.3.7 in "TeX by Topic," though. + \fi + \egroup % now comes the box added with \aftergroup } % Like plain.tex's \dotfill, except uses up at least 1 em. +% The filll stretch here overpowers both the fil and fill stretch to push +% the page number to the right. \def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} + \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1filll} + \def\primary #1{\line{#1\hfil}} @@ -5197,12 +5380,39 @@ end % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. -\catcode`\@=11 +\catcode`\@=11 % private names \newbox\partialpage \newdimen\doublecolumnhsize +\newdimen\doublecolumntopgap +\doublecolumntopgap = 0pt + +% Use inside an output routine to save \topmark and \firstmark +\def\savemarks{% + \global\savedtopmark=\expandafter{\topmark }% + \global\savedfirstmark=\expandafter{\firstmark }% +} +\newtoks\savedtopmark +\newtoks\savedfirstmark + +% Set \topmark and \firstmark for next time \output runs. +% Can't be run from withinside \output (because any material +% added while an output routine is active, including +% penalties, is saved for after it finishes). The page so far +% should be empty, otherwise what's on it will be thrown away. +\def\restoremarks{% + \mark{\the\savedtopmark}% + \bgroup\output = {% + \setbox\dummybox=\box\PAGE + }abc\eject\egroup + % "abc" because output routine doesn't fire for a completely empty page. + \mark{\the\savedfirstmark}% +} \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns + % If not much space left on page, start a new page. + \ifdim\pagetotal>0.8\vsize\vfill\eject\fi + % % Grab any single-column material above us. \output = {% % @@ -5222,8 +5432,15 @@ end \unvbox\PAGE \kern-\topskip \kern\baselineskip }% + \savemarks }% \eject % run that output routine to set \partialpage + \restoremarks + % + % We recover the two marks that the last output routine saved in order + % to propagate the information in marks added around a chapter heading, + % which could be otherwise be lost by the time the final page is output. + % % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% @@ -5251,13 +5468,19 @@ end % % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) + \global\doublecolumntopgap = \topskip + \global\advance\doublecolumntopgap by -1\baselineskip + \advance\vsize by -1\doublecolumntopgap \vsize = 2\vsize + \topskip=0pt + \global\entrylinedepth=0pt\relax } % The double-column output routine for all double-column pages except -% the last. +% the last, which is done by \balancecolumns. % \def\doublecolumnout{% + % \splittopskip=\topskip \splitmaxdepth=\maxdepth % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the @@ -5280,10 +5503,13 @@ end % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize - \hbox to\pagewidth{\box0\hfil\box2}% + \vbox{% + \vskip\doublecolumntopgap + \hbox to\pagewidth{\box0\hfil\box2}}% } -% -% All done with double columns. + + +% Finished with 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 @@ -5314,21 +5540,21 @@ end \penalty0 % \output = {% - % Split the last of the double-column material. Leave it on the - % current page, no automatic page break. + % Split the last of the double-column material. + \savemarks \balancecolumns % - % If we end up splitting too much material for the current page, - % though, there will be another page break right after this \output - % invocation ends. Having called \balancecolumns once, we do not + % Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal - % definition right away. (We hope \balancecolumns will never be - % called on to balance too much material, but if it is, this makes - % the output somewhat more palatable.) + % definition right away. \global\output = {\onepageout{\pagecontents\PAGE}}% }% \eject \endgroup % started in \begindoublecolumns + \restoremarks + % Leave the double-column material on the current page, no automatic + % page break. + \box\balancedcolumns % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column @@ -5336,31 +5562,52 @@ end % \endgroup where \vsize got restored). \pagegoal = \vsize } +\newbox\balancedcolumns +\setbox\balancedcolumns=\vbox{shouldnt see this}% % -% Called at the end of the double column material. +% Only called for the last of the double column material. \doublecolumnout +% does the others. \def\balancecolumns{% \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip - \divide\dimen@ by 2 % target to split to - %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% - \splittopskip = \topskip - % Loop until we get a decent breakpoint. - {% - \vbadness = 10000 - \loop - \global\setbox3 = \copy0 - \global\setbox1 = \vsplit3 to \dimen@ - \ifdim\ht3>\dimen@ - \global\advance\dimen@ by 1pt - \repeat - }% - %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% - \setbox0=\vbox to\dimen@{\unvbox1}% - \setbox2=\vbox to\dimen@{\unvbox3}% + \ifdim\dimen@<14\baselineskip + % Don't split a short final column in two. + \setbox2=\vbox{}% + \else + \divide\dimen@ by 2 % target to split to + \dimen@ii = \dimen@ + \splittopskip = \topskip + % Loop until the second column is no higher than the first + {% + \vbadness = 10000 + \loop + \global\setbox3 = \copy0 + \global\setbox1 = \vsplit3 to \dimen@ + % Remove glue from bottom of first column to + % make sure it is higher than the second. + \global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}% + \ifdim\ht3>\ht1 + \global\advance\dimen@ by 1pt + \repeat + }% + \multiply\dimen@ii by 4 + \divide\dimen@ii by 5 + \ifdim\ht3<\dimen@ii + % Column heights are too different, so don't make their bottoms + % flush with each other. The glue at the end of the second column + % allows a second column to stretch, reducing the difference in + % height between the two. + \setbox0=\vbox to\dimen@{\unvbox1\vfill}% + \setbox2=\vbox to\dimen@{\unvbox3\vskip 0pt plus 0.3\ht0}% + \else + \setbox0=\vbox to\dimen@{\unvbox1}% + \setbox2=\vbox to\dimen@{\unvbox3}% + \fi + \fi % - \pagesofar + \global\setbox\balancedcolumns=\vbox{\pagesofar}% } \catcode`\@ = \other @@ -5379,6 +5626,10 @@ end \let\lastnode=\empty % no node to associate with \writetocentry{part}{#1}{}% but put it in the toc \headingsoff % no headline or footline on the part page + % This outputs a mark at the end of the page that clears \thischapter + % and \thissection, as is done in \startcontents. + \let\pchapsepmacro\relax + \chapmacro{}{Yomitfromtoc}{}% \chapoddpage \endgroup } @@ -5623,9 +5874,6 @@ end % @centerchap is like @unnumbered, but the heading is centered. \outer\parseargdef\centerchap{% - % Well, we could do the following in a group, but that would break - % an assumption that \chapmacro is called at the outermost level. - % Thus we are safer this way: --kasal, 24feb04 \let\centerparametersmaybe = \centerparameters \unnmhead0{#1}% \let\centerparametersmaybe = \relax @@ -5749,7 +5997,11 @@ end % Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} + +% Start a new page \def\chappager{\par\vfill\supereject} + +% \chapoddpage - start on an odd page for a new chapter % Because \domark is called before \chapoddpage, the filler page will % get the headings for the next chapter, which is wrong. But we don't % care -- we just disable all headings on the filler page. @@ -5785,7 +6037,7 @@ end \CHAPPAGon -% Chapter opening. +% \chapmacro - Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. @@ -6179,7 +6431,7 @@ end \savepageno = \pageno \begingroup % Set up to handle contents files properly. \raggedbottom % Worry more about breakpoints than the bottom. - \advance\hsize by -\contentsrightmargin % Don't use the full line length. + \entryrightmargin=\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi @@ -6284,7 +6536,7 @@ end % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} -% + % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% @@ -6299,7 +6551,7 @@ end \setbox0 = \hbox{\putwordAppendix{} M}% \hbox to \wd0{\putwordAppendix{} #1\hss}} % -\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}} +\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\hskip.7em#1}{#4}} % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} @@ -6332,6 +6584,8 @@ end \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup + % Move the page numbers slightly to the right + \advance\entryrightmargin by -0.05em \chapentryfonts \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup @@ -6444,6 +6698,24 @@ end % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% + % =10000 instead of <10000 because of a special case in \itemzzz and + % \sectionheading, q.v. + \ifnum \lastpenalty=10000 \else + \advance\envskipamount by \parskip + \endgraf + \ifdim\lastskip<\envskipamount + \removelastskip + \ifnum\lastpenalty<10000 + % Penalize breaking before the environment, because preceding text + % often leads into it. + \penalty100 + \fi + \vskip\envskipamount + \fi + \fi +}} + +\def\afterenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else @@ -6459,8 +6731,6 @@ end \fi }} -\let\afterenvbreak = \aboveenvbreak - % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will % also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax @@ -6504,7 +6774,7 @@ end % collide with the section heading. \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi % - \vbox\bgroup + \setbox\groupbox=\vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup @@ -6528,6 +6798,7 @@ end \egroup \cartbot \egroup + \addgroupbox \checkinserts } @@ -7005,7 +7276,7 @@ end \temp } -% \domakedefun \deffn \deffnx \deffnheader +% \domakedefun \deffn \deffnx \deffnheader { (defn. of \deffnheader) } % % Define \deffn and \deffnx, without parameters. % \deffnheader has to be defined explicitly. @@ -7343,38 +7614,43 @@ end } \fi -% Used to remove a category 13 newline, added to the end of the last -% line read in by \scantokens. -{\catcode`\^^M=13 \gdef\gobblecr^^M{}} +\let\aftermacroxxx\relax +\def\aftermacro{\aftermacroxxx} +% alias because \c means cedilla in @tex or @math +\let\texinfoc=\c + +% Used at the time of macro expansion. % Argument is macro body with arguments substituted -\def\scanmacro#1{\begingroup +\def\scanmacro#1{% \newlinechar`\^^M - \let\xeatspaces\eatspaces + \def\xprocessmacroarg{\eatspaces}% % - % Undo catcode changes of \startcontents and \doprintindex - % When called from @insertcopying or (short)caption, we need active - % backslash to get it printed correctly. Previously, we had - % \catcode`\\=\other instead. We'll see whether a problem appears - % with macro expansion. --kasal, 19aug04 - \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ + % Process the macro body under the current catcode regime. + \scantokens{#1\texinfoc}\aftermacro% % - % ... and for \example: - \spaceisspace - % - \ifnum\catcode`\^^M=5 - % The \empty here causes a following catcode 5 newline to be eaten as - % part of reading whitespace after a control sequence. - \scantokens{#1\empty}% - \else - \catcode`\^^M=13 - \scantokens{#1\gobblecr}% - \fi -\endgroup} + % The \c is to remove the \newlinechar added by \scantokens, and + % can be noticed by \parsearg. + % The \aftermacro allows a \comment at the end of the macro definition + % to duplicate itself past the final \newlinechar added by \scantokens: + % this is used in the definition of \group to comment out a newline. We + % don't do the same for \c to support Texinfo files with macros that ended + % with a @c, which should no longer be necessary. + % We avoid surrounding the call to \scantokens with \bgroup and \egroup + % to allow macros to open or close groups themselves. +} +% Used for copying and captions \def\scanexp#1{% + \bgroup + % Undo catcode changes of \startcontents and \printindex + % When called from @insertcopying or (short)caption, we need active + % backslash to get it printed correctly. + % FIXME: This may not be needed. + %\catcode`\@=0 \catcode`\\=\active \escapechar=`\@ \edef\temp{\noexpand\scanmacro{#1}}% \temp + \egroup } \newcount\paramno % Count of parameters @@ -7440,7 +7716,6 @@ end \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other - \catcode`\@=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other @@ -7450,6 +7725,7 @@ end \def\scanargctxt{% used for copying and captions, not macros. \scanctxt + \catcode`\@=\other \catcode`\\=\other \catcode`\^^M=\other } @@ -7457,6 +7733,7 @@ end \def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\ =\other + \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other @@ -7468,11 +7745,11 @@ end % an argument to another Texinfo command. \def\macroargctxt{% \scanctxt + \catcode`\ =\active + \catcode`\^^M=\other \catcode`\\=\active } -\def\\{\normalbackslash}% - \def\macrolineargctxt{% used for whole-line arguments without braces \scanctxt \catcode`\{=\other @@ -7549,59 +7826,36 @@ end \fi } -% This makes use of the obscure feature that if the last token of a -% is #, then the preceding argument is delimited by -% an opening brace, and that opening brace is not consumed. -% +% \getargs -- Parse the arguments to a @macro line. Set \macname to +% the name of the macro, and \argl to the braced argument list. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} +% This made use of the feature that if the last token of a +% is #, then the preceding argument is delimited by +% an opening brace, and that opening brace is not consumed. -% For macro processing make @ a letter so that we can make -% private-to-Texinfo macro names. -\edef\texiatcatcode{\the\catcode`\@} -\catcode `@=11\relax - -% Parse the optional {params} list. Set up \paramno and \paramlist -% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH -% in the params list to some hook where the argument is to be expanded. If -% there are less than 10 arguments that hook is to be replaced by ##N where N +% Parse the optional {params} list to @macro or @rmacro. +% Set \paramno to the number of arguments, +% and \paramlist to a parameter text for the macro (e.g. #1,#2,#3 for a +% three-param macro.) Define \macarg.BLAH for each BLAH in the params +% list to some hook where the argument is to be expanded. If there are +% less than 10 arguments that hook is to be replaced by ##N where N % is the position in that list, that is to say the macro arguments are to be % defined `a la TeX in the macro body. % % That gets used by \mbodybackslash (above). % -% We need to get `macro parameter char #' into several definitions. -% The technique used is stolen from LaTeX: let \hash be something -% unexpandable, insert that wherever you need a #, and then redefine -% it to # just before using the token list produced. -% -% The same technique is used to protect \eatspaces till just before -% the macro is used. -% -% If there are 10 or more arguments, a different technique is used, where the -% hook remains in the body, and when macro is to be expanded the body is -% processed again to replace the arguments. +% If there are 10 or more arguments, a different technique is used: see +% \parsemmanyargdef. % -% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the -% argument N value and then \edef the body (nothing else will expand because of -% the catcode regime underwhich the body was input). -% -% If you compile with TeX (not eTeX), and you have macros with 10 or more -% arguments, no macro can have more than 256 arguments (else error). -% \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax - \let\xeatspaces\relax + % \hash is redefined to `#' later to get it into definitions + \let\processmacroarg\relax \parsemargdefxxx#1,;,% - % In case that there are 10 or more arguments we parse again the arguments - % list to set new definitions for the \macarg.BLAH macros corresponding to - % each BLAH argument. It was anyhow needed to parse already once this list - % in order to count the arguments, and as macros with at most 9 arguments - % are by far more frequent than macro with 10 or more arguments, defining - % twice the \macarg.BLAH macros does not cost too much processing power. \ifnum\paramno<10\relax\else \paramno0\relax \parsemmanyargdef@@#1,;,% 10 or more arguments @@ -7612,10 +7866,47 @@ end \else \let\next=\parsemargdefxxx \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname - {\xeatspaces{\hash\the\paramno}}% + {\processmacroarg{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} +% \parsemacbody, \parsermacbody +% +% Read recursive and nonrecursive macro bodies. (They're different since +% rec and nonrec macros end differently.) +% +% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro +% body to be transformed. +% Set \macrobody to the body of the macro, and call \defmacro. +% +{\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{% +\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% +{\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{% +\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% + +% Make @ a letter, so that we can make private-to-Texinfo macro names. +\edef\texiatcatcode{\the\catcode`\@} +\catcode `@=11\relax + +%%%%%%%%%%%%%% Code for > 10 arguments only %%%%%%%%%%%%%%%%%% + +% If there are 10 or more arguments, a different technique is used, where the +% hook remains in the body, and when macro is to be expanded the body is +% processed again to replace the arguments. +% +% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the +% argument N value and then \edef the body (nothing else will expand because of +% the catcode regime under which the body was input). +% +% If you compile with TeX (not eTeX), and you have macros with 10 or more +% arguments, no macro can have more than 256 arguments (else error). +% +% In case that there are 10 or more arguments we parse again the arguments +% list to set new definitions for the \macarg.BLAH macros corresponding to +% each BLAH argument. It was anyhow needed to parse already once this list +% in order to count the arguments, and as macros with at most 9 arguments +% are by far more frequent than macro with 10 or more arguments, defining +% twice the \macarg.BLAH macros does not cost too much processing power. \def\parsemmanyargdef@@#1,{% \if#1;\let\next=\relax \else @@ -7631,15 +7922,6 @@ end \advance\paramno by 1\relax \fi\next} -% These two commands read recursive and nonrecursive macro bodies. -% (They're different since rec and nonrec macros end differently.) -% Set \temp to the body of the macro, and call \defmacro. -\catcode `\@\texiatcatcode -{\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{% -\xdef\temp{\eatcr{#1}}\endgroup\defmacro}}% -{\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{% -\xdef\temp{\eatcr{#1}}\endgroup\defmacro}}% -\catcode `\@=11\relax \let\endargs@\relax \let\nil@\relax @@ -7668,9 +7950,6 @@ end \getargvals@@ \fi } - -% Internal for \getargsval@. -% \def\getargvals@@{% \ifx\paramlist\nilm@ % Some sanity check needed here that \argvaluelist is also empty. @@ -7778,16 +8057,7 @@ end \next } -% Save the token stack pointer into macro #1: -\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}} -% -% Restore the token stack pointer from number in macro #1: -\def\texirestoretoksstackpoint#1{\expandafter\mathchardef - \expandafter\@cclvi#1\relax} -% Variant \newtoks that can be used non-\outer: -\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi} - -% Tailing missing arguments are set to empty. +% Trailing missing arguments are set to empty. % \def\setemptyargvalues@{% \ifx\paramlist\nilm@ @@ -7818,82 +8088,130 @@ end \long\def#2{#4}% } -% This defines a Texinfo @macro. \temp has the body of the macro in it. + +%%%%%%%%%%%%%% End of code for > 10 arguments %%%%%%%%%%%%%%%%%% + + + +% Remove following spaces at the expansion stage. +% This works because spaces are discarded before each argument when TeX is +% getting the arguments for a macro. +% This must not be immediately followed by a }. +\long\def\gobblespaces#1{#1} + +% This defines a Texinfo @macro or @rmacro, called by \parsemacbody. +% \macrobody has the body of the macro in it, with placeholders for +% its parameters, looking like "\processmacroarg{\hash 1}". +% \paramno is the number of parameters +% \paramlist is a TeX parameter text, e.g. "#1,#2,#3," % There are eight cases: recursive and nonrecursive macros of zero, one, % up to nine, and many arguments. -% Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file -% they're defined in; @include reads the file inside a group. +% they're defined in: @include reads the file inside a group. % \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars - \ifrecursive + \ifnum\paramno=1 + \def\processmacroarg{\gobblespaces}% + % This removes the pair of braces around the argument. We don't + % use \eatspaces, because this can cause ends of lines to be lost + % when the argument to \eatspaces is read, leading to line-based + % commands like "@itemize" not being read correctly. + \else + \def\processmacroarg{\xprocessmacroarg}% + \let\xprocessmacroarg\relax + \fi + \ifrecursive %%%%%%%%%%%%%% Recursive %%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% - \noexpand\scanmacro{\temp}}% + \noexpand\scanmacro{\macrobody}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\braceorline - \expandafter\noexpand\csname\the\macname xxx\endcsname}% - \expandafter\xdef\csname\the\macname xxx\endcsname##1{% - \egroup\noexpand\scanmacro{\temp}}% + \expandafter\noexpand\csname\the\macname @@@\endcsname}% + \expandafter\xdef\csname\the\macname @@@\endcsname##1{% + \expandafter\noexpand\csname\the\macname @@@@\endcsname{% + \noexpand\gobblespaces##1\empty}% + % The \empty is for \gobblespaces in case #1 is empty + }% + \expandafter\xdef\csname\the\macname @@@@\endcsname##1{% + \egroup\noexpand\scanmacro{\macrobody}}% \else \ifnum\paramno<10\relax % at most 9 + % See non-recursive section below for comments \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% + \bgroup + \noexpand\expandafter + \noexpand\macroargctxt + \noexpand\expandafter + \expandafter\noexpand\csname\the\macname @@\endcsname}% + \expandafter\xdef\csname\the\macname @@\endcsname##1{% + \noexpand\passargtomacro + \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% + \expandafter\xdef\csname\the\macname @@@\endcsname##1{% + \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{\egroup\noexpand\scanmacro{\temp}}% + \csname\the\macname @@@@\endcsname\paramlist{% + \egroup\noexpand\scanmacro{\macrobody}}% \else % 10 or more \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% - \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp + \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble \fi \fi - \else + \else %%%%%%%%%%%%%%%%%%%%%% Non-recursive %%%%%%%%%%%%%%%%%%%%%%%%%% \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% + \noexpand\scanmacro{\macrobody}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\braceorline - \expandafter\noexpand\csname\the\macname xxx\endcsname}% - \expandafter\xdef\csname\the\macname xxx\endcsname##1{% + \expandafter\noexpand\csname\the\macname @@@\endcsname}% + \expandafter\xdef\csname\the\macname @@@\endcsname##1{% + \expandafter\noexpand\csname\the\macname @@@@\endcsname{% + \noexpand\gobblespaces##1\empty}% + % The \empty is for \gobblespaces in case #1 is empty + }% + \expandafter\xdef\csname\the\macname @@@@\endcsname##1{% \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% + \noexpand\scanmacro{\macrobody}% + }% \else % at most 9 \ifnum\paramno<10\relax + % @MACNAME sets the context for reading the macro argument + % @MACNAME@@ gets the argument, processes backslashes and appends a + % comma. + % @MACNAME@@@ removes braces surrounding the argument list. + % @MACNAME@@@@ scans the macro body with arguments substituted. \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \expandafter\noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% + \bgroup + \noexpand\expandafter % This \expandafter skip any spaces after the + \noexpand\macroargctxt % macro before we change the catcode of space. + \noexpand\expandafter + \expandafter\noexpand\csname\the\macname @@\endcsname}% + \expandafter\xdef\csname\the\macname @@\endcsname##1{% + \noexpand\passargtomacro + \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% + \expandafter\xdef\csname\the\macname @@@\endcsname##1{% + \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{% - \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% + \csname\the\macname @@@@\endcsname\paramlist{% + \egroup\noexpand\scanmacro{\macrobody}}% \else % 10 or more: \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% - \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp + \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse \fi \fi @@ -7904,71 +8222,96 @@ end \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} -{\catcode`\@=0 \catcode`\\=13 -@catcode`@_=11 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +{\catcode`\@=0 \catcode`\\=13 % We need to manipulate \ so use @ as escape +@catcode`@_=11 % private names +@catcode`@!=11 % used as argument separator +% \passargtomacro#1#2 - % Call #1 with a list of tokens #2, with any doubled backslashes in #2 % compressed to one. +% +% This implementation works by expansion, and not execution (so we cannot use +% \def or similar). This reduces the risk of this failing in contexts where +% complete expansion is done with no execution (for example, in writing out to +% an auxiliary file for an index entry). +% +% State is kept in the input stream: the argument passed to +% @look_ahead, @gobble_and_check_finish and @add_segment is +% +% THE_MACRO ARG_RESULT ! {PENDING_BS} NEXT_TOKEN (... rest of input) +% +% where: +% THE_MACRO - name of the macro we want to call +% ARG_RESULT - argument list we build to pass to that macro +% PENDING_BS - either a backslash or nothing +% NEXT_TOKEN - used to look ahead in the input stream to see what's coming next + @gdef@passargtomacro#1#2{% - @def@the_macro{#1}% - @def@pending_backslash{}% - @def@finish{@finish}% - @def@arg_result{}% - @let@next_token=@relax - @add_segment#2\@finish\% -} - -% Input stream is just after a backslash. If the next token is not a -% backslash, process the rest of the argument; otherwise, remove the next -% token. -@gdef@look_ahead{% - @futurelet@next_token@look_aheadzzz} -@gdef@look_aheadzzz{% - @ifx@next_token\% - @let@next=@gobble_and_check_finish - @else - @let@next=@add_segment - @fi@next + @add_segment #1!{}@relax#2\@_finish\% } +@gdef@_finish{@_finishx} @global@let@_finishx@relax -% Double backslash found. Add a single backslash here. -@gdef@gobble_and_check_finish#1{% - @add_the_backslash - @def@pending_backslash{}% - @futurelet@next_token@add_segment +% #1 - THE_MACRO ARG_RESULT +% #2 - PENDING_BS +% #3 - NEXT_TOKEN +% #4 used to look ahead +% +% If the next token is not a backslash, process the rest of the argument; +% otherwise, remove the next token. +@gdef@look_ahead#1!#2#3#4{% + @ifx#4\% + @expandafter@gobble_and_check_finish + @else + @expandafter@add_segment + @fi#1!{#2}#4#4% } -% append a backslash to \arg_result -@gdef@add_the_backslash{% - @expandafter@gdef@expandafter@arg_result@expandafter{@arg_result\}% +% #1 - THE_MACRO ARG_RESULT +% #2 - PENDING_BS +% #3 - NEXT_TOKEN +% #4 should be a backslash, which is gobbled. +% #5 looks ahead +% +% Double backslash found. Add a single backslash, and look ahead. +@gdef@gobble_and_check_finish#1!#2#3#4#5{% + @add_segment#1\!{}#5#5% } +@gdef@is_fi{@fi} + +% #1 - THE_MACRO ARG_RESULT +% #2 - PENDING_BS +% #3 - NEXT_TOKEN +% #4 is input stream until next backslash +% % Input stream is either at the start of the argument, or just after a % backslash sequence, either a lone backslash, or a doubled backslash. -% \next_token contains the first token in the input stream: if it is \finish, -% finish; otherwise, append to \arg_result the segment of the argument up until -% the next backslash. \pending_backslash contains a backslash to represent +% NEXT_TOKEN contains the first token in the input stream: if it is \finish, +% finish; otherwise, append to ARG_RESULT the segment of the argument up until +% the next backslash. PENDING_BACKSLASH contains a backslash to represent % a backslash just before the start of the input stream that has not been -% added to \arg_result. -@gdef@add_segment#1\{% -@ifx@next_token@finish - @let@next=@call_the_macro% +% added to ARG_RESULT. +@gdef@add_segment#1!#2#3#4\{% +@ifx#3@_finish + @call_the_macro#1!% @else - @let@next=@look_ahead - % - % append to @arg_result - % token list registers might be better - @expandafter@expandafter@expandafter@gdef - @expandafter@expandafter@expandafter@arg_result - @expandafter@expandafter@expandafter{% - @expandafter@arg_result - @pending_backslash#1}% - @def@pending_backslash{\}% -@fi@next} + % append the pending backslash to the result, followed by the next segment + @expandafter@is_fi@look_ahead#1#2#4!{\}@fi + % this @fi is discarded by @look_ahead. + % we can't get rid of it with \expandafter because we don't know how + % long #4 is. +} -@gdef@call_the_macro{@expandafter@the_macro@expandafter{@arg_result}} +% #1 - THE_MACRO +% #2 - ARG_RESULT +% #3 discards the res of the conditional in @add_segment, and @is_fi ends the +% conditional. +@gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}} } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \braceorline MAC is used for a one-argument macro MAC. It checks % whether the next non-whitespace character is a {. It sets the context @@ -8064,6 +8407,7 @@ end \pdfmkdest{#1}% \iflinks {% + \requireauxfile \atdummies % preserve commands, but don't expand them \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef @@ -8103,9 +8447,12 @@ end % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % -\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} -\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} -\def\ref#1{\xrefX[#1,,,,,,,]} +\def\pxref{\putwordsee{} \xrefXX} +\def\xref{\putwordSee{} \xrefXX} +\def\ref{\xrefXX} + +\def\xrefXX#1{\def\xrefXXarg{#1}\futurelet\tokenafterxref\xrefXXX} +\def\xrefXXX{\expandafter\xrefX\expandafter[\xrefXXarg,,,,,,,]} % \newbox\toprefbox \newbox\printedrefnamebox @@ -8249,6 +8596,12 @@ end % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}{}% + \ifx,\tokenafterxref + \else\ifx.\tokenafterxref + \else\ifx;\tokenafterxref + \else\ifx)\tokenafterxref + \else,% add a , if xref not followed by punctuation + \fi\fi\fi\fi \fi\fi \fi \endlink @@ -8319,6 +8672,7 @@ end % If its value is nonempty, SUFFIX is output afterward. % \def\refx#1#2{% + \requireauxfile {% \indexnofonts \otherbackslash @@ -8382,6 +8736,23 @@ end \fi } +% If working on a large document in chapters, it is convenient to +% be able to disable indexing, cross-referencing, and contents, for test runs. +% This is done with @novalidate at the beginning of the file. +% +\newif\iflinks \linkstrue % by default we want the aux files. +\let\novalidate = \linksfalse + +% Used when writing to the aux file, or when using data from it. +\def\requireauxfile{% + \iflinks + \tryauxfile + % Open the new aux file. TeX will close it automatically at exit. + \immediate\openout\auxfile=\jobname.aux + \fi + \global\let\requireauxfile=\relax % Only do this once. +} + % Read the last existing aux file, if any. No error if none exists. % \def\tryauxfile{% @@ -8675,6 +9046,7 @@ end \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example \normalturnoffactive % allow _ et al. in names + \def\xprocessmacroarg{\eatspaces}% in case we are being used via a macro % If the image is by itself, center it. \ifvmode \imagevmodetrue @@ -8855,6 +9227,7 @@ end % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% + \requireauxfile \atdummies % % since we read the caption text in the macro world, where ^^M @@ -9077,7 +9450,8 @@ directory should work if nowhere else does.} % @documentencoding sets the definition of non-ASCII characters % according to the specified encoding. % -\parseargdef\documentencoding{% +\def\documentencoding{\parseargusing\filenamecatcodes\documentencodingzzz} +\def\documentencodingzzz#1{% % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % @@ -9454,7 +9828,7 @@ directory should work if nowhere else does.} \gdef\UTFviiiTmp{#2}% % \expandafter\ifx\csname uni:#1\endcsname \relax \else - \errmessage{Internal error, already defined: #1}% + \message{Internal error, already defined: #1}% \fi % % define an additional control sequence for this code point. @@ -9804,6 +10178,83 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{02DB}{\ogonek{ }} + % Greek letters upper case + \DeclareUnicodeCharacter{0391}{{\it A}} + \DeclareUnicodeCharacter{0392}{{\it B}} + \DeclareUnicodeCharacter{0393}{\ensuremath{\mit\Gamma}} + \DeclareUnicodeCharacter{0394}{\ensuremath{\mit\Delta}} + \DeclareUnicodeCharacter{0395}{{\it E}} + \DeclareUnicodeCharacter{0396}{{\it Z}} + \DeclareUnicodeCharacter{0397}{{\it H}} + \DeclareUnicodeCharacter{0398}{\ensuremath{\mit\Theta}} + \DeclareUnicodeCharacter{0399}{{\it I}} + \DeclareUnicodeCharacter{039A}{{\it K}} + \DeclareUnicodeCharacter{039B}{\ensuremath{\mit\Lambda}} + \DeclareUnicodeCharacter{039C}{{\it M}} + \DeclareUnicodeCharacter{039D}{{\it N}} + \DeclareUnicodeCharacter{039E}{\ensuremath{\mit\Xi}} + \DeclareUnicodeCharacter{039F}{{\it O}} + \DeclareUnicodeCharacter{03A0}{\ensuremath{\mit\Pi}} + \DeclareUnicodeCharacter{03A1}{{\it P}} + %\DeclareUnicodeCharacter{03A2}{} % none - corresponds to final sigma + \DeclareUnicodeCharacter{03A3}{\ensuremath{\mit\Sigma}} + \DeclareUnicodeCharacter{03A4}{{\it T}} + \DeclareUnicodeCharacter{03A5}{\ensuremath{\mit\Upsilon}} + \DeclareUnicodeCharacter{03A6}{\ensuremath{\mit\Phi}} + \DeclareUnicodeCharacter{03A7}{{\it X}} + \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}} + \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}} + + % Vowels with accents + \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}} + \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}} + \DeclareUnicodeCharacter{03AD}{\ensuremath{\acute\epsilon}} + \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}} + \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}} + \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}} + + % Standalone accent + \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}} + + % Greek letters lower case + \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha} + \DeclareUnicodeCharacter{03B2}{\ensuremath\beta} + \DeclareUnicodeCharacter{03B3}{\ensuremath\gamma} + \DeclareUnicodeCharacter{03B4}{\ensuremath\delta} + \DeclareUnicodeCharacter{03B5}{\ensuremath\epsilon} + \DeclareUnicodeCharacter{03B6}{\ensuremath\zeta} + \DeclareUnicodeCharacter{03B7}{\ensuremath\eta} + \DeclareUnicodeCharacter{03B8}{\ensuremath\theta} + \DeclareUnicodeCharacter{03B9}{\ensuremath\iota} + \DeclareUnicodeCharacter{03BA}{\ensuremath\kappa} + \DeclareUnicodeCharacter{03BB}{\ensuremath\lambda} + \DeclareUnicodeCharacter{03BC}{\ensuremath\mu} + \DeclareUnicodeCharacter{03BD}{\ensuremath\nu} + \DeclareUnicodeCharacter{03BE}{\ensuremath\xi} + \DeclareUnicodeCharacter{03BF}{{\it o}} % omicron + \DeclareUnicodeCharacter{03C0}{\ensuremath\pi} + \DeclareUnicodeCharacter{03C1}{\ensuremath\rho} + \DeclareUnicodeCharacter{03C2}{\ensuremath\varsigma} + \DeclareUnicodeCharacter{03C3}{\ensuremath\sigma} + \DeclareUnicodeCharacter{03C4}{\ensuremath\tau} + \DeclareUnicodeCharacter{03C5}{\ensuremath\upsilon} + \DeclareUnicodeCharacter{03C6}{\ensuremath\phi} + \DeclareUnicodeCharacter{03C7}{\ensuremath\chi} + \DeclareUnicodeCharacter{03C8}{\ensuremath\psi} + \DeclareUnicodeCharacter{03C9}{\ensuremath\omega} + + % More Greek vowels with accents + \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}} + \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}} + \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}} + \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}} + \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}} + + % Variant Greek letters + \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta} + \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi} + \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho} + \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} @@ -9931,6 +10382,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{1EF8}{\~Y} \DeclareUnicodeCharacter{1EF9}{\~y} + % Punctuation \DeclareUnicodeCharacter{2013}{--} \DeclareUnicodeCharacter{2014}{---} \DeclareUnicodeCharacter{2018}{\quoteleft} @@ -9942,18 +10394,166 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{2020}{\ensuremath\dagger} \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger} \DeclareUnicodeCharacter{2022}{\bullet} + \DeclareUnicodeCharacter{202F}{\thinspace} \DeclareUnicodeCharacter{2026}{\dots} \DeclareUnicodeCharacter{2039}{\guilsinglleft} \DeclareUnicodeCharacter{203A}{\guilsinglright} + \DeclareUnicodeCharacter{20AC}{\euro} \DeclareUnicodeCharacter{2192}{\expansion} \DeclareUnicodeCharacter{21D2}{\result} + % Mathematical symbols + \DeclareUnicodeCharacter{2200}{\ensuremath\forall} + \DeclareUnicodeCharacter{2203}{\ensuremath\exists} + \DeclareUnicodeCharacter{2208}{\ensuremath\in} \DeclareUnicodeCharacter{2212}{\minus} - \DeclareUnicodeCharacter{2217}{\point} + \DeclareUnicodeCharacter{2217}{\ast} + \DeclareUnicodeCharacter{221E}{\ensuremath\infty} \DeclareUnicodeCharacter{2225}{\ensuremath\parallel} + \DeclareUnicodeCharacter{2227}{\ensuremath\wedge} + \DeclareUnicodeCharacter{2229}{\ensuremath\cap} \DeclareUnicodeCharacter{2261}{\equiv} + \DeclareUnicodeCharacter{2264}{\ensuremath\leq} + \DeclareUnicodeCharacter{2265}{\ensuremath\geq} + \DeclareUnicodeCharacter{2282}{\ensuremath\subset} + \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq} + + \DeclareUnicodeCharacter{2016}{\ensuremath\Vert} + \DeclareUnicodeCharacter{2032}{\ensuremath\prime} + \DeclareUnicodeCharacter{210F}{\ensuremath\hbar} + \DeclareUnicodeCharacter{2111}{\ensuremath\Im} + \DeclareUnicodeCharacter{2113}{\ensuremath\ell} + \DeclareUnicodeCharacter{2118}{\ensuremath\wp} + \DeclareUnicodeCharacter{211C}{\ensuremath\Re} + \DeclareUnicodeCharacter{2127}{\ensuremath\mho} + \DeclareUnicodeCharacter{2135}{\ensuremath\aleph} + \DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow} + \DeclareUnicodeCharacter{2191}{\ensuremath\uparrow} + \DeclareUnicodeCharacter{2193}{\ensuremath\downarrow} + \DeclareUnicodeCharacter{2194}{\ensuremath\leftrightarrow} + \DeclareUnicodeCharacter{2195}{\ensuremath\updownarrow} + \DeclareUnicodeCharacter{2196}{\ensuremath\nwarrow} + \DeclareUnicodeCharacter{2197}{\ensuremath\nearrow} + \DeclareUnicodeCharacter{2198}{\ensuremath\searrow} + \DeclareUnicodeCharacter{2199}{\ensuremath\swarrow} + \DeclareUnicodeCharacter{21A6}{\ensuremath\mapsto} + \DeclareUnicodeCharacter{21A9}{\ensuremath\hookleftarrow} + \DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow} + \DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup} + \DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown} + \DeclareUnicodeCharacter{21BE}{\ensuremath\upharpoonright} + \DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup} + \DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown} + \DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons} + \DeclareUnicodeCharacter{21D0}{\ensuremath\Leftarrow} + \DeclareUnicodeCharacter{21D1}{\ensuremath\Uparrow} + \DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow} + \DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow} + \DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow} + \DeclareUnicodeCharacter{21DD}{\ensuremath\leadsto} + \DeclareUnicodeCharacter{2201}{\ensuremath\complement} + \DeclareUnicodeCharacter{2202}{\ensuremath\partial} + \DeclareUnicodeCharacter{2205}{\ensuremath\emptyset} + \DeclareUnicodeCharacter{2207}{\ensuremath\nabla} + \DeclareUnicodeCharacter{2209}{\ensuremath\notin} + \DeclareUnicodeCharacter{220B}{\ensuremath\owns} + \DeclareUnicodeCharacter{220F}{\ensuremath\prod} + \DeclareUnicodeCharacter{2210}{\ensuremath\coprod} + \DeclareUnicodeCharacter{2211}{\ensuremath\sum} + \DeclareUnicodeCharacter{2213}{\ensuremath\mp} + \DeclareUnicodeCharacter{2218}{\ensuremath\circ} + \DeclareUnicodeCharacter{221A}{\ensuremath\surd} + \DeclareUnicodeCharacter{221D}{\ensuremath\propto} + \DeclareUnicodeCharacter{2220}{\ensuremath\angle} + \DeclareUnicodeCharacter{2223}{\ensuremath\mid} + \DeclareUnicodeCharacter{2228}{\ensuremath\vee} + \DeclareUnicodeCharacter{222A}{\ensuremath\cup} + \DeclareUnicodeCharacter{222B}{\ensuremath\smallint} + \DeclareUnicodeCharacter{222E}{\ensuremath\oint} + \DeclareUnicodeCharacter{223C}{\ensuremath\sim} + \DeclareUnicodeCharacter{2240}{\ensuremath\wr} + \DeclareUnicodeCharacter{2243}{\ensuremath\simeq} + \DeclareUnicodeCharacter{2245}{\ensuremath\cong} + \DeclareUnicodeCharacter{2248}{\ensuremath\approx} + \DeclareUnicodeCharacter{224D}{\ensuremath\asymp} + \DeclareUnicodeCharacter{2250}{\ensuremath\doteq} + \DeclareUnicodeCharacter{2260}{\ensuremath\neq} + \DeclareUnicodeCharacter{226A}{\ensuremath\ll} + \DeclareUnicodeCharacter{226B}{\ensuremath\gg} + \DeclareUnicodeCharacter{227A}{\ensuremath\prec} + \DeclareUnicodeCharacter{227B}{\ensuremath\succ} + \DeclareUnicodeCharacter{2283}{\ensuremath\supset} + \DeclareUnicodeCharacter{2286}{\ensuremath\subseteq} + \DeclareUnicodeCharacter{228E}{\ensuremath\uplus} + \DeclareUnicodeCharacter{228F}{\ensuremath\sqsubset} + \DeclareUnicodeCharacter{2290}{\ensuremath\sqsupset} + \DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq} + \DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq} + \DeclareUnicodeCharacter{2293}{\ensuremath\sqcap} + \DeclareUnicodeCharacter{2294}{\ensuremath\sqcup} + \DeclareUnicodeCharacter{2295}{\ensuremath\oplus} + \DeclareUnicodeCharacter{2296}{\ensuremath\ominus} + \DeclareUnicodeCharacter{2297}{\ensuremath\otimes} + \DeclareUnicodeCharacter{2298}{\ensuremath\oslash} + \DeclareUnicodeCharacter{2299}{\ensuremath\odot} + \DeclareUnicodeCharacter{22A2}{\ensuremath\vdash} + \DeclareUnicodeCharacter{22A3}{\ensuremath\dashv} + \DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop} + \DeclareUnicodeCharacter{22A5}{\ensuremath\bot} + \DeclareUnicodeCharacter{22A8}{\ensuremath\models} + \DeclareUnicodeCharacter{22B4}{\ensuremath\unlhd} + \DeclareUnicodeCharacter{22B5}{\ensuremath\unrhd} + \DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge} + \DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee} + \DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap} + \DeclareUnicodeCharacter{22C3}{\ensuremath\bigcup} + \DeclareUnicodeCharacter{22C4}{\ensuremath\diamond} + \DeclareUnicodeCharacter{22C5}{\ensuremath\cdot} + \DeclareUnicodeCharacter{22C6}{\ensuremath\star} + \DeclareUnicodeCharacter{22C8}{\ensuremath\bowtie} + \DeclareUnicodeCharacter{2308}{\ensuremath\lceil} + \DeclareUnicodeCharacter{2309}{\ensuremath\rceil} + \DeclareUnicodeCharacter{230A}{\ensuremath\lfloor} + \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor} + \DeclareUnicodeCharacter{2322}{\ensuremath\frown} + \DeclareUnicodeCharacter{2323}{\ensuremath\smile} + + \DeclareUnicodeCharacter{25A1}{\ensuremath\Box} + \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle} + \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright} + \DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown} + \DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft} + \DeclareUnicodeCharacter{25C7}{\ensuremath\Diamond} + \DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit} + \DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit} + \DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit} + \DeclareUnicodeCharacter{2663}{\ensuremath\clubsuit} + \DeclareUnicodeCharacter{266D}{\ensuremath\flat} + \DeclareUnicodeCharacter{266E}{\ensuremath\natural} + \DeclareUnicodeCharacter{266F}{\ensuremath\sharp} + \DeclareUnicodeCharacter{26AA}{\ensuremath\bigcirc} + \DeclareUnicodeCharacter{27B9}{\ensuremath\rangle} + \DeclareUnicodeCharacter{27C2}{\ensuremath\perp} + \DeclareUnicodeCharacter{27E8}{\ensuremath\langle} + \DeclareUnicodeCharacter{27F5}{\ensuremath\longleftarrow} + \DeclareUnicodeCharacter{27F6}{\ensuremath\longrightarrow} + \DeclareUnicodeCharacter{27F7}{\ensuremath\longleftrightarrow} + \DeclareUnicodeCharacter{27FC}{\ensuremath\longmapsto} + \DeclareUnicodeCharacter{29F5}{\ensuremath\setminus} + \DeclareUnicodeCharacter{2A00}{\ensuremath\bigodot} + \DeclareUnicodeCharacter{2A01}{\ensuremath\bigoplus} + \DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes} + \DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus} + \DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup} + \DeclareUnicodeCharacter{2A1D}{\ensuremath\Join} + \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg} + \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq} + \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq} + + \global\mathchardef\checkmark="1370 % actually the square root sign + \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark} }% end of \utfeightchardefs % US-ASCII character definitions. @@ -10271,11 +10871,12 @@ directory should work if nowhere else does.} % this is not a problem. \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} -% Turn off all special characters except @ -% (and those which the user can use as if they were ordinary). +% Set catcodes for Texinfo file + +% Active characters for printing the wanted glyph. % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. - +% \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote @@ -10285,12 +10886,10 @@ directory should work if nowhere else does.} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} -\let\realunder=_ -% Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } +\let\realunder=_ -\catcode`\|=\active -\def|{{\tt\char124}} +\catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def\activeless{{\tt \less}}\let< = \activeless @@ -10298,6 +10897,8 @@ directory should work if nowhere else does.} \catcode`\>=\active \def\activegtr{{\tt \gtr}}\let> = \activegtr \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix +\catcode`\-=\active \let-=\normaldash + % used for headline/footline in the output routine, in case the page % breaks in the middle of an @tex block. @@ -10312,12 +10913,6 @@ directory should work if nowhere else does.} % in principle, all other definitions in \tex have to be undone too. } -% If a .fmt file is being used, characters that might appear in a file -% name cannot be active until we have parsed the command line. -% So turn them off again, and have \everyjob (or @setfilename) turn them on. -% \otherifyactive is called near the end of this file. -\def\otherifyactive{\catcode`+=\other \catcode`\_=\other} - % Used sometimes to turn off (effectively) the active characters even after % parsing them. \def\turnoffactive{% @@ -10336,34 +10931,30 @@ directory should work if nowhere else does.} % \doublebackslash is two of them (for the pdf outlines). {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} -% In texinfo, backslash is an active character; it prints the backslash +% In Texinfo, backslash is an active character; it prints the backslash % in fixed width font. \catcode`\\=\active % @ for escape char from now on. -% The story here is that in math mode, the \char of \backslashcurfont -% ends up printing the roman \ from the math symbol font (because \char -% in math mode uses the \mathcode, and plain.tex sets -% \mathcode`\\="026E). It seems better for @backslashchar{} to always -% print a typewriter backslash, hence we use an explicit \mathchar, +% Print a typewriter backslash. For math mode, we can't simply use +% \backslashcurfont: the story here is that in math mode, the \char +% of \backslashcurfont ends up printing the roman \ from the math symbol +% font (because \char in math mode uses the \mathcode, and plain.tex +% sets \mathcode`\\="026E). Hence we use an explicit \mathchar, % which is the decimal equivalent of "715c (class 7, e.g., use \fam; % ignored family value; char position "5C). We can't use " for the % usual hex value because it has already been made active. -@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} -@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. -% On startup, @fixbackslash assigns: -% @let \ = @normalbackslash +@def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} +@let@backslashchar = @ttbackslash % @backslashchar{} is for user documents. + % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. We switch back and forth between these. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} -@gdef@usemathbackslash{@def@backslashcurfont{@math{@backslash}}} - % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of -% the literal character `\'. Also revert - to its normal character, in -% case the active - from code has slipped in. +% the literal character `\'. % {@catcode`- = @active @gdef@normalturnoffactive{% @@ -10374,40 +10965,66 @@ directory should work if nowhere else does.} @let+=@normalplus @let<=@normalless @let>=@normalgreater - @let\=@normalbackslash @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let~=@normaltilde + @let\=@ttbackslash @markupsetuplqdefault @markupsetuprqdefault @unsepspaces } } -% Make _ and + \other characters, temporarily. -% This is canceled by @fixbackslash. -@otherifyactive +% If a .fmt file is being used, characters that might appear in a file +% name cannot be active until we have parsed the command line. +% So turn them off again, and have @fixbackslash turn them back on. +@catcode`+=@other @catcode`@_=@other +% \enablebackslashhack - allow file to begin `\input texinfo' +% % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. -% -@gdef@eatinput input texinfo{@fixbackslash} -@global@let\ = @eatinput +% If the file did not have a `\input texinfo', then it is turned off after +% the first line; otherwise the first `\' in the file would cause an error. +% This is used on the very last line of this file, texinfo.tex. +% We also use @c to call @fixbackslash, in case ends of lines are hidden. +{ +@catcode`@^=7 +@catcode`@^^M=13@gdef@enablebackslashhack{% + @global@let\ = @eatinput% + @catcode`@^^M=13% + @def@c{@fixbackslash@c}% + @def ^^M{@let^^M@secondlinenl}% + @gdef @secondlinenl{@let^^M@thirdlinenl}% + @gdef @thirdlinenl{@fixbackslash}% +}} + +{@catcode`@^=7 @catcode`@^^M=13% +@gdef@eatinput input texinfo#1^^M{@fixbackslash}} -% On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\' in the file would cause an error. This macro tries to fix -% that, assuming it is called before the first `\' could plausibly occur. -% Also turn back on active characters that might appear in the input -% file name, in case not using a pre-dumped format. -% @gdef@fixbackslash{% - @ifx\@eatinput @let\ = @normalbackslash @fi + @ifx\@eatinput @let\ = @ttbackslash @fi + @catcode13=5 % regular end of line + @let@c=@texinfoc + % Also turn back on active characters that might appear in the input + % file name, in case not using a pre-dumped format. @catcode`+=@active @catcode`@_=@active + % + % If texinfo.cnf is present on the system, read it. + % Useful for site-wide @afourpaper, etc. This macro, @fixbackslash, gets + % called at the beginning of every Texinfo file. Not opening texinfo.cnf + % directly in this file, texinfo.tex, makes it possible to make a format + % file for Texinfo. + % + @openin 1 texinfo.cnf + @ifeof 1 @else @input texinfo.cnf @fi + @closein 1 } + % Say @foo, not \foo, in error messages. @escapechar = `@@ @@ -10447,3 +11064,4 @@ directory should work if nowhere else does.} @ignore arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 @end ignore +@enablebackslashhack