TeX in C
Explore TeX with modern c compiler.
page.h
浏览该文件的文档.
1 #pragma once
2 #ifndef INC_PAGE_H
3 //
4 #define INC_PAGE_H
5 #include "global.h"
6 #include "lexer.h" // [var] nest; [macro] ignoredepth
7 
12 #define activeheight activewidth
14 #define curheight (activeheight[0])
16 #define setheightzero(x) (activeheight[(x)-1] = 0)
17 // [p361#970]
18 #define updateheights 90
19 
20 // [p363#974]
21 #define deplorable 100000L // end group S967x979_P360x365
23 
27 // [p366#980]
28 #define insertsonly 1
29 #define boxthere 2
30 // [p367#981]
31 #define pageinsnodesize 4
32 #define inserting 0
33 #define splitup 1
34 // [p371#994]
35 #define contribute 80
36 
38 #define brokenptr(x) link(x+1)
39 #define brokenins(x) info(x+1) /* this insertion might break at |brokenptr|}*/
40 #define lastinsptr(x) link(x+2) /* the most recent insertion for this |subtype|}*/
41 #define bestinsptr(x) info(x+2) /* the optimum most recent insertion}*/
42 
44 #define setpagesofarzero(x) (pagesofar[(x)] = 0)
45 
47 #define pagegoal (pagesofar[0])
48 #define pagetotal (pagesofar[1]) /*height of the current page*/
49 #define pageshrink (pagesofar[6]) /*shrinkability of the current page*/
50 #define pagedepth (pagesofar[7]) /*depth of the current page*/
51 
53 #define contribtail (nest[0].tailfield) /*tail of the contribution list*/ // end group S980x1028_P366x382
55 
56 
57 extern Pointer pagetail;
58 extern char pagecontents;
59 extern Scaled pagesofar[8];
60 extern Pointer lastglue;
61 extern Scaled lastkern;
62 extern Integer lastpenalty;
64 extern Boolean outputactive;
65 
66 extern void page_builder_init();
67 extern void page_builder_init_once();
68 // lexer
69 extern void printtotals(void);
70 extern void boxerror(EightBits n);
71 extern void buildpage(void);
72 
73 
76 extern HalfWord vertbreak(HalfWord p, long h, long d);
77 extern HalfWord vsplit(EightBits n, long h);
78 
79 #endif /* INC_PAGE_H */
uint32_t HalfWord
[p43#113]: HalfWord(16=>32) .
Definition: tex_types.h:127
UChar EightBits
[#25]: EightBits::UChar(8) = [0, 255]
Definition: tex_types.h:98
HalfWord prunepagetop(HalfWord p)
Definition: pagebreak.c:20
Scaled bestheightplusdepth
[#971]
Definition: pagebreak.c:17
HalfWord vsplit(EightBits n, long h)
Definition: pagebreak.c:203
HalfWord vertbreak(HalfWord p, long h, long d)
Definition: pagebreak.c:68
Scaled pagesofar[8]
[#982]
Definition: page_builder.c:34
Scaled lastkern
Definition: page_builder.c:36
void buildpage(void)
Definition: page_builder.c:365
Boolean outputactive
[#989]
Definition: page_builder.c:41
void page_builder_init_once()
[#981, #988]
Definition: page_builder.c:66
void page_builder_init()
[#990, #991]
Definition: page_builder.c:57
char pagecontents
[#980] what is on the current page so far?
Definition: page_builder.c:23
Integer lastpenalty
Definition: page_builder.c:37
Pointer lastglue
Definition: page_builder.c:35
void boxerror(EightBits n)
Definition: page_builder.c:133
Integer insertpenalties
Definition: page_builder.c:38
void printtotals(void)
Definition: page_builder.c:77
Pointer pagetail
[#980] the final node on the current page
Definition: page_builder.c:21
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