Changes

Jump to navigation Jump to search
8,452 bytes added ,  18:46, 30 January 2023
another approach
 
<div style="border: 3px solid red; background: #ffaaaa; padding: 0.4em;">
<div style="fontsize: 1.3em; fontweight: bold">Warning!</div>
If you consider using ConTeXt for a paper with a proper formula numbering please wait until it is implemented in mkiv. At the moment only a very limited formula numbering is possilbe:
* number formula(s) with a plain number
* number formula(s) with a subnumber
Not possible is at the moment:
* Table of formulas
* Named subformulas
* Mixure of formulas and subformulas in one block
* Reference on a (sub-)formula without having it listed in the Table of formulas
For more details and actual state see mailing list and [http://wiki.contextgarden.net/User_talk:Zenlima Summary of formula numbering problem].
</div>
 
 
 
Hi, I use this page to support my question regarding context and summarize the result. Once a problem is solved I will move that text into the "normal" wiki pages.
=Duplex with marginsBug: Layoutchange inside page while duplexmode=
Problem: At A both sided document in which the moment mkiv creates wired margin on every duplex layout has to switch inside a page. It appears when lines seperates works fine with text only content, but as soon "bigger" objects (like a table) are involved the marginstextarea get messedup (shifted horizontally).
\definelayout[WithMarginnotes] [grid=no,topspace=3cm,height=24cm,backspace=3cm,cutspace=0cm,leftmargin=1cm,leftmargindistance=0In the following example inner and outer margin notes are added to make it more obvious.4cm,width=12.1cm,rightmargindistance=0.4cm,rightmargin=3.5cm] <texcode> \setuplayoutsetuppapersize[WithMarginnotesA4] \setuppagenumbering[alternative=doublesided,location=A4] \showframe
\starttextdefinelayout[WithoutMarginnotes][location={duplex},grid=no,topspace=3cm,height=24cm,backspace=3cm,cutspace=0cm,leftmargin=1cm,leftmargindistance=0.4cm,width=16cm,rightmargindistance=0cm,rightmargin=0cm]
\ininnerdefinelayout[WithMarginnotes][location={X X X X X X X X X X X Xduplex}\inouter{M M M M M M M M M M M M }\input tufte,grid=no,topspace=3cm,height=24cm,backspace=3cm,cutspace=0cm,leftmargin=1cm,leftmargindistance=0.4cm,width=12.1cm,rightmargindistance=0.4cm,rightmargin=3.5cm]
\ininner{X X X X X X X X X X X X}\inouter{M M M M M M M M M M M M }\input tuftesetuppagenumbering[alternative=doublesided,location=]
\ininner{X X X X X X X X X X X X}\inouter{M M M M M M M M M M M M }\input tuftestarttext
\ininner{X X X X X X X X X X X X}\inouter{M M M M M M M M M M M M }\input tuftesetuplayout[WithMarginnotes]
\dorecurse {6} { \ininner[stack=yes]{\expanded{\dorecurse{X X X X X X X X X X X X2}{IM\recurselevel\space}}}% \inouter[stack=yes]{M M M M M M M M M M M M \expanded{\dorecurse{3}{OM\recurselevel\space}}}% \input tufte\par }  \setuplayout[WithoutMarginnotes]
\ininnerplacetable[split][]{X X X X X X X X X X X XBig table object} { \setupTABLE[row][1][width=\textwidth] \bTABLE[split=repeat] \bTABLEhead \bTR \inouterbTD XXX \eTD \eTR \eTABLEhead \bTABLEbody \dorecurse{M M M M M M M M M M M M 20}{ \input tuftebTR \bTD XXX \eTD \eTR} \eTABLEbody \eTABLE }
\ininner{X X X X X X X X X X X X}\inouter{M M M M M M M M M M M M }\input tuftesetuplayout[WithMarginnotes]
\dorecurse {3} { \ininner[stack=yes]{\expanded{\dorecurse{X X X X X X X X X X X X2}{IM\recurselevel\space}}}% \inouter[stack=yes]{M M M M M M M M M M M M }\input tufte expanded{\ininnerdorecurse{X X X X X X X X X X X X3}{OM\recurselevel\inouter{M M M M M M M M M M M M space}}}% \input tufte \par }
\stoptext
</texcode>
 
==Another Approach==
 
Not sure whether this is what you had in mind:
 
<texcode>
\showframe
 
\definelayout[WithoutMarginnotes][location={duplex}, grid=no, topspace=3cm, height=24cm, backspace=3cm, cutspace=0cm, leftmargin=1cm, leftmargindistance=0.4cm, width=16cm, rightmargindistance=0cm, rightmargin=0cm]
 
\definelayout[WithMarginnotes][location={duplex}, grid=no, topspace=3cm, height=24cm, backspace=3cm, cutspace=0cm, leftmargin=1cm, leftmargindistance=0.4cm, width=12.1cm, rightmargindistance=0.4cm, rightmargin=3.5cm]
 
\setuppagenumbering[alternative=doublesided,location=]
 
\starttext
 
\startlayout[WithMarginnotes]
(Picture of pdf) \dorecurse {6} { \ininner[stack=yes]{\expanded{\dorecurse{2}{IM\recurselevel\space}}}% \inouter[stack=yes]{\expanded{\dorecurse{3}{OM\recurselevel\space}}}% \input tufte \par }\stoplayout\startlayout[WithoutMarginnotes]
Once the empty lines are removes the result is ok: \placetable[split][]{Big table object} { \setupTABLE[row][1][width=\textwidth] \bTABLE[split=repeat] \bTABLEhead \bTR \bTD XXX \eTD \eTR \eTABLEhead \bTABLEbody \dorecurse{20}{ \bTR \bTD XXX \eTD \eTR} \eTABLEbody \eTABLE }\stoplayout
(same header like above) \starttext startlayout[WithMarginnotes] \ininnerdorecurse {X X X X X X X X X X X X3}\inouter{M M M M M M M M M M M M }\input tufte \ininner[stack=yes]{X X X X X X X X X X X X}\inouterexpanded{M M M M M M M M M M M M }\input tufte \ininnerdorecurse{X X X X X X X X X X X X2}\inouter{M M M M M M M M M M M M }IM\input tufte recurselevel\ininner{X X X X X X X X X X X Xspace}}\inouter{M M M M M M M M M M M M }\input tufte% \ininnerinouter[stack=yes]{X X X X X X X X X X X X}\inouterexpanded{M M M M M M M M M M M M }\input tufte \ininnerdorecurse{X X X X X X X X X X X X3}\inouter{M M M M M M M M M M M M }OM\input tufte recurselevel\ininner{X X X X X X X X X X X Xspace}}\inouter{M M M M M M M M M M M M }% \input tufte\par \ininner{X X X X X X X X X X X X}\inouter{M M M M M M M M M M M M }\input tufte \ininner{X X X X X X X X X X X X}\inouter{M M M M M M M M M M M M }\input tufte stoplayout
\stoptext
</texcode>
 
 
=Bug: Formula numbering - subnumbers and list of formulas=
 
