Gerion Entrup schrieb am 25.06.2024 um 08:41:
Am Dienstag, 25. Juni 2024, 00:09:09 MESZ schrieb Wolfgang Schuster:
Gerion Entrup schrieb am 24.06.2024 um 23:57:
Am Montag, 24. Juni 2024, 21:20:19 MESZ schrieb Aditya Mahajan:
On Mon, 24 Jun 2024, Gerion Entrup wrote:
Hi,
I was in the process to convert an itemize part to a description and wanted to simplify the code in the same move. I discovered headcommand for that, but struggled to set the text in an highlight _and_ make a colon at the end. Not sure what exactly you want, but how about:
\definehighlight[hl][style={\m{>}\,\switchtobodyfont[tt]}] % This is the wrong way to define such a command as '>' is not part of the style. I have left this definition just for comparison with the soln below. Is there a better way to define a highlight that sets a style (color, font) _and_ a prefix (symbol)? Another way, I know of, would be just a plain def, something like \def{\hl}{\groupedcommand{>\,\switchtobodyfont[tt]}{}}, but actually I want to define a highlight (just with an additional prefix).
1. ConTeXt already uses \hl as name for a existing command.
2. Use \definestartstop:
\definestartstop [gerion] [style=mono,left={›\thinspace}]
\starttext
text
\gerion{text}
\stoptext
\definedescription[category][ alternative=top, headstyle=bold, width=broad, ]
\definedescription[desc][ width=fit, distance={\widthofstring{~}},
distance=\spaceamount,
Wolfgang
This seems to be much better but does not lead to the wanted result. The full example now is: ``` \definestartstop[myhl][style=mono,left={›\thinspace}]
\definedescription[categorie][ alternative=top, headstyle=bold, width=broad, ]
\definedescription[desc][ width=broad, distance=\spaceamount, headcommand={\groupedcommand{\startmyhl}{\stopmyhl :}}, headstyle=, before={\startpacked}, after={\stoppacked}, alternative=hanging ]
\starttext
This is a \myhl{highlight}.
Some listings
\startcategorie{Itemize} \startitemize[packed] \item \myhl{first}: one \item \myhl{second}: two \stopitemize \stopcategorie
Now the same as desc: \startcategorie{Desc} \startdesc{first} one \stopdesc \startdesc{second} two \stopdesc \stopcategorie
\stoptext ```
This adopts the correct style in \startdesc \stopdesc and sets the colon but omits the › (the left part).
You can do the following in the next version. 1. Add "arguments=yes" to \definestartstop to enable the optional argument for the new command. 2. Use the new commands with the "headcommand" key and apply ":" as right delimiter for the content of \Highlight. \definestartstop [Highlight] [arguments=yes, style=mono, left={›\thinspace}] \definedescription [description] [ width=broad, distance=\spaceamount, headcommand=\Highlight[right=:], alternative=hanging] \starttext This is a \Highlight{highlight}. \startdescription[title={Lorem ipsum}] \samplefile{lorem} \stopdescription \stoptext Wolfgang