From: "Jairo A. del Rio" <jairoadelrio6@gmail.com>
To: Hans Hagen <j.hagen@xs4all.nl>,
mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: mathfun
Date: Sun, 23 May 2021 08:45:44 -0500 [thread overview]
Message-ID: <CAKyqqab53burZsshMQqFAkmzcAGxk84FPHNh06d=MZYonXxrTg@mail.gmail.com> (raw)
In-Reply-To: <13f095c1-791d-86c4-35b9-2ee2b069b631@xs4all.nl>
[-- Attachment #1.1: Type: text/plain, Size: 3592 bytes --]
El dom, 23 de may. de 2021 a la(s) 04:51, Hans Hagen (j.hagen@xs4all.nl)
escribió:
> On 5/22/2021 11:34 PM, Jairo A. del Rio wrote:
> > Hi. Is \thewithproperty documented elsewhere? Is this a new primitive?
> > It looks interesting.
> In the case of the \sin trick particular case \let\computer\the would
> also work; i added the \thewithproperty<number> feature just because i
> expect that users can come up with variants (like \drawme\sin ...) which
> then would adapt behaviour (via \dowithproperty2).
>
Having flags for computing and drawing would be awesome. I think it would
nicely extend ConTeXt's drawing features...
So, indeed it's a new primitive but (for now) only used with these lua
> hacks. Actually it's no big deal to reimplement \thewithoutunit<dim> as
>
So, is this Lua-specific?
\thewithoutunit{\dowithproperty1\the}
>
> and then
>
> \thewithcmunit{\dowithproperty2\the}
>
> to serialize the dimension in cm but normally i need to "wonder for a
> while if it makes sense".
>
> Btw, adding primitives (related to the token related bits and pieces of
> the engine) only makes sense if the gain is in
>
> -- avoiding clumsy code: although that can hurt someones pride and joy
> over a nice and complex macro doing the same ... don't worry, i threw
> away plenty of code by now
>
> -- significant performance gain: which is seldom the case (there really
> is not much to gain, at least not in context which is rather optimized
> already)
>
> -- giving way less noise in tracing: which for me is a good reason
> (tracing changed a bit anyway)
>
> -- not adding much code to the engine or the need to refactor: although
> for some luametatex extensions some internals had to change fundamentally
>
> a good example is the extended macro argument handling: less clumsy tex
> code, a bit of performance gain and easier full expansion, way less
> tracing, but it violates the last argument because it did lead to some
> refactoring (i also had to make sure the extra overhead didn't slow down
> macro definitions and expansion)
>
> 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
> -----------------------------------------------------------------
>
I did the following and I have two questions:
1. What if I want to have more than one property? Say \plusone for
computation and \plustwo for drawing.
2. What does 'usage="value"' mean in the implement function (looks new, but
I'm prolly wrong)?
\permanent\protected\def\drawme{\thewithproperty\plussix} %better than 666
\startluacode
local interfaces = interfaces
local implement = interfaces.implement
local context = context
local drawme_code = 6
local drawing = [==[
draw fullcircle scaled 10mm;
draw fullcircle shifted up scaled 5mm;
draw fulltriangle shifted (up+1/2right) scaled 5mm;
]==]
local function chicken(value)
if value == "value" or value == drawme_code then
context.metafun.start()
context.metafun(drawing);
context.metafun.stop()
--elseif then ...
else
context("Chicken!")
end
end
implement{
name = "chicken",
public = true,
usage = "value", --What does it do?
overload = true,
actions = chicken
}
\stopluacode
\starttext\chicken\ and \drawme\chicken\stoptext
Thank you in advance.
Jairo
[-- Attachment #1.2: Type: text/html, Size: 7089 bytes --]
[-- Attachment #2: Type: text/plain, Size: 493 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
next prev parent reply other threads:[~2021-05-23 13:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-21 13:15 mathfun Hans Hagen
2021-05-21 14:37 ` mathfun Aditya Mahajan
2021-05-21 15:06 ` mathfun Hans Hagen
2021-05-21 15:24 ` mathfun Otared Kavian
2021-05-21 16:07 ` mathfun Hans Hagen
2021-05-21 20:41 ` mathfun Aditya Mahajan
2021-05-21 21:01 ` mathfun Henning Hraban Ramm
2021-05-22 6:51 ` mathfun Hans Hagen
2021-05-22 21:34 ` mathfun Jairo A. del Rio
2021-05-23 9:51 ` mathfun Hans Hagen
2021-05-23 13:45 ` Jairo A. del Rio [this message]
2021-05-23 14:35 ` mathfun Hans Hagen
2021-05-23 15:33 ` mathfun Jairo A. del Rio
2021-05-23 21:29 ` mathfun Hans Hagen
2021-05-23 14:40 ` mathfun Hans Hagen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAKyqqab53burZsshMQqFAkmzcAGxk84FPHNh06d=MZYonXxrTg@mail.gmail.com' \
--to=jairoadelrio6@gmail.com \
--cc=j.hagen@xs4all.nl \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).