All following example have following frame:
 
<texcode>
\usemodule[newmath]
 
\setupformulas[way=bytext,prefix=no]
\setupsubformulas[conversion=romannumerals]
 
\starttext
...(example placed here)...
\stoptext
</texcode>
 
 
==What works==
 
===formula===
 
Expected formular number: (1)
 
<texcode>
\placenamedformula[one]{Der einfache Test}
\startformula
c^2 = a^2 + b^2.
\stopformula
</texcode>
 
Result: (1) -> '''Works'''
 
===align - formular [+]===
 
Expected formular numbers: (1) and (2)
 
<texcode>
\placeformula
\startformula
\startalign[n=3, align={right,middle,left}]
\NC PM \xrightarrow \NC R_{PM} \NC \xrightarrow PM \NR[+]
\NC R_{PM} \NC = \NC \{ A, B, C, D, E\} \NR[+]
\stopalign
\stopformula
</texcode>
 
Result: (1) and (2) -> '''Works'''
 
 
===align - subformular [+]===
 
Expected numbers: (1.a), (1.b), (1.c), (1.d) and reference on (1) and (1.b)
<texcode>
\startsubformulas[eq:ax=b]
\placeformula
\startformula \startalign
\NC a \NC \eq b \NR[+]
\NC c \NC \neq d \NR
\NC \NC \neq f \NR[eq:sub]
\NC \NC \geq g \NR[+]
\NC \NC \leq h \NR[+]
\NC \NC \eq i \NR
\stopalign \stopformula
\stopsubformulas
</texcode>
 
