[Mac OS X TeX] what library do you prefer ?

Ross Moore ross at ics.mq.edu.au
Tue Jun 5 05:04:41 EDT 2001



> laurens wrote:
> > 
> > My opinion is that /library and ~/Library should contain the same
> > hierarchy. In the first location an administrator will place files
> > available to all the users, in the second one, each user will place files
> > of its own. I suggest the following hierarchy as a basis for a discussion
> > and I am waiting for your suggestions.
> > 
> > (~)/Library/TeXMF Support/TeX
> >                          /TeX/Shell Scripts
> >                          /TeX/TeX Input
> >                          /TeX/TeX Input/TeX (input .tex files)
> >                          /TeX/TeX Input/LaTeX (packages in folders...)
> >                          /TeX/TeX Input/?
> >                          /TeX/TeX Format (for further use)
> >                          /TeX/TeX Fonts (linked to (~)/Library/Fonts ??? :(
> >                          /Metafont
> >                          /?
> > 
> 
> Since Mac OS X is a unix variation it is highly personal how to
> configure
> personal additions.

No, this is not a good way to do it.

A whole bunch of TeX experts spent several years devising the TDS
(TeX Directory Structure) specifications for organising the hierarchy
of applications/fonts/packages etc. for use with all things TeX.

The result of this is the kind of hierarchy that you find under
the  ..../texmf/  directory.

Please *always* use such a structure, else you are just negating
the good work that has been done already, and ultimately making things
more difficult for yourself.


The free TeXLive CDs that are produced every year use such a TDS
structure. So keeping your TeX up-to-date is very simple when you
also follow TDS. The free  teTeX  structure, with the  kpathsea
searching mechanism, only works efficiently because of this TDS
structure. 

If you want to keep a local tree, separate from the main texmf/ tree,
that's OK --- provided it also is TDS compliant. Searching multiple texmf/
trees is easy to configure (in teTeX, via the texmf.cnf file).
But unless you keep to the TDS structure, then you cannot be sure that
local updates will indeed be found in preference to older versions
of files having the same name, located within the system texmf/ tree.

For example, you add a new font with its .tfm files, so that (La)TeX
finds it.  But does dvips find it too ? and  pdfTeX ?
Will Metafont find the .mf sources, if you need to make bitmaps ?

 
> In all the different Unix variants that I use (I haven't installed
> 
> Mac OS X yet) I have use my own setting.
> 
> I have made a number of file catalogues:
> 
> ~/tex
> as a "root" for my local definitions and packages
> 
> ~/tex/inputs
> where I store all .cls, .tex and .sty files
> 
> ~/tex/formats
> where I store all .fmt files
> 
> ~/tex/fonts
> where I store all font files
> 
> and, finally,
> ~/tex/locals
> where I store all packages that I don't want to split into
> the other directories.

Having your own structures, built up over the years so that you know
exactly where things belong, is fine; but please do not recommend this
to others who do not have that same historical advantage.

The TDS is the standard that should be followed with new installations;
especially those based on Unix and/or a myriad of separate executables
each performing their individual tasks.

 
> In Solaris and on all Linux distributions I have a set of
> inititalizations to make my stuff come first. There must be a
> way to get the same effect in Mac OS X.

Installing teTeX under MacOS X  is no more difficult than on
any other platform (provided the 'configure' script is up-to-date
so as to recognise the Mac platform).


> In solaris they reside in either .bashrc or .aliases or .environment
> depending on the actual system. In all the different Linux's they
> reside in .bashrc.
> 
> ------------------------------------ for tcsh --------------
> setenv TEXINPUTS .:$HOME/tex/inputs//:$HOME/tex/locals//::
> setenv TEXFORMATS .:$HOME/tex/formats//:$HOME/tex/locals//::
> setenv TEXFONTS .:/tex/fonts//:$HOME/tex/locals//::
> setenv TEXEDIT emacs
> 
> ------------------------------------ for sh and bash --------------
> export TEXINPUTS=.:$HOME/tex/inputs//:$HOME/tex/locals//::
> export TEXFORMATS=.:$HOME/tex/formats//:$HOME/tex/locals//::
> export TEXFONTS=.:$HOME/tex/fonts//:$HOME/tex/locals//::
> export TEXEDIT emacs

To add a new TDS-compliant texmf/ tree to a  teTeX  installation requires
adding *just one path* into *just one line* of the texmf.cnf file.
(However, it is more elegant to use 1 line to define a new variable,
 then use that variable in just one place on another line of the file.)

Then all of the other variables inherit from this simple addition,
and all of the applications can find what they need from the new tree.

All those .bashrc .aliases etc. files are completely redundant.


Besides, on a shared server, teTeX is usually setup so that a new user
simply need create a  ~/texmf/  tree (i.e. texmf/ in their home directory).
*No further* configuration is required to have a local tree that
overrides older files in the system texmf/ tree.
So if you don't have write-access to  texmf.cnf  then it doesn't matter
at all, because you don't need to do it that way.



> The double slash tells tex to search recursively in subdirectories ans
> the double colon on the end tells tex to add the standard search paths
> at the end.
> 
> All the directories are open to anyone and this way I get my stuff
> without imposing it on others.
> 
> But ...... as I said ... it's personal and in a complex distributed
> environment (as Unix) - let's keep personal stuff personal.

Precisely...

	... and TDS is designed to make it easier to do so.


Hope this helps,

	Ross


> 
> /Serafim
> 
> -----------------------------------------------------------------
> To UNSUBSCRIBE, send email to <info at email.esm.psu.edu> with
> "unsubscribe macosx-tex" (no quotes) in the body.
> For additional HELP, send email to <info at email.esm.psu.edu> with
> "help" (no quotes) in the body.
> This list is not moderated, and I am not responsible for
> messages posted by third parties.
> -----------------------------------------------------------------


-----------------------------------------------------------------
To UNSUBSCRIBE, send email to <info at email.esm.psu.edu> with
"unsubscribe macosx-tex" (no quotes) in the body.
For additional HELP, send email to <info at email.esm.psu.edu> with
"help" (no quotes) in the body.
This list is not moderated, and I am not responsible for
messages posted by third parties.
-----------------------------------------------------------------




More information about the MacOSX-TeX mailing list