여러 줄의 텍스트로 인해 올바른 방향의 Tikz-qtree 선이 직선이 아닙니다.

여러 줄의 텍스트로 인해 올바른 방향의 Tikz-qtree 선이 직선이 아닙니다.

다음과 같은 텍스트 문서가 있습니다.

\documentclass[10pt]{article}
\ExpandArgs{c}\newcommand{new@fontshape}{anything}

\usepackage{linguex}
\usepackage[russian,indonesian]{babel}
\usepackage[none]{hyphenat}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{amssymb}
\usepackage{booktabs}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{gb4e}
\primebars
\let\emptyset\varnothing

\geometry{
 a4paper,
 total={170mm,257mm},
 left=20mm,
 top=20mm,
 }

\newcommand{\?}[1]{\foreignlanguage{russian}{#1}}

\begin{document}

\noindent {\LARGE \bf Uraian pohon sintaksis}\\

\begin{exe}

\ex{{\bf (RU)}
\tikzset{grow'=right}
\tikzset{every tree node/.style={align = left, anchor=base west}}
\tikzset{frontier/.style={distance from root=170pt}}
\tikzset{execute at begin node=\strut}
\Tree [.K [.FN {\?{\it Путин}\\ Putin} ] [.FV [.V {\?{\it опроверг}\\ membantah} ] [.FN [.FN [. N {\?{\it дискриминацию}\\ diskriminasi\textsc{.aku}} ] [.N {\?{\it геев}\\ gay\textsc{.jam.gen}} ] ] [.FV [.P {\?{\it в}\\ di} ] [.N\textsc{.part} {\?{\it России}\\ Rusia\textsc{.prep}} ] ] ] ] ] }

\end{exe}

\end{document}

다음과 같은 조판을 사용합니다. 여기에 이미지 설명을 입력하세요

줄이 여러 줄의 단어와 만날 때까지 모든 것이 잘 진행되었습니다. 단어가 균등하게 분배되고 선이 모두 직선이 되도록 문서를 개선하려면 어떻게 해야 합니까?

나는 선이 다음과 같이 직선이기를 원합니다. 여기에 이미지 설명을 입력하세요

나는 논쟁을 시도했지만 \tikzset{sibling distance=18pt}거리가 더 넓어졌고 선이 직선이 아니었습니다.

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

답변1

[편집하다tikz-qtree아래 해결 방법을 참조하세요 . 그러나 forest더 유연합니다.]

에서는 forest원하는 대로 트리의 형식을 쉽게 지정할 수 있습니다. 그만한 가치가 있는 것에 대한 forest해결책은 다음과 같습니다. 내 컴퓨터에서 코드는 mf확장 가능한 형식이 아닌 글꼴을 사용합니다. 이는 아마도 원하는 것이 아니지만 예제를 최소화하는 기능일 수 있습니다. 이 질문의 목적을 위해 코드를 더욱 최소화했습니다.

구문은 qtree/ 와 다르지 않지만 tikz-qtree점이 없으며 하위에는 분기가 없더라도 대괄호가 필요합니다.

\documentclass[border=10pt,10pt]{standalone}

\usepackage[russian,indonesian]{babel}
\usepackage[linguistics]{forest}
\newcommand{\?}[1]{\foreignlanguage{russian}{#1}}

\begin{document}
\begin{forest}
  for tree={%
    grow=0,
    anchor=base west,
  },
  where n children=0{%
    tier=terminus,
    calign with current edge,
    align=left,
  }{%
    font=\scshape,
  },
  [K
    [FV
      [FN
        [FV
          [P [\?{\itshape в}\\ di] ]
          [N.part [\?{\itshape России}\\ Rusia\textsc{.prep}] ]
        ]
        [FN
          [N [\?{\itshape геев}\\ gay\textsc{.jam.gen}] ]
          [N [\?{\itshape дискриминацию}\\ diskriminasi\textsc{.aku}] ]
        ]
      ]
      [V [\?{\itshape опроверг}\\membantah] ]
    ]
    [FN [\?{\itshape Путин}\\ Putin ] ]
  ]
\end{forest}
\end{document}

또한 사용되지 않는 글꼴 명령도 업데이트했습니다.

X의 최신 Okular에 있는 버그로 인해 실제 출력에 관계없이 내 사진이 모두 형편없어 보여 별 의미가 없기 때문에 사진을 게시하지 않겠습니다. 누락에 대해 사과드립니다.

편집하다

을 사용하려면 트릭을 수행하는 대신 tikz-qtree다음을 설정하세요 .anchor=westanchor=base west

\documentclass[10pt]{article}

\usepackage{linguex}
\usepackage[russian,indonesian]{babel}
\usepackage{tikz-qtree}
\usepackage{gb4e}
\newcommand{\?}[1]{\foreignlanguage{russian}{#1}}

\begin{document}

\begin{exe}

\ex{{\bfseries (RU)}
  \tikzset{%
    grow'=right,
    every tree node/.style={anchor=west,align=left},
    frontier/.style={distance from root=170pt},
    execute at begin node=\strut,
  }
  \begin{tikzpicture}
    \Tree [.K [.FN {\?{\itshape Путин}\\ Putin} ] [.FV [.V {\?{\itshape опроверг}\\ membantah} ] [.FN [.FN [. N {\?{\itshape дискриминацию}\\ diskriminasi\textsc{.aku}} ] [.N {\?{\itshape геев}\\ gay\textsc{.jam.gen}} ] ] [.FV [.P {\?{\itshape в}\\ di} ] [.N\textsc{.part} {\?{\itshape России}\\ Rusia\textsc{.prep}} ] ] ] ] ] 
  \end{tikzpicture}%
}
\end{exe}

\end{document}

왜 진작에 이 생각을 못했나 모르겠네요....

관련 정보