根据纸张宽度创建 Tikz 图片

根据纸张宽度创建 Tikz 图片

到目前为止,我只是创建一个所需的图片,例如快图或者Tikz-EDT然后将代码传递给我的文档。为了使图片适合纸张宽度,我使用了\resizebox

但是,如果原始图片太大,字体就会缩小。如果图片的宽度比实际的宽度小一些,字体就会变大。虽然不大,但如果每张图片的字体大小略有不同,看起来就不美观了。当然,我可以缩放字体旁边的所有内容,但这样图片就会变得混乱,因为我最初是在编辑器中根据字体大小创建节点的距离和宽度。

据我所知,可以将特定的边界框定义为图片的“框架”。

我的问题是,是否可以在 tikz 环境内定义/绘制一个具有纸张具体宽度的矩形,那么当我创建图片时,我总是“看到”图片应该有多宽,以便最后不要缩放太多。

像这样:

\begin{tikzpicture}
\defineasboundingbox{\draw start_x, start_y) rectangle (PAPERWIDTH, end_y);}  % <-- See remark below
\end{tikzpicture}

评论:这个矩形应该作为我绘图的参考点,向我展示纸张的宽度,稍后图片将放置在\resizebox

我现在可以使用矩形作为参考来绘制我的图画。

或者是否存在更简单的解决方案来确保每张图片的字体大小相同?

提前谢谢了。

答案1

基于马克斯对我之前的一个问题来说,这是一个非常好的答案,这样的框架可以使用

\documentclass{article}
\usepackage{tikz}
\usepackage[margin=2cm]{geometry}
\tikzset{
    use bounding box relative coordinates/.style={
        shift={(current bounding box.south west)},
        x={(current bounding box.south east)},
        y={(current bounding box.north west)}
    },
}

\begin{document}
    \begin{tikzpicture}
    \draw[black,dashed,use as bounding box] (0,0) rectangle (\textwidth,5cm);
    \begin{scope}[use bounding box relative coordinates]
    % Some tikz code in relative coordinates inside the rectangle
    \end{scope}
\end{tikzpicture}
\end{document}

环境中的所有内容都scope必须按照相对坐标定位,但至少,您可以看到何时盒子填充过满。

相关内容