下列
\documentclass[10pt]{article}
\usepackage[most]{tcolorbox}
\usepackage{graphicx}
\newtcbox{\mytransparentbox}{blank, on line, opacitytext=0.4}
\begin{document}
\includegraphics[scale=0.1]{engine}
\mytransparentbox{\includegraphics[scale=0.1]{engine}}
\end{document}
给出
使用的pdf文件可用这里。
我希望车轮内部是白色的(或完全透明的)。有什么解决办法吗?
PS:就我而言,该包transparent
不起作用(我猜是因为包冲突),所以我正在寻找一种不使用它的解决方案。
PPS:我正在寻找一种不需要修改图像的解决方案(例如将其转换为图像png
)。
答案1
这是 Ulrike 代码的一个变体,用于在 tcbox 选项中包含白色矩形。可以使用finish
选项在文本后包含图形命令(第 10.9 节,第 197 页)。
\newtcbox{\mytransparentbox}{blank, on line,
finish={\fill[white, opacity=0.6] (frame.south west) rectangle (frame.north east);}}
另一个选项是将类似的选项应用于\tcbincludegraphics
框。此命令(第 11.1 节,第 251 页)将命令包含的图像\includegraphics
放入 中tcolorbox
。在这种情况下
\tcbincludegraphics[...]{engine}
两个示例的完整代码如下:
\documentclass[10pt]{article}
\usepackage[most]{tcolorbox}
\usepackage{graphicx}
%Original command with `finish` option
\newtcbox{\mytransparentbox}{blank, on line, finish={\fill[white, opacity=0.6] (frame.south west) rectangle (frame.north east);}}
%Options for tcbincludegraphics
\tcbset{
mytransparentbox/.style={
blank, hbox, on line,
graphics options={scale=0.1},
finish={\fill[white, opacity=.6]
(frame.south west) rectangle
(frame.north east);}
}
}
\begin{document}
\includegraphics[scale=0.1]{engine}
\begin{tikzpicture}%%%%%% Ulrike's solution
\node[inner sep=0pt] (a){\includegraphics[scale=0.1]{engine}};
\pgfsetfillopacity{0.6}
\fill[white](a.south west)rectangle (a.north east);
\end{tikzpicture}
\mytransparentbox{\includegraphics[scale=0.1]{engine}}
\tcbincludegraphics[mytransparentbox]{engine}
\end{document}
答案2
您可以在图片上放置一个不透明的白色矩形:
\documentclass[10pt]{article}
\usepackage[most]{tcolorbox}
\usepackage{graphicx}
\newtcbox{\mytransparentbox}{blank, on line, opacitytext=0.4}
\begin{document}
\includegraphics[scale=0.1]{engine}
\begin{tikzpicture}
\node[inner sep=0pt] (a){\includegraphics[scale=0.1]{engine}};
\pgfsetfillopacity{0.6}\fill[white](a.south west)rectangle (a.north east);
\end{tikzpicture}
\mytransparentbox{\includegraphics[scale=0.1]{engine}}
\end{document}
答案3
首先转换PDF文件放入巴布亚新几内亚图像,然后应用代码。
\documentclass[border=4mm]{standalone}
\usepackage[most]{tcolorbox}
\usepackage{graphicx}
\newtcbox{\mytransparentbox}{blank, on line, opacitytext=0.4}
\begin{document}
\includegraphics[scale=0.1]{engine1}
\mytransparentbox{\includegraphics[scale=0.1]{engine1}}
\end{document}
答案4
非乳胶方法:
pdf 文件的语法看起来有点奇怪。它没有直接包含形状,而是包含较大的正方形,这些正方形被剪裁成齿轮。
如果内圈填充白色,则可以避免透明度问题,这可以通过在 inkscape 等中编辑 pdf 来实现。
我将修复后的 pdf 版本上传至https://github.com/colasbd/bug_opacity_tcolorbox/blob/6893ed5d0222596010310882a17986fb63ce19ae/engine_fix.pdf