제가 작성하고 있는 문서의 공백을 줄이고 싶어서 오늘 글을 올립니다. 콘텐츠는 두 개의 열로 구성되어 있지만 두 열에 걸쳐 있는 부동 테이블이 있습니다( table*
).
어느 시점에서 텍스트는 새 페이지의 첫 번째 열 시작 부분에서 끝납니다. 텍스트 아래에 여유 공간이 많기 때문에 이 페이지에 테이블을 포함하고 싶지만 table*
텍스트 바로 뒤에 삽입하면 대신 다음 페이지의 상단으로 이동합니다.
원하는 동작을 얻는 방법을 알고 있나요?
최소 작업 예:
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\twocolumn
\paragraph{}
\lipsum[1]
\begin{table*}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
\end{tabular}
\end{table*}%
\end{document}
답변1
상단에 전폭 플로트를 넣을 방법이 없는 것 같습니다.첫 번째페이지; 이를 방지하기 위해 다양한 메커니즘이 사용되지만 해결 방법을 찾지 못했습니다. (이것은 책이나 보고서의 새로운 장의 첫 페이지에서도 마찬가지일 가능성이 높습니다. 아마도 Frank Mitelbach나 David Carlisle이 그 방법을 알고 있을 것입니다.)
그러나 질문에 따르면
어느 시점에서 텍스트는 새 페이지의 첫 번째 열 시작 부분에서 끝납니다.
일부 페이지에 플로트를 배치하는 것이 허용되는 경우~ 후에첫째, 페이지가 완료되기 전에 그림에 대한 입력을 충분히 일찍 이동하여 페이지가 끝나기 전에 읽을 수 있도록(그런 다음 지연) 가능합니다.선행그림이 원하는 것.
다음 예제에서는 이를 수행합니다. 추악하지만 작동합니다. 그것은 예인선에서 항상 사용됩니다. (예인선에는 첫 페이지 상단에 이러한 플로트를 배치해야 한다는 요구 사항이 거의 없으며, 그러한 요구 사항이 있는 경우 일반 텍스트로 되돌립니다.) [t]
플로트가 상단에 위치하도록 요청하기 위해 a를 추가했습니다. ; 아마도 중복될 수 있지만 플로트가 페이지의 유일한 항목으로 끝나는 경우 일부 문서 클래스에서 원하는 효과를 얻을 수 있습니다( amsart
하나는 분명히 그렇지 않음 ).article
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\twocolumn
\paragraph{}
\lipsum[1-4]
%% this table should appear *before* the paragraph indicated below.
%% it is placed here in the input to force its position at the top of the next page.
\begin{table*}[t]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
\end{tabular}
\end{table*}
\lipsum[5-6]
%% the table coded above should appear at the top of the page on which
%% this paragraph appears.
\paragraph{I want the figure above this text}
\lipsum[1]
\end{document}
편집하다:
아래 예에서는 상자 메시지를 가득 채우는 대신 두 열 모두에 걸쳐 페이지 하단에 그림을 배치합니다. (이것을 제거하는 방법을 찾으려고 노력하고 있지만 아직 성공하지 못했습니다.)
접근 방식은단일 열시작될 위치 위의 첫 번째 열 어딘가에 떠 있습니다. 단일 열 부동 소수점에는 minipage
전체 페이지 너비인 가 포함되어 있습니다. 첫 번째 실행 후 열이 얼마나 단축되었는지 확인하고 두 번째 열 어딘가에서부정적인 \enlargethispage
페이지의 아래쪽 부분을 비워 두어 전체 너비 그림이 빈 영역으로 넘치도록 하는 명령입니다.
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\twocolumn
%% avoid overfull boxes from the lipsum test.
\sloppy
\paragraph{}
\lipsum[1]
%% this table should appear at the bottom of the page.
%% it must be placed in the input somewhere near the top of the
%% first column so that it will actually appear in the first column.
\begin{table}[b]
\begin{minipage}{\textwidth}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
\end{tabular}
\end{minipage}
\end{table}
%% the table coded above should appear at the bottom of the page on which
%% this paragraph appears.
\textbf{I want the figure at the bottom of the page}
\lipsum[1]
\lipsum[2]
%% somewhere in the second column, reduce the page (column) length
%% by the amount needed to clear the figure.
\enlargethispage{-4\baselineskip}
\lipsum[3-6]
\end{document}
응, 못생겼어. 경고를 받지 못했다고 말하지 마세요.
추가 주의 사항 - 늘이기 기능이 내장된 섹션 제목으로 인해 세로 간격이 손상될 수 있습니다. 이로 인해 반복적인 프로세스가 발생합니다. 텍스트가 최종 완성될 때까지 이 접근 방식을 적용하지 마십시오. 그런 경우에도 테이블이 표시될 페이지 상단의 페이지 나누기를 "수정"하는 것이 현명할 수 있습니다.
편집 2:
여기에 설명된 클러지는 예인선 기사가 되었고,"두 열의 맨 아래에 전폭 삽입 배치",예인선35:3(2014), p.255. (전자 형식의 모든 예인선 물품과 마찬가지로 이 물품은 예인선 회원에게만 제공되는 1년간의 "금지" 기간이 있으며 2015년 늦가을에 모든 사람이 이용할 수 있게 될 예정입니다.)
기사에서 언급된 한 가지 중요한 점 stfloats
은페이지 하단에 표*를 넣으시겠습니까?
페이지에서만 작동합니다.~ 후에첫 번째 페이지.
답변2
나는 이것이 나에게 가장 적합하다는 것을 알았습니다. 특히 하단에 2열 그림/표가 있는 경우 더욱 그렇습니다.첫 번째페이지:
% The trick is with the following package. You **need** to use the following package.
\usepackage{nidanfloat}
% ....
% Put your figure near the first page content.
\begin{figure*}[b]
\centering
\def\svgwidth{\textwidth}
\import{sections/images/}{some_figure.pdf_tex}
\caption{Some caption.}
\label{fig:some_label}
\end{figure*}