Re: [NTG-context] \hpos in math - Half solved

2022-12-08 Thread Hans Hagen via ntg-context

On 12/8/2022 8:54 PM, Otared Kavian via ntg-context wrote:

Hi Hans, Mikael,

These features are amazing! Many many thanks!
Thanks also to Gavin for having stated so precisely these kinds of needs, so 
that Hans and Mikael could come up with this solution.
Gavin, good luck with your project, and plaese share what you get at the end.
For the record: this features is already there for a while, we also have 
some matrix specific trickery as well as for instance annotated fences 
and so. However, the interfaces will evolve and eventually get 
documented in the upcoming (big) math manual. It's mostly a matter of 
consistent interfacing i.e. it has to fit into the way we do things in 
context (it's of course easy to come up with a quick and dirty ugly non 
extensible and non standard interface).


What is new in the latest greatest is (1) namespaces, so that one can 
reuse the references, which Gavin needs, and (2) sourcing a nucleus 
and/or the whole atom including scripts, which Gavin also needs. Some 
more granularity might show up depending on needs. As some depends on 
the tex engine there are limitations (performance, memory and complexity 
constraints: adding features like these might definitely not impact 
performance).


Source and target properties were added in order to avoid interference 
with math spacing but can also be used in text, where they are part of 
the larger package of box properties that was already around.


\startTEXpage[offset=2cm]

\setbox 0 \ruledhbox
source  123
anchors 1 2
{one}
\setbox 2 \ruledhbox
target 123
{test 1}

\dontleavehmode \box2 \box0

\setbox 0 \ruledhbox
target  124
orientation 2
anchors 1 4
xoffset-10pt
{two}
\setbox 2 \ruledhbox
source 124
{test 2}

\dontleavehmode \box2 \box0

\stopTEXpage

With sources and targets one has to keep in mind that they don't 
participate in the box dimensions! Although excessive usage puts some 
strain on the backend in practice it probably goes unnoticed.  Also, be 
careful with the source and target id's! There is currently no low level 
allocation mechanism so stick to positive numbers.


So, lots to play with, if you're in the mood,

Hans

(There is quite some experimental code around but to what extend it ends 
up in the core depends on demand, time, motivation etc. As you can 
guess, Mikael and I having a lot of math fun is motivating.)


-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
   tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] \hpos in math - Half solved

2022-12-08 Thread Otared Kavian via ntg-context
Hi Hans, Mikael,

These features are amazing! Many many thanks!
Thanks also to Gavin for having stated so precisely these kinds of needs, so 
that Hans and Mikael could come up with this solution.
Gavin, good luck with your project, and plaese share what you get at the end.

Best regards : Otared

> On 8 Dec 2022, at 07:14, Mikael Sundqvist via ntg-context 
>  wrote:
> 
> Hi,
> 
> On Thu, Dec 8, 2022 at 1:07 AM Gavin via ntg-context  
> wrote:
>> 
>> Hi Hans and Mikael,
>> 
>> This is amazing! Mikael's example works for me. I will start using these 
>> tools in my project, and I’ll tell you how it goes.
> 
> Very good that it works and that it gets tested!
> 
>> It might be a couple weeks, because the physics is also quite challenging.
> 
> Haha, I can imagine that the spinors are even more challenging. Good luck!
> 
> /Mikael
> ___
> If your question is of interest to others as well, please add an entry to the 
> Wiki!
> 
> maillist : ntg-context@ntg.nl / 
> https://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki : https://contextgarden.net
> ___

Otared Kavian
e-mail: ota...@gmail.com
Phone: +33 6 88 26 70 95



___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] \hpos in math - Half solved

2022-12-07 Thread Mikael Sundqvist via ntg-context
Hi,

On Thu, Dec 8, 2022 at 1:07 AM Gavin via ntg-context  wrote:
>
> Hi Hans and Mikael,
>
> This is amazing! Mikael's example works for me. I will start using these 
> tools in my project, and I’ll tell you how it goes.

Very good that it works and that it gets tested!

> It might be a couple weeks, because the physics is also quite challenging.

Haha, I can imagine that the spinors are even more challenging. Good luck!

/Mikael
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] \hpos in math - Half solved

