在分页符附近的子部分之后换行

在分页符附近的子部分之后换行

我知道 wrapfig 在页面底部附近的图像方面存在问题,但我想知道是否有解决方案(即使使用不同的包,例如使用 minipages)。这是我的 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{wrapfig}
\usepackage{graphicx}
\usepackage[margin=1in]{geometry}
\usepackage{lipsum}

\begin{document}

\lipsum[1-5]

\section{Tipos de virtualización} \label{tiposvirt}

Una vez definida qué es la virtualización, podemos analizar los distintos tipos que existen, en qué se diferencian unos de otros y en qué situaciones puede ser más ventajoso optar por cada uno de ellos:

\subsection{Virtualización completa}

\begin{wrapfigure}{R}{0pt}
\centering
\includegraphics[width=0.5\textwidth]{fullVirtualization.jpg}
\caption[Funcionamiento de la virtualización completa con soporte de hardware]{Funcionamiento de la virtualización completa con soporte de hardware. Obtenido de}\label{fullvirtualization}
\end{wrapfigure}

Esta técnica de virtualización simula completamente el \textit{hardware} subyacente, de manera que los entornos virtualizados, también conocidos como máquinas virtuales, no tienen constancia de que están siendo ejecutados sobre una máquina anfitrión. En sus comienzos, esta tecnología utilizaba una doble táctica para ejecutar las instrucciones del sistema operativo invitado: las instrucciones no virtualizables eran traducidas por el hipervisor mediante un procedimiento conocido como traducción binaria, mientras que las instrucciones del espacio de usuario se ejecutaban directamente sobre el procesador. Sin embargo, gracias a la aparición de las adaptaciones \textit{hardware} de Intel y AMD mencionadas anteriormente (y obviando el caso del IBM System/370, que en 1972 ya se encontraba adaptado para la virtualización del CP/CMS), la traducción binaria fue reemplazada por un nuevo modo de ejecución en la CPU, de tal forma que aquellas instrucciones privilegiadas son capturadas directamente por el hipervisor, mejorando así el rendimiento. En la figura \ref{fullvirtualization} podemos ver un esquema que muestra el funcionamiento de la virtualización completa asistida por \textit{hardware}. Esta técnica de virtualización es empleada por la mayoría de aplicaciones de VMWare o por KVM, por ejemplo.

\subsection{Paravirtualización}

\begin{wrapfigure}{L}{0pt}
\centering
\includegraphics[width=0.5\textwidth]{paravirtualization.jpg}
\caption[Funcionamiento de la paravirtualización]{Funcionamiento de la paravirtualización. Obtenido de}\label{paravirtualization}
\end{wrapfigure}

En este caso, las instrucciones no virtualizables se reemplazan por \textit{hypercalls}, permitiendo la comunicación directa del sistema operativo invitado con el hipervisor, lo que mejora el rendimiento en algunas ocasiones. La figura \ref{paravirtualization} presenta cómo funciona la paravirtualización. Para poder emplear esta técnica, el núcleo del sistema operativo debe estar adaptado para la paravirtualización. En sus primeras etapas, esto suponía una importante limitación debido a que exigía que existiera una versión del \textit{kernel} para cada hipervisor; no obstante, esto fue solventado en la versión 2.6.23 del núcleo de Linux gracias a la aparición de \texttt{paravirt-ops}, posibilitando que el mismo \textit{kernel} pudiera ser ejecutado en cualquier hipervisor que admitiese paravirtualización así como en \textit{bare metal} sin realizar ninguna modificación adicional. En el caso de Windows, no es posible utilizarlo como sistema operativo invitado debido a que no soporta la paravirtualización. Xen es el hipervisor más popular que utiliza exclusivamente esta tecnología. Además, algunos hipervisores de virtualización completa como VirtualBox, Hyper-V o VMWare Workstation habilitan la paravirtualización parcialmente para la realización de tareas específicas, obteniendo las ventajas de ambos enfoques.

\end{document}

以下是其屏幕截图:

图片未换行

