# Is there a macro telling which OS we're using?

I got some LaTeX documents that I have to compile them under different TeX Live, such as MacTeX or TeX Live. But in different OS, the font seems different too, for example, while in Windows, I prefer to use `Cambria`, but in Mac, I like `Lucida Grande` more.

Is there was a macro to differentiate between OS?

Answer Update

As the accepted answer, We need to add more comments on this question, As I read the package manual, we need more settings to use these macros:

``````% packages we need
\usepackage{pdftexcmds}
\usepackage{catchfile}
\usepackage{ifluatex}
\usepackage{ifplatform}
``````

Then we use these macros like that

``````\ifwindows
% add settings
\fi
\iflinux
% add settings
\fi
\ifmacosx
% add settings
\if
``````

now, it works well, the point is you need more packages not only `ifplatform`.

one more thing, compile your tex file with option `-shell-escape` is required:

``````xelatex -shell-escape file.tex
``````
-

## migrated from stackoverflow.comNov 28 '12 at 15:22

This question came from our site for professional and enthusiast programmers.

Related question, which doesn't provide a way for detecting MacTeX though: Is there a way to detect from inside a package that MikTeX is used? –  doncherry Nov 28 '12 at 15:33

## 1 Answer

the `ifplatform` package provides `\ifwindows`, `\iflinux`, `\ifmacosx` and `\ifcygwin` conditionals. i would think that would be enough; the package requires shell escape to be enabled.

-
I like how Cygwin is strange enough it counts as a separate OS. –  Canageek Nov 28 '12 at 15:55
@Canageek Cymwin 'looks like' *nix, but Windows is 'around'. From memory, there were various requests to be able to differentiate Cygwin from Linux (and of course from Mac OS X, OpenBSD, ...). –  Joseph Wright Nov 28 '12 at 15:59
Cygwin is not a question, just do jobs in Windows. –  coanor Nov 29 '12 at 8:20