您好,我正在尝试使用此链接中的以下类(yReport.cls)https://github.com/HarveySheppard/yLaTeX
我使用的是 MikTex 2.9,并且安装了相关的包、字体和 cls 文件。不幸的是,出现了以下错误,我不知道如何修复它:
! LaTeX error: "xparse/command-already-defined"
!
! Command '\FA' already defined!
!
! See the LaTeX3 documentation for further information.
加载以下代码时出现此错误,该代码是布局工作所需的最少代码:
\documentclass[french]{yReport}
\author{Your name}
\subtitle{Subtitle}
\title{Title}
\hypersetup{
pdftitle={Title},
pdfsubject={Subject},
pdfauthor={Your name},
pdfkeywords={{keyword 1}{keyword 2}},
}
\makeatletter
\let\runauthor\@author
\let\runtitle\@title
\makeatother
\begin{document}
\titleTwo
\end{document}
答案1
这个问题可以通过以下方式重现:
\documentclass{article}
\usepackage{infoBulle}
\begin{document}
Lorem
\end{document}
infoBulle.sty
你需要https://github.com/HarveySheppard/yLaTeX/tree/master/yPackages/infoBulle以及yMainColor.sty
来自https://github.com/HarveySheppard/yLaTeX/blob/master/yPackages/yMainColor/运行代码。
简短的调查显示,infoBulle.sty
不仅加载fontawesome
包(在第 44 行),但它也存在问题
\newfontfamily{\FA}{FontAwesome}
后来115 行。
然而,此时,fontawesome
同一行代码本身已经执行完毕,我们得到了一个错误。
我觉得在 FontAwesome 已经加载的情况下infoBulle.sty
使用\FA
with是错误的。应该向维护者报告这个问题(\newfontfamily
fontawesome
infoBulle
https://github.com/HarveySheppard/yLaTeX/issues/8)。维护者很快就做出了回应,并在 GitHub 上提供了一个修复版本。
与此同时,最简单但也最肮脏的修复方法是编辑本地副本infoBulle.sty
并删除(或注释掉)\newfontfamily{\FA}{FontAwesome}
第 115 行。
萨布霍克的调查显示,这个问题并没有发生在旧版本上fontspec
。事实上,fontspec
文档解释了
[
\newfontfamily
,\setfontfamily
,\renewfontfamily
] 这些命令定义新的字体系列命令(如\rmfamily
)。该new
命令检查是否⟨cmd⟩
已定义,如果已定义,则发出错误。该renew
命令检查是否⟨cmd⟩
已定义,如果未定义,则发出错误。该set
命令从不检查;使用风险自负。新的:在 的早期版本中
fontspec
,仅\newfontfamily
提供 ,但其行为类似于\setfontfamily
。如果这现在导致问题,您必须稍微更新您的代码;抱歉。
因此,在旧版本的中,infontspec
会简单地覆盖默认的 in ,但现在两个具有相同名称的 s 会发生冲突并产生错误。\newfontfamily
infoBulle
fontawesome
\newfontfamily
答案2
问题出在较新版本的 fontec 上。我添加了以下行
\usepackage{fontspec}
大约在第 43 行左右。我还将其更改\newfontfamily{\FA}{FontAwesome}
为\setfontfamily{\FA}{FontAwesome}
现在它正常工作了。此外,应该使用 LuaLaTeX 而不是 XeLaTeX