WWW-diary of Juhapekka Tolvanen:

Tuesday, 02 August 2005




08:04:16 EEST @252

Oon jostain aamukahdesta saakka väkertänyt gradua.

Vaikka TEX ja LATEX ovatkin erittäin vähäbugisia softia, niin ainakin TEX-distribuution nimeltä teTEX mukana tuleva pdfTEX ja pdfLATEX bugailee mulla vähän väliä, esim. tähän tapaan:

[23.35
./sosl70c.diskurssi.tex:144: pdfTeX error (ext4): \pdfendlink ended up in diffe
rent nesting level than \pdfstartlink
./sosl70c.diskurssi.tex:144:  ==> Fatal error occurred, the output PDF file is 
not finished!
Transcript written on sosl70c.log.

Tuota bugaamista olen välillä kiertänyt muuttelemalla "nesting leveliä" milloin mitenkin. Ja melkein sama LATEX-koodi kääntyy normaalissa LATEX -ajossa tuosta vaan. Olennaisin ero niissä on se, että pdfLATEX:ia ajaessa teksti on kaksipalstaista ja sivut ovat landscape-asennossa. Makefile:ssä "pdf-screen" on se "target", jolla tuo saadaan aikaan. Kuten nimikin sanoo, tuon on tarkoitus olla helpommin ruudulta luettavissa:

pdf-screen : purge-dvi
        pdflatex -file-line-error-style $(BASENAME).tex
        - bibtex $(BASENAME)
        - ./bibtexall
        pdflatex -src-specials -file-line-error-style $(BASENAME).tex
        while grep 'Rerun to get' $(BASENAME).log > /dev/null; do pdflatex -src-specials -file-line-error-style $(BASENAME).tex ; done
        mv -f $(BASENAME).pdf pdf/$(BASENAME).screen.pdf

pdf-print : postscript
        cp -f ps/$(BASENAME).ps ./
        ps2pdf14 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true $(BASENAME).ps
        mv -f $(BASENAME).pdf pdf/$(BASENAME).print.pdf
        rm -f $(BASENAME).ps

pdf : pdf-print pdf-screen

Mutta jos ollaan aivan tarkkoja, niin minulta ei varsinaisesti vaadita tuota pdf-screen:in tuottamaa kamaa. Lähinnä olen tehnyt sen auttaakseni niitä, jotka lukevat graduani ruudulta eikä paperille printattuna. Mutta graduni lopullinen versio menee arvosteltavaksi paperille printattuna. On kai pakko keskittyä olennaiseen: Täytynee pitää toistaiseksi poissa käytöstä toi "pdf-screen". Ainut huono puoli tässä on kyllä se, että pitää disabloida myös se Macromedia Flash -version generointi:

swf : pdf-screen
        cp -f pdf/$(BASENAME).screen.pdf ./
        pdf2swf -f -F $(CM-SUPER-DIR) -t $(BASENAME).screen.pdf
        mv -f ./$(BASENAME).screen.swf ./swf/
        rm -f $(BASENAME).screen.pdf

Mutta toi Flash-versio on tehty lähinnä tästä syystä: "Because I can!". Tosin voi se kai olla varteenotettava vaihtoehto sellaiselle lukijalle, jolla on Flash-plugin selaimessaan, mutta PDF- ja PS-katseluohjelmat puuttuvatu. Onneksi sentään HTML-version generointi tex4ht:lla toimii yhä.





08:34:12 EEST @273

Mun gradun HTML-version generoinissa on yksi pikku bugi: se tex4ht osaa kääntää LATEX-koodin HTML:ksi niin, että koko helahoito on yhtä tai useampana WWW-sivuna. Ja jos se käännetään usammaksi sivuksi, sitä voi säätää, miten pieniksi paloiksi se pilkotaan:

tex4ht-onepage : purge-html
        htlatex $(BASENAME).tex "xhtml,uni-html" " -cunihtf -cmozhtf"
        - bibtex $(BASENAME)
        - ./bibtexall
        htlatex $(BASENAME).tex "xhtml,uni-html" " -cunihtf -cmozhtf"
        - mkdir html.tex4ht.dir 2> /dev/null
        mv -f $(BASENAME)*.html *.css $(BASENAME)*.png html.tex4ht.dir/

tex4ht-splitpageone : purge-html
        htlatex $(BASENAME).tex "xhtml,uni-html,1" " -cunihtf -cmozhtf"
        - bibtex $(BASENAME)
        - ./bibtexall
        htlatex $(BASENAME).tex "xhtml,uni-html,1" " -cunihtf -cmozhtf"
        - mkdir html.tex4ht.split1.dir 2> /dev/null
        mv -f $(BASENAME)*.html *.css $(BASENAME)*.png html.tex4ht.split1.dir/

Nuo molemmat toimivat vielä ihan hyvin, ja pilkottua HTML:ää tehdessä voin jopa laittaa ton ykkösen tilalle kakkosen, mutta kolmosta käyttäessä alkaakin bugaus:

Liite B.
(./sosl70c.4ct [141]) [142] [143] [144] [145] [146] [147] [148] [149] [150]
[151] [152]) [153] [154] [155] (./sosl70c.lahteet.tex [156] [157] [158]
(./books.bbl
! I can't find file `books.4ct'.
\:TableOfContents ...nts \fi \input \jobname .4ct 
                                                  {\ht:everypar {}\leavevmod...
l.1 \begin{thebibliography}{8}

Please type another input file name: 

Mutta eipä kyllä tuokaan liene kovin vakavaa, koska niin pieniksi paloiksi pilkottua HTML:ää saattaisi olla aika inhaa lukea. Joten pidän sen targetin nimeltä "tex4ht-splitpagethree" disabloituna.





12:12:41 EEST @425

Väänsinpä vielä tuollaisen bugiraportin tex4ht:sta: 320933. Mutta ne aiemmin mainitsemani bugit raportoin ehkä toiste. teTEXistä pitäisi piakkoin ilmestyä versio 3.0 ja siinähän saattaa olla mukana sen verran tuoreempi pdf(LA)TEX, ettei se enää bugaakaan mun gradun kanssa. Joten ei ole kauheasti motivaatiota raportoida mulla olevan pdf(LA)TEXin bugeja. Mutta se aiemmin mainitsemani tex4ht:n bugi kannattaa ehkä raportoida.

Tosiaan, kuten bugiraportissani käy ilmi, tex4ht:n pitäisi osata konvertoida myös OpenOffice.org:in tiedostoformaattiin, mutta minulla se bugaa. Kokeilin jo myös konvertointia DocBook-DTD:tä käyttäväksi XML-filetoksi, mutta en vielä tiedä, tuliko siitä aivan validi tiedosto. Täytyy ehkä joskus tarkistaa asia.





13:09:24 EEST @464

Pläh! Ei toi tex4ht osaa tehdä validia DocBook-XML:ää ainaskaan mun gradusta. Koitin xmlto-softalla konvertointia ja virheilmoja tuli vaikka kuinka.





15:11:03 EEST @549

Meenpä nukq.





23:16:57 EEST @886

Heräsin joskus iltakahdeksan tienoilla.





Edellinen / Previous

Seuraava / Next

Juhapekka Tolvanen