Lange Dateinamen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Lange Dateinamen

von u_fischer » Sa 9. Nov 2013, 11:56

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.
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.

von tome28 » Sa 9. Nov 2013, 07:23

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

von dknof » Fr 8. Nov 2013, 22:47

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
  Dim objShell
  Set objShell = CreateObject("WScript.Shell")
  objShell.CurrentDirectory = ActiveWorkbook.Path
  objShell.Run "pdflatex '" & Ausgabe & ".tex'", 0 ' 0: versteckt, 1: im Vordergrund
Der Dateiname (mit Leerzeichen) wird dabei noch in einfache Anführungszeichen gesetzt, also zum Beispiel
  objShell.Run "pdflatex 'Beispiel 1.tex'"
Gruß
Diether

von u_fischer » Fr 8. Nov 2013, 21:26

Neben den falschen Backslashes hast du auch ein Leerzeichen im Verzeichnisnamen. D.h du brauchst zusätzliche Quotes.

von tome28 » Fr 8. Nov 2013, 21:09

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

von Johannes_B » Fr 8. Nov 2013, 19:46

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.

von tome28 » Fr 8. Nov 2013, 19:43

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.
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)
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

von Besserwisser » Fr 8. Nov 2013, 09:08

Übrigens würde ich statt nach irgendwelchen Platzhaltern zu suchen und diese zu ersetzen schlicht mit Befehlen arbeiten, also beispielsweise:
\documentclass{article}
\providecommand*{\BeispielA}{???BeispielA wurde nicht gesetzt!!!}
\begin{document}
Das ist \BeispielA.
\end{document}
Diese Datei "TemplateA.tex" legt man dann im Suchpfad von LaTeX ab. Für die "ausgefüllte" Datei benötigt man dann nur
\newcommand*{\BeispielA}{erste Beispiel}
\input{TemplateA.tex}
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.

von Johannes_B » Fr 8. Nov 2013, 08:28

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.

Lange Dateinamen

von tome28 » Do 7. Nov 2013, 20:40

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

Nach oben