Size of the last shipped page by Lua?
Hello, is there a way to detect by Lua what is the size (width and height) of the last shipped page? Especially I'm interested in the situation when page via \start/\stopTEXpage has been shipped, like: ---- \startluacode LastPageSize = function() -- What to come here? return w, h end \stopluacode \starttext \startluacode local w, h = LastPageSize() context("w="..w .. ", h=" ..h) -- Should give "w=210mm, h=297mm" (or other units) \stopluacode \startTEXpage[with=10cm,height=15cm] \stopTEXpage \startluacode local w, h = LastPageSize() context("w="..w .. ", h=" ..h) -- Should give "w=100mm, h=150mm" (or other units) \stopluacode \stoptext ---- This would be very useful when I need to insert a page of size of the last page to move to odd page when A4 and A3 pages are mixed, to allow simple duplex printing on the printer. So - how about 'LastPageSize()' function? Best regards, Lukas -- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS:nrpt3sn Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 (+420 720 951 172) Fax: +420 244 461 038
Hi, There are dimensions related to this : local paper_width = tex.getdimen('paperwidth') local paper_height = tex.getdimen('paperheight') There is also : tex.pageheight tex.pagewidth Not sure these are always same. Hope this helps, Regards, Joseph Canedo De : Procházka Lukáš Ing.
On 9/7/2016 9:39 PM, josephcanedo@gmail.com wrote:
There are dimensions related to this :
local paper_width = tex.getdimen('paperwidth')
local paper_height = tex.getdimen('paperheight')
There is also :
tex.pageheight tex.pagewidth
don't mess with these and don't rely on them
Not sure these are always same. Hope this helps,
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 -----------------------------------------------------------------
If by messing it’s meant modifying their values, I agree that’s a bad idea 😊, the requirement is likely to read the value only (at least this is my usage of these in shipouts « after » callback). If these are not reliable, what’s the reliable way to get the page width and height ? Thanks Regards Joseph De : Hans Hagen
On 9/8/2016 9:47 PM, josephcanedo@gmail.com wrote:
If by messing it’s meant modifying their values, I agree that’s a bad idea 😊, the requirement is likely to read the value only (at least this is my usage of these in shipouts « after » callback).
If these are not reliable, what’s the reliable way to get the page width and height ?
\starttext \ctxlua{context(number.topoints(tex.dimen.paperwidth))} \ctxlua{context(number.topoints(tex.dimen.paperheight))} \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Helo,
thanks both for proposals - I really need just to READ the values (and not to modify them).
Best regards,
Lukas
On Thu, 08 Sep 2016 22:12:49 +0200, Hans Hagen
On 9/8/2016 9:47 PM, josephcanedo@gmail.com wrote:
If by messing it’s meant modifying their values, I agree that’s a bad idea 😊, the requirement is likely to read the value only (at least this is my usage of these in shipouts « after » callback).
If these are not reliable, what’s the reliable way to get the page width and height ?
\starttext
\ctxlua{context(number.topoints(tex.dimen.paperwidth))}
\ctxlua{context(number.topoints(tex.dimen.paperheight))}
\stoptext
----------------------------------------------------------------- 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 / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS:nrpt3sn Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 (+420 720 951 172) Fax: +420 244 461 038
Hello,
still a problem - consider the following code:
----
\ifx\startpapersize\undefined
\unprotect
\def\startpapersize{\page\pushmacro\page_paper_restore\setuppapersize}
\protect
\fi
\ifx\stoppapersize\undefined
\unprotect
\def\stoppapersize{\page\popmacro\page_paper_restore\setuppapersize}
\protect
\fi
%
\startluacode
local tomm = function(v) return v * (210 / 39158276) end
pgsz = function()
context("w=%.1f, h=%.1f", tomm(tex.dimen.paperwidth), tomm(tex.dimen.paperheight))
end
\stopluacode
%
\starttext
A
\ctxlua{pgsz()}
\startpapersize[A3,landscape]
B
\ctxlua{pgsz()}
\stoppapersize
\startTEXpage[width=200mm,height=100mm]
C % 3rd page
\ctxlua{pgsz()}
\stopTEXpage
\stoptext
----
In the case of 3rd page (with text "C"), page size "w=210.0, h=297.0" is printed instead of "w=200.0, h=100.0".
So how to access values 200 and 100 mm for the page produced by \startTEXpage[width=...,height=...]?
Best regards,
Lukas
On Thu, 08 Sep 2016 22:12:49 +0200, Hans Hagen
On 9/8/2016 9:47 PM, josephcanedo@gmail.com wrote:
If by messing it’s meant modifying their values, I agree that’s a bad idea 😊, the requirement is likely to read the value only (at least this is my usage of these in shipouts « after » callback).
If these are not reliable, what’s the reliable way to get the page width and height ?
\starttext
\ctxlua{context(number.topoints(tex.dimen.paperwidth))}
\ctxlua{context(number.topoints(tex.dimen.paperheight))}
\stoptext
----------------------------------------------------------------- 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 / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS:nrpt3sn Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 (+420 720 951 172) Fax: +420 244 461 038
On 9/23/2016 1:50 PM, Procházka Lukáš Ing. wrote:
Hello,
still a problem - consider the following code:
---- \ifx\startpapersize\undefined \unprotect \def\startpapersize{\page\pushmacro\page_paper_restore\setuppapersize} \protect \fi
\ifx\stoppapersize\undefined \unprotect \def\stoppapersize{\page\popmacro\page_paper_restore\setuppapersize} \protect \fi
%
\startluacode local tomm = function(v) return v * (210 / 39158276) end
pgsz = function() context("w=%.1f, h=%.1f", tomm(tex.dimen.paperwidth), tomm(tex.dimen.paperheight)) end \stopluacode
%
\starttext A \ctxlua{pgsz()}
\startpapersize[A3,landscape] B \ctxlua{pgsz()} \stoppapersize
\startTEXpage[width=200mm,height=100mm] C % 3rd page \ctxlua{pgsz()} \stopTEXpage
the papersize of a TEXpage is known when that page is flushed and when you ask for it the way you do now tex is still constructing the box it's all a matter of timing \starttext \appendtoks \ctxlua{ print( number.topoints(tex.dimen.paperwidth ), number.topoints(tex.dimen.paperheight) ) }% \to \everyshipout \setuppapersize[A4] test \startTEXpage test \stopTEXpage \setuppapersize[A3] test \stoptext
\stoptext ----
In the case of 3rd page (with text "C"), page size "w=210.0, h=297.0" is printed instead of "w=200.0, h=100.0".
So how to access values 200 and 100 mm for the page produced by \startTEXpage[width=...,height=...]?
Best regards,
Lukas
On Thu, 08 Sep 2016 22:12:49 +0200, Hans Hagen
wrote: On 9/8/2016 9:47 PM, josephcanedo@gmail.com wrote:
If by messing it’s meant modifying their values, I agree that’s a bad idea 😊, the requirement is likely to read the value only (at least this is my usage of these in shipouts « after » callback).
If these are not reliable, what’s the reliable way to get the page width and height ?
\starttext
\ctxlua{context(number.topoints(tex.dimen.paperwidth))}
\ctxlua{context(number.topoints(tex.dimen.paperheight))}
\stoptext
----------------------------------------------------------------- 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 / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Hans Hagen
-
josephcanedo@gmail.com
-
Procházka Lukáš Ing.