Am 19.11.2017 um 20:28 schrieb David Kastrup:
Jacques Peron <catac...@hotmail.com> writes:
The only thing I don't know how to do is to have the same name (lilypond)
for thé command and for the environment. So I privileged the
environment.
Neither are called lilypond. It's not particularly great, but there are
examples for the sharing of command and environment. Basically you
check whether @currenvir is set to LilyPond. As long as you don't
_nest_ those constructs...
Basically:
\newenvironment{lilypond}
{...}
{...}
\newcommand{\lilypondcommand}{...}
\let\lilypond@envcode\lilypond
\protected\def\lilypond{\def\reserved@a{lilypond}%
\ifx\reserved@a\@currenv \expandafter\lilypond@envcode
\else \expandafter \lilypondcommand \fi}
Ugly, sure. But I think LilyPond upstream would be sympathetic to
making command and environment named differently in the long run.
I don’t know enough about (La?)TeX internals to understand the code
above but if you redefined the command \lilypond, would things like the
following still be possible?
\newenvironment{dly}{
\center
\ly
\language "deutsch"
\paper {
##(define fonts
(set-global-fonts
##:music "cadence"
##:brace "cadence"
##:roman "Vollkorn"
##:factor (/ staff-height pt 20)))
}
\layout {
% some other general things
}
% some includes and function definitions
}{\endly\endcenter}
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user