From f5cd53ecfd95311913998d41f32f2258802eeb07 Mon Sep 17 00:00:00 2001 From: Marius Date: Mon, 15 Apr 2013 12:00:23 +0300 Subject: beta 2013.04.15 10:36 --- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4131 -> 4130 bytes tex/context/base/context-version.png | Bin 40552 -> 40496 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/pack-com.mkiv | 54 ++++++++++++++++++++- tex/context/base/status-files.pdf | Bin 24750 -> 24754 bytes tex/context/base/status-lua.pdf | Bin 211728 -> 211848 bytes tex/context/base/strc-lab.mkiv | 15 ++++-- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- tex/generic/context/luatex/luatex-fonts.lua | 4 ++ 10 files changed, 70 insertions(+), 9 deletions(-) diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 74a5f3f2a..5286fb829 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.04.14 16:51} +\newcontextversion{2013.04.15 10:36} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index cf05572ff..fdab10f7e 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png index b0bfbdbe0..499f3fd4c 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 5dc0a73fd..5a6df19ef 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2013.04.14 16:51} +\edef\contextversion{2013.04.15 10:36} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/pack-com.mkiv b/tex/context/base/pack-com.mkiv index 8c10549e0..626410bc5 100644 --- a/tex/context/base/pack-com.mkiv +++ b/tex/context/base/pack-com.mkiv @@ -179,7 +179,10 @@ \let\currentcombination\empty} {\edef\currentcombinationspec{\combinationparameter\c!nx*\combinationparameter\c!ny*}}}% \else - \edef\currentcombinationspec{\currentcombinationspec*\plusone*}% + \doifassignmentelse{#2}% + {\setupcurrentcombination[#2]% + \edef\currentcombinationspec{\combinationparameter\c!nx*\combinationparameter\c!ny*}} + {\edef\currentcombinationspec{\currentcombinationspec*\plusone*}}% \fi % \forgetall @@ -224,6 +227,30 @@ \cr \pack_combinations_pickup} +% \def\pack_combinations_pickup_content % we want to add struts but still ignore an empty box +% {\dostoptagged +% \setbox\b_pack_combinations_content\box\nextbox +% \dostarttagged\t!combinationcaption\empty +% \dowithnextboxcs\pack_combinations_pickup_caption\vtop\bgroup +% \afterassignment\pack_combinations_caption_first +% \let\nexttoken=} + +% I've first considered using a constructor directly but it's more overhead +% and some settings conflict with already used combination settings so instead +% we plug in labels. This also permits extensions later on. + +\installcorenamespace{combinationalternative} + +\appendtoks + \edef\p_pack_combinations_alternative{\combinationparameter\c!alternative}% + \setfalse\c_str_define_commands_label % no helper commands + \ifx\currentcombinationparent\empty + \normalexpanded{\definelabel[\v!combination:\currentcombination]}[\c!text=]% + \else + \normalexpanded{\definelabel[\v!combination:\currentcombination][\currentcombinationparent]}[\c!text=]% + \fi +\to \everydefinecombination + \def\pack_combinations_pickup % we want to add struts but still ignore an empty box {\dostarttagged\t!combinationpair\empty \dostarttagged\t!combinationcontent\empty @@ -233,10 +260,33 @@ {\dostoptagged \setbox\b_pack_combinations_content\box\nextbox \dostarttagged\t!combinationcaption\empty - \dowithnextboxcs\pack_combinations_pickup_caption\vtop\bgroup + \expandnamespacemacro\??combinationalternative\p_pack_combinations_alternative\v!text} + +\setvalue{\??combinationalternative\v!text}% + {\dowithnextboxcs\pack_combinations_pickup_caption\vtop\bgroup \afterassignment\pack_combinations_caption_first \let\nexttoken=} +\setvalue{\??combinationalternative\v!label}% + {\dowithnextboxcs\pack_combinations_pickup_caption\vtop\bgroup + \hsize\wd\b_pack_combinations_content + \ifx\p_align\empty\else\setupalign[\p_align]\fi + \usecombinationstyleandcolor\c!style\c!color % but label style wins, so independent configuration + \begstrut + \strc_labels_command{\v!combination:\currentcombination}% + \endstrut + \egroup} + +\appendtoks + \edef\p_pack_combinations_alternative{\combinationparameter\c!alternative}% + \ifx\p_pack_combinations_alternative\v!label + \edef\p_continue{\combinationparameter\c!continue}% + \ifx\p_continue\v!yes \else + \strc_counters_reset{\v!combination:\currentcombination}% + \fi + \fi +\to \everycombination + \def\pack_combinations_pickup_caption {\dostoptagged \dostoptagged diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 52b899bb4..d85682e58 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 7184d6b26..87bf2df81 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/strc-lab.mkiv b/tex/context/base/strc-lab.mkiv index 407b74669..21588a743 100644 --- a/tex/context/base/strc-lab.mkiv +++ b/tex/context/base/strc-lab.mkiv @@ -49,16 +49,23 @@ \c!state=\v!start, \c!levels=3] +\settrue\c_str_define_commands_label + \unexpanded\def\strc_define_commands_label#1#2#3% current level parent {\doifelsenothing{#3} {\normalexpanded{\defineconstruction[#1][\s!handler=\v!label,\c!level=#2]}% \setevalue{\??label#1:\s!parent}{\??label}}% {\normalexpanded{\defineconstruction[#1][#3][\s!handler=\v!label,\c!level=#2]}% \setevalue{\??label#1:\s!parent}{\??label#3}}% - \setuevalue{\e!next #1}{\strc_labels_next }% - \setuevalue{\c!reset#1}{\strc_labels_reset }% - %setuevalue{\c!set #1}{\strc_labels_set }% - \setuevalue {#1}{\strc_labels_command{#1}}} + \ifconditional\c_str_define_commands_label + \setuevalue{\e!next #1}{\strc_labels_next }% + \setuevalue{\c!reset#1}{\strc_labels_reset }% + %setuevalue{\c!set #1}{\strc_labels_set }% + \setuevalue {#1}{\strc_labels_command{#1}}% + \else + % used indirectly + \settrue\c_str_define_commands_label + \fi} % todo: \strc_labels_command for user diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 96f4c79cb..bfd187ae0 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 04/14/13 16:51:15 +-- merge date : 04/15/13 10:36:49 do -- begin closure to overcome local limits and interference diff --git a/tex/generic/context/luatex/luatex-fonts.lua b/tex/generic/context/luatex/luatex-fonts.lua index 0a6dc68e8..96f35012f 100644 --- a/tex/generic/context/luatex/luatex-fonts.lua +++ b/tex/generic/context/luatex/luatex-fonts.lua @@ -16,6 +16,10 @@ if not modules then modules = { } end modules ['luatex-fonts'] = { -- places where in context other code is plugged in, but this does not affect the core code. Users -- can (given that their macro package provides this option) access the font data (characters, -- descriptions, properties, parameters, etc) of this main table. +-- +-- Future versions will probably have some more specific context code removed, like tracing and +-- obscure hooks, so that we have a more efficient version (and less files too). So, don't depend +-- too much on low level code that is meant for context as it can change without notice. utf = utf or unicode.utf8 -- cgit v1.2.3