Coloque um grupo de texto e imagem na mesma página PDF exportada

Coloque um grupo de texto e imagem na mesma página PDF exportada

Sou novo no Tex e esta pergunta talvez não esteja bem escrita, então tentarei explicá-la melhor.

Estou escrevendo um manual de referência onde existem muitos "blocos" que têm a mesma estrutura: um pedaço de texto (talvez um ou dois parágrafos curtos) e depois uma imagem (normalmente uma captura de tela).

Gostaria de poder definir tal bloco de forma que, ao exportar um documento para PDF, a saída fique na mesma página. Entendo que haverá algumas páginas meio preenchidas quando esse "bloco" começar e não caber na página atual. Nestes casos, espero que o bloco seja colocado inteiramente na próxima página.

Tenho brincado com \begin{samepage}, \begin{minipage}e coisas assim (pesquisando muito nesta mesma web) sem sorte. Obviamente estou fazendo algo errado ou adotando uma abordagem errada para resolver o problema.

Dê uma olhada no meu código:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Phasellus leo ipsum, dictum non auctor quis, euismod vitae enim. Mauris varius.

\begin{figure}[h]
  \begin{center} \includegraphics[scale={0.7}]{IMG1} \end{center}
  \caption{Image caption}
  \label{fig:IMG1}
\end{figure}

Gostaria que todo esse texto (2 parágrafos) e uma figura estivessem sempre na mesma página.

Isso pode ser alcançado? Na verdade, pensei que tinha conseguido quando descobri \begin{minipage}! Se for esse o caso, você pode escrever um pequeno código mostrando como usá-lo? (lembre-se que sou um novato e algumas coisas óbvias não são tão óbvias para mim agora).

Editar:Vou tentar a dica do @Werner, mas já estou usando um \newcommand para encurtar todo o ambiente \begin{figure} escrito anteriormente. Como isto:

\newcommand{\figureSF}[4]{
  \begin{figure}[h]
    \begin{center} \includegraphics[scale={#4}]{#1} \end{center}
    \caption{#2}
\label{#3}
\end{figure}
}

Portanto, o trecho de código anterior se transforma em:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Phasellus leo ipsum, dictum non auctor quis, euismod vitae enim. Mauris varius.

\figureSF{IMG1}{Image caption}{fig:IMG1}{0.7}

Como este novo comando aceita apenas 4 parâmetros, existe uma maneira fácil de modificá-lo para lidar com a situação que você está descrevendo?

Responder1

Parece que você está escrevendo um monte de texto e, no meio, existem esses "blocos" que você deseja que sejam "mantidos juntos". Para isso, visto que atualmente você já utiliza um figureambiente para a imagem, você pode incluir o texto do parágrafo dentro do seu arquivo figure. O TeX não se importa com o que está contido no ambiente - pode ser uma tabela, uma imagem, algum texto, o que for. Aqui está um pequeno exemplo:

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage[demo]{graphicx}% http://ctan.org/pkg/graphicx
\begin{document}
\lipsum[1-2]
\begin{figure}
  \hrulefill\par
  \lipsum[3-4]
  \centering\includegraphics[scale={0.7}]{IMG1}
  \caption{Some caption}\label{fig:label1}
  \hrulefill
\end{figure}
\lipsum[5-6]
\lipsum[7-8]
\begin{figure}
  \hrulefill\par
  \lipsum[9-10]
  \centering\includegraphics[scale={0.7}]{IMG2}
  \caption{Some other caption}\label{fig:label2}
  \hrulefill
\end{figure}
\lipsum[11-12]
\end{document}​

Adicionei um \hrulefill"bloco" acima e abaixo do flutuante para deixar claro que o conteúdo do texto flutua com a imagem. Além disso, a [demo]opção degraphicxé apenas para este exemplo, pois não tenho as imagens que você menciona/usa.

Observe que todas as restrições (e benefícios!) relacionadas ao float referem-se a esse uso. Por exemplo, a parte de texto/flutuante permitida na parte superior/inferior de uma página, etc.layoutspacote documentação(seção6 layouts flutuantes, pág. 21).

Em termos de posicionamento da figura, consulteComo influenciar a posição de ambientes flutuantes como figura e tabela no LaTeX?(eManter tabelas/figuras próximas de onde são mencionadas).

Também é possível agrupar isso em um único comando:

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage[demo]{graphicx}% http://ctan.org/pkg/graphicx
\newcommand{\figureSF}[5]{%
  \begin{figure}[ht]
    \hrulefill\par
    #1\par\bigskip
    \centering\includegraphics[scale=#5]{#2}
    \caption{#3}\label{#4}
    \hrulefill
  \end{figure}
}
\begin{document}
\lipsum[1-2]
\figureSF{\lipsum[3-4]}{IMG1}{Some caption}{fig:label1}{0.7}
\lipsum[5-6]
\lipsum[7-8]
\figureSF{\lipsum[9-10]}{IMG2}{Some other caption}{fig:label2}{0.7}
\lipsum[11-12]
\end{document}​

informação relacionada