Result: (1.a), (1.b), (1.c), (1.d) -> '''Works'''.
 
BUT: Every formula with a reference is automatic listed in the table of formulas (nameless) - at the moment there is no possiblity to have a reference without listing the formula.
 
===eqalignno - formula===
 
Taken from wiki and removed the subformulanumber. Expected formular numbers: (1), (2), (3) and (4):
 
<texcode>
\placeformula
\startformula
\eqalignno{
c^2 &= a^2 + b^2 &\formulanumber \cr
c &= \left(a^2 + b^2\right)^{\vfrac{1}{2}} &\formulanumber\cr
a^2 + b^2 &= c^2 &\formulanumber \cr
d^2 &= e^2 &\formulanumber \cr}
\stopformula
</texcode>
 
Result: (1), (2), (3) and (4) -> '''Works'''
 
 
==What does not work==
 
 
===List of formulas===
 
<texcode>
\placelist[formula][criterium=all,alternative=c]
</texcode>
 
The list of formulas seems to be totally out of order. Strange numbering and missing names. Needs more investigation once some of the named formulas constructions are fixed.
 
 
===subformula===
 
Expected formular numbers: (1a) and (1b)
 
<texcode>
\startsubformulas[eq:1]
\placeformula[eq:first]
\startformula
PM \xrightarrow R_{PM} \xrightarrow PM
\stopformula
 
\placeformula[eq:second]
\startformula
R_{PM} = \{ K, F, Z, U, I, J\}
\stopformula
\stopsubformulas
</texcode>
 
Result: (1a) and nothing -> '''Does not work.'''
 
 
===align - formula (subformulas->formulas->formula)===
 
Expected formular numbers: (1a) and (1a) and a reference to formular (1b)
 
<texcode>
\startsubformulas
\startformulas
\placeformula
\startformula
\startalign[n=3, align={right,middle,left}]
\NC PM \xrightarrow \NC R_{PM} \NC \xrightarrow PM \NR[+]
\NC R_{PM} \NC = \NC \{ A, B, C, D, E\} \NR[a]
\stopalign
\stopformula
\stopformulas
\stopsubformulas
</texcode>
 
Result: nothing and nothing -> '''Does not work.'''
 
 
===align - subformula===
 
Expected formular numbers: (1.1), (1.2) and (1.c) plus reference on (1.1) and (1.2)
 
<texcode>
\placesubformula
\startformula
\startalign[n=3, align={right,middle,left}]
\NC PM \xrightarrow \NC R_{PM} \NC \xrightarrow PM \NR[gleichung1a][.1]
\NC R_{PM} \NC = \NC \{ A, B, C, D, E\} \NR[gleichung1b][.2]
\NC R_{PM} \NC = \NC \{ A, B, C, D, E\} \NR[+][c]
\stopalign
\stopformula
</texcode>
 
Result: (1), (2) and (3) -> '''Does not work.'''
 
 
Expected formular numbers: (1a) and (1b) plus reference on (1a) and (1b)
 
<texcode>
\placesubformula
\startformula
\startalign[n=3, align={right,middle,left}]
\NC PM \xrightarrow \NC R_{PM} \NC \xrightarrow PM \NR[gleichung1a][+]
\NC R_{PM} \NC = \NC \{ A, B, C, D, E\} \NR[gleichung1b][]
\stopalign
\stopformula
</texcode>
 
