2010-03-05 3 views
3

multicols 환경에서 미망인을 다루는 데 문제가 있습니다. 즉, LaTeX에서이를 제거하도록 지시하지 않았습니다.multicol 환경에서 미망인 다루기

This PDF document은 문제의 예를 보여줍니다. 두 번째 페이지의 맨 위에는 첫 번째 페이지의 마지막 단락에서 미망인이 생깁니다. 나는 운없이, 접근 방법의 몇 가지를 시도 :

  • collectmoreunbalance 카운터

나 '에게 조정

  • 스위칭 \raggedcolumns 사이 \flushcolumns
  • 높은 값으로 모두 \widowpenalty\clubpenalty 설정 documentation for multicol을 통해 읽었지만 유용한 것은 없습니다.

    내가 시도할만한 것이 있습니까? 당신의 단락의 장소에서

    (The complete LaTeX document for the above example)

  • +1

    매우 좋은 질문이며 매우 흥미로운 문제입니다. –

    +0

    이 방법으로 문제가 정확하게 해결되지는 않지만 열 사이의 공간을 조정하려고 생각한 적이 있습니까? – Mica

    +0

    운좋게 : 그것을 시도하지 않았습니다. 이 문서에는 여러 개의 col multicols 환경이 포함되어 있기 때문에 잘 보일지 확신 할 수 없습니다. –

    답변

    1
    {\obeyspaces\gdef\nomorebreak{\beginnomorebreak\let \nobreakspace}} 
    \def\beginnomorebreak{\begingroup 
        \def\par{\endgraf\endgroup\par\penalty 9999 }\obeyspaces 
        \brokenpenalty 10000 \widowpenalty 10000 \clubpenalty 10000 } 
    \def\nobreakspace{\vadjust{\nobreak} \removespaces} 
    \def\removespaces{\futurelet\next\checkspace} 
    \def\checkspace{\ifx\next\nobreakspace\expandafter\removesinglespace\fi} 
    \def\removesinglespace#1{\removespaces} 
    

    삽입 \nomorebreak. 이 매크로 다음에 단락이 끝날 때까지 페이지 나누기가 금지됩니다.

    +0

    감사합니다 Alexey - 이것을 시도 할 것입니다. –

    +0

    이것은 트릭을했습니다. 다시 한번 감사드립니다. –