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! Best regards, Johann
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
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. 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] I would greatly appreciate your help. Thank you! Johann
Hi Johann, Here is an example (extracted from one of my files…) which might give what you want: you can change some of the specifications easily. % begin proclaim-leftbar.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startuseMPgraphic{mpos:region:leftbar} draw_multi_pars; draw_multi_side; \stopuseMPgraphic \definetextbackground[leftbartext] [location=paragraph, mp=mpos:region:leftbar, width=broad, frame=off, framecolor=darkred, rulethickness=2pt, frameoffset=1.25em, topoffset=-2ex, bottomoffset=-2ex, background=color, backgroundcolor=white, ] %%%%%%% \defineenumeration[proclaim] [text=, before={\starttextbackground[leftbartext]}, after={\stoptextbackground}, style=slanted, title=yes, titleleft=, titleright={.}, alternative=hanging, width=fit, right={~}, way=bysection, prefix=yes, prefixsegments={chapter:section}] %%%%%%% \starttext \startchapter[title={Topologie des nombres réels},reference=chap:R] \startproclaim[lem:Q-Archimedien]{Proposition} L'ensemble ${\Bbb Q}$ est {\bi archimédien}\index{archimédien}, c'est-à-dire que si $\epsilon \in {\Bbb Q}$ et $\epsilon > 0$, pour tout $R \in {\Bbb Q}$ tel que $R > 0$ il existe un entier $n \in {\Bbb N}$ tel que $n\epsilon > R$. Plus précisément il existe un unique entier $m \geq 0$ tel que $m\epsilon \leq R < (m+1)\epsilon$~: cet entier $m$ est appelé partie entière de $R/\epsilon$ et souvent noté $m = \lfloor R/\epsilon \rfloor$ (et l'entier $(m+1)$ est noté $m+1 = \lceil R/\epsilon \rceil$). \stopproclaim \stopchapter \stoptext %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % end proclaim-leftbar.tex Best regards: Otared
On 20 Nov 2020, at 02:06, Johann Birnick
wrote: 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.
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]
I would greatly appreciate your help.
Thank you! Johann
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
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
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
participants (3)
-
Johann Birnick
-
mf
-
Otared Kavian