2022-12-07 Thread Gavin via ntg-context
Hi Hans and Mikael,

This is amazing! Mikael's example works for me. I will start using these tools 
in my project, and I’ll tell you how it goes. It might be a couple weeks, 
because the physics is also quite challenging.

Thank you!
Gavin


> On Dec 7, 2022, at 3:25 PM, Hans Hagen via ntg-context  
> wrote:
> 
> On 12/7/2022 1:42 PM, Gavin via ntg-context wrote:
>> Hi List,
>> I solved my original problem 2, allowing me to reuse the same \hpos labels 
>> in different equations without interference. I added an equation counter and 
>> set up my custom math version of \hpos to use the count as part of the label 
>> internally. I tried to do this with a regular ConTeXt counter, but had all 
>> sorts of mysterious, wrong behavior. When I switched to using a Lua counter, 
>> everything worked immediately. So, while there is nothing brilliant about 
>> this solution, I’ll share it for anyone who might want to do something 
>> similar in the future.
> attached an example by Mikael ... it should work with tonights update
> 
> Hans
> 
> 
> -
>  Hans Hagen | PRAGMA ADE
>  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>   tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> -
> <221206-3.mkxl>___
> If your question is of interest to others as well, please add an entry to the 
> Wiki!
> 
> maillist : ntg-context@ntg.nl / 
> https://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki : https://contextgarden.net
> ___

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] \hpos in math - Half solved

2022-12-07 Thread Hans Hagen via ntg-context

On 12/7/2022 1:42 PM, Gavin via ntg-context wrote:

Hi List,

I solved my original problem 2, allowing me to reuse the same \hpos labels in 
different equations without interference. I added an equation counter and set 
up my custom math version of \hpos to use the count as part of the label 
internally. I tried to do this with a regular ConTeXt counter, but had all 
sorts of mysterious, wrong behavior. When I switched to using a Lua counter, 
everything worked immediately. So, while there is nothing brilliant about this 
solution, I’ll share it for anyone who might want to do something similar in 
the future.

attached an example by Mikael ... it should work with tonights update

Hans


-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
   tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-
 \usemodule[article-basic]

\starttext

\startboxanchoring[+]
\connectboxanchors[top][top][distance=1ex] {c1}{c2}
\connectboxanchors[bottom] [bottom] [distance=1ex] {d1}{d2}
\startformula
\mathboxanchored[nucleus]{c1}{e}_{\alpha}
\mathboxanchored[nucleus]{c2}{e}^{\mu}
\mathboxanchored[nucleus]{d1}{todo}
\mathboxanchored[nucleus]{d2}{e}_{\dot{\beta}} = \frac{1}{\sqrt{2}}
\sigma_{\alpha,\dot{\beta}}^{\mu}
\stopformula
\stopboxanchoring

\startboxanchoring[+]
\connectboxanchors[top][top][distance=0.5ex,arrow=no] {c1}{c2}
\connectboxanchors[bottom] [bottom] [distance=0.5ex,arrow=no] {c2}{c3}
\startformula
\mathboxanchored[nucleus]{c1}{e}_{\alpha}
\mathboxanchored[nucleus]{c2}{e}^{\mu}
\mathboxanchored[nucleus]{c3}{e}_{\dot{\beta}} = \frac{1}{\sqrt{2}}
\sigma_{\alpha,\dot{\beta}}^{\mu}
\stopformula
\stopboxanchoring

\startboxanchoring[+]
\connectboxanchors[top][top][text={\smallinfofont upper limits}]{b1}{b2}
\connectboxanchors[bottom] [bottom] [text={\smallinfofont lower limits}]{a1}{a2}
\startformula
\int_{\mathboxanchored{a1}{0}}^{\mathboxanchored{b1}{1}} \frac{1}{1+x^2} \dd x
=
\int_{\mathboxanchored{a2}{0}}^{\pi\mathboxanchored{b2}{/}4} \frac{1}{1+\tan^2 
t}(1+\tan^2 t)\dd t
\stopformula
\stopboxanchoring

\stoptext
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] \hpos in math - Half solved

2022-12-07 Thread Hans Hagen via ntg-context

On 12/7/2022 1:42 PM, Gavin via ntg-context wrote:

Hi List,

