Estou trabalhando em uma agenda no knitr (usando XeLaTeX). Eu uso tikz
bordas arredondadas em torno de um tabular
ambiente na visão geral mensal. Esta é a primeira de várias páginas da visão geral:
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?
- Procuro uma solução que não exija aumento das margens da página ou diminuição do tamanho das figuras.
- As questõesComo evitar o espaço vazio causado pelo TikZeCentralizar a imagem Tikz de página inteira na página sem margens com xelatex?pareço perguntar exatamente o que quero, mas ou as respostas não são aplicáveis ao meu caso ou não consegui descobrir como aplicar as respostas ao meu caso.
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}
Algumas informações extras sobre o MWE:
Eu
adjustbox
costumavadimensionar a tabela para preencher a página inteira. A imagem tikz resultante é muito grande, o que teria empurrado a imagem para a próxima página após uma página vazia.Por isso seguiSugestão de Gonzola Medina para ocultar as dimensões da imagem tikz. Isso removeu com êxito as páginas em branco, mas resultou em espaços em branco indesejados na parte superior de cada página.
Responder1
Se entendi os requisitos corretamente, acho que o problema é que a caixa TeX que contém tikzpicture
tem uma profundidade diferente de zero. A seguir, uso a local bounding box
tecla para nomear explicitamente a imagem (usar o current bounding box
não funciona) e, em seguida, uso a baseline
tecla para definir a linha de base do tikzpicture
para a parte inferior da imagem, de modo que a caixa que contém o tikzpicture
nã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}
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 \textwidth
e \textheight
como 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}