LyX:缩进编号列表内的第一行

LyX:缩进编号列表内的第一行

我正在使用 LyX 回答作业中的问题。具体来说,我使用编号列表工具对我的答案进行编号。有些答案很长,跨越多个段落,因此我使用以下方法将多个段落放在一个编号项目中:

  1. 单击“编号列表”按钮。
  2. 首先输入段落。
  3. 按回车键开始新段落。这将自动开始新的编号项目。
  4. 输入第二段。
  5. 点击“编号列表”按钮旁边的“默认”按钮,或将类型更改为标准。这会从段落开头删除不需要的数字并缩进第一行,但整个段落与第一段不对齐。
  6. 按 T​​ab 键,或按 alt+shift+right,或单击“增加深度”按钮。这会将第二段与第一段对齐,但会删除第一行的缩进。

上述步骤的结果如下:

1. This is the first paragraph.
   This is the second paragraph,
   here it is wrapped around,
   and wrapped around some more.

我希望它看起来是这样的:

1. This is the first paragraph.
      This is the second paragraph,
   here it is wrapped around,
   and wrapped around some more.

我可以通过在每段新内容前按几次 ctrl+space 来达到预期的效果,但我希望有一种更好的(减少重复劳动)方法。这类似于这个问题,但我希望在列表内部缩进,而不是在列表之后。在发布时,另一个问题还没有可接受的解决方案。

请注意,此要求是自我强加的,纯粹是为了方便阅读。如能提出其他建议,我们将不胜感激!

编辑:tex 源,复制并粘贴:

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\begin{document}
\begin{enumerate}
\item This is a paragraph.


This is another paragraph.\end{enumerate}

\end{document}

通过 pdf-latex 运行得到原始结果,即没有第一行缩进。

答案1

\list在LaTeX的默认列表环境中,段落没有缩进。LaTeX 内核识别这一点:

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

因此,您要么必须通过包含的 ERT 手动插入它\hspace*{20pt}(其中20pt是默认值\parindent),要么“修复”\list以不通过将此值设置为零(\z@etoolbox修补:

\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\list}{\listparindent\z@}{\listparindent\parindent}{}{}
\makeatother

将以上内容包含在你的 LaTeX 序言中。

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum,etoolbox}% http://ctan.org/pkg/{lipsum,etoolbox}
\makeatletter
\patchcmd{\list}{\listparindent\z@}{\listparindent\parindent}{}{}
\makeatother
\begin{document}
\begin{enumerate}
  \item \lipsum[1-2]
\end{enumerate}

\end{document}

答案2

当您在 Lyx 中为普通文本设置段落分隔或缩进时,在不可编辑的序言中会写一些类似的内容:

\setlength{\parskip}{0ex}

或者

\setlength{\parindent}{1em}

在纯 LaTeX 中,您可以在环境中简单地插入类似的命令enumerate,但在第一项之前,以获得您想要的内容。

在 LyX 中这是不可能的,但您可以编辑序言来重新定义 enumerate环境以包括缩进、段落分隔或其他修改如颜色:

平均能量损失

\documentclass[a4paper]{article}
\usepackage[margin=2cm]{geometry} 
\usepackage{lipsum,xcolor}

% paragraph settings  

% redefined enumerate 
\let\oldenumerate\enumerate
\let\endoldenumerate\endenumerate
\renewenvironment{enumerate}
{\oldenumerate
\color{blue!50!black}
\setlength{\parskip}{1ex}
\setlength{\parindent}{3em}}
{\endoldenumerate}


\begin{document}
\lipsum[1]
\lipsum[2]
\begin{enumerate}
\item \lipsum[1]\lipsum[2]
\item \lipsum[3]
\end{enumerate}
\lipsum[1]
\lipsum[2]
\end{document}

相关内容