Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
Multicolumn 사용 시 셀 길이 문제
2017.10.23 11:19
안녕하세요. 표를 구성할 때 궁금한 점이 있습니다.
Multicolumn 기능으로 다수의 열을 병합할 때, 병합된 셀이 길어지면 표 전체 모양이 일그러지는 문제가 발생하네요.
혹시 어떻게 해결할 수 있을까요? 제가 말씀드리는 것보다 직접 보여드리는 편이 더 나을 것 같아 예제를 첨부합니다.
아래는 예제 코드입니다.
\documentclass{article} \begin{document} \begin{table}[h] \begin{center} \begin{tabular}{lrrr}\hline \multicolumn{1}{c}{Dummy}&\multicolumn{1}{c}{Dummy}&\multicolumn{1}{c}{Dummy}&\multicolumn{1}{c}{Dummy}\\\hline \multicolumn{4}{l}{Dummy dummy dummy dummy dummy dummy dummy}\\\hline A&1.00&1.00&1.00\\ B&1.00&1.00&1.00\\ C&1.00&1.00&1.00\\\hline \end{tabular} \end{center} \end{table} \end{document} |
아래는 결과입니다. 병합된 2행이 길어지니, 4열만 길어져서 1, 2, 3열과 조화를 못 이루는 것 같습니다.
감사합니다.
레이텍에 기본으로 들어있는 tabular 환경은 아시다시피 l/r/c 따위로 셀 안의 내용을 정렬하도록 합니다. 이때 셀 안의 내용이 길면 길수록 그 끝 지점은 줄 바꿈이 이루어지지 않고 계속 늘어나게 됩니다.
이를 방지하기 위하여 각 셀의 폭을 사용자가 직접 지정하도록 하는데 그때 쓰이는 것이 바로 array 패키지*의 m/p/b 인자입니다. 예를 들어 m{2cm}처럼 지정하면 2cm 폭을 갖는 셀을 만듭니다. m,p,b는 베이스라인을 기준으로 텍스트가 수직으로 쌓이는 방향을 의미합니다. m/p/b를 사용할 때 텍스트의 정렬을 같이 지정해주려면 >{\raggedleft}, >{\centering} 따위를 m/p/b 앞에 같이 붙여줘야합니다. 주의할 점은 m/p/b를 사용한다면 표의 행구분을 \\ 대신 \tabularnewline으로 해줘야합니다. (그렇지 않으면 컴파일 에러가 일어납니다)
* 첨부한 tabu_test.tex 파일에는 \usepackage{array}를 명시적으로 지정하지 않았습니다. 이는 tabularx 패키지를 불러오면 array 패키지를 자동으로 호출하기 때문입니다.
어쨌거나 문서에 표를 삽입할 때 판면 가로 너비 만큼의 표를 넣으려면 tabular*, tabularx, tabu 등의 환경을 사용합니다. 각 사용법은 첨부한 문서를 참고하기 바랍니다.
특히 tabu 환경이 편리한 점이 있는데, 셀의 속성으로 X를 지정할 수 있습니다. 마지막 표가 tabu 환경을 사용한 것인데 다음과 같이 시작합니다.
\begin{tabu} to \linewidth {X[1.0,c]|X[2.0,r]|X[3.5,c]|X[3.5,l]}
이런 식으로 편리하게 각 셀의 폭을 상대적인 개념으로 지정할 수 있습니다.
===
[참고]
무엇보다도 패키지 매뉴얼을 꼼꼼히 읽어보세요.
> texdoc tabularx
> texdoc tabu
> texdoc array