xcolorによるカーニング
Oct 17 2020
私の質問は、さまざまな形で、ここで何度も尋ねられましたが、問題を解決することはできません。
を使用すると\textcolor{FirstLetter}SecondAndOtherLettersOfWord、最初の文字と2番目の文字の間のフォントカーニングが失われます。ログに、私たちは持っていると説明。我々は結合する必要がどのように、この場合には、など(以前からの回答)(通常のテキスト、および多くの場合、言葉で唯一の最初の文字色付け)?\showoutput\special{color push rgb 1 0 0}\special{color pop}\bgroup\egroup
XeLateX。luacolorとLuaLatexは使用できません。
MWE:
\documentclass{article}
\usepackage{polyglossia}
\usepackage{xcolor}
\begin{document}
\textcolor{red}{V}AR
VAR
\end{document}
回答
5 egreg Oct 17 2020 at 16:20
単語部分の間のカーニングを測定します。カラーリング前のサポートも追加しました。
\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}