![Coloque un grupo de texto e imagen en la misma página PDF exportada](https://rvso.com/image/254697/Coloque%20un%20grupo%20de%20texto%20e%20imagen%20en%20la%20misma%20p%C3%A1gina%20PDF%20exportada.png)
Soy nuevo en Tex y esta pregunta tal vez no esté bien escrita, así que intentaré explicarla mejor.
Estoy escribiendo un manual de referencia donde hay muchos "bloques" que tienen todos la misma estructura: un fragmento de texto (tal vez uno o dos párrafos cortos) y luego una imagen (normalmente una captura de pantalla).
Me gustaría poder definir dicho bloque de manera que, al exportar un documento a PDF, el resultado esté en la misma página. Entiendo que habrá algunas páginas medio llenas cuando comience este "bloque" y no caben en la página actual. En estos casos, espero que el bloque se coloque por completo en la página siguiente.
He estado jugando con \begin{samepage}
, \begin{minipage}
y cosas así (buscando mucho en esta misma web) sin suerte. Obviamente estoy haciendo algo mal o estoy adoptando un mal enfoque para resolver el problema.
Echa un vistazo a mi 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}
Me gustaría que todo este texto (2 párrafos) y una figura estuvieran siempre en la misma página.
¿Se puede lograr esto? De hecho, ¡pensé que lo había conseguido cuando lo descubrí \begin{minipage}
! Si este es el caso, ¿podrías escribir un código corto que muestre cómo usarlo? (recuerden que soy novato y algunas cosas obvias no lo son tanto para mí ahora mismo).
Editar:Probaré el consejo de @Werner, pero ya estoy usando un \newcommand para acortar todo el entorno \begin{figure} escrito previamente. Como esto:
\newcommand{\figureSF}[4]{
\begin{figure}[h]
\begin{center} \includegraphics[scale={#4}]{#1} \end{center}
\caption{#2}
\label{#3}
\end{figure}
}
Entonces el fragmento de código anterior se convierte en:
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 nuevo comando acepta solo 4 parámetros, ¿existe una manera fácil de modificarlo para manejar la situación que estás describiendo?
Respuesta1
Parece que estás escribiendo un montón de texto y luego, en el medio, hay estos "bloques" que quieres que se "mantengan juntos". Para esto, dado que actualmente ya usas un figure
entorno para la imagen, puedes incluir el texto del párrafo dentro de tu archivo figure
. A TeX no le importa lo que contiene el entorno: podría ser una tabla, una imagen, algún texto, lo que sea. He aquí un pequeño ejemplo:
\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}
Agregué un \hrulefill
"bloque" flotante arriba y debajo para dejar en claro que el contenido del texto flota con la imagen. Además, la [demo]
opción degraphicx
es solo para este ejemplo ya que no tengo las imágenes que mencionas/usas.
Tenga en cuenta que todas las restricciones (¡y beneficios!) relacionadas con la flotación pertenecen a este uso. Por ejemplo, la porción de texto/flotante permitida en la parte superior/inferior de una página, etc. Más información sobre esto está disponible enlayouts
paquete documentación(sección6 diseños flotantes, pág. 21).
En cuanto a la ubicación de la figura, consulte¿Cómo influir en la posición de entornos flotantes como figuras y tablas en LaTeX?(yMantener tablas/figuras cerca de donde se mencionan.).
También es posible agrupar esto en un solo 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}