[Po4a-devel]Call for a (La)TeX module

Nicolas François nicolas.francois@centraliens.net
Wed, 15 Dec 2004 23:27:22 +0100


--EeQfGwPcQSOJBaQU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hello,

Here is the progress of the LaTeX module (attached; I plan to clean it and
commit it this week-end):

  - derivation of the TeX module is possible
    (a LaTeX moduleis attached. It only contains definition of new
    commands)
  - the class file is read in order to parse "% po4a:" lines
    (I only support "command1 alias command2" at this time, i.e.
    specifying that a command should be handled the same way as another
    one)
  - file inclusion
    I've been able to get po4a normalizing all the files of the book with
    only this command:
        po4a-normalize -f LaTeX data/bk2/bk2.tex
    (only one chapter - ch05 - is ignored from the \include command,
    because of a bug - see below)
    I've done it in a quite different way than Sgml.pm because I wanted to
    keep the line references, and I could not remove end of lines as
    in Sgml.
    In read, I'm calling parse_file. And in parse_file, I calling
    again parse_file when a \include is encountered, so that files are
    included at the right place. parse_file is quite equivalent to
    Transtractor's parse (with the \include difference).
    If this is not the right way to include files, please stop me
    before this week-end.

Identified bugs
  - a command argument can contain an empty line (chapter 5), the parse
    function should make sure that after the separation in paragraphs, it
    didn't break inside a command argument.
  - I'm not really happy with the way I'm dealing with spaces (or tab or
    newlines) between commands, or between commands and text. But it seems
    necessary.
  - I'm assuming the class file and included file will be found at the
    right place
  - some additional empty lines are added (this should not be an issue,
    but I would like to understand where it happens)
  - There's a small difference in the table of content (I need to analyze
    this)
  - Plenty other are lurking;)

Missing features
  - a category for commands that can be separated from a paragraph when
    located at its beginning or its end (at this time all are separated)
  - more "% po4a:" stuff
  - the class file will need to be translated
  - many others


The only regression test I tried after the po4a-normalization is to display
both PDF superposed and switching from one to the other. Eyes are
usually very sensitive to small changes (even spacing changes). At
this time I only detected one small difference (in the table of content) up
to the 26th page.


-- 
Nekral

--EeQfGwPcQSOJBaQU
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="TeX.tar.bz2"
Content-Transfer-Encoding: base64

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

--EeQfGwPcQSOJBaQU--