공백 없이 페이지에 큰 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

MWE에 대한 추가 정보:

답변1

요구 사항을 올바르게 이해했다면 문제는 을 포함하는 TeX 상자에 tikzpicture0이 아닌 깊이가 있다는 것입니다. 다음에서는 local bounding box키를 사용하여 그림의 이름을 명시적으로 지정한 다음(사용은 current bounding box작동하지 않음) 키를 사용하여 그림의 아래쪽에 baseline대한 기준선을 설정하여 가 포함된 상자에 깊이가 없도록 합니다.tikzpicturetikzpicture

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

여기에 이미지 설명을 입력하세요

관련 정보