diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx new file mode 100644 index 00000000000..edc5e445c70 --- /dev/null +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx @@ -0,0 +1,89 @@ +% \iffalse meta-comment +% +%% File: tagpdf-space.dtx +% +% Copyright (C) 2019 Ulrike Fischer +% +% It may be distributed and/or modified under the conditions of the +% LaTeX Project Public License (LPPL), either version 1.3c of this +% license or (at your option) any later version. The latest version +% of this license is in the file +% +% https://www.latex-project.org/lppl.txt +% +% This file is part of the "tagpdf bundle" (The Work in LPPL) +% and all files in that bundle must be distributed together. +% +% ----------------------------------------------------------------------- +% +% The development version of the bundle can be found at +% +% https://github.com/u-fischer/tagpdf +% +% for those people who are interested. +% +% \fi +% +% \begin{macrocode} +%<@@=tag> +%<*space> +\ProvidesExplPackage {tagpdf-space-code} {2021/02/23} {0.80} + {part of tagpdf - code related to real space chars} +% luatex uses an attribute (declared in the driver file) and some luacode in tagpdf.lua +% perhaps I will split the code by engine in the future + +\sys_if_engine_pdftex:T + { + \pdfglyphtounicode{space}{0020} + \keys_define:nn { @@ / setup } + { + interwordspace .choices:nn = { true, on } { \pdfinterwordspaceon }, + interwordspace .choices:nn = { false, off }{ \pdfinterwordspaceon }, + show-spaces .bool_set:N = \l_@@_showspaces_bool + } + } + + +\sys_if_engine_luatex:T + { + \keys_define:nn { @@ / setup } + { + interwordspace .choices:nn = + { true, on } + { \directlua{ltx.@@.func.markspaceon()} }, + interwordspace .choices:nn = + { false, off } + {\directlua{ltx.@@.func.markspaceoff()} }, + show-spaces .choice:, + show-spaces / true .code:n = + {\directlua{ltx.@@.trace.showspaces=true}}, + show-spaces / false .code:n = + {\directlua{ltx.@@.trace.showspaces=nil}}, + show-spaces .default:n = true + } + + \cs_new_protected:Nn \@@_fakespace: + { + \group_begin: + \setattribute\g_@@_interwordspace_attr{1} + \setattribute\g_@@_interwordfont_attr + { + \directlua{tex.print(\the\catcodetable@latex, font.current())} + } + \skip_horizontal:n{\c_zero_skip} + \group_end: + } + } + +\sys_if_engine_xetex:T + { + \keys_define:nn { @@ / setup } + { + interwordspace .choices:nn = { true, on } { \msg_warning:nnn {tag}{sys-no-interwordspace}{xetex} }, + interwordspace .choices:nn = { false, off }{ \msg_warning:nnn {tag}{sys-no-interwordspace}{xetex} }, + show-spaces .bool_set:N = \l_@@_showspaces_bool + } + } + +%</space> +% \end{macrocode} |