使用 diagbox 包改变 JASSS Latex 模板中的文本字体

使用 diagbox 包改变 JASSS Latex 模板中的文本字体

我正在使用\diagbox包来使用 [JASSS 模板] 来格式化表格(https://www.overleaf.com/latex/templates/jasss-article-template/pnrdvncxsjmn)。但是,使用它后,整个文档的字体类型、大小和颜色都会发生变化。我使用的软件包列表如下。

\documentclass{JASSS}
\usepackage[ruled,vlined]{algorithm2e}
\usepackage[original]{pict2e}
\usepackage{algorithmic}
\usepackage{graphics}
\usepackage{epsfig}
\usepackage{amssymb} 
\usepackage{bbm}
\usepackage{array}
\usepackage{amsmath}
\usepackage{romannum}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepackage{tikz}
\usetikzlibrary{automata} 
\usetikzlibrary{positioning}
\usetikzlibrary{arrows}
\usepackage{ragged2e, eqparbox}
\usepackage{adjustbox}
\usepackage{multirow}
\usepackage{diagbox}
\usepackage{subfigure}
\usepackage{xurl}
\usepackage{makecell}

\begin{document}

\newcommand\norm[1]{\left\lVert#1\right\rVert}
\definecolor{linkcolor}{rgb}{0,0,0.4}
\newcolumntype{M}[1]{>{\RaggedRight}m{#1} <{\hspace*{-1pt}}}
\DeclareUnicodeCharacter{2010}{-}
\renewcommand{\tabularxcolumn}[1]{>{\centering\arraybackslash}m{#1}}

\begin{tabular}{|c|c|c|c|}
\toprule
\multicolumn{2}{|c|}{\diagbox[trim=l,height=3\line]{\small\textbf{A\& B}}{\small\strut \textbf{C}}}& \textbf{D} & \textbf{E}\\
\end{tabular}
\label{table2}
\end{table}

\end{document}

了解如何修复此问题会很有帮助。字体如图所示。改变文本字体]1

答案1

以下 MWE 重现了该问题:

\documentclass{JASSS}
\usepackage{diagbox}
\begin{document}
\parano{}
\section{Section title}
Some text in the section

\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{\diagbox[trim=l,height=3\line]{\small\textbf{A\& B}}{\small\strut \textbf{C}}}& \textbf{D} & \textbf{E}\\
\hline
\end{tabular}

\section{New section}
some more text\par
extra paragraph\par
and a third
\endparano

\end{document}

问题是 JASSS 类重新定义了显示节号的宏 ( \thesection),以重置该类用于在每个段落前显示数字的计数器。该diagbox包加载了该calc包,但calc无法正确处理这种计数器重置 - 或者可以说 JASSS 无法calc正确处理该包。

以下行JASSS.cls导致了问题:

% line 246
\renewcommand\thesection{\setcounter{parano}{0}}

要解决此问题,您可以使用 以不同的方式重置段落编号\@addtoreset。然后,您可以提供一个\thesection不执行任何操作的新重新定义,其效果是删除章节编号(这是所需的)并且不会触发错误calc(这也是所需的)。

解决方案的 MWE:

\documentclass{JASSS}
\usepackage{diagbox}
\makeatletter
\@addtoreset{parano}{section}
\makeatother
\renewcommand\thesection{\relax}
\begin{document}
\parano{}
\section{Section title}
Some text in the section

\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{\diagbox[trim=l,height=3\line]{\small\textbf{A\& B}}{\small\strut \textbf{C}}}& \textbf{D} & \textbf{E}\\
\hline
\end{tabular}

\section{New section}
some more text\par
extra paragraph\par
and a third
\endparano

\end{document}

结果:

在此处输入图片描述

请注意,我用 替换\toprule\hline因为\toprule与 不太对齐\diagbox


一般说明:您的问题集中在您观察到的颜色和字体变化上。但是,真正的错误是 的问题calc,这与字体或颜色无关。您看到更改的原因是 Overleaf(以及许多桌面编辑器)设置为在发生错误后继续。但是,在这种情况下,错误通常会导致代码中出现不相关的问题,正如您在此处遇到的那样。因此,Overleaf 中的这种设置相当不幸,因为它会导致极具误导性的行为,例如人们认为diagbox改变颜色。诊断此类问题的正确方法是,当发生任何错误时(在 Overleaf 中,在“重新编译”按钮旁边显示为红色框),不看输出而是单击错误指示器并阅读报告的第一个错误的实际错误消息。

相关内容