[tex-live] [tex-implementors] the promised report from Knuth

Philip TAYLOR Philip-and-LeKhanh at Royal-Tunbridge-Wells.Org
Sat Mar 22 07:03:38 CET 2008



Jonathan Kew wrote:

> Sure; I just meant Windows as an example, but the intention was that 
> implementors for any system could adapt the message appropriately. Sorry 
> for not being clear about that. The whole message comes from Web2C's 
> tex.ch anyway, so it's all part of a "localisation" of sorts; it's not a 
> canonical part of tex.web. (If it were, then presumably it would reflect 
> whatever the Pascal-H runtime treats as <eof>.)

OK, all understood.

> However, in the specific context of TeX Live, I've realized that there 
> is another problem with the suggestion: as currently implemented, this 
> message is a WEB string, and in TL the pool file is shared across all 
> platforms. (Not an issue for pdftex or xetex, which build the strings 
> into the binary at compile time, but it's an issue for TeX itself.) That 
> means we wouldn't be able to have the Windows version (I don't see VMS 
> binaries in TL) say Ctrl-Z while the Unix ones say Ctrl-D, unless we 
> modify the code slightly to print this message from a different, 
> platform-specific source.

OK, I /think/ I understand this part (after 12 hours sleep !);
"tex.poo[l]" is generated at compile time from "tex.web",
"tex.ch", and friends, and as TeX Live isn't a "compile and
run" distribution, there is no provision for different pool
files for different platforms.  I would suggest that as
that is the case, TeX itself simply refer to "<eof>" (I can't
agree with Sebastian's suggestion that fewer than one in
a million will understand that notation), whilst the
various TeX derivatives issue a more user-friendly version
customised for the platform.

Two thoughts /did/ occur to me : rather than Don's somewhat
dangerous "quit" (which could only too easily be a real,
if somewhat perverse, filename), why not require (say)
treat specially the literal strings "^D" and "^Z", "^"
being a fairly well-accepted convention for "Ctrl"
in the first place; alternatively, wny not overload
"\endinput" for this purpose, macro expansion apparently
not taking place when the file name is read from the
prompt (see the following transcript, where file
"1.tex" exists but "2.tex" does not) :

> C:\Documents and Settings\Administrator>tex
> This is pdfeTeXk, Version 3.141592-1.30.3-2.2 (Web2c 7.5.5)
>  %&-line parsing enabled.
> **\def \endinput {1}
> 
> *\input 2
> ! I can't find file `2'.
> <*> \input 2
> 
> Please type another input file name: \endinput
> ! I can't find file `\endinput'.
> <*> \input 2
> 
> Please type another input file name: 1
> (./1.tex)
> *\end
> No pages of output.
> Transcript written on texput.log.

** Phil.


More information about the tex-live mailing list