Le vendredi 07 avril 2023 à 13:11 -0400, Ken Ledeen a écrit : > Hi All, > Thanks to Jean Abou Samra I can now create \markup that goes to a place in a > youtube video. > > These are of the form: > > fis4^\markup \with-url#"[https://youtu.be.](https://youtu.be.)..?t=SEC" {ref} > where "SEC" is replaced with the number of seconds in from the start. > > I would like to create a function to simplify things so instead of having the > entire URL repeated everywhere, would have something that looks like > > fis4^\mymk "215". > > So far, I remain entirely confused about creating a new markup command. I > won't bother describing my many failed attempts. I am clearly missing some > basic concepts. I have no problem creating scheme functions to do various > manipulations, but extending the markup function has eluded me. > > Any guidance would be most appreciated!
Try ``` \version "2.24.1" mymk = #(define-scheme-function (sec) (index?) #{ \markup \with-url #(format #f "https://youtu.be/blablabla?t=~a" sec) #(number->string sec) #}) { fis4^\mymk 215 } ``` Note that this is a regular syntax function returning a markup (defined with define-scheme-function) rather than a markup command, but you can also define a markup command if you wish: ``` \version "2.24.1" #(define-markup-command (mymk layout props sec) (index?) (interpret-markup layout props #{ \markup \with-url #(format #f "https://youtu.be/blablabla?t=~a" sec) #(number->string sec) #})) { fis4^\markup \mymk #215 } ``` Note that you have to enter `\markup` mode to use markup commands. Markup mode is quite different from the normal mode (for example, `\markup b1` just writes “b1”, while in normal mode, also called “notes mode”, “b1” is a B whole note; this is also the reason why you have to put a `#` before `215` when calling the markup command). Syntax functions and markup command have different use cases, but in this particular instance it happens that both can be used without a lot of difference. Best, Jean
signature.asc
Description: This is a digitally signed message part