TeX in C
Explore TeX with modern c compiler.
eqtb.h 文件参考
#include "global.h"
#include "tex_constant.h"
eqtb.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

宏定义

#define INC_EQTB_H
 
#define ACTIVE_BASE   1
 [p82#222] [region 1] eqtb[ACTIVE_BASE, (HASH_BASE - 1)] holds current equivalents of single-character control sequences. 更多...
 
#define SINGLE_BASE   (ACTIVE_BASE + 256)
 [p82#222] [region 1] equivalents of one-character control sequences. 更多...
 
#define NULL_CS   (SINGLE_BASE + 256)
 [p82#222] [region 1] equivalent of \csname\endcsname 更多...
 
#define eq_level_field(x)   x.hh.UU.U2.b1
 [p81#221] MemoryWord -> QuarterWord 更多...
 
#define eq_type_field(x)   x.hh.UU.U2.b0
 [p81#221] MemoryWord -> QuarterWord 更多...
 
#define equiv_field(x)   x.hh.rh
 [p81#221] MemoryWord -> QuarterWord 更多...
 
#define eq_level(x)   eq_level_field(eqtb[x])
 [p81#221] -> QuarterWord = EqLevel; level of definition. 更多...
 
#define eq_type(x)   eq_type_field(eqtb[x])
 [p81#221] -> QuarterWord = TexCommandCode; command code for equivalent. 更多...
 
#define equiv(x)   equiv_field(eqtb[x])
 [p81#221] -> HalfWord; equivalent value. 更多...
 
#define HASH_BASE   (NULL_CS + 1)
 [p82#222] [region 2] eqtb[HASH_BASE, (GLUE_BASE - 1)] holds current equivalents of multiletter control sequences. 更多...
 
#define FONT_ID_BASE   (FROZEN_NULL_FONT - FONT_BASE)
 [region 2] begins table of 257 permanent font identifiers. 更多...
 
#define UNDEFINED_CONTROL_SEQUENCE   (FROZEN_NULL_FONT + 257)
 [region 2] dummy location. 更多...
 
#define GLUE_BASE   (UNDEFINED_CONTROL_SEQUENCE + 1)
 [p83#224] [region 3] eqtb[HASH_BASE, (GLUE_BASE - 1)] holds current equivalents of glue parameters like the current baselineskip. 更多...
 
#define SKIP_BASE   (GLUE_BASE + GLUE_PARS)
 [p83#224] [region 3] table of 256 “skip” registers 更多...
 
#define MU_SKIP_BASE   (SKIP_BASE + 256)
 [p83#224] [region 3] table of 256 “muskip” registers. 更多...
 
#define skip(x)   equiv(SKIP_BASE + x)
 [p83#224] mem location of glue specification. 更多...
 
#define muskip(x)   equiv(MU_SKIP_BASE + x)
 [p83#224] mem location of math glue spec. 更多...
 
#define glue_par(x)   equiv(GLUE_BASE + x)
 [p83#224] mem location of glue specification. 更多...
 
#define lineskip   glue_par(LINE_SKIP_CODE)
 
#define baselineskip   glue_par(BASELINE_SKIP_CODE)
 
#define parskip   glue_par(PAR_SKIP_CODE)
 
#define abovedisplayskip   glue_par(ABOVE_DISPLAY_SKIP_CODE)
 
#define belowdisplayskip   glue_par(BELOW_DISPLAY_SKIP_CODE)
 
#define abovedisplayshortskip   glue_par(ABOVE_DISPLAY_SHORT_SKIP_CODE)
 
#define belowdisplayshortskip   glue_par(BELOW_DISPLAY_SHORT_SKIP_CODE)
 
#define leftskip   glue_par(LEFT_SKIP_CODE)
 
#define rightskip   glue_par(RIGHT_SKIP_CODE)
 
#define topskip   glue_par(TOP_SKIP_CODE)
 
#define splittopskip   glue_par(SPLIT_TOP_SKIP_CODE)
 
#define tabskip   glue_par(TAB_SKIP_CODE)
 
#define spaceskip   glue_par(SPACE_SKIP_CODE)
 
#define xspaceskip   glue_par(XSPACE_SKIP_CODE)
 
#define parfillskip   glue_par(PAR_FILL_SKIP_CODE)
 
#define thinmuskip   glue_par(THIN_MU_SKIP_CODE)
 
#define medmuskip   glue_par(MED_MU_SKIP_CODE)
 
#define thickmuskip   glue_par(THICK_MU_SKIP_CODE)
 
#define LOCAL_BASE   (MU_SKIP_BASE + 256)
 [p87#230] [region 4] eqtb[GLUE_BASE, (LOCAL_BASE - 1)] holds current equivalents of local halfword quantities like 更多...
 
#define BOX_BASE   (TOKS_BASE + 256)
 [p87#230] [region 4] table of 256 box registers. 更多...
 
#define CUR_FONT_LOC   (BOX_BASE + 256)
 [p87#230] [region 4] internal font number outside math mode. 更多...
 
#define MATH_FONT_BASE   (CUR_FONT_LOC + 1)
 [p87#230] [region 4] table of 48 math font numbers. 更多...
 
#define CAT_CODE_BASE   (MATH_FONT_BASE + 48)
 [p87#230] [region 4] table of 256 command codes (the “catcodes”). 更多...
 
#define LC_CODE_BASE   (CAT_CODE_BASE + 256)
 [p87#230] [region 4] table of 256 lowercase mappings. 更多...
 
#define UC_CODE_BASE   (LC_CODE_BASE + 256)
 [p87#230] [region 4] table of 256 uppercase mappings. 更多...
 
#define SF_CODE_BASE   (UC_CODE_BASE + 256)
 [p87#230] [region 4] table of 256 spacefactor mappings. 更多...
 
#define MATH_CODE_BASE   (SF_CODE_BASE + 256)
 [p87#230] [region 4] table of 256 math mode mappings. 更多...
 
#define parshapeptr   equiv(PAR_SHAPE_LOC)
 
#define outputroutine   equiv(OUTPUT_ROUTINE_LOC)
 
#define everypar   equiv(EVERY_PAR_LOC)
 
#define everymath   equiv(EVERY_MATH_LOC)
 
#define everydisplay   equiv(EVERY_DISPLAY_LOC)
 
#define everyhbox   equiv(EVERY_HBOX_LOC)
 
#define everyvbox   equiv(EVERY_VBOX_LOC)
 
#define everyjob   equiv(EVERY_JOB_LOC)
 
#define everycr   equiv(EVERY_CR_LOC)
 
#define errhelp   equiv(ERR_HELP_LOC)
 
#define toks(x)   equiv(TOKS_BASE + x)
 [p87#230] 更多...
 
#define box(x)   equiv(BOX_BASE + x)
 
#define cur_font   equiv(CUR_FONT_LOC)
 
#define fam_fnt(x)   equiv(MATH_FONT_BASE + x)
 
#define cat_code(x)   equiv(CAT_CODE_BASE + x)
 
#define lc_code(x)   equiv(LC_CODE_BASE + x)
 
#define uc_code(x)   equiv(UC_CODE_BASE + x)
 
#define sf_code(x)   equiv(SF_CODE_BASE + x)
 
#define math_code(x)   equiv(MATH_CODE_BASE + x)
 Note: |mathcode(c)| is the true math code plus |minhalfword| 更多...
 
#define NULL_FONT   FONT_BASE
 [#232] 更多...
 
#define VAR_CODE   28672
 [#232] math code meaning “use the current family” 更多...
 
#define INT_BASE   (MATH_CODE_BASE + 256)
 [p91#236] [region 5] eqtb[INT_BASE, (DIMEN_BASE - 1)] holds current equivalents of fullword integer parameters like the current hyphenation penalty. 更多...
 
#define COUNT_BASE   (INT_BASE + INT_PARS)
 [p92#236] [region 5] 256 user \count registers. 更多...
 
#define DEL_CODE_BASE   (COUNT_BASE + 256)
 [p92#236] [region 5] 256 delimiter code mappings. 更多...
 
#define del_code(x)   eqtb[DEL_CODE_BASE + x].int_
 [p92#236] -> Integer; 更多...
 
#define count(x)   eqtb[COUNT_BASE + x].int_
 [p92#236] -> Integer; 更多...
 
#define int_par(x)   eqtb[INT_BASE + x].int_
 [p92#236] -> Integer; Integer parameters 更多...
 
#define pretolerance   int_par(pretolerancecode)
 
#define tolerance   int_par(tolerancecode)
 
#define linepenalty   int_par(linepenaltycode)
 
#define hyphenpenalty   int_par(hyphenpenaltycode)
 
#define exhyphenpenalty   int_par(exhyphenpenaltycode)
 
#define clubpenalty   int_par(clubpenaltycode)
 
#define widowpenalty   int_par(widowpenaltycode)
 
#define displaywidowpenalty   int_par(displaywidowpenaltycode)
 
#define brokenpenalty   int_par(brokenpenaltycode)
 
#define binoppenalty   int_par(binoppenaltycode)
 
#define relpenalty   int_par(relpenaltycode)
 
#define predisplaypenalty   int_par(predisplaypenaltycode)
 
#define postdisplaypenalty   int_par(postdisplaypenaltycode)
 
#define interlinepenalty   int_par(interlinepenaltycode)
 
#define doublehyphendemerits   int_par(doublehyphendemeritscode)
 
#define finalhyphendemerits   int_par(finalhyphendemeritscode)
 
#define adjdemerits   int_par(adjdemeritscode)
 
#define mag   int_par(magcode)
 
#define delimiterfactor   int_par(delimiterfactorcode)
 
#define looseness   int_par(loosenesscode)
 
#define tex_time   int_par(timecode)
 
#define day   int_par(daycode)
 
#define month   int_par(monthcode)
 
#define year   int_par(yearcode)
 
#define showboxbreadth   int_par(showboxbreadthcode)
 
#define showboxdepth   int_par(showboxdepthcode)
 
#define hbadness   int_par(hbadnesscode)
 
#define vbadness   int_par(vbadnesscode)
 
#define pausing   int_par(pausingcode)
 
#define tracingonline   int_par(tracingonlinecode)
 
#define tracingmacros   int_par(tracingmacroscode)
 
#define tracingstats   int_par(tracingstatscode)
 
#define tracingparagraphs   int_par(tracingparagraphscode)
 
#define tracingpages   int_par(tracingpagescode)
 
#define tracingoutput   int_par(tracingoutputcode)
 
#define tracinglostchars   int_par(tracinglostcharscode)
 
#define tracingcommands   int_par(tracingcommandscode)
 
#define tracingrestores   int_par(tracingrestorescode)
 
#define uchyph   int_par(uchyphcode)
 
#define outputpenalty   int_par(outputpenaltycode)
 
#define maxdeadcycles   int_par(maxdeadcyclescode)
 
#define hangafter   int_par(hangaftercode)
 
#define floatingpenalty   int_par(floatingpenaltycode)
 
#define globaldefs   int_par(globaldefscode)
 
#define curfam   int_par(curfamcode)
 
#define ESCAPE_CHAR   int_par(ESCAPE_CHARcode)
 
#define defaulthyphenchar   int_par(defaulthyphencharcode)
 
#define defaultskewchar   int_par(defaultskewcharcode)
 
#define end_line_char   int_par(endlinecharcode)
 
#define newlinechar   int_par(newlinecharcode)
 
#define language   int_par(languagecode)
 
#define lefthyphenmin   int_par(lefthyphenmincode)
 
#define righthyphenmin   int_par(righthyphenmincode)
 
#define holdinginserts   int_par(holdinginsertscode)
 
#define errorcontextlines   int_par(errorcontextlinescode)
 
#define DIMEN_BASE   (DEL_CODE_BASE + 256)
 [p99#247] [region 6] eqtb[DIMEN_BASE, EQTB_SIZE] holds current equivalents of fullword dimension parameters like the current hsize or amount of hanging indentation. 更多...
 
#define SCALED_BASE   (DIMEN_BASE + dimenpars)
 [#247] [region 6] 256 user-defined \dimen registers. 更多...
 
#define EQTB_SIZE   (SCALED_BASE + 255)
 
#define dimen(x)   eqtb[SCALED_BASE + x].sc
 [p99#247] -> Scaled; Dimen pars 更多...
 
#define dimen_par(x)   eqtb[DIMEN_BASE + x].sc
 [p99#247] -> Scaled; a scaled quantity 更多...
 
#define parindent   dimen_par(parindentcode)
 
#define mathsurround   dimen_par(mathsurroundcode)
 
#define lineskiplimit   dimen_par(lineskiplimitcode)
 
#define hsize   dimen_par(hsizecode)
 
#define vsize   dimen_par(vsizecode)
 
#define maxdepth   dimen_par(maxdepthcode)
 
#define splitmaxdepth   dimen_par(splitmaxdepthcode)
 
#define boxmaxdepth   dimen_par(boxmaxdepthcode)
 
#define hfuzz   dimen_par(hfuzzcode)
 
#define vfuzz   dimen_par(vfuzzcode)
 
#define delimitershortfall   dimen_par(delimitershortfallcode)
 
#define nulldelimiterspace   dimen_par(nulldelimiterspacecode)
 
#define scriptspace   dimen_par(scriptspacecode)
 
#define predisplaysize   dimen_par(predisplaysizecode)
 
#define displaywidth   dimen_par(displaywidthcode)
 
#define displayindent   dimen_par(displayindentcode)
 
#define overfullrule   dimen_par(overfullrulecode)
 
#define hangindent   dimen_par(hangindentcode)
 
#define hoffset   dimen_par(hoffsetcode)
 
#define voffset   dimen_par(voffsetcode)
 
#define emergencystretch   dimen_par(emergencystretchcode)
 
#define savetype(x)   save_stack[x].hh.UU.U2.b0
 [p109#268] classifies a |save_stack| entry 更多...
 
#define savelevel(x)   save_stack[x].hh.UU.U2.b1
 [p109#268] saved level for regions 5 and 6, or group code 更多...
 
#define saveindex(x)   save_stack[x].hh.rh
 [p109#268] |eqtb| location or |save_stack| location 更多...
 
#define saved(x)   save_stack[save_ptr + x].int_
 [p111#274] 更多...
 

枚举

enum  EqLevel { LEVEL_ZERO = MIN_QUARTER_WORD , LEVEL_ONE }
 [p81#221] level of grouping at which this equivalent was defined. 更多...
 
enum  FrozenControlSeq {
  FROZEN_CONTROL_SEQUENCE = (HASH_BASE + HASH_SIZE) , FROZEN_PROTECTION = FROZEN_CONTROL_SEQUENCE , FROZEN_CR , FROZEN_END_GROUP ,
  FROZEN_RIGHT , FROZEN_FI , FROZEN_END_TEMPLATE , FROZEN_ENDV ,
  FROZEN_RELAX , END_WRITE , FROZEN_DONT_EXPAND , FROZEN_NULL_FONT
}
 [p82#222] [region 2] for control sequences that are perpetually defined (since they are used in error recovery) 更多...
 
enum  SkipRegisters {
  LINE_SKIP_CODE = 0 , BASELINE_SKIP_CODE , PAR_SKIP_CODE , ABOVE_DISPLAY_SKIP_CODE ,
  BELOW_DISPLAY_SKIP_CODE , ABOVE_DISPLAY_SHORT_SKIP_CODE = 5 , BELOW_DISPLAY_SHORT_SKIP_CODE , LEFT_SKIP_CODE ,
  RIGHT_SKIP_CODE , TOP_SKIP_CODE , SPLIT_TOP_SKIP_CODE = 10 , TAB_SKIP_CODE ,
  SPACE_SKIP_CODE , XSPACE_SKIP_CODE , PAR_FILL_SKIP_CODE , THIN_MU_SKIP_CODE = 15 ,
  MED_MU_SKIP_CODE , THICK_MU_SKIP_CODE , GLUE_PARS
}
 [p83#224] [Region 3] of eqtb contains the 256 \skip registers 更多...
 
enum  TokenListLoc {
  PAR_SHAPE_LOC = LOCAL_BASE , OUTPUT_ROUTINE_LOC , EVERY_PAR_LOC , EVERY_MATH_LOC ,
  EVERY_DISPLAY_LOC , EVERY_HBOX_LOC , EVERY_VBOX_LOC , EVERY_JOB_LOC ,
  EVERY_CR_LOC , ERR_HELP_LOC , TOKS_BASE
}
 
enum  DelimiterCodesTable {
  pretolerancecode = 0 , tolerancecode , linepenaltycode , hyphenpenaltycode ,
  exhyphenpenaltycode , clubpenaltycode , widowpenaltycode , displaywidowpenaltycode ,
  brokenpenaltycode , binoppenaltycode , relpenaltycode = 10 , predisplaypenaltycode ,
  postdisplaypenaltycode , interlinepenaltycode , doublehyphendemeritscode , finalhyphendemeritscode ,
  adjdemeritscode , magcode , delimiterfactorcode , loosenesscode ,
  timecode = 20 , daycode , monthcode , yearcode ,
  showboxbreadthcode , showboxdepthcode , hbadnesscode , vbadnesscode ,
  pausingcode , tracingonlinecode , tracingmacroscode = 30 , tracingstatscode ,
  tracingparagraphscode , tracingpagescode , tracingoutputcode , tracinglostcharscode ,
  tracingcommandscode , tracingrestorescode , uchyphcode , outputpenaltycode ,
  maxdeadcyclescode = 40 , hangaftercode , floatingpenaltycode , globaldefscode ,
  curfamcode , ESCAPE_CHARcode , defaulthyphencharcode , defaultskewcharcode ,
  endlinecharcode , newlinecharcode , languagecode = 50 , lefthyphenmincode ,
  righthyphenmincode , holdinginsertscode , errorcontextlinescode , INT_PARS = 55
}
 [#236] [Region 5] of eqtb contains the integer parameters and registers defined here, as well as the del code table. 更多...
 
enum  DimensionRegisters {
  parindentcode = 0 , mathsurroundcode , lineskiplimitcode , hsizecode ,
  vsizecode , maxdepthcode , splitmaxdepthcode , boxmaxdepthcode ,
  hfuzzcode , vfuzzcode , delimitershortfallcode = 10 , nulldelimiterspacecode ,
  scriptspacecode , predisplaysizecode , displaywidthcode , displayindentcode ,
  overfullrulecode , hangindentcode , hoffsetcode , voffsetcode ,
  emergencystretchcode = 20 , dimenpars
}
 [p99#247]: final region [region 6] of eqtb contains the dimension parameters defined here, and the 256 \dimen registers. 更多...
 
enum  SaveType { restoreoldvalue , restorezero , inserttoken , levelboundary }
 [#268] 更多...
 
enum  GroupCode {
  bottomlevel = 0 , simplegroup , hboxgroup , adjustedhboxgroup ,
  vboxgroup , vtopgroup = 5 , aligngroup , noaligngroup ,
  outputgroup , mathgroup , discgroup = 10 , insertgroup ,
  vcentergroup , mathchoicegroup , semisimplegroup , mathshiftgroup = 15 ,
  mathleftgroup = 16 , MAX_GROUP_CODE = 16
}
 [#269] group codes that are used to discriminate between different kinds of groups. 更多...
 

函数

void eqtb_init ()
 [#254] 更多...
 
void eqtb_init_once ()
 [#222, #228, #232, #240, #250] 更多...
 
void print_skip_param (Integer n)
 [#225]: 打印 glue 参数的名称 更多...
 
void begin_diagnostic (void)
 [#245] prepare to do some tracing. 更多...
 
void end_diagnostic (Boolean blankline)
 [#245] restore proper conditions after tracing. 更多...
 
void show_eqtb (HalfWord n)
 #252: 更多...
 
Integer get_defaultskewchar (void)
 
Integer get_defaulthyphenchar (void)
 
void eqtb_save_init ()
 [#272, #287] 更多...
 
void new_save_level (GroupCode c)
 
void eq_define (HalfWord p, QuarterWord t, HalfWord e)
 
void eq_word_define (HalfWord p, long w)
 
void geq_define (HalfWord p, QuarterWord t, HalfWord e)
 
void geq_word_define (HalfWord p, long w)
 
void save_for_after (HalfWord t)
 
void unsave (void)
 
void prepare_mag (void)
 

变量

MemoryWord eqtb [EQTB_SIZE+1]
 #253 更多...
 
QuarterWord xeqlevel [EQTB_SIZE - INT_BASE+1]
 
MemoryWord save_stack [SAVE_SIZE+1]
 [ #268~288: SAVING AND RESTORING EQUIVALENTS ] [#271] 更多...
 
UInt16 save_ptr
 
UInt16 max_save_stack
 
QuarterWord cur_level
 
GroupCode cur_group
 
Boolean use_independence_date
 

宏定义说明

◆ INC_EQTB_H

#define INC_EQTB_H

函数说明

◆ get_defaulthyphenchar()

Integer get_defaulthyphenchar ( void  )

◆ get_defaultskewchar()

Integer get_defaultskewchar ( void  )