彩色字符出现不必要的轮廓偏移

彩色字符出现不必要的轮廓偏移

当我向彩色数学添加轮廓时,\textcolor{}遇到命令时会出现移位光晕。如何修复此问题?

\documentclass[border=2pt]{standalone}
\usepackage[dvipsnames]{xcolor}
\usepackage[outline]{contour}\contourlength{1pt}
\newcommand{\border}[1]{\contour{red}{#1}}

\begin{document}
\border{\(F_{\!\!\infty}\)}
\border{\(\textcolor{white}{F}_{\!\!\infty}\)}
\end{document}

在此处输入图片描述

答案1

使用当前的 latex-dev (什么是“latex-dev”?)您可以使用\mathcolor。 (我还使用 $ $ 进行数学运算,这样不太脆弱)。 \mathcolor尚无法与 xcolor 配合使用,但很快就会:

\documentclass[border=2pt]{standalone}
\usepackage[dvipsnames]{color}
\usepackage[outline]{contour}\contourlength{1pt}
\newcommand{\border}[1]{\contour{red}{#1}}

\begin{document}
\border{\(F_{\!\!\infty}\)}
\border{$\mathcolor{white}{F}_{\!\!\infty}$}
\border{$\textcolor{white}{F}_{\!\!\infty}$}

\end{document}

在此处输入图片描述

更新

contour 局部禁用颜色,这很令人困惑\mathcolor。我认为这样会更好:

\documentclass[border=2pt]{standalone}
\usepackage{color}
\usepackage[outline]{contour}\contourlength{1pt}
\newcommand{\border}[1]{\contour{red}{#1}}
\makeatletter
\def\con@coloroff{%
   \def\set@color{%
      \c@lor@special\m@ne
        {color push \current@color}\aftergroup\reset@color}%
   \def\reset@color{\c@lor@special\m@ne{color pop}}}
\makeatother
\begin{document}
\border{\(F_{\!\!\infty}\)}
\border{\(\mathcolor{white}{F}_{\!\!\infty}\)}
\border{$\mathcolor{white}{F}_{\!\!\infty}$}

\end{document}

答案2

您需要避免{}在 F 之后进行任何组或颜色恢复,否则您将丢失下标位置的字体度量信息。

在此处输入图片描述

\documentclass[border=2pt]{standalone}
\usepackage[dvipsnames]{xcolor}
\usepackage[outline]{contour}\contourlength{1pt}
\newcommand{\border}[1]{\contour{red}{#1}}

\begin{document}
\border{\(F_{\!\!\infty}\)}
\border{\(\begingroup\color{white}F_{\!\!\begingroup\color{black}\infty\endgroup}\endgroup\)}
\end{document}

相关内容