LaTeX'te wrapfig resimlerinin işlenmesi

Resimlerin bu davranışını önlemenin bir yolu var mı?

Bu, resmi tamamlıyor:

\begin{wrapfigure}{r}{0.5\textwidth} 
\vspace{-20pt}
  \begin{center}
    \includegraphics[width=0.4\textwidth]{./pictures/DBuserTabel.png}%{./Pictures/mainscreen1.png}
    \caption{Uklip af User tablen i Databasen}
    \label{fig:databaseUserTable}
  \end{center}
  \vspace{-20pt}
  \vspace{1pt}
\end{wrapfigure} 
Çözüm

Tanımladığınız davranış, aşağıdaki örnekte gösterildiği gibi, wrapfig ortamının bir sayfa sonuna çok yakın kullanılmasından kaynaklanmaktadır:

\documentclass{article}
\usepackage{wrapfig}
\usepackage{lipsum}

\begin{document}

\lipsum[1-4]
\begin{wrapfigure}{r}{5cm}
\centering
\rule{3cm}{7cm}
\end{wrapfigure}
\lipsum[1-6]

\end{document}

wrapfig` paket dokümantasyonu bu konuda açıkça uyarıda bulunmaktadır:

Ortam, sayfa sonunun üzerinden geçmeyecek şekilde yerleştirilmelidir

bu nedenle, wrapfig ortamınızı bir sayfa sonu üzerinde çalışmayacağını garanti etmek için taşımanız gerekir. Bununla birlikte, r (veya l) yerine R (veya L) kullandığınızda şekliniz kayacaktır, bu nedenle yukarıdaki kodda r ifadesini R olarak değiştirmeniz yeterlidir

\documentclass{article}
\usepackage{wrapfig}
\usepackage{lipsum}

\begin{document}

\lipsum[1-4]
\begin{wrapfigure}{R}{5cm}
\centering
\rule{3cm}{7cm}
\end{wrapfigure}
\lipsum[1-6]

\end{document}

şimdi verir:

Yorumlar (6)

Kabul edilen yanıt]1 bir yöntem sunmaktadır (şekli yüzer hale getirin). İhtiyacınız olan tek şey sonraki sayfadaki beyaz kutuyu kaldırmaksa, sadece negatif boşluk ekleyebilirsiniz. Gonzalo Medina'nın örneğini uyarlıyorum:

\documentclass{article}
\usepackage{wrapfig}
\usepackage{lipsum}

\begin{document}

\lipsum[1-4]
\begin{wrapfigure}{r}{5cm}
  \centering
  \rule{3cm}{7cm}
  \vspace{-110pt} % This removes the white box on the second page
\end{wrapfigure}
\lipsum[1-6]

\end{document}

Alternatif olarak, wrapfigureun kapladığı ilk sayfadaki satır sayısını sayabilir ve bu sayıyı wrapfigureun ilk isteğe bağlı parametresine ekleyebilirsiniz:

\documentclass{article}
\usepackage{wrapfig}
\usepackage{lipsum}

\begin{document}

\lipsum[1-4]
\begin{wrapfigure}[10]{r}{5cm}
%                  ^^ This dictates the number
%                   of text rows the wrapfigure
%                   will occupy.
  \centering
  \rule{3cm}{7cm}
  \vspace{-110pt}
\end{wrapfigure}
\lipsum[1-6]

\end{document}

Bu yöntemlerin her ikisi de aşağıdaki çıktıyla sonuçlanır:

Yorumlar (5)

Eğer kaymayan wrapfig ortamları istiyorsanız ancak rakamların sayfanın altından taşmasını istemiyorsanız, bu bazen paragrafın başlangıcından önce bir sayfa sonu yapmanız gerektiği anlamına gelir. Bunu, şekil içeriğini bir kaydetme kutusunda saklayan, kutunun yüksekliğini test eden ve ardından gerekirse bir sayfa sonu zorlayan bir komut tanımlayarak (giriş bölümünde) otomatik olarak yapabilirsiniz. Aşağıdaki örneğe bakın:

\documentclass{article}
\usepackage{wrapfig}
\usepackage{lipsum}

\newsavebox\curwrapfig
\makeatletter
\long\def\wrapfiguresafe#1#2#3{%
  \sbox\curwrapfig{#3}%
  \par\penalty-100%
  \begingroup % preserve \dimen@
    \dimen@\pagegoal \advance\dimen@-\pagetotal % space left
    \advance\dimen@-\baselineskip % allow an extra line
    \ifdim \ht\curwrapfig>\dimen@ % not enough space left
      \break%
    \fi%
  \endgroup%
  \begin{wrapfigure}{#1}{#2}%
    \usebox\curwrapfig%
  \end{wrapfigure}%
}
\makeatother

\begin{document}
\lipsum[1-4]
\wrapfiguresafe{r}{0mm}{\centering\rule{3cm}{7cm}}
\lipsum[1-6]
\end{document}

bu da aşağıdaki çıktıyı üretir:

Rakamlarınız uzunsa, bunun kısa sayfalarda çok kötü sayfa sonlarına neden olabileceği ve/veya ayarlarınıza bağlı olarak yetersiz vbox uyarılarına neden olabileceği konusunda uyarılmalıdır.

Yorumlar (0)