使用 cutout 和 parshape 在枚举环境中将文本环绕在表格周围

使用 cutout 和 parshape 在枚举环境中将文本环绕在表格周围

我从以下网站借用了 MWE 的代码:这里。我想把表格放到右边,但很难理解命令。命令中parshape的 15 有什么用处。任何帮助都将不胜感激。谢谢26pt\linewidth 26pt\linewidth 0.5\linewidthparshape

\documentclass{article}
\usepackage{cutwin}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{booktabs}

\begin{document}

\renewcommand\windowpagestuff{%
  \hspace*{25pt}
\begin{tabular}{ccc}\\\toprule  
Header-1 & Header-1 & Header-1 \\\midrule
2 &3 & 5\\  \midrule
2 &3 & 5\\  \midrule
2 &3 & 5\\  \bottomrule
\end{tabular}
}

\opencutleft

\begin{cutout}{3}{10pt}{0.5\linewidth}{12}
\begin{enumerate}
{%
\parshape 15 26pt\linewidth 26pt\linewidth 0.5\linewidth 0.5\linewidth
  0.5\linewidth 0.5\linewidth  0.5\linewidth 0.5\linewidth  0.5\linewidth    0.5\linewidth
  0.5\linewidth 0.5\linewidth  0.5\linewidth 0.5\linewidth  0.5\linewidth    0.5\linewidth 
  0.5\linewidth 0.5\linewidth  0.5\linewidth 0.5\linewidth  0.5\linewidth    0.5\linewidth
  0.5\linewidth 0.5\linewidth  0.5\linewidth 0.5\linewidth  26pt\linewidth

\item \lipsum[1]

}%

\item \lipsum[2]
\item \lipsum[3]

\end{enumerate}

\end{cutout}

\end{document}

答案1

我有另一种解决方案,可以在列表环境中包装图形或表格。它依赖于insbox.tex通用宏文件。在此文件的基础上,我构建了两个命令,\InsertListL它们\ InsertListR接受两个强制参数和一个可选参数,并在列表环境中插入任何(嗯,大多数)框。

论点如下:

  • 未缩进的行数(强制)
  • 需要包装的盒子(强制性……)
  • 需要缩进的补充行数,用于更正(可选)

它工作得很好,除了first插入的框与标签重叠。因此,我以 \item 命令补丁的形式定义了一种解决方法,称为wrapitem

要插入框,必须使用immediately after\item 命令插入命令。您不能使用标题,并且每个项目段落不能超过 1 个框 — 这似乎是合理的。

    \documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage{lipsum}
    \usepackage{booktabs}
    \input{insbox}
    \makeatletter
    \@InsertBoxMargin = 12pt
    \makeatother
    \usepackage{nccmath}
    \usepackage[showframe, nomarginpar]{geometry}
    \usepackage{etoolbox}

    \newcommand*{\wrapitem}{\apptocmd{\labelenumi}{\hskip\leftmargin}{}{}\item\apptocmd{\labelenumi}{\hskip-\leftmargin}{}{}}
    %
    \newcommand{\InsertListL}[3][]{%
    \setlength{\leftskip}{\leftmargin}\mbox{}\vspace*{-\baselineskip}%
    \InsertBoxL{#2}{#3}[#1]\par \hspace{\itemindent}
    }%
    \newcommand{\InsertListR}[3][]{%
    \mbox{}\vspace*{-\baselineskip}\setlength{\leftskip}{\leftmargin}%
    \InsertBoxR{#2}{\hskip-\leftmargin#3\hskip\leftmargin}[#1]
    }%

    \begin{document}

    \newcommand\windowpagestuff{%
    \setlength\fboxsep{3pt}
    \begin{tabular}{ccc}
    \toprule
    Header-1 & Header-1 & Header-1 \\
    \midrule
    2 &3 & 5\\
    \midrule
    2 &3 & 5\\
    \midrule
    2 &3 & 5\\
    \bottomrule
    \end{tabular}
    }

    \begin{enumerate}%

    \wrapitem%
    \InsertListL[2]{2}{\windowpagestuff}%
    \lipsum[1]

     \item
    \InsertListR[2]{0}{\windowpagestuff}
    \lipsum[2]

    \InsertListR{3}{\parbox{5cm}{
        \[ (a + b^{2} = a^{2} + 2ab + b^{2} ) \] }}%
    \lipsum[3]

    \end{enumerate}

    \end{document} 

在此处输入图片描述

相关内容