En quoi ** l'invite diffère de * l'invite?
Selon TeXbook p. 23, l' **invite diffère de l' *invite uniquement lorsque le premier caractère est &ou non \.
Cependant, si nous émettons la commande suivante (notez la première \) dans **et *invite, la sortie est différente:
\setbox0=\hbox{a} \showbox0
Pourquoi la sortie est-elle différente? Où est-ce documenté? Y a-t-il d'autres cas où le traitement de **diffère de *?
Réponses
>>> touch ilif.tex # we have a suitable file to input
>>> tex ilif # a file name has been given
This is TeX, Version 3.14159265 (TeX Live 2020) (preloaded format=tex)
(./ilif.tex)
*\setbox0=\hbox{a} \showbox0
! OK (see the transcript file).
<*> \setbox0=\hbox{a} \showbox0
? x
No pages of output.
Transcript written on ilif.log.
>>> tex # no file name
This is TeX, Version 3.14159265 (TeX Live 2020) (preloaded format=tex)
**\setbox0=\hbox{a} \showbox0
> \box0=
\hbox(4.30554+0.0)x5.00002
.\tenrm a
! OK.
<*> \setbox0=\hbox{a} \showbox0
? x
No pages of output.
Dans le second cas, il n'y a pas encore de .logfichier ouvert, car TeX attend toujours un nom de fichier pour définir le \jobname. Comme vous le voyez, dans le second cas, il n'y a pas d'annotation Transcript written on. Puisqu'aucun autre flux de sortie n'est ouvert, TeX utilisera le terminal pour imprimer les diagnostics.
Si vous suivez l'indication de Donald Arsenau et le faites \setbox0=\hbox{\jobname} \showbox0, la présence de \jobnameforcera TeX à attribuer la valeur par défaut \jobname, c'est-à-dire texput. Dans ce cas, le .logfichier peut être ouvert et la sortie sur le terminal est la même que dans le ilif.texcas.