![Flutuador OU número de página ausente ao colocar uma imagem tikz grande em uma página paisagem de tamanho diferente](https://rvso.com/image/286377/Flutuador%20OU%20n%C3%BAmero%20de%20p%C3%A1gina%20ausente%20ao%20colocar%20uma%20imagem%20tikz%20grande%20em%20uma%20p%C3%A1gina%20paisagem%20de%20tamanho%20diferente.png)
Eu tenho um documento com uma imagem tikz grande. Para exibir esta imagem usando pdflatex, criei macros para mudar o tamanho do papel e estou usando o pdflscape
pacote para girar as páginas quando exibidas no visualizador de pdf. Usando essa técnica, consigo exibir a figura conforme desejado em uma página girada de tamanho maior, mas a página seguinte está faltando o número da página no rodapé (e sem um manual \clearpage
, o texto não passa corretamente para a próxima página , em vez disso, continua através do rodapé e no abismo invisível além). Na segunda página seguinte à figura, o número da página retorna.
O exemplo mínimo de trabalho abaixo demonstra esse fenômeno:
\documentclass{article}
\usepackage{tikz}
\usepackage{pdflscape}
\usetikzlibrary{shapes}
% Macros for changing paper size
\newcommand{\startPaperSizeB}{%
\begingroup
\clearpage
\setlength{\pdfpagewidth}{11in}
\setlength{\pdfpageheight}{17in}
\setlength{\paperwidth}{\pdfpagewidth}
\setlength{\paperheight}{\pdfpageheight}
\setlength{\oddsidemargin}{0pt}
\setlength{\textwidth}{650pt}
\setlength{\topmargin}{0pt}
\setlength{\headheight}{0pt}
\setlength{\headsep}{0pt}
\setlength{\textheight}{1084pt}
}
\newcommand{\stopPaperSizeB}{\endgroup \clearpage}
\begin{document}
Some text on the first page.
\startPaperSizeB
\begin{landscape}
\begin{figure}
\centering
\begin{tikzpicture}[]
\node [draw, rectangle, minimum height=625pt, minimum width=1000pt] (1) {};
\end{tikzpicture}
\caption{Caption for the large size figure}
\end{figure}
\end{landscape}
\stopPaperSizeB
Missing page number on this page?
\clearpage
Now the page number is back!
\end{document}
Eu perguntei recentementeuma pergunta muito semelhante, exceto que deixei a figura fora do MWE. Esta pergunta foi respondida, mas a solução não funciona ao inserir uma tikzpicture
página maior em paisagem - em vez disso, não há página maior em paisagem e nenhuma figura - elas simplesmente desaparecem. Recebo um aviso sobre uma caixa cheia demais, mas nenhum número. O MWE abaixo demonstra isso:
\documentclass{article}
\usepackage{tikz}
\usepackage{pdflscape}
\usetikzlibrary{shapes}
% Macros for changing paper size
\newcommand{\startPaperSizeB}{%
\setlength{\pdfpagewidth}{11in}
\setlength{\pdfpageheight}{17in}
\setlength{\paperwidth}{\pdfpagewidth}
\setlength{\paperheight}{\pdfpageheight}
\setlength{\oddsidemargin}{0pt}
\setlength{\textwidth}{650pt}
\setlength{\topmargin}{0pt}
\setlength{\headheight}{0pt}
\setlength{\headsep}{0pt}
\setlength{\textheight}{1084pt}
}
\newcommand{\stopPaperSizeB}{}
\begin{document}
Some text on the first page.
\begin{landscape}
\startPaperSizeB
\begin{figure}
\centering
\begin{tikzpicture}[]
\node [draw, rectangle, minimum height=625pt, minimum width=1000pt] (1) {};
\end{tikzpicture}
\caption{Caption for the large size figure}
\end{figure}
\stopPaperSizeB
\end{landscape}
The page number is here, but the figure is not.
\end{document}
Se o tamanho do retângulo for reduzido o suficiente (para 525 por 550, por exemplo), a figura aparecerá em uma página no final do documento, embora a página tenha um tamanho normal e a figura saia da página. Isso me levou a tentar a [H]
opção do float
pacote, que parece estar me aproximando, mas ainda não cheguei lá. Alguma ideia?
Responder1
Encontrei uma resposta aceitável usando o geometry
pacote para ajustar o tamanho da área de texto (o geometry
pacote por si só não permite alterações no tamanho do papel no meio do documento). É importante definir textwidth
e textheight
usando o \newgeometry
comando (há efeitos estranhos ao configurá-los sem usar o geometry
pacote, e fazer isso antes de iniciar o landscape
ambiente. Além disso, \restoregeometry
deve ser chamado após sair do landscape
ambiente.
O exemplo abaixo corrige o problema de numeração de páginas e também o problema de desaparecimento da figura tikz.
\documentclass{article}
\usepackage{tikz}
\usepackage{pdflscape}
\usepackage[papersize={8.5in,11in}]{geometry}
\usepackage{lipsum}
\usetikzlibrary{shapes}
% Macros for changing paper size
\newcommand{\startBSizeLandscape}{%
\newgeometry{textwidth=614pt, textheight=1084pt}
\begin{landscape}
\setlength{\pdfpagewidth}{11in}
\setlength{\pdfpageheight}{17in}
\setlength{\paperwidth}{\pdfpagewidth}
\setlength{\paperheight}{\pdfpageheight}
\setlength{\oddsidemargin}{0pt}
\setlength{\evensidemargin}{0pt}
\setlength{\marginparwidth}{0pt}
\setlength{\topmargin}{0pt}
\setlength{\headheight}{0pt}
\setlength{\headsep}{0pt}
}
\newcommand{\stopBSizeLandscape}{%
\end{landscape}
\restoregeometry
}
\begin{document}
\lipsum
\startBSizeLandscape
\begin{figure}
\centering
\begin{tikzpicture}[]
\node [draw, rectangle, minimum height=589pt, minimum width=1000pt] {};
\end{tikzpicture}
\caption{Caption for the large size figure}
\end{figure}
\stopBSizeLandscape
\lipsum
\end{document}
Compilar isso resulta em um aviso: 'tmargin' and 'bmargin' result in NEGATIVE (-289.03001pt). 'height' should be shortened in length.
É claro que reduzir a altura do texto evita esse aviso, mas gera um aviso de caixa cheia demais. Uma solução melhor seria sem avisos.