일부 셀 사이에 화살표나 선이 있는 표 형식

일부 셀 사이에 화살표나 선이 있는 표 형식

나는 아래와 같은 테이블을 가지고 있으며 이를 Latex로 작성하고 싶습니다. 가장 좋은 접근 방식은 무엇입니까? 나는 테이블을 중첩할 수 있는 Tikz로 시도했지만 다른 필드를 연결하는 선으로 인해 실패했습니다. 또 다른 해결책은 tikz 트리를 사용하는 것이지만 가장자리에 레이블을 지정하는 방법을 모르겠습니다.

TikZ나 다른 라텍스 패키지에서 쉽게 마크업을 사용하여 이와 같은 것을 만들 수 있습니까?

허프만 코딩

답변1

다음은 tikz 매트릭스를 사용한 솔루션의 시작입니다.여기에 이미지 설명을 입력하세요

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{matrix}


\begin{document}

\begin{tikzpicture}
[every node/.style={minimum height=2em}]
\matrix [matrix of math nodes](Mat)
{
x_i  &|[minimum width=4em]|& P(x_i) &|[minimum width=4em]| Code &       &|[minimum width=4em]|      &       &|[minimum width=4em]|  &   &|[minimum width=4em]|  &   &\\
x_1 &&0.30     &        & 0.30  &   &0.30   &   &0.45&  &0.55&\\
x_2 && 0.25    &        & 0.25  &   &0.25   &   &0.30&  &0.45&\\
x_3 && 0.20   &     & 0.20  &   &0.25   &   &0.25&  &   &\\
x_4 && 0.12    &        &0.13   &   &0.20   &   &   &   &   &\\
x_5 && 0.08    &        &0.12   &   &       &   &   &   &   &\\
x_6 && 0.05    &        &   &   &       &   &   &   &   &\\
};

\draw (Mat-2-3.east) -- (Mat-2-3-|Mat-2-5.west)node[above,midway]{00};
\draw(Mat-5-3.east) --++(1em,0) -- (Mat-6-5.west)node[above,pos=0.2]{101};
\draw (Mat-6-3.east)-|node[above,pos=0.4]{1000}++(2em,-1em) coordinate(aa) --++(1em,0) |- (Mat-5-5.west);
\draw (Mat-7-3.east)-|node[below,pos=0.4]{1001} (aa);
\end{tikzpicture}

\end{document}

관련 정보