diff options
author | Taco Hoekwater <taco@elvenkind.com> | 2011-04-12 14:17:47 +0000 |
---|---|---|
committer | Taco Hoekwater <taco@elvenkind.com> | 2011-04-12 14:17:47 +0000 |
commit | 307453997ef030ec4dfa1e876feaf0b8b8125bab (patch) | |
tree | ab2054693ba95e9ac8f6e3478b4d0175d893329f /Build/source/texk/web2c/luatexdir/tex/texmath.w | |
parent | d95b11a25d3d9e17cc4afb9c8713ef4037567527 (diff) |
check in luatex 0.66.0
git-svn-id: svn://tug.org/texlive/trunk@22059 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex/texmath.w')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/tex/texmath.w | 90 |
1 files changed, 74 insertions, 16 deletions
diff --git a/Build/source/texk/web2c/luatexdir/tex/texmath.w b/Build/source/texk/web2c/luatexdir/tex/texmath.w index f435ddb312f..47ed05d2651 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texmath.w +++ b/Build/source/texk/web2c/luatexdir/tex/texmath.w @@ -21,8 +21,8 @@ #include "ptexlib.h" static const char _svn_version[] = - "$Id: texmath.w 3612 2010-04-13 09:29:42Z taco $ " - "$URL: http://foundry.supelec.fr/svn/luatex/branches/0.60.x/source/texk/web2c/luatexdir/tex/texmath.w $"; + "$Id: texmath.w 3981 2010-11-26 12:26:44Z taco $ " + "$URL: http://foundry.supelec.fr/svn/luatex/tags/beta-0.66.0/source/texk/web2c/luatexdir/tex/texmath.w $"; @ @c #define mode cur_list.mode_field @@ -715,20 +715,62 @@ void display_normal_noad(pointer p) } break; case accent_noad: + if (accent_chr(p) != null) { + if (bot_accent_chr(p) != null) { + tprint_esc("Umathaccent both"); + } else { + tprint_esc("Umathaccent"); + } + } else { + tprint_esc("Umathaccent bottom"); + } + switch (subtype(p)) { + case 0: if (accent_chr(p) != null) { if (bot_accent_chr(p) != null) { - tprint_esc("Umathaccents"); print_fam_and_char(accent_chr(p)); print_fam_and_char(bot_accent_chr(p)); } else { - tprint_esc("accent"); print_fam_and_char(accent_chr(p)); } } else { - tprint_esc("Umathbotaccent"); print_fam_and_char(bot_accent_chr(p)); } break; + case 1: + if (accent_chr(p) != null) { + tprint(" fixed "); + print_fam_and_char(accent_chr(p)); + if (bot_accent_chr(p) != null) { + print_fam_and_char(bot_accent_chr(p)); + } + } else { + confusion("display_accent_noad"); + } + break; + case 2: + if (bot_accent_chr(p) != null) { + if (accent_chr(p) != null) { + print_fam_and_char(accent_chr(p)); + } + tprint(" fixed "); + print_fam_and_char(bot_accent_chr(p)); + } else{ + confusion("display_accent_noad"); + } + break; + case 3: + if (accent_chr(p) != null && bot_accent_chr(p) != null) { + tprint(" fixed "); + print_fam_and_char(accent_chr(p)); + tprint(" fixed "); + print_fam_and_char(bot_accent_chr(p)); + } else { + confusion("display_accent_noad"); + } + break; + } + break; } print_subsidiary_data(nucleus(p), '.'); print_subsidiary_data(supscr(p), '^'); @@ -1556,10 +1598,31 @@ void math_ac(void) } else if (cur_chr == 1) { /* \.{\\omathaccent} */ t = scan_mathchar(aleph_mathcode); } else if (cur_chr == 2) { /* \.{\\Umathaccent} */ - t = scan_mathchar(xetex_mathcode); - } else if (cur_chr == 3) { /* \.{\\Umathbotaccent} */ + if (scan_keyword("fixed")) { + subtype(tail) = 1; + t = scan_mathchar(xetex_mathcode); + } else if (scan_keyword("both")) { + if (scan_keyword("fixed")) { + subtype(tail) = 1; + } + t = scan_mathchar(xetex_mathcode); + if (scan_keyword("fixed")) { + subtype(tail) += 2; + } + b = scan_mathchar(xetex_mathcode); + } else if (scan_keyword("bottom")) { + if (scan_keyword("fixed")) { + subtype(tail) = 2; + } + b = scan_mathchar(xetex_mathcode); + } else { + t = scan_mathchar(xetex_mathcode); + } + } else if (cur_chr == 3) { /* deprecated: \.{\\Umathbotaccent} */ + pdftex_warn("\\Umathbotaccent is deprecated, please update to \\Umathaccent bottom"); b = scan_mathchar(xetex_mathcode); - } else if (cur_chr == 4) { /* \.{\\Umathaccents} */ + } else if (cur_chr == 4) { /* deprecated: \.{\\Umathaccents} */ + pdftex_warn("\\Umathaccents is deprecated, please update to \\Umathaccent both"); t = scan_mathchar(xetex_mathcode); b = scan_mathchar(xetex_mathcode); } else { @@ -2209,15 +2272,10 @@ resulting list, and with |aux_save| holding the |prev_depth| value. void finish_display_alignment(pointer p, pointer q, halfword saved_prevdepth) { do_assignments(); - if (cur_cmd != math_shift_cmd) { - const char *hlp[] = { - "Displays can use special alignments (like \\eqalignno)", - "only if nothing but the alignment itself is between $$'s.", - NULL - }; - back_error("Missing $$ inserted", hlp); - } else { + if (cur_cmd == math_shift_cmd) { check_second_math_shift(); + } else { + check_display_math_end(); } pop_nest(); tail_append(new_penalty(int_par(pre_display_penalty_code))); |