
Esta é uma pergunta difícil. Tenho muitos casos em que inicio um novo capítulo, e a primeira página do novo capítulo é uma página pdf, que é carregada usando \includegraphics
(tenho muitos documentos, digitalizo e depois carrego no Latex assim).
Se eu não ajustar a largura da página pdf/imagem corretamente, acabo com uma página vazia no início do capítulo. Portanto, passo muito tempo ajustando manualmente a largura da imagem para torná-la pequena o suficiente para eliminar a página vazia antes do capítulo.
Além disso, se eu mudar do tamanho carta para o tamanho ofício, todas essas alterações não serão necessárias.
Gostaria de perguntar se existe uma forma automatizada de descobrir qual largura usar para a página pdf ou a imagem carregar, para que nenhuma página vazia seja gerada.
O caso está sempre na primeira página do novo capítulo. Aqui está um MWE do que quero dizer.
\documentclass[11pt]{report}%
\usepackage[demo]{graphicx}
\usepackage[letterpaper]{geometry}
%\usepackage[legalpaper]{geometry}
\begin{document}
Some text here
Some text here
Some text here
Some text here
\chapter{one}
\includegraphics[width=0.9\textwidth,height=.9\textwidth]{whatever}
\includegraphics[width=0.9\textwidth,height=.9\textwidth]{whatever}
\end{document}
Aqui está o resultado. A segunda página está vazia
Mudar height=.9
para height=.85
corrige isso
....
\chapter{one}
\includegraphics[width=0.9\textwidth,height=.85\textwidth]{whatever}
\includegraphics[width=0.9\textwidth,height=.9\textwidth]{whatever}
....
Aqui está o resultado
Eu entendo o problema. E por que o Latex fez isso. A imagem era um pouco grande demais, então tentei em uma nova página e desisti, terminando com uma página vazia e desperdiçada.
Nota: no MWE acima, adicionei height=
apenas para mostrar o problema. No meu código real, only width=
é usado. Mas não sabia como mostrar o problema aqui sem usar o height=
.
Então, minha pergunta é: existe uma maneira de dizer ao Latex para ajustar a largura da imagem que está sendo carregada automaticamente para corrigir a largura, de modo que nenhuma página vazia seja gerada? Ou uma forma mais inteligente de fazer isso, sem todos esses ajustes manuais.
O que faço agora é executar o Latex, gastar muito tempo ajustando os valores de largura das imagens para remover páginas vazias antes delas. Às vezes eu também mudo geometry
e tenho que fazer tudo de novo. Será bom automatizar isso.
Usando TL 2015.
Responder1
A macro \getremaining
calcula o espaço vertical deixado na página, colocando a resposta em length \vremaining
.
Lembre-se de executá-lo duas vezes.
\documentclass[11pt]{report}%
\usepackage[demo]{graphicx}
\usepackage[letterpaper]{geometry}
%\usepackage[legalpaper]{geometry}
\usepackage{tikzpagenodes}
\newlength{\vremaining}
\newcommand{\getremaining}%
{\begin{tikzpicture}[remember picture,overlay]
\pgfextracty{\vremaining}{\pgfpointanchor{current page text area}{south}}%
\global\vremaining=-\vremaining
\end{tikzpicture}%
\advance\vremaining by 0.6\baselineskip
\vspace*{-\baselineskip}\newline}% place above image
\begin{document}
Some text here
Some text here
Some text here
Some text here
\chapter{one}
\getremaining
\includegraphics[width=0.9\textwidth,height=\vremaining]{whatever}
\includegraphics[width=0.9\textwidth,height=.9\textwidth]{whatever}
\end{document}