summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2011-07-22 01:29:00 +0200
committerHans Hagen <pragma@wxs.nl>2011-07-22 01:29:00 +0200
commit0fec6e92a4f8bb230117f2392bd2d5e20fb2c836 (patch)
tree382aea36d7d41d5b9c2b25d7c88e4b6867bdab54 /tex
parentaf52cdd22674c1f88ce50121a68be65052ddfa04 (diff)
downloadcontext-0fec6e92a4f8bb230117f2392bd2d5e20fb2c836.tar.gz
beta 2011.07.22 01:29
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/context.mkiv3
-rw-r--r--tex/context/base/data-tex.lua7
-rw-r--r--tex/context/base/file-job.lua73
-rw-r--r--tex/context/base/file-job.mkvi19
-rw-r--r--tex/context/base/m-markdown.mkiv2
-rw-r--r--tex/context/base/meta-imp-fen.mkiv40
-rw-r--r--tex/context/base/pack-fen.mkiv75
-rw-r--r--tex/context/base/pack-rul.mkiv18
-rw-r--r--tex/context/base/status-files.pdfbin23801 -> 23778 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin162205 -> 162201 bytes
10 files changed, 180 insertions, 57 deletions
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 8bf36d10f..67aa0fe4e 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2011.07.21 19:17}
+\edef\contextversion{2011.07.22 01:29}
%D For those who want to use this:
@@ -192,6 +192,7 @@
\loadmkvifile{pack-mis}
\loadmarkfile{pack-rul}
+\loadmarkfile{pack-fen}
\loadmarkfile{lxml-ini}
\loadmarkfile{lxml-sor}
diff --git a/tex/context/base/data-tex.lua b/tex/context/base/data-tex.lua
index 4b3fba33b..bf4e30413 100644
--- a/tex/context/base/data-tex.lua
+++ b/tex/context/base/data-tex.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['data-tex'] = {
license = "see context related readme files"
}
+local char = string.char
+
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
local report_tex = logs.reporter("resolvers","tex")
@@ -46,6 +48,9 @@ appendgroup(textlineactions,"before") -- user
appendgroup(textlineactions,"system") -- private
appendgroup(textlineactions,"after" ) -- user
+local ctrl_d = char( 4) -- unix
+local ctrl_z = char(26) -- windows
+
function helpers.textopener(tag,filename,filehandle,coding)
local lines
local t_filehandle = type(filehandle)
@@ -111,6 +116,8 @@ function helpers.textopener(tag,filename,filehandle,coding)
return nil
elseif content == "" then
return ""
+ -- elseif content == ctrl_d or ctrl_z then
+ -- return nil -- we need this as \endinput does not work in prints
else
if textlineactions.dirty then
lineprocessor = sequencers.compile(textlineactions) -- maybe use autocompile
diff --git a/tex/context/base/file-job.lua b/tex/context/base/file-job.lua
index 4c7811fc5..8c9b69527 100644
--- a/tex/context/base/file-job.lua
+++ b/tex/context/base/file-job.lua
@@ -400,25 +400,25 @@ luatex.registerstopactions(logtree)
-- product : combination of components
local processors = utilities.storage.allocate {
- [v_outer] = {
- [v_text] = { "many", context.processfilemany },
- [v_project] = { "once", context.processfileonce },
- [v_environment] = { "once", context.processfileonce },
- [v_product] = { "many", context.processfileonce },
- [v_component] = { "many", context.processfilemany },
- },
+ -- [v_outer] = {
+ -- [v_text] = { "many", context.processfilemany },
+ -- [v_project] = { "once", context.processfileonce },
+ -- [v_environment] = { "once", context.processfileonce },
+ -- [v_product] = { "many", context.processfileonce },
+ -- [v_component] = { "many", context.processfilemany },
+ -- },
[v_text] = {
[v_text] = { "many", context.processfilemany },
- [v_project] = { "once", context.processfileonce }, -- none *
+ [v_project] = { "none", context.processfileonce }, -- none
[v_environment] = { "once", context.processfileonce }, -- once
- [v_product] = { "once", context.processfileonce }, -- none *
+ [v_product] = { "none", context.processfileonce }, -- none
[v_component] = { "many", context.processfilemany }, -- many
},
[v_project] = {
[v_text] = { "many", context.processfilemany },
[v_project] = { "none", context.processfilenone }, -- none
[v_environment] = { "once", context.processfileonce }, -- once
- [v_product] = { "none", context.processfilenone }, -- once *
+ [v_product] = { "once", context.processfilenone }, -- once
[v_component] = { "none", context.processfilenone }, -- many *
},
[v_environment] = {
@@ -432,7 +432,7 @@ local processors = utilities.storage.allocate {
[v_text] = { "many", context.processfilemany },
[v_project] = { "once", context.processfileonce }, -- once
[v_environment] = { "once", context.processfileonce }, -- once
- [v_product] = { "many", context.processfilemany }, -- none *
+ [v_product] = { "none", context.processfilemany }, -- none
[v_component] = { "many", context.processfilemany }, -- many
},
[v_component] = {
@@ -468,29 +468,29 @@ local function topofstack(what)
end
local done = { }
-local tolerant = true
+local tolerant = false -- too messy, mkii user with the wrong sructure should adapt
local function process(what,name)
local depth = #typestack
local process
- if not tolerant then
+-- if not tolerant then
-- okay, would be best but not compatible with mkii
process = processors[currenttype][what]
- elseif depth == 0 then
- -- could be a component, product or (brr) project
- if trace_jobfiles then
- report_jobfiles("%s : %s > %s (case 1)",depth,currenttype,v_outer)
- end
- process = processors[v_outer][what]
- elseif depth == 1 and typestack[1] == v_text then
- -- we're still not doing a component or product
- if trace_jobfiles then
- report_jobfiles("%s : %s > %s (case 2)",depth,currenttype,v_outer)
- end
- process = processors[v_outer][what]
- else
- process = processors[currenttype][what]
- end
+-- elseif depth == 0 then
+-- -- could be a component, product or (brr) project
+-- if trace_jobfiles then
+-- report_jobfiles("%s : %s > %s (case 1)",depth,currenttype,v_outer)
+-- end
+-- process = processors[v_outer][what]
+-- elseif depth == 1 and typestack[1] == v_text then
+-- -- we're still not doing a component or product
+-- if trace_jobfiles then
+-- report_jobfiles("%s : %s > %s (case 2)",depth,currenttype,v_outer)
+-- end
+-- process = processors[v_outer][what]
+-- else
+-- process = processors[currenttype][what]
+-- end
if process then
local method = process[1]
if method == "none" then
@@ -533,15 +533,17 @@ function commands.usecomponent (name) process(v_component, name) end
-- -- todo: setsystemmode to currenttype
local start = {
- [v_project] = context.starttext,
- [v_product] = context.starttext,
- [v_component] = context.starttext,
+ [v_project] = context.starttext,
+ [v_product] = context.starttext,
+ [v_component] = context.starttext,
+ [v_environment] = nil,
}
local stop = {
- [v_project] = context.stoptext,
- [v_product] = context.stoptext,
- [v_component] = context.stoptext,
+ [v_project] = function() context.stoptext() context.signalendofinput(v_project) end,
+ [v_product] = function() context.stoptext() context.signalendofinput(v_product) end,
+ [v_component] = function() context.stoptext() context.signalendofinput(v_component) end,
+ [v_environment] = function() context.signalendofinput(v_environment) end,
}
local function gotonextlevel(what,name) -- todo: something with suffix name
@@ -564,7 +566,8 @@ local function gotopreviouslevel(what)
currentpath = remove(pathstack) or "."
currenttype = remove(typestack) or v_text
remove(stacks[what]) -- not currenttype ... weak recovery
- context.endinput()
+ -- context.endinput() -- does not work
+ context.signalendofinput(what)
end
function commands.startproject (name) gotonextlevel(v_project, name) end
diff --git a/tex/context/base/file-job.mkvi b/tex/context/base/file-job.mkvi
index b33bb9e19..47509754b 100644
--- a/tex/context/base/file-job.mkvi
+++ b/tex/context/base/file-job.mkvi
@@ -137,10 +137,21 @@
\unexpanded\def\dostartcomponent [#name]{\ctxcommand{startcomponent ("#name")}}
\unexpanded\def\dostartenvironment[#name]{\ctxcommand{startenvironment("#name")}}
-\unexpanded\def\stopproject {\ctxcommand{stopproject ()}}
-\unexpanded\def\stopproduct {\ctxcommand{stopproduct ()}}
-\unexpanded\def\stopcomponent {\ctxcommand{stopcomponent ()}}
-\unexpanded\def\stopenvironment {\ctxcommand{stopenvironment()}}
+\newconditional\endofinput % hack, needed because \endinput happens one level down in the input when we write from lua
+
+\unexpanded\def\signalendofinput#1% argument just for tracing
+ {\global\settrue\endofinput}
+
+\unexpanded\def\honorendofinput
+ {\ifconditional\endofinput
+ \global\setfalse\endofinput
+ \endinput
+ \fi}
+
+\unexpanded\def\stopproject {\ctxcommand{stopproject ()}\honorendofinput}
+\unexpanded\def\stopproduct {\ctxcommand{stopproduct ()}\honorendofinput}
+\unexpanded\def\stopcomponent {\ctxcommand{stopcomponent ()}\honorendofinput}
+\unexpanded\def\stopenvironment {\ctxcommand{stopenvironment()}\honorendofinput}
\def\currentproject {\ctxcommand{currentproject ()}}
\def\currentproduct {\ctxcommand{currentproduct ()}}
diff --git a/tex/context/base/m-markdown.mkiv b/tex/context/base/m-markdown.mkiv
index ac862abaa..71bc3442f 100644
--- a/tex/context/base/m-markdown.mkiv
+++ b/tex/context/base/m-markdown.mkiv
@@ -49,7 +49,7 @@
\definedelimitedtext
[markdownblockquote]
- [markdownquotation]
+ [quotation]
\definehighlight
[markdownemphasis]
diff --git a/tex/context/base/meta-imp-fen.mkiv b/tex/context/base/meta-imp-fen.mkiv
index e130f0636..307a59b4d 100644
--- a/tex/context/base/meta-imp-fen.mkiv
+++ b/tex/context/base/meta-imp-fen.mkiv
@@ -15,7 +15,7 @@
%D \CONTEXT\ list and due to request by Aditya has been turned into
%D library.
-\startMPinclusions
+\startMPextensions
vardef BasicBraceSymbol (expr rotation) =
save p ; path p ;
z1 = (-233, 0) ;
@@ -52,6 +52,18 @@
p := p ysized 100 ;
p shifted - center p
enddef ;
+ vardef RawLeftBraceSymbol =
+ fill BasicBraceSymbol(0) ysized OverlayHeight withcolor OverlayColor ;
+ enddef ;
+ vardef RawRightBraceSymbol =
+ fill BasicBraceSymbol(180) ysized OverlayHeight withcolor OverlayColor ;
+ enddef ;
+ vardef RawTopBraceSymbol =
+ fill BasicBraceSymbol(270) xsized OverlayWidth withcolor OverlayColor ;
+ enddef ;
+ vardef RawBottomBraceSymbol =
+ fill BasicBraceSymbol(90) xsized OverlayWidth withcolor OverlayColor ;
+ enddef ;
vardef LeftBraceSymbol =
save p, b ; path p, b ; b := fullsquare xscaled OverlayWidth yscaled OverlayHeight ;
setbounds currentpicture to b ;
@@ -80,7 +92,12 @@
fill p shifted (0,ypart lrcorner currentpicture - ypart lrcorner p) withcolor OverlayColor ;
setbounds currentpicture to b ;
enddef ;
-\stopMPinclusions
+\stopMPextensions
+
+\startuniqueMPgraphic{raw_brace_left} RawLeftBraceSymbol ; \stopuniqueMPgraphic
+\startuniqueMPgraphic{raw_brace_right} RawRightBraceSymbol ; \stopuniqueMPgraphic
+\startuniqueMPgraphic{raw_brace_top} RawTopBraceSymbol ; \stopuniqueMPgraphic
+\startuniqueMPgraphic{raw_brace_bottom} RawBottomBraceSymbol ; \stopuniqueMPgraphic
\startuniqueMPgraphic{brace_left} LeftBraceSymbol ; \stopuniqueMPgraphic
\startuniqueMPgraphic{brace_right} RightBraceSymbol ; \stopuniqueMPgraphic
@@ -92,10 +109,29 @@
\defineoverlay[topbrace] [\uniqueMPgraphic{brace_top}]
\defineoverlay[bottombrace][\uniqueMPgraphic{brace_bottom}]
+\installleftframerenderer {brace}{\uniqueMPgraphic{raw_brace_left}}
+\installrightframerenderer {brace}{\uniqueMPgraphic{raw_brace_right}}
+\installtopframerenderer {brace}{\uniqueMPgraphic{raw_brace_top}}
+\installbottomframerenderer{brace}{\uniqueMPgraphic{raw_brace_bottom}}
+
\continueifinputfile{meta-imp-fen.mkiv}
\starttext
+\startTEXpage[offset=10pt]
+
+ \framed
+ [offset=1ex,
+ leftframe=brace,
+ rightframe=brace,
+ topframe=brace,
+ bottomframe=brace,
+ background=color,
+ backgroundcolor=red]
+ {OEPS}
+
+\stopTEXpage
+
\startTEXpage \uniqueMPgraphic{brace_left} \stopTEXpage
\startTEXpage \uniqueMPgraphic{brace_right} \stopTEXpage
\startTEXpage \uniqueMPgraphic{brace_top} \stopTEXpage
diff --git a/tex/context/base/pack-fen.mkiv b/tex/context/base/pack-fen.mkiv
new file mode 100644
index 000000000..ad25e130e
--- /dev/null
+++ b/tex/context/base/pack-fen.mkiv
@@ -0,0 +1,75 @@
+%D \module
+%D [ file=pack-fen,
+%D version=2011.07.21,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle= Fences for Ruled Content,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Fences for Ruled Content}
+
+% we can move the main fences here too
+
+\unprotect
+
+\def\installleftframerenderer#1#2%
+ {\setvalue{l\@@frame@@\v!on#1}{\whateverleftframe{#2}}%
+ \expandafter\let\csname l\@@frame@@\v!off#1\expandafter\endcsname\csname l\@@frame@@\v!on#1\endcsname}
+
+\def\installrightframerenderer#1#2%
+ {\setvalue{r\@@frame@@\v!on#1}{\whateverrightframe{#2}}%
+ \expandafter\let\csname r\@@frame@@\v!off#1\expandafter\endcsname\csname r\@@frame@@\v!on#1\endcsname}
+
+\def\installtopframerenderer#1#2%
+ {\setvalue{t\@@frame@@\v!on#1}{\whatevertopframe{#2}}%
+ \expandafter\let\csname t\@@frame@@\v!off#1\expandafter\endcsname\csname t\@@frame@@\v!on#1\endcsname}
+
+\def\installbottomframerenderer#1#2%
+ {\setvalue{b\@@frame@@\v!on#1}{\whateverbottomframe{#2}}%
+ \expandafter\let\csname b\@@frame@@\v!off#1\expandafter\endcsname\csname b\@@frame@@\v!on#1\endcsname}
+
+\def\setinstalledframedimensions
+ {\edef\overlayheight{\the\dimexpr\frameddimenht+\frameddimendp}%
+ \edef\overlaywidth {\the\frameddimenwd}}
+
+\newbox\specialframebox
+
+\def\whateverleftframe#1%
+ {\setinstalledframedimensions
+ \setbox\specialframebox\vbox to \overlayheight{\vss#1\vss}%
+ \setbox\specialframebox\hbox to \zeropoint{\box\specialframebox\hss}%
+ \ht\specialframebox\zeropoint
+ \dp\specialframebox\zeropoint
+ \box\specialframebox}
+
+\def\whateverrightframe#1%
+ {\setinstalledframedimensions
+ \setbox\specialframebox\vbox to \overlayheight{\vss#1\vss}%
+ \setbox\specialframebox\hbox to \zeropoint{\hss\box\specialframebox}%
+ \ht\specialframebox\zeropoint
+ \dp\specialframebox\zeropoint
+ \box\specialframebox}
+
+\def\whatevertopframe#1%
+ {\setinstalledframedimensions
+ \setbox\specialframebox\hbox to \overlaywidth{\hss#1\hss}%
+ \setbox\specialframebox\vbox to \zeropoint{\box\specialframebox\vss}%
+ \ht\specialframebox\zeropoint
+ \dp\specialframebox\zeropoint
+ \box\specialframebox
+ \nointerlineskip}
+
+\def\whateverbottomframe#1%
+ {\setinstalledframedimensions
+ \setbox\specialframebox\hbox to \overlaywidth{\hss#1\hss}%
+ \setbox\specialframebox\vbox to \zeropoint{\vss\box\specialframebox}%
+ \ht\specialframebox\zeropoint
+ \dp\specialframebox\zeropoint
+ \box\specialframebox}
+
+\protect \endinput
diff --git a/tex/context/base/pack-rul.mkiv b/tex/context/base/pack-rul.mkiv
index c07331a8b..1afc498a3 100644
--- a/tex/context/base/pack-rul.mkiv
+++ b/tex/context/base/pack-rul.mkiv
@@ -476,18 +476,21 @@
\dostrokedroundbox
\fi\fi}
-\def\dostrokedlinedbox
+
+\def\dostrokedlinedbox % will move to pack-rul
{\setbox\scratchbox\emptyhbox
\wd\scratchbox\frameddimenwd
\ht\scratchbox\frameddimenht
\dp\scratchbox\frameddimendp
\setbox\scratchbox\vbox \bgroup
\csname t\@@frame@@\framedparameter\c!frame\framedparameter\c!topframe \endcsname
+\nointerlineskip % new (needed for fences), maybe \offinterlineskip
\hbox \bgroup
\csname l\@@frame@@\framedparameter\c!frame\framedparameter\c!leftframe \endcsname
\box\scratchbox
\csname r\@@frame@@\framedparameter\c!frame\framedparameter\c!rightframe \endcsname
\egroup
+\nointerlineskip % new (needed for fences)
\csname b\@@frame@@\framedparameter\c!frame\framedparameter\c!bottomframe\endcsname
\egroup
\wd\scratchbox\frameddimenwd
@@ -497,19 +500,6 @@
\def\@@frame@@{@@frame@@}
-% \setvalue{t\@@frame@@\v!on \v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{t\@@frame@@\v!off\v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{t\@@frame@@\v!on }{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{b\@@frame@@\v!on \v!on}{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
-% \setvalue{b\@@frame@@\v!off\v!on}{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
-% \setvalue{b\@@frame@@\v!on }{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
-% \setvalue{l\@@frame@@\v!on \v!on}{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{l\@@frame@@\v!off\v!on}{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{l\@@frame@@\v!on }{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{r\@@frame@@\v!on \v!on}{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
-% \setvalue{r\@@frame@@\v!off\v!on}{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
-% \setvalue{r\@@frame@@\v!on }{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
-
\def\@@frame@@trule{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
\def\@@frame@@brule{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
\def\@@frame@@rrule{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 2ddaeab2c..c7141d863 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 025410651..90891fed7 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