如何处理 Overleaf 警告

如何处理 Overleaf 警告

我正在使用斯卡克在 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}

(使用答案这里未定义命令。)

相关内容