[Rivet] Rivet Tex Paths

Andy Buckley andy.buckley at cern.ch
Sat Feb 14 21:05:10 GMT 2015


I agree with David's analysis -- thanks David!

The *reason* that we override all those TeX variables is that Rivet's
venerable "make-plots" plotting script uses LaTeX as a rendering engine.
We need to make sure that several LaTeX packages are installed, and that
sufficient TeX memory limits are specified, hence the variable setting
to point at files installed by Rivet.

There is a new plotting system, based on matplotlib, in development in
the YODA package. This will introduce a dependency on matplotlib, of
course, but will allow us to leave your TeX installation alone (although
we're still using the MPL LaTeX backend by default). It's a back-burner
project to get this into production, though, so I expect we'll still be
using make-plots for a while.

Andy


On 13/02/15 18:06, David Bjergaard wrote:
> Hi Bijan,
> 
> I don't know the official reasons for setting all of the TeX variables,
> maybe an expert can comment (I'm just an enthusastic user).  
> 
> As I understand the way these variables work in general, is that the
> program searches for a required file in each directory from the
> beginning of the list to end.  This is done to allow users to shadow
> system installed programs (or in this case styles).  
> 
> The way Rivet is doing it shouldn't clobber anything that you have set
> up unless you have a file in texmf/tex/latex with the same name (or
> satisfying the same requirement) as one in the rivet installation.
> 
> If on the other hand if Rivet is clobbering the variables completely,
> that's a bug in the script.  Can you do (before setting up rivet):
> echo ${TEXMFHOME} 
> echo ${HOMETEXMF} 
> echo ${TEXMFCNF} 
> echo ${TEXINPUTS} 
> echo ${LATEXINPUTS}
> 
> And then after setting up rivet (ie source /path/to/rivetenv.sh), and
> see what the results are? On my system (linux), they're all unset except
> TEXINPUTS, that points to a local installation of style files.  After
> setting up rivet, everything gets appended as expected. For example:
> echo $TEXINPUTS | tr ':' '\n'
> /home/dave/rivet/local/share/Rivet/texmf/tex
> /home/dave/local/share/texmf/tex/latex/misc/
> 
> If your directories aren't showing up after setting up rivet, then there
> may be a bug somewhere.  If they're there but your sty files are getting
> shadowed by Rivet, then you can always pop your custom directory back to
> the front of the list after setting up rivet:
> export TEXMFHOME=${HOME}/texmf/tex/latex:${TEXMFHOME}
> 
> It doesn't matter if your path appears twice in the list, when TeX looks
> for the sty file it will return the first match and ignore the rest of
> the paths.
> 
> Hope this helps,
> 
>     Dave
> 
> Bijan Chokoufe Nejad <bijan.chokoufe at gmail.com> writes:
> 
>> Hi all,
>>
>> I was wondering why you are setting all of those variables in the
>> rivetenv.sh:
>>
>> export TEXMFHOME="${datarootdir}/Rivet/texmf:$TEXMFHOME"
>> export HOMETEXMF="${datarootdir}/Rivet/texmf:$HOMETEXMF"
>> export TEXMFCNF="${datarootdir}/Rivet/texmf/cnf:$TEXMFCNF"
>> export TEXINPUTS="${datarootdir}/Rivet/texmf/tex:$TEXINPUTS"
>> export LATEXINPUTS="${datarootdir}/Rivet/texmf/tex:$LATEXINPUTS"
>>
>> I wasn't expecting that Rivet overwrites my texmf folder (usually I have
>> custom sty files in '~/texmf/tex/latex/'). I would guess that setting
>> only TEXINPUTS would suffice?
>>
>> Cheers,
>> Bijan
>> ---
>> DESY Theory Group
>> _______________________________________________
>> Rivet mailing list
>> Rivet at projects.hepforge.org
>> https://www.hepforge.org/lists/listinfo/rivet
> _______________________________________________
> Rivet mailing list
> Rivet at projects.hepforge.org
> https://www.hepforge.org/lists/listinfo/rivet
> 


-- 
Dr Andy Buckley, Royal Society University Research Fellow
Particle Physics Expt Group, University of Glasgow / PH Dept, CERN


More information about the Rivet mailing list