%% This is file `dtk-extern.sty', %% %% LaTeX package for ``Die TeXnische Komoedie''. %% %% Copyright (C) 2016- %% Rolf Niepraschk, Herbert Voss %% %% It may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c %% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. \ProvidesFile{dtk-extern}% [2016/08/04 v0.03 dtk package for running external documents (HV)] \RequirePackage{shellesc,filecontents,xkeyval,graphicx} \newcounter{dtk@extern@runs} \define@key{dtk}{compiler}[pdflatex]{\gdef\dtk@extern@compiler{#1}} \define@key{dtk}{runsequence}[]{\gdef\dtk@extern@runsequence{#1}} \define@key{dtk}{runs}[1]{\setcounter{dtk@extern@runs}{#1}} \define@key{dtk}{grfOptions}[]{\gdef\dtk@extern@grfOptions{#1}} \define@key{dtk}{lstOptions}[]{\gdef\dtk@extern@lstOptions{#1}} \define@boolkey{dtk}[dtk@extern@]{code}[true]{} \define@boolkey{dtk}[dtk@extern@]{force}[true]{} \define@boolkey{dtk}[dtk@extern@]{crop}[true]{} \define@boolkey{dtk}[dtk@extern@]{biber}[true]{} \define@boolkey{dtk}[dtk@extern@]{includegraphic}[true]{} \define@boolkey{dtk}[dtk@extern@]{frame}[true]{} \define@boolkey{dtk}[dtk@extern@]{float}[true]{} \setkeys{dtk}{ code=false,% show Code crop=false,% erzeugte PDF "croppen" compiler=pdflatex,% zu verwendener Compiler grfOptions={},% Optionen der einzubindenden Grafik lstOptions={},% Optionen für das Listing includegraphic=true,% Grafik einbinden oder User überlassen runs=1,% Anzahl Compiler-Durchläufe runsequence={},% Im Moment nicht aktiv biber=false,% Biber laufen lassen? force=false,% Compiler, auch wenn PDF existiert? frame=false,% keinen Rahmen um Abbildung float=false,% nicht als Gleitumgebung } \def\ResetKeys{% \setkeys{dtk}{ code=false,% show Code crop=false,% erzeugte PDF "croppen" compiler=pdflatex,% zu verwendener Compiler grfOptions={},% Optionen der einzubindenden Grafik lstOptions={},% Optionen für das Listing includegraphic=true,% Grafik einbinden oder User überlassen runs=1,% Anzahl Compiler-Durchläufe runsequence={},% Im Moment nicht aktiv biber=false,% Biber laufen lassen? force=false,% Compiler, auch wenn PDF existiert? frame=false,% keinen Rahmen um Abbildung float=false,% nicht als Gleitumgebung } } %% %% [#1]: Optionen #2: Dateiname %% \newenvironment{ErstelleGrafik}[2][] {\global\setkeys{dtk}{#1}% \begin \gdef\dtk@extern@dateiname{#2}% \typeout{Externer Dateiname: \dtk@extern@dateiname}% \@nameuse{filecontents*}{#2.tex}} {\@nameuse{endfilecontents*}% \end \loop\ifnum\thedtk@extern@runs>0 \typeout{Run: \thedtk@extern@runs\space \dtk@extern@compiler\space\dtk@extern@dateiname}% \ShellEscape{\dtk@extern@compiler\space\dtk@extern@dateiname}% \addtocounter{dtk@extern@runs}{-1}% \repeat \ifdtk@extern@code\expandafter\lstinputlisting\expandafter[\dtk@extern@lstOptions]{\dtk@extern@dateiname}\fi \expandafter\IfFileExists\expandafter{\dtk@extern@dateiname.pdf}% {\ifdtk@extern@force \ifdtk@extern@biber \ShellEscape{biber \dtk@extern@dateiname}% NAch biber nochmal latex \ShellEscape{\dtk@extern@compiler\space\dtk@extern@dateiname}% \fi \ifdtk@extern@crop \ShellEscape{pdfcrop \dtk@extern@dateiname}% \ShellEscape{mv \dtk@extern@dateiname-crop.pdf \dtk@extern@dateiname.pdf}% \fi \fi }{} \ifdtk@extern@includegraphic \ifdtk@extern@float\begin{figure}[!htb]\fi \ifdtk@extern@frame \fbox{\expandafter\includegraphics\expandafter[\dtk@extern@grfOptions]{\dtk@extern@dateiname}}% \else \expandafter\includegraphics\expandafter[\dtk@extern@grfOptions]{\dtk@extern@dateiname}% \fi \ifdtk@extern@float\end{figure}\fi \fi \global\ResetKeys} % \endinput