[lltx] [tex-live] Location of recorder file

Heiko Oberdiek heiko.oberdiek at googlemail.com
Fri May 13 13:15:39 CEST 2011


On Fri, May 13, 2011 at 12:57:17PM +0200, Paul Isambert wrote:

> Le 13/05/2011 12:43, Heiko Oberdiek a écrit :
> >On Fri, May 13, 2011 at 10:25:16AM +0200, Paul Isambert wrote:
> >
> >>Le 13/05/2011 09:15, Manuel Pégourié-Gonnard a écrit :
> >>>Le 13/05/2011 02:08, Philipp Stephani a écrit :
> >>>>or at
> >>>>least rewritten so that \jobname is never expanded at every job:
> >>>>
> >>>I don't see any way to achieve that at the moment.
> >>The following observation might help: \everyjob is put into the
> >>stream before whatever comes next. So it can know what's coming,
> >>either \input or anything else. If it is \input, then it just has to
> >>use one \expandafter before doing what it is supposed to do, and
> >>\jobname is correctly fixed.
> >>
> >>For instance, try "lualatex \input test"
> >And this will miss the cases where some code is inbetween that
> >does not affect \jobname, e.g.:
> >   "lualatex \def\flag{...}\input test"
> >
> >And quoting the \jobname should not be necessary, because
> >LuaTeX supports the {}-syntax with \input, \openin, \openout, ...
> >Thus the LaTeX kernel macros that mess with file input and output
> >needs fixed to support spaces. Unhappily this will also change
> >internal interfaces, because the space is used as end delimiter
> >of the file name or spaces are removed from file names (\includeonly).
> 
> I thought the basic ideas (as explained elsewhere) is you can't
> expect any prior macro, either in the kernel or in packages, to be
> fixed, so you have to live with that.
> 
> Also, overloading the command line makes the code fails, but it also
> fails with other engines. I.e. "tex \edef\foo{\jobname} \input test"
> forces \jobname to "texput"; the only difference here is that
> "texput" will be used even if nothing refers to \jobname on the
> command line.
> 
> Finally, I wonder what's the fuss: the problem, if I understand
> correctly, is that pdfTeX automatically quoted \jobname when
> necessary; LuaTeX doesn't do that, hence the trouble.

I think LuaTeX is right. The quotes can be regular characters
of a filename. pdfTeX don't compile files with quotes:
  bash$ pdftex --ini quot\"ed.tex
fails with
  ! Unbalanced quotes in argument quot"ed.tex

Unhappily LuaTeX has inherited this behaviour of pdfTeX.

Fixing one problem with one character by creating a problem
with another character does not make sense to me.
Now two characters cannot be used in file names. :-(

I think, the file name interfaces should be transparent
in the sense, that all characters are supported and
the user is only hit by the restrictions of the operating
system or the file system, but not by artificial restrictions
by the software inbetween.

Yours sincerely
  Heiko Oberdiek


More information about the lualatex-dev mailing list