qa:56483 は XeTeX ではどうなるのかという話。
XeTeX ではフォントの属性(特性値)として「色」が指定できる。例えば、次のようにして「赤いフォント」を定義できる。
\font\redipaexmin="IPAex明朝:color=FF0000"
XeLaTeX(fontspec パッケージ)では、特性値 Color
を指定する。
\newfontfamily\redipaexmin[Color=FF0000]{IPAex明朝}
フォントが色をもつということが意味するのは、内部の組版結果*1の中でも各「文字」が色を持っているのであり、色付きの文字群の前後に「色変更」の命令(special 等)がある形式でないということである。だから、この仕組みを使えば、「一連のテキストが分割されたときに色設定が破綻する」問題はそもそも起きない。以下では、qa:56483 のサンプルをフォントの色属性を用いて実現した例を挙げる。
% 文字コードは当然 UTF-8 \documentclass[twocolumn]{article} % 日本語のナントカは本質でないので適当に済ませる \XeTeXlinebreaklocale "ja" \XeTeXlinebreakskip=0pt plus 1pt \XeTeXlinebreakpenalty=0 \usepackage{fontspec} \setmainfont{IPAex明朝} % 原理的には color パッケージも不要 % (実際は fontspec が内部で読み込む) %\usepackage{color} \textheight2cm \begin{document} % \addfontfeature で特性値を追加している A\footnote{{\addfontfeature{Color=FF0000}% あああああああああああああ% あああああああああああああ% あああああああああああああ% あああああああああああああ% 長くしないと次段に あああああああああああああ% 回らないのは article あああああああああああああ% だからかな? あああああああああああああ% あああああああああああああ% あああああああああああああ% あああああああああああああ}} \end{document}
注意すべき点として、この方式は、color パッケージの色指定とは完全に別系統として存在するということである。((color での指定は \rule
にも効くという違いもある。))xecolor というパッケージを用いれば、color パッケージと類似の文法で「フォントの色」が扱えるようだが、やはり別系統であることは変わらない。
*1:ここでは「水平リスト」を指す。