\ vspace vs. \ vskip [kaksoiskappale]

Tähän kysymykseen on jo annettu vastauksia :

Kommentit

  • Äänestin tämän kysymyksen sulkemiseksi, koska @egreg on antoi kanonisen vastauksen " -kysymykseen, joka alun perin esitettiin osoitteessa tex.sx ".
  • Okei, mutta tämä kysymys ensin kysyttiin.

Vastaa

TeX on missä tahansa käsittelyn vaiheessa jossakin tilassa. On kuusi tilaa, jotka on jaettu kolmeen luokkaan:

  1. vaakatila ja rajoitettu vaakatila,
  2. pystytila ja sisäinen pystytila ja
  3. matematiikka -tilassa ja näytä matematiikkatila.

Kun matemaattia ei kirjoiteta, TeX on vaaka- tai pystytilassa. Vaakatilaa käytetään tyypillisesti tekstirivien tekemiseen; pystysuuntaista tilaa käytetään tyypillisesti kappaleen viivojen pinoamiseen päällekkäin.

\vskip lisää liima rivien pystysuoraan luetteloon. Siksi \vskip rikkoo vaakasuoran tilan ja siirtyy pystytilaan.

\vspace voi toimia vaaka- ja pystysuunnassa -tilassa. Vaakasuorassa tilassa \vspace 1mm vastaa \vadjust{\vskip 1mm \vskip 0pt} ja lisää välilyönnin nykyisen rivin perään. Pystytilassa \vspace 1mm vastaa \vskip 1mm \vskip 0pt

\vskip 0pt on tarvitaan, joten \removelastskip ei voi poistaa pystytilaa.

Täysi tarkkuus:

\vspace : -> \@ifstar \@vspacer \@vspace 

Ilman * -tapausta (\vspace 1mm):

\@vspace: #1->\ifvmode \vskip #1 \vskip \z@skip \else \@bsphack \vadjust {\@restore par \vskip #1 \vskip \z@skip }\@esphack \fi 

Huomaa \z@skip yhtä suuri kuin 0pt, \@bsphack tarvitaan suuren vaakasuoran tilan säästämiseksi jakson jälkeen. \@esphack tarvitaan suurten avaruusasetusten palauttamiseksi.

Tapauksessa * tapaus (\vspace* 1mm):

\@vspacer:#1->\ifvmode \dimen@ \prevdepth \hrule \@height \z@ \nobreak \vskip #1 \v skip \z@skip \prevdepth \dimen@ \else \@bsphack \vadjust {\@restorepar \hrule @height \z@ \nobreak \vskip #1 \vskip \z@skip }\@esphack \fi 

kommentit

  • Joten jos niitä käytetään kappaleen ulkopuolella (ts. pystytilassa), niin tulos olisi täsmälleen sama?

Vastaa

\vspace on LaTeX-komento ja \vskip on TeX-komento. Molempia voidaan käyttää LaTeX: ssä. Kun \vspace käytetään kappaleessa, se lisää välilyönnin nykyisen rivin perään. Mutta jos \vskip käytetään kappaleessa, se päättää kappaleen ja lisää välilyönnin välittömästi.

Kommentit

  • Miksi \vskip aloittaa uuden rivin? Onko tämä sivuvaikutus siihen, mitä Charles viittaa " pystytilaan? "
  • @Geoff: \vskip aloita uusi rivi suunnittelun mukaan. vskip on pystysuuntainen ohitus. Donald Knuth päätti niin.

Vastaa

Ero esimerkillä:

\documentclass[preview, border=7mm]{standalone} \usepackage{xcolor} \usepackage{blindtext} \begin{document} \textcolor{red}{Line with \texttt{vspace} :} \vspace{1cm} \blindtext \hrulefill \textcolor{red}{Line with \texttt{vskip} :} \vskip 1cm \blindtext \end{document} 

kirjoita kuvan kuvaus tähän

Vastaa

Aivan kuten Rob sanoo; muotoilemaan uudelleen, \vskip tulisi käyttää, kun olet tai haluat aloittaa asetuksen pystytilassa, ja \vspace on järkevää kappale.

\vspace -sovelluksen (ja?) toteutusta käsitellään julkaisussa Eijkhout 1990, TUGboat 11 (4). ), s. 618 .

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *