TeX in C
Explore TeX with modern c compiler.
|
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "tex_constant.h"
#include "str.h"
#include "fonts.h"
#include "dvicmd.h"
#include "io.h"
#include "eqtb.h"
#include "mem.h"
#include "print.h"
#include "error.h"
#include "extension.h"
#include "scan.h"
#include "dviout.h"
结构体 | |
struct | MovePtr |
宏定义 | |
#define | ID_BYTE 2 |
[#587]: identifies the kind of DVI files described here 更多... | |
#define | MOVEMENT_NODE_SIZE 3 |
[#605]: number of words per entry in the down and right stacks 更多... | |
#define | vetglue(x) |
[p223#605] DVI byte number for a movement command 更多... | |
#define | LOCATION(x) ((x)->locationf) |
DVI byte number for a movement command 更多... | |
#define | WIDTH(x) ((x)->widthf) |
#define | LINK(x) ((x)->linkf) |
#define | INFO(x) ((x)->infof) |
#define | FREE_NODE(x, y) free(x) |
类型定义 | |
typedef Pointer | DVI_Index |
[#594]: an index into the output buffer. 更多... | |
枚举 | |
enum | DVISetting { Y_HERE = 1 , Z_HERE , YZ_OK , Y_OK , Z_OK , D_FIXED } |
p224#608 更多... | |
enum | StackState { NONE_SEEN = 0 , Y_SEEN = 6 , Z_SEEN = 12 } |
P226#611 更多... | |
函数 | |
void | dviout_init (void) |
[#593, #596, #606] 初始化 dviout 内部变量 更多... | |
static void | write_dvi (DVI_Index a, DVI_Index b) |
[#597]: The actual output of dvi_buf[a,b] to dvi file. 更多... | |
static void | dvi_swap (void) |
[#598]: outputs half of the buffer. 更多... | |
void | dviout (int x) |
[#598] 更多... | |
void | dvi_four (Integer x) |
[#600]: outputs four bytes in two’s complement notation, without risking arithmetic overflow. 更多... | |
void | dvi_pop (Integer l) |
[#601] 更多... | |
void | dviout_helper (ASCIICode c) |
void | dvi_font_def (InternalFontNumber f) |
[#602] 更多... | |
static MovePtr | get_move_node (void) |
static void | movement (Scaled w, enum DVICommands dvicmd) |
[p224#607] produces a DVI command for some specified downward or rightward motion. 更多... | |
void | prune_movements (Integer l) |
[p227#615]: delete movement nodes with LOCATION ≥ l. 更多... | |
Scaled | synch_h (Scaled cur_h, Scaled dvi_h) |
[#616] 返回 cur_h 在 tex.c 中通过赋值更新 dvi_h. 更多... | |
Scaled | synch_v (Scaled cur_v, Scaled dvi_v) |
void | hlistout (void) |
void | vlistout (void) |
void | shipout (Pointer p) |
void | dviout_ID_BYTE (void) |
void | dviout_SET_RULE (void) |
void | dviout_PUT_RULE (void) |
void | dviout_EOP (void) |
void | dviout_PUSH (void) |
void | dviout_POP (void) |
void | dviout_PRE (void) |
void | dviout_POST (void) |
void | dviout_XXX1 (void) |
void | dviout_XXX4 (void) |
long | get_dvi_mark (void) |
Boolean | dvi_openout (void) |
void | _dvibop (Integer counts[]) |
used in [p236#638]: shipout 更多... | |
void | _dvi_lastbop (void) |
void | dvi_set_font (int f) |
void | dvi_set_char (long c) |
long | dviflush (void) |
变量 | |
static EightBits | dvibuf [DVI_BUF_SIZE+1] |
buffer for DVI output 更多... | |
static DVI_Index | half_buf |
half of dvi buf size 更多... | |
static DVI_Index | dvi_limit |
end of the current half buffer 更多... | |
static DVI_Index | dvi_ptr |
the next available buffer address. 更多... | |
static Integer | dvi_offset |
DVI_BUF_SIZE times the number of times the output buffer has been fully emptied. 更多... | |
static Integer | dvigone |
the number of bytes already output to dvi file 更多... | |
static FILE * | dvifile |
static Integer | last_bop |
LOCATION of previous bop in the DVI output. 更多... | |
static MovePtr | down_ptr |
static MovePtr | right_ptr |
Scaled | maxh |
Scaled | maxv |
Integer | totalpages |
Integer | maxpush |
Integer | deadcycles |
Boolean | doingleaders |
Static Integer | lq |
Static Integer | lr |
Static Scaled | ruleht |
Static Scaled | ruledp |
Static Scaled | rulewd |
Scaled | dvih = 0 |
Scaled | dviv = 0 |
Scaled | curh |
Scaled | curv |
Scaled | curmu |
Static InternalFontNumber | dvif = NULL_FONT |
Integer | curs |