Crénage avec xcolor
Ma question, en variantes, j'ai vu, posée plusieurs fois ici, mais je ne peux pas résoudre le problème.
Si nous utilisons \textcolor{FirstLetter}SecondAndOtherLettersOfWord, nous avons perdu le crénage de police entre la première et la deuxième lettres.
Avec \showoutputdans le journal, nous avons \special{color push rgb 1 0 0}et des \special{color pop}instructions.
Comment avons - nous besoin combinons \bgroup, \egroupetc. (de réponses précédemment) dans ce cas (texte ordinaire, et souvent colorisée seulement la première lettre dans le mot)?
XeLateX . Impossible d'utiliser luacolor et LuaLatex.
MWE:
\documentclass{article}
\usepackage{polyglossia}
\usepackage{xcolor}
\begin{document}
\textcolor{red}{V}AR
VAR
\end{document}
Réponses
Mesurez le crénage entre les parties du mot. J'ai également ajouté un support pour quelque chose avant la coloration.
\documentclass{article}
\usepackage{xcolor}
\newcommand{\kerncolor}[4]{%
% #1 = color, #2 = before, #3 = colored part, #4 = after
\sbox0{#2#3}\sbox2{\mbox{#2}\mbox{#3}}%
\dimen0=\dimexpr\wd0-\wd2\relax
\sbox0{#3#4}\sbox2{\mbox{#3}\mbox{#4}}%
\dimen2=\dimexpr\wd0-\wd2\relax
#2\kern\dimen0 \textcolor{#1}{#3}\kern\dimen2 #4%
}
\begin{document}
\kerncolor{red}{}{V}{AR}
VAR
\sbox0{\kerncolor{red}{}{V}{AR}}\the\wd0
\sbox0{VAR}\the\wd0
\itshape
\kerncolor{red}{}{V}{AR}
VAR
\sbox0{\kerncolor{red}{}{V}{AR}}\the\wd0
\sbox0{VAR}\the\wd0
\end{document}