Helytelen a \ clearpage használata az \ newpage helyett?
On február 13, 2021 by admin A (z) \newpage
és \clearpage
parancs egyaránt oldal törést kényszerít . Ezenkívül az utóbbi parancs az összes függőben lévő úszót is “kiöblíti” a veremből, azaz arra kényszeríti őket, hogy az oldalszakadást követő oldalon kezdjék a betűkészletet.
A kérdésem: Valaha hiba a \clearpage
helyett a \newpage
-t használja, kivéve azokat az eseteket, amikor nem szeretné, hogy függőben lévő úszók legyenek kipirult? A két parancs definícióinak alkalmi vizsgálatából (lásd alább) nem tudom megmondani, hogy van-e valami probléma a \clearpage
használatával.
Az áttekinthetőség kedvéért itt a \newpage
(latex.ltx
-től) meghatározása:
\def \newpage {% \if@noskipsec \ifx \@nodocument\relax \leavevmode \global \@noskipsecfalse \fi \fi \if@inlabel \leavevmode \global \@inlabelfalse \fi \if@nobreak \@nobreakfalse \everypar{}\fi \par \vfil \penalty -\@M}
és itt van a \clearpage
meghatározása – vegye figyelembe, hogy a \newpage
:
\def\clearpage{% \ifvmode \ifnum \@dbltopnum =\m@ne \ifdim \pagetotal <\topskip \hbox{}% \fi \fi \fi \newpage \write\m@ne{}% \vbox{}% \penalty -\@Mi }
Válasz
Technikailag nincs semmi baj a a \newpage
helyett. A két parancsnak azonban különbözõ a szemantikája, és a kérdés az, hogy melyik szemantika érdekel.
Elõször is, ahogy már említetted \clearpage
nemcsak befejezi az oldalt (vagy oszlopot két oszlopos módban), de emellett az összes halasztott úszt is kitörli. Ez egy jó ötlet, de vegye figyelembe a következő helyzetet: egy úszó vár, amely csak az oldalméret 1/3-a. Most a \newpage
paranccsal elindít egy új oldalt, majd az úszó algoritmus ( lásd az algoritmus leírását a részletekért ) rúgd be, és próbáld meg a várakozó úszókat a következő oldalra helyezni (és valószínűleg a várakozó úszt a következő oldal felső részéhez rendelné. Ezzel szemben \clearpage
ezzel az úszóval is kimenne, de saját oldalán.
Tehát olyan helyzetekben, mint egy fejezetkezdés, tanácsos az előző fejezetet egy \clearpage
címmel zárni (vagy inkább az újat indítani). vele) az összes úszó kiürítése, de más esetekben ez meglehetősen üres oldalakat eredményezhet, amelyeken csak lebegők találhatók, amelyekre szükség lehet, vagy nem.
A második különbség \clearpage
valójában mindig új “oldalt” indít, míg a \newpage
valójában csak az aktuális oszlopot fejezi be – és ez két oszlopos módban nagy különbség. Próbálkozzon a következőkkel: lásd a különbséget:
\documentclass[twocolumn]{article} \begin{document} A test \newpage % ends first column but not page A second test \newpage A clearpage test \clearpage % ends page (which has one column) A second clearpage test \end{document}
Megjegyzések
Válasz
Véleményem szerint használhatja a \clearpage
bárhol, kivéve, ha” nincs különleges oka annak, hogy ezt nem teszem meg “. Ez a különleges ok számomra az, amikor Ön (esztétikai vagy bármilyen más okból) valóban szeretné:
- egy igazán üres oldalt, akkor például hívja az
\newpage\leavevmode\thispagestyle{empty}\newpage
- valamit, ami egy adott oldalon van, vagy bármi más (
\clearpage
egynél több oldaltörést adhat hozzá, ha “sok a várólista úszik, míg a\newpage
csak egyet ad hozzá) - ha két oldalt szeretne közvetlenül a egymásnak tetszik, ha a fejezet címe a bal oldalon, szöveg nélkül, és a szöveg a jobb oldalon kezdődik – akkor a típusok után a
\newpage
szót használom a fejezet címének megadása).
Biztos, hogy e két parancs bármelyikének koncepciósnak kell lennie, úgy értem, hogy nem kell használni őket a munka fő szövegében, használja őket makródefiníciókban (mint például a fent említett \chapter
) vagy a / … preambulumban
\newpage
vagy a\clearpage
szövegblokkban található fejezet szerintem nagyon rosszalló, és nagyon körültekintően kell végrehajtani. / li>\newpage
a megfelelőbb.\newpage
új oszlopot kényszerít, míg\clearpage
új oldalt kényszerít.