我正在使用 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%
答案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
命令,因此您不需要编辑生成的文件。