21

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
\fi % This needs to be \fi, not \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
sesodesa
  • 753
coanor
  • 535

1 Answers1

27

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.

wasteofspace
  • 5,352
  • 5
    I like how Cygwin is strange enough it counts as a separate OS. – Canageek Nov 28 '12 at 15:55
  • 3
    @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 08:20
  • Note that for \ifwindows shell escape is not needed, only for the other OSes. So without shell escape you can detect Windows vs. non-Windows (but not which kind of non-Windows). – Marijn Mar 19 '22 at 21:14