From: Ryszard K. <ry...@bi...> - 2005-10-11 16:45:07
|
tom sgouros wrote: > The hyperlatex-in-paragraph flag I introduced is not, however, the > only conditional flag in the code that controls paragraph placement. > But the real problem is that the hyperlatex parser design and HTML > semantics are fundamentally different than the TeX parser design and > LaTeX semantics. During the weekend I'll think on getting HypperLatex closer to TeX in the way it parses input to recognize paragraph borders. We should follow Knuth's approach in which vertical and horizontal modes, vertical lists and other notions have been introduced and are used for the purpose. > The uncertainty is made more acute for two reasons. One is that > there is a wide variety of browsers out there and they all seem to > differ about what is good html. That's right. TeX's semantics has been defined precisely in the program of TeX. There is no formal semantics of HTML. Its RFC is imprecise, mostly because it's expressed a natural language. Thus, the authors of browsers have some freedom in understanding it. > I'd also like to change the way Hyperlatex writes its output right > into the same buffer as it's getting its input. This makes the second > pass pretty confusing, requires that a substantial number of macros > are interpreted twice in exactly the same way, which seems > inefficient, and requires protecting characters in such a way that > dealing with alternate character sets in a robust way is difficult. > But this is also a substantial task, and there may be design issues I > don't know about that dictated this choice in the first place. I agree. It strikes me that everything in HyperLatex -- reading and writing -- happens in just one buffer. Should it be not Emacs I would first convert the input to some well-defined internal structure, that is to an abstract syntax tree, and then inteprete the tree in order to generate output. I have successfully applied such an approach in a few Haskell programs that analyse XML documents and generate TeX code. Emacs LISP, though, is not equipped with such a nice system of types as Haskell is... I want to concentrate on the paragraphs first. I hope to come with new ideas after the weekend. Greetings, Rysiek |