使用 fontspec 在 tcolorbox 中根据条件进行书写

使用 fontspec 在 tcolorbox 中根据条件进行书写

这是我两天内的第三个问题,但是我正在努力解决这个问题,我感觉我离最终解决这个问题不远了,但我自己却无法解决。

我有一个为学生准备的文档,有两个版本:一个是给学生的空白,另一个是给我的,里面有填充的空白。我有一些工作宏可以做到这一点,但我希望两个版本的空白处完全相同,这样页码就相同了。我在这里得到了以下建议:有条件地隐藏文档的一部分 只需在背景颜色中写下我的文本,然后在后面为学生添加一个空格。我试过了。

但问题是,我的示例中包含空白,这些空白位于 tcolorboxes 内。但 tcolorboxes 在页面中断时会消除颜色,如下所述:将字体颜色保存在可破坏的 tcolorbox 中

我决定尝试使用 fontspec 的推荐解决方案。我从未使用过 LuaLateX,但文档运行顺利。

然而,在互联网上搜索了很长时间并试图理解 fontspec 包非常晦涩的文档后,我无法让它按我想要的方式工作。这是我能制作的最快的示例。

\documentclass{article}
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[most]{tcolorbox}
\usepackage{ifthen}
\usepackage{enumitem}
\usepackage{array}

\newcounter{current}
\setcounter{current}{1}
\newcommand{\module}[1]{\lvert#1\rvert}
\newcommand{\exemples}[1]{
    \begin{tcolorbox}[breakable,colframe=gray!10,colback=gray!10]
        \textbf{Exemples \thechapter.\thecurrent}
            \begin{enumerate}[label=(\arabic*),wide]
                #1
            \end{enumerate}
    \end{tcolorbox}
    \stepcounter{current}
}
\newcommand{\hide}[1]{
    \ifthenelse{\equal{\edition}{E}}{
        \color{gray!10}
        %here is the fontspec code I should include
        #1
        \color{black}
    }
    {
    }
}

\begin{document}

\sffamily

\exemples{
\item Résoudre l'équation $z^2+(4+7i)\cdot z-31-i=0$
\def\edition{E}
\hide{On a : $\begin{array}[t]{ccl}\Delta&=&(4+7i)^2-4\cdot1\cdot(-31-    i)\\
&=&16-49+56i+124+4i\\
&=&91+60i \\
\end{array}$

On doit donc chercher les $w$ tels que $w^2=\Delta$. On pose $w=a+b\cdot i$. On a alors le système d'équations suivant : 
\begin{center}
\begin{tabular}{cl}
&$\left\{\begin{array}{l}
\module{w}^2=\module{\Delta} \\
w^2=\Delta \\
\end{array}\right.$\\
$\Leftrightarrow$ &$\left\{\begin{array}{l}
a^2+b^2=\sqrt{91^2+60^2} \\
(a^2-b^2)+2abi=91+60i \\
\end{array}\right.$\\
$\Leftrightarrow$ &$\left\{\begin{array}{l}
a^2+b^2=109 \\
(a^2-b^2)=91 \\
2ab=60 \\
\end{array}\right.$\\
$\Leftrightarrow$ &$\left\{\begin{array}{l}
2a^2=200 \\
2b^2=18 \\
2ab=60 \\
\end{array}\right.$\\
\end{tabular}
\end{center}
qui donne les deux solutions $w_0=10+3i$ et $w_1=-10-3i$.
Ceci fournit les deux solutions de notre équation de départ 
$$z_0=\frac{-(4+7i)+10+3i}2=3-2i$$ et
$$z_1=\frac{-(4+7i)-10-3i}2=-7-5i$$}

\item Résoudre l'équation $2iz^2+(1+5i)\cdot z-1+13i=0$
\def\edition{E}
\hide{On a : $\begin{array}[t]{ccl}\Delta&=&(1+5i)^2-4\cdot2i    \cdot(-1+13i)\\
&=&1-25+10i+8i+104\\
&=&80+18i \\
\end{array}$

On doit donc chercher les $w$ tels que $w^2=\Delta$. On pose $w=a+b\cdot i$. On a alors le système d'équations suivant : 
\begin{center}
\begin{tabular}{cl}
&$\left\{\begin{array}{l}
\module{w}^2=\module{\Delta} \\
w^2=\Delta \\
\end{array}\right.$\\
$\Leftrightarrow$ &$\left\{\begin{array}{l}
a^2+b^2=\sqrt{80^2+18^2} \\
(a^2-b^2)+2abi=80+18i \\
\end{array}\right.$\\
$\Leftrightarrow$ &$\left\{\begin{array}{l}
a^2+b^2=82 \\
(a^2-b^2)=80 \\
2ab=18 \\
\end{array}\right.$\\
$\Leftrightarrow$ &$\left\{\begin{array}{l}
2a^2=2 \\
2b^2=162 \\
2ab=18 \\
\end{array}\right.$\\
\end{tabular}
\end{center}

qui donne les deux solutions $w_0=9+i$ et $w_1=-9-i$.

Ceci fournit les deux solutions de notre équation de départ 
$$z_0=\frac{-(1+5i)+9+i}{4i}=-1-2i$$ et
$$z_1=\frac{-(1+5i)-9-i}{4i}=\frac{-3+5i}2$$
}
}

\end{document}

我知道我应该在我的 \hide 方法中放入一些字体规范代码。问题是我不知道该怎么做,尽管我尝试阅读文档,但我发现很难理解。我想使用 \sffamily 字体,为数学模式保留相同的字体,但更改这两种字体的颜色。例如,我设法用红色的 Verdana 书写,并在分页后保持红色,但文本中的数学保持黑色。

我确信有一个非常简单的解决方案,可能只需要两行代码。如果有人知道,我们非常欢迎。

大力神

相关内容