« HTML + CSS で数式組版 (その13) | トップページ | HTML + CSS で数式組版 (その15) »

2009年3月29日 (日)

HTML + CSS で数式組版 (その14)

式中の分数の最大高さを求めます。

(defun max-velem-height (elems)
  (defun velem-height (e)
    (let ((c1 (car e))
          (c2 (cadr e)))
      (if (eq c1 'v) c2 0)))
  (defun iter (es i)
    (cond ((eq es nil) i)
          ((listp (car es))
           (iter (cdr es)
            (max (velem-height (car es)) i)))
          (t (iter (cdr es) i))))
  (iter elems 0))

このように:

(max-velem-height
 (get-elem-heights
  (parse-string
   "x = \\frac{a}{b} + c"
   0)))
=>2
(max-velem-height
 (get-elem-heights
  (parse-string
   "\\frac{1}{1 + \\frac{1}{2}} + a + \\frac{\\frac{1}{2} + 1}{1 + \\frac{1}{2}}"
   0)))
=>4

式中の分数の分子の最大高さを求めます。

(defun max-velem-n-height (elems)
  (defun velem-n-height (e)
    (let ((c1 (car e))
          (c2 (cadr e)))
      (if (eq c1 'v)
          (let ((c3 (caddr e)))
            (cadr c3))
        0)))
  (defun iter (es i)
    (cond ((eq es nil) i)
          ((listp (car es))
           (iter (cdr es)
            (max (velem-n-height (car es)) i)))
          (t (iter (cdr es) i))))
  (iter elems 0))

このように:

(max-velem-n-height
 (get-elem-heights
  (parse-string
   "x = \\frac{a}{b} + c"
   0)))
=>1
(max-velem-n-height
 (get-elem-heights
  (parse-string
   "\\frac{1}{1 + \\frac{1}{2}} + a + \\frac{\\frac{1}{2} + 1}{1 + \\frac{1}{2}}"
   0)))
=>2

|

« HTML + CSS で数式組版 (その13) | トップページ | HTML + CSS で数式組版 (その15) »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: HTML + CSS で数式組版 (その14):

« HTML + CSS で数式組版 (その13) | トップページ | HTML + CSS で数式組版 (その15) »