preview
使用该包并使用 xelatex 进行编译时,tikz 图片是否可以具有透明度?
以下 mwe 在 xelatex 和 pdflatex 下均可编译,且无警告/错误,但使用 xelatex 时则无透明度。所有内容均打印为不透明。使用 pdflatex 时,一切工作正常。
\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\usepackage[xetex,active,tightpage]{preview}
%\usepackage[pdftex,active,tightpage]{preview}
\PreviewEnvironment[]{tikzpicture}
\begin{document}
\begin{tikzpicture}[line width=1ex]
\draw (0,0) -- (3,1);
\filldraw [fill=red,draw opacity=0.5] (1,0) rectangle (2,1);
\end{tikzpicture}
\end{document}
答案1
您可以通过选择页面大小等于图片大小来避免此问题。因此您不需要这样做,preview
而且它与 XeLaTeX 配合得很好。为此,您需要将图片保存在框寄存器中。因为geometry
只允许在序言中选择页面大小,所以您需要将图片移动到那里,只要它在保存框内(就像在环境中一样lrbox
),就可以了。
我计划构建一个这样的功能standalone
作为的替代方案preview
。
\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\usepackage{geometry}
%\usepackage[active,tightpage]{preview}
%\usepackage[pdftex,active,tightpage]{preview}
%\PreviewEnvironment[]{tikzpicture}
\pagestyle{empty}
\normalfont% required to select normal font already in the preamble
\begin{lrbox}{0}%
\begin{tikzpicture}[line width=1ex]
\draw (0,0) -- (3,1);
\filldraw [fill=red,draw opacity=0.5] (1,0) rectangle (2,1);
\end{tikzpicture}%
\end{lrbox}
\geometry{paperwidth=\wd0,paperheight=\ht0,margin=0cm}
\parindent=0pt
\begin{document}
\usebox{0}%
\end{document}
(外面的黑框是PDF查看器的背景)
即将推出的 1.0 版本standalone
包含与此类似的代码,并避免了 的需要preview
。它应该可以很好地适用于 XeLaTeX。
答案2
如果我使用 PSTricks 并XeLaTeX
结合预览,它就可以正常工作。我之所以认为 TikZ 有问题,而不是预览有问题,