From 4f70a140932277cc2ef6292e47ebe25c5d8c3230 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 22 Jan 2017 22:34:22 +0000 Subject: fontspec (22jan17) git-svn-id: svn://tug.org/texlive/trunk@43016 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/fontspec/fontspec-patches.dtx | 61 ++++++++++++++++------ 1 file changed, 46 insertions(+), 15 deletions(-) (limited to 'Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx') diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx index 15c5aa66c02..7114a8af2ea 100644 --- a/Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx +++ b/Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx @@ -1,7 +1,7 @@ % \section{Patching code} % % \begin{macrocode} -%<*patches> +%<*fontspec> % \end{macrocode} % % @@ -97,29 +97,60 @@ % \begin{macro}{\eminnershape} % \begin{macro}{\emfontdeclare} % Redefinition of |{\em ...}| and |\emph{...}| to allow nesting of emphases. +% % \begin{macrocode} -\int_new:N \l_@@_em_int -\int_new:N \l_@@_emdef_int \cs_new_protected:Npn \emfontdeclare #1 { - \int_zero:N \l_@@_emdef_int - \clist_map_inline:nn {#1} - { - \int_incr:N \l_@@_emdef_int - \cs_set:cpn {@@_em_font_ \int_use:N \l_@@_emdef_int _switch:} {##1} - } + \prop_clear:N \g_@@_em_prop + \int_zero:N \l_@@_emdef_int + \group_begin: + \normalfont + \clist_map_inline:nn {\emreset,#1} + { + ##1 + \prop_gput:NxV \g_@@_em_prop { \f@series/\f@shape } { \l_@@_emdef_int } + \prop_gput:Nxn \g_@@_em_prop { switch-\int_use:N \l_@@_emdef_int } { ##1 } + \int_incr:N \l_@@_emdef_int + } + \group_end: } +% \end{macrocode} +% +% \begin{macrocode} \DeclareRobustCommand \em { \@nomath\em + + \prop_get:NxNT \g_@@_em_prop { \f@series/\f@shape } \l_@@_em_tmp_tl + { \int_set:Nn \l_@@_em_int { \l_@@_em_tmp_tl } } + \int_incr:N \l_@@_em_int - \use:c {@@_em_font_ \int_use:N \l_@@_em_int _switch:} + + \prop_get:NxNTF \g_@@_em_prop { switch-\int_use:N \l_@@_em_int } \l_@@_em_switch_tl + { \l_@@_em_switch_tl } + { + \int_zero:N \l_@@_em_int + \emreset + } + } +% \end{macrocode} +% Document commands: +% \begin{macrocode} \DeclareTextFontCommand{\emph}{\em} +\cs_set:Npn \emreset { \upshape } \cs_set:Npn \emshape { \itshape } \cs_set:Npn \eminnershape { \upshape } \emfontdeclare{ \emshape, \eminnershape } % \end{macrocode} +% Ensure nesting resets when necessary: +% \begin{macrocode} +\cs_set:Npn \reset@font { \normalfont \int_zero:N \l__fontspec_em_int } +% \end{macrocode} +% Programmer's interface for setting nesting level: +% \begin{macrocode} +\cs_new:Nn \fontspec_set_em_level:n { \int_set:Nn \l_@@_em_int {#1} } +% \end{macrocode} % \end{macro} \end{macro} \end{macro} \end{macro} \end{macro} % % \subsection{\cmd\-} @@ -148,19 +179,19 @@ % Many thanks to Apostolos Syropoulos for discovering this problem and writing the redefinion of \LaTeX's |verbatim| environment and \cs{verb*} command. % % \begin{macro}{\fontspec_visible_space:} -% Print \unichar{2434}{Open box}, which is used to visibly display a space character. +% Print \unichar{2423}{Open box}, which is used to visibly display a space character. % \begin{macrocode} \cs_new:Nn \fontspec_visible_space: { - \font_glyph_if_exist:NnTF \font {"2423} + \@@_primitive_font_glyph_if_exist:NnTF \font {"2423} { \char"2423\scan_stop: } { \fontspec_visible_space_fallback: } } % \end{macrocode} % \end{macro} % -% \begin{macro}{\fontspec_visible_space:@fallback} -% If the current font doesn't have \unichar{2434}{Open box}, use Latin Modern Mono instead. +% \begin{macro}{\fontspec_visible_space_fallback:} +% If the current font doesn't have \unichar{2423}{Open box}, use Latin Modern Mono instead. % \begin{macrocode} \cs_new:Nn \fontspec_visible_space_fallback: { @@ -302,5 +333,5 @@ % % % \begin{macrocode} -% +% % \end{macrocode} -- cgit v1.2.3