我想要一个与 完全相同的符号,\le
但“或等于”行(< 下方的行)为绿色,以向读者强调(或等于)部分。也就是说,我希望新代码的大小和位置完全相同,只是颜色不同。
我只会在我的文档中使用一次这种彩色模拟,因此我更喜欢直接输入它,而不是将其存储在宏中。
我使用了下面的代码,希望得到一些可以注入颜色的东西:
\documentclass{article}
\begin{document}
$3 \show\le 5$
\end{document}
这向我展示了以下有用的输出:
\le=\mathchar"3214.
据我了解(\mathchar 使用的字符有编号列表吗?),这意味着\le
本质上是由使用的数学字体定义的自己的字符。因此,我不确定如何注入颜色。
我认为绘制一个带有下线的自定义 < 并不难,但我希望除了颜色之外,还能有其他相同的东西\le
。
答案1
剪下顶部和底部,分别上色(上部也可以上色),然后将它们重叠\ooalign
。
\documentclass{article}
\usepackage{trimclip}
\usepackage{xcolor}
\makeatletter
\NewDocumentCommand{\cle}{O{green!70}O{.}}{%
% #1 = color of the line, #2 = color of <
\mathrel{\mathpalette\cle@{{#1}{#2}}}%
}
\NewDocumentCommand{\cle@}{mm}{\cle@@#1#2}
\NewDocumentCommand{\cle@@}{mmm}{%
\ooalign{%
\clipbox{0 {0.03\height} 0 0}{%
$\m@th#1\mathcolor{#3}{\le}$%
}\cr
\clipbox{0 0 0 {0.97\height}}{%
$\m@th#1\mathcolor{#2}{\le}$%
}\cr
}%
}
\makeatother
\begin{document}
$a \le b \cle c \cle[red!80] d \cle[green!70][blue!50] e$
$\scriptstyle a \le b \cle c \cle[red!80] d \cle[green!70][blue!50] e$
$\scriptscriptstyle a \le b \cle c \cle[red!80] d \cle[green!70][blue!50] e$
\end{document}
答案2
<
通过将 堆叠在 之上-
并调整高度来构建符号,结果与 非常相似\le
,然后很容易添加颜色。高度可能不完美,但很接近。
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\newcommand*{\coloredle}{%
\mathrel{%
\ooalign{%
\raisebox{1pt}{\(<\)}\cr%
\raisebox{-3.7pt}{\color{green}\(-\)}\cr%
}%
}%
}
\begin{document}
\(x \le y\)
\(x \coloredle y\)
\end{document}
答案3
如果你不想加载任何包,你可以执行以下操作
\documentclass{article}
\begin{document}
$5 \mathrel{\phantom\le\pdfliteral{q 0 0 -10 10 re W n}\llap{$\le$}\pdfliteral{Q q 0 1 0 rg 0 -3 -10 3 re W n}\llap{$\le$}\pdfliteral{Q}} 3$
\end{document}
请注意,此解决方案不可移植,并且取决于您使用的引擎/驱动程序。
如果您使用 XeLaTeX,请将其添加到前言中\def\pdfliteral#1{\special{pdf: literal #1}}
;如果您使用 LuaLaTeX,请添加\protected\def\pdfliteral{\pdfextension literal}
(或使用这些原语代替\pdfliteral
)