PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kollision von tikz externalize, inputenc (und evtl. lualatex)?



Steffen1187
22-01-2014, 07:39
Guten Morgen zusammen,

ist euch eine Kollision von inputenc (Option UTF8) und Tikz mit Externalisierungsprozess bekannt?


\documentclass[]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{pstool}
\usepackage{pgfplots}
\usetikzlibrary{external,chains}
\tikzset{external/system call={lualatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}}
\tikzexternalize
\pgfplotsset{invoke before crossref tikzpicture={\tikzexternaldisable},invoke after crossref tikzpicture={\tikzexternalenable}}
\newcommand{\legendref}[1]{\tikzexternaldisable\ref{#1}\tikzexternalenable}

\tikzset{
nodes around center/.style args={#1:#2:#3:#4}{%
% #1 = Startwinkel, #2 = Anzahl Knoten
% #3 = Zentrums-Node, #4 = Abstand
at={([shift={(#3)}] {{(\tikzchaincount-1)*360/(#2)+#1}}:{#4})}
},
nodes around center*/.style args={#1:#2:#3:#4}{% gleiche Optionen wie oben
at={([shift={(#3.{(\tikzchaincount-1)*360/(#2)+#1})}] {{(\tikzchaincount-1)*360/(#2)+#1}}:{#4})},
anchor={(\tikzchaincount-1)*360/(#2)+#1+180}
}
}

%\usepackage[]{xcolor}

\begin{document}
\begin{tikzpicture}[node distance=5em,every node/.style={circle,draw}]
\node [circle,draw=white] (Z) {};
\begin{scope}[
start chain=circle placed {nodes around center=90:5:Z:40mm},
every join/.append style={<-},
every node/.append style={
on chain=circle,
join,
minimum size=0em
}
]
\node[fill=cyan!20!white] {\parbox{35mm}{\centering text text text text text ä ö ü ß}};
\node[fill=cyan!100!white] {\parbox{35mm}{\centering text text text text text ä ö ü ß}};
\node[fill=cyan!80!white] {\parbox{35mm}{\centering text text text text text ä ö ü ß}};
\node[fill=cyan!60!white] {\parbox{35mm}{\centering text text text text text ä ö ü ß}};
\node[fill=cyan!40!white] {\parbox{35mm}{\centering text text text text text ä ö ü ß}};
\chainin (circle-begin);
\end{scope}
\end{tikzpicture}

aöüß

\end{document}

versuche ich dieses Testfile (unabhängig davon, was ich mit TikZ mache, muss nicht solch ein Diagramm sein) zu kompilieren erhalte ich die Fehlermeldung


! Package tikz Error: Sorry, the system call 'lualatex -shell-escape -halt-on-e
rror -interaction=batchmode -jobname "mini-figure0" "\def\tikzexternalrealjob{m
ini}\input{mini}"' did NOT result in a usable output file 'mini-figure0' (expec
ted one of .pdf:.jpg:.jpeg:.png:). Please verify that you have enabled system c
alls. For pdflatex, this is 'pdflatex -shell-escape'. Sometimes it is also name
d 'write 18' or something like that. Or maybe the command simply failed

kommentiere ich das Einbinden von inputenc aus, wird das TikZPicture wie gewollt übersetzt und externalisiert.

Allerdings wird dann das ß in den TikZPictures logischerweise nicht richtig dargestellt, wieso in diesem speziellen Fall ä ö und ü dargestellt werden können, ist mir ein Rätsel :confused: Eigentlich auch egal, ich muss dann auf jeden Fall darauf achten die Umlaute in den TikZPictures als "a etc. zu schreiben, was auf Dauer natürlich mega nervig ist.

Danach kann ich inputenc wieder aktivieren, noch einmal kompilieren und im übrigen Dokument werden die Umlaute auch wieder erkannt, aber eben nicht in den TikZPictures, da diese dann natürlich aus der externen PDF geladen werden

Hat irgendwer von euch eine Idee, woran das liegen kann und wie ich das beheben könnte?

Besten Dank im Voraus
Steffen

u_fischer
22-01-2014, 09:20
Inputenc darf nicht mit lualatex benutzt werden. Und statt fontenc brauchst du eigentlich fontspec.

Steffen1187
22-01-2014, 09:38
Gut, das ist schonmal ne klare Ansage =)

Da ich LuaLatex zwecks TeXCapacity - Thematik nur zum Erstellen der TikZ Grafiken verwende wäre nun die Frage, ob es einen Workaround gibt, oder ob meine "inputenc an und wieder aus" Geschichte tatsächlich notwendig ist.

Grüße

u_fischer
22-01-2014, 15:37
Du kannst ja ifluatex benützen, um inputenc/fontspec je nach engine zu laden.

Steffen1187
23-01-2014, 07:31
Guten Morgen,

danke für deinen Tip. Ich verstehe was du mir vorschlägst, stecke leider selbst aber nicht tief genug in der Arbeitsweise von La / LuaLaTex, um zu wissen wie ich das umsetzen kann.

Meine Gedanken hierzu:
Ich benutzt ja generell Pdf-LaTex und NUR wenn eine TikZ gefunden wird, schält die Kiste auf LuaLaTex um. Das kann das System ja eigentlich aber nur merken, wenn es schon durch die Präambel durch und im Dokument angelangt ist? Ist es dann noch möglich, quasi rückwirkend inputenc wieder zu deaktivieren?