테이블 형식 또는 병렬 패키지 내부에 수직선 그리기(및 2개 이상의 열을 갖도록 평행하게 확장하는 방법)

테이블 형식 또는 병렬 패키지 내부에 수직선 그리기(및 2개 이상의 열을 갖도록 평행하게 확장하는 방법)

미리 도움을 주신 모든 분들께 감사의 말씀을 전하고 싶습니다.

다음 질문을 해도 될까요? 코드에서 볼 수 있듯이 2개의 열로 번역 문서를 만들고 있습니다.

저는 parallel패키지를 이용했어요. 내가 이것에 가장 적합한 패키지에 대해 아는 것이 아니라 단순히 인터넷에서 작동하는 코드를 찾았기 때문입니다. 더 나은 패키지를 사용하거나 이러한 열을 코딩하는 더 나은 방법에 대한 조언이 있으면 알려주십시오. 특히 "중첩된" 열을 갖고 싶기 때문입니다. 코드 참조: (테이블 테스트) 나는 tabular이것을하기 위해 지금 s를 사용하고 있습니다. 예를 들어 병렬 패키지의 옵션을 사용하는 것과 같은 더 좋은 방법을 아는 사람이 있습니까? 앞으로는 가능하다면 중첩된 3열 테이블도 필요할 것입니다.

이에 대해 실제 질문이 있습니다. 즉, 중첩된 열 사이에 수직선을 원합니다. 지금 나는 tikz그림으로 선을 그렸습니다. 또한 그것이 연속적인 수직선을 얻는 유일한 방법이기 때문입니다. 그러나 내 코드는 올바른 결과를 제공하지 않습니다. 해당 줄이 병렬 패키지 "단락" 내부에 있으므로 다음 단락이 수직으로 많이 아래로 이동됩니다. \vspace{-...cm}번역이 변경될 때마다 조정이 필요하기 때문에 를 사용하는 것은 그다지 실용적이지 않습니다... 최적화에 도움을 주셔서 감사합니다. 예를 들어, 표 형식(가운데는 비어 있음) 내부에 세 개의 열을 사용해 보았지만 가운데(두 번째) 빈 열에 연속적인 수직선을 그리는 방법에 대한 단서가 없습니다. 다시 한 번 도움을 주셔서 감사합니다.

다음 코드를 사용하고 있습니다.

\documentclass{article}

\usepackage{tikz} % to draw a vertical line

\usepackage[margin=0.5in]{geometry}
\usepackage{parallel}
\usepackage{framed}
\setlength{\FrameSep}{0.1cm} % to create parallel translator columns

\usepackage{calc}\setlength\textwidth{8.3in}\setlength\textheight{10.9in}\setlength\oddsidemargin{(\paperwidth-\textwidth)/2 - 1in}\setlength\topmargin{(\paperheight-\textheight-\headheight-\headsep-\footskip)/2 - 1in} % to adjust page boundaries

\newcommand\Par[2]{\begin{Parallel}[v]{10.2cm}{10.2cm}
\ParallelLText{#1}\ParallelRText{#2}\ParallelPar\end{Parallel}}\setlength{\columnseprule}{.4pt} % to create parallel translator columns

\begin{document}

\begin{framed}

\Par % new paragraph
{ % left <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> left
{ % right <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> left
{ % right <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> right

\raggedright
\rule{\textwidth}{0.4pt} % new page

\Par % new paragraph
{ % left <<<
\centering
\scalebox{0.55}[0.55]{page x} % page numbering
} % >>> left
{ % right <<<
\centering
\scalebox{0.55}[0.55]{page x} % page numbering
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> left
{ % right <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> right

\raggedright
\rule{\textwidth}{0.4pt} % new page

\begin{tikzpicture}
\hspace{5cm}
\draw (1,0) -- (1,5);
\end{tikzpicture}

\Par % new paragraph
{ % left <<<
\centering
TABLE TEST \\
\line(1,0){40} \\
} % >>> left
{ % right <<<
\centering
TABLE TEST \\
\line(1,0){40} \\
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element one}}} & \scalebox{0.8}[0.8]{{\sc{Element b-one}}}
\end{tabular} \\
} % >>> left
{ % right <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element two}}} & \scalebox{0.8}[0.8]{{\sc{Element b-two}}}
\end{tabular}
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element one}}} & \scalebox{0.8}[0.8]{{\sc{Element b-one}}}
\end{tabular} \\
} % >>> left
{ % right <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element two}}} & \scalebox{0.8}[0.8]{{\sc{Element b-two}}}
\end{tabular}
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element three}}} & \scalebox{0.8}[0.8]{{\sc{Element b-three}}}
\end{tabular} \\
} % >>> left
{ % right <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element three}}} & \scalebox{0.8}[0.8]{{\sc{Element b-three}}}
\end{tabular}
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element ...}}} & \scalebox{0.8}[0.8]{{\sc{Element b-...}}}
\end{tabular} \\
} % >>> left
{ % right <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element ...}}} & \scalebox{0.8}[0.8]{{\sc{Element b-...}}}
\end{tabular}
} % >>> right

