这是我的 MWE:
\documentclass[11pt]{article}
\usepackage{pgf,tikz}
\begin{document}
\begin{figure}
\begin{tikzpicture}
% Bounding box coordinates
\coordinate (q) at (1, 0);
\coordinate (t) at (1, 8);
\coordinate (r) at (12, 8);
\coordinate (s) at (12, 0);
% Draw the (invisible) bounding box
\draw[opacity = 0] (q) -- (t) -- (r) -- (s) -- (q);
\end{tikzpicture}
\end{figure}
\end{document}
上面的 MWE 使用 进行编译pdflatex
以生成一个空白页,但如果我使用 编译为 .dvi latex
,则生成的 dvi 文件将显示矩形!我该如何解决这个问题?
(我需要一个不可见的边界框来绘制一个由 4 个部分组成的图形,其中一些框是可见的,因此我实际上没有选择完全删除该框。此外,由于非技术原因,我需要 .dvi 文件也能正确呈现!)
答案1
正如评论中所述,DVI 和 TikZ 并不总是能很好地协同工作。这里的问题在于opacity
,因为 DVI 不支持透明度。评论中发布了几种解决方法。
然而,你提出的问题是一个XY问题。指定明确的边界框而不绘制它的正确方法是使用命令\useasboundingbox
,或者等效地\path[use as bounding box]
。
代码中的任何一行注释掉的行(您指定的大部分路径实际上是不必要的)都会提供与我未注释的最后一行相同的边界框:
\documentclass{article}
\usepackage{tikz}
\begin{document}
x% just to illustrate width
\begin{tikzpicture}
% Bounding box coordinates
\coordinate (q) at (1, 0);
\coordinate (t) at (1, 8);
\coordinate (r) at (12, 8);
\coordinate (s) at (12, 0);
% Draw the (invisible) bounding box
% \useasboundingbox (q) -- (t) -- (r) -- (s) -- (q);
% \useasboundingbox (q) -- (t) -- (r) -- (s) -- cycle;
% \useasboundingbox (q) -- (t) -- (r) -- (s);
% \useasboundingbox (q) -- (t) -- (r) -- cycle;
% \useasboundingbox (q) rectangle (r);
% \useasboundingbox (q) -- (r);
\path[use as bounding box] (q) -- (r);
\end{tikzpicture}%
x% just to illustrate width
\end{document}