适合页面上没有空白的大型 tikz 图像

适合页面上没有空白的大型 tikz 图像

我正在 knitr 中制定议程(使用 XeLaTeX)。我在月度概览中将环境tikz周围的边缘设为圆角tabular。这是概览的几页中的第一页:

每月概览

如您所见,页面顶部有一小块空白。我相信这个空白对应于 tikz 代码的位置(如此处所述:如何避免 TikZ 造成的空白)。

我的问题是:有没有办法去除这个空白?

这是 MWE(只有一个单元格,没有圆边;手动添加突出显示):

\documentclass{book}
\usepackage[showframe]{geometry}
\setlength{\parindent}{0pt}        %no indenting of first line
\usepackage{tikz}                  %for rounded corners (not in mwe)
\usepackage{adjustbox}             %for scaling table to fill page

\begin{document}

\raisebox{-\height}[0pt][0pt]{% 
    \begin{adjustbox}{totalheight=\textheight, width = \linewidth}

        \begin{tikzpicture}
            \node(table){%
                \begin{tabular}{c}
                    tabular \\ 
                 \end{tabular}
            }; 
        \draw (table.north west) rectangle (table.south east);
        \end{tikzpicture}
    \end{adjustbox}
}

\end{document}

平均能量损失

关于 MWE 的一些额外信息:

答案1

如果我正确理解了要求,那么我认为问题在于包含的 TeX 框tikzpicture具有一些非零深度。在下面,我使用键local bounding box明确命名图片(使用不起作用current bounding box),然后使用baseline键将的基线设置为tikzpicture图片底部,因此包含的框tikzpicture没有深度。

\documentclass{book}
\usepackage[showframe]{geometry}
\setlength{\parindent}{0pt}
\usepackage{tikz}   
\usepackage{adjustbox}
\begin{document}
\begin{adjustbox}{totalheight=\textheight, width=\linewidth}%
\begin{tikzpicture}[local bounding box=picture, baseline=(picture.south)]
  \node (table) {Some content}; 
  \draw (table.north west) rectangle (table.south east);
\end{tikzpicture}
\end{adjustbox}
\end{document}

在此处输入图片描述

另一种方法是明确将图片的边界框设置为(0,0) (\textwidth, \textheight)。缺点是您必须确保图片的所有部分都在这些点描述的矩形内,否则它们会伸出边缘。解决这个问题的一种方法可能是将坐标系缩放到\textwidth\textheight正如这个相当花哨的例子所示:

\documentclass{book}
\usepackage[showframe]{geometry}
\setlength{\parindent}{0pt}
\usepackage{tikz}   
\begin{document}
\begin{tikzpicture}
\useasboundingbox (0,0) (\textwidth, \textheight);
\tikzset{x=\textwidth/10, y=\textheight/10}
\foreach \x in {0,...,9}
  \foreach \y [evaluate={\r=rnd; \g=rnd; \b=rnd;}] in {0,...,9}  
    \fill [/utils/exec=\definecolor{.}{rgb}{\r,\g,\b}, fill=.] 
      (\x, \y) rectangle ++(1, 1);
\end{tikzpicture}
\end{document} 

在此处输入图片描述

相关内容