🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.text.tex
Article #733

Re: \filename macro???

#733
From: Bernd Raichle
Date: Tue, 04 Aug 1992 15:02
66 lines
2650 bytes
In article <clark.177@odie.ee.wits.ac.za> clark@odie.ee.wits.ac.za (Alan Robert Clark) writes:

ARC> In putting together a .tex template file, I would like to be able to 
ARC> generate the file's name (eg \filename) . Any Ideas?
ARC> Alan.

Here is a LaTeX styleoption (Sorry, comments are in german, I've lost
my english version :-( ).
If you want to use it with plainTeX, replace \@@input with \input and
\typeout with \message (or something similar).


-------------------- CUT HERE
% filename.sty  \filename beinhaltet den tatsaechlichen aktuellen
%               Filenamen.
%
% first version: 1 Mar 91 (br)
% last change  : 5 Mar 91 (br)
%
%
\typeout{Style option `filename' <5 Mar 91> (br)}

% Default-Wert von \filename ist der \jobname.
% (\let funktioniert, da \jobname ein expandierbares Primitiv ist)
%
\let\filename=\jobname


% LaTeX rettet das TeX \input-Primitiv in \@@input, wir retten es
% in \old@@input.
%
\let\old@@input=\@@input


% Die Makros \input und \include (und auch alle internen \input's)
% expandieren das Makro \@@input.
%
% Hier wird zuerst das Argument gesichert.  Anschliessend muss der aktuelle
% Filename durch die \expandafter's zuerst expandiert werden, bevor er
% umgesetzt werden kann.  Nach den \expandafter's hat man dann
%    \file@input \reset@filename{<alter Filename>}
% und in \file@name steht der <neue Filename>.
% Dann wird mit \file@input das File gelesen (\filename wird dabei geaendert)
% und anschliessend mit \resert@filename wird der alte Filename wieder
% gesetzt.
% Man koennte dazu auch \begingroup ... \input ... \endgroup benutzen,
% jedoch sollen Definitionen im gelesenen File nicht(!) unbedingt lokal
% bleiben.
%
\def\@@input#1 {\def\file@name{#1}%
  \expandafter\file@@input
  \expandafter\reset@filename\expandafter{\filename}}

\def\file@@input{\let\filename=\file@name
  \old@@input\filename\relax}

%% Short form for...
%\def\reset@filename#1{\def\filename{#1}}
%% ...is...
\def\reset@filename{\def\filename}

\endinput
% -- end of `filename.sty'
-------------------- CUT HERE

-bernd
Technical Details
Message-ID: <RAICHLE.92Aug4170248@azu.informatik.uni-stuttgart.de>
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!Germany.EU.net!ira.uka.de!news.belwue.de!news.uni-stuttgart.de!ifistg!ifi!raichle
References: <clark.177@odie.ee.wits.ac.za>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!Germany.EU.net!ira.uka.de!news.belwue.de!news.uni-stuttgart.de!ifistg!ifi!raichle
From: raichle@azu.informatik.uni-stuttgart.de (Bernd Raichle)
Newsgroups: comp.text.tex
Subject: Re: \filename macro???
Message-ID: <RAICHLE.92Aug4170248@azu.informatik.uni-stuttgart.de>
Date: 4 Aug 92 15:02:48 GMT
References: <clark.177@odie.ee.wits.ac.za>
Sender: news@ifistg.uucp
Organization: /azu/raichle/.organization
Lines: 66
In-reply-to: clark@odie.ee.wits.ac.za's message of 27 Jul 92 07:05:30 GMT