Page 1 of 1

pdflatex bzw. latex über Script ausführen

Posted: 2010-06-28 20:01
by rigo2
Hi,

ich schreibe in dieses Forum, weil das Problem nur auftritt, wenn ich pdflatex mittels exec-Kommando in meinem Script über den Webbrowser aufrufe.

Das Problem ist folgendes:
Ich habe eine tex-Datei die ich mittels pdflatex (oder latex) kompiliern möchte. Zusätzlich sind zwei Opentype-Fonts eingebunden (Helvetica Neue LT Pro). Die Fonts sind auf dem Server installiert und in Latex korrekt eingebunden (otftotfm, updmap etc.).

Eine Kompilierung der tex-Datei über die Konsole _funktioniert_ sowohl als root-User als auch als "meinuser", über den PHP als fcgid ausgeführt wird. Rufe ich als "meinuser" z.B.

Code: Select all

php index.php
über die Konsole auf, klappt die Kompilierung auch.

Wenn ich jetzt aber das Script über den Webbrowser aufrufe, klappt die Kompilierung nicht. Als Ausgabe bekomme ich (u.a.) diesen (einzigen) Fehler:

Code: Select all

(see the transcript file for additional information)
pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Md-kern-liga): Font LY1-Helv
eticaNeueLTPro-Md-kern-liga at 1680 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Roman-liga): Font LY1-Helvet
icaNeueLTPro-Roman-liga at 780 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Roman-liga): Font LY1-Helvet
icaNeueLTPro-Roman-liga at 300 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Md-kern-liga): Font LY1-Helv
eticaNeueLTPro-Md-kern-liga at 1244 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Roman-liga): Font LY1-Helvet
icaNeueLTPro-Roman-liga at 420 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Md-kern-liga): Font LY1-Helv
eticaNeueLTPro-Md-kern-liga at 864 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Roman-liga): Font LY1-Helvet
icaNeueLTPro-Roman-liga at 600 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Roman-liga): Font LY1-Helvet
icaNeueLTPro-Roman-liga at 480 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Md-kern-liga): Font LY1-Helv
eticaNeueLTPro-Md-kern-liga at 600 not found

pdfTeX warning: latex (file LY1-HelveticaNeueLTPro-Roman-liga): Font LY1-Helvet
icaNeueLTPro-Roman-liga at 540 not found
Es wird auch eine Datei missfont.log erstellt:

Code: Select all

mktexpk --mfmode / --bdpi 600 --mag 2+480/600 --dpi 1680 LY1-HelveticaNeueLTPro-Md-kern-liga
mktexpk --mfmode / --bdpi 600 --mag 1+180/600 --dpi 780 LY1-HelveticaNeueLTPro-Roman-liga
mktexpk --mfmode / --bdpi 600 --mag 0+300/600 --dpi 300 LY1-HelveticaNeueLTPro-Roman-liga
mktexpk --mfmode / --bdpi 600 --mag 2+44/600 --dpi 1244 LY1-HelveticaNeueLTPro-Md-kern-liga
mktexpk --mfmode / --bdpi 600 --mag 0+420/600 --dpi 420 LY1-HelveticaNeueLTPro-Roman-liga
mktexpk --mfmode / --bdpi 600 --mag 1+264/600 --dpi 864 LY1-HelveticaNeueLTPro-Md-kern-liga
mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 LY1-HelveticaNeueLTPro-Roman-liga
mktexpk --mfmode / --bdpi 600 --mag 0+480/600 --dpi 480 LY1-HelveticaNeueLTPro-Roman-liga
mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 LY1-HelveticaNeueLTPro-Md-kern-liga
mktexpk --mfmode / --bdpi 600 --mag 0+540/600 --dpi 540 LY1-HelveticaNeueLTPro-Roman-liga
Warum funktioniert die Ausführung als "meinuser" über die Konsole, über den Browser jedoch nicht? Wie kann ich (pdf)latex dazu überreden, die tex-Datei _mit_ den zusätzlichen Fonts zu kompilieren?

Mein System: Ubuntu 9.04, Apache 2.2.11, PHP 5.2.6, TeXLive 2007 (alles Ubuntu-9.04-aktuell)

cu
rigo

Re: pdflatex bzw. latex über Script ausführen

Posted: 2010-06-28 21:40
by daemotron
Vermutung: Bei der Ausführung des Skripts via FastCGI fehlen Informationen, die sonst aus Umgebungsvariablen bezogen werden können. Ich vermute mal ganz speziell geht es um die Umgebungsvariable TFMFONTS (zumindest laut man page von pdftex).

Re: pdflatex bzw. latex über Script ausführen

Posted: 2010-06-29 06:40
by rigo2
Danke für den Tipp. Leider kann ich den Pfad nicht als Kommandozeilenparameter an pdflatex übergeben.

In der Datei /etc/texmf/texmf.cfg habe ich mal den Parameter TFMFONTS erweitert zu:

Code: Select all

TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//;/usr/share/texmf-texlive/fonts/tfm//;/home/meinuser/.texmf-var/fonts/tfm//
Bringt aber nichts.

Re: pdflatex bzw. latex über Script ausführen

Posted: 2010-06-29 10:46
by getphp
Wie wäre es mit dieser Angabe (... bitte anpassen) in der vhost-Konfig bzw. .htaccess-Datei?

Code: Select all

SetEnv TFMFONTS ... 

Re: pdflatex bzw. latex über Script ausführen

Posted: 2010-06-29 15:16
by rigo2
Danke für den Tipp aber die Pfadangaben sind richtig. Ein

Code: Select all

kpsewhich -var-value TFMFONTS
aus dem Skript heraus liefert richtig

Code: Select all

.:{{/.texmf-config,/.texmf-var,/texmf,/etc/texmf,!!/var/lib/texmf,!!/usr/local/share/texmf,!!/usr/share/texmf,!!/usr/share/texmf-texlive}/fonts,/tmp/texfonts}/tfm//:/usr/share/texmf-texlive/fonts/tfm//:/home/meinuser/.texmf-var/fonts/tfm//
Die Datei- und Verzeichnisrechte von /home/meinuser/.texmf-var sind auf go+r bzw. go+rx gesetzt.