User talk:Zenlima

From Wiki
Jump to navigation Jump to search
Warning!

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 Summary of formula numbering problem.


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: Layoutchange inside page while duplexmode

A both sided document in which the layout has to switch inside a page works fine with text only content, but as soon "bigger" objects (like a table) are involved the textarea get messed up (shifted horizontally).

In the following example inner and outer margin notes are added to make it more obvious.

 \setuppapersize[A4][A4]
 
 \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
 
 \setuplayout[WithMarginnotes]
 
 \dorecurse {6} {
     \ininner[stack=yes]{\expanded{\dorecurse{2}{IM\recurselevel\space}}}%
     \inouter[stack=yes]{\expanded{\dorecurse{3}{OM\recurselevel\space}}}%
     \input tufte \par
 }

 \setuplayout[WithoutMarginnotes]
 
 \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
 }
 
 \setuplayout[WithMarginnotes]
 
 \dorecurse {3} {
     \ininner[stack=yes]{\expanded{\dorecurse{2}{IM\recurselevel\space}}}%
     \inouter[stack=yes]{\expanded{\dorecurse{3}{OM\recurselevel\space}}}%
     \input tufte \par
 }
 
 \stoptext

Another Approach

Not sure whether this is what you had in mind:

\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]

 \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]

 \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

\startlayout[WithMarginnotes]
 \dorecurse {3} {
     \ininner[stack=yes]{\expanded{\dorecurse{2}{IM\recurselevel\space}}}%
     \inouter[stack=yes]{\expanded{\dorecurse{3}{OM\recurselevel\space}}}%
     \input tufte \par
 }
\stoplayout
 \stoptext


Bug: Formula numbering - subnumbers and list of formulas

All following example have following frame:

\usemodule[newmath]

\setupformulas[way=bytext,prefix=no]
\setupsubformulas[conversion=romannumerals]

\starttext
...(example placed here)...
\stoptext


What works

formula

Expected formular number: (1)

\placenamedformula[one]{Der einfache Test}
\startformula
c^2 = a^2 + b^2.
\stopformula

Result: (1) -> Works

align - formular [+]

Expected formular numbers: (1) and (2)

\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

Result: (1) and (2) -> Works


align - subformular [+]

Expected numbers: (1.a), (1.b), (1.c), (1.d) and reference on (1) and (1.b)

\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

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):

\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

Result: (1), (2), (3) and (4) -> Works


What does not work

List of formulas

\placelist[formula][criterium=all,alternative=c]

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)

\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

Result: (1a) and nothing -> Does not work.


align - formula (subformulas->formulas->formula)

Expected formular numbers: (1a) and (1a) and a reference to formular (1b)

\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

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)

\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

Result: (1), (2) and (3) -> Does not work.


Expected formular numbers: (1a) and (1b) plus reference on (1a) and (1b)

\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

Result: (1) and (2) -> Does not work.


eqalignno - subformula

Directly taken form wiki. Expected formular numbers (1), (1a), (1b) and (2):

\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

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"

\placeformula[reference={one},listlabel={Der einfache Test}]
\startformula
c^2 = a^2 + b^2.
\stopformula


Expected formular number: (1.3) and list entry (1.3) -> "Der einfache Test"

\placeformula[sublevel={.3},reference={one},listlabel={Der einfache Test}]
\startformula
c^2 = a^2 + b^2.
\stopformula


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"

\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


eqalignno

Expected formular numbers (1), (1a), (1.c) and (2); reference on (2); list entries (1.c) -> "Yea!" and (2) -> "Ups"

\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


Summary

All three commands:

  • \NR
  • \placeformula
  • \formualanumber

will share the same attributes:

  • sublevel (maybe better: formulalevel or just level?)
    to define and concrete the (sub-)level of the formula
  • listlabel (maybe textlabel? the numberlabel is still needed)
    to add a entry in the list of formulas
  • reference
    just a classic reference in order to link to it

so that the syntax is more intuitive during writing.

Also. this way the commands:

  • placesubformula
  • placenamedformula
  • placenamedsubformula
  • startstopsubformulas
  • subformulanumber

will become needless.