diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/lwarp/lwarp-realscripts.sty | 140 |
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 %% |