1

As a follow-up question to Wrap text around table in itemize environment, I'd like to contain an enumerate environment and a table inside another enumerate environment. Right now, the table appears outside all nested enumerate environments.

\documentclass[10pt, openany]{book}
\usepackage{enumitem, adjustbox, wrapfig, lipsum, enumitem}

\begin{document}
\begin{enumerate}
\item \lipsum[2]
\item \begin{adjustbox}{valign=T, raise=0pt, minipage={1.0\textwidth}}
    \begin{enumerate}
    \item \lipsum[2]
    \item \lipsum[2]
    \item \lipsum[2]
    \end{enumerate}
    \begin{wraptable}{r}{.1\textwidth}
        \begin{tabular}{|c|c|c|} \hline
            Sample Text & Sample Text & Sample Text\\ \hline
            Sample Text & Sample Text & Sample Text\\ \hline
            Sample Text & Sample Text & Sample Text\\ \hline
        \end{tabular}
    \end{wraptable}%
    \lipsum[2]
\end{adjustbox}
\item \lipsum[2]
\end{enumerate}
\end{document}

Result: enter image description here

Paul Kim
  • 1,078
  • 1
    Instead of trying the wrapfig approach, I'd go for the cutwin approach as wrapfig as never ment to work correctly when used inside of or even near of list environments. – leandriis Sep 28 '19 at 15:23

2 Answers2

3

With the basic settings taken from Ross' answer to the previous question, you can get the following result using the cutiwn package:

enter image description here

\documentclass[letterpaper,12pt,oneside]{article}
\usepackage{geometry}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{fontenc}
\usepackage{wrapfig}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{adjustbox}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{cutwin}


\begin{document}


\opencutright 
\renewcommand\windowpagestuff{% setup the image to be placed in the cutout
        \centering
        \begin{tabular}{l l}
            \hline
            Some random text & More random text\\
            Some random text & More random text\\
            \hline
        \end{tabular} 
}

\begin{enumerate}
\item \lipsum[2]
\item 
    \begin{enumerate}
    \item \begin{adjustbox}{valign=T, raise=0pt, minipage={1.0\linewidth}}
    \begin{cutout}{0}{0.40\linewidth}{0pt}{3}\lipsum[2]\end{cutout}\end{adjustbox} 
    \item \lipsum[2]
    \item \lipsum[2]
    \end{enumerate}
    \lipsum[2]
\item \lipsum[2]
\end{enumerate}
\end{document}
leandriis
  • 62,593
2

It is very simple to do with the plain TeX macro package insbox. It defines an \InsertBoxR command with two mandatory arguments: the number of lines unshortened before the box is inserted in the following paragraph and the box contents, and one (last) optional argument, the number of supplementary lines to shorten, in case TeX doesn't make a correct computation. In addition, as we are inside a list, we have to compensate for the list leftmargin, which is lost in the process. To do so, I added \leftmargini to \leftskip.

\documentclass[10pt, openany]{book}
\usepackage{enumitem, adjustbox, wrapfig, lipsum}
\usepackage[showframe]{geometry}
\usepackage{insbox}

\begin{document}

\begin{enumerate}
\item \lipsum[2]
\item
    \begin{enumerate}
    \item \lipsum[2]
    \item \lipsum[2]
    \item \lipsum[2]
    \end{enumerate}
\InsertBoxR{0}{
        \begin{tabular}{@{}|c|c|c|@{}} \hline
            Sample Text & Sample Text & Sample Text\\ \hline
            Sample Text & Sample Text & Sample Text\\ \hline
            Sample Text & Sample Text & Sample Text\\ \hline
        \end{tabular}}
\addtolength{\leftskip}{\leftmargini}
    \lipsum[2]
\item \lipsum[2-5]
\end{enumerate}

\end{document} 

enter image description here

Bernard
  • 271,350