我有一个 itemize 环境,用于在图中描述算法或过程。我想包含行号,所有行号都对齐在图形的最左侧,以便我可以引用图中的 x 行和 y 行(在文本本身中)。我认为可以使用包来实现这一点lineno
,但它似乎为整个文档添加了行。
有没有办法将其本地化并说成是类似这样:
\begin{locallineno}
some text with line numbers
\end{locallineno}
另外,我宁愿空行(空白行)不被编号,但这似乎在 中得到了很好的处理lineno
。
编辑:例如,我可以拥有以下环境:
\begin{locallineno}
\begin{itemize}
\item First clean the dishes.
\item Now fill the tea pot with water.
\begin{itemize}
\item First open the tea pot.
\item Turn on the tap
\end{itemize}
\end{itemize}
\end{locallineno}
我希望每个项目符号左侧都有行号。
答案1
通过该lineno
包,您可以使用linenumbers
环境在本地启用编号:
如果需要,您还可以使用\nolinenumbers
来禁用嵌套编号:itemize
代码:使用linenumbers
环境
\documentclass[10pt,a4paper]{article}
\usepackage{lipsum}
\usepackage{lineno}
\begin{document}
\lipsum[1]
\begin{linenumbers}
\begin{itemize}
\item First clean the dishes.
\item Now fill the tea pot with water.
\begin{itemize}
\item First open the tea pot.
\item Turn on the tap
\end{itemize}
\end{itemize}
\end{linenumbers}
\lipsum[1]
\end{document}
代码:用于\nolinenumbers
禁用编号
\documentclass[10pt,a4paper]{article}
\usepackage{lipsum}
\usepackage{lineno}
\begin{document}
\lipsum[1]
\begin{linenumbers}
\begin{itemize}
\item First clean the dishes.
\item Now fill the tea pot with water.
\begin{itemize}\nolinenumbers
\item First open the tea pot.
\item Turn on the tap
\end{itemize}
\end{itemize}
\end{linenumbers}
\lipsum[1]
\end{document}
答案2
可以使用enumitem
包及其wide
选项来完成。我创建了一个类似 itemize 的环境,numitemise
其标签宽度随级别增加,与文本左边距对齐(wide
选项):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{enumitem}
\newcounter{numln}
\setlength\fboxsep{0pt}
\newlist{numitemise}{itemize}{2}
\setlist[numitemise]{wide}%
\setlist[numitemise, 1]{labelindent=0pt,labelwidth=2em, label=\stepcounter{numln}\makebox[2em]{\thenumln.\hfill\textbullet}, leftmargin=\dimexpr\labelwidth+\labelsep\relax}%
\setlist[numitemise, 2]{labelindent=\dimexpr -2em-\labelsep\relax, labelwidth=\dimexpr 2em+\labelsep\relax, label=\stepcounter{numln}\makebox[\dimexpr\labelwidth + \labelsep\relax]{\thenumln.\hfill\textbullet}, leftmargin=\dimexpr\leftmargin+2\labelsep\relax}%
\begin{document}
Text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text.
\begin{numitemise}%{A}
\item The text of a first short item.
\item The text of a second, longer item. The text of a second, longer item. The text of a second, longer item.
\begin{numitemise}%{B}
\item And now a nested subitem. It can be short or long. It can be short or long.
\item Another nested subitem.
\end{numitemise}
\item Back to a third item.
\end{numitemise}
\end{document}