Ajustar una imagen tikz grande en la página sin espacios en blanco

Ajustar una imagen tikz grande en la página sin espacios en blanco

Estoy trabajando en una agenda en knitr (usando XeLaTeX). Lo uso tikzpara bordes redondeados alrededor de un tabularentorno en la descripción general mensual. Esta es la primera de varias páginas de la descripción general:

Resumen mensual

Como puede ver, hay un pequeño espacio en blanco en la parte superior de la página. Creo que este espacio en blanco corresponde a la ubicación del código tikz (como se analiza aquí:Cómo evitar los espacios vacíos causados ​​por TikZ).

Mi pregunta es: ¿hay alguna manera de eliminar este espacio en blanco?

Aquí hay un MWE(con una sola celda y sin bordes redondeados; resaltado agregado manualmente):

\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

Alguna información adicional sobre el MWE:

Respuesta1

Si entiendo los requisitos correctamente, entonces creo que el problema es que el cuadro TeX que contiene tikzpicturetiene una profundidad distinta de cero. A continuación, uso la local bounding boxclave para nombrar explícitamente la imagen (usar current bounding boxno funciona) y luego uso la baselineclave para establecer la línea base de la tikzpictureimagen en la parte inferior de modo que el cuadro que contiene tikzpictureno tenga profundidad.

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

ingrese la descripción de la imagen aquí

Un enfoque alternativo es establecer explícitamente el cuadro delimitador de la imagen en (0,0) (\textwidth, \textheight). El inconveniente es que debes asegurarte de que todas las partes de la imagen estén dentro del rectángulo descrito por estos puntos, de lo contrario sobresaldrán por los lados. Una forma de evitar esto podría ser escalar el sistema de coordenadas \textwidthy, \textheightcomo muestra este ejemplo bastante llamativo:

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

ingrese la descripción de la imagen aquí

información relacionada