A szóköz és a “ hullám ” szimbólum közötti különbség (tilde / “ ~ ”)?

Címként mi a különbség egy és ~?

A fordítás után nem látok különbséget.

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} 

Megjegyzések

  • A különbséget a sor végén fogja látni. A ~ egy törhetetlen tér, ahol a tér nem ' t nem törhetetlen.
  • " Jó vagyok " … Ez ' meglehetősen merész állítás :p
  • A teret is irányítja, ' nagyon gyakran használ egy \the.... számláló kimeneti parancs után.
  • Szöveges módban ~ = \nobreakspace
  • @yo ' Akkor töröljem ezt a kérdést?

Válasz

A különbség a végén látható vonal. Egy szóköz megtörhető, a ~ pedig törhetetlen hely.

\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} 

írja ide a kép leírását

A három szó I am és cool összeragasztva vannak a második sorban.

Válasz

A ~ egy aktív karakter , ami azt jelenti, hogy “megegyezik egy olyan makróval, mint a \mbox és így tovább. Funkcióját a definíció, amely

\nobreakspace{} 

így az ~ beírás egyenértékű az \nobreakspace{}.

Mit csinál \nobreakspace? Itt van:

\leavevmode\nobreak\ 

(szóköz követi az utolsó visszavonást.) Tehát egy bekezdés elindul, vagy semmi nem történik, ha “már szerepelünk egy bekezdésben (\leavevmode); akkor kiáll a \nobreak, amely tiltja az esetleges sortörést a pontban (\nobreak), majd egy normál szóköz beillesztésre kerül.

Így gépeléskor

no~break 

szóköz lesz a két szó között, de a sor nem szakad meg .


Miért a {} a \nobreakspace után? Ha no~break van egy feliratban, akkor az .aux fájlban megjelenik a kibővített verzió

no\nobreakspace {}break 

A zárójeleket annak a ritka esetnek a kezelésére vezették be, amikor ~ után szóközt akarnak találni; nélkülük no~ break írna

no\nobreakspace break 

és az .aux file, a szóköz figyelmen kívül marad. A zárójelekkel

no\nobreakspace {} break 

íródik, és a további helyet nem hagyjuk figyelmen kívül.


Mi történik, ha egy típus no~ break a kimenetben? Két szóköz hozzáadódik, de ezeknél nem lehet sortörni, mert a szóköz csak akkor kivitelezhető sorszakítási pont, ha előtte nem dobható elem áll rendelkezésre; mivel \nobreakspace válik

\leavevmode\penalty 10000 \ 

és a büntetések eldobhatók, mint a szóközök, sem \ és a következő szóköz sem használható sortöréshez.

Fordított esetben no ~break két szóköz kerül kimenetre, de most már lehetséges töréspont az első szóköznél (és mindkettő eltűnik a büntetéssel együtt, ha azt végrehajtják).

Hozzászólások

  • Szép magyarázat. Mondhatok +1?
  • Ön a no~ break -ről beszél, de nem a no ~break -ről. Különösen ez az eset fordulhat elő, ha egy soronként egy korláta korlátozást használunk, és a tér mögött egy vonal visszatér. Mi történik ebben az esetben?
  • @RomainPicot Szinte ugyanaz, két szóközt kap, ha nem történik törés, de törés lehetséges (ami nem a no~ break)
  • @egreg köszönöm a pontosságot ;-)
  • @RomainPicot Hozzáadtam egy utolsó megjegyzést, köszönöm a felszólítást.

Válasz

Ez a ~ meghatározása a

\catcode `\~=13 \def~{\nobreakspace{}} 

míg \nobreakspace a következő:

\DeclareRobustCommand{\nobreakspace}{% \leavevmode\nobreak\ } 

Tehát az ~ aktív karakter egyenértékű egy olyan szóközzel, amelyet nem lehet sorokra bontani.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük