diff options
author | Karl Berry <karl@freefriends.org> | 2024-08-02 21:04:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-08-02 21:04:52 +0000 |
commit | d6b9a80a26c5ae40fd9c34d9f65192f862b6774a (patch) | |
tree | 4e8aa941f348a75fd53aa2a9abb12f597246cc9b /Master/texmf-dist/source | |
parent | 18f9cef5479c7345fd31090f2c62f0dc6d7f9a0d (diff) |
tagpdf (2aug24)
git-svn-id: svn://tug.org/texlive/trunk@71958 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
12 files changed, 139 insertions, 36 deletions
diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx index 7e19e1e90f7..0ed233e2e0b 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx @@ -47,13 +47,13 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{implementation} % \begin{macrocode} %<@@=tag> %<*luatex> -\ProvidesExplFile {tagpdf-luatex.def} {2024-06-20} {0.99c} +\ProvidesExplFile {tagpdf-luatex.def} {2024-08-02} {0.99d} {tagpdf~driver~for~luatex} % \end{macrocode} % \section{Loading the lua} @@ -164,8 +164,8 @@ local ProvidesLuaModule = { name = "tagpdf", - version = "0.99c", --TAGVERSION - date = "2024-06-20", --TAGDATE + version = "0.99d", --TAGVERSION + date = "2024-08-02", --TAGDATE description = "tagpdf lua code", license = "The LATEX Project Public License 1.3c" } @@ -252,6 +252,12 @@ local iwfontattributeid = luatexbase.new_attribute ("g_@@_interwordfont_attr") local tagunmarkedbool= token.create("g_@@_tagunmarked_bool") local truebool = token.create("c_true_bool") % \end{macrocode} +% with this token we can query the state of the softhyphen boolean +% and so detect if hyphens from hyphenation should be replaced by soft-hyphens. +% \begin{macrocode} +local softhyphenbool = token.create("g_@@_softhyphen_bool") +% \end{macrocode} + % Now a number of local versions from global tables. % Not all is perhaps needed, most node variants were copied from lua-debug. % \begin{macrocode} @@ -286,6 +292,9 @@ local KERN = node.id("kern") local PENALTY = node.id("penalty") local LOCAL_PAR = node.id("local_par") local MATH = node.id("math") + +local explicit_disc = 1 +local regular_disc = 3 % \end{macrocode} % Now we setup the main table structure. ltx is used by other latex code too! % \begin{macrocode} @@ -1267,6 +1276,80 @@ function ltx.@@.func.output_parenttree (abspage) end % \end{macrocode} % \end{macro} +% +% \begin{macro} +% { +% process_softhyphen_pre +% process_softhyphen_post +% } +% First some local definitions. Since these are only needed locally everything gets wrapped into a block. +% \begin{macrocode} +do + local properties = node.get_properties_table() + local is_soft_hyphen_prop = 'tagpdf.rewrite-softhyphen.is_soft_hyphen' + local hyphen_char = 0x2D + local soft_hyphen_char = 0xAD +% \end{macrocode} +% +% A lookup table to test if the font supports the soft hyphen glyph. +% \begin{macrocode} + local softhyphen_fonts = setmetatable({}, {__index = function(t, fid) + local fdir = identifiers[fid] + local format = fdir and fdir.format + local result = (format == 'opentype' or format == 'truetype') + local characters = fdir and fdir.characters + result = result and (characters and characters[soft_hyphen_char]) ~= nil + t[fid] = result + return result + end}) +% \end{macrocode} +% +% A pre shaping callback to mark hyphens as being hyphenation hyphens. +% This runs before shaping to avoid affecting hyphens moved into +% discretionaries during shaping. +% \begin{macrocode} + local function process_softhyphen_pre(head, _context, _dir) + if softhyphenbool.mode ~= truebool.mode then return true end + for disc, sub in node.traverse_id(DISC, head) do + if sub == explicit_disc or sub == regular_disc then + for n, _ch, _f in node.traverse_char(disc.pre) do + local props = properties[n] + if not props then + props = {} + properties[n] = props + end + props[is_soft_hyphen_prop] = true + end + end + end + return true + end + +% \end{macrocode} +% +% Finally do the actual replacement after shaping. No checking for double processing here +% since the operation is idempotent. +% \begin{macrocode} + local function process_softhyphen_post(head, _context, _dir) + if softhyphenbool.mode ~= truebool.mode then return true end + for disc, sub in node.traverse_id(DISC, head) do + for n, ch, fid in node.traverse_glyph(disc.pre) do + local props = properties[n] + if softhyphen_fonts[fid] and ch == hyphen_char and props and props[is_soft_hyphen_prop] then + n.char = soft_hyphen_char + props.glyph_info = nil + end + end + end + return true + end + + luatexbase.add_to_callback('pre_shaping_filter', process_softhyphen_pre, 'tagpdf.rewrite-softhyphen') + luatexbase.add_to_callback('post_shaping_filter', process_softhyphen_post, 'tagpdf.rewrite-softhyphen') +end +% \end{macrocode} +% \end{macro} +% % \begin{macrocode} %</lua> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx index 345b2e35bad..3cbe3b141bb 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{documentation} % \section{Commands} @@ -331,7 +331,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-checks-code} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-checks-code} {2024-08-02} {0.99d} {part of tagpdf - code related to checks, conditionals, debugging and messages} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx index f07e5db3edc..6417b44c404 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{documentation} % This files contains a various data files which are read in @@ -61,7 +61,7 @@ % latex-lab has also a namespace module, which takes precedence! % \begin{macrocode} %<*ns-latex> -%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-06-20} {0.99c} +%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-08-02} {0.99d} %% {latex} {https://www.latex-project.org/ns/dflt/2022}{} title, Title, pdf2, part, Title, pdf2, @@ -93,7 +93,7 @@ text, P, pdf2, % It is bound to change % \begin{macrocode} %<*ns-latex-book> -%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-06-20} {0.99c} +%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-08-02} {0.99d} %% {latex-book} {https://www.latex-project.org/ns/book/2022}{} chapter, H1,pdf2, section, H2,pdf2, @@ -107,7 +107,7 @@ subparagraph, H6,pdf2, % \section{The pdf namespace data} % \begin{macrocode} %<*ns-pdf> -%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-06-20} {0.99c} +%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-08-02} {0.99d} %% {pdf} {http://iso.org/pdf/ssn}{} StructTreeRoot,StructTreeRoot,pdf,D, Document,Document,pdf,D, @@ -175,7 +175,7 @@ Strong,Span,pdf,I, % \section{The pdf 2.0 namespace data} % \begin{macrocode} %<*ns-pdf2> -%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-06-20} {0.99c} +%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-08-02} {0.99d} %% {pdf2} {http://iso.org/pdf2/ssn}{} StructTreeRoot,StructTreeRoot,pdf2,D, Document,Document,pdf2,D, @@ -232,7 +232,7 @@ Strong,Strong,pdf2,I, % \section{The mathml namespace data} % \begin{macrocode} %<*ns-mathml> -%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-06-20} {0.99c} +%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-08-02} {0.99d} % {mathml}{http://www.w3.org/1998/Math/MathML}{} abs,abs,mathml, and,and,mathml, @@ -467,7 +467,7 @@ xor,xor,mathml, % This will perhaps change in future. % \begin{macrocode} %<*parent-child> -%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-06-20} {0.99c} +%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-08-02} {0.99d} ,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC Document,both,document level,1,0..n,∅,‡,‡,∅,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅ Art,1.7,grouping,∅,0..n,∅,‡,‡,0..n,0..n,‡,∅,∅,∅,0..n,∅,0..n,∅,∅,∅,0..1,0..1,∅,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,∅,∅ @@ -522,7 +522,7 @@ MC,both,---,∅,∅,∅,∅,∅,∅,0..n,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0.. % This will perhaps change in future. % \begin{macrocode} %<*parent-child-2> -%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-06-20} {0.99c} +%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-08-02} {0.99d} ,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC Document,both,document level,1,0..n,0..n,∅,‡,‡,∅,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅ DocumentFragment,2.0,document level,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,0..n,∅ diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx index 0cef27fd3b8..ff036b5523f 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{documentation} % \end{documentation} @@ -55,11 +55,11 @@ % \begin{macrocode} %<@@=tag> %<*generic> -\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-08-02} {0.99d} {part of tagpdf - code related to marking chunks - generic mode} %</generic> %<*debug> -\ProvidesExplPackage {tagpdf-debug-generic} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-debug-generic} {2024-08-02} {0.99d} {part of tagpdf - debugging code related to marking chunks - generic mode} %</debug> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx index 7dd309c5f53..3c2e91605e1 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{implementation} % The code is split into three parts: code shared by all engines, @@ -86,11 +86,11 @@ % \begin{macrocode} %<@@=tag> %<*luamode> -\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-08-02} {0.99d} {tagpdf - mc code only for the luamode } %</luamode> %<*debug> -\ProvidesExplPackage {tagpdf-debug-lua} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-debug-lua} {2024-08-02} {0.99d} {part of tagpdf - debugging code related to marking chunks - lua mode} %</debug> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx index c96fd8c4c81..5bfe0658d10 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{documentation} % \section{Public Commands} @@ -181,7 +181,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-08-02} {0.99d} {part of tagpdf - code related to marking chunks - code shared by generic and luamode } %</header> diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx index 80f9da0f6bd..fb5f1b77c99 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{documentation} % \begin{function} @@ -98,7 +98,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-roles-code} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-roles-code} {2024-08-02} {0.99d} {part of tagpdf - code related to roles and structure names} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx index a29c8f0fb3d..5c8e0070848 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{documentation} % \begin{function}{activate/space (setup-key),interwordspace (deprecated)} @@ -66,7 +66,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-space-code} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-space-code} {2024-08-02} {0.99d} {part of tagpdf - code related to real space chars} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx index 963852b1fca..6da5e48b187 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{documentation} % \section{Public Commands} @@ -285,7 +285,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-struct-code} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-struct-code} {2024-08-02} {0.99d} {part of tagpdf - code related to storing structure} %</header> % \end{macrocode} @@ -1937,7 +1937,7 @@ % \section{Attributes and attribute classes} % \begin{macrocode} %<*header> -\ProvidesExplPackage {tagpdf-attr-code} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-attr-code} {2024-08-02} {0.99d} {part of tagpdf - code related to attributes and attribute classes} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx index 04b9309597f..f7ae6de9966 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx @@ -47,13 +47,13 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{implementation} % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-tree-code} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-tree-code} {2024-08-02} {0.99d} {part of tagpdf - code related to writing trees and dictionaries to the pdf} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx index 916ff041d01..a4014b62e39 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99c, released 2024-06-20} +% \date{Version 0.99d, released 2024-08-02} % \maketitle % \begin{documentation} % \section{Setup commands} @@ -309,7 +309,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-user} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-user} {2024-08-02} {0.99d} {tagpdf - user commands} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx index e58570340e5..b1d008a6e6c 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx @@ -72,6 +72,12 @@ % marked up as artifact. The initial value is true. % \end{function} % +% \begin{function}{activate/softhyphen (setup-key)} +% This key allows to activates automatic handling of hyphens inserted +% by hyphenation. It only is used in luamode and replaces hyphens +% by U+00AD if the font supports this. +% \end{function} +% % \begin{function}{page/tabsorder (setup-key), tabsorder (deprecated)} % This sets the tabsorder on a page. The values are |row|, |column|, |structure| (default) % or |none|. Currently this is set more or less globally. More finer control can be @@ -87,7 +93,7 @@ % \begin{macrocode} %<@@=tag> %<*package> -\ProvidesExplPackage {tagpdf} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf} {2024-08-02} {0.99d} { A package to experiment with pdf tagging } \bool_if:nF @@ -113,7 +119,7 @@ % \end{macrocode} %<*debug> % \begin{macrocode} -\ProvidesExplPackage {tagpdf-debug} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-debug} {2024-08-02} {0.99d} { debug code for tagpdf } \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput} % \end{macrocode} @@ -136,7 +142,7 @@ % we define a base package with dummy functions % \begin{macrocode} %<*base> -\ProvidesExplPackage {tagpdf-base} {2024-06-20} {0.99c} +\ProvidesExplPackage {tagpdf-base} {2024-08-02} {0.99d} {part of tagpdf - provide base, no-op versions of the user commands } %</base> % \end{macrocode} @@ -354,6 +360,13 @@ % \end{macrocode} % \end{variable} % +% \begin{variable}{\g_@@_softhyphen_bool} +% This boolean controls if the code should try to automatically +% handle hyphens from hyphenation. It is currently only used in luamode. +% \begin{macrocode} +\bool_new:N \g_@@_softhyphen_bool +% \end{macrocode} +% \end{variable} % \section{Variants of l3 commands} % \begin{macrocode} \prg_generate_conditional_variant:Nnn \pdf_object_if_exist:n {e}{T,F,TF} @@ -648,6 +661,13 @@ tagunmarked .bool_gset:N = \g_@@_tagunmarked_bool, % \end{macrocode} % \end{macro} +% \begin{macro}{activate/softhyphen (setup-key)} +% This key activates (in luamode) the handling of soft hyphens. +% \begin{macrocode} + activate/softhyphen .bool_gset:N = \g_@@_softhyphen_bool, + activate/softhyphen .initial:n = true, +% \end{macrocode} +% \end{macro} % \begin{macro}{page/tabsorder (setup-key),tabsorder (deprecated)} % This sets the tabsorder on a page. The values are |row|, |column|, |structure| (default) % or |none|. Currently this is set more or less globally. More finer control can be |