긴 텍스트가있는 일부 셀이있는 테이블을 구현하는 방법은 무엇입니까?

Nov 23 2020

6 개의 열과 일부 행이있는 테이블이 있습니다. 문제는 일부 열의 일부 셀에 긴 텍스트가있어 이상하게 보이고 텍스트 너비에 맞지 않는다는 것입니다. 수동으로 \를 사용하여 긴 텍스트 셀을 분할하려고 \ makecell을 시도했지만 결과 테이블이 이상하게 보입니다. 내가 생성하려는 정확한 예제로 첨부 된 그림을 참조하십시오 (단, 더미 텍스트 포함). 나는 그것이 Excel과 같기를 원하지 않습니다. 셀당 여러 줄로 테이블을 생성하는 전문적인 방법이 필요합니다.

답변

2 Trolobezka Nov 24 2020 at 00:55

텍스트를 여러 줄로 나누는 방법을 정확히 알지 못합니다. 여기에 두 가지 옵션이 있습니다.

옵션 1

\hspace{0pt}tabularx

보시다시피, 단어가 어디에서 깨지는 지 매우 까다 롭습니다. 표가 너무 좁아지면 텍스트가 넘쳐나 기 시작합니다.

옵션 2

\collectcell\seqsplit... \endcollectcelltabularx, seqsplitcollcell

이것으로 텍스트는 어디에서나 나눌 수 있습니다. 그러나 그것은 단어 사이의 간격을 삭제하는 것처럼 보입니다. 이 옵션을 원하고 단어 사이에 공백이 필요한 경우 중괄호 안에 공백을 넣을 수 { }있으며 끊어 지거나 삭제되지 않습니다.

암호

\documentclass[]{article}

\usepackage[margin=1cm]{geometry} % Changing page margin
\usepackage{array}
\usepackage{tabularx}
\usepackage{seqsplit}
\usepackage{collcell}

% >{\hsize=.5\hsize} Insert this into the column type definition to change column width (produces some glitches if used incorrectly)
%\newcolumntype{s}{>{\hspace{0pt}\raggedright\arraybackslash}X} % OPTION 1 "Human"-like breaking
\newcolumntype{s}{>{\collectcell\seqsplit}>{\raggedright\arraybackslash}X<{\endcollectcell}} % OPTION 2 Breaks everything

\renewcommand{\tabularxcolumn}[1]{m{#1}} % Vertical centering in cells
\renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Inserts hyphens at the breakpoints

\begin{document}

\begin{tabularx}{250pt}{|s|s|s|s|s|} % 6 columns, table width = 250pt
\hline
Numbers & Long Strings & Numbers & Long Strings & Numbers \\
\hline
1000000000{ }Big{ }Number & VeryVeryLongString with Number 524 & 1000000000 Big Number & VeryVeryLongString with Number 524 & 1000000000 Big Number \\
\hline
\end{tabularx}

\end{document}

보너스

셀 내에서 텍스트를 가운데 \raggedright\centering맞추려면 열 유형 선언 내부로 변경 하십시오. 다른 스타일의 열이 필요한 경우 이미 존재하는 선언을 복사하고 필요한 것을 변경 한 다음 다른 문자를 지정하고 테이블에서 사용하십시오.