我正在使用斯卡克在 Overleaf 中包绘制一些棋盘。文档中一切正常,但在编译时我收到以下警告:
此代码给出警告:
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{verbatim}
\usepackage{skak}
\usepackage{diagram}
\newcommand\showboardsize[1][1]{\resizebox{#1 \textwidth}{!}{\showboard}}
\begin{document}
\begin{figure}
\centering
\newgame
\fenboard{r4r1k/p5Rp/1p3pb1/2P4N/2B5/P7/6PP/B2n2K1 w - - 0 1}
\showboardsize[.3]
\caption{\textbf{Mate in Three, White to move}\\
Solution: {\wT}g8+, Rxg8, Bxf6+, Rg7, Bxg7\#}
\label{fig:ch1}
\end{figure}
\end{document}
我尝试了以下方法,但都没有效果。
\RequirePackage{silence}
\WarningsOff[chessfss]
之前加载 chessfss 也没有用。
\RequirePackage{chessfss}
\RequirePackage{silence}
\WarningsOff[chessfss]
是否有可能处理此警告,或者如何隐藏由于 Overleaf 中分布无法访问而无法处理的警告?
谢谢!
答案1
原来,问题出在 .cls 文件中加载软件包的顺序。我检查了 chessfss 软件包的 .dtx 文件,如果执行以下命令,就会触发错误\评论已经被定义。
我稍后会尝试找出触发冲突并导致此警告的包。
编辑:原来是逐字包。如果在斯卡克包中您将收到警告。
此代码不会发出警告:
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{skak}
\usepackage{verbatim}
\usepackage{diagram}
\newcommand\showboardsize[1][1]{\resizebox{#1 \textwidth}{!}{\showboard}}
\begin{document}
\begin{figure}
\centering
\newgame
\fenboard{r4r1k/p5Rp/1p3pb1/2P4N/2B5/P7/6PP/B2n2K1 w - - 0 1}
\showboardsize[.3]
\caption{\textbf{Mate in Three, White to move}\\
Solution: {\wT}g8+, Rxg8, Bxf6+, Rg7, Bxg7\#}
\label{fig:ch1}
\end{figure}
\end{document}
答案2
处理警告的方法是阅读它们!:-)
所以这说明chessfss
要定义一个命令\comment
,但是已经存在同名的命令,也就是说其他包也定义了这样的命令(即verbatim
如您所发现的)。
文档中chessfss
显示,早在 2006 年\chesscomment
就创建了一个新命令,其功能与类中的命令相同\comment
。原因正是避免与其他同名命令发生冲突。
因此,对于国际象棋评论,您应该使用\chesscomment
,然后警告是无害的。从那时起就没有新版本了chessfss
。(如果有新版本,也许会被淘汰,所有用户现在\command
都应该转向写作。)\chesscommand
如果你按其他顺序加载包,那么chessfss
将要实际上定义了\command
,但它会被其他包覆盖。这样就不会出现警告。如果出于其他原因需要先加载其他包,避免警告的一种方法是删除chessfss
警告的情况,即\comment
在加载之前取消定义:
\let\comment\undefined
\usepackage{skak}
(使用答案这里未定义命令。)