Kapan \ token space dibuang?

Sep 25 2020

Pertimbangkan contoh ini:

\obeyspaces
 b
\bye

Outputnya adalah b.

Mengapa \spacedibuang? Itu tidak dibuang selama pra-pemrosesan karena memiliki kode cat 13 - itu dibuang selama tokenisasi, sebelum masuk ke perut. Membandingkan:

\obeyspaces\let =a
 b
\bye

Outputnya adalah ab.

Di tempat mana di TeXbook aturan ini dijelaskan?

Jawaban

4 StevenB.Segletes Sep 26 2020 at 22:27

\obeyspacesbekerja dalam mode horizontal. Dalam contoh Anda, Anda berada dalam mode vertikal sampai karakter pencetakan pertama tercapai. Jika Anda menambahkan \leavevmodeke baris pertama, spasi akan terwujud.

Intinya, ruang utama di awal paragraf diserap, karena Anda berada dalam mode vertikal.

{\obeyspaces
 b}

\obeyspaces\leavevmode
 b

\obeyspaces\leavevmode    %
 b

{\obeyspaces\let =a
 b}

{\obeyspaces\let =a\leavevmode %
 b}

\bye