LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Joseph Wright <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Fri, 28 Jul 2023 12:57:44 +0100
text/plain (57 lines)
On 28/07/2023 12:28, LARONDE Thierry wrote:
> Hello,
> Apparently, somewhere between 2022 and 2023, you have changed the way
> the LaTeX \input macro, replacing the primitive, is behaving regarding
> the extension when brackets are used.
> Now, when a tex file specifies:
> \input{filename}
> i.e.: "filename" without a ".tex" extension, the file is searched
> "as is" and if not found, the extension is not added. (This is for
> example the case in the bbold package, inside the .dtx for inclusion of
> docstrip.)
> If one specifies:
> \input filename
> the primitive is used, that adds automatically the extension.
> And furthermore, the LaTeX Error message specifies the file with the
> extension, while it is not what is searched (what is searched is the
> file without the extension).
> (Note, in Prote, the behavior of the primitive is described in:
> )
> Is this indeed the expected behavior? (but this breaks some files.) Or
> am I missing something?
> Or is this because in TeXLive the glue routine adds the extension (that
> is not added by LaTeX proper)? But meaning this works with TeXLive, but
> will not work with another implementation?
> And this was not the case some months back when the file was searched
> first without the extension and then, if not found, with it added.
> Thanks for any info.


LaTeX's \input has never just been the primitive, but rather a wrapper 
which allows control of file lookup, etc. Changes have been made to 
align the mechanism with others in use, as we now use an expandable 
approach to file searching (as this is needed in other cases). However, 
as Ulrike has pointed out, this still looks for "foo.tex" if passed 
"foo" and the latter is not found.

We will need a full example to make further suggestions.