« 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) »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/80472/28857441

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

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