平均能量损失

平均能量损失

这是一个特定的问题,但我发现它在我的工作流程中经常出现:

  • 生成独立tikz图表:
    • 一些透明物体 - 例如opacity < 1
    • 箭头,我更喜欢大样式:> = Latex来自 tikz 库arrows.meta
  • 运行 ImageMagickconvert转换.pdf.png

问题是,Latex样式箭头在转换为时会产生奇怪的内边框.png

平均能量损失

mwe.tex:

\documentclass[margin=0.1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
  \draw[>=Latex,<->,opacity=1.00](0.0,-0.0)--(1.0,-0.0); % (1)
  \draw[>=Latex,<->,opacity=0.99](0.0,-0.2)--(1.0,-0.2); % (2)
  \draw[>=latex,<->,opacity=1.00](0.0,-0.4)--(1.0,-0.4); % (3)
  \draw[>=latex,<->,opacity=0.99](0.0,-0.6)--(1.0,-0.6); % (4)
\end{tikzpicture}
\end{document}

编译并转换为 png:

pdflatex mwe.tex && convert -density 600 mwe.pdf mwe.png

MWE 结果:

MWE 结果

关于 MWE:

  • 你可以在箭头(1)和(2)中看到问题,目前
  • 箭头 (3) 和 (4) 不受影响,因为它们的箭头较小:> = latex
  • 仅注释 (2) 和 (4) ( opacity=0.99) 即可解决 (1) 的问题 - 即从图像中删除所有透明物体。

问题:

  • 为什么会发生这种情况?
  • 这是一个tikz问题还是 ImageMagick 的问题?
  • 除了避免透明度或使用较小的箭头之外还有其他解决方案吗?

谢谢

答案1

发生这种情况是因为这些箭头由一些绘制部分和一些填充部分组成。您可以使用 来避免这种情况transparency group

\documentclass[margin=0.1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
  \begin{scope}[transparency group,opacity=1.00]    
  \draw[>=Latex](0.0,-0.0)--(1.0,-0.0); % (1)
  \draw[>=latex,<->](0.0,-0.4)--(1.0,-0.4); % (3)
  \end{scope}
  \begin{scope}[transparency group,opacity=0.99]
  \draw[>=latex,<->](0.0,-0.6)--(1.0,-0.6); % (4)
  \draw[>=Latex,<->](0.0,-0.2)--(1.0,-0.2); % (2)
  \end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容