TeX in C
Explore TeX with modern c compiler.
PART 41: Post-hyphenation

宏定义

#define appendcharnodetot(x)
 [p337#908] 更多...
 
#define setcurr()
 [p337#908] 更多...
 
#define wraplig(x)
 [p339#910] 更多...
 
#define popligstack()
 [p339#910] if |ligstack| isn't |null| we have |currh=NON_CHAR| 更多...
 
#define advancemajortail()
 [p341#914] 更多...
 

函数

SmallNumber reconstitute (int j, SmallNumber n, HalfWord bchar, HalfWord hchar)
 

变量

char hyf [65]
 
Boolean initlig
 
Boolean initlft
 
SmallNumber hyphenpassed
 
HalfWord curl
 
HalfWord curr
 
Boolean ligaturepresent
 
Boolean lfthit
 
Boolean rthit
 

详细描述

宏定义说明

◆ advancemajortail

#define advancemajortail ( )
值:
{ \
majortail = link(majortail); \
rcount++; \
}
#define link(x)
[p45#118] the link field of a memory word.
Definition: mem.h:16

[p341#914]

◆ appendcharnodetot

#define appendcharnodetot (   x)
值:
{ \
link(t) = get_avail(); \
t = link(t); \
font(t) = hf; \
character(t) = x; \
}
Pointer get_avail(void)
[p45#120]: single-word node allocation.
Definition: mem.c:36
InternalFontNumber hf
Definition: hyphen_pre.c:17

[p337#908]

◆ popligstack

#define popligstack ( )
值:
{ \
if (ligptr(ligstack) > null) { \
/* this is a charnode for |hu[j+1]| */ \
link(t) = ligptr(ligstack); \
t = link(t); \
j++; \
} \
p = ligstack; \
ligstack = link(p); \
free_node(p, smallnodesize); \
if (ligstack == null) { \
setcurr(); \
} else { \
curr = character(ligstack); \
} \
}
#define character(x)
[50#134] -> QuarterWord; the character code in a charnode.
Definition: box.h:35
#define smallnodesize
[#141]: number of words to allocate for most node types
Definition: box.h:123
#define ligptr(x)
[p52#143] the list of characters.
Definition: box.h:133
Pointer ligstack
Definition: linebreak.c:1084

[p339#910] if |ligstack| isn't |null| we have |currh=NON_CHAR|

◆ setcurr

#define setcurr ( )
值:
{ \
if (j < n) { \
curr = qi(hu[j + 1]); \
} else { \
curr = bchar; \
} \
if (hyf[j] & 1) { \
currh = hchar; \
} else { \
currh = NON_CHAR; \
} \
}
#define qi(x)
[p43#112]
Definition: global_macros.h:17
#define NON_CHAR
[#549] a |halfword| code that can't match a real character}
Definition: fonts.h:66
short hu[64]
Definition: hyphen_pre.c:18
char hyf[65]
Definition: hyphen_post.c:10

[p337#908]

◆ wraplig

#define wraplig (   x)
值:
if (ligaturepresent) { \
if (lfthit) { \
subtype(p) = 2; \
lfthit = false; \
} \
if (x) \
if (ligstack == 0) { \
(subtype(p))++; \
rthit = false; \
} \
link(curq) = p; \
t = p; \
ligaturepresent = false; \
}
#define subtype(x)
[p50#133] -> QuarterWord; secondary identification in some cases.
Definition: box.h:21
Pointer new_ligature(QuarterWord f, QuarterWord c, Pointer q)
[#144] creates a ligature node having given contents of the font, character, and lig_ptr fields.
Definition: box.c:55
Pointer curq
Definition: linebreak.c:1084
HalfWord curl
Definition: hyphen_post.c:17
Boolean ligaturepresent
Definition: hyphen_post.c:18
Boolean lfthit
Definition: hyphen.h:140

[p339#910]

函数说明

◆ reconstitute()

SmallNumber reconstitute ( int  j,
SmallNumber  n,
HalfWord  bchar,
HalfWord  hchar 
)

变量说明

◆ curl

HalfWord curl

◆ curr

HalfWord curr

◆ hyf

char hyf[65]

◆ hyphenpassed

SmallNumber hyphenpassed

◆ initlft

Boolean initlft

◆ initlig

Boolean initlig

◆ lfthit

Boolean lfthit

◆ ligaturepresent

Boolean ligaturepresent

◆ rthit

Boolean rthit