[NTG-context] Piecewise margin line

mf massifr at fastwebnet.it
Fri Nov 20 08:17:06 CET 2020


Il 20/11/20 02:06, Johann Birnick ha scritto:
> On Thu, 2020-11-19 at 11:25 +0100, mf wrote:
>> Il 19/11/20 10:39, Johann Birnick ha scritto:
>>> Hello,
>>>
>>> I want to setup some fancy theorem style for my math notes. For this I want
>>> to
>>> have a colored margin line next to my theorems. It should look like this:
>>>
>>> https://i.ibb.co/F6L59pD/idea.png
>>>
>>> The line should stretch over the whole theorem, not just the first line.
>>> (But the latter would be a beginning, though.)
>>>
>>> Important to note is that the line should be *on the margin*, not in the
>>> text.
>>>
>>> So do you have an idea on how I could do that? I would greatly appreciate
>>> your
>>> answer. Thank you!
>>>
>> Look for \startsidebar \stopsidebar and \setupsidebar.
>>
>> \setupsidebar [...,...] [..,..=..,..]
>>                     1           2
>>                    OPT
>> 1 NAME
>> 2 rulethickness      = DIMENSION
>>     rulecolor          = COLOR
>>     alternative        = NUMBER
>>     topoffset          = DIMENSION
>>     bottomoffset       = DIMENSION
>>     distance           = DIMENSION
>>     leftmargindistance = DIMENSION
>>     level              = NUMBER
>>
>> Massi
> 
> Thank you! I have two more questions:
> 
> 1. Where can I find a documentation for this command? Even Google finds nothing.

I took it from the "Commands" manual. You can find it here:

./tex/texmf-context/doc/context/documents/general/qrcs/setup-en.pdf

in your ConTeXt directory.

> 2. Unfortunately, adding \startsidebar and \stopsidebar into the `before` and
> `after` options of my enumeration messes up whitespace at the end. Here is a
> screenshot:
> 
> https://s12.directupload.net/images/201120/lfmwp5lh.png
> 
> The theorem is a normal enumeration. Like this:
> 
> \defineenumeration[Theorem][before=\startsidebar, after=stopsidebar]
> 

\startsidebar and \stopsidebar should be called in horizontal mode, 
since you might want to mark in the margin only a part of a paragraph.
In that case the bar would extend from the start of the marked text 
until its end.
The default behavior of the bar is extending from the top of the first 
line to the bottom of the last one.
Once you ended a paragraph with \par, you're in a new line and the bar 
will extend to the bottom of it.

A solution could be something like this:

\dontleavehmode\startsidebar Theorem: ... \stopsidebar\par

Otherwise you could adjust the bottomoffset parameter to the line 
height, so that the bar ends a line height before its default.

That way you could keep

 > \defineenumeration[Theorem][before=\startsidebar, after=stopsidebar]

or, better:

\definesidebar[Theorem][bottomoffset=...]
\defineenumeration[Theorem][before={\startsidebar[Theorem]},after=\stopsidebar]

Massi


More information about the ntg-context mailing list