如何仅为“\vec”符号着色?

如何仅为“\vec”符号着色?

我如何只为中的矢量符号着色\vec f?我正在使用 beamer,因此 xcolor 已加载。

答案的额外“要点”还解释了如何钓鱼......而不仅仅是给我鱼。

谢谢!

答案1

怎么样

$\color{red}{\vec{\color{black}{f}}}$

如果你希望它更加自动化

\newcommand{\colorvec}[1]{{\color{red}\vec{\color{black}{#1}}}}

用作$\colorvec{g}$

在此处输入图片描述

答案2

您还可以在数学模式下使用\textcolor它:

\documentclass{article}
\usepackage{xcolor}
\newcommand{\rvec}[2][black]{%
  \textcolor{red}{\vec{\textcolor{#1}{#2}}}
}
\begin{document}
$\vec{x}$

$\rvec{x}$

$\rvec[green]{x}$
\end{document}

这样,你就可以确保颜色变化仅限于该对象。我添加了一个可选参数来更改变量的颜色。

在此处输入图片描述

答案3

问题如何只为波浪符号着色被关闭,因为“重复”不当。有一个非常有趣的问题,在提到的帖子中和这里都没有解决。当你回到 mathaccent 原子核中的黑色时,这个颜色操作需要\special或,\pdfliteral并且重音位置的 skewchar 校正会丢失。请参见以下示例:

$\widetilde{E}\ \widetilde{\special{}E}\ \coloredaccent{red}\widetilde{E}$

其结果为:

有色口音问题

请注意,第二个重音符号的位置是错误的,因为这里位于\special核心中,而 skewchar TeX 定位丢失了。我们需要在此处返回黑色,将其扩展为\special\pdfliteral。第三个重音符号是如何创建的?接下来是令人惊讶的:

\documentclass{article}
\usepackage{xcolor}

\newmuskip\tmpmudim  \newdimen\tmpdim

\def\coloredaccent#1#2#3{% #1=color, #2=accent, #3=nucleus
   {\ifnum\skewchar\textfont1<0 \tmpmudim=0mu
    \else \calculatemukern{#3}{\char\skewchar\textfont1 }
    \fi
    \colorlet{outcolor}{.}
    \color{#1}\mkern2\tmpmudim #2{\color{outcolor}\mkern-2\tmpmudim#3}
   }
}
\def\calculatemukern #1#2{%
   \setbox0=\hbox{\the\textfont1 #1#2}\setbox1=\hbox{\the\textfont1 #1\null#2}%
   \tmpdim=\wd0 \advance\tmpdim by-\wd1
   \tmpmudim=\expandafter\ignorept\the\tmpdim mu \tmpmudim=288\tmpmudim
   \tmpdim=16em \divide\tmpmudim
   by\expandafter\ignorefracpart\the\tmpdim\relax
}
\def\ignorefracpart#1.#2\relax{#1}
{\lccode`\?=`\p \lccode`\!=`\t  \lowercase{\gdef\ignorept#1?!{#1}}}

\begin{document}

$\widetilde{E}\ \widetilde{\special{}E}\ \coloredaccent{red}\widetilde{E}$

\end{document}

我们需要通过宏来模拟 skewchar 字距调整(在 TeX 中实现)。首先,我们测量 nulcelus 和 skewchar 之间的字距。结果以 pt 为单位。其次,我们将此结果转换为 mu 单位,以便结果也适用于 和\scriptstyle\scriptscripstyle最后,\mkern2\tmpmudim\mkern-2\tmpmudim用于校正重音位置。

相关内容