当我向彩色数学添加轮廓时,\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}