Please no: [OS X TeX] set environment variables forapplications

Enrico Franconi franconi at
Tue May 25 17:30:39 EDT 2004

On 25 May 2004, at 22:29, Gerben Wierda wrote:
>> Even if it were possible to set it per application, I would prefer 
>> setting $PATH for them generally. Otherwise, it would be difficult to 
>> keep the consistency.
> Yes. But suppose you add /sw/bin to the start of your PATH and as a 
> result a different version of a command is used and your application 
> which uses a subprocess that now suddenly fails. And how do you know 
> why?

(This is a bad example. Either you do have fink (and therefore the 
/sw/bin path), and then this is what it should be done to let it work 
properly, or you do not have fink, and then there is no effect 
whatsoever. But this is not the real point.)

The PATH variable (like ANY environment variable) is a global setting, 
that all applications use, but the GUI applications launched with a 
double click or more generally launched not from a shell. In fact, try 
to launch your favourite GUI application from the command line with a 
"open -a APPNAME", et voila', the GUI application inherits ALL the 
shell variables, including the PATH variable. You can also write a 
simple applescript (I did it for the first releases of mac-emacs, which 
did not need any environment.plist to work properly) that wraps the 
launch of a GUI app with a double click within a shell invocation, so 
that the GUI app inherits for free all the shell environemnt variables. 
So, your insisting that "unix" applications are different from GUI apps 
for historical reasons and therefore they are allowed to use global 
environment variables (unlike GUI apps) is simply wrong. On the mac 
(like on KDE or Gnome), all applications (including GUI applications) 
are unix applications. In any GUI environment in the unix world 
(including the mac), the effect of launching an application not from a 
shell is the same: variables peculiar to the execution of the shell are 
not inherited, simply because the shell is NOT executed before the GUI 
app; you have to execute it explicitly if you want the environment to 
be inherited.

Of course, people may harm applications also from the command line by 
changing the PATH global variable or any other environment variable. 
Since this global mechanism exists, it has to be used with caution in 
any case. But the GUI apps do not make any difference in this respect. 
So, please, allow people to use the environment.plist provided as an 
option by some developer, exactly like we allow you to optionally hack 
the main environment variables.


Post: <mailto:MacOSX-TeX at>
Please see <> for list
guidelines, information, and LaTeX/TeX resources.

More information about the MacOSX-TeX mailing list