
On 7/5/2025 8:41 AM, Wolfgang Schuster wrote:
Am 05.07.2025 um 00:36 schrieb jbf:
The very latest ConTeXt update appears to have resolved any previous issues I was having with color profiles. My log file now reads, as I hoped it would>
backend > profiles > profile specification 'Coated FOGRA39 (ISO 12647-2:2004)' loaded from '/home/julian/data/context/tex/texmf- context/ colors/icc/context/colorprofiles.xml' backend > profiles > setting 'CoatedFOGRA39.icc' as default 'cmyk' color space backend > profiles > setting output intent to 'Coated FOGRA39 (ISO 12647-2:2004)' with id 'FOGRA39' for entry 1
Thank you!
There is a new warning in the log file that I have not seen before (nothing to do with the above). Could someone explain its significance to me? I assume I don't really need to bother about it but I'd like to understand it.
csname overload > warning, protection level 3, control sequence 'newcontextversion', properties 'permanent protected', file '/home/ julian/data/context/tex/texmf-context/tex/context/base/mkxl/cont- new.mkxl', line 16
(Line 16, BTW is simply \setuplayout )
It repeats a few times in different ways, e.g.
csname overload > warning, protection level 3, control sequence 'starttitle', properties 'frozen instance protected', file './ prd_Gering30-06-25.tex', line 285
Context has a mechanism to report when you redefine a command and in the last update Hans just activated the warning mode.
In the following example I create two commands at the begin of the document, which are redefined afterwards. The first command is reported in the log file while the second is because I told Context overloading is allowed, which can be done with \pushoverloadmode ... \popoverloadmode.
When you set overloadmode to error (uncomment the first line in the example or use --overloadmode=error on the command line) Context stops and throws an error when a command is redefined.
While you can ignore the mention of \newcontextversion (something Hans should put in overloadmode) you should take a look at the \starttitle warning.
ha, i never noticed because i always run error mode and set that later; now indeed we enter warning mode asap in core-sys.mkxl one can chaneg this: \enforced\let\newcontextversion\gobbleoneargument fwiw, \enforced is like \aliased (inherits all properties) but only is permissive when used in the format file
%%%% begin example %\enabledirectives[overloadmode=error]
\definehighlight [Important] [style=bold] \definehighlight [Unimportant] [style=italic]
\starttext
\Important {Dummy text} \Unimportant{Dummy text}
\definehighlight [Important] [color=red]
\pushoverloadmode \definehighlight [Unimportant] [color=green] \popoverloadmode
\Important {Dummy text} \Unimportant{Dummy text}
\stoptext %%%% end example
For those interested: you can run context s-system-macros.mkxl and see what is there and how macros are classified. The top of the file says: %D This file is for Wolfgang and Hans and it's used in the transition %D from \MKIV\ to the more robust \LMTX. which tells a story. That file is actually now 5 years old so this protection mechanism has been available for a long time already and I always enabled it here (in error mode). It's discussed in low level manuals but typically not something users should worry about or try to grasp. There are some red entries so I have to check it; not something one does on a daily basis but you can imagine that the initial check took quite some time and editing (adding prefixes). A similar mechanism is available in metapost (starts at page 468 in that file). It fits in the luametatex / context approach of on the one hand providing some more natural programming support (read: primitives instead clumsy helpers or intermediate layers, a bit more readable tex-the-language so to say) and on the other hand making sure that that the macro package can prevent users from overloading core functionality combined with a bit more detailed classification (thereby preventing unwanted side effects). Of course that comes at a price (much more testing when defining macros etc) but that is compensated with plenty gains elsewhere. BTW, processing that file is one of the rare cases where token memory gets bumped (tabulates of many pages) as well as node memory (collected table data cached before flushing). Normally when you see that something is done wrong adn there are better ways but this is an harmless exception. 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 -----------------------------------------------------------------