summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/typo-wrp.mkxl
blob: 850d42e7822b4244bf3e4a535d51bd4aadbefafe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%D \module
%D   [       file=typo-wrp,
%D        version=2014.11.09,
%D          title=\CONTEXT\ Typesetting Macros,
%D       subtitle=Wrappers,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

\writestatus{loading}{ConTeXt Typesetting Macros / Wrapping}

\unprotect

\registerctxluafile{typo-wrp}{autosuffix}

\definesystemattribute[crlf]

\permanent\protected\def\crlf
  {\ifhmode
     \expandafter\spac_crlf
   \fi}

\protected\def\spac_crlf
  {\clf_enablecrlf % once
   \unskip
   \wordboundary
   \spac_crlf_placeholder % box
   \ifcase\raggedstatus\hfil\or\or\or\hfil\fi
   % in bad usage this can lead to: [break -10000] [wordboundary] [line(break)penalty] [glue (filler)]
   \break
   \begingroup
   \c_attr_crlf\plusone
   \wordboundary
   \endgroup
   % which we then remove (maybe we should flag the wordboundary with an attribute but not now
   \ignorespaces}

\protected\def\spac_crlf_placeholder
  {\strut} % or \endstrut

\protected\def\spac_crlf_placeholder_show
  {\hpack to \zeropoint{\strut{\infofont\kern.25\emwidth}\lohi{\infofont CR}{\infofont LF}\hss}}

\permanent\protected\def\settestcrlf
  {\let\spac_crlf_placeholder\spac_crlf_placeholder_show}

\permanent\protected\def\crlfplaceholder % for old times sake
  {\wordboundary\strut}

\appendtoks
    \let\spac_crlf_placeholder\empty
\to \everysetnostrut

\appendtoks
    \let\spac_crlf\space
\to \everysimplifycommands

\protect \endinput