Lists (itemize, enumerate) without \parshape

AFAIU (reading ltlists.dtx), lists (itemize, enumerate) in LaTeX rely on \parshape. Is there an other way to get the same result without \parshape.

Motivation: wrapfigure and list environments badly interact together because both use \parshape AFAIU, so I'm looking for a replacement. I could use two minipages but I'd like to know if something else is possible.

• To a certain extent you can emulate them with \leftskip – egreg Nov 22 '13 at 15:05
• I can't show you a 'released code' approach, but with the mechanisms in l3galley it's possible to decouple paragraph shape from lists (or other 'running' shapings) in a natural way. That's done not by using a different TeX primitive (not available!) but instead by building data structures which abstract the different concepts. – Joseph Wright Jan 11 '14 at 18:53
• @JosephWright You mean I won't use wrapfig with those mechanisms? – cjorssen Jan 11 '14 at 22:25
• @JosephWright: Is there released code now that can be used? – Peter Grill Sep 14 '18 at 22:25

Package enumitem has a diagram (must-see) in its documentation that shows all the margins defined for list environments, and allows you to redefine any of them. One of the most basic ways to redefine is

\usepackage{enumitem}

% \setlist[enumerate]{left= <labelindent> .. <leftmargin>]
%%% OR to set locally: %%%
% \begin{enumerate}[left= <labelindent> .. <leftmargin>]
% ...
% \end{enumerate}

%so for example

• enumitem relies on \parshape, too. – Javier Bezos Jul 22 at 14:47