\end{framed}

\end{document}

답변1

이 답변은 그리 좋지는 않지만 필요한 곳으로 안내할 수 있습니다. 환경 tabular과 .tabular*​ ​환경은 일부 매개변수를 설정하고 전체 테이블을 구분해야 합니다. partabularnextentrypartabular

nextentry테이블을 구축하기 위해 환경을 연속적으로 호출할 수 있습니다. 로 구성되어 있기 때문에 tabular*하나의 "항목"은 여러 줄을 가질 수 있지만 반드시 그럴 필요는 없습니다. 그러나 페이지 나누기는 호출 사이에만 발생할 수 있습니다 nextentry. 환경에서 자동으로 작업을 수행하므로 의 \hline마지막 행에 을 추가하지 마세요 .nextentry

나는 tabular효과적으로 수직으로 분할하는 셀 내에서 셀을 구축하는 방법을 보여줍니다. 단점은 분할 열이 해당 행에서 가장 길지 않은 경우 매크로를 사용하여 \filllines{}세로 막대를 전체 포함 셀의 아래쪽까지 확장해야 한다는 것입니다.

또 다른 특징: 길이는 일반적으로 인접한 블록 delfix사이에 나타나는 수직 공간입니다 . tabular*정의하면 \delfix해당 길이를 빼서 두 번째 줄의 맨 위 줄이 tabular*첫 번째 줄의 맨 아래 줄과 겹쳐지도록 할 수 있습니다. \raggedbottom프리앰블을 켜면 접착제가 이 측정을 방해하지 않게 됩니다.

MWE는 두 개의 열로 설정됩니다. 3으로 확장하려면 길이 \colwidth\splitcolwidth재정의해야 합니다.

\documentclass{article}
\usepackage{lipsum}
\def\lipsA{%
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.}
\def\lipsB{%
Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus
et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra
metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus
eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium
quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. }
\def\lipsC{%
Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Cur-
abitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue
eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim
rutrum.}
\newlength\svparskip
\newlength\delfix
\delfix1.3pt
\newlength\colwidth
\setlength\colwidth{\dimexpr.5\textwidth-2\tabcolsep}
\newlength\splitcolwidth
\setlength\splitcolwidth{\dimexpr.25\textwidth-2\tabcolsep}
\newenvironment{partabular}
  {\par\svparskip=\parskip\relax\vspace{\delfix}}
  {\vspace{\delfix}\parskip=\svparskip\relax}
\newenvironment{nextentry}
  {\parskip-\delfix\par\noindent\begin{tabular*}{\textwidth}[t]
  {|p{\colwidth}|p{\colwidth}|}\hline}{\hline\end{tabular*}\par}
\def\filllines#1{\vspace{\dimexpr#1\ht\strutbox+#1\dp\strutbox}}
\raggedbottom
\begin{document}
\lipsum[1]
\begin{partabular}
\begin{nextentry}
a & b\\\hline
c & d\\\hline
\lipsA & \lipsB\\
\end{nextentry}
\begin{nextentry}
F & G\\\hline
  \begin{tabular}[t]{@{}p{\splitcolwidth}|p{\splitcolwidth}@{}}
  This is a test of a split column \filllines{6}& X 
  \end{tabular} 
& \lipsC\\
\end{nextentry}
\begin{nextentry}
\lipsA & \lipsC\\
\end{nextentry}
\begin{nextentry}
F & G\\\hline
\lipsB & \lipsC\\\hline
\lipsA & \lipsC\\
\end{nextentry}
\begin{nextentry}
F & G\\\hline
\lipsB & \lipsC\\
\end{nextentry}
\begin{nextentry}
\lipsA & \lipsC\\
\end{nextentry}
\end{partabular}
\end{document}

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

매개변수 를 사용하여 두 개의 수평선을 오버레이하는 솔루션 부분이 만족스럽지 않은 경우 \delfix대체 정의는 다음과 같습니다.

\newenvironment{nextentry}[1][\relax]
  {\parskip-\delfix\par\noindent\begin{tabular*}{\textwidth}[t]
    {|p{\colwidth}|p{\colwidth}|}\ifx\relax#1\relax\else\hline\fi}
  {\hline\end{tabular*}\par}

이것은 공백이 아닌 선택적 인수가 다음과 같은 방식으로 \hline제공되는 경우에만 테이블 시작 부분에 인쇄됩니다.nextentry

\begin{nextentry}[x]
a & b\\\hline
c & d\\\hline
\lipsA & \lipsB\\
\end{nextentry}

nextentry이 대체 접근 방식의 단점은 각 출력 페이지의 첫 번째 블록에 선택적 인수를 수동으로 추가해야 한다는 것입니다 . 이 경우 통제되지 않은 페이지 매김 변경은 매우 불행한 일이 될 것입니다.

관련 정보