Archiv verlassen und diese Seite im Standarddesign anzeigen : tex4ht unter Linux installieren - klappt nicht!
cookie170
04-01-2007, 18:54
Hallo!
Ich muss meine Texte Geschäftspartnern und Kunden in einem Dateiformat zur Verfügung stellen, das einer Textverarbeitung zugänglich ist. Word halt.
Allerdings habe ich festgestellt, dass ein von pdftex erstelltes pdf viel weniger agressiv überprüft wird. Also will ich mit der üblichen e-mail das pdf und - falls es Änderungswünsche gibt - ein html-Dokument schicken. Word und Openoffice kommen damit zurecht.
Dazu brauche in eine möglichst gute Konvertierung. Ich möchte tex4ht ausprobieren, zumal es da haufenweise neue Pakete gibt, siehe
http://www.cse.ohio-state.edu/~gurari/TeX4ht/bugfixes.html
Leider kriege ich die c-Dateien nicht kompilliert, im Anhang hier die Meldungen von gcc (GCC) 4.1.2 20061115 (prerelease) (SUSE Linux)
Ich verwende OpenSuse 10.2 auf einem T60 Thinkpad, leider die 64-bit-Version, weil mir nicht klar war, dass die x86 auch laufen würde ...
Vielen Dank für alle Hilfe, - hat nicht jemand ein rpm? -
Gruß,
Alexander
Hallo Alexander,
ich hab' das mal auf meiner n Tuck älteren (10.1) OpenSuSE (aber immerhin AMD64) nachgestellt. Was ich in tex4ht.c geändert hab':
/* **********************************************
Compiler options *
(uncommented | command line) *
------------------------------------------------*
Classic C (CC) default */
#define ANSI ansi-c, c++
//#define DOS_C
#define HAVE_STRING_H <string.h>
#define HAVE_DIRENT_H <dirent.h>
//#define HAVE_SYS_NDIR_H <sys/ndir.h>
#define HAVE_SYS_DIR_H <sys/dir.h>
//#define HAVE_NDIR_H <ndir.h>
#define HAVE_IO_H <sys/io.h>
//#define HAVE_UNISTD_H <unistd.h>
//#define WIN32
//#define KPATHSEA
//#define CDECL .......
//#define BCC32 bordland c++
/*************************************************
Tex4ht variables *
obwohl, warum ich den // vor #define KPATHSEA setzen musste, kann ich noch nicht sagen, die dann benötigten Dateien sind bei mir jedenfalls vorhanden;(
Oh, und dann noch so um Zeile 193 herum:
//#include <io.h>
#include HAVE_IO_H
schließlich hab ich HAVE_IO_H zuvor bereits auf <sys/io.h> gesetzt, weil io.h bei mir unter /usr/include/sys ist und nicht unter /usr/include...
Zumindest kompiliert
gcc -o foo tex4ht.c
dann ohne Fehler... ob das Programm `foo´ dann aber auch macht, was es soll...?
MfG,
cookie170
05-01-2007, 10:18
Hallo Rainer,
herzlichen Dank für die Hilfe. Ich verstehe von C leider garnichts, aber wenn ich so sehe, dass da einfach ein paar / zur Auskommentierung von Kommentaren fehlen, lässt mich das an der Sorgfalt des Programmierers schon zweifeln.
Nach Deinen Änderungen hat gcc das Programm auch ohne Murren kompiliert (hey, ich habe nachgelesen, was kompilieren bedeutet: von lateinisch compilare = zusammenraffen, plündern, ausbeuten); aber es müssen noch Variablen berücksichtigt werden (vgl. http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn-unix.html ).
Der Befehl lautet bei mir daher:
gcc -o tex4ht tex4ht.c -DENVFILE=’"/home/AW/Downloads/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’ -DHAVE_DIRENT_H
Die Fehlermeldungen werden daraufhin zwar kürzer, aber ich verstehe sie trotzdem nicht (siehe Anhang).
Hast Du noch eine Idee zum Ausbeuten?
Gruß,
Alexander
Hallo Alexander,
das war wohl mein Fehler...
Compiler options *
(uncommented | command line) *
sollte wohl heißen, daß man die entsprechenden Flags auf der Kommandozeile mit übergeben soll. Dementsprechend hab' ich meine Änderungen an tex4ht.c rückgängig gemacht und gcc erstmal so aufgerufen:
gcc -o tex4htx tex4ht.c -DKPATHSEA -DHAVE_DIRENT_H -DHAVE_STRING_H -lkpathsea
das lief "ohne zu murren" und sollte auch mit kpathsea klarkommen.
Otoh hattest Du die Meldung
tex4ht.c:204:29: error: kpathsea/config.h: Datei oder Verzeichnis nicht gefunden
(u.a.) -- das deutet darauf hin, daß besagte "config.h" bei Dir unter (normalerweise) /usr/include/kpathsea gar nicht existiert...
PS) als ich mich zuletzt aktiv mit C beschäftigt hab', hatte ich noch einen (fast) nagelneuen Atari ST;-)
MfG,
cookie170
06-01-2007, 21:49
Tut auch nicht, bergeweise Fehlermeldungen:
tex4ht.c:204:29: error: kpathsea/config.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:205:30: error: kpathsea/c-errno.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:206:30: error: kpathsea/c-ctype.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:207:30: error: kpathsea/c-fopen.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:208:31: error: kpathsea/c-pathmx.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:209:31: error: kpathsea/proginit.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:210:31: error: kpathsea/tex-file.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:211:31: error: kpathsea/tex-make.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:212:31: error: kpathsea/variable.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c: In function ‘main’:
tex4ht.c:6330: warning: cast to pointer from integer of different size
tex4ht.c:6346: error: ‘kpse_program_text_format’ undeclared (first use in this function)
tex4ht.c:6346: error: (Each undeclared identifier is reported only once
tex4ht.c:6346: error: for each function it appears in.)
tex4ht.c:6346: warning: assignment makes pointer from integer without a cast
tex4ht.c:6354: warning: assignment makes pointer from integer without a cast
tex4ht.c:6375: warning: assignment makes pointer from integer without a cast
tex4ht.c:6384: warning: assignment makes pointer from integer without a cast
tex4ht.c:6387: warning: cast to pointer from integer of different size
tex4ht.c:6512: warning: cast to pointer from integer of different size
tex4ht.c:6558: warning: cast to pointer from integer of different size
tex4ht.c:6572: warning: cast to pointer from integer of different size
tex4ht.c:6600: error: ‘kpse_cnf_format’ undeclared (first use in this function)
tex4ht.c:6600: warning: assignment makes pointer from integer without a cast
tex4ht.c:6604: warning: cast to pointer from integer of different size
tex4ht.c:6838: warning: assignment makes pointer from integer without a cast
tex4ht.c:6874: warning: assignment makes pointer from integer without a cast
tex4ht.c:7164: error: ‘kpse_tfm_format’ undeclared (first use in this function)
tex4ht.c:7164: warning: assignment makes pointer from integer without a cast
tex4ht.c:7184: warning: assignment makes pointer from integer without a cast
tex4ht.c:7190: warning: assignment makes pointer from integer without a cast
tex4ht.c:7573: warning: assignment makes pointer from integer without a cast
tex4ht.c:7609: warning: assignment makes pointer from integer without a cast
tex4ht.c:7956: warning: assignment makes pointer from integer without a cast
tex4ht.c:7992: warning: assignment makes pointer from integer without a cast
AW@linux-1ujr:~/Downloads/tex4ht.dir/src> gcc -o tex4htx tex4ht.c -DKPATHSEA -DHAVE_DIRENT_H -DHAVE_STRING_H -lkpathsea
tex4ht.c:204:29: error: kpathsea/config.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:205:30: error: kpathsea/c-errno.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:206:30: error: kpathsea/c-ctype.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:207:30: error: kpathsea/c-fopen.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:208:31: error: kpathsea/c-pathmx.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:209:31: error: kpathsea/proginit.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:210:31: error: kpathsea/tex-file.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:211:31: error: kpathsea/tex-make.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:212:31: error: kpathsea/variable.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c: In function ‘main’:
tex4ht.c:6330: warning: cast to pointer from integer of different size
tex4ht.c:6346: error: ‘kpse_program_text_format’ undeclared (first use in this function)
tex4ht.c:6346: error: (Each undeclared identifier is reported only once
tex4ht.c:6346: error: for each function it appears in.)
tex4ht.c:6346: warning: assignment makes pointer from integer without a cast
tex4ht.c:6354: warning: assignment makes pointer from integer without a cast
tex4ht.c:6375: warning: assignment makes pointer from integer without a cast
tex4ht.c:6384: warning: assignment makes pointer from integer without a cast
tex4ht.c:6387: warning: cast to pointer from integer of different size
tex4ht.c:6512: warning: cast to pointer from integer of different size
tex4ht.c:6558: warning: cast to pointer from integer of different size
tex4ht.c:6572: warning: cast to pointer from integer of different size
tex4ht.c:6600: error: ‘kpse_cnf_format’ undeclared (first use in this function)
tex4ht.c:6600: warning: assignment makes pointer from integer without a cast
tex4ht.c:6604: warning: cast to pointer from integer of different size
tex4ht.c:6838: warning: assignment makes pointer from integer without a cast
tex4ht.c:6874: warning: assignment makes pointer from integer without a cast
tex4ht.c:7164: error: ‘kpse_tfm_format’ undeclared (first use in this function)
tex4ht.c:7164: warning: assignment makes pointer from integer without a cast
tex4ht.c:7184: warning: assignment makes pointer from integer without a cast
tex4ht.c:7190: warning: assignment makes pointer from integer without a cast
tex4ht.c:7573: warning: assignment makes pointer from integer without a cast
tex4ht.c:7609: warning: assignment makes pointer from integer without a cast
tex4ht.c:7956: warning: assignment makes pointer from integer without a cast
tex4ht.c:7992: warning: assignment makes pointer from integer without a cast
AW@linux-1ujr:~/Downloads/tex4ht.dir/src> su
Passwort:
linux-1ujr:/home/AW/Downloads/tex4ht.dir/src # gcc -o tex4htx tex4ht.c -DKPATHSEA -DHAVE_DIRENT_H -DHAVE_STRING_H -lkpathsea
tex4ht.c:204:29: error: kpathsea/config.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:205:30: error: kpathsea/c-errno.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:206:30: error: kpathsea/c-ctype.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:207:30: error: kpathsea/c-fopen.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:208:31: error: kpathsea/c-pathmx.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:209:31: error: kpathsea/proginit.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:210:31: error: kpathsea/tex-file.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:211:31: error: kpathsea/tex-make.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c:212:31: error: kpathsea/variable.h: Datei oder Verzeichnis nicht gefunden
tex4ht.c: In function ‘main’:
tex4ht.c:6330: warning: cast to pointer from integer of different size
tex4ht.c:6346: error: ‘kpse_program_text_format’ undeclared (first use in this function)
tex4ht.c:6346: error: (Each undeclared identifier is reported only once
tex4ht.c:6346: error: for each function it appears in.)
tex4ht.c:6346: warning: assignment makes pointer from integer without a cast
tex4ht.c:6354: warning: assignment makes pointer from integer without a cast
tex4ht.c:6375: warning: assignment makes pointer from integer without a cast
tex4ht.c:6384: warning: assignment makes pointer from integer without a cast
tex4ht.c:6387: warning: cast to pointer from integer of different size
tex4ht.c:6512: warning: cast to pointer from integer of different size
tex4ht.c:6558: warning: cast to pointer from integer of different size
tex4ht.c:6572: warning: cast to pointer from integer of different size
tex4ht.c:6600: error: ‘kpse_cnf_format’ undeclared (first use in this function)
tex4ht.c:6600: warning: assignment makes pointer from integer without a cast
tex4ht.c:6604: warning: cast to pointer from integer of different size
tex4ht.c:6838: warning: assignment makes pointer from integer without a cast
tex4ht.c:6874: warning: assignment makes pointer from integer without a cast
tex4ht.c:7164: error: ‘kpse_tfm_format’ undeclared (first use in this function)
tex4ht.c:7164: warning: assignment makes pointer from integer without a cast
tex4ht.c:7184: warning: assignment makes pointer from integer without a cast
tex4ht.c:7190: warning: assignment makes pointer from integer without a cast
tex4ht.c:7573: warning: assignment makes pointer from integer without a cast
tex4ht.c:7609: warning: assignment makes pointer from integer without a cast
tex4ht.c:7956: warning: assignment makes pointer from integer without a cast
tex4ht.c:7992: warning: assignment makes pointer from integer without a cast
linux-1ujr:/home/AW/Downloads/tex4ht.dir/src #
config.h kommt auf meinem System ca. 10 mal vor, tex-file.h überhaupt nicht, auch c-errno.h nicht, einen Ordner kpathsea kann ich auch nicht finden. Irgendwie scheine ich ein komplett anderes System zu haben und damit Pech.
Ich überlege seit ein paar Tagen ernsthaft, mir die 32-bit-Version herunterzuladen und das System neu aufzusetzen. Seufz: Tex neu einrichten, xine neu, ATI neu, xorg.config neu ...
Wenn ich wüßte, wer mir SLES verkauft in der Umgegend, würde ich wahrscheinlich umsteigen.
Gruß + Danke nochmal,
Alexander
Hallo Alexander,
keine Ahnung, was das im Endeffekt für das Programm ausmacht, aber warum lässt Du den -DKPATHSEA Schalter (und damit auch den -lkapthsea) nicht einfach weg? Sieht ja so aus, als wäre ein kpathsea-Ordner bei Dir unter /usr/include (wo C seine .h-includes gewöhnlich herholt, solange diese in spitzen Klammern bei #include angegeben werden) nicht vorhanden...
Andererseits -- und ich kann mir nicht wirklich vorstellen, daß sich die Quellen inzwischen geändert haben sollten -- im Anhang findest Du ein Archiv, daß Dir besagte header-Dateien zur Verfügung stellen sollten...
Das Teil solltest Du mit
tar -x[v]zf kpathsea.tar.zip
auswickeln können -- und wenn Du Dich zu der Zeit gerade in /usr/include befindest (und entsprechende Schreibzugriffe hast), dann solte es danach ein /usr/iclude/kpathsea-Ordner geben, in dem die entsprechenden Dateien zu finden sind. Wenn nicht, dann schiebst bzw. kopierst Du die entsprechenden Dateien hinterher eben da hin -- jedenfalls kannst Du es danach nochmal mit dem zuvor geposteten gcc-Aufruf versuchen;)
MfG,
cookie170
07-01-2007, 16:43
So,
es funktioniert zwar, aber die Ausgabe ist unglaublich schlecht, keine Umlaute, keinerlei Layout, nur der Text. Und dafür die ganze Mühe...
Herzlichen Dank nochmal,
Gruß,
Alexander
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.