Großes Tikz-Bild ohne Leerraum auf der Seite einpassen

Großes Tikz-Bild ohne Leerraum auf der Seite einpassen

Ich arbeite an einer Agenda in knitr (mit XeLaTeX). Ich verwende tikzfür abgerundete Kanten um eine tabularUmgebung in der Monatsübersicht. Dies ist die erste von mehreren Seiten der Übersicht:

Monatsübersicht

Wie Sie sehen, gibt es oben auf der Seite einen kleinen weißen Bereich. Ich glaube, dieser weiße Bereich entspricht der Position des Tikz-Codes (wie hier erläutert:So vermeiden Sie durch TikZ verursachten Leerraum).

Meine Frage lautet: Gibt es eine Möglichkeit, dieses Leerzeichen zu entfernen?

Hier ist ein MWE(mit einer einzelnen Zelle und ohne abgerundete Kanten; Hervorhebung manuell hinzugefügt):

\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

Einige zusätzliche Informationen zum MWE:

Antwort1

Wenn ich die Anforderungen richtig verstehe, dann liegt das Problem meiner Meinung nach darin, dass die TeX-Box, die die enthält, tikzpictureeine Tiefe ungleich Null hat. Im Folgenden verwende ich den local bounding boxSchlüssel, um das Bild explizit zu benennen (die Verwendung von current bounding boxfunktioniert nicht) und verwende dann den baselineSchlüssel, um die Grundlinie von tikzpictureauf den unteren Rand des Bildes zu setzen, sodass die Box, die die enthält, tikzpicturekeine Tiefe hat.

\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}

Bildbeschreibung hier eingeben

Ein alternativer Ansatz besteht darin, den Begrenzungsrahmen des Bildes explizit auf zu setzen (0,0) (\textwidth, \textheight). Der Nachteil besteht darin, dass Sie sicherstellen müssen, dass sich alle Teile des Bildes innerhalb des von diesen Punkten beschriebenen Rechtecks ​​befinden, da sie sonst über die Seiten hinausragen. Eine Möglichkeit, dies zu umgehen, besteht darin, das Koordinatensystem über \textwidthund zu skalieren \textheight, wie dieses ziemlich grelle Beispiel zeigt:

\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} 

Bildbeschreibung hier eingeben

verwandte Informationen