summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3kernel/l3text.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-06-19 03:01:48 +0000
committerNorbert Preining <norbert@preining.info>2021-06-19 03:01:48 +0000
commitdaa6873fe1d06863ffc2980970295b39071f02ba (patch)
tree436daaf0d6464d12d7ad7af294e5aeed5851f8fb /macros/latex/contrib/l3kernel/l3text.dtx
parent3ecc00c27119bc47ba26b518b7d26c00b69599df (diff)
CTAN sync 202106190301
Diffstat (limited to 'macros/latex/contrib/l3kernel/l3text.dtx')
-rw-r--r--macros/latex/contrib/l3kernel/l3text.dtx35
1 files changed, 30 insertions, 5 deletions
diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx
index 724c190681..c7ced6efbf 100644
--- a/macros/latex/contrib/l3kernel/l3text.dtx
+++ b/macros/latex/contrib/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-06-01}
+% \date{Released 2021-06-18}
%
% \maketitle
%
@@ -625,6 +625,8 @@
% \begin{macro}[EXP]{\@@_expand_exclude:nN}
% \begin{macro}[EXP]{\@@_expand_exclude:NN}
% \begin{macro}[EXP]{\@@_expand_exclude:Nn}
+% \begin{macro}[EXP]{\@@_expand_accent:N}
+% \begin{macro}[EXP]{\@@_expand_accent:NN}
% \begin{macro}[EXP]{\@@_expand_letterlike:N}
% \begin{macro}[EXP]{\@@_expand_letterlike:NN}
% \begin{macro}[EXP]{\@@_expand_cs:N, \@@_expand_encoding:N}
@@ -858,15 +860,13 @@
}
% \end{macrocode}
% Next we exclude math commands: this is mainly as there \emph{might} be an
-% \cs{ensuremath}. We also handle accents, which are basically the same issue
-% but are kept separate for semantic reasons.
+% \cs{ensuremath}.
% \begin{macrocode}
\cs_new:Npn \@@_expand_exclude:N #1
{
\exp_args:Ne \@@_expand_exclude:nN
{
\exp_not:V \l_text_math_arg_tl
- \exp_not:V \l_text_accents_tl
\exp_not:V \l_text_expand_exclude_tl
}
#1
@@ -879,7 +879,7 @@
\cs_new:Npn \@@_expand_exclude:NN #1#2
{
\@@_if_recursion_tail_stop_do:Nn #2
- { \@@_expand_letterlike:N #1 }
+ { \@@_expand_accent:N #1 }
\str_if_eq:nnTF {#1} {#2}
{
\@@_use_i_delimit_by_q_recursion_stop:nw
@@ -893,6 +893,29 @@
\@@_expand_loop:w
}
% \end{macrocode}
+% Accents.
+% \begin{macrocode}
+\cs_new:Npn \@@_expand_accent:N #1
+ {
+ \exp_after:wN \@@_expand_accent:NN \exp_after:wN
+ #1 \l_text_accents_tl
+ \q_@@_recursion_tail \q_@@_recursion_stop
+ }
+\cs_new:Npn \@@_expand_accent:NN #1#2
+ {
+ \@@_if_recursion_tail_stop_do:Nn #2
+ { \@@_expand_letterlike:N #1 }
+ \cs_if_eq:NNTF #2 #1
+ {
+ \@@_use_i_delimit_by_q_recursion_stop:nw
+ {
+ \@@_expand_store:n {#1}
+ \@@_expand_loop:w
+ }
+ }
+ { \@@_expand_accent:NN #1 }
+ }
+% \end{macrocode}
% Another list of exceptions: these ones take no arguments so are
% easier to handle.
% \begin{macrocode}
@@ -1091,6 +1114,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}
% {