Mica is almost correct, but I couldn't convey the edits in a comment, so if it is more appropriate, he can edit his and I'll remove my answer...
The current MacTeX needs the following line in the /usr/local/texlive/2010/texmfcnf.lua
file:
return { TEXMFCACHE = '$HOME/Library/texlive/2010/texmf-var' }
Sweet! But, this does not work for the beta builds on tlcontrib! Mica's solution should work, except that there is an issue with how the betas deal with the ~
that is beyond my brain capacity. So, instead, one needs to edit the file to say:
return {content={ TEXMFCACHE = '$HOME/Library/texlive/2010/texmf-var',
TEXMFHOME = '$HOME/src/texmf-trms'},
TEXMFCACHE='$HOME/Library/texlive/2010/texmf-var'
}
...instead. Notice the absent coma after the last TEXMFCACHE
and notice the use of $HOME
instead of ~
.
To speed things up, I made two files. One called /usr/local/texlive/2010/texmfcnf-tlcontrib.lua
which has the new code and another called /usr/local/texlive/2010/texmfcnf-mactex.lua
which has the standard MacTeX installation code.
Then, in my zsh profile (I think bash is the same) I added the following utility commands:
alias tlc="sudo tlmgr --repository http://tlcontrib.metatex.org/2010"
function tlcontext {
sudo cp -f -v /usr/local/texlive/2010/texmfcnf-tlcontrib.lua /usr/local/texlive/2010/texmfcnf.lua;
sudo tlmgr --repository http://tlcontrib.metatex.org/2010 update context luatex metapost;
}
function tlmactex {
sudo cp -f -v /usr/local/texlive/2010/texmfcnf-mactex.lua /usr/local/texlive/2010/texmfcnf.lua;
sudo tlmgr install context luatex metapost --reinstall;
}
function tlun { sudo tlmgr $1 --reinstall; }
tlcontext
seems to do everything that I need to move to the newest ConTeXt build. tlmactex
appears to bring me back. I'll let all ya'all know if I'm wrong, but it appears that this works perfectly.
A partial answer: The file /usr/local/texlive/2010/texmf/web2c/texmf.cnf
(on my system) contains the lines
% This definition isn't used from this .cnf file itself (that would be
% paradoxical), but the compile-time default in paths.h is built from it.
% The SELFAUTO* variables are set automatically from the location of
% argv[0], in kpse_set_program_name.
%
% This main texmf.cnf file is installed, for a release YYYY, in a
% directory such as /usr/local/texlive/YYYY/texmf/web2c/texmf.cnf.
% Since this file is subject to future updates, the TeX Live installer
% or human administrator may also create a file
% /usr/local/texlive/YYYY/texmf.cnf; any settings in this latter file
% will take precedence over the distributed one under texmf/web2c.
%
% For security reasons, it is better not to include . in this path.
%
TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share/texmf{-local,}/web2c}
That first paragraph confirms that, yes, kpsewhich
uses its own location to find everything. (I also tested your suggestion of copying kpsewhich
to a new place and seeing that it couldn't find anything.)
Edit: Further info: I tried setting $TEXMFCNF (it hadn't been set on my system). With $TEXMFCNF set to a list of directories, kpsewhich would look only in those directories for texmf.cnf. You can see this by setting $TEXMFCNF to a list of directories none of which contain texmf.cnf; if you then run kpsewhich texmf.cnf
, it complains that it couldn't find texmf.cnf in any of those directories. Thus, if you set $TEXMFCNF, you need to be sure it includes all of the directories that contain a texmf.cnf that you want kpsewhich to search.
Best Answer
it's not really clear what the problem is here.
amsart
was updated in 2009 to accept an optionthere is a large backlog of existing documents that use earlier versions of the subject classification, so versions later than 1991 must be specified as options.
if a new version of
amsart
is really needed, there are several ways to get it; it is part of theamscls
package: