TU-Dresden » Startseite Forum » Forum

TU-Dresden Forum

Aktuelle Zeit: Donnerstag 2. Dezember 2021, 23:50

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Ausführen einer Batch-Datei aus einer tex-Datei heraus
BeitragVerfasst: Mittwoch 13. Juli 2016, 13:00 
Offline

Registriert: Montag 1. Dezember 2014, 20:14
Beiträge: 23
Hallo liebe Gemeinschaft,

ich möchte gern eine Batch-Datei während des Kompilieren von LaTeX ausführen.

Ich habe dazu im Internet folgendes gefunden. Quelle: http://tex.stackexchange.com/questions/ ... ompilation
Code:
\usepackage{pdftexcmds}
\makeatletter
\newcommand{\executebat}[1]{%
  \ifnum\pdf@shellescape=\@ne
    \immediate\write18{#1}%
  \else
    \GenericError{}{Shell escape not enabled}{}
      {You have to run (pdf)LaTeX with the option `-shell-escape'}%
  \fi
}
\makeatother


Hier mein Minimalbeispiel dazu. Der Ordner "Bilder" ist als zip-Archiv angehängt und enthält eine eps-, die batch-Datei sowie die damit erzeugte pdf. Wer das ganze ausprobieren will, muss noch in der eps den Pfad zu LaTeX ändern.
Code:
\documentclass{book}
   \usepackage[ngerman]{babel}
   \usepackage[utf8]{inputenc}
   \usepackage[T1]{fontenc}
   \usepackage{graphicx}
      \graphicspath{
         {./Bilder/},   
      }
      
   \usepackage{pdftexcmds}
   \makeatletter
   \newcommand{\executebat}[1]{%
      \ifnum\pdf@shellescape=\@ne
      \immediate\write18{#1}%
      \else
      \GenericError{}{Shell escape not enabled}{}
      {You have to run (pdf)LaTeX with the option `-shell-escape'}%
      \fi
   }
   \makeatother
   \executebat{L:/LaTeX/Batch-Ausfuehren/Bilder/EPS_TO_PDF.bat}
\begin{document}
   \includegraphics[height=.5\textheight]{test.pdf}
\end{document}


Der pdfLaTeXBefehl wird von TeXstudio mit der Option "-shell-excape" ausgeführt.

Problem ist nun, dass er die Batch-Datei nicht findet. Es kommt der Fehler
Code:
Der Befehl "L:/LaTeX/Batch-Ausfuehren/Bilder/EPS_TO_PDF.bat" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
.

Hat jemand eine Idee, wie ich den Pfad angeben muss?

Vielen Dank!
Robby


Dateianhänge:
Bilder.zip [161.13 KiB]
160-mal heruntergeladen
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ausführen einer Batch-Datei aus einer tex-Datei heraus
BeitragVerfasst: Donnerstag 14. Juli 2016, 10:57 
Offline

Registriert: Freitag 9. September 2011, 14:57
Beiträge: 541
Das Vorgehen funktioniert genau so, du hast schlichtweg den falschen Aufruf. Deine Datei ist mit EPS_2_PDF.bat benannt, du versuchst jedoch EPS_TO_PDF.bat auszuführen.

_________________
TUD-Script-Klassen für das Corporate Design der TU Dresden

Anwenderhandbuch: CTAN-Mirror oder texdoc tudscr
Anwenderleitfaden: CTAN-Mirror oder texdoc treatise
Schriftinstallation: Skripte zum Download

LyX-Layoutdateien und Befehlsvervollständigung für TeXstudio
Übersicht zu allen veröffentlichten Versionen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ausführen einer Batch-Datei aus einer tex-Datei heraus
BeitragVerfasst: Dienstag 20. September 2016, 08:28 
Offline

Registriert: Montag 1. Dezember 2014, 20:14
Beiträge: 23
Hallo Falk,

danke für die schnelle Antwort. Ich hab es allerdings jetzt erst wieder aufgegriffen. Es funktioniert. Vielen Dank.

Ich habe noch eine kleine Änderung an der Batch vorgenommen. Die Batch muss jetzt im Ordner der tex-Datei liegen und nicht wie ursprünglich im Bilder-Ordner. Im Anhang findet sich ein gezipptes Minimalbeispiel.

Zur Vollständigkeit hier der Code der tex-Datei.
Code:
\documentclass{book}
   \usepackage[ngerman]{babel}
   \usepackage[utf8]{inputenc}
   \usepackage[T1]{fontenc}
   \usepackage{graphicx}
      \graphicspath{
         {./Bilder/},   
      }
      
   \usepackage{pdftexcmds}
   \makeatletter
   \newcommand{\executebat}[1]{%
      \ifnum\pdf@shellescape=\@ne
      \immediate\write18{#1}%
      \else
      \GenericError{}{Shell escape not enabled}{}
      {You have to run (pdf)LaTeX with the option `-shell-escape'}%
      \fi
   }
   \makeatother
   \executebat{EPS_2_PDF.bat}
\begin{document}
   \includegraphics[height=.5\textheight]{test.pdf}
\end{document}


Und hier der Code der Batch-Datei.
Code:
REM Die Batch muss im Ordner der tex--(Master-)Datei liegen.
REM In diesem Ordner muss sich ein Unterordner "Bilder" befinden,
REM in welchem die eps-Dateien abzulegen sind.

REM Laufwerksbuchstabe lesen
set var=%~d0

setlocal enabledelayedexpansion

cd Bilder

for /F "Tokens=1 Delims= " %%a in ('dir /b "*.eps"') do (
   echo %%a
   set "name=%%~na"
   set name_new="%%~na.pdf"
   set name_old="%%~na.eps"
   echo "!name_old!"

   REM Der nachfolgende Pfad muss angepasst werden. %var% gibt den Laufwerkbuchstaben aus.
   %var%\Ortmann\LaTeXportable\texlive\bin\win32\epstopdf --outfile=!name_new! !name_old!
)
REM Das folgende PAUSE kann für die manuelle Benutzung außerhalb LaTeX genutzt werden.
REM PAUSE


Dateianhänge:
Batch-Ausfuehren.zip [91.75 KiB]
145-mal heruntergeladen
Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron