我的 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
。
简而言之:您不能直接嵌套easylist
在adjustwidth
环境中,就像您不能在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}