On Fri, 2020-11-20 at 08:17 +0100, mf wrote:
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
Thank you very much. Now I understand why it happens. The `after` gets called after the end of the paragraph. Unfortunately, [before=\dontleavehmode\startsidebar, after=\stopsidebar\par] doesn't work, it doesn't change anything. I have also tried adding \nowhitespace \startlinecorrection ... \stoplinecorrection at certain positions, but it doesn't change anything. Also, I have tried to call \startsidebar by hand after \startTheorem and call \stopsidebar with [closesymbol=\stopsidebar]. That works! But there is no field in the enumeration where I can put [...=\startsidebar]. The fields 'stopper', 'right', 'titlecommand' etc. don't work. Do you have any further ideas? There must be a possibility! You also need that e.g. for setting a background color to your enumeration. I noticed that using [before=\starttextbackground, after=\stoptextbackground] also messes up whitespace... . I would again greatly appreciate your help. Thank you! Johann