summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/typo-del.mkiv
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2016-07-18 17:05:11 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2016-07-18 17:05:11 +0200
commit50928735daee408de73737b055b2535d96424824 (patch)
treea16ca5d16734b5bc146f053fe0368e61f4c72400 /tex/context/base/mkiv/typo-del.mkiv
parent3eb2d078f0023266585aec42d98326d72567b9d6 (diff)
downloadcontext-50928735daee408de73737b055b2535d96424824.tar.gz
2016-07-18 16:51:00
Diffstat (limited to 'tex/context/base/mkiv/typo-del.mkiv')
-rw-r--r--tex/context/base/mkiv/typo-del.mkiv177
1 files changed, 124 insertions, 53 deletions
diff --git a/tex/context/base/mkiv/typo-del.mkiv b/tex/context/base/mkiv/typo-del.mkiv
index eb51a06e1..4c6d374a6 100644
--- a/tex/context/base/mkiv/typo-del.mkiv
+++ b/tex/context/base/mkiv/typo-del.mkiv
@@ -267,10 +267,41 @@
\def\c_typo_delimited_nesting{\csname\??delimitedtextlevel\currentparentdelimitedtext\endcsname}
-\def\typo_delimited_push#1%
- {\globalpushmacro\currentdelimitedtext
- \def\currentdelimitedtext{#1}%
- \setlanguageparameter\delimitedtextparameter
+% the \setlanguageparameter macro sets but we are ungrouped .. only used here
+%
+% \currentusedlanguage
+% \usedlanguageparameter
+
+\let\currentdelimitedlanguage\empty
+
+\def\typo_delimited_push#1#2%
+ {\globalpushmacro\currentdelimitedtext % can we combine these two
+ \globalpushmacro\currentdelimitedlanguage
+ \edef\currentdelimitedtext{#1}%
+ \edef\m_delimited_argument{#2}%
+ \expandafter\splitstring\m_delimited_argument\at:\to\outerdelimitedlanguage\and\innerdelimitedlanguage
+ \edef\m_delimited_argument_checked{\outerdelimitedlanguage:}%
+ \ifx\m_delimited_argument\m_delimited_argument_checked
+ \let\currentdelimitedlanguage\empty
+ \setlanguageparameter\delimitedtextparameter
+ \else
+ \ifx\innerdelimitedlanguage\empty
+ \let\currentdelimitedlanguage\empty
+ \else
+ \doiflanguageelse\innerdelimitedlanguage
+ {\let\currentdelimitedlanguage\innerdelimitedlanguage
+ \let\m_delimited_argument\empty}%
+ {\let\currentdelimitedlanguage\empty}%
+ \fi
+ \ifx\outerdelimitedlanguage\empty
+ \setlanguageparameter\delimitedtextparameter
+ \else
+ \doiflanguageelse\outerdelimitedlanguage
+ {\let\currentlanguage\outerdelimitedlanguage
+ \let\m_delimited_argument\empty}%
+ {\setlanguageparameter\delimitedtextparameter}%
+ \fi
+ \fi
\let\currentparentdelimitedtext\currentdelimitedtext
\global\advance\c_typo_delimited_nesting\plusone
\edef\delimitedtextlevel{\number\c_typo_delimited_nesting}%
@@ -279,6 +310,7 @@
\def\typo_delimited_pop
{\global\advance\c_typo_delimited_nesting\minusone
+ \globalpopmacro\currentdelimitedlanguage
\globalpopmacro\currentdelimitedtext}
\installcorenamespace{delimitedtext}
@@ -308,6 +340,7 @@
\c!right=,
%\c!level=0,
\c!method=,
+ %\c!language\v!local,
\c!repeat=\v!no]
\def\typo_delimited_repeat_ideed
@@ -317,9 +350,12 @@
\let\typo_delimited_repeat\relax
-\unexpanded\def\startdelimitedtext[#1]%
+\unexpanded\def\startdelimitedtext
+ {\dodoubleempty\typo_delimited_text_start}
+
+\unexpanded\def\typo_delimited_text_start[#1][#2]%
{\begingroup
- \typo_delimited_push{#1}%
+ \typo_delimited_push{#1}{#2}%
\dostarttaggedchained\t!delimitedblock\currentdelimitedtext\??delimitedtext
\edef\p_delimited_method{\delimitedtextparameter\c!method}%
\ifx\p_delimited_method\s!font
@@ -355,12 +391,40 @@
\fi\fi}
\def\typo_delimitedtexts_finish_font
- {\removeunwantedspaces
+ {\removeunwantedspaces % again ?
\dostarttagged\t!delimitedsymbol\empty
\dotagsetdelimitedsymbol\s!right
\delimitedtextparameter\c!right
\dostoptagged}
+\def\typo_delimited_show_language_indeed#1#2%
+ {\begingroup
+ \infofont
+ \setbox\scratchbox\hpack{\lower\strutht\hbox to \zeropoint{\darkred#1\currentlanguage:\currentdelimitedlanguage#2}}%
+ \vsmashbox\scratchbox
+ \box\scratchbox
+ \endgroup}
+
+\let\typo_delimited_show_language\gobbletwoarguments
+
+\installtextracker{delimited.language}
+ {\let\typo_delimited_show_language\typo_delimited_show_language_indeed}
+ {\let\typo_delimited_show_language\gobbletwoarguments}
+
+\def\typo_delimited_start_content
+ {\dostarttagged\t!delimitedcontent\empty
+ \begingroup
+ \douselanguageparameter\currentdelimitedlanguage
+ \typo_delimited_show_language<\hss
+ \ignorespaces}
+
+\def\typo_delimited_stop_content
+ {\removeunwantedspaces
+ \removelastskip % redundant
+ \typo_delimited_show_language\hss<%
+ \endgroup
+ \dostoptagged}
+
\def\typo_delimited_start_par
{\dosingleempty\typo_delimited_start_par_indeed}
@@ -373,14 +437,19 @@
\blank[\p_delimited_spacebefore]%
\fi
\delimitedtextparameter\c!before
- \edef\m_typo_delimited_narrower{#1}%
- \ifx\m_typo_delimited_narrower\empty
+ \iffirstargument
+ \edef\m_delimited_argument{#1}%
+ \fi
+ \ifx\m_delimited_argument\empty
+ \let\m_delimited_argument\m_delimited_argument
+ \fi
+ \ifx\m_delimited_argument\empty
\endgraf
\doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
\doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
\let\typo_delimited_stop_par_indeed\endgraf
\else % backward compatible direct directive
- \startnarrower[#1]%
+ \startnarrower[\m_delimited_argument]%
\let\typo_delimited_stop_par_indeed\stopnarrower
\fi
% so far
@@ -400,13 +469,10 @@
\setnextleftdelimitedtextmark
\setnextrightdelimitedtextmark
%
- \ignorespaces
- \dostarttagged\t!delimitedcontent\empty}
+ \typo_delimited_start_content}
\def\typo_delimited_stop_par
- {\removeunwantedspaces
- \removelastskip
- \dostoptagged
+ {\typo_delimited_stop_content
\rightdelimitedtextmark
\carryoverpar\endgroup % new per 2013-01-21 ... please left floats
\popmacro\checkindentation
@@ -424,12 +490,10 @@
\begingroup
\usedelimitedtextstyleandcolor\c!style\c!color
\typo_delimited_handle_left\c!left
- \ignorespaces
- \dostarttagged\t!delimitedcontent\empty}
+ \typo_delimited_start_content}
\def\typo_delimited_stop_txt
- {\removeunwantedspaces
- \dostoptagged
+ {\typo_delimited_stop_content
\typo_delimited_handle_right\c!right
\endgroup}
@@ -439,9 +503,12 @@
\typo_delimited_pop
\endgroup}
-\unexpanded\def\delimitedtext[#1]%
+\unexpanded\def\delimitedtext
+ {\dodoubleempty\typo_delimited_text}
+
+\unexpanded\def\typo_delimited_text[#1][#2]%
{\dontleavehmode % following ones can be omited
- \typo_delimited_push{#1}%
+ \typo_delimited_push{#1}{#2}%
\edef\p_delimited_method{\delimitedtextparameter\c!method}%
\ifx\p_delimited_method\s!font
\expandafter\typo_delimited_fontdriven
@@ -569,7 +636,7 @@
% \stoptext
\def\typo_delimited_handle_middle#1%
- {\dostoptagged
+ {\typo_delimited_stop_content
\begingroup
\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor
\setbox\scratchbox\hbox{\delimitedtextparameter#1}%
@@ -591,7 +658,7 @@
\kern\d_typo_delimited_signal % +- \prewordbreak
\fi
\endgroup
- \dostarttagged\t!delimitedcontent\empty}
+ \typo_delimited_start_content}
\def\typo_delimited_handle_left#1%
{\begingroup
@@ -652,10 +719,10 @@
{\dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext % block?
\usedelimitedtextstyleandcolor\c!style\c!color
\typo_delimited_handle_left\c!left
- \dostarttagged\t!delimitedcontent\empty}
- {\dostoptagged
+ \typo_delimited_start_content}
+ {\typo_delimited_stop_content
\typo_delimited_handle_right\c!right
- \removelastskip
+ \removelastskip % hm
\dostoptagged
\typo_delimited_pop}}
@@ -667,52 +734,56 @@
\expandafter\typo_delimited_quoted
\fi}
-\def\typo_delimited_quoted_b
- {\dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
+\def\typo_delimited_quoted
+ {\dontleavehmode
+ \begingroup
+ \dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
\typo_delimited_handle_left\c!left
\usedelimitedtextstyleandcolor\c!style\c!color
- \dostarttagged\t!delimitedcontent\empty}
+ \typo_delimited_start_content
+ \bgroup
+ \aftergroup\typo_delimited_quoted_e
+ \let\next=}
\def\typo_delimited_quoted_e
- {\dostoptagged
+ {\typo_delimited_stop_content
\typo_delimited_handle_right\c!right
\removelastskip % ?
\dostoptagged
- \typo_delimited_pop}
+ \typo_delimited_pop
+ \endgroup}
-\def\typo_delimited_attributed_b
- {\dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
+\def\typo_delimited_attributed
+ {\dontleavehmode
+ \begingroup
+ \dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
\usedelimitedtextstyleandcolor\c!style\c!color
- \dostarttagged\t!delimitedcontent\empty
- \ignorespaces}
+ \typo_delimited_start_content
+ \typo_delimited_attributed_e
+ \let\next=}
\def\typo_delimited_attributed_e
- {\dostoptagged
+ {\typo_delimited_stop_content
\dostoptagged
- \typo_delimited_pop}
+ \typo_delimited_pop
+ \endgroup}
-\def\typo_delimited_fontdriven_b
- {\dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
+\def\typo_delimited_fontdriven
+ {\dontleavehmode
+ \begingroup
+ \dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext
\usedlanguageparameter{\c!left\currentparentdelimitedtext}% was: \currentdelimitedtext
\usedelimitedtextstyleandcolor\c!style\c!color
- \dostarttagged\t!delimitedcontent\empty}
+ \typo_delimited_start_content
+ \aftergroup\typo_delimited_fontdriven_e
+ \let\next=}
\def\typo_delimited_fontdriven_e
- {\dostoptagged
+ {\typo_delimited_stop_content
\usedlanguageparameter{\c!right\currentparentdelimitedtext}% was: \currentdelimitedtext
\dostoptagged
- \typo_delimited_pop}
-
-% We now assume proper argument usage (so no longer grouped
-% command).
-
-% \def\typo_delimited_quoted {\groupedcommand \typo_delimited_quoted_b \typo_delimited_quoted_e }
-% \def\typo_delimited_attributed{\groupedcommand \typo_delimited_attributed_b\typo_delimited_attributed_e}
-% \def\typo_delimited_fontdriven{\simplegroupedcommand\typo_delimited_fontdriven_b\typo_delimited_fontdriven_e}
-
-\def\typo_delimited_quoted {\bgroup\typo_delimited_quoted_b \aftergroup\typo_delimited_quoted_e \let\next=}
-\def\typo_delimited_attributed{\bgroup\typo_delimited_attributed_b\aftergroup\typo_delimited_attributed_e\let\next=}
-\def\typo_delimited_fontdriven{\bgroup\typo_delimited_fontdriven_b\aftergroup\typo_delimited_fontdriven_e\let\next=}
+ \typo_delimited_pop
+ \endgroup}
% testcase for nesting:
%