%EC%9D%98%20%5Chbox%EB%8A%94%20%ED%96%89%20%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83%EC%9D%84%20%ED%8C%8C%EA%B4%B4%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다음 예제 코드는 내 명령의 문제를 보여줍니다 . 이 명령은 (긴 내용의 경우) \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
\hbox
TeX 기본 요소이며 자세히 작동하는 방법을 알지 않는 한 LaTeX에서 사용해서는 안 됩니다(예전처럼 색상이나 배치와 같은 문제가 발생할 수 있습니다). 사용할 해당 LaTeX 명령은 \mbox
문제를 해결합니다.
주된 이유는 \hbox
세로 모드에서 문단을 시작하지 않고 단순히 왼쪽 정렬로 추가되기 때문입니다. 따라서 \centering
효과가 없습니다. \mbox
상자가 단락의 일부가 되도록 합니다.
업데이트
\kern
아마도 , \vbox
, 에 대해서도 마찬가지라고 덧붙여야 할 것 같습니다. \vtop
즉, LaTeX "문서 수준" 명령은 지원되지 않습니다. 물론 이들 모두는 패키지 등을 빌드하는 데 필요한 명령이지만 사용자 수준에서는 피하는 것이 좋습니다.
하지만 실제로 LaTeX와 동등한 것은 없습니다. \vtop{\kern...\hbox{#1}\kern...}
내부의 hbox만큼 넓은 수직 상자를 생성하기 때문입니다. LaTeX는 정의된 너비를 가진 수직 상자만 제공합니다. 예를 들어 \parbox
정의된 너비 내에서 단락을 시작하는 순간 내용에 관계없이 상자의 너비가 됩니다. 글쎄, \shortstack{..\\[..] ...}
내 생각에 사용할 수는 있지만 그것도 일종의 해킹이 될 것입니다. 따라서 현재의 방식으로 코딩하는 것이 아마도 원하는 결과를 얻는 가장 간단한 방법일 것입니다(이러한 명령의 부작용을 알고 있는 한).