summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/tex/texmath.w
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex/texmath.w')
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/texmath.w90
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)));