声明自定义格式的分隔符 mathtools

声明自定义格式的分隔符 mathtools

首先我要感谢mathtools软件包维护者。

问题描述

问题是关于用声明成对的分隔符\DeclarePairedDelimiter(X):如果我想为分隔符着色(通过定义新命令),则将mathtools不起作用。

梅威瑟:

% ============================================================================ %
%                                   SETTINGS                                   %
% ============================================================================ %
\documentclass{article}

\usepackage{xcolor} % for \textcolor command
\usepackage{mathtools} % for \DeclarePairedDelimiterX command

% Formatted paired delimiter
%
%   - coloured delimiter definition
%
\newcommand{\absdelim}{\textcolor{red}{|}}
%
%   - declare the paired delimiter with mathtools
%
\DeclarePairedDelimiterX{\absval}[1]{\absdelim}{\absdelim}{#1}

% ============================================================================ %
%                                     BODY                                     %
% ============================================================================ %
\begin{document}

This does not work:
\[
    \absval*{\frac{\frac{a}{b}}{\frac{c}{d}}}
\]

This alone works:
\[
    \absdelim
\]

\end{document}

编译器会抛出这个问题:Missing delimiter (. inserted).

您可以使用其他自定义命令进行测试:如果其中的分隔符\newcommand{\absdelim}由另一个命令格式化,则编译器将不会运行。

问题

是否有格式化分隔符的技巧(也许使用<post> \DeclarePairedDelimiterX可选参数或使用\DeclarePairedDelimiterPPX命令)?

祝你今天过得愉快!

答案1

您可以重新定义内部包装器(您可能还必须重新定义nostarnonscaled包装nostarscaled器,请参阅文档)。 \mathcolor需要相当新的 LaTeX。

\documentclass{article}

\usepackage{xcolor} % for \textcolor command
\usepackage{mathtools} % for \DeclarePairedDelimiterX command

\newcommand{\absdelim}{|}

\DeclarePairedDelimiterX\absval[1]{\absdelim}{\absdelim}{#1}
\reDeclarePairedDelimiterInnerWrapper\absval{star}{\mathcolor{red}{#1}#2\mathcolor{green}{#3}}
\begin{document}

\[
    \absval*{\frac{\frac{a}{b}}{\frac{c}{d}}}
\]

\end{document}

在此处输入图片描述

答案2

\left并且\right需要在同一组中,因此您不能这样做

{\color{red}\left|} ....    {\color{red}\right|} 

但你可以

   {\color{red}\left| {\color{black} ....    }\right|} 

在此处输入图片描述

\documentclass{article}

\usepackage{xcolor} % for \textcolor command
\usepackage{mathtools} % for \DeclarePairedDelimiterX command

% Formatted paired delimiter
%
%   - coloured delimiter definition
%

%
%   - declare the paired delimiter with mathtools
%
\DeclarePairedDelimiterX{\absvalblack}[1]{|}{|}{#1}
\NewDocumentCommand\absval{sm}{%
 \mathcolor{red}{%
   \IfBooleanTF{#1}{\absvalblack*}{\absvalblack}{\mathcolor{black}{#2}}%
  }}
% ============================================================================ %
%                                     BODY                                     %
% ============================================================================ %
\begin{document}

This does work:
\[
    \absval*{\frac{\frac{a}{b}}{\frac{c}{d}}}
\]


\end{document}

相关内容