没有标签和缩进的列表

没有标签和缩进的列表

我尝试创建一个没有标签和缩进的列表 - 与前面的文本对齐到相同的左边距。为什么这不起作用?:

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\noindent No indentation --- before the \verb|list|.
\begin{list}{}{}
\setlength{\leftmargin}{0pt}
\setlength{\labelwidth}{0pt}
\setlength{\labelsep}{0pt}
\item \lipsum[2]
\end{list}
\end{document}

答案1

如果您在第二个参数中设置长度参数,它就会起作用\begin{list}

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\noindent No indentation --- before the \verb|list|.
\begin{list}{}{%
  \setlength{\leftmargin}{0pt}%
  \setlength{\labelwidth}{0pt}%
  \setlength{\labelsep}{0pt}%
}
\item \lipsum[2]
\end{list}
\end{document}

你也可以使用trivlist环境。引用 Lamport 的话,LaTeX:文档准备系统,第 115 页:

trivlist环境是环境的受限形式,list 其中边距不缩进,\item没有可选参数的命令不产生文本。该环境没有参数,非常类似于list第二个参数将\leftmargin\rightmargin\labelwidth\itemindent的长度设置为零的环境。

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\noindent No indentation --- before the \verb|list|.
\begin{trivlist}
\item \lipsum[2]
\end{trivlist}
\end{document}

答案2

这是对lockstep答案的补充。

执行长度修改时,列表参数已使用 TeX\parshape基元设置。对于整形属性,您需要使用第二个参数,\begin{list}{#1}{#2}因为它是在设置list形状之前插入的:

\def\list#1#2{%
  \ifnum \@listdepth >5\relax
    \@toodeep
  \else
    \global\advance\@listdepth\@ne
  \fi
  \rightmargin\z@
  \listparindent\z@
  \itemindent\z@
  \csname @list\romannumeral\the\@listdepth\endcsname
  \def\@itemlabel{#1}%
  \let\makelabel\@mklab
  \@nmbrlistfalse
  #2\relax %                       <---- #2 is inserted here
  \@trivlist
  \parskip\parsep
  \parindent\listparindent
  \advance\linewidth -\rightmargin
  \advance\linewidth -\leftmargin
  \advance\@totalleftmargin \leftmargin
  \parshape \@ne \@totalleftmargin \linewidth % <---- this sets the paragraph shape
  \ignorespaces}

知道 的list缩进为\@totalleftmargin,即\advance\leftmargin也可以设置\@totalleftmargin-\leftmargin

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\noindent No indentation --- before the \verb|list|.
\begin{list}{}{}
  \makeatletter
  \setlength{\leftskip}{-\@totalleftmargin}
  \makeatother
  \item \lipsum[2]
  \item \lipsum[1]
\end{list}
\end{document}​

相关内容