[NTG-context] Footnotes on the bottom of the column's current page, instead of the columns' end

2023-10-25 Thread Juliano David Hilario
>
>
> Hello, I'm trying to achieve a look similar to a magazine our religious
organization frequently discusses, but unfortunately can't find the correct
settings to do so. Whenever I call a custom note on a column, instead of
the note showing on the bottom of the page, it shows at the end of the
column. (like an endnote, except, it shows as a small footnote at the
beginning)

How should I make it shown on the bottom of the page of the current
footnote instead of the end of the column command?

My MWE:

\definenote[question][textcommand=\gobbleoneargument, numbercommand=\gobbleoneargument]
\setupnotation[question][counter=]

\startdocument
\startcolumns[n=2, balanced]
\dorecurse{19}{
	\question{1. This is a question for discussion. I wished it was on the current page instead of the end}
	\input{knuth}

}
\stopcolumns
\stopdocument


mwe.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://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___


[NTG-context] Re: Combining python and lua

2023-10-25 Thread Aditya Mahajan
On Wed, 25 Oct 2023, Alexandre Christe wrote:

> Dear list,
> 
> I’d like to know the best approach to make this a bit more usable. I’m trying 
> to typeset a table with sin/cos/tan values. I’d like to be able to convert 
> the angles in degrees into radians (with math notation) and to compute the 
> trigonometric function leading to sin(pi/4) = 1/2, or cos(pi/6) = sqrt(3)/2 
> and display it in math mode.
> 
> Here’s my current MWE, where I fail to convert the angles in radians 

there is math.sind, cosd, etc. for computing sin for angle in degrees. The 
implementation is l-math.lua is:

local pipi = 2*math.pi/360

function math.sind(d) return sin(d*pipi) end
function math.cosd(d) return cos(d*pipi) end
function math.tand(d) return tan(d*pipi) end

> and fail to display the result in symbolic form.

Context doesn't do symbolic math. You can try checking if one of the symbolic 
math libraries in lua provides all the features that you want.

> One possible way would be to use Python and the t-filter module, like this

This can work as follows. Take the array of angles, and convert them to the 
desired format in python and write them to a temp file. Read that temp file in 
lua and typeset it as you want.

Another option is an old proof of concept by Luigi: 
https://github.com/bastibe/lunatic-python which allowed two-way communication 
between python and luatex. Not sure if it still works.

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

maillist : ntg-context@ntg.nl / 
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___


[NTG-context] Re: Combining python and lua

2023-10-25 Thread Bruce Horrocks
On 25 Oct 2023, at 16:45, Alexandre Christe  wrote:
> 
> Dear list,
> 
> I’d like to know the best approach to make this a bit more usable. I’m trying 
> to typeset a table with sin/cos/tan values. I’d like to be able to convert 
> the angles in degrees into radians (with math notation) and to compute the 
> trigonometric function leading to sin(pi/4) = 1/2, or cos(pi/6) = sqrt(3)/2 
> and display it in math mode.

You can use templates to subtitute values into a string and then send that out 
to be typeset.
For example: if you want to turn "sin(pi/4) = 1/2" to 

  \startformula
  \sin{\frac{\pi}{4}} = \frac{1}{2}
  \stopformula

Then use this Lua code:

  local myTrigTemplate = [[
\startformula
\%fname%{\frac{\pi}{%divisor%}} = \frac{%numerator%}{%denominator%}
\stopformula
  ]]

  context.templates[myTrigTemplate] {
fname = "sin",
divisor = 4,
numerator = 1,
denominator = 2
  }

By combining them (using the result of a simple template as the parameter value 
into a larger template) you can create a function similar to Python's latex() 
that handles the trig functions you are using. That is the easy bit.

Converting the angle into radians and then getting the result as a fraction of 
pi requires you to implement a continued fraction algorithm to determine 
numerator and denominator.

Extending that to determine whether to use sqrt(3)/2 instead of some other 
fractional approximation is another significant step up in complexity.

I can send you some code that does that - but it's written in HP-71 BASIC so 
you'll have to adapt it. :-)

The real question is: do you really want to be able to generate an expression 
from *any* initial angle value or just those in your table? If it's just those 
in your table then I think it would be much, much less effort to extend 
'angleList' with accompanying lists holding the values to substitute into the 
template. Or even just typeset the whole table by hand (prepare a list of the 
expressions and use editor macros to ConTeXtify them).

Regards,
—
Bruce Horrocks
Hampshire, UK

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

maillist : ntg-context@ntg.nl / 
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___


[NTG-context] Combining python and lua

2023-10-25 Thread Alexandre Christe
Dear list,

I’d like to know the best approach to make this a bit more usable. I’m trying 
to typeset a table with sin/cos/tan values. I’d like to be able to convert the 
angles in degrees into radians (with math notation) and to compute the 
trigonometric function leading to sin(pi/4) = 1/2, or cos(pi/6) = sqrt(3)/2 and 
display it in math mode.

Here’s my current MWE, where I fail to convert the angles in radians and fail 
to display the result in symbolic form.

\starttext

\startluacode
local angleList = {0, 30, 45, 60, 90, 120, 135, 150, 180, 210, 225, 240, 270, 
300, 315, 330, 360}

context.bTABLE()
 context.bTR()
 context.bTD() context("$x$") context.eTD()
 context.bTD() context("$0$") context.eTD()
 for _, a in ipairs(angleList) do
 context.bTD() context("$\letterpercent.0f$",a) context.eTD()
 end
 context.eTR()
 context.bTR()
 context.bTD() context("$\\cos(x)$") context.eTD()
 for _, a in ipairs(angleList) do
 context.bTD() context("$\letterpercent.3f$",math.cos(math.rad(a))) 
context.eTD()
 end
 context.eTR()
 context.bTR()
 context.bTD() context("$\\sin(x)$") context.eTD()
 for _, a in ipairs(angleList) do
 context.bTD() context("$\letterpercent.3f$",math.sin(math.rad(a))) 
context.eTD()
 end
 context.eTR()
 context.bTR()
 context.bTD() context("$\\tan(x)$") context.eTD()
 for _, a in ipairs(angleList) do
 if a == 90 or a == 270 then
 context.bTD() context("$-$") context.eTD()
 else
 context.bTD() context("$\letterpercent.3f$",math.tan(math.rad(a))) 
context.eTD()
 end
 end
 context.eTR()
context.eTABLE()
\stopluacode

\stoptext

\stoptext

One possible way would be to use Python and the t-filter module, like this

\usemodule[filter]
%It depends on your OS. In mine it's python3
\defineexternalfilter
 [pythontyping]
 [filtercommand={python3 \externalfilterinputfile \space > 
\externalfilteroutputfile},
 output={\externalfilterbasefile.tex},
 cache=yes,
 readcommand=\typefile,
 spacebefore=medium,
 spaceafter=medium]
%We copy settings to save typing
\defineexternalfilter[pythonformula][pythontyping]
%But instead of typing, we input a formula
\setupexternalfilter[pythonformula]
 [readcommand=\samplefile] %\input should also work

\starttext

Convert angle to radians:
$\startpythonformula
 from sympy import *
 print(latex(pi/180*60))
 \stoppythonformula$

Compute trigonometric function:
$\startpythonformula
 from sympy import *
 print(latex(cos(pi/3)))
 \stoppythonformula$

\stoptext

However, I haven’t managed so far to combine things (lua and Python) in an 
automatic way.

How should I proceed?

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

maillist : ntg-context@ntg.nl / 
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___