summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty')
-rw-r--r--Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty140
1 files changed, 128 insertions, 12 deletions
diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty
index 23561137152..6e2c5acc02e 100644
--- a/Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty
+++ b/Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty
@@ -15,14 +15,125 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-\LWR@ProvidesPackageDrop{realscripts}[2016/02/13]
-\let\realsuperscript\textsuperscript
-\let\realsubscript\textsubscript
+\LWR@ProvidesPackagePass{realscripts}[2016/02/13]
+\ExplSyntaxOn
-\let\fakesuperscript\textsuperscript
-\let\fakesubscript\textsubscript
+\DeclareDocumentCommand \LWR@print@realsubscript {m} {
+ \fontspec_if_fontspec_font:TF {
+ \fontspec_if_opentype:TF
+ { \fontspec_if_feature:nTF {+subs}
+ { {\addfontfeature{VerticalPosition=Inferior}#1} }
+ { \fontspec_if_feature:nTF {+sinf}
+ { {\addfontfeature{VerticalPosition=ScientificInferior}#1} }
+ { \fakesubscript{#1} }
+ }
+ }
+ { \fontspec_if_aat_feature:nnTF {10} {2}
+ { {\addfontfeature{VerticalPosition=Inferior}#1} }
+ { \fakesubscript{#1} }
+ }
+ }
+ { \fakesubscript{#1} }
+}
+
+\DeclareDocumentCommand \LWR@HTML@realsubscript {m} {
+ \LWR@HTML@textsubscript{#1}
+}
+
+\LWR@formatted{realsubscript}
+
+\DeclareDocumentCommand \LWR@print@realsuperscript {m} {
+ \fontspec_if_fontspec_font:TF
+ {
+ \fontspec_if_opentype:TF
+ { \fontspec_if_feature:nTF {+sups}
+ { {\addfontfeature{VerticalPosition=Superior}#1} }
+ { \fakesuperscript{#1} }
+ }
+ { \fontspec_if_aat_feature:nnTF {10} {1}
+ { {\addfontfeature{VerticalPosition=Superior}#1} }
+ { \fakesuperscript{#1} }
+ }
+ }
+ { \fakesuperscript{#1} }
+}
+
+\DeclareDocumentCommand \LWR@HTML@realsuperscript {m} {
+ \LWR@HTML@textsuperscript{#1}
+}
+
+\LWR@formatted{realsuperscript}
+
+\DeclareDocumentCommand \LWR@print@textsubsuperscript {s O{l} mm} {
+ \leavevmode
+ \group_begin:
+ \IfBooleanTF #1
+ {
+ \hbox_set:Nn \l_tmpa_box {\textsubscript*{#3}}
+ \hbox_set:Nn \l_tmpb_box {\textsuperscript*{#4}}
+ }
+ {
+ \hbox_set:Nn \l_tmpa_box {\textsubscript{#3}}
+ \hbox_set:Nn \l_tmpb_box {\textsuperscript{#4}}
+ }
+ \hbox_set:Nn \l_tmpa_box
+ { \box_move_down:nn \subsupersep {\box_use:N \l_tmpa_box} }
+ \hbox_set:Nn \l_tmpb_box
+ { \box_move_up:nn \subsupersep {\box_use:N \l_tmpb_box} }
+ \str_case:nnF {#2}
+ {
+ {l}{\use_i:nnn}
+ {c}{\use_ii:nnn}
+ {r}{\use_iii:nnn}
+ }
+ {
+ \PackageWarning{realscripts}{
+ Unknown~alignment~option~`#2'. \MessageBreak
+ One~ of~ `l',~ `c',~ `r',~ only
+ }
+ \use_i:nnn
+ }
+ {
+ \hbox_overlap_right:n { \box_use:N \l_tmpa_box }
+ \hbox_overlap_right:n { \box_use:N \l_tmpb_box }
+ \skip_horizontal:n {
+ \dim_max:nn {\box_wd:N \l_tmpa_box} {\box_wd:N \l_tmpb_box}
+ }
+ }
+ {
+ \dim_compare:nTF { \box_wd:N \l_tmpa_box > \box_wd:N \l_tmpb_box }
+ {
+ \skip_horizontal:n {
+ 0.5\box_wd:N \l_tmpa_box-0.5\box_wd:N \l_tmpb_box
+ }
+ \box_use:N \l_tmpb_box
+ \skip_horizontal:n {
+ -0.5\box_wd:N \l_tmpa_box-0.5\box_wd:N \l_tmpb_box
+ }
+ \box_use:N \l_tmpa_box
+ }
+ {
+ \skip_horizontal:n {
+ 0.5\box_wd:N \l_tmpb_box-0.5\box_wd:N \l_tmpa_box
+ }
+ \box_use:N \l_tmpa_box
+ \skip_horizontal:n {
+ -0.5\box_wd:N \l_tmpb_box-0.5\box_wd:N \l_tmpa_box
+ }
+ \box_use:N \l_tmpb_box
+ }
+ }
+ {
+ \skip_horizontal:n {
+ \dim_max:nn {\box_wd:N \l_tmpa_box} {\box_wd:N \l_tmpb_box}
+ }
+ \hbox_overlap_left:n { \box_use:N \l_tmpa_box }
+ \hbox_overlap_left:n { \box_use:N \l_tmpb_box }
+ }
+ \group_end:
+}
-\newlength{\subsupersep}
+\ExplSyntaxOff
\newcommand*{\LWR@realscriptsalign}{}
@@ -40,18 +151,23 @@
}{}%
}
-\DeclareDocumentCommand \textsubsuperscript {s O{l} mm} {%
+\DeclareDocumentCommand \LWR@HTML@textsubsuperscript {s O{l} mm} {%
\LWR@setrealscriptsalign{#2}%
\InlineClass[\LWR@realscriptsalign]{supsubscript}{%
\textsuperscript{#4}\textsubscript{#3}%
}%
}
+\LWR@formatted{textsubsuperscript}
-\DeclareDocumentCommand \textsupersubscript {s O{l} mm} {%
- \LWR@setrealscriptsalign{#2}%
- \InlineClass[\LWR@realscriptsalign]{supsubscript}{%
- \textsubscript{#4}\textsuperscript{#3}%
- }%
+\FilenameNullify{%
+ \RenewDocumentCommand{\textsuperscript}{s m}{}%
+ \RenewDocumentCommand{\textsubscript}{s m}{}%
+ \renewcommand{\fakesubscript}[1]{}%
+ \renewcommand{\fakesuperscript}[1]{}%
+ \renewcommand{\realsubscript}[1]{}%
+ \renewcommand{\realsuperscript}[1]{}%
+ \renewcommand{\textsubsuperscript}[2]{}%
+ \renewcommand{\textsupersubscript}[2]{}%
}
\endinput
%%