Ich setze gerade ein relativ langes Dokument (etwa 170 Seiten); und um die Kompilierung nicht zu verlangsamen, erstelle ich die Abbildungen extern und füge sie in die Hauptdatei ein, tex
indem ich sie pdfs
über einrichte includegraphics
. Bisher hatte ich keine größeren Probleme beim Kompilieren der Abbildungen, aber beim Zeichnen der Bäume schon. Beim Zeichnen der Bäume standalone
wird nämlich die tatsächliche Größe der Abbildung überhaupt nicht berücksichtigt. Bevor ich mein Problem weiter erkläre, möchte ich Ihnen eine Abbildung zeigen, die mein Problem veranschaulicht:
Dies ist ein MWE, das mein Problem reproduziert:
\documentclass[]{standalone}
\usepackage{tikz} % To plot almost everything.
\usepackage{pstricks,pst-node,egameps} % To get extensive form games.
\begin{document}
\begin{egame}(0,350)
\putbranch(100,340)(2,1){200}
\iib{$1$}[o]{$D$}{$A$}[c][$1,1$][]
\putbranch(300,240)(2,1){200}
\iib{$2$}[o]{$D$}{$A$}[c][$0,3$][]
\putbranch(500,140)(2,1){200}
\iib{$1$}[o]{$D$}{$A$}[c][$2,2$][]
\putbranch(700,40)(2,1){200}
\iib{$2$}[o]{$D$}{$A$}[c][$1,4$][]
\putbranch(900,-60)(2,1){200}
\iib{$1$}[o]{$D$}{$A$}[c][$3,3$][$...$]
\putbranch(1100,-210)(2,1){200}
\iib{$1$}[o]{$D$}{$A$}[c][$99,99$][]
\putbranch(1300,-310)(2,1){200}
\iib{$2$}[o]{$D$}{$A$}[c][$98,101$][$100,100$]
\end{egame}
\end{document}
Ich zeichne die Bäume mit dem egameps
Paket (vollständige Dokumentation hier:https://www.economics.utoronto.ca/osborne/latex/egameps.pdf), weil es eine einfache Syntax hat und der Standard beim Setzen von Spieltheorie ist. Daher möchte ich bei diesem Paket bleiben, das auf basiert pstricks
(es kann stattdessen auch mit funktionieren pdftricks
). Das Problem ist, dass ich es nicht schaffe, die Größe des Baums mit Standalone richtig zu ermitteln; daher erhalte ich unvollständige Bäume und/oder zu große Ränder. Das Problem könnte angeblich gelöst werden, indem die Größe des Baums korrekt angegeben wird in:
\begin{egame}(0,350)
Wobei (0,350) eine Figur mit 0 mm Breite und 350 mm Höhe angibt. Ich bin jedoch absolut nicht in der Lage, die korrekte Größe des Baums zu berechnen. Kann mir jemand helfen, die korrekte Größe des Baums anzugeben? Ich brauche eine Möglichkeit, die korrekte Größe zu berechnen, da ich mehrere Bäume zeichnen muss und bei den meisten dieses Problem habe. Daher reicht es nicht aus, die Größe dieses bestimmten Baums manuell zu berechnen. Beachten Sie auch, dass ich das vollständige PDF-Paket zweimal gelesen habe; aber egal, was ich tue, ich bekomme nie die richtige Größe.
Wenn es alternativ zu schwierig ist, die korrekte Größe jedes Baums anzugeben, kann vielleicht jemand eine alternative Möglichkeit bereitstellen (über eine Spezifikation in standalone
?), um standalone
die richtige Dokumentgröße zu erzwingen, selbst wenn die Baumgröße falsch angegeben ist. Das würde mir genügen.
Außerdem kennt vielleicht jemand eine alternative Dokumentklasse, die dieses Problem nicht verursacht, sondern genau die Ausgabe erzeugt, die ich möchte. Eine solche Lösung würde mir auch genügen.
Beachten Sie, dass ich versucht habe, die Abbildung als Artikel zu kompilieren und sie dann in umzuwandeln, eps
und es gefällt mir NICHT, weil sich beim Umwandeln pdf
in ein eps
einige Dinge (wie griechische Buchstaben oder andere ausgefallene Dinge) ändern und komisch aussehen. Außerdem eps
verlangsamt das Einfügen in meine Haupt-Tex-Datei die Kompilierung erheblich, und das möchte ich genau nicht. Obwohl ich die Abbildung mit der Artikel-Dokumentklasse generieren, dann in EPS umwandeln und das EPS dann wieder mit den richtigen Größen in PDF umwandeln könnte, halte ich dies nicht für eine gute Arbeitslösung (es ist zu zeitaufwändig und die ausgefallenen Dinge wie die griechischen Buchstaben wären immer noch falsch).
Wenn mir irgendjemand dabei helfen könnte, wäre ich SEHR froh (mir ist bewusst, dass dies eine sehr benutzerspezifische Frage ist und dass ich möglicherweise keine Antwort bekomme, aber ich muss es richtig machen!).
Antwort1
Der Code von egame
ist völlig fehlerhaft. Die interne Definition pspicture
hat völlig falsche Koordinaten. Sie können jedoch stattdessen direkt die pspicture
Umgebung verwenden:
\documentclass[pstricks]{standalone}
\usepackage{pstricks,pst-node,egameps} % To get extensive form games.
\begin{document}
\psset{unit=0.1mm}\initialtrue
\begin{pspicture}(-200,-500)(1600,400)
\putbranch(100,340)(2,1){200}
\iib{$1$}[o]{$D$}{$A$}[c][$1,1$][]
\putbranch(300,240)(2,1){200}
\iib{$2$}[o]{$D$}{$A$}[c][$0,3$][]
\putbranch(500,140)(2,1){200}
\iib{$1$}[o]{$D$}{$A$}[c][$2,2$][]
\putbranch(700,40)(2,1){200}
\iib{$2$}[o]{$D$}{$A$}[c][$1,4$][]
\putbranch(900,-60)(2,1){200}
\iib{$1$}[o]{$D$}{$A$}[c][$3,3$][$...$]
\putbranch(1100,-210)(2,1){200}
\iib{$1$}[o]{$D$}{$A$}[c][$99,99$][]
\putbranch(1300,-310)(2,1){200}
\iib{$2$}[o]{$D$}{$A$}[c][$98,101$][$100,100$]
\end{pspicture}
\end{document}
Die interne Einheit wird auf 0,1 mm eingestellt egame
, wenn sie nicht vom Benutzer geändert wird. Der erste Knoten beginnt bei 100,340
mit Armen 200
von links und rechts. Der letzte Knoten ist 1300,-310
ebenfalls bei mit Armen von eingestellt 200
. Aus diesem Grund habe ich für die pspicture-Umgebung bei den unteren linken Koordinaten (-200,-500)
und den oberen rechten gewählt (1600,400)
. So etwas wie \begin{egame}(0,350)
ist sinnlos: Es erstellt einen Zeichenbereich mit einer Breite von 0 und einer Höhe von 350.
Antwort2
Hier ist eine weitere Lösung zur Verwendung deristgame
Paket, das auf basiert TikZ
. Die istgame
Umgebung ist fast identisch mit der tikzpicture
Umgebung. Mit dem istgame
Paket (im Wesentlichen tikz tree
) müssen Sie sich keine Gedanken über das Finden korrekter Koordinaten machen. Stattdessen können Sie verwenden, \xtdistance
um die Form eines Spielbaums zu bestimmen.
\documentclass[border=1pt]{standalone}
\usepackage{istgame}
\begin{document}
\begin{istgame}[scale=1]
% tree
\tikzset{oval node/.style={ellipse node,draw=none}}
\xtdistance{15mm}{50mm}
% \xtdistance{15mm}{30mm}
\istrooto(0){1}
\istb{D}[fill=white]{1,1}
\istb{A}[fill=white]
\endist
\istrooto(1)(0-2){2}
\istb{D}[fill=white]{0,3}
\istb{A}[fill=white]
\endist
\istrooto(2)(1-2){1}
\istb{D}[fill=white]{2,2}
\istb{A}[fill=white]
\endist
\istrooto(3)(2-2){2}
\istb{D}[fill=white]{1,4}
\istb{A}[fill=white]
\endist
\istrooto(4)(3-2){1}
\istb{D}[fill=white]{3,3}
\istb{A}[fill=white]{\dots}
\endist
\istrooto(5)([yshift=-5mm]4-2){1}
\istb{D}[fill=white]{99,99}
\istb{A}[fill=white]
\endist
\istrooto(6)(5-2){2}
\istb{D}[fill=white]{98,101}
\istb{A}[fill=white]{100,100}
\endist
\end{istgame}
\end{document}