
LTXtable에 긴 테이블을 포함하고 있는데 마지막 규칙이 모든 열에 걸쳐 있지 않습니다. 대신 너비와 중심이 약 60%입니다.
다음과 같은 경고가 표시됩니다.
Package longtable Warning: Column widths have changed(longtable)
Package longtable Warning: Table widths have changed. Rerun LaTeX.
빌드를 다시 실행하면(Sublime Text 및 LatexTools를 사용하고 있음) 경고가 다시 나타납니다.
MWE:
main.tex
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{longtable}
\usepackage{ltxtable}
\usepackage{booktabs}
% Column Type for Table
\newcolumntype{L}[1]{>{\hsize=#1\hsize\raggedright\arraybackslash}X}%
\begin{document}
\chapter{First Chapter}
\LTXtable{\textwidth}{Tables/table.tex}
\end{document}
테이블.텍스
\renewcommand{\arraystretch}{1.5}
\fontsize{10}{11}
\begin{longtable}{L{0.33}L{0.33}L{0.33}}
\caption[Spielermotivationen nach Yee]{Spielermotivationen nach Yee\footnotemark}\label{tab:yeeMotivation}\\
\midrule
\endfirsthead
\caption[]{fortgesetzt} \\
\midrule
\endhead
\midrule
\multicolumn{3}{r}{{Fortgesetzt auf nächster Seite}} \\
\endfoot
\midrule
\multicolumn{3}{r}{{Ende der Tabelle}} \\
\endlastfoot
\textbf{Achievement} & \textbf{Social} & \textbf{Immersion} \\
Advancement\linebreak\footnotesize Progress, Power, Accumulation, Status & Socializing\linebreak\footnotesize Casual chat, helping others, making friends & Discovery\linebreak\footnotesize Exploration, Lore, Finding hidden things \\
\end{longtable}
\normalsize
테이블 끝에 있는 \midrule을 어떻게 수정합니까?
답변1
ltxtable 매뉴얼의 s 에 대한 경고와 관련하여 \multicolumn
, 두 개 이상의 열에 걸쳐 있는 항목을 제거해야 한다고 생각합니다. 적어도 그것을 바꾸는 것은 많은 도움이 되었습니다.
나는 또한 다른 것(대부분 활자체와 관련된)을 변경하기 위해 자유를 얻었습니다.
- 테이블의 글꼴 크기를 줄여서는 안 됩니다. 그렇지 않으면 읽을 수 없게 되는 경향이 있습니다.
- 와 같은 명령을 사용하는 경우 변경 사항을 활성화하려면 를
\fontsize{10pt}{11pt}
사용해야 합니다 .\selectfont
L
새로 정의된 -columntype이 무엇을 할 것인지 잘 모르겠습니다 . 특히 그 부분은\hsize=#1\hsize
. 더욱이0.33
.#1
나는 그것이#1
정규화된 차원임에 틀림없다고 의심했을 것입니다 (즉, 와 같은 차원을 가지고 있어야 합니다pt
). 나는 그것을 약간 더 간단한 열 선언으로 대체했습니다.- 테이블에는 -명령이 하나만 있어야 합니다
\caption
. 테이블의 다음 부분에 사용하는 것은 다소 위험합니다. @{}
표 왼쪽과 오른쪽의 불필요한 흰색 여백을 제거하는 데 사용할 수 있습니다 . 괜찮으시다면 헤더에 삽입해 두었습니다. 괜찮다면\multicolumn
첫 번째 또는 마지막 열을 시도하는 s에 대한 선언을 반복하도록 주의하세요.@{}
거기 를 잊어 버리면\multicolumn
테이블 헤드의 깔끔한 모습이 무너질 것입니다.- 타이핑을 저장하기 위해 반복되는
L{0.33}
-선언을*{3}{L}
. - 글꼴 크기를 10pt로 변경한 후에는 위 명령으로 이미 10pt@11pt로 설정되었으므로 를
\normalsize
입력 하여 기본값을 복원할 수 없습니다 . 테이블의 -명령\normalsize
으로 인해 일반 글꼴 크기를 복원하려는 경우에도 테이블 내부에 캡처되었으므로 테이블 외부에는 영향을 미치지 않으므로 이 또한 효과가 없습니다.\footnotesize
\footnotesize
힌트 하나 더: 세 개 이상의 열을 사용하여 열을 점점 더 작게 만들 계획이라면 패키지를 로드 ragged2e
하고 \raggedright
열 선언의 를 \RaggedRight
. 후자의 명령은 올바른 하이픈 연결을 사용하여 단어 사이뿐만 아니라 단어 사이에도 줄 바꿈을 수행할 수 있습니다. 이렇게 하면 더 잘 채워진 열이 제공됩니다.
다음은 수정된 MWE입니다( filecontents
-environment를 사용하여 두 파일을 하나의 파일로 묶습니다.
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{longtable}
\usepackage{ltxtable}
\usepackage{array}
\usepackage{booktabs}
% Column Type for Table
% \newcolumntype{L}[1]{>{\hsize=#1\hsize\raggedright\arraybackslash}X}%
\newcolumntype{L}{>{\raggedright\arraybackslash}X}%
%% New:
%% Extra file within this file.
\begin{filecontents}{table.tex}
\renewcommand{\arraystretch}{1.5}
%\fontsize{10}{11}\selectfont %% <--- you need to use \selctfont in
%% order to make your font selection work
\begin{longtable}{@{} *{3}{L} @{}} %% <--- save typing
\caption[Spielermotivationen nach Yee]{Spielermotivationen nach
Yee\footnotemark}
\label{tab:yeeMotivation}\\
\toprule % <--- use the correct rulers
\endfirsthead
% \caption[]{fortgesetzt} \\ <--- your table should have only one caption!
\midrule
\multicolumn{1}{@{} l}{Fortsetzung \dots}\\
\endhead
\midrule
&& \multicolumn{1}{r @{}}{Fortsetzung auf nächster Seite} \\
\endfoot
\midrule
&& \multicolumn{1}{r @{}}{Ende der Tabelle} \\
\bottomrule % <--- correct ruler
\endlastfoot
\textbf{Achievement} & \textbf{Social} & \textbf{Immersion} \\
Advancement\newline
Progress, Power, Accumulation, Status
& Socializing\newline
Casual chat, helping others, making friends
& Discovery\newline
Exploration, Lore, Finding hidden things \\
\end{longtable}
% \normalsize % <--- you don't need this, as \footnotesize was
% enclosed in the table. Switching back to 10 or 12 pt fontsize as
% default font size, will not be sufficient to restore the original
% value!
\end{filecontents}
\begin{document}
\chapter{First Chapter}
\LTXtable{\textwidth}{table.tex}
\end{document}
그리고 결과는 (내 말을 증명하기 위해):
답변2
\hsize
열 을 변경하는 경우 X
X 열의 전체 너비가 변경되지 않았는지 확인해야 합니다. 따라서 여기서와 같이 3개가 있는 경우 X
그 중 두 개( )를 절반으로 줄이면 세 번째 열( )을 두 배로 늘려 3개 열의 총 너비가 열 너비의 .5+.5+2=3배가 되도록 L{0.5}
해야 합니다. L{2}
표준 X.
L{.33}L{.33}L{.33}
3개의 열이 있지만 X
총 너비가 1 표준 X보다 작습니다. 이는 완전히 혼란스럽고 tabularx
여기에서 볼 수 있듯이 합리적인 값으로 수렴하지 못하게 만듭니다. L{1}
모든 열의 너비를 동일하게 하려면 사용해야 합니다 (Jan이 이미 답변에서 보여준 것처럼).