怎样才能将文本染成红色而不改变其在 parbox 中的位置?

怎样才能将文本染成红色而不改变其在 parbox 中的位置?

考虑以下示例。

\documentclass{report}

\usepackage{color}
\usepackage[percent]{overpic}

\DeclareSymbolFont{extraup}{U}{zavm}{m}{n}
\DeclareMathSymbol{\varheart}{\mathalpha}{extraup}{86}
\DeclareMathSymbol{\vardiamond}{\mathalpha}{extraup}{87}
\renewcommand{\heartsuit}{\color{red} \varheart}
\renewcommand{\diamondsuit}{\color{red} \vardiamond}

\begin{document}
    \begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
        \put (5,93) {\parbox{0.6cm}{\centering \LARGE \textbf{\textit{
            \color{red}3}} \\
            $\heartsuit$
        }}
    \end{overpic}
    \begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
        \put (5,93) {\parbox{0.6cm}{\centering \LARGE \textbf{\textit{
            3}} \\
            $\heartsuit$
        }}
    \end{overpic}
\end{document}

在第一个 中overpic3是红色,而在第二个 中overpic3黑色。不幸的是,通过将其设为3红色,命令似乎\color{red}改变了 周围的间距3,使其在图像上的位置更高,并且向右偏移更多。

我怎样才能将其3颜色设为红色而不影响其位置?

答案1

由于代码中每个指令后都有换行符\textbf{\textit{,因此 LaTeX 会插入一个空格。这显然不是您想要的。

您应该使用 (注释) 字符终止行%,或者首先省略换行符。此外,正如 David Carlisle 在评论中指出的那样,为了稳健性,您还应该使用\textcolor{...}{...}而不是\color{...}...。这是因为\color会移动第一个基线,而\textcolor不会。

因此,相关代码片段应该是

\begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
    \put (5,93) {\parbox{0.6cm}{\centering \LARGE \textbf{\textit{%
        \textcolor{red}{3}}} \\
        $\heartsuit$
    }}
\end{overpic}
\begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
    \put (5,93) {\parbox{0.6cm}{\centering \LARGE \textbf{\textit{%
        3}} \\
        $\heartsuit$
    }}
\end{overpic}

或者

\begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
    \put (5,93) {\parbox{0.6cm}{\centering\LARGE\textbf{\textit{\textcolor{red}{3}}} \\
                 $\heartsuit$
    }}
\end{overpic}
\begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
    \put (5,93) {\parbox{0.6cm}{\centering\LARGE\textbf{\textit{3}} \\
                 $\heartsuit$
    }}
\end{overpic}

相关内容