Re: [NTG-context] Checking existence of a macro (control sequence) by Lua - problem after updating MkIV
Hello Hans, -- Původní e-mail -- { Od: Hans Hagen as you updated, it's just: \startluacode local defined = tokens.defined for _, v in ipairs{ "MyMacro", "MyMacWithPars", "Undefined", "DoNothing", "NonExisting" } do print(string.format("\letterpercent-12s", v), defined(v), defined(v, true), defined(v, false)) end \stopluacode -- Původní e-mail -- } your solution gives me: " MyMacro false truefalse MyMacWithPars false truefalse Undefined false truefalse DoNothing false truefalse NonExisting false false false " which desn't recognize \Undefined - it should give 'false' in the 2nd column of results, like \NonExisting does. But I have another solution (asked in Czech TUG) - use of 'token.get_meaning(cs)': \startluacode for _, v in ipairs{ "MyMacro", "MyMacWithPars", "Undefined", "DoNothing", "NonExisting" } do print(string.format("\letterpercent-12s", v), "get_meaning", token.get_meaning(v) or "(non-existing/undefined)") end \stopluacode - Produces: " MyMacro get_meaning ->Ahoj MyMacWithPars get_meaning #1#2->Something Undefined get_meaning (non-existing/undefined) DoNothing get_meaning -> NonExisting get_meaning (non-existing/undefined) " which is perfectly what I need. But thank you anyway for your effort. Best regards, Lukas ___ 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 ___
Re: [NTG-context] Checking existence of a macro (control sequence) by Lua - problem after updating MkIV
On 6/18/2020 10:27 AM, Lukas/ConTeXt wrote: Hello, I'm using Hans' macro suggested some time before. I've just updated Ctx MkIV and my sample code: \starttext \def\MyMacro{Ahoj} \def\MyMacWithPars#1#2{Something} \def\Undefined{} \let\Undefined\undefined \def\DoNothing{} \let\DoNothing\donothing \startluacode if CONTEXTLMTXMODE == 0 then local d = tokens.defined local c = tokens.create function tokens.defined(s,b) if b then return d(s) else return c(s).cmd_name == "undefined_cmd" end end end -- local defined = tokens.defined for _, v in ipairs{ "MyMacro", "MyMacWithPars", "Undefined", "DoNothing", "NonExisting" } do print(string.format("\letterpercent-12s", v), defined(v), defined(v, true), defined(v, false)) end \stopluacode Aaa \stoptext as you updated, it's just: \startluacode local defined = tokens.defined for _, v in ipairs{ "MyMacro", "MyMacWithPars", "Undefined", "DoNothing", "NonExisting" } do print(string.format("\letterpercent-12s", v), defined(v), defined(v, true), defined(v, false)) end \stopluacode - 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] margin comment above heading
On 6/17/20 11:26 PM, Henning Hraban Ramm wrote: > [...] > Pablo, do I understand right that you’re converting XML and the > comment comes last in that structure, but you need it first?> I.e. > the real question is how to process the XML structure in a different > order, right? Hraban, yes, this is my real question. I have to learn how to select the last child using lpath ("[position()==last()]", I guess). > That would avoid shifting boxes around, which might be possible, but > ugly and hard to control. This make sense. Messing code to force ConTeXt to work as it isn’t intended may to other unintended consequences as well. Many thanks for your help, Pablo -- http://www.ousia.tk ___ 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 ___
Re: [NTG-context] \blank space at the top of a page
Many thanks Wolfgang I tried using force but that caused a problem with aligning to the grid, not included in my original example, but included below. I think I have seen \mbox used in this way in Latex, so was trying to find a quick solution. James \setuplayout[grid=yes] \showgrid \setuphead[chapter][before={\blank[4*big]}] \starttext \startchapter[title={No space above this chapter}] chapter text etc \stopchapter \setuphead[chapter][before={\blank[4*big,force]}] \startchapter[title={Chapter with spacing but out of line with grid}] chapter text etc \stopchapter \setuphead[chapter][before={\blank[4*line,force]}] \startchapter[title={Chapter with spacing but out of line with grid}] chapter text etc \stopchapter \stoptext On Thu, 18 Jun 2020 at 16:44, Wolfgang Schuster wrote: > > James Withers schrieb am 18.06.2020 um 17:35: > > Hello list > > > > I have been trying to find a solution to how to insert blank lines > > before a chapter heading at the start of a page. In the following > > example the \blank[4*big] is ignored. The solution I've found is to > > add an empty box using \mbox{} before the \blank command. > > I'm curious where the use of \mbox is documented. > > > Is this the right way to do it or is there a more elegant way that I > > am missing? > > > > Many thanks > > > > James > > > > > > \setuphead[chapter][before={\blank[4*big]}] > > You have to add the "force" keyword to \blank because TeX ignores by > default vertical space at the begin of a page. > > \setuphead[chapter][before={\blank[force,4*big]}] > > Wolfgang > ___ 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 ___
Re: [NTG-context] How could I find the 'depth' of an element found with xml.first()?
On 6/18/2020 3:24 PM, Gerben Wierda wrote: Given the following XML snippet OmaFoo How would I go about to find the depth of an item found with an LPATH? E.g. //[id="Foo_3"] would find a node at depth 2 (assuming is at level 0) while //[id=“Fuzz_2"] would find a node at depth 3 and in either cases I would like to get that number (2 or 3) as well as the actual node. I can assume the values for ‘id’ are unique. I was wondering how I could go about finding the ‘depth’ of an item in the XML when using the LMTX built-in functions to work with XML. I don’t think there is a default function for that, is there? You don't deserve an answer because this is not a MWE! \startbuffer[test] here \stopbuffer \startxmlsetups xml:mysetups \xmlsetsetup{#1}{something|what}{xml:*} \stopxmlsetups \xmlregistersetup{xml:mysetups} \startxmlsetups xml:something \xmlflush{#1} \stopxmlsetups \startluacode function xml.finalizers.tex.depth(t) local d = 0 local t = t and t[1] while t do d = d + 1 t = xml.parent(t) if not t then break end end context(d) end \stopluacode \startxmlsetups xml:what \xmldoifelse {#1} {..[name() == "what"]} { YES } { NOP } [\xmlflush{#1}] (\xmlfilter{#1}{./depth()}) \stopxmlsetups \starttext \xmlprocessbuffer{main}{test}{} \stoptext I might add it anyway (a faster variant that is), 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 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 ___
Re: [NTG-context] \blank space at the top of a page
James Withers schrieb am 18.06.2020 um 17:35: Hello list I have been trying to find a solution to how to insert blank lines before a chapter heading at the start of a page. In the following example the \blank[4*big] is ignored. The solution I've found is to add an empty box using \mbox{} before the \blank command. I'm curious where the use of \mbox is documented. Is this the right way to do it or is there a more elegant way that I am missing? Many thanks James \setuphead[chapter][before={\blank[4*big]}] You have to add the "force" keyword to \blank because TeX ignores by default vertical space at the begin of a page. \setuphead[chapter][before={\blank[force,4*big]}] Wolfgang ___ 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 ___
Re: [NTG-context] margin comment above heading
On 6/17/20 10:47 PM, Wolfgang Schuster wrote: > Pablo Rodriguez schrieb am 16.06.2020 um 22:17: >> Dear list, >> >> I have the following sample: >> >>\startsetups[tinytiny] >> \setupwhitespace[-2em] >> \setupbodyfont[0.01pt] >> \setupinterlinespace[1sp] >>\stopsetups This was from a previous form of the sample. If the paragraph is really tiny, it would be easier not to have a page break between that paragraph and the >>\setupinteraction[state=start] >>\showframe\showgrid >>\starttext >> \blank[force, 10em] >> \section{Move comment above this heading} >> \startparagraph[setups=tinytiny] >> \dontleavehmode >> \comment[location={rightmargin}, color=orange] >> {comment} >> \stopparagraph >>\stoptext >> >> Is there a way to move the comment above the heading that goes before? > > Like this? > > \setupinteraction[state=start] > > \showframe > \showgrid > > \starttext > > \blank[force,10em] > > \comment[location={rightmargin},color=orange]{comment} > \section{Move comment above this heading} > > \stoptext This is what I intend, but not changing the order of \section before \comment (if that is possible, which I don’t know). Many thanks for your help, Pablo -- http://www.ousia.tk ___ 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 ___
[NTG-context] \blank space at the top of a page
Hello list I have been trying to find a solution to how to insert blank lines before a chapter heading at the start of a page. In the following example the \blank[4*big] is ignored. The solution I've found is to add an empty box using \mbox{} before the \blank command. Is this the right way to do it or is there a more elegant way that I am missing? Many thanks James \setuphead[chapter][before={\blank[4*big]}] \starttext \startchapter[title={No space above this chapter}] chapter text etc \stopchapter \setuphead[chapter][before={\mbox{}\blank[4*big]}] \startchapter[title={Chapter with the right spacing}] chapter text etc \stopchapter \stoptext ___ 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 ___
[NTG-context] How could I find the 'depth' of an element found with xml.first()?
Given the following XML snippet OmaFoo How would I go about to find the depth of an item found with an LPATH? E.g. //[id="Foo_3"] would find a node at depth 2 (assuming is at level 0) while //[id=“Fuzz_2"] would find a node at depth 3 and in either cases I would like to get that number (2 or 3) as well as the actual node. I can assume the values for ‘id’ are unique. I was wondering how I could go about finding the ‘depth’ of an item in the XML when using the LMTX built-in functions to work with XML. I don’t think there is a default function for that, is there? G ___ 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 ___
Re: [NTG-context] Checking existence of a macro (control sequence) by Lua - problem after updating MkIV
Hello, I need to check within Lua. My sample cases are very minimalistic - I'm working on more complicated task actually, where check-for-control-sequence-existence need to be performed run-time within Lua scope. Best, Lukas -- Původní e-mail -- Od: Hans van der Meer Komu: NTG ConTeXt Datum: 18. 6. 2020 12:25:42 Předmět: Re: [NTG-context] Checking existence of a macro (control sequence) by Lua - problem after updating MkIV " Why can you not simply use one of the doifundefined macro's? Something for example: \doifundefined{ExitStatus}{\gdef\ExitStatus{0}} % default to ok as in UNIX dr. Hans van der Meer " On 18 Jun 2020, at 10:27, Lukas/ConTeXt mailto:lpr.cont...@email.cz)> wrote: Hello, I'm using Hans' macro suggested some time before. I've just updated Ctx MkIV and my sample code: \starttext \def\MyMacro{Ahoj} \def\MyMacWithPars#1#2{Something} \def\Undefined{} \let\Undefined\undefined \def\DoNothing{} \let\DoNothing\donothing \startluacode if CONTEXTLMTXMODE == 0 then local d = tokens.defined local c = tokens.create function tokens.defined(s,b) if b then return d(s) else return c(s).cmd_name == "undefined_cmd" end end end -- local defined = tokens.defined for _, v in ipairs{ "MyMacro", "MyMacWithPars", "Undefined", "DoNothing", "NonExisting" } do print(string.format("\letterpercent-12s", v), defined(v), defined(v, true), defined(v, false)) end \stopluacode Aaa \stoptext gives: " MyMacro false false false MyMacWithPars false false false Undefined false false false DoNothing false false false NonExisting false false false " IOW, I'm not able to determine whether a control sequence has not been defined (or has \undefined value) or not. Am I doing a trivial mistake or has anything changed? Thank you for patience... Lukas ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl(mailto:ntg-context@ntg.nl) / http://www.ntg. nl/mailman/listinfo/ntg-context (http://www.ntg.nl/mailman/listinfo/ntg-context) webpage : http://www.pragma-ade.nl(http://www.pragma-ade.nl) / http:// context.aanhet.net(http://context.aanhet.net) archive : https://bitbucket.org/phg/context-mirror/commits/ (https://bitbucket.org/phg/context-mirror/commits/) wiki : http://contextgarden.net(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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] Checking existence of a macro (control sequence) by Lua - problem after updating MkIV
Why can you not simply use one of the doifundefined macro's? Something for example: \doifundefined{ExitStatus}{\gdef\ExitStatus{0}} % default to ok as in UNIX dr. Hans van der Meer > On 18 Jun 2020, at 10:27, Lukas/ConTeXt wrote: > > Hello, > I'm using Hans' macro suggested some time before. > I've just updated Ctx MkIV and my sample code: > > > \starttext > \def\MyMacro{Ahoj} > > \def\MyMacWithPars#1#2{Something} > > \def\Undefined{} > \let\Undefined\undefined > > \def\DoNothing{} > \let\DoNothing\donothing > > \startluacode >if CONTEXTLMTXMODE == 0 then >local d = tokens.defined >local c = tokens.create > >function tokens.defined(s,b) >if b then >return d(s) >else >return c(s).cmd_name == "undefined_cmd" >end >end >end > >-- > >local defined = tokens.defined > >for _, v in ipairs{ "MyMacro", "MyMacWithPars", "Undefined", "DoNothing", > "NonExisting" } do > print(string.format("\letterpercent-12s", v), defined(v), defined(v, > true), defined(v, false)) >end > \stopluacode > > Aaa > \stoptext > > > gives: > " > MyMacro false false false > MyMacWithPars false false false > Undefined false false false > DoNothing false false false > NonExisting false false false > " > > IOW, I'm not able to determine whether a control sequence has not been > defined (or has \undefined value) or not. > > Am I doing a trivial mistake or has anything changed? > > Thank you for patience... > > Lukas___ > 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 > ___ ___ 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 ___
[NTG-context] Checking existence of a macro (control sequence) by Lua - problem after updating MkIV
Hello, I'm using Hans' macro suggested some time before. I've just updated Ctx MkIV and my sample code: \starttext \def\MyMacro{Ahoj} \def\MyMacWithPars#1#2{Something} \def\Undefined{} \let\Undefined\undefined \def\DoNothing{} \let\DoNothing\donothing \startluacode if CONTEXTLMTXMODE == 0 then local d = tokens.defined local c = tokens.create function tokens.defined(s,b) if b then return d(s) else return c(s).cmd_name == "undefined_cmd" end end end -- local defined = tokens.defined for _, v in ipairs{ "MyMacro", "MyMacWithPars", "Undefined", "DoNothing", "NonExisting" } do print(string.format("\letterpercent-12s", v), defined(v), defined(v, true), defined(v, false)) end \stopluacode Aaa \stoptext gives: " MyMacro false false false MyMacWithPars false false false Undefined false false false DoNothing false false false NonExisting false false false " IOW, I'm not able to determine whether a control sequence has not been defined (or has \undefined value) or not. Am I doing a trivial mistake or has anything changed? Thank you for patience... Lukasopen source > level 1, order 1, name 'd:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/cont-yes.mkiv' system > system > ConTeXt ver: 2020.06.17 18:56 MKIV beta fmt: 2020.6.18 int: english/english system > system > 'cont-new.mkiv' loaded open source > level 2, order 2, name 'd:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/cont-new.mkiv' system > beware: some patches loaded from cont-new.mkiv close source> level 2, order 2, name 'd:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/cont-new.mkiv' system > jobfiles > using path: d:/Lukas/ConTeXt/Styles system > files > jobname 'IsMacDef3', input 'D:/Lukas/ConTeXt/Test/IsMacDef3.mkiv', result 'IsMacDef3' fonts > latin modern fonts are not preloaded languages > language 'en' is active open source > level 2, order 3, name 'D:/Lukas/ConTeXt/Test/IsMacDef3.mkiv' fonts > preloading latin modern fonts (second stage) fonts > 'fallback modern-designsize rm 12pt' is loaded backend > xmp > using file 'd:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/lpdf-pdx.xml' pages > flushing realpage 1, userpage 1, subpage 1 close source> level 2, order 3, name 'D:/Lukas/ConTeXt/Test/IsMacDef3.mkiv' close source> level 1, order 3, name 'd:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/cont-yes.mkiv' system > start used files system > text: IsMacDef3 system > stop used files system > start used files system >1: filename=char-prv.lua filetype=tex format=tex foundname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/char-prv.lua fullname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/char-prv.lua usedmethod=database system >2: filename=cont-yes.mkiv filetype=tex foundname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/cont-yes.mkiv fullname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/cont-yes.mkiv usedmethod=database system >3: filename=publ-imp-default.lua filetype=lua foundname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/publ-imp-default.lua fullname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/publ-imp-default.lua usedmethod=otherwise system >4: filename=cont-new.mkiv filetype=tex foundname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/cont-new.mkiv fullname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/cont-new.mkiv usedmethod=database system >5: filename=lang-exc.lua filetype=lua foundname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/lang-exc.lua fullname=d:/Ctx-Beta/tex/texmf-context/tex/context/base/mkiv/lang-exc.lua usedmethod=otherwise system >6: filename=lang-us.lua filetype=lua foundname=d:/Ctx-Beta/tex/texmf-context/tex/context/patterns/mkiv/lang-us.lua fullname=d:/Ctx-Beta/tex/texmf-context/tex/context/patterns/mkiv/lang-us.lua usedmethod=otherwise system >7: filename=D:/Lukas/ConTeXt/Test/IsMacDef3.mkiv foundname=D:/Lukas/ConTeXt/Test/IsMacDef3.mkiv fullname=D:/Lukas/ConTeXt/Test/IsMacDef3.mkiv usedmethod=direct system >8: filename=lm.lfg filetype=tex foundname=d:/Ctx-Beta/tex/texmf-context/tex/context/fonts/mkiv/lm.lfg fullname=d:/Ctx-Beta/tex/texmf-context/tex/context/fonts/mkiv/lm.lfg usedmethod=database system >9: filename=lmroman12-regular filetype=otf format=otf foundname=d:/Ctx-Beta/tex/texmf/fonts/opentype/public/lm/lmroman12-regular.otf fullname=d:/Ctx-Beta/tex/texmf/fonts/opentype/public/lm/lmroman12-regular.otf usedmethod=database system > 10: filename=latinmodern-math.otf filetype=opentypefonts