基本上,我希望第一张图片出现在 1.1 小节的文本旁边。现在,我收到以下警告:Package wrapfig Warning: Collision between wrapping environments on input line 28。如果我使用r而不是R,它会起作用,但标题不符合边距并且会溢出。

提前致谢!

答案1

我开始做平行线解法,但最后发现最好的解法是将两个图形并排放置。一般情况下情况并非如此,但你不能指望软件能做所有事情。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{paracol}
\globalcounter*
\usepackage[draft]{graphicx}
\usepackage[margin=1in]{geometry}
\usepackage{lipsum}

\begin{document}

\lipsum[1-5]

\section{Tipos de virtualización} \label{tiposvirt}

Una vez definida qué es la virtualización, podemos analizar los distintos tipos que existen, en qué se diferencian unos de otros y en qué situaciones puede ser más ventajoso optar por cada uno de ellos:

\subsection{Virtualización completa}

Esta técnica de virtualización simula completamente el \textit{hardware} subyacente, de manera que los entornos virtualizados, también conocidos como máquinas virtuales, no tienen constancia de que están siendo ejecutados sobre una máquina anfitrión. En sus comienzos, esta tecnología utilizaba una doble táctica para ejecutar las instrucciones del sistema operativo invitado: las instrucciones no virtualizables eran traducidas por el hipervisor mediante un procedimiento conocido como traducción binaria, mientras que las instrucciones del espacio de usuario se ejecutaban directamente sobre el procesador. Sin embargo, gracias a la aparición de las adaptaciones \textit{hardware} de Intel y AMD mencionadas anteriormente (y obviando el caso del IBM System/370, que en 1972 ya se encontraba adaptado para la virtualización del CP/CMS), la traducción binaria fue reemplazada por un nuevo modo de ejecución en la CPU, de tal forma que aquellas instrucciones privilegiadas son capturadas directamente por el hipervisor, mejorando así el rendimiento. En la figura \ref{fullvirtualization} podemos ver un esquema que muestra el funcionamiento de la virtualización completa asistida por \textit{hardware}. Esta técnica de virtualización es empleada por la mayoría de aplicaciones de VMWare o por KVM, por ejemplo.

\begin{figure}[ht]
\begin{minipage}[t]{\dimexpr 0.5\textwidth-0.5\columnsep}
\includegraphics[width=\linewidth]{fullVirtualization.jpg}
\caption[Funcionamiento de la virtualización completa con soporte de hardware]{Funcionamiento de la virtualización completa con soporte de hardware. Obtenido de}\label{fullvirtualization}
\end{minipage}\hfill
\begin{minipage}[t]{\dimexpr 0.5\textwidth-0.5\columnsep}
\includegraphics[width=\linewidth]{paravirtualization.jpg}
\caption[Funcionamiento de la paravirtualización]{Funcionamiento de la paravirtualización. Obtenido de}\label{paravirtualization}
\end{minipage}
\end{figure}

\subsection{Paravirtualización}

En este caso, las instrucciones no virtualizables se reemplazan por \textit{hypercalls}, permitiendo la comunicación directa del sistema operativo invitado con el hipervisor, lo que mejora el rendimiento en algunas ocasiones. La figura \ref{paravirtualization} presenta cómo funciona la paravirtualización. Para poder emplear esta técnica, el núcleo del sistema operativo debe estar adaptado para la paravirtualización. En sus primeras etapas, esto suponía una importante limitación debido a que exigía que existiera una versión del \textit{kernel} para cada hipervisor; no obstante, esto fue solventado en la versión 2.6.23 del núcleo de Linux gracias a la aparición de \texttt{paravirt-ops}, posibilitando que el mismo \textit{kernel} pudiera ser ejecutado en cualquier hipervisor que admitiese paravirtualización así como en \textit{bare metal} sin realizar ninguna modificación adicional. En el caso de Windows, no es posible utilizarlo como sistema operativo invitado debido a que no soporta la paravirtualización. Xen es el hipervisor más popular que utiliza exclusivamente esta tecnología. Además, algunos hipervisores de virtualización completa como VirtualBox, Hyper-V o VMWare Workstation habilitan la paravirtualización parcialmente para la realización de tareas específicas, obteniendo las ventajas de ambos enfoques. 

