"p"-열(테이블 형식)의 \hbox는 행 레이아웃을 파괴합니다.

"p"-열(테이블 형식)의 \hbox는 행 레이아웃을 파괴합니다.

다음 예제 코드는 내 명령의 문제를 보여줍니다 . 이 명령은 (긴 내용의 경우) \vertgap필수 인수를 캡슐화한 후 필수 인수 위와 아래에 약간의 공간을 추가하기 위한 것입니다 . -type 열 \hbox에서는 잘 작동 l하지만 분명히 p-type 열에서는 작동하지 않습니다. 첫 번째 시도에서는 longtable자동 삽입도 무시하지 않고 작동하기 때문에(참고: 예제 코드에는 머리글과 각주가 없음) 이를 인식하지 못했습니다 \centering.

내 목표는 다음에서 볼 수 있습니다 longtable. 세 테이블 행의 높이가 모두 같습니다. 에서도 이 동작을 달성할 수 있습니까 tabular?

부록: -type 열에 을 간단히 사용하면 \hbox문제 p를 충분히 알 수 있습니다.

\documentclass{article}
\usepackage{longtable}
\usepackage{array}

\newcommand{\vertgap}[1]{\hbox{\vbox{\kern0.25ex\vtop{\hbox{#1}\kern0.25ex}}}}%
%\newcommand{\vertgap}[1]{\hbox{\vbox{\hrule height0.25ex\vtop{\hbox{#1}\hrule height0.25ex}}}}%
% The commented-out command above shows the inserted gaps - these seem to be ok.

\begin{document}

\begin{tabular}{|l|>{\centering}p{2in}|l|}
\hline%
aaaa: & 4711-0815 & any\\
\hline%
aaa: & \vertgap{0815} & any\\
\hline%
aa: & 4711 & any\\
\hline%
\end{tabular}

\begin{longtable}{|l|>{\centering}p{2in}|l|}
\hline%
aaaa: & 4711-0815 & any\\
\hline%
aaa: & \vertgap{0815} & any\\
\hline%
aa: & 4711 & any\\
\hline%
\end{longtable}

\end{document}

답변1

\hboxTeX 기본 요소이며 자세히 작동하는 방법을 알지 않는 한 LaTeX에서 사용해서는 안 됩니다(예전처럼 색상이나 배치와 같은 문제가 발생할 수 있습니다). 사용할 해당 LaTeX 명령은 \mbox문제를 해결합니다.

주된 이유는 \hbox세로 모드에서 문단을 시작하지 않고 단순히 왼쪽 정렬로 추가되기 때문입니다. 따라서 \centering효과가 없습니다. \mbox상자가 단락의 일부가 되도록 합니다.

업데이트

\kern아마도 , \vbox, 에 대해서도 마찬가지라고 덧붙여야 할 것 같습니다. \vtop즉, LaTeX "문서 수준" 명령은 지원되지 않습니다. 물론 이들 모두는 패키지 등을 빌드하는 데 필요한 명령이지만 사용자 수준에서는 피하는 것이 좋습니다.

하지만 실제로 LaTeX와 동등한 것은 없습니다. \vtop{\kern...\hbox{#1}\kern...}내부의 hbox만큼 넓은 수직 상자를 생성하기 때문입니다. LaTeX는 정의된 너비를 가진 수직 상자만 제공합니다. 예를 들어 \parbox정의된 너비 내에서 단락을 시작하는 순간 내용에 관계없이 상자의 너비가 됩니다. 글쎄, \shortstack{..\\[..] ...}내 생각에 사용할 수는 있지만 그것도 일종의 해킹이 될 것입니다. 따라서 현재의 방식으로 코딩하는 것이 아마도 원하는 결과를 얻는 가장 간단한 방법일 것입니다(이러한 명령의 부작용을 알고 있는 한).

관련 정보