문서 본문을 수정하지 않고 나중에 교정쇄 컷아웃이 반복되는 것을 방지하는 올바른 방법이 있습니까?

문서 본문을 수정하지 않고 나중에 교정쇄 컷아웃이 반복되는 것을 방지하는 올바른 방법이 있습니까?

다음 FMWE(Fairly Minimal Working 예제)를 고려하십시오.

\documentclass[a4paper]{article}
\usepackage{kantlipsum,xgalley}
\usepackage[scale=.8]{geometry}
\pagestyle{empty}
\ExplSyntaxOn
\NewDocumentCommand\resetindents { }
{
  \galley_parshape_set_multi:nnnN { 0 } { 0pt } { 0pt } \c_true_bool
}
\NewDocumentCommand\cutleft { m m }
{
  \galley_cutout_left:nn { #1 } { #2 }
}
\NewDocumentCommand\cutright { m m }
{
  \galley_cutout_right:nn { #1 } { #2 }
}
\ExplSyntaxOff
\begin{document}
% \ExplSyntaxOn
\cutleft{0}{25mm,25mm,25mm,25mm,25mm,25mm,25mm,25mm}
This is an extremely short paragraph.

\kant[4]

\cutright{4}{25mm,25mm,25mm,25mm,25mm,25mm}
\kant[5]
% \resetindents

\kant[6-7]

% \ExplSyntaxOff
\end{document}

이 코드에서 예상되는 출력은 다음과 같습니다.

예상되는

실제 출력은

실제

문서 본문을 수정하지 않고 예상되는 출력을 얻을 수 있는 올바른 방법이 있습니까?

원하는 결과를 얻으려면 본문에 대한 다음 두 가지 수정 중 하나로 충분합니다.

  1. 해당 줄의 주석 처리를 해제하세요

    % \resetindents
    
  2. 해당 줄의 주석 처리를 해제하세요

    % \ExplSyntaxOn
    

    그리고

    % \ExplSyntaxOff
    

이것이 소스에 해당 줄이 있는 이유입니다.

그러나 \resetindents다음 예제에서는 원하지 않는 실제 출력도 제공하므로 문제가 실제로 해결되는 것 같습니다.

\begin{document}
\ExplSyntaxOn
\cutleft{0}{25mm,25mm,25mm,25mm,25mm,25mm,25mm,25mm}
This is an extremely short paragraph.\par
\kant[4]
\cutright{4}{25mm,25mm,25mm,25mm,25mm,25mm}
\kant[5]
% \resetindents
\kant[6-7]
\ExplSyntaxOff
\end{document}

분명히 소스에서 빈 줄을 제거하면 expl3구문으로 전환하여 문제를 피할 수 없습니다. 게다가

\begin{document}
\ExplSyntaxOn
\cutleft{0}{25mm,25mm,25mm,25mm,25mm,25mm,25mm,25mm}
This is an extremely short paragraph.\par
\kant[4]\par
\cutright{4}{25mm,25mm,25mm,25mm,25mm,25mm}
\kant[5]\par
% \resetindents
\kant[6-7]\par
\ExplSyntaxOff
\end{document}

또한 문제를 보여줍니다.

그래서 \resetindents꼭 필요한 것 같긴 한데,생각하다갤리선의 철학은 그렇게 되어서는 안 된다는 것을 암시합니다.

컷팅 패턴이 어떻게 결정되는지 궁금합니다. 예를 들어,

\begin{document}
\cutleft{0}{25mm,25mm,25mm,25mm,25mm,25mm,25mm,25mm}
This is an extremely short paragraph.\par
\kant[4]

\cutright{4}{25mm,25mm,25mm,25mm,25mm,25mm}

\kant[5-6]

\kant[7]
\end{document}

마지막 단락까지 잘라내기를 반복하지 않습니다.

최종만

~하는 동안

\begin{document}
\cutleft{0}{25mm,25mm,25mm,25mm,25mm,25mm,25mm,25mm}
This is an extremely short paragraph.\par
\kant[4]

\cutright{4}{25mm,25mm,25mm,25mm,25mm,25mm}

\kant[5]

\kant[6]

\kant[7]
\end{document}

마지막 두 단락에서 컷을 반복합니다.

마지막 2

어떤 경우에도 가장 최근의 절단이 반복되지 않습니다. 그렇게 하면 오른쪽에 절단이 생성되기 때문입니다. 중요한 것은 반복되는 컷이 한 문단 이상에 걸쳐 있다는 점이다.

\begin{document}
\cutright{0}{25mm,25mm,25mm,25mm,25mm,25mm,25mm,25mm}
This is an extremely short paragraph.
Perhaps we should make it a bit longer just to see what happens to things in that case.\par
\kant[4]

\cutleft{4}{25mm,25mm,25mm,25mm,25mm,25mm}

\kant[5]

\kant[6]

\kant[7]
\end{document}

오른쪽에서 다시 잘라

그러나 적어도 그 효과는 누적되지 않습니다.

\begin{document}
\cutright{0}{25mm,25mm,25mm,25mm,25mm,25mm,25mm,25mm}
This is an extremely short paragraph.
Perhaps we should make it a bit longer just to see what happens to things in that case.\par
\kant[4]

\cutleft{4}{25mm,25mm,25mm,25mm,25mm,25mm}
This is another extremely short paragraph.

\kant[5]

\kant[6]

\kant[7]
\end{document}

비누적 반복 컷

점에 유의하시기 바랍니다

  • l3galley나는 그것이 실험적이며 모든 종류의 이상하고 놀라운 방법으로 사용하려고 하면 깨질 것으로 예상된다는 것을 완벽하게 알고 있습니다 . 이것이 결과로 나타나는 기이함과 경이로움의 작은 부분을 통한 안내 모험이라고 생각하십시오.

  • 나는 또한 보는 사람의 눈에 이상함과 경이로움이 크게 좌우된다는 것을 알고 있습니다. 내가 예상하지 못한 효과라고 생각하는 효과는 실제로 정확한 알고리즘에 따라 컷아웃이 반복되지만 패턴은 모호해지도록 필사적으로 뜨거운 키보드 위에 오랜 시간을 쏟은 개발자들이 매우 높이 평가하는 디자인 기능일 가능성이 완벽합니다. 나에게 그럴 수도 있습니다. TeX은 미스터리입니다(작고 큰 글자의 이상한 조합으로 인쇄상의 정신을 소환하는 것을 달리 어떻게 설명할 수 있을까요?). 만약 그 미스터리가 그 후손에서 완전히 사라진다면 나는 실망할 것입니다.

답변1

이는 의 버그로 인해 발생했습니다 l3galley. 데모에서는 \parshape최상위 수준에서 컷아웃이 설정되고 그룹 내에서 컷아웃이 '사용'됩니다(여기에서는 표시되지 않지만 그룹 내에서 \kant적용되는 경우 표시됨). \par그룹 후에는 이 작업을 피하려는 시도가 필요하지 않았기 \parshape때문에 재설정되지 않았습니다 l3galley(실제로 컷아웃이 없고 다른 여백이나 설정 중인 항목이 없음).

컷아웃이 여전히 '활성' 상태이고 발생하고 최상위 그룹 수준에 있지 않은 \parshape경우 설정이 필요함을 감지하도록 코드가 수정되었습니다 . 이 수정 사항 은 이번 주 후반(2016년 6월 중순)의 \par다음 업데이트에 나타날 것입니다 .expl3

관련 정보