I solved my original problem 2, allowing me to reuse the same \hpos labels in 
different equations without interference. I added an equation counter and set 
up my custom math version of \hpos to use the count as part of the label 
internally. I tried to do this with a regular ConTeXt counter, but had all 
sorts of mysterious, wrong behavior. When I switched to using a Lua counter, 
everything worked immediately. So, while there is nothing brilliant about this 
solution, I’ll share it for anyone who might want to do something similar in 
the future.


Using this could work

\newcount\SFNum

\global\advance\SFNum\plusone

\the\SFNum

(you now use a (global) lua counter


The code I added is below, with some comments. The complete example file is 
attached. The result is two equations.



Each equation was written using the same labels (X,Y,Z), but internally they 
have separate sets, (1:X and 2:X, etc.).

The moral of the story for me: Use more Lua.


but ... work local ... so

   document.sfnum

etc in order to avoid clashes

Gavin


% Lua counts the spin formulas
\ctxlua{sfnum = 0} % Count starts at zero
\def\sfID{\ctxlua{context(sfnum)}} % ConTeXt can call the count from Lua to use 
as an ID for each equation.

% Spin formulas increase the spin formula count and typeset the formula as 
usual.
\define\startspinformula{
   \ctxlua{sfnum = sfnum + 1}
   \startformula
}
\define\stopspinformula{\stopformula}

% My own \mpos uses the spin formula ID as part of the box label, then sets the 
contents as math.
\define[2]\mpos{\hpos{\sfID:#1}{$#2$}}

% Two commands for requesting contractions (the connections between spinors), 
using the spin formula ID.
\define[2]\contract{%
   \startpositionoverlay{graphics}%
 \setMPpositiongraphic{\sfID:#1}{mypos:contract}{to=\sfID:#2}%
   \stoppositionoverlay%
}
\define[2]\contractbelow{%
   \startpositionoverlay{graphics}%
 \setMPpositiongraphic{\sfID:#1}{mypos:contractbelow}{to=\sfID:#2}%
   \stoppositionoverlay%
}
Attached what you can do in a next upload (on the million math test 
files MS and I have by now)


Hans

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
   tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-


221206-1.pdf
Description: Adobe PDF document
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] \hpos in math - Half solved

2022-12-07 Thread Gavin via ntg-context
Hi List,

I solved my original problem 2, allowing me to reuse the same \hpos labels in 
different equations without interference. I added an equation counter and set 
up my custom math version of \hpos to use the count as part of the label 
internally. I tried to do this with a regular ConTeXt counter, but had all 
sorts of mysterious, wrong behavior. When I switched to using a Lua counter, 
everything worked immediately. So, while there is nothing brilliant about this 
solution, I’ll share it for anyone who might want to do something similar in 
the future.

The code I added is below, with some comments. The complete example file is 
attached. The result is two equations.


hposQuestionEquations.pdf
Description: Adobe PDF document

Each equation was written using the same labels (X,Y,Z), but internally they 
have separate sets, (1:X and 2:X, etc.).

The moral of the story for me: Use more Lua.

Gavin


% Lua counts the spin formulas 
\ctxlua{sfnum = 0} % Count starts at zero
\def\sfID{\ctxlua{context(sfnum)}} % ConTeXt can call the count from Lua to use 
as an ID for each equation.

% Spin formulas increase the spin formula count and typeset the formula as 
usual.
\define\startspinformula{
  \ctxlua{sfnum = sfnum + 1}
  \startformula
}
\define\stopspinformula{\stopformula}

% My own \mpos uses the spin formula ID as part of the box label, then sets the 
contents as math.
\define[2]\mpos{\hpos{\sfID:#1}{$#2$}}

% Two commands for requesting contractions (the connections between spinors), 
using the spin formula ID.
\define[2]\contract{%
  \startpositionoverlay{graphics}%
\setMPpositiongraphic{\sfID:#1}{mypos:contract}{to=\sfID:#2}%
  \stoppositionoverlay%
}
\define[2]\contractbelow{%
  \startpositionoverlay{graphics}%
\setMPpositiongraphic{\sfID:#1}{mypos:contractbelow}{to=\sfID:#2}%
  \stoppositionoverlay%
}




hposQuestion.tex
Description: Binary data
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___