我尝试使用布尔表达式,它已在我的 MNWE 上显示:
\documentclass[12pt, b4paper, twoside]{scrbook}
\usepackage[log-declarations=false]{xparse}
\usepackage{xltxtra}
\usepackage{etoolbox}
\usepackage{amsmath, amsthm, amssymb, amsfonts, amsbsy}
\newbool{pboldvectors}%
\booltrue{pboldvectors}%
\ifbool{pboldvectors}%
{\renewcommand{\vecc}[1]{\mathbf{#1}}} % then clausule
{\renewcommand{\vecc}[1]{\vec{#1}}} % else clausule
\begin{document}
\begin{equation}
\vecc{x}
\end{equation}
\end{document}
但没有成功。我得到了 Latex 错误:\vecc 未定义。以前,我使用过 ifthen 库,但它已经过时了。我想用这个开关进行数学格式化。
答案1
要使用\renewcomad
命令,必须先定义。请\newcommand
改用...
答案2
如果命令以前从未被定义过,则不能使用\renewcommand
,例如 的情况\vecc
。
在这些情况下,您必须使用\newcommand
而不是\renewcommand
。
因此代码
\documentclass[12pt, b4paper, twoside]{scrbook}
\usepackage[log-declarations=false]{xparse}
\usepackage{xltxtra}
\usepackage{etoolbox}
\usepackage{amsmath, amsthm, amssymb, amsfonts, amsbsy}
\newbool{pboldvectors}%
\booltrue{pboldvectors}%
\ifbool{pboldvectors}%
{\newcommand{\vecc}[1]{\mathbf{#1}}} % then clausule
{\newcommand{\vecc}[1]{\vec{#1}}} % else clausule
\begin{document}
\begin{equation}
\vecc{x}
\end{equation}
\end{document}
将工作。