PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zusätzliche header für dvips statisch einbinden



Openhair
24-04-2007, 00:17
Hallo.

Ich nutze texlive auf Ubuntu und habe das Paket graphs.sty manuell eingefügt, da es in keinem der offiziellen Pakete enthalten ist. Das Paket kann auch genutzt werden und die dvi-Datei zu erstellen klappt auch problemlos. Allerdings lässt sich das dann nicht weiter in ps oder pdf konvertieren, da dvips ein Header fehlt. Die Fehlermeldung sieht ungefähr so aus

This is dvips(k) 5.95b Copyright 2005 Radical Eye Software (www.radicaleye.com)
' TeX output 2007.04.24:0005' -> filename.ps
dvips: ! Couldn't find header file graphs.header
Auf der Seite von wo ich das Paket habe (http://www.cs.umu.se/~drewes/graphs/) steht nur, dass man noch den Pfad zum Header in einer Datei anpassen muss (aber nicht WIE). So wie es aussieht kann man in der Datei aber keine absoluten Pfadangaben machen.
Eine Lösungsmöglichkeit ist die Headerdatei in das jeweilige Verzeichnis mit dem tex bzw. dvi-File zu legen, aber irgendwie halte ich diese Lösung nicht für die eleganteste. Viel lieber würde ich den Header nur in einen Ordner legen und dvips sucht dann selbstständig in diesem Ordner nach den nötigen Headern - also so ähnlich wie mit den Paketen für Latex.

Gibt es einen Ordner in dem dvips selbstständig nach Headern sucht? Wenn ja welcher? Oder was kann ich sonst noch machen?

Christian.

voss
24-04-2007, 08:12
Hallo.

Ich nutze texlive auf Ubuntu und habe das Paket graphs.sty manuell eingefügt, da es in keinem der offiziellen Pakete enthalten ist. Das Paket kann auch genutzt werden und die dvi-Datei zu erstellen klappt auch problemlos. Allerdings lässt sich das dann nicht weiter in ps oder pdf konvertieren, da dvips ein Header fehlt. Die Fehlermeldung sieht ungefähr so aus

This is dvips(k) 5.95b Copyright 2005 Radical Eye Software (www.radicaleye.com)
' TeX output 2007.04.24:0005' -> filename.ps
dvips: ! Couldn't find header file graphs.header
Auf der Seite von wo ich das Paket habe (http://www.cs.umu.se/~drewes/graphs/) steht nur, dass man noch den Pfad zum Header in einer Datei anpassen muss (aber nicht WIE). So wie es aussieht kann man in der Datei aber keine absoluten Pfadangaben machen.
Eine Lösungsmöglichkeit ist die Headerdatei in das jeweilige Verzeichnis mit dem tex bzw. dvi-File zu legen, aber irgendwie halte ich diese Lösung nicht für die eleganteste. Viel lieber würde ich den Header nur in einen Ordner legen und dvips sucht dann selbstständig in diesem Ordner nach den nötigen Headern - also so ähnlich wie mit den Paketen für Latex.

Gibt es einen Ordner in dem dvips selbstständig nach Headern sucht? Wenn ja welcher? Oder was kann ich sonst noch machen?


\special{header=graphs.header}

steht doch extra auf der Seite ...
Die Datei muss in TEXMF/dvips/ liegen, sonst findet dvips sie nicht.

Warum nimmst du nicht gleich PSTricks, ist dann doch alles viel einfacher und auch noch viel mehr Möglichkeiten als mit diesem skurrilen Paket.

Herbert

Openhair
24-04-2007, 11:58
Vielen Dank, mit deiner Hilfe habe ich eine (oder besser zwei oder noch mehr) Lösungen gefunden. Möglicherweise war ich gestern einfach zu sehr gefrustet als dass ich noch einen klaren Gedanken hätte fassen können. :o

Hier nun mein Lösungsweg für die Nachwelt:

Die wichtigen Infos für das Problem stecken in der Datei /etc/texmf/texmf.cnf . Dort stehen alle Basispfade für die TEX-Installation drinnen. Und - für voss - das war mein Problem, dass ich nicht wusste welcher Pfad denn nun als Basispfad gewählt wurde. Ziemlich weit oben steht sowas wie

TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG ,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFMAIN,!!$TEXM FDIST}
Welche Pfade durch die anderen Makros beschrieben werden steht weiter oben in der Datei. Wichtig hierbei ist, dass neue Dateien in den Ordnern mit den führenden Ausrufezeichen erst dann erkannt werden, wenn die Datenbank mit 'mktexlsr' aktualisiert wurde.

Hier jetzt also zwei konkrete Lösungswege:

1. Man legt in seinem Homeordner (z.B. /home/nutzer) einen Ordner 'texmf' mit Unterordner 'dvips' an und kopiert die Headerdatei einfach da hinein. Danach sollte das Übersetzen sofort funktionieren.
Das Problem hierbei ist, dass diese Lösung nur für den EINEN entsprechenden Nutzer funktioniert, aber es ist extrem einfach und der Header sollte auch eine Neuinstallation überleben.

2. In der zweiten Möglichkeit muss man etwas tiefer ins System, dafür kann dann aber auch jeder Nutzer den Header verwenden. Man kopiert den Header in den Ordner /usr/share/texmf-texlive/dvips . Nach Belieben kann man auch noch einen Unterordner anlegen - in der graphs_config.tex muss man dazu auch nichts ändern. Und jetzt kommen die zwei kleinen Tricks, die mir beinahe das Genick gebrochen haben. Erstens muss der Header wenigstens Leserechte für 'other' haben, und zweitens muss danach die Datenbank mit 'mktexlsr' aktualisiert werden. Dann sollte der Header auch gefunden werden.
Hier nochmal die entsprechenden Befehle die in die Konsole einzutippen sind:

nutzer@rechner:~$sudo cp /wo/auch/immer/graphs.header /usr/share/texmf-texlive/dvips
Passwort:(eingeben)
nutzer@rechner:~$sudo chmod o+r /usr/share/texmf-texlive/dvips/graphs.header
nutzer@rechner:~$sudo mktexlsr
Fertig.

-----
Danke nochmal voss. Mal sehen, vielleicht versuche ich es ja auch nochmal mit PSTricks - als ich es gesehen hatte wirkte es auf mich nur viel zu umfangreich. Und für meine Zwecke reicht das Paket, dass ich jetzt habe auch ersteinmal. Wenn ich dann mit PSTricks noch Probleme habe melde ich mich wieder. :cool:

Christian.

voss
24-04-2007, 12:54
2. In der zweiten Möglichkeit muss man etwas tiefer ins System, dafür kann dann aber auch jeder Nutzer den Header verwenden. Man kopiert den Header in den Ordner /usr/share/texmf-texlive/dvips . Nach Belieben kann man auch noch einen Unterordner anlegen - in der graphs_config.tex muss man dazu auch nichts ändern. Und jetzt kommen die zwei kleinen Tricks, die mir beinahe das Genick gebrochen haben. Erstens muss der Header wenigstens Leserechte für 'other' haben, und zweitens muss danach die Datenbank mit 'mktexlsr' aktualisiert werden. Dann sollte der Header auch gefunden werden.
Hier nochmal die entsprechenden Befehle die in die Konsole einzutippen sind:

nutzer@rechner:~$sudo cp /wo/auch/immer/graphs.header /usr/share/texmf-texlive/dvips
Passwort:(eingeben)
nutzer@rechner:~$sudo chmod o+r /usr/share/texmf-texlive/dvips/graphs.header
nutzer@rechner:~$sudo mktexlsr
Fertig.


du liebst komplizierte Lösungen ...

Einafch die Datei nach $TEXMFLOCAL/dvips, dann texhash und fertig ist es und für _jeden_
ist die Datei zugänglich. Sie nach $TEXMF/dvips zu packen ist sogar formal falsch ...

Herbert

Openhair
24-04-2007, 17:49
Was ist denn an meiner Lösung kompliziert...? Die Befehle machen genau das, was du unter Windows (?) auch machst: Datei kopieren, Benutzerrechte der Datei anpassen, und 'texhash' macht wohl das gleiche wie mktexlsr. Nagut, und wenn man die Datei im TEXMFLOCAL haben will ist der Pfad halt /usr/local/share/texmf ...