pstricks로 그림 크기를 제대로 얻지 못하는 독립형! (MWE + 설명 포함)

pstricks로 그림 크기를 제대로 얻지 못하는 독립형! (MWE + 설명 포함)

나는 현재 비교적 긴 문서(약 170페이지)를 조판하고 있습니다. 컴파일 속도가 느려지 는 tex것을 방지하기 위해 외부에서 그림을 생성하고 . 지금까지는 그림을 그리는 데 큰 어려움이 없었지만, 나무를 그릴 때는 그렇습니다. 즉, 나무를 그릴 때 그림의 실제 크기를 전혀 고려하지 않습니다. 내 문제를 더 자세히 설명하기 전에 내 문제를 설명하는 그림을 보여 드리겠습니다.pdfsincludegraphicsstandalone

여기에 이미지 설명을 입력하세요

이것은 내 문제를 재현하는 MWE입니다.

\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}

패키지를 사용하여 나무를 그리고 있습니다 egameps(여기에 전체 문서가 있습니다:https://www.economics.utoronto.ca/osborne/latex/egameps.pdf) 구문이 간단하고 게임 이론을 조판할 때 표준이 되기 때문입니다. 그러므로 나는 pstricks(대신 사용할 수도 있음 ) 에 의존하는 이 패키지를 고수하고 싶습니다 pdftricks. 문제는 트리의 크기를 적절하게 얻기 위해 독립 실행형을 얻을 수 없다는 것입니다. 따라서 불완전한 트리 또는/또는 너무 큰 여백이 발생합니다. 다음에서 트리의 크기를 올바르게 지정하면 문제가 해결될 수 있습니다.

\begin{egame}(0,350)

여기서 (0,350)은 너비가 0mm, 높이가 350mm인 수치를 나타냅니다. 그러나 나는 트리의 정확한 크기를 전혀 계산할 수 없습니다. 누구든지 나무의 정확한 크기를 지정하는 데 도움을 줄 수 있습니까? 그릴 나무가 여러 개 있고 대부분의 나무에 이 문제가 있기 때문에 올바른 크기를 계산하는 방법이 필요합니다. 따라서 이 특정 트리의 크기를 수동으로 파악하는 것만으로는 충분하지 않습니다. 또한 전체 패키지 pdf를 두 번 읽었습니다. 하지만 뭘 해도 사이즈가 맞지 않네요.

또는 모든 나무의 정확한 크기를 지정하는 것이 너무 어려운 경우; 어쩌면 누군가가 트리 크기가 잘못 지정된 경우에도 문서 크기를 올바르게 가져오도록 하는 대체 방법(?의 사양을 통해 standalone) 을 제공할 수 있습니다. standalone나는 그것으로 충분할 것입니다.

또한 누군가가 이 문제를 생성하지 않고 내가 원하는 출력만 생성하는 대체 문서 클래스를 알고 있을 수도 있습니다. 그러한 해결책은 나에게도 충분할 것입니다.

그림을 기사로 편집한 다음 이를 변환하는 eps것은 제가 시도한 것이지만 마음에 들지 않습니다. 왜냐하면 를 pdf로 변환할 때 eps일부 항목(예: 그리스 문자 또는 기타 멋진 항목)이 변경되고 이상해 보이기 때문입니다. 또한, eps내 메인 tex 파일에 포함시키면 컴파일 속도가 많이 느려지는데, 저는 그것을 원하지 않습니다. 기사 문서 클래스를 사용하여 그림을 생성한 다음 EPS로 변환한 다음 올바른 크기로 EPS를 다시 PDF로 되돌릴 수 있지만 이것이 좋은 작업 솔루션이라고 생각하지 않습니다(시간이 많이 걸리고 그리스 문자는 여전히 틀릴 것입니다).

누구든지 이 문제에 대해 도움을 줄 수 있다면 매우 기쁠 것입니다(이 질문은 매우 사용자에게 특정한 질문이라는 것을 알고 있으며 어떤 답변도 얻지 못할 수도 있다는 것을 알고 있습니다. 하지만 이 문제를 올바르게 해결해야 합니다!).

답변1

의 코드는 egame완전히 버그가 있습니다. 정의된 내부의 pspicture좌표가 완전히 잘못되었습니다. 그러나 대신 환경을 직접 사용할 수 있습니다 pspicture.

\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}

여기에 이미지 설명을 입력하세요

내부 단위는 egame사용자가 수정하지 않으면 0.1mm로 설정됩니다. 첫 번째 노드는 왼쪽과 오른쪽 100,340의 팔로 시작됩니다. 200마지막 노드는 1300,-310의 팔로도 설정됩니다 200. 이것이 내가 왼쪽 하단 좌표 (-200,-500)와 오른쪽 상단 의 pspicture 환경을 선택한 이유입니다 (1600,400). 다음과 같은 것은 \begin{egame}(0,350)의미가 없습니다. 너비가 0이고 높이가 350인 그리기 영역을 만듭니다.

답변2

다음은istgame를 기반으로 하는 패키지입니다 TikZ. 환경 은 환경 istgame과 거의 동일합니다 tikzpicture. istgame패키지(기본적으로 ) 를 사용하면 tikz tree올바른 좌표를 찾는 것에 대해 걱정할 필요가 없습니다. 대신 \xtdistance게임 트리의 모양을 결정하는 데 사용할 수 있습니다 .

여기에 이미지 설명을 입력하세요

\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}

관련 정보