summaryrefslogtreecommitdiff
path: root/tex/context/base
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2015-08-10 20:15:04 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2015-08-10 20:15:04 +0200
commitec4dce665a02c1243ff358b84df1ecfb6ceb5594 (patch)
treea32128e86b5ea6bf24bdffbc0350e550fcc4c373 /tex/context/base
parent4222a7a7565a6cfce6e9acf98290d9e24b6d36a7 (diff)
downloadcontext-ec4dce665a02c1243ff358b84df1ecfb6ceb5594.tar.gz
2015-08-10 19:48:00
Diffstat (limited to 'tex/context/base')
-rw-r--r--tex/context/base/back-exp.lua78
-rw-r--r--tex/context/base/back-exp.mkiv14
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4204 -> 4207 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/export-example.css26
-rw-r--r--tex/context/base/mult-def.mkiv4
-rw-r--r--tex/context/base/page-txt.mkvi4
-rw-r--r--tex/context/base/s-fonts-charts.mkiv204
-rw-r--r--tex/context/base/status-files.pdfbin24444 -> 24430 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin255469 -> 255546 bytes
-rw-r--r--tex/context/base/strc-tag.lua21
-rw-r--r--tex/context/base/strc-tag.mkiv4
-rw-r--r--tex/context/base/typo-cap.lua5
-rw-r--r--tex/context/base/typo-del.mkiv99
15 files changed, 412 insertions, 51 deletions
diff --git a/tex/context/base/back-exp.lua b/tex/context/base/back-exp.lua
index 27b4db8ef..24b1d9457 100644
--- a/tex/context/base/back-exp.lua
+++ b/tex/context/base/back-exp.lua
@@ -19,7 +19,6 @@ if not modules then modules = { } end modules ['back-exp'] = {
-- tocs/registers -> maybe add a stripper (i.e. just don't flush entries in final tree)
-- footnotes -> css 3
-- bodyfont -> in styles.css
--- delimited -> left/right string (needs marking)
-- Because we need to look ahead we now always build a tree (this was optional in
-- the beginning). The extra overhead in the frontend is neglectable.
@@ -35,11 +34,11 @@ if not modules then modules = { } end modules ['back-exp'] = {
-- check setting __i__
local next, type, tonumber = next, type, tonumber
-local concat, sub, gsub = table.concat, string.sub, string.gsub
+local sub, gsub = string.sub, string.gsub
local validstring = string.valid
local lpegmatch = lpeg.match
local utfchar, utfvalues = utf.char, utf.values
-local insert, remove = table.insert, table.remove
+local concat, insert, remove, merge = table.concat, table.insert, table.remove, table.merge
local sortedhash = table.sortedhash
local formatters = string.formatters
local todimen = number.todimen
@@ -139,8 +138,7 @@ local specifications = structurestags.specifications
local properties = structurestags.properties
local locatedtag = structurestags.locatedtag
-local usewithcare = { }
-structurestags.usewithcare = usewithcare
+structurestags.usewithcare = { }
local starttiming = statistics.starttiming
local stoptiming = statistics.stoptiming
@@ -314,7 +312,6 @@ function wrapups.hashlistdata()
local tag = ci.references.tag
if tag then
local m = ci.metadata
--- listdata[m.kind .. ":" .. m.name .. "-" .. tag] = ci
listdata[m.kind .. ">" .. tag] = ci
end
end
@@ -631,6 +628,44 @@ end
do
+ local symbols = { }
+
+ function structurestags.settagdelimitedsymbol(symbol)
+ symbols[locatedtag("delimitedsymbol")] = {
+ symbol = symbol,
+ }
+ end
+
+ function extras.delimitedsymbol(di,element,n,fulltag)
+ local hash = symbols[fulltag]
+ if hash then
+ setattribute(di,"symbol",hash.symbol or nil)
+ end
+ end
+
+end
+
+do
+
+ local symbols = { }
+
+ function structurestags.settagsubsentencesymbol(symbol)
+ symbols[locatedtag("subsentencesymbol")] = {
+ symbol = symbol,
+ }
+ end
+
+ function extras.subsentencesymbol(di,element,n,fulltag)
+ local hash = symbols[fulltag]
+ if hash then
+ setattribute(di,"symbol",hash.symbol or nil)
+ end
+ end
+
+end
+
+do
+
local itemgroups = { }
function structurestags.setitemgroup(packed,level,symbol)
@@ -774,11 +809,11 @@ end
do
- local image = { }
- usedimages.image = image
- usewithcare.images = image
+ local f_id = formatters["%s-%s"]
+ local image = { }
+ usedimages.image = image
- local f_id = formatters["%s-%s"]
+ structurestags.usewithcare.images = image
function structurestags.setfigure(name,used,page,width,height,label)
local fulltag = locatedtag("image")
@@ -3196,13 +3231,16 @@ local htmltemplate = [[
at.href = nil
at.detail = nil
at.chain = nil
+ elseif tg == "metavariable" then
+ at.detail = "metaname-" .. at.name
+ class = makeclass(tg,at)
else
class = makeclass(tg,at)
end
- local id = at.id
- local href = at.href
+ local id = at.id
+ local href = at.href
if id then
- id = lpegmatch(p_cleanid, id) or id
+ id = lpegmatch(p_cleanid, id) or id
if href then
href = lpegmatch(p_cleanhref,href) or href
c.at = {
@@ -3515,7 +3553,7 @@ local htmltemplate = [[
local enableaction = nodes.tasks.enableaction
function structurestags.setupexport(t)
- table.merge(finetuning,t)
+ merge(finetuning,t)
keephyphens = finetuning.hyphen == v_yes
exportproperties = finetuning.properties
if exportproperties == v_no then
@@ -3596,6 +3634,18 @@ implement {
}
implement {
+ name = "settagdelimitedsymbol",
+ actions = structurestags.settagdelimitedsymbol,
+ arguments = "string"
+}
+
+implement {
+ name = "settagsubsentencesymbol",
+ actions = structurestags.settagsubsentencesymbol,
+ arguments = "string"
+}
+
+implement {
name = "settagsynonym",
actions = structurestags.setsynonym,
arguments = "string"
diff --git a/tex/context/base/back-exp.mkiv b/tex/context/base/back-exp.mkiv
index ed521e652..9a932043f 100644
--- a/tex/context/base/back-exp.mkiv
+++ b/tex/context/base/back-exp.mkiv
@@ -188,6 +188,20 @@
\to \everyenableelements
\appendtoks
+ \unexpanded\def\dotagsetdelimitedsymbol#1%
+ {\iftrialtypesetting\else
+ \clf_settagdelimitedsymbol{#1}\relax
+ \fi}%
+\to \everyenableelements
+
+\appendtoks
+ \unexpanded\def\dotagsetsubsentencesymbol#1%
+ {\iftrialtypesetting\else
+ \clf_settagsubsentencesymbol{#1}\relax
+ \fi}%
+\to \everyenableelements
+
+\appendtoks
\let\specialfixedspace \explicitfixedspace
\let\specialobeyedspace \explicitobeyedspace
\let\specialstretchedspace\explicitstretchedspace
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index e3ad1e54b..1dd6f16ae 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.08.10 13:49}
+\newcontextversion{2015.08.10 19:46}
%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 d39ae1fe3..36281b2ef 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 6613a54fa..4b062f46e 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.08.10 13:49}
+\edef\contextversion{2015.08.10 19:46}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/export-example.css b/tex/context/base/export-example.css
index f44755892..8c7ae3bfc 100644
--- a/tex/context/base/export-example.css
+++ b/tex/context/base/export-example.css
@@ -560,9 +560,13 @@ listpage, context|div.listpage {
display : none ;
}
-/* delimitedblock : display */
-/* delimited : inline */
-/* subsentence : inline */
+/* delimitedblock : display */
+/* delimited : inline */
+/* delimitedsymbol : inline */
+/* delimitedcontent : inline */
+/* subsentence : inline */
+/* subsentencesymbol : inline */
+/* subsentencecontent : inline */
/* :lang(en) */
@@ -594,6 +598,14 @@ delimited, context|div.delimited {
display : inline
}
+delimitedcontent, context|div.delimitedcontent {
+ display : inline
+}
+
+delimitedsymbol, context|div.delimitedsymbol {
+ display : inline
+}
+
delimitedblock, context|div.delimitedblock {
display : block
}
@@ -606,6 +618,14 @@ subsentence, context|div.subsentence {
display : inline
}
+subsentencecontent, context|div.subsentencecontent {
+ display : inline
+}
+
+subsentencesymbol, context|div.subsentencesymbol {
+ display : inline
+}
+
/* label : mixed */
/* number : mixed */
diff --git a/tex/context/base/mult-def.mkiv b/tex/context/base/mult-def.mkiv
index c6e39e67b..058bc68db 100644
--- a/tex/context/base/mult-def.mkiv
+++ b/tex/context/base/mult-def.mkiv
@@ -155,6 +155,10 @@
\def\s!traditional {traditional}
+\def\s!left {left}
+\def\s!middle {middle}
+\def\s!right {right}
+
\def\c!HL {HL}
\def\c!VL {VL}
\def\c!NL {NL}
diff --git a/tex/context/base/page-txt.mkvi b/tex/context/base/page-txt.mkvi
index 76143a018..7bcf0d014 100644
--- a/tex/context/base/page-txt.mkvi
+++ b/tex/context/base/page-txt.mkvi
@@ -880,7 +880,7 @@
% page-spr we overload the the stored version .. evenatually i will
% clear up the experimental mess
-\def\settextpagecontent#1#2#3% #2 and #3 will disappear
+\def\settextpagecontent#1#2#3% #2 and #3 will disappear / is overloaded
{\setbox#1\hbox to \makeupwidth
{\hss % so don't change this
\setlayoutcomponentattribute{\v!page:\v!text}%
@@ -890,7 +890,7 @@
\hsize\textwidth % local variant of \sethsize <<< in columns?
\boxmaxdepth\maxdepth
\noindent % content can be < \hsize
- \dopagecontents#2#3}%
+ \page_otr_command_package_contents#2#3}%
\hss}%
\dp#1\zeropoint}
diff --git a/tex/context/base/s-fonts-charts.mkiv b/tex/context/base/s-fonts-charts.mkiv
new file mode 100644
index 000000000..e94b52a2e
--- /dev/null
+++ b/tex/context/base/s-fonts-charts.mkiv
@@ -0,0 +1,204 @@
+%D \module
+%D [ file=s-fonts-charts,
+%D version=2015.08.08,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Show Fonts Charts,
+%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.
+
+% begin info
+%
+% title : show unicode blocks
+%
+% comment : show charts of a given fgont
+%
+% end info
+
+\startmodule[fonts-charts]
+
+% \registerctxluafile{s-fonts-charts}{}
+\starttexdefinition unexpanded FontChartSetSlot #1#2
+ \dontleavehmode
+ \setbox\scratchbox\vbox to 1cm \bgroup
+ \vss
+ \hbox to 1cm \bgroup
+ \infofont \hss\raise.25mm\hbox{#2}\hss
+ \egroup
+ \egroup
+ \wd\scratchbox0mm
+ \ht\scratchbox5mm
+ \dp\scratchbox5mm
+ \box\scratchbox
+ \setbox\scratchbox\ruledhbox to 1cm \bgroup
+ \hss\char#1\hss
+ \egroup
+ \ht\scratchbox5mm
+ \dp\scratchbox5mm
+ \box\scratchbox
+\stoptexdefinition
+
+\starttexdefinition unexpanded FontChartNoSlot
+ \dontleavehmode
+ \setbox\scratchbox\hbox to 1cm \bgroup
+ % empty
+ \egroup
+ \ht\scratchbox5mm
+ \dp\scratchbox5mm
+ \box\scratchbox
+\stoptexdefinition
+
+\starttexdefinition unexpanded FontChartSetLegend #1
+ \dontleavehmode
+ \setbox\scratchbox\hbox to 1cm \bgroup
+ \infofont\hss#1\hss
+ \egroup
+ \ht\scratchbox5mm
+ \dp\scratchbox5mm
+ \box\scratchbox
+\stoptexdefinition
+
+\starttexdefinition unexpanded FontChartSetCaption #1#2
+ \dontleavehmode
+ \setbox\scratchbox\hbox to 16cm \bgroup
+ \infofontbold\hskip1cm#1: #2\hss
+ \egroup
+ \ht\scratchbox7.5mm
+ \dp\scratchbox2.5mm
+ \box\scratchbox
+\stoptexdefinition
+
+\starttexdefinition unexpanded FontChartGap
+ \kern .5mm
+\stoptexdefinition
+
+\startluacode
+ local div, mod = math.div, math.mod
+ local formatters = string.formatters
+
+ moduledata.fonts = moduledata.fonts or { }
+ moduledata.fonts.charts = moduledata.fonts.charts or { }
+
+ function moduledata.fonts.charts.show(settings)
+
+ local settings = utilities.parsers.settings_to_hash(settings)
+
+ local filename = settings.filename or ""
+ local fontid = true
+ local newpage = settings.page == interfaces.variables.yes
+
+ if filename ~= "" then
+ fontid = fonts.definers.internal({ name = filename, size = "10pt" },"chartfont")
+ end
+
+ local ranges = { }
+ local data = fonts.hashes.identifiers[fontid]
+ local private = fonts.constructors.privateoffset
+ local chars = data.characters
+
+ for u in table.sortedhash(chars) do
+ if u >= private then
+ break
+ else
+ ranges[div(u,0xFF)] = true
+ end
+ end
+
+ local ctx_setlegend = context.FontChartSetLegend
+ local ctx_noslot = context.FontChartNoSlot
+ local ctx_setslot = context.FontChartSetSlot
+ local ctx_setcaption = context.FontChartSetCaption
+ local ctx_par = context.par
+ local ctx_gap = context.FontChartGap
+
+ for r in table.sortedhash(ranges) do
+ if newpage then
+ context.page()
+ end
+ context.startframed { offset = "overlay", frame = "off", align = "normal" }
+ if filename ~= "" then
+ context.chartfont()
+ end
+ context.dontcomplain()
+ context.offinterlineskip()
+ ctx_noslot()
+ for i=0,0xF do
+ ctx_setlegend(formatters["%03X"](r*0x10+i))
+ end
+ r = r * 0xFF
+ ctx_par()
+ for i=0,0xF do
+ ctx_setlegend(formatters["%0X"](i))
+ ctx_gap()
+ for j=0,0xF do
+ local u = r + i*0x10 + j
+ local d = chars[u]
+ if d then
+ ctx_setslot(u,formatters["%04X"](u))
+ else
+ ctx_noslot()
+ end
+ if j ~= 0xF then
+ ctx_gap()
+ end
+ end
+ ctx_par()
+ ctx_gap()
+ end
+ ctx_setcaption(formatters["%04X-%04X"](r,r+0xFF),file.basename(data.properties.filename))
+ ctx_par()
+ context.stopframed()
+ if newpage then
+ context.page()
+ end
+ end
+ end
+\stopluacode
+
+\installmodulecommandluasingle \showfontchart {moduledata.fonts.charts.show}
+
+\stopmodule
+
+\continueifinputfile{s-fonts-charts.mkiv}
+
+\usemodule[art-01]
+
+\starttext
+
+ \showfontchart[filename=LucidaBrightOT.otf,page=yes]
+ \showfontchart[filename=LucidaBrightOT-Demi.otf,page=yes]
+ \showfontchart[filename=LucidaBrightOT-DemiItalic.otf,page=yes]
+ \showfontchart[filename=LucidaBrightOT-Italic.otf,page=yes]
+
+ \showfontchart[filename=LucidaSansOT.otf,page=yes]
+ \showfontchart[filename=LucidaSansOT-Demi.otf,page=yes]
+ \showfontchart[filename=LucidaSansOT-DemiItalic.otf,page=yes]
+ \showfontchart[filename=LucidaSansOT-Italic.otf,page=yes]
+
+ \showfontchart[filename=LucidaSansTypewriterOT.otf,page=yes]
+ \showfontchart[filename=LucidaSansTypewriterOT-Bold.otf,page=yes]
+ \showfontchart[filename=LucidaSansTypewriterOT-BoldOblique.otf,page=yes]
+ \showfontchart[filename=LucidaSansTypewriterOT-Oblique.otf,page=yes]
+
+ \showfontchart[filename=LucidaConsoleDK.otf,page=yes]
+ \showfontchart[filename=LucidaConsoleDK-Bold.otf,page=yes]
+ \showfontchart[filename=LucidaConsoleDK-BoldItalic.otf,page=yes]
+ \showfontchart[filename=LucidaConsoleDK-Italic.otf,page=yes]
+
+ \showfontchart[filename=LucidaGrandeMonoDK.otf,page=yes]
+ \showfontchart[filename=LucidaGrandeMonoDK-Bold.otf,page=yes]
+ \showfontchart[filename=LucidaGrandeMonoDK-BoldItalic.otf,page=yes]
+ \showfontchart[filename=LucidaGrandeMonoDK-Italic.otf,page=yes]
+
+ \showfontchart[filename=LucidaBrightMathOT.otf,page=yes]
+ \showfontchart[filename=LucidaBrightMathOT-Demi.otf,page=yes]
+
+ \showfontchart[filename=LucidaBlackletterOT.otf,page=yes]
+ \showfontchart[filename=LucidaCalligraphyOT.otf,page=yes]
+ \showfontchart[filename=LucidaHandwritingOT.otf,page=yes]
+
+\stoptext
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index c12e9102d..0f6019d35 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 b98019d2b..4858ca475 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-tag.lua b/tex/context/base/strc-tag.lua
index 637d74e8c..967b0d63b 100644
--- a/tex/context/base/strc-tag.lua
+++ b/tex/context/base/strc-tag.lua
@@ -12,7 +12,7 @@ if not modules then modules = { } end modules ['strc-tag'] = {
-- end of the chain tag) or by so called fullname which is a tagname combined with a number.
local type, next = type, next
-local insert, remove, unpack, concat = table.insert, table.remove, table.unpack, table.concat
+local insert, remove, unpack, concat, merge = table.insert, table.remove, table.unpack, table.concat, table.merge
local find, topattern, format = string.find, string.topattern, string.format
local lpegmatch, P, S, C, Cc = lpeg.match, lpeg.P, lpeg.S, lpeg.C, lpeg.Cc
local texattribute = tex.attribute
@@ -45,6 +45,7 @@ local tagpatterns = { }
local lasttags = { }
local stacksize = 0
local metadata = nil -- applied to the next element
+local documentdata = { }
local tags = structures.tags
tags.taglist = taglist -- can best be hidden
@@ -127,7 +128,11 @@ local properties = allocate {
delimitedblock = { pdf = "BlockQuote", nature = "display" },
delimited = { pdf = "Quote", nature = "inline" },
+ delimitedcontent = { pdf = "Span", nature = "inline" },
+ delimitedsymbol = { pdf = "Span", nature = "inline" },
subsentence = { pdf = "Span", nature = "inline" },
+ subsentencecontent = { pdf = "Span", nature = "inline" },
+ subsentencesymbol = { pdf = "Span", nature = "inline" },
label = { pdf = "Span", nature = "mixed" },
number = { pdf = "Span", nature = "mixed" },
@@ -266,10 +271,14 @@ end
function tags.registermetadata(data)
local d = settings_to_hash(data)
- if metadata then
- table.merge(metadata,d)
+ if #chain > 1 then
+ if metadata then
+ merge(metadata,d)
+ else
+ metadata = d
+ end
else
- metadata = d
+ merge(documentdata,d)
end
end
@@ -331,6 +340,10 @@ function tags.start(tag,specification)
taglist[attribute] = specification
specifications[completetag] = specification
--
+ if completetag == "document>1" then
+ specification.metadata = documentdata
+ end
+ --
texattribute[a_tagged] = attribute
return attribute
end
diff --git a/tex/context/base/strc-tag.mkiv b/tex/context/base/strc-tag.mkiv
index bb1fe200d..c9132bf04 100644
--- a/tex/context/base/strc-tag.mkiv
+++ b/tex/context/base/strc-tag.mkiv
@@ -109,7 +109,11 @@
\def\t!delimitedblock {delimited} % BlockQuote
\def\t!delimited {delimited} % Quote
+\def\t!delimitedsymbol {delimitedsymbol} % Span
+\def\t!delimitedcontent {delimitedcontent} % Span
\def\t!subsentence {subsentence} % Span
+\def\t!subsentencecontent {subsentencecontent} % Span
+\def\t!subsentencesymbol {subsentencesymbol} % Span
\def\t!float {float} % Div
\def\t!floatcaption {floatcaption} % Caption
diff --git a/tex/context/base/typo-cap.lua b/tex/context/base/typo-cap.lua
index 80a74bac9..eaf14bd63 100644
--- a/tex/context/base/typo-cap.lua
+++ b/tex/context/base/typo-cap.lua
@@ -83,7 +83,9 @@ local function set(tag,font)
else
run = run + 1
end
- return font * 0x10000 + tag * 0x100 + run
+ local a = font * 0x10000 + tag * 0x100 + run
+ blocked[a] = false
+ return a
end
local function get(a)
@@ -93,6 +95,7 @@ local function get(a)
return tag, font, run
end
+
-- print(get(set( 1, 0)))
-- print(get(set( 1, 99)))
-- print(get(set( 2, 96)))
diff --git a/tex/context/base/typo-del.mkiv b/tex/context/base/typo-del.mkiv
index 4c3c5ab3d..974bc402d 100644
--- a/tex/context/base/typo-del.mkiv
+++ b/tex/context/base/typo-del.mkiv
@@ -15,6 +15,9 @@
\unprotect
+\ifdefined\dotagsetdelimitedsymbol \else \let\dotagsetdelimitedsymbol \gobbleoneargument \fi
+\ifdefined\dotagsetsubsentencesymbol \else \let\dotagsetsubsentencesymbol\gobbleoneargument \fi
+
% THIS IS OBSOLETE:
\installcorenamespace{hyphenmarksign} % let's not waste a setuphandler (yet)
@@ -136,7 +139,10 @@
% \def\aftersubsentence {\ignorespaces}
\unexpanded\def\midsentence
- {\symbol[\c!midsentence]}
+ {\dostarttagged\t!subsentencesymbol\empty
+ \dotagsetsubsentencesymbol\s!middle
+ \symbol[\c!midsentence]%
+ \dostoptagged}
\unexpanded\def\beginofsubsentence
{\beforesubsentence
@@ -149,11 +155,19 @@
\dontleavehmode % was \leaveoutervmode
\fi
\dostarttagged\t!subsentence\empty % no chain
+ \dostarttagged\t!subsentencesymbol\empty
+ \dotagsetsubsentencesymbol\s!left
\symbol[\ifodd\c_typo_subsentence_nesting\c!leftsentence\else\c!leftsubsentence\fi]%
+ \dostoptagged
+ \dostarttagged\t!subsentencecontent\empty
}% \ignorespaces}
\unexpanded\def\endofsubsentence % relax prevents space gobbling
- {\symbol[\ifodd\c_typo_subsentence_nesting\c!rightsentence\else\c!rightsubsentence\fi]%
+ {\dostoptagged
+ \dostarttagged\t!subsentencesymbol\empty
+ \dotagsetsubsentencesymbol\s!right
+ \symbol[\ifodd\c_typo_subsentence_nesting\c!rightsentence\else\c!rightsubsentence\fi]%
+ \dostoptagged
\dostoptagged
\global\advance\c_typo_subsentence_nesting\minusone
\unskip
@@ -237,13 +251,11 @@
\def\quote #1{'#1'}%
\to \everysimplifycommands
-%D The next features was so desperately needed by Giuseppe
-%D Bilotta that he made a module for it. Since this is a
-%D typical example of core functionality, I decided to extend
-%D the low level quotation macros in such a way that a speech
-%D feature could be build on top of it. The speech opening and
-%D closing symbols are defined per language. Italian is an
-%D example of a language that has them set.
+%D The next features was so desperately needed by Giuseppe Bilotta that he made a
+%D module for it. Since this is a typical example of core functionality, I decided
+%D to extend the low level quotation macros in such a way that a speech feature
+%D could be build on top of it. The speech opening and closing symbols are defined
+%D per language. Italian is an example of a language that has them set.
\newsignal\d_typo_delimited_signal
@@ -318,7 +330,10 @@
\def\typo_delimited_start_font
{\let\typo_delimited_stop\typo_delimitedtexts_finish_font
+ \dostarttagged\t!delimitedsymbol\empty
+ \dotagsetdelimitedsymbol\s!left
\delimitedtextparameter\c!left
+ \dostoptagged
\ignorespaces}
\def\typo_delimited_start_other
@@ -338,7 +353,11 @@
\fi\fi}
\def\typo_delimitedtexts_finish_font
- {\removeunwantedspaces\delimitedtextparameter\c!right}
+ {\removeunwantedspaces
+ \dostarttagged\t!delimitedsymbol\empty
+ \dotagsetdelimitedsymbol\s!right
+ \delimitedtextparameter\c!right
+ \dostoptagged}
\def\typo_delimited_start_par
{\dosingleempty\typo_delimited_start_par_indeed}
@@ -379,11 +398,13 @@
\setnextleftdelimitedtextmark
\setnextrightdelimitedtextmark
%
- \ignorespaces}
+ \ignorespaces
+ \dostarttagged\t!delimitedcontent\empty}
\def\typo_delimited_stop_par
{\removeunwantedspaces
\removelastskip
+ \dostoptagged
\rightdelimitedtextmark
\carryoverpar\endgroup % new per 2013-01-21 ... please left floats
\popmacro\checkindentation
@@ -401,10 +422,12 @@
\begingroup
\usedelimitedtextstyleandcolor\c!style\c!color
\typo_delimited_handle_left\c!left
- \ignorespaces}
+ \ignorespaces
+ \dostarttagged\t!delimitedcontent\empty}
\def\typo_delimited_stop_txt
{\removeunwantedspaces
+ \dostoptagged
\typo_delimited_handle_right\c!right
\endgroup}
@@ -499,16 +522,22 @@
\fi}
\def\typo_delimited_left_symbol#1%
- {\setbox\scratchbox\hbox{\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor#1}%
+ {\dostarttagged\t!delimitedsymbol\empty
+ \dotagsetdelimitedsymbol\s!left
+ \setbox\scratchbox\hbox{\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor#1}%
\dontleavehmode
\edef\p_delimited_margin{\delimitedtextparameter\c!location}%
\ifx\p_delimited_margin\v!margin
\hskip-\wd\scratchbox
\fi
- \box\scratchbox}
+ \box\scratchbox
+ \dostoptagged}
\def\typo_delimited_right_symbol#1%
- {\hsmash{\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor#1}}
+ {\dostarttagged\t!delimitedsymbol\empty
+ \dotagsetdelimitedsymbol\s!right
+ \hsmash{\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor#1}%
+ \dostoptagged}
\def\typo_delimited_nextleft_symbol#1%
{\localleftbox\bgroup
@@ -538,7 +567,8 @@
% \stoptext
\def\typo_delimited_handle_middle#1%
- {\begingroup
+ {\dostoptagged
+ \begingroup
\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor
\setbox\scratchbox\hbox{\delimitedtextparameter#1}%
\ifdim\wd\scratchbox>\zeropoint
@@ -551,11 +581,15 @@
\hskip\zeropoint % == \prewordbreak
\fi
\strut % new, needed below
+ \dostarttagged\t!delimitedsymbol\empty
+ \dotagsetdelimitedsymbol\s!middle
\delimitedtextparameter#1% unhbox\scratchbox
+ \dostoptagged
% \penalty\plustenthousand % else overfull boxes, but that's better than dangling periods
\kern\d_typo_delimited_signal % +- \prewordbreak
\fi
- \endgroup}
+ \endgroup
+ \dostarttagged\t!delimitedcontent\empty}
\def\typo_delimited_handle_left#1%
{\begingroup
@@ -575,7 +609,10 @@
\hskip\zeropoint % == \prewordbreak
\fi
\strut % new, needed below
+ \dostarttagged\t!delimitedsymbol\empty
+ \dotagsetdelimitedsymbol\s!left
\delimitedtextparameter#1% unhbox\scratchbox
+ \dostoptagged
\penalty\plustenthousand % new per 2013-03-09 WS mailing list
\hskip\d_typo_delimited_signal % +- \prewordbreak
\fi
@@ -600,7 +637,10 @@
\hskip\zeropoint % == \prewordbreak
\fi
\strut % new, needed below
+ \dostarttagged\t!delimitedsymbol\empty
+ \dotagsetdelimitedsymbol\s!right
\delimitedtextparameter#1% unhbox\scratchbox
+ \dostoptagged
\kern\d_typo_delimited_signal % +- \prewordbreak
\fi
\endgroup}
@@ -608,8 +648,10 @@
\unexpanded\def\typo_delimited_par
{\groupedcommand
{\dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext % block?
- \typo_delimited_handle_left\c!left}
- {\typo_delimited_handle_right\c!right
+ \typo_delimited_handle_left\c!left
+ \dostarttagged\t!delimitedcontent\empty}
+ {\dostoptagged
+ \typo_delimited_handle_right\c!right
\removelastskip
\dostoptagged
\typo_delimited_pop}}
@@ -657,29 +699,36 @@
\def\typo_delimited_quoted_b
{\dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
\typo_delimited_handle_left\c!left
- \usedelimitedtextstyleandcolor\c!style\c!color}
+ \usedelimitedtextstyleandcolor\c!style\c!color
+ \dostarttagged\t!delimitedcontent\empty}
\def\typo_delimited_quoted_e
- {\typo_delimited_handle_right\c!right
- \removelastskip
+ {\dostoptagged
+ \typo_delimited_handle_right\c!right
+ \removelastskip % ?
\dostoptagged
\typo_delimited_pop}
\def\typo_delimited_attributed_b
{\dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
- \usedelimitedtextstyleandcolor\c!style\c!color}
+ \usedelimitedtextstyleandcolor\c!style\c!color
+ \dostarttagged\t!delimitedcontent\empty
+ \ignorespaces}
\def\typo_delimited_attributed_e
{\dostoptagged
+ \dostoptagged
\typo_delimited_pop}
\def\typo_delimited_fontdriven_b
{\dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
\usedlanguageparameter{\c!left\currentparentdelimitedtext}% was: \currentdelimitedtext
- \usedelimitedtextstyleandcolor\c!style\c!color}
+ \usedelimitedtextstyleandcolor\c!style\c!color
+ \dostarttagged\t!delimitedcontent\empty}
\def\typo_delimited_fontdriven_e
- {\usedlanguageparameter{\c!right\currentparentdelimitedtext}% was: \currentdelimitedtext
+ {\dostoptagged
+ \usedlanguageparameter{\c!right\currentparentdelimitedtext}% was: \currentdelimitedtext
\dostoptagged
\typo_delimited_pop}