Actualmente estoy escribiendo un documento relativamente largo (alrededor de 170 páginas); y para no ralentizar la compilación, estoy generando las figuras externamente y las estoy incluyendo en el tex
archivo principal pdfs
vía includegraphics
. Hasta ahora no he tenido mayores problemas al compilar las figuras, pero sí los tengo cuando dibujo los árboles. Es decir, al dibujar los árboles, standalone
no respeta en absoluto el tamaño real de la figura. Antes de explicar más mi problema, permítanme mostrarles una figura que ilustra mi problema:
Este es un MWE que reproduce mi problema:
\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}
Estoy dibujando los árboles usando el egameps
paquete (documentación completa aquí:https://www.economics.utoronto.ca/osborne/latex/egameps.pdf) porque tiene una sintaxis simple y es el estándar al escribir Teoría de Juegos. Por lo tanto, SÍ quiero ceñirme a este paquete, que se basa en pstricks
(también puede funcionar en pdftricks
su lugar). La cuestión es que no puedo obtener de forma independiente el tamaño adecuado del árbol; obteniendo así árboles incompletos o/y márgenes demasiado grandes. Supuestamente el problema podría solucionarse especificando correctamente el tamaño del árbol en:
\begin{egame}(0,350)
Donde (0,350) indica una cifra de 0mm de ancho y 350mm de alto. Sin embargo, soy absolutamente incapaz de calcular el tamaño correcto del árbol. ¿Alguien podría ayudarme a especificar el tamaño correcto del árbol? Necesito una manera de calcular el tamaño correcto porque tengo varios árboles para dibujar y tengo este problema con la mayoría de ellos. Por lo tanto, no es suficiente medir manualmente el tamaño de este árbol específico. Tenga en cuenta también que he leído el paquete completo en formato PDF dos veces; pero no importa lo que haga, nunca acierto con la talla.
Alternativamente, si especificar el tamaño correcto de cada árbol es demasiado difícil; tal vez alguien pueda proporcionar una forma alternativa (a través de una especificación en standalone
?) para forzar standalone
el tamaño correcto del documento incluso si el tamaño del árbol se especifica incorrectamente. Eso sería suficiente para mí.
Además, tal vez alguien conozca una clase de documento alternativa que no genere este problema sino solo el resultado que deseo. Una solución así también me bastaría.
Tenga en cuenta que compilar la figura como un artículo y luego transformarla eps
es algo que he probado y NO me gusta porque al transformarla pdf
en un eps
, algunas cosas (como letras griegas u otras cosas elegantes) cambian y se ven raras. Además, incluirlo eps
en mi archivo tex principal ralentiza mucho la compilación, y precisamente no quiero eso. Aunque podría generar la figura con la clase de documento del artículo, luego transformarla en eps y luego revertir los eps a pdf nuevamente con los tamaños correctos, no creo que esta sea una buena solución (es demasiado costosa en tiempo y las cosas sofisticadas como el griego las letras seguirían siendo incorrectas).
Si alguien puede ayudarme con esto, estaría MUY feliz (sé que esta es una pregunta muy específica del usuario y sé que es posible que no obtenga ninguna respuesta; ¡pero necesito hacerlo bien!).
Respuesta1
El código de egame
tiene muchos errores. El interno definido pspicture
tiene coordenadas completamente incorrectas. Sin embargo, puedes utilizar directamente el pspicture
entorno:
\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}
La unidad interna está configurada egame
en 0,1 mm, si no la modifica el usuario. El primer nodo comienza 100,340
con los brazos 200
a la izquierda y a la derecha. El último nodo se establece en 1300,-310
también con brazos de 200
. Esta es la razón por la que elegí el entorno pspicture en las coordenadas inferior izquierda (-200,-500)
y superior derecha (1600,400)
. Algo así \begin{egame}(0,350)
no tiene ningún sentido: crea un área de dibujo de 0 ancho y 350 alto.
Respuesta2
Aquí hay otra solución para usar elistgame
paquete, que se basa en TikZ
. El istgame
medio ambiente es casi el mismo que el tikzpicture
medio ambiente. Con el istgame
paquete (básicamente tikz tree
), no necesita preocuparse por encontrar las coordenadas correctas. En su lugar, puedes utilizarlo \xtdistance
para determinar la forma de un árbol de juego.
\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}