Atualmente estou compondo um documento relativamente longo (cerca de 170 páginas); e para evitar lentidão na compilação, estou gerando as figuras externamente e incluindo-as no tex
arquivo principal pdfs
via includegraphics
. Até agora, não tive grandes problemas para compilar as figuras, mas tenho quando desenho as árvores. Ou seja, ao desenhar as árvores, standalone
não respeita em nada o tamanho real da figura. Antes de explicar melhor meu problema, deixe-me mostrar uma figura que ilustra meu problema:
Este é um MWE que reproduz meu 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}
Estou desenhando as árvores usando o egameps
pacote (documentação completa aqui:https://www.economics.utoronto.ca/osborne/latex/egameps.pdf) porque tem uma sintaxe simples e é o padrão na composição da Teoria dos Jogos. Portanto, eu quero me ater a este pacote, do qual depende pstricks
(ele também pode funcionar pdftricks
). O problema é que não consigo obter sozinho o tamanho da árvore; obtendo, portanto, árvores incompletas ou/e margens muito grandes. O problema poderia supostamente ser resolvido especificando corretamente o tamanho da árvore em:
\begin{egame}(0,350)
Onde (0,350) indica um valor de 0mm de largura e 350mm de altura. No entanto, sou absolutamente incapaz de calcular o tamanho correto da árvore. Alguém poderia me ajudar a especificar o tamanho correto da árvore? Preciso calcular o tamanho correto porque tenho várias árvores para desenhar e tenho esse problema com a maioria delas. Portanto, estimar manualmente o tamanho desta árvore específica não é suficiente. Observe também que li o pacote completo em pdf duas vezes; mas não importa o que eu faça, nunca acerto o tamanho.
Alternativamente, se especificar o tamanho correto de cada árvore for muito difícil; talvez alguém possa fornecer uma maneira alternativa (por meio de uma especificação em standalone
?) Para forçar standalone
o tamanho do documento correto, mesmo que o tamanho da árvore seja especificado incorretamente. Isso seria suficiente para mim.
Além disso, talvez alguém conheça uma documentclass alternativa que não gere esse problema, mas apenas a saída que desejo. Tal solução também seria suficiente para mim.
Observe que compilar a figura como um artigo e depois transformá-la em eps
é algo que tentei e NÃO gostei porque, ao transformar a figura pdf
em um eps
, algumas coisas (como letras gregas ou outras coisas sofisticadas) mudam e ficam estranhas. Além disso, incluir eps
no meu arquivo tex principal retarda muito a compilação, e eu precisamente não quero isso. Embora eu pudesse gerar a figura com o artigo documentclass, depois transformá-la em eps e depois reverter o eps para pdf novamente com os tamanhos corretos, não acho que essa seja uma boa solução funcional (é muito caro e sofisticado, como o grego letras ainda estariam erradas).
Se alguém puder me ajudar com isso, ficarei MUITO feliz (estou ciente de que esta é uma pergunta muito específica do usuário e estou ciente de que posso não obter nenhuma resposta; mas preciso acertar!).
Responder1
O código de egame
é totalmente bugado. O interno definido pspicture
tem coordenadas completamente erradas. No entanto, você pode usar diretamente o pspicture
ambiente:
\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}
A unidade interna é configurada em egame
0,1mm, caso não seja modificada pelo usuário. O primeiro nó começa 100,340
com braços 200
à esquerda e à direita. O último nó também é definido 1300,-310
com braços de 200
. Esta é a razão pela qual escolhi o ambiente ppicture nas coordenadas inferior esquerda (-200,-500)
e superior direita (1600,400)
. Algo assim \begin{egame}(0,350)
não faz sentido: cria uma área de desenho de largura 0 e altura 350.
Responder2
Aqui está outra solução para usar oistgame
pacote, que é baseado em TikZ
. O istgame
meio ambiente é quase igual ao tikzpicture
meio ambiente. Com o istgame
pacote (basicamente tikz tree
), você não precisa se preocupar em encontrar as coordenadas corretas. Em vez disso, você pode usar \xtdistance
para determinar a forma de uma árvore de jogo.
\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}