एक शब्द को दो अलग-अलग रंगों में कैसे लिखें?

Aug 17 2020

मेरे पास एक शब्द है और मैं इसे दो अलग-अलग रंगों में लिखना चाहूंगा। आमतौर पर, दो \textcoloखंडों के बीच एक स्थान होगा

\textcolor{sectcol}{la}\textcolor{white}{tex}

मैं एक नकारात्मक के साथ अंतरिक्ष को "हटा" सकता हूं \hspace

\textcolor{sectcol}{la}\hspace{-1mm}\textcolor{white}{tex}

क्या ऐसा करने के लिए इससे अच्छा तरीका है?

जवाब

3 UlrikeFischer Aug 17 2020 at 16:54

रंग आवेषण तथाकथित whatits, और यह कर्लिंग को रोक देगा:

\documentclass{article}
\usepackage{color}

\begin{document}
VA

\textcolor{red}{V}\textcolor{blue}{A}
\end{document}

इसके बारे में आप बहुत कुछ नहीं कर सकते (नकारात्मक स्थान डालने के अलावा)। वास्तव में इससे बचने का एकमात्र तरीका है, लुलेटेक्स इंजन और लुआकलर पैकेज का उपयोग करना:

\documentclass{article}
\usepackage{luacolor}

\begin{document}
VA

\textcolor{red}{V}\textcolor{blue}{A}
\end{document}

2 egreg Aug 17 2020 at 17:13

आपका उदाहरण अच्छा नहीं है, क्योंकि मानक फोंट में "ए" और "टी" के बीच कोई कर्नेल नहीं है।

यदि आप pdflatexLuaTeX के साथ अटके हुए हैं और उसका उपयोग नहीं कर सकते हैं, तो आप मैन्युअल रूप से आवश्यक कर्नेल की गणना कर सकते हैं।

\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}

प्रत्येक उदाहरण में यह जाँच होती है कि रंग लीक नहीं हुए हैं। हालाँकि, छोटे प्रस्तावों पर, रैस्टर कलाकृतियों को दिखा सकता है। नीचे दी गई छवि को काफी उच्च रिज़ॉल्यूशन पर लिया गया है।

सीमा: यदि पहले भाग में अंतिम आइटम या दूसरे भाग में पहला आइटम एक उच्चारण पत्र है, तो इसे (या उन्हें) ब्रेस करें।