summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2015-04-08 20:15:05 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2015-04-08 20:15:05 +0200
commit1622025163b8509d883ee2eeaae1246a9da4d000 (patch)
treeffe81d7ccb85b035a6a00f71ab5ce181025c5863
parent32948ef106b3d0bbe9c0d7622c292a42080f7dbe (diff)
downloadcontext-1622025163b8509d883ee2eeaae1246a9da4d000.tar.gz
2015-04-08 19:51:00
-rw-r--r--tex/context/base/back-exp.lua11
-rw-r--r--tex/context/base/back-exp.mkiv4
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4190 -> 4194 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/mult-def.mkiv6
-rw-r--r--tex/context/base/status-files.pdfbin24529 -> 24545 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin416994 -> 416995 bytes
-rw-r--r--tex/context/base/strc-itm.mkvi50
-rw-r--r--tex/context/base/strc-lst.lua32
-rw-r--r--tex/context/base/strc-tag.lua2
-rw-r--r--tex/context/base/strc-tag.mkiv2
-rw-r--r--tex/context/base/syst-aux.mkiv15
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
14 files changed, 104 insertions, 24 deletions
diff --git a/tex/context/base/back-exp.lua b/tex/context/base/back-exp.lua
index c37a725ac..974ae1e43 100644
--- a/tex/context/base/back-exp.lua
+++ b/tex/context/base/back-exp.lua
@@ -614,9 +614,9 @@ do
}
end
- function structurestags.setitem(head)
+ function structurestags.setitem(kind)
itemgroups[locatedtag("item")] = {
- head = head,
+ kind = kind,
}
end
@@ -632,7 +632,10 @@ do
function extras.item(di,element,n,fulltag)
local hash = itemgroups[fulltag]
if hash then
- setattribute(di,"head",hash.head and "yes" or nil)
+ local kind = hash.kind
+ if kind and kind ~= "" then
+ setattribute(di,"kind",kind)
+ end
end
end
@@ -3464,7 +3467,7 @@ implement {
implement {
name = "settagitem",
actions = structurestags.setitem,
- arguments = "boolean"
+ arguments = "string"
}
implement {
diff --git a/tex/context/base/back-exp.mkiv b/tex/context/base/back-exp.mkiv
index 64ec1a674..b29f45f82 100644
--- a/tex/context/base/back-exp.mkiv
+++ b/tex/context/base/back-exp.mkiv
@@ -152,9 +152,9 @@
\numexpr\currentitemlevel\relax
{\currentitemgroupsymbol}%
\fi}%
- \unexpanded\def\dotagsetitem
+ \unexpanded\def\dotagsetitem#1%
{\iftrialtypesetting\else
- \clf_settagitem\ifconditional\c_strc_itemgroups_head true\else false\fi\relax
+ \clf_settagitem{#1}%
\fi}%
\to \everyenableelements
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 4a7dcb59a..b4f3ab2ab 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{2015.04.08 14:19}
+\newcontextversion{2015.04.08 19:49}
%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 7b5df2493..54fcaed76 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 51212fd07..b0057c819 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -39,7 +39,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2015.04.08 14:19}
+\edef\contextversion{2015.04.08 19:49}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mult-def.mkiv b/tex/context/base/mult-def.mkiv
index 6efeb3069..c755597c0 100644
--- a/tex/context/base/mult-def.mkiv
+++ b/tex/context/base/mult-def.mkiv
@@ -34,6 +34,12 @@
% start todo in mult-def.lua:
+\def\s!head {head}
+\def\s!symbol {symbol}
+\def\s!sub {sub}
+\def\s!margin {margin}
+\def\s!edge {edge}
+
\def\v!alphabetic {alphabetic}
\def\v!Alphabetic {Alphabetic}
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index aa810be4e..108f8877d 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 55f533996..84a544541 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/strc-itm.mkvi b/tex/context/base/strc-itm.mkvi
index b69d5bac0..80703022e 100644
--- a/tex/context/base/strc-itm.mkvi
+++ b/tex/context/base/strc-itm.mkvi
@@ -486,8 +486,8 @@
\csname\??itemgroupfirst#option\endcsname
\fi}
-\ifdefined\dotagsetitemgroup \else \let\dotagsetitemgroup\relax \fi
-\ifdefined\dotagsetitem \else \let\dotagsetitem \relax \fi
+\ifdefined\dotagsetitemgroup \else \let\dotagsetitemgroup\relax \fi
+\ifdefined\dotagsetitem \else \let\dotagsetitem \gobbleoneargument \fi
\def\strc_itemgroups_tag_start_group
{\dostarttaggedchained\t!itemgroup\currentparentitemgroup\??itemgroup
@@ -1046,7 +1046,7 @@
\setfalse\c_strc_itemgroups_concat
\fi
\dostarttagged\t!item\empty
- \dotagsetitem
+ % \dotagsetitem\empty
\dostarttagged\t!itemtag\empty
\strc_itemgroups_insert_item
\dostoptagged
@@ -1087,18 +1087,24 @@
\fi
\fi
\strc_itemgroups_start_item[#reference]%
- \groupedcommand\strc_itemgroups_start_head_indeed\strc_itemgroups_stop_head_indeed}
+ \pickupgroupedcommand
+ \strc_itemgroups_start_head_indeed
+ \strc_itemgroups_stop_head_indeed
+ \strc_itemgroups_head_body_indeed}
\unexpanded\def\stopitemgrouphead
- {\stopitemgroupitem}
+ {\dostoptagged
+ \stopitemgroupitem}
\unexpanded\def\strc_itemgroups_start_head_indeed
{\settrue\c_strc_itemgroups_head
- \dotagsetitem % weird place
+ \dotagsetitem\s!head% % weird place
+ \dostarttagged\t!itemhead\empty
\useitemgroupstyleandcolor\c!headstyle\c!headcolor\ignorespaces}
\unexpanded\def\strc_itemgroups_stop_head_indeed
{\removeunwantedspaces
+ \dostoptagged
\ifconditional\c_strc_itemgroups_text
\space
\ignorespaces
@@ -1107,7 +1113,10 @@
\fi
\strc_itemgroups_insert_breakno
\ifconditional\c_strc_itemgroups_pack\else\strc_itemgroups_after_head_command\fi
- \strc_itemgroups_insert_breakno
+ \strc_itemgroups_insert_breakno}
+
+\unexpanded\def\strc_itemgroups_head_body_indeed
+ {\dostarttagged\t!itembody\empty
\noindentation}
% Simple commands.
@@ -1125,30 +1134,37 @@
\unexpanded\def\strc_itemgroups_start_symbol#text%
{\def\strc_itemgroups_extra_symbol{#text}%
\settrue\c_strc_itemgroups_symbol
- \startitemgroupitem}
+ \startitemgroupitem
+ \dotagsetitem\s!symbol}
\unexpanded\def\strc_itemgroups_start_dummy
{\strc_itemgroups_start_symbol\strut\strut} % two ?
\unexpanded\def\strc_itemgroups_start_subitem
{\settrue\c_strc_itemgroups_sub
- \startitemgroupitem}
+ \startitemgroupitem
+ \dotagsetitem\s!sub}
\unexpanded\def\strc_itemgroups_start_edge#text%
{\strc_itemgroups_start_symbol
{\strc_itemgroups_calculate_list_width\c_strc_itemgroups_nesting
+ \dostarttagged\t!ignore\empty % for the moment, maybe an attribute
\hbox to \d_strc_itemgroups_list_width
- {#text\hskip\itemgroupparameter\c!distance}}}
+ {#text\hskip\itemgroupparameter\c!distance}%
+ \dostoptagged}}
\unexpanded\def\strc_itemgroups_start_margin#text%
{\def\strc_itemgroups_margin_symbol % brrr
- {\llap
+ {\dostarttagged\t!ignore\empty % for the moment, maybe an attribute
+ \llap
{\begingroup
\useitemgroupstyleandcolor\c!marstyle\c!marcolor
#text% keep em/ex local
\endgroup
- \hskip\dimexpr\leftskip+\leftmargindistance\relax}}%
- \startitemgroupitem}
+ \hskip\dimexpr\leftskip+\leftmargindistance\relax}%
+ \dostoptagged}%
+ \startitemgroupitem
+ \dotagsetitem\s!margin}
\unexpanded\def\strc_itemgroups_start_text#text%
{\def\strc_itemgroups_extra_symbol{#text}%
@@ -1222,7 +1238,9 @@
{\dontcomplain
\hbox to \d_strc_itemgroups_list_width
{\ifconditional\c_strc_itemgroups_sub
+ \dostarttagged\t!ignore\empty
\llap{+\enspace}%
+ \dostoptagged
\fi
\strc_itemgroups_left_sym_filler
\box\b_strc_itemgroups % can already have a forced widt, only factor handled here
@@ -1232,7 +1250,9 @@
\def\strc_itemgroups_handle_lapped_item_negative
{\llap
{\ifconditional\c_strc_itemgroups_sub
+ \dostarttagged\t!ignore\empty
\llap{+\enspace}%
+ \dostoptagged
\fi
\box\b_strc_itemgroups
\hskip\leftmargindistance}}
@@ -1240,7 +1260,9 @@
\def\strc_itemgroups_handle_groups_text_item
{\hbox
{\ifconditional\c_strc_itemgroups_sub
+ \dostarttagged\t!ignore\empty
+\enspace
+ \dostoptagged
\fi
\box\b_strc_itemgroups
\hskip\interwordspace}%
@@ -1249,7 +1271,9 @@
\def\strc_itemgroups_handle_groups_inline_item
{\hbox to \d_strc_itemgroups_list_width
{\ifconditional\c_strc_itemgroups_sub
+ \dostarttagged\t!ignore\empty
\llap{+\enspace}%
+ \dostoptagged
\fi
\box\b_strc_itemgroups
\hss}} % was: \hfill
diff --git a/tex/context/base/strc-lst.lua b/tex/context/base/strc-lst.lua
index 634d3a49a..8ea0a75b9 100644
--- a/tex/context/base/strc-lst.lua
+++ b/tex/context/base/strc-lst.lua
@@ -60,6 +60,11 @@ lists.pushed = pushed
lists.kinds = kinds
lists.names = names
+local sorters = sorters
+local sortstripper = sorters.strip
+local sortsplitter = sorters.splitters.utf
+local sortcomparer = sorters.comparers.basic
+
local sectionblocks = allocate()
lists.sectionblocks = sectionblocks
@@ -75,6 +80,7 @@ local variables = interfaces.variables
local v_all = variables.all
local v_reference = variables.reference
+local v_title = variables.title
local v_number = variables.reference
local v_command = variables.command
local v_text = variables.text
@@ -343,7 +349,7 @@ end
local splitter = lpeg.splitat(":") -- maybe also :: or have a block parameter
-local sorters = {
+local listsorters = {
[v_command] = function(a,b)
if a.metadata.kind == "command" or b.metadata.kind == "command" then
return a.references.internal < b.references.internal
@@ -354,6 +360,28 @@ local sorters = {
[v_all] = function(a,b)
return a.references.internal < b.references.internal
end,
+ [v_title] = function(a,b)
+ local da = a.titledata
+ local db = b.titledata
+ if da and db then
+ local ta = da.title
+ local tb = db.title
+ if ta and tb then
+ local sa = da.split
+ if not sa then
+ sa = sortsplitter(sortstripper(ta))
+ da.split = sa
+ end
+ local sb = db.split
+ if not sb then
+ sb = sortsplitter(sortstripper(tb))
+ db.split = sb
+ end
+ return sortcomparer(da,db) == -1
+ end
+ end
+ return a.references.internal < b.references.internal
+ end
}
-- was: names, criterium, number, collected, forced, nested, sortorder
@@ -412,7 +440,7 @@ local function filtercollected(specification)
end
--
if sortorder then -- experiment
- local sorter = sorters[sortorder]
+ local sorter = listsorters[sortorder]
if sorter then
if trace_lists then
report_lists("sorting list using method %a",sortorder)
diff --git a/tex/context/base/strc-tag.lua b/tex/context/base/strc-tag.lua
index 8c77965ae..0b14c1d9f 100644
--- a/tex/context/base/strc-tag.lua
+++ b/tex/context/base/strc-tag.lua
@@ -78,6 +78,8 @@ local properties = allocate {
item = { pdf = "LI", nature = "display" },
itemtag = { pdf = "Lbl", nature = "mixed" },
itemcontent = { pdf = "LBody", nature = "mixed" },
+ itemhead = { pdf = "Div", nature = "display" },
+ itembody = { pdf = "Div", nature = "display" },
description = { pdf = "Div", nature = "display" },
descriptiontag = { pdf = "Div", nature = "mixed" },
diff --git a/tex/context/base/strc-tag.mkiv b/tex/context/base/strc-tag.mkiv
index a401492b9..f2b59c29c 100644
--- a/tex/context/base/strc-tag.mkiv
+++ b/tex/context/base/strc-tag.mkiv
@@ -40,6 +40,8 @@
\def\t!item {item} % Li
\def\t!itemtag {itemtag} % Lbl
\def\t!itemcontent {itemcontent} % LBody
+\def\t!itemhead {itemhead} % Div
+\def\t!itembody {itembody} % Div
\def\t!description {description} % Li
\def\t!descriptiontag {descriptiontag} % Lbl
diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv
index c39f0cc0d..308ed5a3b 100644
--- a/tex/context/base/syst-aux.mkiv
+++ b/tex/context/base/syst-aux.mkiv
@@ -4514,6 +4514,18 @@
{\m_syst_helpers_handle_group_after
\egroup}%
+\unexpanded\def\syst_helpers_handle_group_pickup#1#2#3% no inner group (so no kerning interference)
+ {\bgroup
+ \def\m_syst_helpers_handle_group_before{#1}%
+ \def\m_syst_helpers_handle_group_after {#2\egroup#3}%
+ \afterassignment\m_syst_helpers_handle_group_pickup_before
+ \let\next=}
+
+\def\m_syst_helpers_handle_group_pickup_before
+ {\bgroup
+ \aftergroup\m_syst_helpers_handle_group_after
+ \m_syst_helpers_handle_group_before}
+
\unexpanded\def\syst_helpers_handle_group_nop
{\ifnum\currentgrouptype=\semisimplegroupcode
\expandafter\syst_helpers_handle_group_nop_a
@@ -4551,6 +4563,9 @@
\unexpanded\def\simplegroupedcommand#1#2%
{\doifelsenextbgroup{\syst_helpers_handle_group_simple{#1}{#2}}{\syst_helpers_handle_group_nop{#1}{#2}}}
+\unexpanded\def\pickupgroupedcommand#1#2#3%
+ {\doifelsenextbgroup{\syst_helpers_handle_group_pickup{#1}{#2}{#3}}{\syst_helpers_handle_group_nop{#1}{#2}}}
+
%D Users should be aware of the fact that grouping can
%D interfere with ones paragraph settings that are executed
%D after the paragraph is closed. One should therefore
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 2d65bb5e2..e4a24cab7 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/08/15 14:19:47
+-- merge date : 04/08/15 19:49:24
do -- begin closure to overcome local limits and interference