Easylist 里面的 adjustwidth

Easylist 里面的 adjustwidth

我的 MWE:

\documentclass{article}
\usepackage{xcolor,amssymb}
\usepackage[ampersand]{easylist}
\usepackage{changepage}
\usepackage{etoolbox}
\usepackage{lipsum}

\begin{document}
\begin{adjustwidth}{2cm}{}
    \lipsum[1]
    \begin{easylist}
          \ListProperties(Hide=100,Progressive=1cm,
              Style1*=\textbullet,
              Style2*=$\ast$,
              Style3*=$\square$,
              Style4*=$\square$)
          & First thingy   
          && Second thingy  
          &&& Third thingy
          &&&& Fourth thingy  
    \end{easylist}
    \lipsum[1]   
\end{adjustwidth} 
\end{document}

在此处输入图片描述

我使用adjustwidth内部命令来控制整个文档,因为我需要缩进 2cm。但是当我使用easylist内部命令时adjustwidth,没有渐进功能。命令\begin{itemize} ; \end{itemize}在内部命令中运行良好,adjustwidth但它太复杂了,因为在很多情况下我需要从不同的项目符号级别跳转,然后使用起来更容易easylist

在此处输入图片描述

答案1

环境adjustwidth通过 定义list,在内部使用原始\parshape。另一方面,easylist依赖于原始\hangindent\hangafter

如果在 TeX 完成一个段落时发现并发的非零\parshape\hangindent\hangafter声明,则前者获胜,这就是为什么 中的所有项目都会左对齐easylist

简而言之:您不能直接嵌套easylistadjustwidth环境中,就像您不能在enumerate或中一样itemize

您可以使用minipage(但不允许分页符):

\documentclass{article}
\usepackage{amssymb}
\usepackage[ampersand]{easylist}
\usepackage{changepage}
\usepackage{lipsum}

\begin{document}
\begin{adjustwidth}{2cm}{}
\lipsum[1]
\noindent\begin{minipage}[t]{\linewidth}
    \begin{easylist}
          \ListProperties(Hide=100,Progressive=1cm,
              Style1*=\textbullet,
              Style2*=$\ast$,
              Style3*=$\square$,
              Style4*=$\square$)
          & First thingy
          && Second thingy
          &&& Third thingy
          &&&& Fourth thingy
    \end{easylist}\xdef\tpd{\the\prevdepth}
\end{minipage}\par\prevdepth\tpd
    \lipsum[1]
\end{adjustwidth}
\end{document}

在此处输入图片描述

只要付出一些努力,minipage就不需要分页了。

\documentclass{article}
\usepackage{amssymb}
\usepackage[ampersand]{easylist}
\usepackage{changepage}
\usepackage{lipsum}

\makeatletter
\newbox\Easylist@box
\newenvironment{Easylist}
 {\par\xdef\Easylist@tpd{\the\prevdepth}%
  \setbox\Easylist@box=\vbox\bgroup
  \dimen@=\@totalleftmargin
  \@parboxrestore
  \leftskip=\dimen@
  \prevdepth\Easylist@tpd
  \begin{easylist}}
 {\end{easylist}\xdef\Easylist@tpd{\the\prevdepth}\egroup
  \unvbox\Easylist@box\par\prevdepth\Easylist@tpd}
\makeatother

\begin{document}
\begin{adjustwidth}{2cm}{}
\lipsum[1]
    \begin{Easylist}
          \ListProperties(Hide=100,Progressive=1cm,
              Style1*=\textbullet,
              Style2*=$\ast$,
              Style3*=$\square$,
              Style4*=$\square$)
          & First thingy   
          && Second thingy  
          &&& Third thingy
          &&&& Fourth thingy  
    \end{Easylist}
    \lipsum[1]   
\end{adjustwidth} 
\end{document}

相关内容