2 #ifndef INC_LINEBREAK_H
4 #define INC_LINEBREAK_H
14 #define veryloosefit 0
17 #define activenodesize 3
18 #define unhyphenated 0
20 #define lastactive active
22 #define passivenodesize 2
24 #define deltanodesize 7
31 #define fitness subtype
32 #define breaknode rlink
33 #define linenumber llink
34 #define totaldemerits(x) mem[x+2].int_
36 #define curbreak rlink
37 #define prevbreak llink
42 #define checkshrinkage(x) \
43 ((shrinkorder(x) != NORMAL) && (shrink(x) != 0) ? (x) = finiteshrink(x) : 0)
46 #define copytocuractive(x) (curactivewidth[(x)-1] = activewidth[(x)-1])
49 #define updatewidth(x) (curactivewidth[(x)-1] += mem[r + (x)].sc)
51 #define awfulbad 1073741823L
53 #define setbreakwidthtobackground(x) (breakwidth[(x)-1] = background[(x)-1])
57 #define converttobreakwidth(x) \
58 (mem[prevr + (x)].sc += -curactivewidth[(x)-1] + breakwidth[(x)-1])
59 #define storebreakwidth(x) (activewidth[(x)-1] = breakwidth[(x)-1])
60 #define newdeltatobreakwidth(x) \
61 (mem[q + (x)].sc = breakwidth[(x)-1] - curactivewidth[(x)-1])
63 #define newdeltafrombreakwidth(x) \
64 (mem[q + (x)].sc = curactivewidth[(x)-1] - breakwidth[(x)-1])
67 #define combinetwodeltas(x) \
68 (mem[prevr + (x)].sc = mem[prevr + (x)].sc + mem[r + (x)].sc)
69 #define downdatewidth(x) (curactivewidth[(x)-1] -= mem[prevr + (x)].sc)
71 #define updateactive(x) (activewidth[(x)-1] += mem[r + (x)].sc)
80 #define storebackground(x) (activewidth[(x)-1] = background[(x)-1])
83 #define actwidth activewidth[0]
87 if (!is_char_node(link(curp)) && (autobreaking)) { \
88 if (type(link(curp)) == GLUE_NODE) trybreak(0, unhyphenated); \
90 actwidth += width(curp); \
94 #define nextbreak prevbreak
114 extern void linebreak(
long finalwidowpenalty);
uint32_t HalfWord
[p43#113]: HalfWord(16=>32) .
Definition: tex_types.h:127
#define veryloosefit
Definition: linebreak.h:14
HalfWord finiteshrink(HalfWord p)
Definition: linebreak.c:570
Scaled background[6]
Definition: linebreak.c:30
Pointer bestplace[tightfit - veryloosefit+1]
Definition: linebreak.c:43
void linebreak(long finalwidowpenalty)
Definition: linebreak.c:54
#define tightfit
Definition: linebreak.h:12
HalfWord easyline
Definition: linebreak.c:50
Scaled activewidth[6]
Definition: linebreak.c:28
void trybreak(long pi, SmallNumber breaktype)
p308#829
Definition: linebreak.c:594
HalfWord passnumber
Definition: linebreak.c:25
Integer threshold
Definition: linebreak.c:38
Pointer justbox
Definition: linebreak.c:21
Pointer passive
Definition: linebreak.c:24
Boolean noshrinkerroryet
Definition: linebreak.c:34
Scaled discwidth
Definition: linebreak.c:47
Integer minimaldemerits[tightfit - veryloosefit+1]
Definition: linebreak.c:41
Integer minimumdemerits
Definition: linebreak.c:42
Pointer curp
Definition: linebreak.c:37
Scaled breakwidth[6]
Definition: linebreak.c:31
Scaled curactivewidth[6]
Definition: linebreak.c:29
Integer actuallooseness
Definition: linebreak.c:1087
HalfWord bestline
Definition: linebreak.c:1086
Pointer bestbet
Definition: linebreak.c:1084
Integer fewestdemerits
Definition: linebreak.c:1085
Pointer curq
Definition: linebreak.h:119
Pointer printednode
Definition: linebreak.h:99
Boolean secondpass
Definition: linebreak.h:105
Boolean finalpass
Definition: linebreak.h:105
Pointer ligstack
Definition: linebreak.h:119
Pointer hb
Definition: linebreak.h:119
Pointer ha
Definition: linebreak.h:119
Scaled secondwidth
Definition: linebreak.h:111
Scaled firstindent
Definition: linebreak.h:111
Scaled firstwidth
Definition: linebreak.h:111
Integer linediff
Definition: linebreak.h:122
HalfWord lastspecialline
Definition: linebreak.h:112
Scaled secondindent
Definition: linebreak.h:111
Pointer initlist
Definition: linebreak.h:119
int64_t Integer
Integer(64) =
Definition: tex_types.h:42
Integer Scaled
[p38#101]: Scaled::Integer(64) = we need Pascal's Integer(32/64), dependent upon the bit size of the...
Definition: tex_types.h:106
size_t Pointer
Pointer::size_t(64), a flag or a location in mem or eqtb.
Definition: tex_types.h:45
bool Boolean
布尔类型定义
Definition: tex_types.h:11
UChar SmallNumber
[p38#101]: SmallNumber::UChar(8) = [0, 255] only need: (6bit)[0, 63] .
Definition: tex_types.h:112