插入 pdf_tex 图像时更改文本颜色

插入 pdf_tex 图像时更改文本颜色

我正在使用 pdf + LaTeX 选项从 Inkscape 插入图像,因为我希望文本以与文档其余部分相同的字体和大小显示。

我可以改变文本的颜色吗?

\documentclass{article}
\usepackage{graphicx}
\usepackage{color}

\begin{document} 
Some text before the figure.

\color{red}

\begin{figure}
 \centering
 \def\svgwidth{\textwidth}
 \input{figure.pdf_tex}
 \caption{Example Figure}
\end{figure}

Some text after the figure.
\end{document}

以下是figure.pdf_tex文件的内容:

\begingroup%
  \makeatletter%
  \providecommand\color[2][]{%
    \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
    \renewcommand\color[2][]{}%
  }%
  \providecommand\transparent[1]{%
    \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
    \renewcommand\transparent[1]{}%
  }%
  \providecommand\rotatebox[2]{#2}%
  \ifx\svgwidth\undefined%
    \setlength{\unitlength}{782.075bp}%
    \ifx\svgscale\undefined%
      \relax%
    \else%
      \setlength{\unitlength}{\unitlength * \real{\svgscale}}%
    \fi%
  \else%
    \setlength{\unitlength}{\svgwidth}%
  \fi%
  \global\let\svgwidth\undefined%
  \global\let\svgscale\undefined%
  \makeatother%
  \begin{picture}(1,0.48489595)%
    \put(0,0){\includegraphics[width=\unitlength]{figure.pdf}}%
    \put(0.21413974,0.24055332){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{Text}}}%
  \end{picture}%
\endgroup%

示例图为 jpg

答案1

图形环境总是将颜色重置为文档默认值,通常为黑色,因此您需要\color环境内的命令。

\begin{figure}\color{red}

这将使环境中的所有文本(包括标题)变成红色。

然后 inkscape 已经固定了文本的颜色

 \put(0.21413974,0.24055332){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{Text}}}%

因此,如果你想要它拾取当前颜色,你需要删除

\color[rgb]{0,0,0}

或者在设置颜色后重新定义命令不执行任何操作

 \begin{figure}\color{red}\renewcommand\color[2][]{}

将设置为红色,然后禁用图中的任何其他\color命令,因此您不需要编辑生成的文件。

相关内容