Onko väärin käyttää \ clearpage \ newpage -kohdan sijaan?
On helmikuu 13, 2021 by admin Komennot \newpage
ja \clearpage
pakottavat sivunvaihdon . Lisäksi jälkimmäinen komento myös ”huuhtelee” kaikki odottavat kellukkeet pinosta, eli pakottaa ne kirjoittamaan sivunvaihtoa seuraavalta sivulta alkaen.
Kysymykseni kuuluu: Onko se koskaan virhe käyttää \clearpage
-tunnusta \newpage
sijaan, lukuun ottamatta tapauksia, joissa ei haluta odottavan minkään odottavan kellukkeen olevan huuhdellaan? Tarkastelemalla rennosti komentojen määritelmiä (katso alla) en voi kertoa, onko \clearpage
: n käyttämisessä aina ongelmia.
Tässä on \newpage
(mistä latex.ltx
) -määritys:
\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}
ja tässä” \clearpage
-määrittely – huomaa, että se kutsuu \newpage
:
\def\clearpage{% \ifvmode \ifnum \@dbltopnum =\m@ne \ifdim \pagetotal <\topskip \hbox{}% \fi \fi \fi \newpage \write\m@ne{}% \vbox{}% \penalty -\@Mi }
Vastaa
Teknisesti ei ole mitään vikaa \newpage
-kohdan sijaan. Näillä kahdella komennolla on kuitenkin erilainen semantiikka ja kysymys on siitä, mikä semantiikka sinua kiinnostaa.
Ensinnäkin, kuten jo mainitsit, \clearpage
ei vain lopettaa sivun (tai sarakkeen kahdessa saraketilassa), mutta lisäksi se huuhtelee kaikki lykkäykset. Itse asiassa se saattaa olla hyvä idea, mutta ota huomioon seuraava tilanne: sinulla on yksi kelluva odottamassa, joka on vain 1/3 sivun koosta. Nyt \newpage
-kohdassa aloitat uuden sivun ja sitten float-algoritmi ( katso lisätietoja tämän algoritmin kuvauksesta ) potkia sisään ja yrittää sijoittaa odottavat kellukkeet seuraavalle sivulle (ja todennäköisesti osoittaisi odottavan kellukkeen seuraavan sivun yläosaan. Sen sijaan \clearpage
tuottaisi myös tämän kellukkeen, mutta omalla sivulla.
Joten tilanteissa, kuten luvun alku, on suositeltavaa lopettaa edellinen luku \clearpage
: llä (tai pikemminkin aloittaa uusi sen kanssa) huuhtele kaikki kellukkeet, mutta muissa tilanteissa tämä saattaa johtaa melko tyhjiin sivuihin, joissa on vain kellukkeita, mikä voi olla tai ei haluta.
Toinen ero on \clearpage
aloittaa oikeastaan aina uuden ”sivun”, kun taas \newpage
lopettaa vain nykyisen sarakkeen – ja tämä on suuri ero kaksisarakkeisessa tilassa. Kokeile seuraavaa katso ero:
\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}
kommentit
- Okei, minun on väitettävä, etten ajatellut iv id = = ”' ca16ad4e1b ”>
vastauksessani. Mutta rehellisesti: \newpage
tai \clearpage
käyttäminen tekstilohkossa, kuten luvussa, on mielestäni todella paheksuttua, ja se olisi tehtävä erittäin huolellisesti.
\newpage
on sopivampi todennäköisesti siinä tapauksessa. \newpage
pakottaa uuden sarakkeen, kun taas \clearpage
pakottaa uuden sivun. Vastaa
Mielestäni voit käyttää \clearpage
missä tahansa, ellei” ole erityistä syytä olla tekemättä ”. Tämä erityinen syy minulle on, kun sinä (estetiikasta tai mistä tahansa syystä) todella haluat:
- todella tyhjä sivu, soitat esimerkiksi
\newpage\leavevmode\thispagestyle{empty}\newpage
- jotain, joka on asetettu tietylle sivulle tai mihin tahansa (
\clearpage
voi lisätä useamman kuin yhden sivunvaihdon, jos jonoja on paljon, kun taas\newpage
lisää vain yhden) - kun haluat saada kaksi sivua aivan vieressä toisiaan (pidän siitä, kun luvun otsikko on vasemmalla sivulla ilman tekstiä ja teksti alkaa oikealta sivulta – sitten käytän tyyppien jälkeen
\newpage
luvun otsikon asettaminen).
Varmasti kaiken näiden kahden komennon käytön tulisi olla käsitteellistä, tarkoitan, että sinun ei tarvitse käyttää niitä työnsä päätekstissä. käytä niitä makromääritelmissä (kuten yllä mainittu minun \chapter
) tai johdannossa / …
Vastaa