¿Cómo escribir una palabra en dos colores diferentes?
Tengo una palabra y me gustaría escribirla en dos colores diferentes. Por lo general, habrá un espacio entre las dos \textcolo
secciones.
\textcolor{sectcol}{la}\textcolor{white}{tex}
Puedo "quitar" el espacio con un negativo \hspace
.
\textcolor{sectcol}{la}\hspace{-1mm}\textcolor{white}{tex}
¿Hay una mejor manera de hacer esto?
Respuestas
el color inserta los llamados whatits
, y esto evitará el interletraje:
\documentclass{article}
\usepackage{color}
\begin{document}
VA
\textcolor{red}{V}\textcolor{blue}{A}
\end{document}

No hay mucho que pueda hacer al respecto (aparte de insertar un espacio negativo). La única forma de evitarlo es usar el motor lualatex y el paquete luacolor:
\documentclass{article}
\usepackage{luacolor}
\begin{document}
VA
\textcolor{red}{V}\textcolor{blue}{A}
\end{document}

Su ejemplo no es bueno, porque no hay interletraje entre "a" y "t" en las fuentes estándar.
Si está atascado pdflatex
y no puede usar LuaTeX, puede calcular manualmente el kerning necesario.
\documentclass{article}
\usepackage{xcolor,xparse}
\ExplSyntaxOn
\NewDocumentCommand{\twocolors}{mmmm}
{% #1 = color for the first part
% #2 = first part
% #3 = color for the second part
% #4 = second part
\egreg_twocolors:nnnn { #1 } { #2 } { #3 } { #4 }
}
\box_new:N \l__egreg_twocolors_kern_box
\box_new:N \l__egreg_twocolors_nokern_box
\cs_new_protected:Nn \egreg_twocolors:nnnn
{
\hbox_set:Nn \l__egreg_twocolors_kern_box
{
\tl_item:nn { #2 } { -1 }
\tl_item:nn { #4 } { 1 } % could just be \tl_head:n
}
\hbox_set:Nn \l__egreg_twocolors_nokern_box
{
\hbox:n { \tl_item:nn { #2 } { -1 } }
\hbox:n { \tl_item:nn { #4 } { 1 } } % could just be \tl_head:n
}
\textcolor{#1}{#2}
\skip_horizontal:n
{
\box_wd:N \l__egreg_twocolors_kern_box - \box_wd:N \l__egreg_twocolors_nokern_box
}
\textcolor{#3}{#4}
}
\ExplSyntaxOff
\begin{document}
\twocolors{green!50!blue}{two}{red!30}{color}
twocolor
\makebox[0pt][l]{twocolor}\twocolors{green!50!blue}{two}{red!30}{color}
\makebox[0pt][l]{\twocolors{green!50!blue}{two}{red!30}{color}}twocolor
\twocolors{green!50!blue}{la}{red!30}{tex}
latex
\makebox[0pt][l]{latex}\twocolors{green!50!blue}{la}{red!30}{tex}
\makebox[0pt][l]{\twocolors{green!50!blue}{la}{red!30}{tex}}latex
\twocolors{green!50!blue}{V}{red!30}{A}
VA
\makebox[0pt][l]{VA}\twocolors{green!50!blue}{V}{red!30}{A}
\makebox[0pt][l]{\twocolors{green!50!blue}{V}{red!30}{A}}VA
\end{document}
Cada ejemplo tiene la comprobación de que los colores no se filtran. Sin embargo, con resoluciones pequeñas, el rasterizador puede mostrar artefactos. La siguiente imagen ha sido tomada con una resolución bastante alta.
Limitación: si el último elemento de la primera parte o el primer elemento de la segunda parte es una letra acentuada, apriételo (o ellos).
