tcolorbox 내에서 수동 페이지 나누기 만들기

tcolorbox 내에서 수동 페이지 나누기 만들기

새 페이지를 삽입하고 싶습니다.티컬러박스환경이지만 다음 예에서는 \newpage명령을 무시함을 보여줍니다.

\documentclass[11pt]{book}

\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{activitybox}{%
    breakable,
    enhanced,
    colback=white,
    colframe=black,
    coltitle=white,
    title={\bfseries Title}
}

\begin{document}

\begin{activitybox}
    \lipsum[1]
    \newpage
    \lipsum[1]
\end{activitybox}

\end{document}

문서에서는 이를 수행하는 유일한 방법은페이크 브레이크(373페이지)여기서 스킨 매개 변수가 각각 및 로 설정된 명령 tcolorbox사이에 두 개의 별도 환경을 만듭니다 .\newpageskin=enhancedfirstskin=enhancedlast

\documentclass[11pt]{book}

\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{activitybox}[1][]{%
    breakable,
    enhanced,
    colback=white,
    colframe=black,
    coltitle=white,
    #1
}

\begin{document}

\begin{activitybox}[title=Title,skin=enhancedfirst]
    \lipsum[1]
\end{activitybox}
\newpage
\begin{activitybox}[skin=enhancedlast]
    \lipsum[1]
\end{activitybox}

\end{document}

이 아이디어의 문제점은 새 페이지를 환경 내에 배치해야 할 수도 있다는 것입니다. 그러면 환경 상태가 이전부터 계속 유지되는지 확인하면서 조기에 닫았다가 다시 열어야 합니다. 또한 환경이 실제로 종료되지 않았고 여전히 페이지에서 계속되고 있으므로 호출해서는 안 되는 환경 내에서 추가 시작 및 종료 정의가 있을 수도 있습니다.

대안적인 해결책은 다음을 활용하는 것입니다.break at (355쪽)tcolorbox주어진 길이에서 를 끊는 매개변수입니다 . 문서를 편집할 때마다 각 매개변수를 다시 계산해야 하는 환경 수가 tcolorbox수백 개가 되기 때문에 내 상황에서는 사용할 수 없습니다 break at. 이는 문서를 완전히 렌더링한 후에만 새 길이를 직접 측정할 수 있기 때문입니다. .

낮은 수준에서는 다음과 같은 경우 페이지 나누기가 가능합니다.breakable (351페이지)활성화되어 있고 tcolourbox환경이 두 페이지 이상에 걸쳐 있어야 합니다. 해당 페이지 나누기를 더 높은 수준에서 실행하거나 적어도 페이지의 나머지 부분을 빈 수직 공간으로 채울 수 있습니까?

답변1

당신은 사용할 수 있습니다

\documentclass[11pt]{book}

\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{activitybox}[1][]{%
    breakable,
    enhanced,
    colback=white,
    colframe=black,
    coltitle=white,
    #1
}
\newcommand*{\fakebreak}{\par\vspace{\textheight minus \textheight}\pagebreak}


\begin{document}

\begin{activitybox}[title=Title]
    \lipsum[1]

    \fakebreak

    \lipsum[1]
\end{activitybox}

\end{document}

하지만 상자가 페이지 끝까지 채워지기 때문에 결과가 다르다는 점에 유의하세요!

자동 중단에 대해 유사한 동작을 원하면 다음 옵션을 사용하십시오 height fixed for=first and middle.

\documentclass[11pt]{book}

\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{activitybox}[1][]{%
    breakable,
    enhanced,
    colback=white,
    colframe=black,
    coltitle=white,
    #1
}
\newcommand*{\fakebreak}{\par\vspace{\textheight minus \textheight}\pagebreak}


\begin{document}

\begin{activitybox}[title=Title,height fixed for=first and middle]
    \lipsum[1]

    \fakebreak

    \lipsum[1-2]
    \parbox{\linewidth}{\lipsum[3-4]}% \parbox used to force an early page break
    \lipsum[5-7]
\end{activitybox}

\end{document}

관련 정보