Re: Three-column Table of Contents
On 2022-09-05 5:12 pm, Adam M. Griggs wrote: That's wonderful! Exactly what I was after, all the way down to the internal hyperlinking. Well, all of the linking work is part of the built-in table of contents support in LilyPond. For fun, though, I continued with the idea and came up with another approach that might be a little more extensible. In this case, I demonstrate support for three data fields (not including the page number): \version "2.22.0" \paper { %% This is where you style an individual custom TOC item. %% Custom properties like toc:first should exist here. tocCustomItemMarkupInner = \markup \fill-line { \line { \hspace #12 \with-dimensions-from \hspace #1 \general-align #X #RIGHT \fromproperty #'toc:first \bold \override #'(thickness . 2) \whiteout \fromproperty #'toc:second } \italic \override #'(thickness . 2) \whiteout \fromproperty #'toc:third \fromproperty #'toc:page } %% This is mainly a wrapper that stuffs the desired formatting %% above into a property that will be referenced by toc:text. tocCustomItemMarkup = \markup \overlay { \fill-with-pattern #1 #RIGHT "." \hspace #13 \hspace #1 \override #(cons 'toc:inner tocCustomItemMarkupInner) \fromproperty #'toc:text } } tocCustomItem = #(define-music-function (first second third) (markup? markup? markup?) (add-toc-item! 'tocCustomItemMarkup ;; This is where all of the custom properties are given ;; their values. Note that we also reference toc:inner ;; which will get its value via tocCustomInnerMarkup. #{ \markup \override #(cons 'toc:first first) \override #(cons 'toc:second second) \override #(cons 'toc:third third) \fromproperty #'toc:inner #} '())) \markuplist \override #'(line-width . 80) \table-of-contents \tocCustomItem lorem ipsum dolor \markup \null \pageBreak \tocCustomItem sit amet consectetur \markup \null \pageBreak \tocCustomItem adipisicing elit sed \markup \null \pageBreak \tocCustomItem do eiusmod tempor \markup \null \pageBreak \tocCustomItem incididunt ut labore \markup \null \pageBreak \tocCustomItem et dolore magna \markup \null \pageBreak \tocCustomItem aliqua ut enim \markup \null -- Aaron Hill
Re: Getting point and click going with gvim on Alma Linux
Worse, /usr/bin/vim in Alma Linux will not run the --servername option as it is built without it. You'd have to build vim from source. Vim on Arch Linux is built with that option, I checked. Once more, a disadvantage of Alma Linux. Also, having originally said to use the flatpack version of Frescobaldi, for me it is unusable (though it worked once the first time, and not thereafter) as it shows all sorts of strange file paths under /run, and not my home directory. For me on Alma Linux that is also a failure. Do not misinterpret me - I think Alma Linux is really excellent. Just not in the context of the Lilypond application area. Andrew
Re: Getting point and click going with gvim on Alma Linux
This note was to help out with Alma Linux, so I have not tried on other distros as yet, but using vim in server mode is a failure as bad as emacs. It prints a message correctly claiming input is not from a terminal and hangs, and then, weirdly, it hangs evince as well which has to be forced to quit. Not exactly a happy state. That's on vim compiled from the latest source, version 9.0.381. Personally I don't use Alma Linux, was just doing this for the OP of the thread about Frescobaldi alternatives. But I am getting the impression that while Alma Linux is a great enterprise class server system, it may not be the optimal choice for Lilypond. Nevertheless, I will continue to study the matter. Andrew
Re: Three-column Table of Contents
On 2022-09-05 7:29 am, Adam M. Griggs wrote: [ . . . ] Given this rough mockup of the wanted end result, is it possible for me to automatically generate such a ToC? It requires working around some limitations of the built-in \tocItem. Importantly, \tocItem only supports providing a single markup for each item. As such, \table-of-contents will only output two columns of data: the text for an item and its page number. Short of ripping out the guts of \table-of-contents and allowing a more flexible input format, we can cheat a little. The text of each item is itself markup, so you can provide much more than just a simple bit of text. If we cram two pieces of data into that field, the final table of contents will appear to have three columns of data. The main limitation is that we have to split up the formatting of each line into two parts. So this requires careful coordination to ensure things lay out as expected. Here is just one way of doing this: \version "2.22.0" \paper { myTocItemMarkup = \markup \fill-line { \null \override #'(line-width . 50) \overlay { \tiny \fill-with-pattern #0.75 #RIGHT "." \null \null \fill-line \larger { \fromproperty #'toc:text \override #'(style . outline) \override #'(thickness . 3) \whiteout \fromproperty #'toc:page } } \null } tocDividerMarkup = \markup \pad-around #3 \fill-line { \null ". . ." \null } } myTocItem = #(define-music-function (piece parts) (markup? markup?) (add-toc-item! 'myTocItemMarkup #{ \markup \concat { \with-dimensions-from \hspace #20 \override #'(thickness . 2) \whiteout $piece \override #'(thickness . 2) \whiteout $parts } #} '())) tocDivider = #(define-music-function () () (add-toc-item! 'tocDividerMarkup "" '())) \book { \markuplist \table-of-contents \myTocItem "Piece I" "SSAA" \markup \null \pageBreak \myTocItem "Piece I" "SATB" \markup \null \pageBreak \myTocItem "Piece II" "SSAA" \markup \null \pageBreak \markup \null \pageBreak \myTocItem "Piece II" "SATB" \markup \null \pageBreak \markup \null \pageBreak \markup \null \pageBreak \myTocItem "Piece II" "TTBB" \markup \null \pageBreak \markup \null \pageBreak \markup \null \pageBreak \markup \null \pageBreak \markup \null \pageBreak \tocDivider \myTocItem \markup \bold "Piece XXVI" \markup \italic "SSAATTBB" \markup \null } -- Aaron Hill
Re: Latest Version sh file?
Yes, I am there. I got it now. I put it in bin. It's up and running. I think I am getting old, lol. It's odd, Frescobaldi isn't working on mint 21, there is a bug directly at startup, but there is an option of Frescobaldi Flatpak which is running, but the pathways to the Frescoabaldi Flatpak application are bizarre. This means the Frescobaldi Flatpak won't run the lilypond 2.23, just 2.22 for some reason. It struggled to do /include "myfile.ly" in a lilypond bang. But, yeah, I am running 2.23 in the terminal and all is good. That's the way I used to run lilypond anyway. I work on multi file lilypond projects all the time, so Frescobaldi is a wonderful aid. Gosh, updating to mint 21 was a dream. Thanks! Craig On 9/5/22 4:14 PM, David Wright wrote: On Mon 05 Sep 2022 at 13:19:44 (-0400), Craig Bakalian wrote: Hi David, Thanks, got it. I used to be a C programmer, lol. You think I would know. I must say that I did like the sh file better than sudo mv. One more question though, I can't move it to usr/share because that is where the usr/share/lilypond folder is that holds 2.22.1, right? Yes, I wouldn't commingle versions, particularly downloaded ones with distribution ones. I am thinking a good place for it is usr/local/share/. Because of the lilypond binary itself, I would prefer a bin/, like /usr/local/bin/lilypond-2.23.12/{bin,etc,lib,libexec,licenses,share}/ but as I'm the only one using it here, I just use ~/lilypond-2.23.12/… along with several other versions. I don't modify my $PATH. I run LP with a bash function having the following options: -p restore Point-and-click (increases size, reveals paths), -x run eXperimental cairo backend (for 2.23.12 on, PDF-1.5, doubles size), -l retain the Log output rather than moving it to trash, -v run a specific Version of LilyPond from $HOME, -s run the Stable version rather than the newest, -o run the Oldest version from $HOME, -d run the installed Debian version, -c Crop PDF file with pdfcrop for inclusion within LaTeX files. Cheers, David.
Re: Between context communication
Hi, Quick answers to quick questions: Le 05/09/2022 à 21:48, Kyle Baldwin a écrit : Hello - I'm trying to write an engraver that works in this way. It listens for absolute-dynamic events and text script and hairpin/dynamic-text-spanner events with a custom event name (ExpressiveTextEvent) and do some formatting. If the text is by itself, it's italicized and put below the staff. If there is a dynamic event, it creates a new stencil with dynamic + text. If both the absolute and spanner exist, put the text below the spanner. There is also an option on the Expressive text where it will force the text to go above the staff. (All inspired by Gould 495) Everything works great as long as I have everything on the same staff. However, I would like to keep my dynamics and my notes separate in a << \Staff \Dynamics>> setup. In this way, I can put the engraver on the Score and everything works well. But I am unsure how to expand this to a score with multiple sets of << \Staff \Dynamics>>. Three quick questions which maybe make it seem like I've missed something rudimentary. Is there an easy way to access the child contexts of a context through scheme in order to record names and make pairs? I think the most straightforward way would be to acknowledge their respective VerticalAxisGroup grobs (characterized by hara-kiri-group-spanner-interface). (acknowledgers ((hara-kiri-group-spanner-interface engraver grob source-engraver) ... (ly:translator-context source-engraver) ...)) Note that ly:translator-context is new in 2.23. Can I even access the source contexts in either of the listener or acknowledger sections of an engraver? Listeners, no. Acknowledgers, yes, with ly:translator-context as shown above. Would it be easiest to just create a new context type that wraps the music + dynamics and just put the custom engraver on that? Any other ideas? Wrapping in a custom context type is what I would personally do. Best, Jean
Re: Latest Version sh file?
On Mon 05 Sep 2022 at 13:19:44 (-0400), Craig Bakalian wrote: > Hi David, > > Thanks, got it. I used to be a C programmer, lol. You think I would > know. I must say that I did like the sh file better than sudo mv. > One more question though, I can't move it to usr/share because that is > where the usr/share/lilypond folder is that holds 2.22.1, right? Yes, I wouldn't commingle versions, particularly downloaded ones with distribution ones. > I am > thinking a good place for it is usr/local/share/. Because of the lilypond binary itself, I would prefer a bin/, like /usr/local/bin/lilypond-2.23.12/{bin,etc,lib,libexec,licenses,share}/ but as I'm the only one using it here, I just use ~/lilypond-2.23.12/… along with several other versions. I don't modify my $PATH. I run LP with a bash function having the following options: -p restore Point-and-click (increases size, reveals paths), -x run eXperimental cairo backend (for 2.23.12 on, PDF-1.5, doubles size), -l retain the Log output rather than moving it to trash, -v run a specific Version of LilyPond from $HOME, -s run the Stable version rather than the newest, -o run the Oldest version from $HOME, -d run the installed Debian version, -c Crop PDF file with pdfcrop for inclusion within LaTeX files. Cheers, David.
Re: Getting point and click going with gvim on Alma Linux
On Tue 06 Sep 2022 at 03:27:46 (+1000), Andrew Bernard wrote: > > I'll incorporate your suggestions. Note that this was specifically > about gvim not vim, but I can add in vim as well, since it is so > closely related. There's still stuff here that is not covered in the > NR,. such as window focus with the mouse that I think is useful. > However, looking more closely now at the NR it looks like this file > was a waste of time, as it is all covered the now. [I wonder if some > bits came from my original screed? :-)] I'm guilty of not reading the > current NR closely. Incidentally I use EDITOR for everything, not a > different editor for lilypond, but that's a valid point re LYEDITOR. > My notes reflect my bias. I added the note about vim partly because J Martin Rushton mentioned running it as part of a non-Frescobaldi workflow. BTW I was interpreting your NR to refer, sensu stricto, to notation.pdf, and Usage to refer to usage.pdf. It strikes me that the distinction might not be obvious in the web docs. I omitted to add that the lilypond-invoke-editor.desktop that one creates is a scratch file, which can be deleted once the xdg-* commands have been run. The official LP docs suggest creating it in /tmp but without mentioning that that usually results in it being cleaned out at the next boot. > The gvim annoying error message and press ENTER to continue is still > not resolved even in version 9 but I am determined to find an answer > even it it means patching the source code. Currently it really makes > gvim much less felicitous than it ought to be for this application. > > I don't know if it is worth mentioning but emacs on Alma Linux at > least totally carks it when used in this manner with emacs as as > server. But emacs has the courtesy to print out that this is a known > bug, then promptly dies! I have in my notes (written when Debian was two versions back): $ emacs ESC-x server-start (Don't run emacs --daemon as this seems to provoke an error (or unusual effect) at the present time which is stretch.) As is well-known, without setting emacs to server-mode, every point-and-click will open a new instance. However, you can type ESC-x server-start at any time in any one emacs instance (ie only one server in operation at a time). > But my notes are really redundant since the NR does cover pretty much > all, so I guess the recommendation can be changed to RTNR. :-) The boxed note in Usage (§4.1.1 page 43) should carry a warning that every time, apart from the first, that you try to start a new instance of emacs (eg to reply to an email, edit a file, point-and-click, etc), you'll end up with a split screen and a 4-line warning message—very tedious. ISTR that we had fun with apparmor last time around. I'll have to check whether bullseye has been configured such that you don't notice it, or whether I just haven't set it up to enforce it. There are always wrinkles. Cheers, David.
Between context communication
Hello - I'm trying to write an engraver that works in this way. It listens for absolute-dynamic events and text script and hairpin/dynamic-text-spanner events with a custom event name (ExpressiveTextEvent) and do some formatting. If the text is by itself, it's italicized and put below the staff. If there is a dynamic event, it creates a new stencil with dynamic + text. If both the absolute and spanner exist, put the text below the spanner. There is also an option on the Expressive text where it will force the text to go above the staff. (All inspired by Gould 495) Everything works great as long as I have everything on the same staff. However, I would like to keep my dynamics and my notes separate in a << \Staff \Dynamics>> setup. In this way, I can put the engraver on the Score and everything works well. But I am unsure how to expand this to a score with multiple sets of << \Staff \Dynamics>>. Three quick questions which maybe make it seem like I've missed something rudimentary. Is there an easy way to access the child contexts of a context through scheme in order to record names and make pairs? Can I even access the source contexts in either of the listener or acknowledger sections of an engraver? Would it be easiest to just create a new context type that wraps the music + dynamics and just put the custom engraver on that? Any other ideas? Thank you so much! -Kyle
Re: Getting point and click going with gvim on Alma Linux
Thanks David, I'll incorporate your suggestions. Note that this was specifically about gvim not vim, but I can add in vim as well, since it is so closely related. There's still stuff here that is not covered in the NR,. such as window focus with the mouse that I think is useful. However, looking more closely now at the NR it looks like this file was a waste of time, as it is all covered the now. [I wonder if some bits came from my original screed? :-)] I'm guilty of not reading the current NR closely. Incidentally I use EDITOR for everything, not a different editor for lilypond, but that's a valid point re LYEDITOR. My notes reflect my bias. The gvim annoying error message and press ENTER to continue is still not resolved even in version 9 but I am determined to find an answer even it it means patching the source code. Currently it really makes gvim much less felicitous than it ought to be for this application. I don't know if it is worth mentioning but emacs on Alma Linux at least totally carks it when used in this manner with emacs as as server. But emacs has the courtesy to print out that this is a known bug, then promptly dies! But my notes are really redundant since the NR does cover pretty much all, so I guess the recommendation can be changed to RTNR. :-) Andrew
Re: Latest Version sh file?
Hi David, Thanks, got it. I used to be a C programmer, lol. You think I would know. I must say that I did like the sh file better than sudo mv. One more question though, I can't move it to usr/share because that is where the usr/share/lilypond folder is that holds 2.22.1, right? I am thinking a good place for it is usr/local/share/. Craig On 9/5/22 11:53, David Wright wrote: On Mon 05 Sep 2022 at 10:39:23 (-0400), Craig Bakalian wrote: I do appreciate using the latest version of lilypond. I went to download the latest version, because I did a complete update to my computer with mint 21, and the linux latest version to download appears to be source files. Didn't it used to be a sh file? I would just sudo sh the latest version and typeset with glee. What is up? Just unpack the archive, when the top-level directory will be lilypond-2.23.12. Move this to any permanent location you like. Run lilypond and the other binaries either by giving their full path, or by adding lilypond-2.23.12/bin to your $PATH (under the name you chose). Uninstall, if required, by removing the top-level directory. Cheers, David.
Re: Latest Version sh file?
Hi David, Thanks, got it. I used to be a C programmer, lol. You think I would know. I must say that I did like the sh file better than sudo mv. One more question though, I can't move it to usr/share because that is where the usr/share/lilypond folder is that holds 2.22.1, right? I am thinking a good place for it is usr/local/share/. Craig -- Message: 2 Date: Mon, 5 Sep 2022 10:53:26 -0500 From: David Wright To: Craig Bakalian Cc: lilypond-user@gnu.org Subject: Re: Latest Version sh file? Message-ID: Content-Type: text/plain; charset=utf-8 On Mon 05 Sep 2022 at 10:39:23 (-0400), Craig Bakalian wrote: I do appreciate using the latest version of lilypond. I went to download the latest version, because I did a complete update to my computer with mint 21, and the linux latest version to download appears to be source files. Didn't it used to be a sh file? I would just sudo sh the latest version and typeset with glee. What is up? Just unpack the archive, when the top-level directory will be lilypond-2.23.12. Move this to any permanent location you like. Run lilypond and the other binaries either by giving their full path, or by adding lilypond-2.23.12/bin to your $PATH (under the name you chose). Uninstall, if required, by removing the top-level directory. Cheers, David. -- Subject: Digest Footer ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user -- End of lilypond-user Digest, Vol 238, Issue 14 **
Re: Lilypond-book problem
Well, I had the same experience as you. One solution is to type: python3 "C:Program Files (x86)\LilyPond\usr\bin\lilypond-book" You could put that in a batch file somewhere in your PATH. There may be other solutions too. -- Knute Snortum On Sun, Sep 4, 2022 at 10:26 PM Rip _Mus wrote: > > Good morning, > thanks for the reply! You're right, I could have added a few more details. > The operating system is Windows 10. For using Lilypond on command line, I > followed the instructions on the site. > I added the folder "C:Program Files (x86)\LilyPond\usr\bin" to the > environmental variable “Path”. > I think I followed them well, as the "ilypond" command works. The other > commands "lilypond-book" and "convert-ly" instead give me the following > message: > > 'lilypond-book' is not recognized as an internal or external command > > What I notice is that in the folder in question there are lilypond-book and > convert-ly scripts, but they are without extension (for example * .py) > > What do you think about? > > > Il lun 5 set 2022, 02:13 Knute Snortum ha scritto: >> >> On Sun, Sep 4, 2022 at 9:06 AM Rip _Mus wrote: >> > >> > Good morning, >> > I have installed the version 2.22.1, wich I used for a lot of big project. >> > A lot of times I tried to open terminal and run "lilypond-book" but >> > without success. I already add the folder "...\usr\bin" to the >> > environmental variabile path, in fact the command "lilypond" runs. >> > Someone could help me? >> >> It would be helpful to know exactly what is going wrong. Do you get >> error messages? Post them. Not doing what you think it should? Tell >> us what it's doing and what you think it should be doing. Also, tell >> us the OS, is it linux? >> >> -- >> Knute Snortum
Re: Getting point and click going with gvim on Alma Linux
Just some jottings for your consideration. On Mon 05 Sep 2022 at 09:46:44 (+1000), Andrew Bernard wrote: > In response to the recent thread on alternatives to Frescobaldi on > Alma Linux I have prepared this set of instructions. I have tested > this and there are two points in addition to the notes below. > > One, I am unable to get rid of the last line of the extensive status > message gvim shows at the bottom when invoked with a remote call. This > is puzzling - I am working on it. Yes, I usually see one line of that message. It seems to be less frequent if the first click takes you a reasonable distance down the source file, and virtually always seen if the top of the source is showing. Not being a vi-person, I have no idea how to eliminated it. (I do have your .vimrc fragment below included.) > Second, in 2.23.12 at least, there is an error, strangely only for > gvim, in libexec/lilypond-invoke editor. Line 130 is missing a comma, > and must be updated to: > > "gvim": [("gvim", "--remote", "+:%(line)s:norm%(column)s", > "%(file)s")], > > I have submitted a bug report request about this. It looks as if this has always been in the new Python version, so perhaps we can surmise that the developer wasn't a vim-person. [ … ] > The Guide to getting Point and Click going with Gvim under Alma Linux 9 > --- > > The NR has no detailed information about Lilypond point and click with > gvim for > Alma Linux. This note attempts to remedy that. Some information from > the NR is > copied here for ease of reference. I think point-and-click was covered in Usage since 2.14. [ … ] > Setting the EDITOR variable > --- > > Lilypond uses the environment variable EDITOR to select which editor > to use to > display point and click links. For gvim, simply use the value 'gvim': > > export EDITOR=gvim > > Setting LYEDITOR is not required. For the new, Python, version of lilypond-invoke editor, the preferred choice of variable is, in order of preference, LYEDITOR, XEDITOR and EDITOR. Using LYEDITOR is specific to point-and-click, and so you don't interfere with the usual system-wide effects of EDITOR (eg with crontab, mutt, less, more, midnight commander, etc. to name but a few). > Running Gvim and Evince > --- > > Run gvim in server mode by doing - exactly nothing! Simply running gvim will > start the process in a new window. From the terminal this suffixes: > > $ gvim > > By default gvim will respond to remote requests such as from > lilypond-invoke-editor. There is no need to use the --servername > option as the > name defaults to GVIM (and you can see this in the title bar). By default > lilypond sends point and click requests to the gvim server named GVIM. If you prefer running a text version of vim (eg, in xterm/terminal/…), you still need to add --servername gvim when you start vi/vim, so that it captures the point-and-clicks. This is because the servername "gvim" is hard-coded into lilypond-invoke-editor as server to seek, but the server's name defaults to the name by which it was invoked: ie, vi or vim. Cheers, David.
Re: Latest Version sh file?
On Mon 05 Sep 2022 at 10:39:23 (-0400), Craig Bakalian wrote: > I do appreciate using the latest version of lilypond. I went to > download the latest version, because I did a complete update to my > computer with mint 21, and the linux latest version to download > appears to be source files. Didn't it used to be a sh file? I would > just sudo sh the latest version and typeset with glee. What is up? Just unpack the archive, when the top-level directory will be lilypond-2.23.12. Move this to any permanent location you like. Run lilypond and the other binaries either by giving their full path, or by adding lilypond-2.23.12/bin to your $PATH (under the name you chose). Uninstall, if required, by removing the top-level directory. Cheers, David.
Latest Version sh file?
Hi, I do appreciate using the latest version of lilypond. I went to download the latest version, because I did a complete update to my computer with mint 21, and the linux latest version to download appears to be source files. Didn't it used to be a sh file? I would just sudo sh the latest version and typeset with glee. What is up? Craig Bakalian
Three-column Table of Contents
Hello list, Please consider the following: \version "2.23.12" > > \markup > \center-column > { > \huge > \column { > \fill-line { "Table of Contents" } > \null > } > \overlay > { > \center-column > { > \override #'(line-width . 50) \fill-with-pattern #1 #RIGHT . "" "" > \override #'(line-width . 50) \fill-with-pattern #1 #RIGHT . "" "" > \override #'(line-width . 50) \fill-with-pattern #1 #RIGHT . "" "" > \override #'(line-width . 50) \fill-with-pattern #1 #RIGHT . "" "" > \override #'(line-width . 50) \fill-with-pattern #1 #RIGHT . "" "" > ". . ." > ". . ." > \override #'(line-width . 50) \fill-with-pattern #1 #RIGHT . "" "" > } > \line > { > \column > \override #'(thickness . 2) > \whiteout > { "Piece I" "Piece I" "Piece II" "Piece II" "Piece II" \null \null "Piece > XXVI" } > \hspace #2 > \column > \override #'(thickness . 2) > \whiteout > { > "SSAA" "SATB" "SSAA" "SATB" "TTBB" \null \null "SSAATTBB" > } > \hspace #18 > \right-column > \override #'(thickness . 2) > \whiteout > { > "2" "8" "14" "22" "30" \null \null "345" > } > } > } > } Given this rough mockup of the wanted end result, is it possible for me to automatically generate such a ToC? Thank you.
OOoLilyPond: support for Cairo backend
To all OOoLilyPond users: There is a new (experimental) release that supports using the new Cairo backend (as of Ly 2.23.12): https://github.com/OOoLilyPond/OOoLilyPond/releases/tag/v1.1.6_beta This allows to get svg images without restrictions (like having to use dedicated "svg" templates or additional conversion software): https://github.com/OOoLilyPond/OOoLilyPond/wiki/News#easier-way-to-use-vector-images Please feel free to test the new OLy version and report back any problems you encounter. Cheers, Klaus