Ajustar imagem tikz grande na página sem espaço em branco

Ajustar imagem tikz grande na página sem espaço em branco

Estou trabalhando em uma agenda no knitr (usando XeLaTeX). Eu uso tikzbordas arredondadas em torno de um tabularambiente na visão geral mensal. Esta é a primeira de várias páginas da visão geral:

Visão geral mensal

Como você pode ver, há um pequeno espaço em branco no topo da página. Acredito que este espaço em branco corresponde à localização do código tikz (conforme discutido aqui:Como evitar o espaço vazio causado pelo TikZ).

Minha pergunta é: existe uma maneira de remover esse espaço em branco?

Aqui está um MWE(com uma única célula e sem bordas arredondadas; destaque adicionado 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

Algumas informações extras sobre o MWE:

Responder1

Se entendi os requisitos corretamente, acho que o problema é que a caixa TeX que contém tikzpicturetem uma profundidade diferente de zero. A seguir, uso a local bounding boxtecla para nomear explicitamente a imagem (usar o current bounding boxnão funciona) e, em seguida, uso a baselinetecla para definir a linha de base do tikzpicturepara a parte inferior da imagem, de modo que a caixa que contém o tikzpicturenão tenha profundidade.

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

insira a descrição da imagem aqui

Uma abordagem alternativa é definir explicitamente a caixa delimitadora da imagem como (0,0) (\textwidth, \textheight). A desvantagem é que você precisa ter certeza de que todas as partes da imagem estão dentro do retângulo descrito por esses pontos, caso contrário, eles ficarão salientes nas laterais. Uma maneira de contornar isso pode ser dimensionar o sistema de coordenadas \textwidthe \textheightcomo mostra este exemplo bastante extravagante:

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

insira a descrição da imagem aqui

informação relacionada