当我尝试使用 MacOS Sierra 10.12.6 编译使用 Windows 10 编写的 XeTeX 文件时,我目前遇到了问题。我有一个包含以下代码片段的 .cls 文件:
...
\newcommand{\cover}[9]{%
\def\arga{#1}%
\def\argb{#2}%
\def\argc{#3}%
\def\argd{#4}%
\def\arge{#5}%
\def\argf{#6}%
\def\argg{#7}%
\def\argh{#8}%
\def\argi{#9}%
\covercontinued
}
\newcommand{\covercontinued}[2]{%
\color{atwgrey}
\pagenumbering{gobble}
\thispagestyle{empty}
\begin{picture}
(0,0)(0.625cm,18.75cm){%
\put(0,0){%
\begin{tikzpicture}
\node[anchor=north west, inner sep=0] at (-0.25,-1.55) {\picdims[height=18cm]{13.34cm}{18cm}{#2}\par};
\node[anchor=north west] at (-0.6,0) {%
\includegraphics[scale=0.35,page=1]{graphicElements/posterlayout_blau.pdf}%
};
\node[anchor=north west] at (-0.4,-2.3) {%
\begin{minipage}[t][2.95cm]{6.5cm}
\raggedright{%
\color{atwgrey}\fontsize{10pt}{10pt}\selectfont \arga{} | \argb{} | \argc \\%
\vfill %
\color{atwblue}\fontsize{12pt}{12pt}\selectfont \MakeUppercase{\argd} \\%
\fontsize{8.5pt}{12pt}\selectfont \ifdefempty{\arge}{}{\MakeUppercase{\arge} \\}%
\vfill %
\color{atwgrey}\fontsize{10pt}{10pt}\selectfont \MakeUppercase{\argf} \\%
\fontsize{8.5pt}{11pt}\selectfont \argg %
\vfill %
}
\end{minipage}
};
\node[anchor=north west] at (6.5,-12.8) {%
\begin{minipage}[t][3cm]{6.5cm}
\raggedleft{%
\vfill %
\color{atwblue}
\fontsize{10pt}{10pt}\selectfont \ifdefempty{\argh}{}{\MakeUppercase{\argh}\\}%
\fontsize{17pt}{20pt}\selectfont\textbf{\MakeUppercase{\argi}} \\ %
\ifcsempty{#1}{\vfill}{\vspace*{3pt}\fontsize{13pt}{13.5pt}\selectfont \MakeUppercase{#1}\vfill}%
}
\end{minipage}
};
\end{tikzpicture}
}
}
\end{picture}%
\color{black}%
}
...
当我将 .cls 文件与 .tex 文档一起使用并输入\\
其中一个参数时,Windows 可以完美处理它。如果我使用 Mac 编译相同的文件,则会出现以下错误:
! Use of \@icentercr doesn't match its definition.
<argument> \def
l.18 {img/funny-cat}
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.
...
解决方案是将所有出现的 替换\\
为\par
。这样,它就可以完美地按应有的方式工作。我想了解这里的问题是什么。我发现错误通常仅在命名参数时出错时发生,例如在名称中插入数字。由于错误仅在使用 Mac 时发生(使用 texmaker/TeXLive 时),我怀疑这不是这里的问题。
与 Windows 相比,使用参数是否有其他限制?或者可能存在其他差异?