使用 \boldsymbol 时出错

使用 \boldsymbol 时出错

我正在使用\boldsymbol并收到一个奇怪的错误。以下是包含我导入的所有包的 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsthm,amssymb,hanging,amsthm,polynom,mathtools,verbatim,enumitem,fancyhdr,tikz,systeme,multicol,siunitx,titling,flexisym,hyperref,xparse, amstext, array,xfrac,datetime,advdate,mathrsfs}
\begin{document}
$\boldsymbol{f(x)}$ 
\end{document}

以下是错误消息(假设测试文件名为“main.tex”):

./main.tex:5: Undefined control sequence.
\binrel@@ #1->\@symErr 
                       ?{\OrdSymbol {#1}}
l.5 $\boldsymbol{f(x)}
                      $
?

我无法确定是哪个软件包导致了错误。如能得到任何帮助我将不胜感激。

答案1

从直接意义上讲,错误是由于弗莱西姆是您的代码加载的众多包之一。(@Werner 已经在您的答案下方的评论中指出了这一点。)当然,如果有人这样做不是加载flexisym包,错误消失。

但从更广泛的意义上讲,错误出现的原因在于您的代码违反了 一些flexisym隐含的但完全合理的假设,这些假设涉及什么是好的(或至少是合理的)编码实践。具体来说,错误在于通过编写

$\boldsymbol{f(x)}$

你告诉 LaTeX 不仅fx渲染大胆的,但符号()也是如此。果然,如果您\boldsymbol{f(x)}用替换$\boldsymbol{f}(\boldsymbol{x})$,错误就会消失——即使flexisym加载了。

\boldsymbol{f(x)}从美学(排版)的角度来看,书写确实构成了相当可疑的编码实践。为什么?在精细的数学排版中,以大胆的不仅创造了不同的外貌但也传达了不同的意义

  • 您是否想让粗体括号具有与普通括号(即非粗体括号)不同的含义?至少可以说,这很不寻常。当然,如果真的如果你想表达什么,你应该确保明确地说明这一点,最好是在文档的开头附近,否则你的许多读者可能会忽略这种区别。

  • 如果您绝对必须将和加粗f,并且x将括号也加粗,那么您应该加载bm(我想是“bold math”的缩写)包并写入$\bm{f(x)}$。\bm比写起来更容易\boldsymbol,不是吗?

  • 但是,请问问自己,这是否真的是你想要的,或者你是否应该写其中之一$\bm{f}(\bm{x})$$\mathbf{f}(\mathbf{x})$相反。前者产生加粗斜体输出,后者产生粗体直立输出,但不加粗括号

您可能还想清理并构建一些加载 LaTeX 包的方式。我在下面的代码中提供了一些这方面的建议。也请问问自己,您的文档是否真的需要加载许多这样的包。

在此处输入图片描述

\documentclass{article}

% First, some comments about your current approach to loading packages:
%\usepackage[utf8]{inputenc} % 'utf8' is the default nowadays
%\usepackage{%amsmath, % is loaded automatically by 'mathtools'
%    amsthm,amssymb,
%    hanging, % to simplify creating paragraphs with hanging indentation
%    %amsthm, % don't load packages twice (or three times, or ...)
%    polynom, % for typesetting polynomial long division
%    mathtools,
%    %verbatim, % since you load 'fancyhdr', I'd load 'fancyvrb' instead of 'verbatim'
%    enumitem,
%    fancyhdr,tikz,systeme,multicol,siunitx,
%    titling, % for more control over '\maketitle' and '\thanks' -- do you need it?
%    flexisym,
%    %hyperref, % this package should almost invariably be loaded *last*
%    xparse, 
%    %amstext, 
%    array,xfrac,
%    %datetime, % why don't you load the newer and more capable 'datetime2' package?
%    advdate, % this package was last updated in 1996 -- do you need it??
%    mathrsfs}

%% Suggestion: Take a more structured approach to loading packages.
\usepackage{mathtools,amssymb,amsthm,mathrsfs,flexisym,xfrac} % 'math-y' packages
\usepackage{bm} % <-- new, for '\bm' macro
\usepackage{polynom,systeme,siunitx} % 'sort-of math-y' packages
\usepackage{hanging,fancyvrb,fancyhdr,multicol,enumitem,titling,datetime2}
\usepackage{xparse}
\usepackage{tikz}
\usepackage{hyperref} % observe that this package is now loaded *last*

\begin{document}
% This causes an error:
% $\boldsymbol{f(x)}$
% The following examples work fine:
$\boldsymbol{f}(\boldsymbol{x})$, $\bm{f(x)}$, $\bm{f}(\bm{x})$, $\mathbf{f}(\mathbf{x})$
\end{document}

答案2

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, bm}
\begin{document}
\begin{center} 
\begin{tabular}{|c|c|c|}
\hline 
$\bm{x}$ & $0$ & $2$ \\ 
\hline 
$\bm{f(x)}$ & $1$ & $3$ \\ 
%\hline 
$\bm{f(x)}$ & $-2$ & $2$ \\ 
\hline 
\end{tabular} 
\end{center}
\end{document}

相关内容