考虑以下示例。
\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}
在第一个 中overpic
,3
是红色,而在第二个 中overpic
是3
黑色。不幸的是,通过将其设为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}