1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Typesetting Macros Initials}
15
16
17
18\unprotect
19
20\registerctxluafile{typodrp}{autosuffix}
21
22\definesystemattribute[initial][public]
23
24\appendtoks
25 \c_attr_initial\attributeunsetvalue
26\to \everyforgetall
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50\installcorenamespace{initial}
51
52\installcommandhandler \??initial {initial} \??initial
53
54\definemeasure[initial:n][\lineheight*\initialparameter\c!n \strutdp]
55
56\setupinitial
57 [\c!location=\v!text,
58 \c!n=3,
59 \c!m=1,
60 \c!method=\v!none,
61 \c!continue=\v!no,
62
63
64 \c!font=Bold cp \measure{initial:n},
65 \c!distance=.125\emwidth,
66 \c!hoffset=\zeropoint,
67 \c!voffset=\v!line,
68 \c!style=,
69 \c!color=,
70 \c!before=\blank]
71
72\permanent\tolerant\protected\def\placeinitial[#1]
73 {\par
74 \namedinitialparameter{#1}\c!before
75 \enforced\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{}}}
76
77\permanent\tolerant\protected\def\setinitial[#1]#*[#S#2]
78 {\enforced\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{#2}}}
79
80
81
82
83
84
85
86\permanent\tolerant\protected\def\flushinitial
87 {\typo_initial_handle}
88
89\newconstant \c_initial_lines
90\newconditional\c_initial_synchronize
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109\protected\def\typo_initial_handle_indeed#1#2
110 {\dontleavehmode
111 \begingroup
112 \cdef\currentinitial{#1}
113 \setupcurrentinitial[#2]
114 \resetfontfeature
115 \ifempty{\initialparameter\c!style}
116 \definedfont[\initialparameter\c!font]
117 \else
118 \useinitialstyleparameter\c!style
119 \fi
120 \ifempty{\initialparameter\c!color}
121 \c_attr_color \attributeunsetvalue
122 \c_attr_transparency\attributeunsetvalue
123 \else
124 \useinitialcolorparameter\c!color
125 \fi
126 \scratchcounter{\initialparameter\c!n}
127 \edef\p_voffset{\initialparameter\c!voffset}
128 \scratchvoffset{\ifx\p_voffset\v!line\scratchcounter\lineheight\lineheight\else\p_voffset\fi}
129
130 \clf_setinitial
131 location {\initialparameter\c!location}
132 enabled true\relaxedspace
133 n \scratchcounter
134 m {\initialparameter\c!m}
135 method {\initialparameter\c!method}
136 continue {\initialparameter\c!continue}
137 distance {\initialparameter\c!distance}
138 hoffset {\initialparameter\c!hoffset}
139 voffset \scratchvoffset
140 ma \c_attr_colormodel
141 ca \c_attr_color
142 ta \c_attr_transparency
143 font \fontid\font
144 glyphscale \glyphscale
145 dynamic \font_dynamic_value
146 \relax
147 \c_attr_initial\plusone
148 \initialparameter\c!text
149 \normalexpanded{\endgroup\c_initial_lines\the\scratchcounter}
150 \enforced\glettonothing\typo_initial_handle
151 \ifconditional\c_initial_synchronize
152 \appendtoks \forgetinitial \to \everybeforepar
153 \fi}
154
155\lettonothing\typo_initial_handle
156
157\permanent\protected\def\forgetinitial
158 {\ifcase\c_initial_lines\else
159 \begingroup
160 \advanceby\c_initial_lines\prevgraf\relax
161 \ifcase\c_initial_lines\else
162 \obeydepth
163 \forgetall
164 \testpage[\the\c_initial_lines]
165 \dorecurse\c_initial_lines{\nointerlineskip\hpack to \hsize{\strut}\par}
166 \fi
167 \endgroup
168 \c_initial_lines\zerocount
169 \ifconditional\c_initial_synchronize
170 \removetoks \forgetinitial \from \everybeforepar
171 \fi
172 \fi}
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188\installtexexperiment
189 {autoforgetinitials}
190 {\c_initial_synchronize\conditionaltrue}
191 {\c_initial_synchronize\conditionalfalse}
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208\protect \endinput
209 |