TeX in C
Explore TeX with modern c compiler.
|
函数 | |
void | eqtb_init_once () |
[#222, #228, #232, #240, #250] 更多... | |
void | eqtb_init () |
[#254] 更多... | |
void | print_skip_param (Integer code) |
[#225]: 打印 glue 参数的名称 更多... | |
void | fix_date_and_time (Integer *p_time, Integer *p_day, Integer *p_month, Integer *p_year) |
[p97#241] establishes the initial values of the date and time. 更多... | |
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: 更多... | |
变量 | |
UChar | diag_oldsetting |
[ #220~255: THE TABLE OF EQUIVALENTS ] 更多... | |
MemoryWord | eqtb [EQTB_SIZE+1] |
#253 更多... | |
QuarterWord | xeqlevel [EQTB_SIZE - INT_BASE+1] |
Boolean | use_independence_date = false |
#define abovedisplayshortskip glue_par(ABOVE_DISPLAY_SHORT_SKIP_CODE) |
#define abovedisplayskip glue_par(ABOVE_DISPLAY_SKIP_CODE) |
#define ACTIVE_BASE 1 |
[p82#222] [region 1] eqtb[ACTIVE_BASE, (HASH_BASE - 1)] holds current equivalents of single-character control sequences.
[p82#222] beginning of [region 1], for active character equivalents.
#define adjdemerits int_par(adjdemeritscode) |
#define baselineskip glue_par(BASELINE_SKIP_CODE) |
#define belowdisplayshortskip glue_par(BELOW_DISPLAY_SHORT_SKIP_CODE) |
#define belowdisplayskip glue_par(BELOW_DISPLAY_SKIP_CODE) |
#define binoppenalty int_par(binoppenaltycode) |
#define boxmaxdepth dimen_par(boxmaxdepthcode) |
#define brokenpenalty int_par(brokenpenaltycode) |
#define cat_code | ( | x | ) | equiv(CAT_CODE_BASE + x) |
#define CAT_CODE_BASE (MATH_FONT_BASE + 48) |
[p87#230] [region 4] table of 256 command codes (the “catcodes”).
#define clubpenalty int_par(clubpenaltycode) |
#define count | ( | x | ) | eqtb[COUNT_BASE + x].int_ |
[p92#236] -> Integer;
#define cur_font equiv(CUR_FONT_LOC) |
#define curfam int_par(curfamcode) |
#define defaulthyphenchar int_par(defaulthyphencharcode) |
#define defaultskewchar int_par(defaultskewcharcode) |
#define del_code | ( | x | ) | eqtb[DEL_CODE_BASE + x].int_ |
[p92#236] -> Integer;
#define DEL_CODE_BASE (COUNT_BASE + 256) |
[p92#236] [region 5] 256 delimiter code mappings.
#define delimiterfactor int_par(delimiterfactorcode) |
#define delimitershortfall dimen_par(delimitershortfallcode) |
#define dimen | ( | x | ) | eqtb[SCALED_BASE + x].sc |
[p99#247] -> Scaled; Dimen pars
#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.
[p92#236] [region 6] beginning of region 6.
#define dimen_par | ( | x | ) | eqtb[DIMEN_BASE + x].sc |
[p99#247] -> Scaled; a scaled quantity
#define displayindent dimen_par(displayindentcode) |
#define displaywidowpenalty int_par(displaywidowpenaltycode) |
#define displaywidth dimen_par(displaywidthcode) |
#define doublehyphendemerits int_par(doublehyphendemeritscode) |
#define emergencystretch dimen_par(emergencystretchcode) |
#define end_line_char int_par(endlinecharcode) |
#define eq_level | ( | x | ) | eq_level_field(eqtb[x]) |
[p81#221] -> QuarterWord = EqLevel; level of definition.
#define eq_level_field | ( | x | ) | x.hh.UU.U2.b1 |
[p81#221] MemoryWord -> QuarterWord
#define eq_type | ( | x | ) | eq_type_field(eqtb[x]) |
[p81#221] -> QuarterWord = TexCommandCode; command code for equivalent.
#define eq_type_field | ( | x | ) | x.hh.UU.U2.b0 |
[p81#221] MemoryWord -> QuarterWord
#define EQTB_SIZE (SCALED_BASE + 255) |
#define equiv | ( | x | ) | equiv_field(eqtb[x]) |
[p81#221] -> HalfWord; equivalent value.
may be
#define equiv_field | ( | x | ) | x.hh.rh |
[p81#221] MemoryWord -> QuarterWord
#define errhelp equiv(ERR_HELP_LOC) |
#define errorcontextlines int_par(errorcontextlinescode) |
#define ESCAPE_CHAR int_par(ESCAPE_CHARcode) |
#define everycr equiv(EVERY_CR_LOC) |
#define everydisplay equiv(EVERY_DISPLAY_LOC) |
#define everyhbox equiv(EVERY_HBOX_LOC) |
#define everyjob equiv(EVERY_JOB_LOC) |
#define everymath equiv(EVERY_MATH_LOC) |
#define everypar equiv(EVERY_PAR_LOC) |
#define everyvbox equiv(EVERY_VBOX_LOC) |
#define exhyphenpenalty int_par(exhyphenpenaltycode) |
#define fam_fnt | ( | x | ) | equiv(MATH_FONT_BASE + x) |
#define finalhyphendemerits int_par(finalhyphendemeritscode) |
#define floatingpenalty int_par(floatingpenaltycode) |
#define FONT_ID_BASE (FROZEN_NULL_FONT - FONT_BASE) |
[region 2] begins table of 257 permanent font identifiers.
#define globaldefs int_par(globaldefscode) |
#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.
[p82#222] beginning of [region 3]; glue parameters
#define hangafter int_par(hangaftercode) |
#define hangindent dimen_par(hangindentcode) |
[p82#222] [region 2] eqtb[HASH_BASE, (GLUE_BASE - 1)] holds current equivalents of multiletter control sequences.
[p82#222] beginning of [region 2], for the hash table.
#define hbadness int_par(hbadnesscode) |
#define hoffset dimen_par(hoffsetcode) |
#define holdinginserts int_par(holdinginsertscode) |
#define hyphenpenalty int_par(hyphenpenaltycode) |
#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.
[p87#230] [region 5] beginning of [region 5].
#define interlinepenalty int_par(interlinepenaltycode) |
#define language int_par(languagecode) |
#define lc_code | ( | x | ) | equiv(LC_CODE_BASE + x) |
#define LC_CODE_BASE (CAT_CODE_BASE + 256) |
[p87#230] [region 4] table of 256 lowercase mappings.
#define lefthyphenmin int_par(lefthyphenmincode) |
#define leftskip glue_par(LEFT_SKIP_CODE) |
#define linepenalty int_par(linepenaltycode) |
#define lineskip glue_par(LINE_SKIP_CODE) |
#define lineskiplimit dimen_par(lineskiplimitcode) |
#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 looseness int_par(loosenesscode) |
#define math_code | ( | x | ) | equiv(MATH_CODE_BASE + x) |
Note: |mathcode(c)| is the true math code plus |minhalfword|
#define MATH_CODE_BASE (SF_CODE_BASE + 256) |
[p87#230] [region 4] table of 256 math mode mappings.
#define MATH_FONT_BASE (CUR_FONT_LOC + 1) |
[p87#230] [region 4] table of 48 math font numbers.
#define mathsurround dimen_par(mathsurroundcode) |
#define maxdeadcycles int_par(maxdeadcyclescode) |
#define maxdepth dimen_par(maxdepthcode) |
#define medmuskip glue_par(MED_MU_SKIP_CODE) |
#define muskip | ( | x | ) | equiv(MU_SKIP_BASE + x) |
[p83#224] mem location of math glue spec.
#define newlinechar int_par(newlinecharcode) |
#define NULL_CS (SINGLE_BASE + 256) |
[p82#222] [region 1] equivalent of \csname\endcsname
#define nulldelimiterspace dimen_par(nulldelimiterspacecode) |
#define outputpenalty int_par(outputpenaltycode) |
#define outputroutine equiv(OUTPUT_ROUTINE_LOC) |
#define overfullrule dimen_par(overfullrulecode) |
#define parfillskip glue_par(PAR_FILL_SKIP_CODE) |
#define parindent dimen_par(parindentcode) |
#define parshapeptr equiv(PAR_SHAPE_LOC) |
#define parskip glue_par(PAR_SKIP_CODE) |
#define pausing int_par(pausingcode) |
#define postdisplaypenalty int_par(postdisplaypenaltycode) |
#define predisplaypenalty int_par(predisplaypenaltycode) |
#define predisplaysize dimen_par(predisplaysizecode) |
#define pretolerance int_par(pretolerancecode) |
#define relpenalty int_par(relpenaltycode) |
#define righthyphenmin int_par(righthyphenmincode) |
#define rightskip glue_par(RIGHT_SKIP_CODE) |
#define SCALED_BASE (DIMEN_BASE + dimenpars) |
[#247] [region 6] 256 user-defined \dimen registers.
#define scriptspace dimen_par(scriptspacecode) |
#define sf_code | ( | x | ) | equiv(SF_CODE_BASE + x) |
#define SF_CODE_BASE (UC_CODE_BASE + 256) |
[p87#230] [region 4] table of 256 spacefactor mappings.
#define showboxbreadth int_par(showboxbreadthcode) |
#define showboxdepth int_par(showboxdepthcode) |
#define SINGLE_BASE (ACTIVE_BASE + 256) |
[p82#222] [region 1] equivalents of one-character control sequences.
#define spaceskip glue_par(SPACE_SKIP_CODE) |
#define splitmaxdepth dimen_par(splitmaxdepthcode) |
#define splittopskip glue_par(SPLIT_TOP_SKIP_CODE) |
#define tabskip glue_par(TAB_SKIP_CODE) |
#define thickmuskip glue_par(THICK_MU_SKIP_CODE) |
#define thinmuskip glue_par(THIN_MU_SKIP_CODE) |
#define tolerance int_par(tolerancecode) |
#define topskip glue_par(TOP_SKIP_CODE) |
#define tracingcommands int_par(tracingcommandscode) |
#define tracinglostchars int_par(tracinglostcharscode) |
#define tracingmacros int_par(tracingmacroscode) |
#define tracingonline int_par(tracingonlinecode) |
#define tracingoutput int_par(tracingoutputcode) |
#define tracingpages int_par(tracingpagescode) |
#define tracingparagraphs int_par(tracingparagraphscode) |
#define tracingrestores int_par(tracingrestorescode) |
#define tracingstats int_par(tracingstatscode) |
#define uc_code | ( | x | ) | equiv(UC_CODE_BASE + x) |
#define UC_CODE_BASE (LC_CODE_BASE + 256) |
[p87#230] [region 4] table of 256 uppercase mappings.
#define uchyph int_par(uchyphcode) |
#define UNDEFINED_CONTROL_SEQUENCE (FROZEN_NULL_FONT + 257) |
[region 2] dummy location.
#define VAR_CODE 28672 |
[#232] math code meaning “use the current family”
#define vbadness int_par(vbadnesscode) |
#define voffset dimen_par(voffsetcode) |
#define widowpenalty int_par(widowpenaltycode) |
#define xspaceskip glue_par(XSPACE_SKIP_CODE) |
enum DelimiterCodesTable |
[#236] [Region 5] of eqtb
contains the integer parameters and registers defined here, as well as the del code table.
enum DimensionRegisters |
[p99#247]: final region [region 6] of eqtb
contains the dimension parameters defined here, and the 256 \dimen
registers.
enum EqLevel |
[p81#221] level of grouping at which this equivalent was defined.
枚举值 | |
---|---|
LEVEL_ZERO | level for undefined quantities. |
LEVEL_ONE | outermost level for defined quantities. |
enum FrozenControlSeq |
[p82#222] [region 2] for control sequences that are perpetually defined (since they are used in error recovery)
enum SkipRegisters |
[p83#224] [Region 3] of eqtb
contains the 256 \skip
registers
值得注意的点: muskip
比其他参数大
enum TokenListLoc |
void begin_diagnostic | ( | void | ) |
[#245] prepare to do some tracing.
void end_diagnostic | ( | Boolean | blankline | ) |
[#245] restore proper conditions after tracing.
void eqtb_init | ( | ) |
[#254]
void eqtb_init_once | ( | ) |
[#222, #228, #232, #240, #250]
[p82#222]
[p85#228]
[p88#232]
TODO: 为什么忽略了一部分 catcode?
[p97#240]
[p101#250]
[p97#241] establishes the initial values of the date and time.
[out] | p_time | minutes since midnight |
[out] | p_day | fourth day of the month |
[out] | p_month | seventh month of the year |
[out] | p_year | Anno Domini |
void print_skip_param | ( | Integer | code | ) |
[#225]: 打印 glue
参数的名称
[in] | code |
函数会打印参数对应的字符串。 如果没有对应的字符串,则打印 "[unknown glue parameter!]"
void show_eqtb | ( | HalfWord | n | ) |
#252:
[#223] Show equivalent n, in region 1 or 2.
[#229] Show equivalent n, in region 3.
[#223] Show equivalent n, in region 4.
[#234] Show the font identifier in eqtb[n]
[#242] Show equivalent n, in region 5
[#251] Show equivalent n, in region 6
n > EQTB_SIZE
UChar diag_oldsetting |
[ #220~255: THE TABLE OF EQUIVALENTS ]
MemoryWord eqtb[EQTB_SIZE+1] |
#253
Boolean use_independence_date = false |
QuarterWord xeqlevel[EQTB_SIZE - INT_BASE+1] |