Heute hat Jörg meinen Artikel über die Umstzung von texinfo nach epub kommentiert und ein paar Fragen gestellt die ich gar nicht so ohne weiteres beantworten kann. Also mache ich das ganze Procedere nochmal, nicht zur Strafe, nur zur Übung und diesmal schreibe ich detailliert mit was ich tue.
Zunächst hole ich nochmals den Texinfo-Source des Buches über Autoconf etc. Dazu gehe ich auf die Webseite und gebe die drei Zeilen ein, die dort stehen:
1 2 3 |
$ cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/autobook login Password: anoncvs $ cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/autobook co autobook |
Danach habe ich in meinem Arbeitsverzeichnis das ich vorher angelegt habe ein Verzeichnis namens „autobook“. Dahin wechsle ich jetzt.
Als nächster Schritt muss ich erst mal ein configure-Script anlegen, das geschieht durch die das bootstrap-Script. Ich gebe also ein
1 |
$ ./bootstrap |
Danach existiert ein „configure“ in dem Verzeichnis. Das rufen wir doch gleich mal auf.
1 2 3 4 5 6 7 8 9 10 11 12 |
./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for gnum4... no checking for gm4... no checking for m4... /usr/bin/m4 configure: creating ./config.status config.status: creating Makefile config.status: creating examples/Makefile |
Als Erfolg dieses configure-Laufes habe ich also nun ein Makefile. Dieses Makefile hat am Ende eine Regel um die Datei „autobook.texi“ zu erzeugen. Also gebe ich mal ein:
1 |
$ make info |
Danach sehe ich zwar einige Fehlermeldungen, aber mein Ziel die Datei „autobook.texi“ zu erzeugen hat geklappt. Diese Datei hat 829 KBytes und wird jetzt in eine Docbook-XML-Datei umgewandelt:
1 |
$ makeinfo --docbook --force autobook.texi |
Den „–force“ Parameter nutze ich, weil makeinfo noch ein paar Zeilen anmosert. Danach habe ich die passende Docbook-XML-Datei mit dem namen „autobook.xml“.
Diese Datei bearbeiten wir erst mal noch mit sed so wie es hier beschrieben steht:
1 |
$sed -i -e 's#<para>&lt;setfilename&gt;.*&lt;/setfilename&gt;</para>##' autobook.xml |
Das ganze muß natürlich ein einer Zeile ohne Umbruch stehen.
Jetzt versuchen wir mal das Zeugs in ein epub zu verwandeln:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$ dbtoepub autobook.xml autobook.xml:2627: parser error : EntityRef: expecting ';' <command>ansi2knr</command> (see <xref linkend="K&R-Compilers"></xref>), which r ^ autobook.xml:2701: parser error : EntityRef: expecting ';' <sect2 label="9.1.6" id="K&R-Compilers"> ^ autobook.xml:3141: parser error : xmlParseEntityRef: no name <sect3 label="9.2.2.1" id="sic.c-&-sic.h"> ^ autobook.xml:3153: parser error : xmlParseEntityRef: no name <sect3 label="9.2.2.2" id="builtin.c-&-builtin.h"> ^ autobook.xml:3162: parser error : xmlParseEntityRef: no name <sect3 label="9.2.2.3" id="eval.c-&-eval.h"> ^ autobook.xml:3178: parser error : xmlParseEntityRef: no name <sect3 label="9.2.2.4" id="syntax.c-&-syntax.h"> ^ autobook.xml:3592: parser error : xmlParseEntityRef: no name <sect2 label="9.3.4" id="sic.c-&-sic.h-(again)"> ^ autobook.xml:5588: parser error : EntityRef: expecting ';' in <xref linkend="K&R-Compilers"></xref>.</para> ^ /usr/lib/ruby/1.8/dbtoepub/docbook.rb:132:in `collapse_docbook': Could not collapse named entites in autobook.xml (RuntimeError) from /usr/lib/ruby/1.8/dbtoepub/docbook.rb:73:in `render_to_epub' from /usr/lib/ruby/1.8/dbtoepub/docbook.rb:53:in `render_to_file' from /usr/bin/dbtoepub:70 from /usr/bin/dbtoepub:59:in `each' from /usr/bin/dbtoepub:59 |
Die Fehler sind wie schon damals beschrieben die Ampersand-Entities, die man im Editor nun einfach von „&“ in „&“ umwandeln muss. Das habe ich manuell gemacht, denn ein Substitue „&“ gegen „&“ würde mehr Schaden als Nutzen bringen, weil alle anderen Entities ja richtig sind und auch mit „&“ beginnen.
Nach dem Editorlauf geht  es deutlich besser:
1 |
$ dbtoepub autobook.xml |
Diesmal gibt es keine Fehlermeldungen und am Ende habe ich die 358 KB große epub-Datei auf der Platte liegen. Die kann ich jetzt mit calibre anschauen.
1 |
$ calibre autobook.epub |
Voila, es ist genau das Buch das ich haben wollte.
[ratings]
Super Anleitung!
Hat funktioniert.
Vielen Dank!
Gruß
Jörg