Result: (1) and (2) -> '''Does not work.'''
 
 
===eqalignno - subformula===
 
Directly taken form wiki. Expected formular numbers (1), (1a), (1b) and (2):
 
<texcode>
\placeformula
\startformula
\eqalignno{
c^2 &= a^2 + b^2 &\formulanumber{a} \cr
c &= \left(a^2 + b^2\right)^{\vfrac{1}{2}} &\subformulanumber{b}\cr
a^2 + b^2 &= c^2 &\subformulanumber{c} \cr
d^2 &= e^2 &\formulanumber\cr}
\stopformula
</texcode>
 
Result: Does not compile Does as the command type{subformularnumber} is unknown -> '''Does not work.'''
 
==Suggestion for new syntax==
 
'''Open for discussion :-)'''
 
The needs out of existing syntax and my personal experience:
* formulas and subformulas in the same block
* referencing on a subformula does not include automaticly a entry in the list of formulas
* simple, block and eqalignno
 
===Simple===
 
Expected formular number: (1) and list entry (1) -> "Der einfache Test"
 
<texcode>
\placeformula[reference={one},listlabel={Der einfache Test}]
\startformula
c^2 = a^2 + b^2.
\stopformula
</texcode>
 
 
Expected formular number: (1.3) and list entry (1.3) -> "Der einfache Test"
 
<texcode>
\placeformula[sublevel={.3},reference={one},listlabel={Der einfache Test}]
\startformula
c^2 = a^2 + b^2.
\stopformula
</texcode>
 
 
===Block notation: NR===
 
No specific values -> [+] otherwise classic attribute/value [...]
 
Expected numbers: (1.a), nothing, (1.b), (2), (2.a), nothing and (3); with reference on (1) and (1.b); with list entries of (1) -> "System of stuff", (2.a) -> "Great piece" and (3) -> "Last part"
 
<texcode>
\placenamedformula[reference={eq:ax=b},listlabel={System of stuff}]
\startformula \startalign
\NC a \NC \eq b \NR[sublevel={.a}]
\NC c \NC \neq d \NR
\NC \NC \neq f \NR[reference={eq:sub},sublevel={.b}]
\NC \NC \geq g \NR[+]
\NC \NC \leq h \NR[listlabel={Great piece},sublevel={.a}]
\NC \NC \eq i \NR
\NC \NC \eq i \NR[listlabel={Last part}]
\stopalign \stopformula
\stopsubformulas
</texcode>
 
 
===eqalignno===
 
Expected formular numbers (1), (1a), (1.c) and (2); reference on (2); list entries (1.c) -> "Yea!" and (2) -> "Ups"
 
<texcode>
\placeformula
\startformula
\eqalignno{
c^2 &= a^2 + b^2 &\formulanumber \cr
c &= \left(a^2 + b^2\right)^{\vfrac{1}{2}} &\formulanumber[sublevel={a}]\cr
a^2 + b^2 &= c^2 &\formulanumber[sublevel={.c},listlabel={Yea!}] \cr
d^2 &= e^2 &\formulanumber[listlabel={Ups},reference={eq:ups}]\cr}
\stopformula
</texcode>
(Picture of pdf)
==[stacking=continue] does not solve the problemSummary===
All three commands:* \NR* \placeformula* \formualanumber will share the same attributes:* sublevel (Quelltextmaybe better: formulalevel or just level?)<br />to define and concrete the (sub-)level of the formula* listlabel (maybe textlabel? the numberlabel is still needed)<br /> to add a entry in the list of formulas* reference<br />just a classic reference in order to link to itso that the syntax is more intuitive during writing.
(Picture of pdf)Also. this way the commands:* placesubformula* placenamedformula* placenamedsubformula* startstopsubformulas* subformulanumberwill become needless.
139

edits

Navigation menu