TeX in C
Explore TeX with modern c compiler.
dviout.c 文件参考
#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"
dviout.c 的引用(Include)关系图:

结构体

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