~ubuntu-branches/ubuntu/gutsy/hevea/gutsy

« back to all changes in this revision

Viewing changes to mathML.ml

  • Committer: Bazaar Package Importer
  • Author(s): Ralf Treinen
  • Date: 2006-10-21 19:12:35 UTC
  • Revision ID: james.westby@ubuntu.com-20061021191235-12qoqyt78la9ns66
Tags: 1.09-1
* New upstream release (closes: Bug#394133)
* updated upstream url in debian/control (package description) and 
  debian/watch.
* Adapted patches to new upstream version.
* Added manpage for bibhva.
* Updated url of HeVeA homepage in manpages.
* examples/bibtex: put all needed crossrefs and abbreviations into
  rewriting.bib; replace iso8859-1 characters by portable latex; fix
  Makefile to use bibhva and to uncompress rewriting.bib when necessary
* Manpages: document the new command line options 

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
(*                                                                     *)
10
10
(***********************************************************************)
11
11
 
12
 
let header = "$Id: mathML.ml,v 1.21 2004/11/26 13:13:05 maranget Exp $" 
 
12
let header = "$Id: mathML.ml,v 1.26 2006-04-13 16:55:56 maranget Exp $" 
13
13
 
14
14
 
15
15
open Misc
35
35
 
36
36
and end_item_display () =
37
37
  let f,is_freeze = pop_freeze () in
38
 
  let _ = close_flow_loc INTERN in
39
 
  if close_flow_loc (OTHER "mrow") then
 
38
  let _ = close_flow_loc check_empty INTERN in
 
39
  if close_flow_loc check_empty (OTHER "mrow") then
40
40
    flags.ncols <- flags.ncols + 1;
41
41
  if !verbose > 2 then begin
42
42
    Printf.fprintf stderr "end_item_display: ncols=%d stck: " flags.ncols;
125
125
  
126
126
let do_item_display _force =
127
127
  if !verbose > 2 then begin
128
 
    prerr_endline ("Item Display ncols="^string_of_int flags.ncols^" table_inside="^sbool flags.table_inside)
 
128
    prerr_endline ("Item Display in mathML ncols="^string_of_int flags.ncols^" table_inside="^sbool flags.table_inside)
129
129
  end ;
130
130
  let f,is_freeze = pop_freeze () in
131
131
  if ((*force && *)not flags.empty) || flags.table_inside then
329
329
  if not s_blank then begin
330
330
    let s_op = is_op s
331
331
    and s_number = is_number s in
332
 
    let save_last_closed = flags.last_closed in
333
332
    if is_open_delim s then open_delim ();
334
333
    let s_text = if is_close_delim s then is_close () else false in
335
 
    if s_op || s_number then force_item_display ();
 
334
    if (s_op || s_number) && !Lexstate.display then force_item_display ();
336
335
    do_pending () ;
337
336
    flags.empty <- false;
338
337
    flags.blank <- s_blank && flags.blank ;
347
346
    end else begin
348
347
      do_put s
349
348
    end;
350
 
    if s_blank then flags.last_closed <- save_last_closed;
351
349
    if is_close_delim s then close_delim ()
352
350
  end
353
351
;;
354
352
 
355
353
let put_char c =
356
 
  let save_last_closed = flags.last_closed in
357
354
  let c_blank = is_blank c in
358
355
  if c <> ' ' then begin
359
356
    let s = String.make 1 c in
361
358
    let c_digit = is_digit c in
362
359
    if is_open_delim s then open_delim ();
363
360
    let c_text = if is_close_delim s then is_close () else false in
364
 
    if c_op || c_digit then force_item_display ();
 
361
    if (c_op || c_digit) && !Lexstate.display then force_item_display ();
365
362
    do_pending () ;
366
363
    flags.empty <- false;
367
364
    flags.blank <- c_blank && flags.blank ;
374
371
    end else begin
375
372
      do_put_char c;
376
373
    end;
377
 
    if c_blank then flags.last_closed <- save_last_closed;
378
374
    if is_close_delim s then close_delim ();
379
375
  end
380
376
;;
383
379
  if flags.in_pre && !pedantic then
384
380
    put s
385
381
  else begin
386
 
    force_item_display ();
 
382
    if !Lexstate.display then force_item_display ();
387
383
    do_pending () ;
388
384
    do_put "<mi> ";
389
385
    do_put s;
506
502
;;
507
503
 
508
504
 
509
 
let over display lexbuf =
510
 
 if display then begin
511
 
    force_item_display ();
512
 
    let _mods = insert_vdisplay
513
 
        (fun () ->
514
 
          open_block (OTHER "mfrac") "";
515
 
          open_display ()) in
516
 
    force_item_display ();
517
 
    flags.ncols <- flags.ncols +1;
518
 
    close_display () ;
519
 
    open_display () ;
520
 
    freeze
 
505
let over _lexbuf =
 
506
  force_item_display ();
 
507
  let _mods = insert_vdisplay
521
508
      (fun () ->
522
 
        force_item_display ();
523
 
        flags.ncols <- flags.ncols +1;
524
 
        close_display () ;
525
 
        close_block (OTHER "mfrac"))
526
 
  end else begin
527
 
    put "/"
528
 
  end
 
509
        open_block (OTHER "mfrac") "";
 
510
        open_display ()) in
 
511
  force_item_display ();
 
512
  flags.ncols <- flags.ncols +1;
 
513
  close_display () ;
 
514
  open_display () ;
 
515
  freeze
 
516
    (fun () ->
 
517
      force_item_display ();
 
518
      flags.ncols <- flags.ncols +1;
 
519
      close_display () ;
 
520
      close_block (OTHER "mfrac"))
529
521
;;
530
522
 
531
523
let box_around_display _scanner _arg = ();;
532
524
 
533
 
let over_align _align1 _align2 display lexbuf = over display lexbuf
 
525
let over_align _align1 _align2 display lexbuf = over lexbuf
534
526
;;
535
527
 
536
528
let tr = function
541
533
| s   -> s
542
534
;;
543
535
 
544
 
let left delim k = 
 
536
let left delim _ k = 
545
537
  force_item_display ();
546
538
  open_display ();
547
539
  if delim <>"." then put ("<mo> "^ tr delim^" </mo>");
556
548
      close_display ();)
557
549
;;
558
550
 
559
 
let right delim =
560
 
  force_item_display ();
 
551
let right delim _ =
 
552
  if !Lexstate.display then force_item_display ();
561
553
  if delim <> "." then put ("<mo> "^tr delim^" </mo>");
562
 
  force_item_display ();
 
554
  if !Lexstate.display then force_item_display ();
563
555
  let f,is_freeze = pop_freeze () in
564
556
  if not is_freeze then begin
565
557
    warning "Right delimitor alone";