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>처럼 입력하시면 좋습니다.
tabularray 열 병합 시, 셀 안쪽 줄바꿈에 관한 문제
2024.08.29 10:09
안녕하세요.
업무 중에, 표 형식으로 주어진 양식에 어떤 내용을 채워야만 하게 되었습니다.
tabularray라는 아주 좋은 페키지 덕분에 크게 어렵지 않은 선에서 웬만한 표는 라텍으로 그려볼 만하게 되지 않았나 싶었는데요,
특히 편리하게 느껴지는 점은, 셀 안에 긴 텍스트가 들어갈 때, 줄바꿈이 (별다른 설정 없이도) 자연스럽게 된다는 점이 있고요,
또 하나는 바로 셀 병합을 편리하게 할 수 있다는 점입니다.
그런데, 첨부한 MWE의 두 번째 페이지의 경우와 같이 두 개의 열을 병합한 셀에서의 줄바꿈은 잘 안되는 것 같습니다.
병합된 셀에서도 줄바꿈이 (병합하지 않은 셀에서의 줄바꿈처럼) 자연스럽게 되게 할 수 있는 방법이 있을까요?
혹시 쉬운 솔루션을 알고 계신 분이 있지 않을까 싶어서 문의글을 올려봅니다.
감사합니다.
(+) KTUG 한마당 게시판의 글 "표 그리기(3): LaTeX 표를 tabularray로 그려보았다."를 통해 여러 표를 그리는데 큰 도움을 받았습니다. 고맙습니다.
\documentclass{oblivoir} \usepackage{fapapersize} \usefastocksize{210mm,297mm} \usefapapersize{210mm,297mm,25mm,25mm,25mm,25mm} \usepackage{tabularray} \usepackage{jiwonlipsum} \begin{document} \begin{tblr}{ width = \textwidth, colspec = {Q[1,c,m]Q[3.88,m]}, hlines, vline{1-Z} = {solid} } 과 제 명 & 제목을 쓰자. \\ {연구 필요성\\ 및 목적} & \jiwon[1] \\ {연구내용 \\ 및 \\ 연구결과} & \jiwon[2] \\ 연구 기대효과& \jiwon[3] \\ {Keyword\\ (5개 이내)}& 주요어1, 주요어2, 주요어3, 주요어4, 주요어5 \\ \end{tblr} \newpage \begin{tblr}{ width=\textwidth, colspec = {Q[2.5cm,c,m]X[.7,m]X[4.96,m]}, hlines, vline{1-Z} = {solid}, % cell{1}{2}={c=2}{}, % cell{2}{1}={r=2}{}, % cell{2}{2}={c=2}{}, % cell{Z}{2}={c=2}{} } {전문가 \\ 피드백 활용 \\ 과정} & \SetCell[c=2]{c} 해 당 없 음 & \\ \SetCell[r=2]{c,m} {문제해결 \\ 과정} & \SetCell[c=2]{m} \jiwon[2] & \\ & \SetCell{l,t} 팀원1 & \jiwon[2] \\ % & & \\ % & & \\ {과제 수행 \\ 과정에서의 \\ 학습}& \SetCell[c=2]{c} \jiwon[2] & \\ \end{tblr} \begin{tblr}{ width=\textwidth, colspec = {Q[2.5cm,c,m]X[.7,m]X[4.96,m]}, hlines, vline{1-Z} = {solid}, % cell{1}{2}={c=2}{}, % cell{2}{1}={r=2}{}, % cell{2}{2}={c=2}{}, % cell{Z}{2}={c=2}{} } {전문가 \\ 피드백 활용 \\ 과정} & \SetCell[c=2]{c} 해 당 없 음 & \\ \SetCell[r=2]{c,m} {문제해결 \\ 과정} & & \jiwon[2] \\ & \SetCell{l,t} 팀원1 & \jiwon[2] \\ % & & \\ % & & \\ {과제 수행 \\ 과정에서의 \\ 학습}& & \jiwon[2] \\ \end{tblr} \end{document}
댓글 2
-
noname
2024.08.29 13:00
-
이여현
2024.08.29 21:19
좋은 답변 감사드립니다. (1)이 참 쉬운 방법이라 생각합니다. 그런데 뭐랄까 (자주 있는 일은 아니겠으나) 일정한 주기로 이렇게 표 안에 긴 글을 쓰는 행위를 하는 상황을 고려하면, 역시 (2)의 방법으로 접근하여 해결해보고 싶은 욕심이 납니다. 힌트로 주신 \setlength\mycellwidth{\dimexpr\linewidth-\parindent-2.5cm-2em\relax} 를 참고로 하여, 살펴보겠습니다! 감사합니다. :)
(1) everyday solution
긴 글이 병합된 셀에 왔을 때 사용자가 수동으로 적당한 위치에서 \\로 끊어주는 겁니다. 물론 셀은 중괄호로 감싸져 있어야 합니다. 현실적인 사용법이리라고 생각하고, 대부분의 유사한 문제는 이걸로 해결이 가능하다고 확신합니다.
(2) vbox 접근
핵심은 병합된 셀을 vbox로 만드는 것입니다. 병합된 셀의 width가 자동계산되지 않는다는 것이 조금 불편하지만 이것을 참고로 하여 해결방법을 찾아보실 수 있을 것입니다. 예를 들면 병합된 셀은 결국 2.5cm 폭을 갖는 왼쪽 한 열만을 두고 있으니까, 예컨대
\setlength\mycellwidth{\dimexpr\linewidth-\parindent-2.5cm-2em\relax}
이런 정도로 개략치를 계산시켜 그린 다음에 밑줄 친 허용치를 적당히 늘리거나 줄이는 방법도 있지 싶습니다.