개별 경로 레이블의 스타일을 변경하시겠습니까?

개별 경로 레이블의 스타일을 변경하시겠습니까?

Tikzedt를 사용하여 경로 다이어그램을 만드는 중입니다.

내가 겪고 있는 문제는 서로 매우 가까운 이 선의 경로 레이블이 다른 선과 겹쳐서 읽을 수 없게 된다는 것입니다. (아래 이미지 참조).

현재 코드가 생성하는 각 레이블 주위의 흰색 배경을 확장할 수 있는 방법이 있어야 한다고 생각합니다.

지금까지 이 포럼에서 본 솔루션은 경로 레이블인 모든 노드 또는 모든 노드의 스타일을 변경하는 코드를 헤더에 넣습니다. 그래요~ 아니다왜냐하면 이것은 내가 동일하게 유지하고 싶은 다른 많은 경로가 포함된 훨씬 더 복잡한 다이어그램의 하위 집합이기 때문입니다.

헤더에 새 스타일을 만들고 해당 스타일을 경로 레이블에만 사용해야 할까요? 잘 모르겠습니다. 의견을 보내 주시면 감사하겠습니다.

간단한 해결책이 있는 것 같지만 아직 이런 종류의 문제를 해결하는 방법을 찾지 못했습니다.

나는 tikz 코드의 복잡성에 대해 잘 알지 못하며(이미 명확하지 않은 경우) 현재 동료가 보낸 템플릿을 기반으로 구축하고 있습니다.

중복되거나 무의미한 코드는 용서해 주십시오. 왜냐하면 제가 무엇을 하고 있는지 완전히 확신할 수 없기 때문입니다.

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

이 이미지를 생성하는 데 사용한 코드는 다음과 같습니다.

\usetikzlibrary{positioning,shapes,arrows,backgrounds,decorations.markings}
\usetikzlibrary{decorations.pathreplacing}

% Define block styles
\tikzstyle{block} = [rectangle, draw, minimum width=12mm, minimum height=10mm,fill=white,inner xsep=5pt,inner ysep=8pt] 
\tikzstyle{line} = [-latex'] 
\begin{tikzpicture}[node distance = 3cm,font=\bfseries\boldmath\large,line width=1.25pt]

%Place time point 1 Observed variables
\node [block] (Y010A) {$Y_{01r}$};

%Time point 2 observed variables
\node [block, below=10 cm of Y010A] (Y020A) {$Y_{02r}$};
\node [block, below=0.5cm of Y020A] (Y120A)  {$Y_{12r}$};
\node [block, below=0.5cm of Y120A] (Y220A)  {$Y_{22r}$};
\node [block, below=0.5cm of Y220A] (Y320A)  {$Y_{32r}$};
\node [block, below=0.5cm of Y320A] (Y420A)  {$Y_{42r}$};
\node [block, below=0.5cm of Y420A] (Y520A)  {$Y_{52r}$};

%Place reference trait factors and paths
\node[draw, circle, right=4 cm of Y010A, minimum size=1.25cm](TrA) {$T_{r}$};
\path [line] (TrA.140) edge (Y010A.30);

\path [line] (TrA.210) edge node {} (Y020A.30);
\path [line] (TrA.220) edge node[fill=white,inner sep=2pt,pos=0.1]{$\lambda_{8}$} (Y120A.30);
\path [line] (TrA.230) edge node[fill=white,inner sep=2pt,pos=0.12]{$\lambda_{9}$} (Y220A.30);
\path [line] (TrA.240) edge node[fill=white,inner sep=2pt,pos=0.14]{$\lambda_{10}$} (Y320A.30);
\path [line] (TrA.250) edge node[fill=white,inner sep=2pt,pos=0.16]{$\lambda_{11}$} (Y420A.30);
\path [line] (TrA.260) edge node[fill=white,inner sep=2pt,pos=0.18]{$\lambda_{12}$} (Y520A.30);

\end{tikzpicture}

답변1

이것이 정확히 여러분이 기대했던 것인지는 모르겠지만 다음은 편리할 수 있는 코드입니다.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes,arrows,backgrounds,decorations.markings}
\usetikzlibrary{decorations.pathreplacing}
\begin{document}
% Define block styles
\tikzstyle{block} = [rectangle, draw, minimum width=12mm, minimum height=10mm,fill=white,inner xsep=5pt,inner ysep=8pt]
\tikzstyle{line} = [-latex']
\tikzstyle{path_node_wide} = [fill=white, text width=11mm]
\begin{tikzpicture}[node distance = 3cm,font=\bfseries\boldmath\large,line width=1.25pt]

%Place time point 1 Observed variables
\node [block] (Y010A) {$Y_{01r}$};

%Time point 2 observed variables
\node [block, below=10 cm of Y010A] (Y020A) {$Y_{02r}$};
\node [block, below=0.5cm of Y020A] (Y120A)  {$Y_{12r}$};
\node [block, below=0.5cm of Y120A] (Y220A)  {$Y_{22r}$};
\node [block, below=0.5cm of Y220A] (Y320A)  {$Y_{32r}$};
\node [block, below=0.5cm of Y320A] (Y420A)  {$Y_{42r}$};
\node [block, below=0.5cm of Y420A] (Y520A)  {$Y_{52r}$};

%Place reference trait factors and paths
\node[draw, circle, right=4 cm of Y010A, minimum size=1.25cm](TrA) {$T_{r}$};
\path [line] (TrA.140) edge (Y010A.30);

\path [line, path_node_wide] (TrA.210) edge node {} (Y020A.30);
\path [line] (TrA.210) edge node {} (Y020A.30);
\path [line] (TrA.220) edge node[path_node_wide, pos=0.2]{$\lambda_{8}$} (Y120A.30);
\path [line] (TrA.230) edge node[path_node_wide,pos=0.22]{$\lambda_{9}$} (Y220A.30);
\path [line] (TrA.240) edge node[path_node_wide,pos=0.24]{$\lambda_{10}$} (Y320A.30);
\path [line] (TrA.250) edge node[path_node_wide,pos=0.26]{$\lambda_{11}$} (Y420A.30);
\path [line] (TrA.260) edge node[path_node_wide,pos=0.28]{$\lambda_{12}$} (Y520A.30);

\end{tikzpicture}
\end{document}

path_node_wide원하는 노드에만 적용하는 새로운 스타일( )을 정의했습니다 . 라벨의 흰색 배경과 관련하여 text width라벨이 예상 크기가 되도록 명시적으로 제공합니다(더 나은 방법이 있을 수 있다고 생각하지만...). 나는 또한 당신의 라벨이 그 곳에서 더 읽기 쉽다는 것을 알았기 때문에 조금 옮겼습니다.)

여기에서 결과를 확인할 수 있습니다.

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

조금이라도 도움이 되었으면 좋겠습니다.

관련 정보