@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"
(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."
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
@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
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
@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
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/}
@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
@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
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}.
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.
@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:
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
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
@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}
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
@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
@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
@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)
@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
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
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
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<Type> (SCM s)
@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
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
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
@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.
@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
@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
@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).
Finally, start the upload by entering:
@example
-git cl upload <reference SHA1 ID>
+git-cl upload <reference SHA1 ID>
@end example
@noindent
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
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
\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)
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
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}
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 $@@
@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
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
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
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
@{
@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:
@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
@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:
@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
(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
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'
@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
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
@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
@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
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.
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:
@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
@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
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:
--- /dev/null
+# 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;
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
\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
}
>>
>>
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
* Optimal page breaking::
* Minimal page breaking::
* One-line page breaking::
+* One-line-auto-height page breaking::
* Optimal page turning::
@end menu
@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:
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
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
@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]
<<
\remove "Time_signature_engraver"
\hide Clef
\magnifyStaff #2/3
+ \RemoveAllEmptyStaves
} \relative {
R1*3
c''4 e8 d c2
e4 d c2
}
>>
-
-\layout {
- \context {
- \Staff \RemoveEmptyStaves
- \override VerticalAxisGroup.remove-first = ##t
- }
-}
@end lilypond
@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
@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
@lilypond[verbatim,quote,ragged-right]
\layout {
\context {
- \Staff \RemoveEmptyStaves
+ \Staff
+ \RemoveEmptyStaves
}
}
@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}.
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
#########
$(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 $@
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
\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)
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
@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
@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
@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.
@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
@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
@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
@strong{Difficulty:} medium
@strong{Requirements:} C++
-@strong{Mentor(s):} Joe Neeman, Reinhold Kainhofer
+@strong{Potential Mentors:} Joe Neeman, Reinhold Kainhofer
@divEnd
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}.
@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
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
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}).
@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.
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.
@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
* 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}
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
MSGFMT = @MSGFMT@
PAPERSIZE=a4
PATHSEP = @PATHSEP@
+PDFTEX = @PDFTEX@
PDFLATEX = @PDFLATEX@
PERL = @PERL@
PLATFORM_WINDOWS = @PLATFORM_WINDOWS@
\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."
\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."
\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)
\version "2.19.34"
\header {
-
+
doctitle = "Beam subdivide over quarter notes"
texidoc = "If in a subdivided beam one single stem follows a subdivision
\header {
- texidoc = "Beam count at subdivisions should match the location
+ texidoc = "Beam count at subdivisions should match the location
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'']
--- /dev/null
+\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
+}
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
\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
(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
-\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
'(-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
\combine \null \vspace #1
\underline "Modern-straight-flag:"
\override #'(flag-style . modern-straight-flag)
- \show-note-styles #'(default)
+ \show-note-styles #'(default mensural)
}
}
\show-note-styles #'(default)
}
}
+
+\markup {
+ \column {
+ \combine \null \vspace #1
+ \underline "default-flag:"
+ \override #'(flag-style . default)
+ \show-note-styles #'(default mensural)
+ }
+}
--- /dev/null
+\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"
-\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
\layout { ragged-right = ##t }
{
- \once \tweak Stem.color #red
- \tweak color #blue
+ \once \propertyTweak Stem.color #red
+ \propertyTweak color #blue
\override NoteHead.style = #'cross
<c' e'>2 c'2
}
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)),
// 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;
}
}
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());
--- /dev/null
+/*
+ This file is part of LilyPond, the GNU music typesetter.
+
+ Copyright (C) 2012 Joe Neeman <joeneeman@gmail.com>
+
+ 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 <http://www.gnu.org/licenses/>.
+*/
+
+#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 */
--- /dev/null
+/*
+ This file is part of LilyPond, the GNU music typesetter.
+
+ Copyright (C) 2012 Joe Neeman <joeneeman@gmail.com>
+
+ 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 <http://www.gnu.org/licenses/>.
+*/
+
+#include "one-line-auto-height-breaking.hh"
+
+#include <limits>
+
+#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<Grob *> cols = ps->root_system ()->used_columns ();
+
+ // No indent, "infinite" line width, ragged.
+ Column_x_positions pos = get_line_configuration (cols, numeric_limits<Real>::max (), 0, true);
+ vector<Column_x_positions> 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<vsize> 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);
+}
/*
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 ()
#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"
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<Paper_book> (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<Paper_book> (pb));
+ return b.solve ();
+}
;
markup_scm:
- embedded_scm_bare
+ embedded_scm
{
if (Text_interface::is_markup ($1))
MYBACKUP (MARKUP_IDENTIFIER, $1, @1);
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_)
{
else if (Audio_dynamic *d = dynamic_cast<Audio_dynamic *> (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);
}
}
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<Real> final_values;
+ for (vector<Real>::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
%}
-\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"
%}
-\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"
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?)
;; 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)))
;; 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)
%% 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))
%%
("&AA;" . "Å")
("&ae;" . "æ")
("&AE;" . "Æ")
+ ("ä" . "ä")
+ ("Ä" . "Ä")
("&dh;" . "ð")
("&DH;" . "Ð")
("&dj;" . "đ")
("&O;" . "Ø")
("&oe;" . "œ")
("&OE;" . "Œ")
+ ("ö" . "ö")
+ ("Ö" . "Ö")
("&s;" . "ſ")
("&ss;" . "ß")
("&th;" . "þ")
("&TH;" . "Þ")
+ ("ü" . "ü")
+ ("Ü" . "Ü")
;; Mathematical symbols
("+" . "+")
###########
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:\
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)
###########
# 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
# 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) \
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) \
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
# 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
# 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 <keld@dkuug.dk>, 2001-2002.
# Reviewed 2001-09-28 Rune Zedeler <rz@daimi.au.dk>
-# Joe Hansen <joedalton2@yahoo.dk>, 2015.
+# Joe Hansen <joedalton2@yahoo.dk>, 2015, 2016.
#
# Konventioner:
# alteration -> alteration
#
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 <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
#: 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"
#: 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 ""
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."
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"
"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"
#. "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 <dansk@dansk-gruppen.dk>"
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"
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"
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"
"%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."
"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"
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"
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"
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"
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«"
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"
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"
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"
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"
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«"
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"
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"
"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"
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"
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 ..."
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"
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«"
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"
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"
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<T> delivered 0, yet
+#. unsmob<T> delivers true. This means that unsmob<T> 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'"
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."
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"
"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"
"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."
"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"
"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"
"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."
"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"
"%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"
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«"
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«"
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"
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"
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"
"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«"
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"
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« ..."
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"
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"
"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"
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"
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?"
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"
msgid "unterminated tie"
msgstr "uafsluttet bindebue"
-#: tie-engraver.cc:373
+#: tie-engraver.cc:377
msgid "lonely tie"
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«"
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"
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)"
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«"
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."
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 ..."
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"
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"
"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"
"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"
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"
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 { ... }"
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
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"
# 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 <yamad@mb.infoweb.ne.jp>, 2000.
# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2012.
+# Masamichi Hosoda <trueroad@trueroad.jp>, 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 <hmatrjp@users.sourceforge.jp>\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 <trueroad@trueroad.jp>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\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"
"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"
"* 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"
"\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"
"\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"
"%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"
"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"
"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"
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 (<metronome-note> 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 "å\92\8cé\9f³ã\81«LilyPond è¨\80èª\9eã\82\92追å\8a "
+msgid "Applying conversion: "
+msgstr "å¤\89æ\8f\9b対象:\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 <hanwen@xs4all.nl>,\n"
-" Jan Nieuwenhuizen <janneke@gnu.org> and\n"
-" Reinhold Kainhofer <reinhold@kainhofer.com>\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 "ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cè¦\8bã\81¤ã\81\8bã\82\8aã\81¾ã\81\9bã\82\93: \"%s\""
+msgid "%s: Unable to determine version. Skipping"
+msgstr "ã\83ã\83¼ã\82«ã\83«ã\83\8dã\83¼ã\83 ã\82\92決å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81¾ã\81\9bã\82\93"
-#: 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"
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 "ã\82¯ã\83ã\82¹ã\83\87ã\83\90ã\82¤ã\82¹ã\83ªã\83³ã\82¯"
+#: musicxml2ly.py:247 musicxml2ly.py:249
+#, fuzzy, python-format
+msgid "Unprocessed PartGroupInfo %s encountered"
+msgstr "ã\83«ã\83¼ã\83\97ã\81\97ã\81¦ã\81\84ã\82\8bã\83ªã\83³ã\82¯ã\81«é\81é\81\87ã\81\97ã\81¾ã\81\97ã\81\9f"
-#: 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 "ã\82ªã\83\97ã\82·ã\83§ã\83³ `%s' ã\81«ã\81¯å¼\95æ\95°ã\81\8cå¿\85è¦\81ã\81§ã\81\99"
+#: musicxml2ly.py:767
+#, fuzzy
+msgid "Unable to extract key signature!"
+msgstr "ã\83¡ã\82¿ã\83\87ã\83¼ã\82¿ã\81®å\80¤ã\82\92è¨å®\9aã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9f"
-#: 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 (<metronome-note> 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 <hanwen@xs4all.nl>,\n"
+" Jan Nieuwenhuizen <janneke@gnu.org> and\n"
+" Reinhold Kainhofer <reinhold@kainhofer.com>\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 "ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª %s ã\81\8cè¦\8bã\81¤ã\81\8bã\82\8aã\81¾ã\81\9bã\82\93\n"
+#: musicxml2ly.py:2754
+#, fuzzy, python-format
+msgid "unknown part in part-list: %s"
+msgstr "ã\82ã\83¼ã\83¯ã\83¼ã\83\89ä¸\80覧ã\81®å\90\84é \85ç\9b®:"
-#: 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 "ã\82¤ã\83\99ã\83³ã\83\88ã\82\92横å\8f\96ã\82\8a(_G)"
+#: musicxml2ly.py:2964
+#, fuzzy, python-format
+msgid "Unable to find input file %s"
+msgstr "ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cè¦\8bã\81¤ã\81\8bã\82\8aã\81¾ã\81\9bã\82\93: \"%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 <a href=\"%s\">automatic language selection</a>."
+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 "ã\81\93ã\81\93ã\81«ã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\82\92ã\81©ã\81\86ã\81\9e"
+#: getopt-long.cc:167
+#, c-format
+msgid "invalid argument `%s' to option `%s'"
+msgstr "ã\82ªã\83\97ã\82·ã\83§ã\83³ `%2$s' ã\81«å¯¾ã\81\99ã\82\8bç\84¡å\8a¹ã\81ªå¼\95æ\95° `%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
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 "ファイルが見つかりません"
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 "ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®å\88\9dæ\9c\9få\8c\96ä¸"
+msgid "skipping assignment"
+msgstr "ã\81¨ã\81«ã\81\8bã\81\8fã\83ã\82°ã\82¤ã\83³"
-#: 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<T> delivered 0, yet
+#. unsmob<T> delivers true. This means that unsmob<T> 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"
"これを改変したり、複製を配布したりする事は歓迎されます。\n"
"`--warranty' オプション付きで起動すると、より詳細な情報が得られます。\n"
-#: main.cc:107
+#: main.cc:112
#, fuzzy
msgid ""
" This program is free software; you can redistribute it and/or\n"
"です(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 ã\82½ã\83¼ã\82¹ã\82³ã\83¼ã\83\89"
+msgstr "Scheme ã\82³ã\83¼ã\83\89ã\82\92è©\95価ã\81\97ã\81¾ã\81\99"
#. 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 ã\83\89ã\82ã\83¥ã\83¡ã\83³ã\83\88"
+msgstr "PostScript ã\82\92ç\94\9fæ\88\90ã\81\97ã\81¾ã\81\99"
-#: 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"
"%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 "ã\83ªã\83\83ã\83\81ã\83\86ã\82ã\82¹ã\83\88ã\83\89ã\82ã\83¥ã\83¡ã\83³ã\83\88"
+msgid "Track..."
+msgstr "ã\83\88ã\83©ã\83\83ã\82¯ã\81®ã\83\94ã\83¼ã\82¯"
-#: 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 "ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\82\92 %s ã\81«å¤\89æ\9b´ã\81§ã\81\8dã\81¾ã\81\9bã\82\93"
+msgid "cannot find start of piano pedal bracket: `%s'"
+msgstr "ã\83\94ã\82¢ã\83\8eã\83\9aã\83\80ã\83«ã\81®å§\8bç\82¹ã\81\8cè¦\8bã\81¤ã\81\8bã\82\8aã\81¾ã\81\9bã\82\93: `%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 "ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81®è¿½å\8a ã\81«å¤±æ\95\97ã\81\97ã\81¾ã\81\97ã\81\9f: %s"
+#: relocate.cc:56
+#, fuzzy, c-format
+msgid "Setting %s to %s"
+msgstr "ã\83\89ã\83¡ã\82¤ã\83³ã\82\92`%s'ã\81¸è¨å®\9aã\81\97ã\81¾ã\81\97ã\81\9f\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 "ã\83\96ã\83©ã\82· '%s' ã\81\8cè¦\8bã\81¤ã\81\8bã\82\8aã\81¾ã\81\9bã\82\93ã\80\82"
+msgid "no such directory: %s for %s"
+msgstr "ã\81\9dã\81®ã\82\88ã\81\86ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¯ã\81\82ã\82\8aã\81¾ã\81\9bã\82\93"
-#: 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 "ã\82¹ã\83©ã\83¼ã\81®ä¸ã\81«å\88¥ã\81®ã\82¹ã\83©ã\83¼ã\82\92å\90«ã\82\80ã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93"
+msgid "already have a text spanner"
+msgstr "ã\83ªã\83\83ã\83\81ã\83\86ã\82ã\82¹ã\83\88ã\83\89ã\82ã\83¥ã\83¡ã\83³ã\83\88"
-#: 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 "å\90\8då\89\8dã\81ªã\81\97"
+msgid "Processing ~S..."
+msgstr "å\87¦ç\90\86ä¸..."
-#: 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 があります"
#~ 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 ファイルを解析中にエラー"
#~ msgid "unconventional key: flats: %d, sharps: %d"
#~ msgstr "慣習に合わないキーです: フラット: %d 個, シャープ %d 個"
-#~ msgid "silly duration"
-#~ msgstr "馬鹿げた音長"
-
#~ msgid "silly pitch"
#~ msgstr "馬鹿げたピッチ"
#~ msgid "invalid running status"
#~ msgstr "無効な動作状態"
-#~ msgid "unimplemented MIDI meta-event"
-#~ msgstr "未実装の MIDI メタイベント"
-
#~ msgid "invalid MIDI event"
#~ msgstr "無効な MIDI イベント"
#~ msgid "(search path: `%s)'"
#~ msgstr "(検索パス: `%s')"
-#~ msgid "unfinished beam"
-#~ msgstr "終了されていない鈎"
-
#~ msgid "0 lines"
#~ msgstr "0 行"
#, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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"
#. 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 ""
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 ""
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"
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 ""
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 ""
# 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 <hanwen@cs.uu.nl>, 1998.
# Jan Nieuwenhuizen <janneke@gnu.org>, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007.
-# Benno Schulenberg <benno@vertaalt.nl>, 2013, 2015.
-# Frans Spiesschaert <Frans.Spiesschaert@yucom.be>, 2015.
+# Benno Schulenberg <benno@vertaalt.nl>, 2013, 2015, 2016.
+# Frans Spiesschaert <Frans.Spiesschaert@yucom.be>, 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 <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
#: 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"
#: 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"
#: 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.
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"
#: 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"
#: note-heads-engraver.cc:76
msgid "NoteEvent without pitch"
-msgstr "NootGebeurtenis zonder toonhoogte"
+msgstr "NoteEvent zonder toonhoogte"
#: open-type-font.cc:45
#, c-format
#: 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
#: 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
#: 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
#: 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
#: 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
#: 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
"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..."
#: 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"
#: 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
#: 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
#: 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"
#: relocate.cc:347
#, c-format
msgid "Relocation file: %s"
-msgstr "Verhuisbestand: %s"
+msgstr "Verplaatsingsbestand: %s"
#: relocate.cc:351 source-file.cc:65
#, c-format
#: 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"
#: 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
#. 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
#: slur-proto-engraver.cc:183
#, c-format
msgid "%s without a cause"
-msgstr ""
+msgstr "%s zonder reden"
#: slur-proto-engraver.cc:244
#, c-format
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
#: 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
#: 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?
#: 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
#: 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
#: 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"
#: 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"
#: 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"
#: 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"
#: 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"
#: 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"
#: 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"
#: parser.yy:3693
msgid "not a markup"
-msgstr ""
+msgstr "is geen mark-up"
#: lexer.ll:193
msgid "stray UTF-8 BOM encountered"
#: 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"
#: 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"
#: 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
#: 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
#: 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
#: 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
#: 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
#: 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
#: 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 ""
" %% ****************************************************************\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"
#: 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 ""
"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
#: 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"
#: 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
"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
#: 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
#: 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
#: 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
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
#: 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
"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"
#~ 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)"
#~ 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"
#~ 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)"
#~ msgid "print version information"
#~ msgstr "toon versie informatie"
-#~ msgid "getopt says: `%s'"
-#~ msgstr "getopt zegt: `%s'"
-
#~ msgid "Run LilyPond, add titles, generate printable document."
#~ msgstr "Draai LilyPond, voeg titels toe, genereer af te drukken dokument."
#~ msgid "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"
#~ 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"
#~ msgid "Global shortest duration is %s"
#~ msgstr "Globaal kortste lengte is %s"
-#~ msgid "#<spring smob d= %f>"
-#~ msgstr "#<veer smob d= %f>"
-
#~ msgid "Don't you want polyphonic voices instead?"
#~ msgstr "Wil je anders echt geen polyfone stemmen?"
-#~ msgid "can't find ascii character: %d"
-#~ msgstr "kan ascii teken niet vinden: %d"
-
#~ msgid "TFM header of `%s' has only %u word (s)"
#~ msgstr "TFM kop van `%s' heeft slechts %u woord(en)"
#~ msgid "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
#~ msgstr "Meld fouten naar <a href=\\\"%(mail_address_url)s\\\">%(mail_address)s</a>."
-#~ msgid "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."
@message{Global: textwidth=@the@hsize,exampleindent=@the@lispnarrowing}
+dummy
+
@bye
'''
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
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 {
@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))
(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
(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))
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.
(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
(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.
;; 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}.
(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)))
(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)))
;; 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)
(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 "<a style=\"color:inherit;\" xlink:href=\"textedit://~a:~a:~a:~a\">\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))))))))
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
;;;; (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
(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
$(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) $(<F) < /dev/null" "$*.texi2pdf.log"
+ PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(buildscript-dir)/run-and-check "cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) -D web_version -I $(abs-src-dir) $(TEXINFO_PAPERSIZE_OPTION) $(<F) < /dev/null" "$*.texi2pdf.log"
else
- $(buildscript-dir)/run-and-check "cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) -I $(abs-src-dir) $(TEXINFO_PAPERSIZE_OPTION) $(<F) < /dev/null" "$*.texi2pdf.log"
+ PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(buildscript-dir)/run-and-check "cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) -I $(abs-src-dir) $(TEXINFO_PAPERSIZE_OPTION) $(<F) < /dev/null" "$*.texi2pdf.log"
endif
$(outdir)/%.txt: $(outdir)/%.texi $(outdir)/version.itexi $(outdir)/weblinks.itexi | $(OUT_TEXINFO_MANUALS)
###########
ifneq ($(ISOLANG),)
-TEXI2HTML_LANG = --lang=$(ISOLANG)
+TEXI2HTML_LANG = --document-language=$(ISOLANG)
endif
TEXI2HTML_INIT = --init-file=$(top-src-dir)/Documentation/lilypond-texi2html.init
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2015-08-17.16}
+\def\texinfoversion{2015-12-20.12}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
-% Since the category of space is not known, we have to be careful.
-\chardef\spacecat = 10
-\def\spaceisspace{\catcode`\ =\spacecat}
+% Give the space character the catcode for a space.
+\def\spaceisspace{\catcode`\ =10\relax}
-% sometimes characters are active, so we need control sequences.
-\chardef\ampChar = `\&
-\chardef\colonChar = `\:
-\chardef\commaChar = `\,
\chardef\dashChar = `\-
-\chardef\dotChar = `\.
-\chardef\exclamChar= `\!
-\chardef\hashChar = `\#
-\chardef\lquoteChar= `\`
-\chardef\questChar = `\?
-\chardef\rquoteChar= `\'
-\chardef\semiChar = `\;
\chardef\slashChar = `\/
\chardef\underChar = `\_
wide-spread wrap-around
}
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen\bindingoffset
-\newdimen\normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt }
-
% Sometimes it is convenient to have everything in the transcript file
% and nothing on the terminal. We don't just call \tracingall here,
% since that produces some useless output on the terminal. We also make
\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
\removelastskip\penalty-200\bigskip\fi\fi}
+%\f Output routine
+%
+
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
+%
+\def\finalout{\overfullrule=0pt }
+
% Do @cropmarks to get crop marks.
%
\newif\ifcropmarks
%
% Another complication is to let the user choose whether \thischapter
% (\thissection) refers to the chapter (section) in effect at the top
-% of a page, or that at the bottom of a page. The solution is
-% described on page 260 of The TeXbook. It involves outputting two
-% marks for the sectioning macros, one before the section break, and
-% one after. I won't pretend I can describe this better than DEK...
-%
+% of a page, or that at the bottom of a page.
+
+% \domark is called twice inside \chapmacro, to add one
+% mark before the section break, and one after.
+% In the second call \prevchapterdefs is the same as \lastchapterdefs,
+% and \prevsectiondefs is the same as \lastsectiondefs.
+% Then if the page is not broken at the mark, some of the previous
+% section appears on the page, and we can get the name of this section
+% from \firstmark for @everyheadingmarks top.
+% @everyheadingmarks bottom uses \botmark.
+%
+% See page 260 of The TeXbook.
\def\domark{%
\toks0=\expandafter{\lastchapterdefs}%
\toks2=\expandafter{\lastsectiondefs}%
\toks6=\expandafter{\prevsectiondefs}%
\toks8=\expandafter{\lastcolordefs}%
\mark{%
- \the\toks0 \the\toks2 % 0: top marks (\last...)
- \noexpand\or \the\toks4 \the\toks6 % 1: bottom marks (default, \prev...)
+ \the\toks0 \the\toks2 % 0: marks for @everyheadingmarks top
+ \noexpand\or \the\toks4 \the\toks6 % 1: for @everyheadingmarks bottom
\noexpand\else \the\toks8 % 2: color marks
}%
}
+
+% \gettopheadingmarks, \getbottomheadingmarks,
+% \getcolormarks - extract needed part of mark.
+%
% \topmark doesn't work for the very first chapter (after the title
% page or the contents), so we use \firstmark there -- this gets us
% the mark with the chapter defs, unless the user sneaks in, e.g.,
\def\prevsectiondefs{}
\def\lastcolordefs{}
+% Margin to add to right of even pages, to left of odd pages.
+\newdimen\bindingoffset
+\newdimen\normaloffset
+\newdimen\pagewidth \newdimen\pageheight
+
% Main output routine.
+%
\chardef\PAGE = 255
\output = {\onepageout{\pagecontents\PAGE}}
\newbox\headlinebox
\newbox\footlinebox
-% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions, but you have to call it yourself.
+% \onepageout takes a vbox as an argument.
+% \shipout a vbox for a single page, adding an optional header, footer,
+% cropmarks, and footnote. This also causes index entries for this page
+% to be written to the auxiliary files.
+%
\def\onepageout#1{%
\ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
%
\ifodd\pageno \advance\hoffset by \bindingoffset
\else \advance\hoffset by -\bindingoffset\fi
%
+ % Common context changes for both heading and footing.
% Do this outside of the \shipout so @code etc. will be expanded in
% the headline as they should be, not taken literally (outputting ''code).
\def\commmonheadfootline{\let\hsize=\pagewidth \texinfochars}
%
- \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
- \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+ % Retrieve the information for the headings from the marks in the page,
+ % and call Plain TeX's \makeheadline and \makefootline, which use the
+ % values in \headline and \footline.
+ %
+ % This is used to check if we are on the first page of a chapter.
+ \ifcase1\topmark\fi
+ \let\prevchaptername\thischaptername
+ \ifcase0\firstmark\fi
+ \let\curchaptername\thischaptername
%
+ \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
\ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
+ %
+ \ifx\curchaptername\prevchaptername
+ \let\thischapterheading\thischapter
+ \else
+ % \thischapterheading is the same as \thischapter except it is blank
+ % for the first page of a chapter. This is to prevent the chapter name
+ % being shown twice.
+ \def\thischapterheading{}%
+ \fi
+ %
+ \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
\global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
%
{%
+ % Set context for writing to auxiliary files like index files.
% Have to do this stuff outside the \shipout because we want it to
% take effect in \write's, yet the group defined by the \vbox ends
% before the \shipout runs.
\normalturnoffactive % \ in index entries must not stay \, e.g., if
% the page break happens to be in the middle of an example.
% We don't want .vr (or whatever) entries like this:
- % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
+ % \entry{{\indexbackslash }acronym}{32}{\code {\acronym}}
% "\acronym" won't work when it's read back in;
% it needs to be
- % {\code {{\tt \backslashcurfont }acronym}
+ % {\code {{\backslashcurfont }acronym}
\shipout\vbox{%
% Do this early so pdf references go to the beginning of the page.
\ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
\newinsert\margin \dimen\margin=\maxdimen
+% Main part of page, including any footnotes
\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
{\catcode`\@ =11
\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
\def\nsbot{\vbox
{\hrule height\cornerlong depth\cornerthick width\cornerthick}}
+
+% Argument parsing
+
% Parse an argument, then pass it to #1. The argument is the rest of
% the input line (except we remove a trailing comment). #1 should be a
% macro which expects an ordinary undelimited TeX argument.
+% For example, \def\foo{\parsearg\fooxxx}.
%
\def\parsearg{\parseargusing{}}
\def\parseargusing#1#2{%
}%
}
-% First remove any @comment, then any @c comment.
+% First remove any @comment, then any @c comment. Also remove a @texinfoc
+% comment (see \scanmacro for details). Pass the result on to \argcheckspaces.
\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
-\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argremovetexinfoc #1\texinfoc\ArgTerm}
+\def\argremovetexinfoc#1\texinfoc#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
%
%
\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%
}
\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).
\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 ...'.
% @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.
% @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}
\newtoks\toksC
\newtoks\toksD
\newbox\boxA
+\newbox\boxB
\newcount\countA
\newif\ifpdf
\newif\ifpdfmakepagedest
\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,
% 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}
% 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}
%
\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{%
% 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
%
\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.
\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.
\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
% @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}}
\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
\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}
\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
}
\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
}
\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
}
% 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}}
}
\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.
\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.
\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
}
}
% \commondummiesnofonts: common to \commondummies and \indexnofonts.
+% Define \definedumyletter, \definedummyaccent and \definedummyword before
+% using.
%
\def\commondummiesnofonts{%
% Control letters and accents.
\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
\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
\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
%
\def\L{L}%
\def\OE{OE}%
\def\O{O}%
- \def\TH{ZZZ}%
+ \def\TH{TH}%
\def\aa{aa}%
\def\ae{ae}%
\def\dh{dzz}%
\def\o{o}%
\def\questiondown{?}%
\def\ss{ss}%
- \def\th{zzz}%
+ \def\th{th}%
%
\def\LaTeX{LaTeX}%
\def\TeX{TeX}%
\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
\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).
\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.
\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.
%
% 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
% 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:
%
% 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
% 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
}
\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
% 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
%
% 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
}
\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}}
% 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 = {%
%
\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}%
%
% 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
%
\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
\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
% \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
\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
}
% @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
% 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.
\CHAPPAGon
-% Chapter opening.
+% \chapmacro - Chapter opening.
%
% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
% Yappendix, Yomitfromtoc), #3 the chapter number.
\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
% 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{%
\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}}
\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
% 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
\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
% 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
\egroup
\cartbot
\egroup
+ \addgroupbox
\checkinserts
}
\temp
}
-% \domakedefun \deffn \deffnx \deffnheader
+% \domakedefun \deffn \deffnx \deffnheader { (defn. of \deffnheader) }
%
% Define \deffn and \deffnx, without parameters.
% \deffnheader has to be defined explicitly.
}
\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
\catcode`\+=\other
\catcode`\<=\other
\catcode`\>=\other
- \catcode`\@=\other
\catcode`\^=\other
\catcode`\_=\other
\catcode`\|=\other
\def\scanargctxt{% used for copying and captions, not macros.
\scanctxt
+ \catcode`\@=\other
\catcode`\\=\other
\catcode`\^^M=\other
}
\def\macrobodyctxt{% used for @macro definitions
\scanctxt
\catcode`\ =\other
+ \catcode`\@=\other
\catcode`\{=\other
\catcode`\}=\other
\catcode`\^^M=\other
% 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
\fi
}
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> 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
+% <parameter list> 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
\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
\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
\getargvals@@
\fi
}
-
-% Internal for \getargsval@.
-%
\def\getargvals@@{%
\ifx\paramlist\nilm@
% Some sanity check needed here that \argvaluelist is also empty.
\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@
\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
\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
\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
% 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
%
% 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
% If its value is nonempty, SUFFIX is output afterward.
%
\def\refx#1#2{%
+ \requireauxfile
{%
\indexnofonts
\otherbackslash
\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{%
\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
% \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
% @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}%
%
\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.
\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}}
\DeclareUnicodeCharacter{1EF8}{\~Y}
\DeclareUnicodeCharacter{1EF9}{\~y}
+ % Punctuation
\DeclareUnicodeCharacter{2013}{--}
\DeclareUnicodeCharacter{2014}{---}
\DeclareUnicodeCharacter{2018}{\quoteleft}
\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.
% 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
\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
\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.
% 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{%
% \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{%
@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 = `@@
@ignore
arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
@end ignore
+@enablebackslashhack