\end{document}

另一个可能的解决方案是缩小第一张图片,直到它适合整个页面。这需要反复尝试。请注意,标题宽度需要保持较大。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{wrapfig}
\usepackage{graphicx}
\usepackage[margin=1in]{geometry}
\usepackage{lipsum}

\begin{document}

\lipsum[1-5]

\section{Tipos de virtualización} \label{tiposvirt}

Una vez definida qué es la virtualización, podemos analizar los distintos tipos que existen, en qué se diferencian unos de otros y en qué situaciones puede ser más ventajoso optar por cada uno de ellos:

\subsection{Virtualización completa}

\begin{wrapfigure}[11]{r}{0.5\textwidth}
\vspace*{-26pt}
\centering
\includegraphics[width=0.3\textwidth]{example-image-a}
\caption[Funcionamiento de la virtualización completa con soporte de hardware]{Funcionamiento de la virtualización completa con soporte de hardware. Obtenido de}\label{fullvirtualization}
\end{wrapfigure}

Esta técnica de virtualización simula completamente el \textit{hardware} subyacente, de manera que los entornos virtualizados, también conocidos como máquinas virtuales, no tienen constancia de que están siendo ejecutados sobre una máquina anfitrión. En sus comienzos, esta tecnología utilizaba una doble táctica para ejecutar las instrucciones del sistema operativo invitado: las instrucciones no virtualizables eran traducidas por el hipervisor mediante un procedimiento conocido como traducción binaria, mientras que las instrucciones del espacio de usuario se ejecutaban directamente sobre el procesador. Sin embargo, gracias a la aparición de las adaptaciones \textit{hardware} de Intel y AMD mencionadas anteriormente (y obviando el caso del IBM System/370, que en 1972 ya se encontraba adaptado para la virtualización del CP/CMS), la traducción binaria fue reemplazada por un nuevo modo de ejecución en la CPU, de tal forma que aquellas instrucciones privilegiadas son capturadas directamente por el hipervisor, mejorando así el rendimiento. En la figura \ref{fullvirtualization} podemos ver un esquema que muestra el funcionamiento de la virtualización completa asistida por \textit{hardware}. Esta técnica de virtualización es empleada por la mayoría de aplicaciones de VMWare o por KVM, por ejemplo.

\subsection{Paravirtualización}

\begin{wrapfigure}{L}{0pt}
\centering
\includegraphics[width=0.5\textwidth]{example-image-b}
\caption[Funcionamiento de la paravirtualización]{Funcionamiento de la paravirtualización. Obtenido de}\label{paravirtualization}
\end{wrapfigure}

En este caso, las instrucciones no virtualizables se reemplazan por \textit{hypercalls}, permitiendo la comunicación directa del sistema operativo invitado con el hipervisor, lo que mejora el rendimiento en algunas ocasiones. La figura \ref{paravirtualization} presenta cómo funciona la paravirtualización. Para poder emplear esta técnica, el núcleo del sistema operativo debe estar adaptado para la paravirtualización. En sus primeras etapas, esto suponía una importante limitación debido a que exigía que existiera una versión del \textit{kernel} para cada hipervisor; no obstante, esto fue solventado en la versión 2.6.23 del núcleo de Linux gracias a la aparición de \texttt{paravirt-ops}, posibilitando que el mismo \textit{kernel} pudiera ser ejecutado en cualquier hipervisor que admitiese paravirtualización así como en \textit{bare metal} sin realizar ninguna modificación adicional. En el caso de Windows, no es posible utilizarlo como sistema operativo invitado debido a que no soporta la paravirtualización. Xen es el hipervisor más popular que utiliza exclusivamente esta tecnología. Además, algunos hipervisores de virtualización completa como VirtualBox, Hyper-V o VMWare Workstation habilitan la paravirtualización parcialmente para la realización de tareas específicas, obteniendo las ventajas de ambos enfoques.

\end{document}

相关内容