Mikä on nimi ja
~
?
En näe eroja kokoamisen jälkeen.
MWE:
\documentclass[a4paper]{article} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{graphicx} \usepackage[colorinlistoftodos]{todonotes} \title{Your Paper} \author{You} \date{\today} \begin{document} \maketitle I am cool. I~am~cool. \end{document}
Kommentit
Vastaa
Ero näkyy lopussa linjan. Tila on rikkoutuva ja ~
on katkaisematon tila.
\documentclass[a4paper]{article} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{graphicx} \usepackage[colorinlistoftodos]{todonotes} \title{Your Paper} \author{You} \date{\today} \begin{document} \maketitle \hspace*{0.9\textwidth}I am cool. \hspace*{0.9\textwidth}I~am~cool. \end{document}
Kolme sanaa I
am
ja cool
on liimattu yhteen toisella rivillä.
Vastaa
~
on aktiivinen merkki , mikä tarkoittaa, että se on sama kuin makro kuten \mbox
ja niin edelleen. Sen toiminto kuvataan sen määritelmä, joka on
\nobreakspace{}
joten kirjoittamalla ~
vastaa \nobreakspace{}
.
Mitä \nobreakspace
tekee? Tässä se on:
\leavevmode\nobreak\
(välilyönti seuraa viimeistä takaviivaa.) Joten kappale aloitetaan tai mitään ei tehdä, jos ”olemme jo kappaleessa (\leavevmode
); sitten annetaan \nobreak
, joka estää kaikki rivinvaihdot pisteessä (\nobreak
) ja lisätään sitten normaali sanatila.
Siten kirjoitettaessa
no~break
näiden kahden sanan välissä on välilyönti, mutta riviä ei katkaista .
Miksi {}
\nobreakspace
jälkeen? Jos sinulla on tekstin no~break
, .aux
-tiedostossa laajennettu versio näkyy
no\nobreakspace {}break
Aaltosulkeet on otettu käyttöön selviytyäkseen harvoista tapauksista, joissa halutaan tilaa ~
jälkeen; ilman niitä no~ break
kirjoittaisi
no\nobreakspace break
ja lukiessasi .aux
tiedosto, välilyönti jätetään huomiotta. Aaltosulkeilla
no\nobreakspace {} break
kirjoitetaan eikä ylimääräistä tilaa jätetä huomiotta.
Mitä tapahtuu, jos yksi tyyppi no~ break
lähdössä? Kaksi välilyöntiä lisätään, mutta rivinvaihto niissä ei ole mahdollista, koska välilyönti on toteutettavissa oleva rivinvaihtopiste vain, jos sitä ei edeltää hylättävä esine; koska \nobreakspace
tulee
\leavevmode\penalty 10000 \
ja rangaistukset hylätään kuten välilyönnit, kumpikaan \
eikä seuraavaa välilyöntiä voi käyttää rivinvaihtoon.
Käänteisessä tapauksessa no ~break
annetaan kaksi välilyöntiä, mutta nyt katkaisupiste on mahdollinen ensimmäisessä välilyönnissä (ja molemmat katoavat yhdessä rangaistuksen kanssa, jos se toteutetaan).
Kommentit
- Hieno selitys. Voinko sanoa +1?
- Puhut
no~ break
, mutta etno ~break
. Erityisesti tämä tapaus voi ilmetä, kun käytetään hiirirajoitusta riviä kohden, kun rivin paluu on tilan sisällä. Mitä tapahtuu tässä tapauksessa? - @RomainPicot Lähes sama, saat kaksi välilyöntiä, jos taukoa ei tapahdu, mutta tauko on mahdollinen (mikä ei ole
no~ break)
- @egreg kiitos tarkkuudesta
;-)
- @RomainPicot Lisäsin viimeisen muistiinpanon, kiitos kehotuksesta.
vastaus
Tämä on määritelmä ~
kohdasta latex.ltx
\catcode `\~=13 \def~{\nobreakspace{}}
kun taas \nobreakspace
määritellään seuraavasti:
\DeclareRobustCommand{\nobreakspace}{% \leavevmode\nobreak\ }
Aktiivinen merkki ~
vastaa tilaa, jota ei voida jakaa viivoiksi.
~
on särkymätön tila, jossa tila ei ole ' t rikkoutumaton.:p
\the....
-laskentakomennon jälkeen.~
=\nobreakspace