Changes

Jump to navigation Jump to search
5,155 bytes added ,  17:31, 19 February 2016
Please do not RED tag other wiki pages.
 
<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.
=Bug(?): duplex with marginsLayoutchange 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 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 \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 setuplayout[WithMarginnotes]
\dorecurse {3} { \ininner[stack=yes]{X X X X X X X X X X X X\expanded{\dorecurse{2}{IM\recurselevel\space}}}% \inouter[stack=yes]{\expanded{M M M M M M M M M M M M \dorecurse{3}{OM\recurselevel\space}}}% \input tufte \par }
\stoptext
</texcode>
 
=Bug: Formula numbering - subnumbers and list of formulas=
[[FileAll following example have following frame:duplex-margin-with-empty-lines-without-continue.png]]
As you can see two problems occur:<texcode># on the duplex page inner and outer margin are wrong places # the with is also a little confused (maybe of the misplacing)# the margins are overlapping \usemodule[newmath]
Once the empty lines are removes\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}\startformulac^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(same header like abovea^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]\startformulaPM \xrightarrow R_{PM} \xrightarrow PM\stopformula \placeformula[eq:second]\startformulaR_{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 \starttextstartalign[n=3, align={right,middle,left}] \NC PM \xrightarrow \NC R_{PM} \NC \xrightarrow PM \NR[+] \ininnerNC R_{X X X X X X X X X X X XPM}\inouterNC = \NC \{M M M M M M M M M M M M A, B, C, D, E\}\input tufteNR[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 \ininnerstartalign[n=3, align={X X X X X X X X X X X Xright,middle,left}]\inouterNC PM \xrightarrow \NC R_{M M M M M M M M M M M M PM}\input tufteNC \xrightarrow PM \NR[gleichung1a][.1] \ininnerNC R_{X X X X X X X X X X X XPM}\inouterNC = \NC \{M M M M M M M M M M M M A, B, C, D, E\}\input tufteNR[gleichung1b][.2] \ininnerNC R_{X X X X X X X X X X X XPM}\inouterNC = \NC \{M M M M M M M M M M M M A, B, C, D, E\}\input tufteNR[+][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 \ininnerstartalign[n=3, align={X X X X X X X X X X X Xright,middle,left}]\inouterNC PM \xrightarrow \NC R_{M M M M M M M M M M M M PM}\input tufteNC \xrightarrow PM \NR[gleichung1a][+] \ininnerNC R_{X X X X X X X X X X X XPM}\inouterNC = \NC \{M M M M M M M M M M M M A, B, C, D, E\}\input tufteNR[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)^{\ininnervfrac{1}{X X X X X X X X X X X X2}} &\inoutersubformulanumber{M M M M M M M M M M M M b}\input tuftecr 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>\ininnerplaceformula[reference={one},listlabel={X X X X X X X X X X X XDer einfache Test}]\inouterstartformulac^2 = a^2 + b^2.\stopformula</texcode>  Expected formular number: (1.3) and list entry (1.3) -> "Der einfache Test" <texcode>\placeformula[sublevel={M M M M M M M M M M M M .3},reference={one},listlabel={Der einfache Test}]\startformulac^2 = a^2 + b^2.\input tuftestopformula</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> \ininnerplacenamedformula[reference={X X X X X X X X X X X Xeq:ax=b},listlabel={System of stuff}]\startformula \startalign\inouterNC a \NC \eq b \NR[sublevel={M M M M M M M M M M M M .a}]\input tufteNC c \NC \neq d \NR \ininnerNC \NC \neq f \NR[reference={X X X X X X X X X X X Xeq:sub},sublevel={.b}]\NC \NC \geq g \NR[+]\inouterNC \NC \leq h \NR[listlabel={M M M M M M M M M M M M Great piece},sublevel={.a}]\NC \NC \input tufteeq i \NR\NC \NC \eq i \NR[listlabel={Last part}] \stopalign \stopformula \stoptextstopsubformulas</texcode>  ===eqalignno===
the result is ok: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[File:duplex-margin-without-empty-linessublevel={.pngc},listlabel={Yea!}]\cr d^2 &= e^2 &\formulanumber[listlabel={Ups},reference={eq:ups}]\cr}\stopformula</texcode>
But this is only a theoretical construction. In real life texting you have often empty lines.
==[stacking=continue] does not solve the problemSummary===
With the [stacking=continue] added nothing changes so far. It All three commands:* \NR* \placeformula* \formualanumber will give share the same results like with empty lines attributes:* sublevel (maybe better: formulalevel or just level?)<br />to define and without [stacking=continue]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.
(same header like above)Also. this way the commands: * placesubformula \starttext* placenamedformula * placenamedsubformula \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte* startstopsubformulas * subformulanumber \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \ininner[stacking=continue]{X X X X X X X X X X X X}\inouter[stacking=continue]{M M M M M M M M M M M M }\input tufte \stoptextwill become needless.
148

edits

Navigation menu