- From: David Carlisle <davidc@nag.co.uk>
- Date: Wed, 5 Aug 1998 14:43:37 +0100
- To: www-math@w3.org
I am trying to declare entities for MathML:
6.2.1 Non-Marking Entities
Entity name Unicode Description
&Space; 0020 one em of space in the current font
Do I follow the second column and declare the entity Space to be a CDATA
entity pointing to hex 20 (decimal 32), in which case &Space; will be
indistinguishable from a space character and typically produce something
around 1/3 em, depending on the font, or should I follow the third
column and declare it to be <mspace width="1em"/> ?
Incidentally does anyone have dtds declaring the CDATA entities for
the symbols in chapter 6?
I am currently producing them as required by running the following emacs
lisp over the html files (the giff-less ones). But If there is a
standard reference set that could be used, that would be better.
David
======================
load up one of the html files (without gifs) from chap6/* and hit
M-x html2dtd
(defun html2dtd ()
(interactive)
(goto-char (point-min))
(delete-region (point) (progn (re-search-forward "= *$") (point)))
(delete-region (progn (re-search-forward "</PRE>") (match-beginning 0))
(point-max))
(unhexify)
(goto-char (point-min))
(while (re-search-forward "^[a-zA-Z]" (point-max) t)
(beginning-of-line)
(insert "<!ENTITY ")
(end-of-line)
(insert "-->")))
(defun unhexify ()
(interactive)
(goto-char (point-min))
(while (re-search-forward " \\([0-9A-F][0-9A-F][0-9A-F][0-9A-F]\\) " (point-max) t)
(let (( h
(buffer-substring (match-beginning 1) (match-end 1))))
(delete-region (- (match-beginning 1) 1) (match-end 1))
(goto-char (- (match-beginning 1)1))
(insert "CDATA \"\&\#")
(insert (int-to-string(hex h 0)))
(insert (concat ";\" -- u+" h " ")))))
(defun hex (h d)
(let* ((n (string-to-char h))
(dd (+ (* 16 d) (- n (if (< n 58) 48 55)))))
(if (= (length h) 1)
dd
(hex (substring h 1 nil) dd))))
Received on Wednesday, 5 August 1998 09:41:32 UTC