Lange Dateinamen
Lange Dateinamen
Hallo,
ich bin gerade dabei ein VBNET Programm zu schreiben, aus dem ich "pdflatex.exe" heraus aufrufe (via Process.Start()).
Mein Ziel ist es, eine Art "Template.tex" nach Platzhaltern zu durchsuchen und mit entsprechenden Inhalten zu ersetzen. Ist das getan kopiere ich die neue .tex Datei in ein spezielles Verzeichnis, in dem ich anschließend auch mit Hilfe von Latex kompilieren möchte.
Soweit funktioniert das auch. Allerdings bekomme ich von Latex die Meldung "!Undefined control sequence" mit dem, von mir angegebenen, Verzeichnis. Ich vermute mal, dass Latex Probleme mit dem Verzeichnisnamen hat.
Weiß jemand wie ich das Problem beheben kann?
Vielen Dank im voraus
lg Torsten
ich bin gerade dabei ein VBNET Programm zu schreiben, aus dem ich "pdflatex.exe" heraus aufrufe (via Process.Start()).
Mein Ziel ist es, eine Art "Template.tex" nach Platzhaltern zu durchsuchen und mit entsprechenden Inhalten zu ersetzen. Ist das getan kopiere ich die neue .tex Datei in ein spezielles Verzeichnis, in dem ich anschließend auch mit Hilfe von Latex kompilieren möchte.
Soweit funktioniert das auch. Allerdings bekomme ich von Latex die Meldung "!Undefined control sequence" mit dem, von mir angegebenen, Verzeichnis. Ich vermute mal, dass Latex Probleme mit dem Verzeichnisnamen hat.
Weiß jemand wie ich das Problem beheben kann?
Vielen Dank im voraus
lg Torsten
- Johannes_B
- Moderator
- Beiträge: 5079
- Registriert: Do 1. Nov 2012, 14:55
- Kontaktdaten:
Momentan kann das keiner wissen, denn wir wissen nicht, was du tust. Vor deinem Verzeichnisnamen steht scheinbar ein Backslash. Warum ist der dort?
Versuch bitte ein Minimalbeispiel zu erstellen, damit wir dein Problem nachvollziehen können.
Versuch bitte ein Minimalbeispiel zu erstellen, damit wir dein Problem nachvollziehen können.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
Übrigens würde ich statt nach irgendwelchen Platzhaltern zu suchen und diese zu ersetzen schlicht mit Befehlen arbeiten, also beispielsweise:
Diese Datei "TemplateA.tex" legt man dann im Suchpfad von LaTeX ab. Für die "ausgefüllte" Datei benötigt man dann nur
Da "TemplateA.tex" im Suchpfad von LaTeX liegt (ggf. kann man auch die Umgebungsvariable TEXINPUTS entsprechend setzen) benötigt man in der Datei mit den ausgefüllten Feldern keinerlei Pfadangaben. Vor dem Aufruf von pdflatex wechselt man am besten in das Verzeichnis der erzeugten "ausgefüllten" Datei. Dann werden auch alle Hilfs- und Logdateien dort erzeugt.
\documentclass{article} \providecommand*{\BeispielA}{???BeispielA wurde nicht gesetzt!!!} \begin{document} Das ist \BeispielA. \end{document}
\newcommand*{\BeispielA}{erste Beispiel} \input{TemplateA.tex}
Hallo nochmal,
ich kann leider die notwendige Hardcopy nicht hochladen
Vor meinem Verzeichnisnamen steht kein Backslash. Aber nochmal langsam. Ich hoffe, der Code ist verständlich.
Mit diesen vier Zeilen starte ich Latex. Wie gesagt, der Aufruf funktioniert auch soweit. Es öffnet sich das Commandwindow von Windows. Mir ist aber eben noch aufgefallen, dass die Ausgabe "! I can't find file D:Acceptance" angezeigt wird. Soll heißen, Latex hat offensichtlich ein Problem mit meiner Parameterübergabe. Ich denke mal es kommt mit den Backslashes oder den Leerzeichen nicht klar.
lg Torsten
ich kann leider die notwendige Hardcopy nicht hochladen

