Разместить большое изображение 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} 

введите описание изображения здесь

Связанный контент