为什么我的代码无法使用“当前页面”节点在“独立”文档周围绘制框架?

为什么我的代码无法使用“当前页面”节点在“独立”文档周围绘制框架?

我试图在文档周围绘制一个框架,但输出并不像我预期的那样。

\documentclass[border=10mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\path[draw,line width=1mm]
(current page.north east)rectangle(current page.south west);
\end{tikzpicture}
\end{document}

答案1

TikZbackgrounds可以使用 tikzpicture 的库和framed选项为您完成这项工作。

Backgrounds库可用于在特定scopes或整个周围/后面绘制框架或网格tikzpicture。您可以定义样式并使用选项固定 tikzpicture ( ) 限制和所需框架background rectangle之间的距离。current bounding boxinner frame {x|y}sep

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{backgrounds}

\tikzset{
    background rectangle/.style={
        draw=red,
        line width=1mm
    }
} 

\begin{document}
    \begin{tikzpicture}[framed, inner frame sep=1cm]
        \path node {hello world};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

正如 Torbjørn T. 所建议的,我现在current bounding box在 的末尾使用tikzpicture。此外,除非您希望在文档边界和框架之间留出一些空间,否则border应从类中删除选项。standalone

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand{\MARGIN}{10mm}
\begin{document}
    \begin{tikzpicture}
        \path node{hello world};
        \path[draw,line width=1mm]
            ($(current bounding box.north west)+(-\MARGIN,\MARGIN)$)
            rectangle
            ($(current bounding box.south east)+(\MARGIN,-\MARGIN)$);
    \end{tikzpicture}
\end{document}

相关内容