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

Reply via email to