다중 콜 환경의 마지막 페이지에서 columnseprule을 확장하는 방법은 무엇입니까?

다중 콜 환경의 마지막 페이지에서 columnseprule을 확장하는 방법은 무엇입니까?

를 사용한 텍스트의 2열 부분의 마지막 페이지에서 multicol페이지 하단에 1열 공지를 넣고 싶고, 열을 구분하는 규칙이 바로 위까지 쭉 확장되도록 하고 싶습니다. 한 열 부분. vfill외부를 사용하면 multicols알림이 올바른 위치에 배치되지만 규칙은 실제 다중 열 텍스트까지만 확장됩니다. vfill내부를 사용해도 multicols아무런 효과가 없습니다.

다음과 같은 것을 생성하고 싶지만 분명히 수동 \vspace*명령은 사용하지 않고 싶습니다.

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}
\setlength{\columnsep}{0.5in}
\setlength{\columnseprule}{0.5pt}
\begin{document}

\begin{multicols}{2}
    \lipsum[1]
    \columnbreak
    \lipsum[2]
    \vspace*{300pt}
\end{multicols}
\centering\Huge\textbf{\textsf{STOP}}

\end{document}

어떤 면에서는 이것은 의 문제와 정반대의 문제이다.동일한 페이지 및 다중 열multicols질문은 환경 뒤에 오는 것이 같은 페이지에 유지되도록 해야 한다는 점입니다 .

답변1

다음을 사용하여 마지막 페이지에 세로선을 삽입할 수 있습니다.eso-pic:

여기에 이미지 설명을 입력하세요

\documentclass{article}

\usepackage{multicol,eso-pic,lipsum,xcolor}

\setlength{\columnsep}{0.5in}
\setlength{\columnseprule}{0.5pt}

\begin{document}

\begin{multicols}{2}
  \sloppy\lipsum[1-15]
\end{multicols}

\AddToShipoutPictureFG*{%
  \AtTextLowerLeft{%
    \makebox[0pt][l]{\makebox[\textwidth]{\Huge\bfseries\sffamily STOP}}% Set STOP
    % Move to the right of the left text column
    \hspace*{.5\dimexpr\textwidth-\columnseprule-2\columnsep}%
    % Skip over column sep
    \hspace*{\columnsep}%
    % Insert vertical rule
    \rule[3\baselineskip]{\columnseprule}{\dimexpr\textheight-3\baselineskip}%
  }%
}

\end{document}

위의 예는 최종 페이지에 있는 텍스트 블록의 맨 아래부터 \rule마지막 ​​페이지에 오버레이됩니다 .3\baselineskip

이것을 에 추가할 수 있습니다 \AtEndDocument. 그러나 여부를 확인하는 테스트는 수행되지 않습니다.멈추다페이지에 맞을지 여부, 열의 기존 텍스트와 오버레이되지 않습니다.


다음 예에서는멈추다내용을 상자( 라고 함) 안에 넣고 이 상자를 마지막 페이지(+ 1 ) \stopbox에서 수직선이 얼마나 멀리 내려가야 하는지를 측정하는 척도로 사용합니다 .\baselineskip

여기에 이미지 설명을 입력하세요

\documentclass{article}

\usepackage{multicol,eso-pic,lipsum,xcolor}

\setlength{\columnsep}{0.5in}
\setlength{\columnseprule}{0.5pt}

\newsavebox{\stopbox}
\savebox{\stopbox}{%
  \begin{tabular}[b]{c}
    \Huge\bfseries\sffamily STOP \\
    \small\itshape \ldots right here
  \end{tabular}
}

\begin{document}

\begin{multicols}{2}
  \sloppy\lipsum[1-15]
\end{multicols}

\AddToShipoutPictureFG*{%
  \AtTextLowerLeft{%
    \makebox[0pt][l]{\makebox[\textwidth]{\usebox{\stopbox}}}% Set STOP
    % Move to the right of the left text column
    \hspace*{.5\dimexpr\textwidth-\columnseprule-2\columnsep}%
    % Skip over column sep
    \hspace*{\columnsep}%
    % Insert vertical rule
    \rule[\dimexpr\ht\stopbox+\baselineskip]{\columnseprule}{\dimexpr\textheight-\ht\stopbox-\baselineskip}%
  }%
}

\end{document}

답변2

새 패키지 multicolrule(버전 1.1)에서는 eso-pic. Werner의 솔루션은 MWE에 명시된 문제에 대해 완벽하게 서비스가 가능했지만 프로덕션 문서에서는 환경 위에 단일 열 자료가 있는 등의 상황을 처리하기 위해 복잡한 장부가 필요했으며 multicols원래 규칙과 다시 그려진 규칙이 약간 잘못 정렬되어 내가 필요했습니다. 다시 그리기 전에 이전 선을 지우려면 새 패키지에서는 이러한 문제가 발생하지 않습니다.

\documentclass{article}
\usepackage{multicolrule}
\usepackage{lipsum}
\setlength{\columnsep}{0.5in}

\newsavebox{\stopbox}
\savebox{\stopbox}{%
  \begin{tabular}[b]{c}
    \Huge\bfseries\sffamily STOP \\
    \small\itshape \ldots right here
  \end{tabular}
}

\SetMCRule{width=0.5pt,line-style=solid,extend-fill,extend-reserve=\ht\stopbox}

\begin{document}
\lipsum[1]

\begin{multicols}{2}
  \lipsum[2-3]
\end{multicols}
\centering\usebox{\stopbox}  
\end{document}

결과는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

관련 정보