% \subsection{texsys.cfg} % % This file contains the site specific definitions of the four macros\\ % |\@currdir|, |\input@path|, |\filename@parse| and |\@TeXversion|. % % As distributed it only contains comments, however this `empty' % file will work on many systems because of the automatic tests built % into |ltdirchk.dtx|. You \emph{are} allowed to edit this file to add % definitions of these macros appropriate to your system. % % % The macros that must be defined are: % % \DescribeMacro{\@currdir} % |\@currdir|\meta{filename}\meta{space} should expand to a form of the % filename that uniquely refers to the `current directory' if this is % possible. (The expansion should also end with a space.) on UNIX, % this is |\def\@currdir{./}|. For more exotic operating systems you may % want to make |\@currdir| a macro with arguments delimited by |.| % and/or \meta{space}. If the operating system has no concept of % directory structure, this macro should be defined to be empty. % % % \DescribeMacro{\input@path} % If the primitive |\openin| searches the same directories as the % primitive |\input|, then it is possible to tell (using |\ifeof|) % whether a file exists before trying to input it. For systems like % this, |\input@path| should be left undefined. % % If |\openin| does not `follow' |\input| then |\input@path| must be % defined to be a list of directories to search for input files. The % format for each directory is as for |\@currdir|, normally just a % prefix is required, but it may be a macro with space-delimited % argument. That is, if \meta{dir} is an entry in the input path, % \TeX will try to load the expansion of % % \meta{dir}\meta{filename}\meta{space} % % So either \meta{dir} should be defined as a macro with argument % delimited by space, or it should just expand to a directory name, % including the final directory separator, so that it may be % concatenated with the \meta{filename}. This means that for UNIX-like % syntax, each \meta{dir} should end with a slash, |/|. One exception to % this rule is that the input path should \emph{always} contain the % empty directory |{}| as this will allow `full pathnames' to be used, % and the `current directory' to be searched. % % |\input@path| should expand to a list of such directories, each in a % |{}| group. % % % \DescribeMacro{\filename@parse} % After a call of the form: |\filename@parse{|\meta{filename}|}|, the % three macros |\filename@area|,|\filename@base|,|\filename@ext| should % be defined to be the `area' (or directory), basename and % extension respectively. If there was no extension specified in % \meta{filename}, |\filename@ext| should be |\let| to |\relax| (so this % case may be tested with |\@ifundefined{filename@ext}| and, perhaps a % default extension substituted). % % Normally one would not need to define this macro in |texsys.cfg| as % the automatic tests can supply parsers that work with UNIX and VMS % syntax, as well as a basic parser that willcover many other cases. % However some operating systems may need a `hand produced' parser % in which case it should be defined in this file. % % The UNIX parser also works for most MSDOS \TeX\ versions. % Currently if the UNIX or VMS parser is not used, |\filename@parse| is % defined to always return an empty area, and to split the argument into % basename and extension at the first `|.|' that occurs in the name. % Parsers for other formats may be defined in |texsys.cfg|, % in which case they will be used in preference to the default % definitions. % % % \DescribeMacro{\@TeXversion} % You should not need to set this macro in |texsys.cfg|. \LaTeX\ % tests to set this automatically. See the comments in the opening % section of \texttt{ltdirchk.dtx}. % % % The following sections give examples of definitions which might % work on various systems. These are currently mainly untested as I only % have access to a few systems, all of which do not need this file as % the automatic tests work. All the code is commented out. % % \subsection{UNIX (web2c)} % This implementation does make |\openin| and |\input| look in the same % places. Acceptable settings are made by |ltdirchk.dtx|, and so this % file may be empty. The definitions below are therefore just for % information. % \begin{macrocode} %\def\@currdir{./} %\let\input@path\@undefined % \end{macrocode} % % \subsection{UNIX (other)} % Apparently some commercial UNIX implementations have different paths % for |\openin| and |\input|. For these one could use definitions like % the following (with whatever directories are used at your site): % note that the directory names should end with |/|. % \begin{macrocode} % \def\@currdir{./} % \def\input@path{% % {/usr/local/lib/tex/inputs/distrib/}% % {/usr/local/lib/tex/inputs/contrib/}% % {/usr/local/lib/tex/inputs/local/}% % } % \end{macrocode} % % \subsection{MSDOS (emtex)} % This implementation does make |\openin| and |\input| look in the same % places. Acceptable settings are made by |ltdirchk.dtx|, and so this % file may be empty. The definitions below are therefore just for % information. % \begin{macrocode} % \def\@currdir{./} % \let\input@path\@undefined % \end{macrocode} % % \subsection{MSDOS (other)} % Some PC implementations have different paths % for |\openin| and |\input|. For these one could use definitions like % the following (with whatever directories are used at your site): % note that the directory names should end with |/|. % This assumes the implementation uses UNIX style |/| as the directory % separator. % \begin{macrocode} % \def\@currdir{./} % \def\input@path{% % {c:/tex/inputs/distrib/}% % {c:/tex/inputs/contrib/}% % {c:/tex/inputs/local/}% % } % \end{macrocode} % % \subsection{VMS (DECUS \TeX, PD VMS 3.6)} % This implementation does make |\openin| and |\input| look in the same % places. Acceptable settings are made by |ltdirchk.dtx|, and so this % file may be empty. The definitions below are therefore just for % information. % \begin{macrocode} % \def\@currdir{[]} % \let\input@path\@undefined % \end{macrocode} % % \subsection{VMS (???)} % Some VMS implementations have different paths % for |\openin| and |\input|. For these one could use definitions like % the following: % \begin{macrocode} % \def\@currdir{[]} % \def\input@path{% % {tex_inputs:}% % {SOMEDISK:[SOME.TEX.DIRECTORY]}% % } % \end{macrocode} % % \subsection{MACINTOSH (OzTeX 1.6)} % This implementation does make |\openin| and |\input| look in the same % places. Acceptable settings are made by |ltdirchk.dtx|, and so this % file may be empty. The definitions below are therefore just for % information. % \begin{macrocode} % \def\@currdir{:} % \let\input@path\@undefined % \end{macrocode} % % \subsection{MACINTOSH (other)} % Some Macintosh implementations have different paths % for |\openin| and |\input|. For these one could use definitions like % the following (with whatever folders are used on your machine): % note that the directory names should end with |:|, and they should % contain {\em no\/} spaces. % \begin{macrocode} % \def\@currdir{:} % \def\input@path{% % {Hard-Disk:Applications:TeX:TeX-inputs:}% % {Hard-Disk:Applications:TeX:My-inputs:}% % } % \end{macrocode} % % \subsection{FAKE EXAMPLE} % This example is for an operating system that has filenames of the % form |name| For maximum compatability with macro sets, % you want |name.ext| to be mapped to |name|. % and |name.ext| to be mapped to |name|. % |\input| does this mapping automatically, but |\openin| does not, and % does not look in the same places as |\input|. % |<>name| is the desired `current directory' syntax. % % the following code would possibly work: % \begin{macrocode} % \def\@dir#1#2 {% % \@d@r{#1}#2..\@nil} % \def\@d@r#1#2.#3.#4\@nil{% % <\ifx\@dir#1\@dir\else#1\ifx\@dir#3\@dir\else.\fi\fi#3>#2 } % % \def\@currdir{\@dir{}} % \def\input@path{% % {\@dir{area.one}}% % {\@dir{area.two}}% % } % \end{macrocode}