포리스트 사용 시 TikZ/PGF 오류

포리스트 사용 시 TikZ/PGF 오류

forest두 번째 예에서와 같이 패키지를 사용하여 언어학 트리를 만들려고 합니다 .이 스레드. 대부분의 경우 트리를 생성할 수 있었지만 어떤 이유로 삼각형을 그릴 수 없습니다.

내 MWE는 다음과 같습니다.

\documentclass{article}
\usepackage{forest}
\usepackage{amsmath,amsfonts,amssymb}
\begin{document}
\begin{forest}
for tree={
  if n children =0{
    font=\itshape,
    tier=terminal
  }{},
}
[TP
    [NP
        [Det
            [The]
        ]
        [$\bar{N}$
            [N
                [ice]
            ]
        ]
    ]
    [$\bar{T}$
        [T
            [+pst,font=\scshape]
        ]
        [VP
            [$\bar{V}$
                [V
                    [melt]
                ]
            ]
            [AdvP
                [quickly,triangle]
            ]
        ]
    ]
]
\end{forest}
\end{document}

이것을 실행하면 다음과 같은 오류가 발생합니다.

! Package pgfkeys Error: I do not know the key '/tikz/triangle' and I am going to ignore it. Perhaps you misspelled it. See the pgfkeys package documentation for explanation. Type H for immediate help.... \end{forest}

MiKTeX 2.9에서 Texmaker 4.4.1을 실행하고 있습니다. 내 pgf버전은 3.0.1a이고 pdfTeX 버전 3.1415926-2.5-1.40.14를 사용하고 있습니다. Reddit 사용자는 pdfTeX 3.1415926-2.5-1.40.14(TeX Live 2013/Debian)에서 코드를 실행할 수 있었습니다.

pgf흥미롭게도 Texmaker 4.2, TeX Live 2014, 3.0.0. 및 pdfTeX 3.1415926-2.6-1.40.15를 사용하여 MacBook에서도 성공했습니다 .

내 버전을 다운그레이드할 수 있는 방법이 있을까요 pgf? 아니면 다른 것에서 오류가 있는 걸까요?

답변1

가장 먼저 확인해야 할 것은 버전입니다.당신은 가지고 있습니다.만약에버전 2가 있으면 다음 답변이 적용됩니다. 아직 버전 1이 있는 경우에는 관련이 없습니다.


버전 2가 있다고 가정하면 ...

새로운 버전의이전 버전과 호환되지 않는 일부 변경 사항이 도입되었습니다. 이 경우 다음 두 가지가 우리와 관련이 있습니다.

  1. 특정 옵션 클러스터는 이제 라이브러리로 구성되므로 별도로 로드해야 합니다.

  2. 특정 옵션의 이름이 변경되었거나 더 이상 존재하지 않습니다.

triangle더 이상 옵션으로 존재하지 않습니다. 새로운 옵션은 입니다 roof. 그러나 에 액세스하려면 라이브러리 roof를 로드해야 합니다 linguistics.

문서에는 프로세스가 명확하지 않습니다. 첫 번째 문제는

texdoc forest

이제 문서화된 코드는 제공되지만 사용자 설명서는 제공되지 않습니다.

texdoc -l forest

현재 에 있는 사용자 설명서를 볼 수 있는 옵션을 제공합니다 forest-doc.pdf.

라이브러리 로딩 메커니즘은 20페이지에 설명되어 있습니다.

본질적으로,

\useforestlibrary{<list of libraries>}

라이브러리 목록을 로드하고

\forestapplylibrarydefaults{<list of libraries>}

기본 설정을 적용하여 추가 옵션 등을 사용할 수 있게 만듭니다.

\useforestlibrary{}, like \usepackage{}및 는 \usetikzlibrary{}서문에서만 사용됩니다.

\forestapplylibrarydefaults{}서문이나 문서에서 사용될 수 있으며 현재 TeX 범위 내에서 적용됩니다.

대안은 로드할 때 라이브러리 이름을 옵션으로 전달하는 것입니다.

\usepackage[<list of libraries>]{forest}

이는 라이브러리를 로드하고 문서 전체에 기본값을 적용하는 효과가 있습니다.

참고하세요

\forestapplylibrarydefaults{<libraries>}

<libraries>로드되지 않은 경우 아무 효과가 없습니다 . 그러나 혼란스럽게도 오류가 발생하지 않습니다.

어쨌든 결과적으로 라이브러리를 로드 및 적용 linguistics하고 다음 triangle으로 변경해야 합니다 roof.

\documentclass[tikz, border=10pt, multi]{standalone}
\usepackage{forest}
\usepackage{amsmath,amsfonts,amssymb}
\useforestlibrary{linguistics}
\forestapplylibrarydefaults{linguistics}
\begin{document}
\begin{forest}
for tree={
  if n children =0{
    font=\itshape,
    tier=terminal
  }{},
}
[TP
    [NP
        [Det
            [The]
        ]
        [$\bar{N}$
            [N
                [ice]
            ]
        ]
    ]
    [$\bar{T}$
        [T
            [+pst,font=\scshape]
        ]
        [VP
            [$\bar{V}$
                [V
                    [melt]
                ]
            ]
            [AdvP
                [quickly,roof]
            ]
        ]
    ]
]
\end{forest}
\end{document}

숲 버전 2 언어학의 지붕

이렇게 하면 앵커도 변경되고 가장자리의 모양도 변경됩니다. 나는 이 스타일이 언어학에서 정상이라고 믿기 때문에 이것이 여러분이 원하는 것이기를 바랍니다. 그러나 이전에 앵커와 가장자리에 기본 스타일을 사용한 경우 나무가 약간 다르게 보일 수 있습니다.

관련 정보