写在前面
由于不同 的操作系统(例如我常用的 MacOS 以及Windows)下的 LaTeX 字体是不一样的, 一个明显的区别就是宋体在 Windows 下是 simsun(中易宋体), 而在 MacOS 下是华文宋体.
这在跨平台模板的制作中很麻烦, 如果使用下面的命令:
\setCJKmainfont{}
Windows 一般来说括号里面要写汉字即宋体
, 而 MacOS 就要写 simsun
.
下面用宏来重新定义一下.
一个例子
\documentclass{article}
\usepackage{ifplatform}
% must run with shell escape option!!!
% xelatex --shell-escape test.tex
\begin{document}
Now the \TeX~is running in :
\ifwindows
Windows
\fi
\ifmacosx
macOS
\fi
\iflinux
Linux
\fi
\end{document}
注意这里有个坑点, 如果直接用 xelatex 编译的话不会出来具体的平台名称, 这是因为:
Package ifplatform Warning:
shell escape is disabled, so I can only detect \ifwindows.
所以一定要加上 ` –shell-escape`, 这里为了方便, 就写个全局的 latexmk 配置了. 具体可以看
latexmk conf for nvim and vimtex on mac;
运行之后的结果为:
字体设置
```latex \ifwindows \setCJKmainfont{宋体}%衬线字体 缺省中文字体为 \else \setCJKmainfont{SimSun} \fi
\ifwindows \setCJKsansfont{黑体}%serif是有衬线字体sans serif无衬线字体。 \else \setCJKmainfont{SimHei} \fi