Vor meinem Verzeichnisnamen steht kein Backslash. Aber nochmal langsam. Ich hoffe, der Code ist verständlich.
Dim information As New ProcessStartInfo information.FileName = "C:\MiKTeX\miktex\bin\pdflatex.exe" information.Arguments = "D:\Factory Acceptance Tests\relayboard\13059.tex" Process.Start(information)
lg Torsten
- Johannes_B
- Moderator
- Beiträge: 5079
- Registriert: Do 1. Nov 2012, 14:55
- Kontaktdaten:
Also ich sehe da ganz viele Backslashes. Benutze Forwardslashes / als Verzeichnistrenner!
Ich habe deinen Code oben markiert, hier siehst du schon, dass die Backslash magic machen. Diese leiten in LaTeX nämlich Befehle/Kontrollsequenzen ein.
Übrigens sind Uploads momentan leider nicht möglich.
Ich habe deinen Code oben markiert, hier siehst du schon, dass die Backslash magic machen. Diese leiten in LaTeX nämlich Befehle/Kontrollsequenzen ein.
Übrigens sind Uploads momentan leider nicht möglich.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
Das hatte ich schon versucht. Ich habe die Backslashes im Argument durch Slashes ersetzt. Hat leider nichts gebracht.
Irgendwie muss es aber funktionieren, denn Programme wie "Eclipse" können das ja auch. Ich habe aber aus den Ausgabeinformationen von "Eclipse" auch keine Idee ziehen können.
lg Torsten
Irgendwie muss es aber funktionieren, denn Programme wie "Eclipse" können das ja auch. Ich habe aber aus den Ausgabeinformationen von "Eclipse" auch keine Idee ziehen können.
lg Torsten
Neben den falschen Backslashes hast du auch ein Leerzeichen im Verzeichnisnamen. D.h du brauchst zusätzliche Quotes.
Ulrike Fischer
www.troubleshooting-tex.de
www.troubleshooting-tex.de
Hallo Torsten,
ich hatte auch ein VBA-Skript mit Aufruf von LaTeX erstellt (siehe http://www.golatex.de/serienbrief-ueber ... t9780.html).
Mein Aufruf von LaTeX erfolgt dabei mit
Der Dateiname (mit Leerzeichen) wird dabei noch in einfache Anführungszeichen gesetzt, also zum Beispiel
Gruß
Diether
ich hatte auch ein VBA-Skript mit Aufruf von LaTeX erstellt (siehe http://www.golatex.de/serienbrief-ueber ... t9780.html).
Mein Aufruf von LaTeX erfolgt dabei mit
Dim objShell Set objShell = CreateObject("WScript.Shell") objShell.CurrentDirectory = ActiveWorkbook.Path objShell.Run "pdflatex '" & Ausgabe & ".tex'", 0 ' 0: versteckt, 1: im Vordergrund
objShell.Run "pdflatex 'Beispiel 1.tex'"
Diether
G' Morgen und vielen Dank für die vielen Tipps. Ich habe alle Vorschläge durchprobiert und keiner wollte funktionieren 
Ich gehe daher jetzt den Umweg, das Arbeitsverzeichnis zu wechseln. So kann ich die zu kompilierende Datei ohne zusätzliche Verzeichnisangabe in den Parametern angeben. Ist umständlich, aber es funktioniert.
Vielen Dank nochmal an alle
lg Torsten

Ich gehe daher jetzt den Umweg, das Arbeitsverzeichnis zu wechseln. So kann ich die zu kompilierende Datei ohne zusätzliche Verzeichnisangabe in den Parametern angeben. Ist umständlich, aber es funktioniert.
Vielen Dank nochmal an alle

lg Torsten
Das ist sowieso der sinnvolle Weg. pdflatex vom einem anderen Verzeichnis aus zu starten wird nicht empfohlen und kann zu vielen Schwierigkeiten führen, weil input-Dateien und Bilder usw immer vom relativ zum Verzeichnis, in dem du pdflatex aus startest, gesucht werden. Und die Ausgabedateien würden dort auch landen.tome28 hat geschrieben: Ich gehe daher jetzt den Umweg, das Arbeitsverzeichnis zu wechseln. So kann ich die zu kompilierende Datei ohne zusätzliche Verzeichnisangabe in den Parametern angeben. Ist umständlich, aber es funktioniert.
Ulrike Fischer
www.troubleshooting-tex.de
www.troubleshooting-tex.de