[texhax] Passing Underscore

Reinhard Kotucha reinhard.kotucha at web.de
Fri Sep 22 23:27:52 CEST 2006

>>>>> "Philip" == Philip TAYLOR <P.Taylor at rhul.ac.uk> writes:

  > Mine says the same, so your conjecture in re operating systems
  > seems correct.  For myself, I have never created an extensionless
  > file (how would I know what type it was, if it had no extension
  > ?), so the problem is not a real one, but if you are in need of
  > such things (how do /you/ know what type they are ?), then I can
  > see the problem ...  

If you call make without arguments it looks for a file called Makefile
in the current directory.  The file can have another name but then you
have to use the -f option.  I don't have to know what a Makefile is
unless I write one myself.  The usual way to install GNU software is
to type "./configure && make && make install".

Executable files (programs and scripts) usually have no extensions on
UNIX systems.  The reason I want to be able to create such files with
TeX is that ltxdoc can create Makefiles then, for instance.

  > Is it the case that for you, "Makefile.<nothing>" and "Makefile"
  > are not one and the same ?

No.  UNIX does not know about extensions.  A filename is a string and
almost all characters are allowed.  The zero byte (^^@) and the
directory separator are not allowed.  No character except them have a
special meaning.

BTW., on GNU systems there is an exception: If a filename contains
^^G (bell) it should beep if you list the directory but it doesn't.
This explains why GNU means "GNU is not UNIX".

Some other systems (like DOS, for instance) support filename
extensions at system level.  That means that each file has a name and
an extension.  The separator (the period) appears in a directory
listing if the extension contains at least one character which is not
a space, otherwise it is omitted.

  > (how would I know what type it was, if it had no extension ?)

Extensions are not unique.  You don't know whether foo.pl is a Perl
script or a TeX property list.  Depending on extensions completely is
not a good thing anyway.  But the name of the directory should give
you a hint.

UNIX heavily depends on the directory structure, device files are
expected to be in the "/dev" directory.  It doesn't make sense to add
an extension to those files.  I think that


is better than



Reinhard Kotucha			              Phone: +49-511-4592165
Marschnerstr. 25
D-30167 Hannover	                      mailto:reinhard.kotucha at web.de
Microsoft isn't the answer. Microsoft is the question, and the answer is NO.

More information about the texhax mailing list