段落编号

段落编号

我有一个问题,来自之前关于段落编号的回答(自动为每个段落分配一个编号)。

我使用了 Alan 提供的代码,但似乎无法对任何子部分进行编号。另一件事是,目录不仅包含编号的部分,还包含每个部分中所有段落的字符串(否则它会显示错误并且无法编译。)

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{latexsym}
\usepackage{fullpage}
\usepackage{amsmath}
\usepackage{float}
\usepackage{indentfirst}
\usepackage[font=footnotesize,format=plain,labelfont=bf,up,textfont=it,up]{caption}
\setlength{\parindent}{0cm}
\usepackage{subfig}
\usepackage{booktabs}
\usepackage{appendix}
\pagenumbering{arabic}
\usepackage{verbatim}
\usepackage{setspace}
\usepackage{rotating}
\usepackage{subfig}
\usepackage{array}
\usepackage[english]{babel}
\usepackage{multirow}
\usepackage{wrapfig}
\usepackage{subfig}

%to get para numbers in the margins

\usepackage{titlesec}
\usepackage{chngcntr}
\usepackage{lipsum} % for dummy text
\titleclass{\numpar}{straight}[\section]
\newcounter{numpar}
\renewcommand{\thenumpar}{\arabic{numpar}}
\counterwithout{numpar}{section} % from the chngcntr package
\titleformat{name=\numpar,page=odd}[leftmargin] {\normalfont %paragraph number for odd page
\bfseries\filleft}
{\thenumpar}{.5em}{}
\titleformat{name=\numpar,page=even}[leftmargin] {\normalfont %paragraph number for even page
\bfseries\filleft}
{\thenumpar}{.5em}{}
\titlespacing{\numpar}
{1pc}{0ex plus .1ex minus .2ex}{1pc}
\newcommand*{\np}{\numpar{}}
\usepackage[parfill]{parskip}
%evidence counter
\newcounter{evidence}
\newcommand{\ev}{%
        \bf{EV\stepcounter{evidence}}%
        \theevidence}
\begin{document}
\tableofcontents

\pagebreak
\section{A section}
\np  \lipsum[1] \marginpar{\ev}

\np \lipsum[5]

\subsection{A subsection}
\np \lipsum[2]

\subsubsection{A subsubsection}

\np \lipsum[3]\marginpar{\ev}

\end{document}

答案1

我不知道你为什么要这么做那么复杂。

\documentclass[12pt,a4paper]{article}

\usepackage{lipsum} % for dummy text
\usepackage{hyperref}

\newcounter{numpar}
\newcommand{\np}[1][]{%
  \par
  \refstepcounter{numpar}%
  \noindent
  \makebox[0pt][r]{%
    \makebox[0pt][l]{\textbf{\thenumpar}}%
    \qquad
  }%
  #1%
  \ignorespaces
}

%evidence counter
\newcounter{evidence}
\newcommand{\ev}{%
  \stepcounter{evidence}%
  \marginpar{\textbf{EV\theevidence}}%
}

\begin{document}

\tableofcontents

\clearpage

\section{A section}
\np  \lipsum*[1]\ev

\np \lipsum*[5]

\subsection{A subsection}
\np \lipsum*[2]

\subsubsection{A subsubsection}

\np[\label{last}] \lipsum*[3]\ev

An example of reference to a paragraph: \ref{last}

\end{document}

可选参数\np用于设置标签。

这种\titleclass方法有什么问题?您在章节和子章节之间插入了一个级别。使用这种方法您无需这样做,还可以避免书签和目录问题。

答案2

可能这个包的懒人语法linguex对你来说很有用。只需用命令开始编号的段落\ex.(点也是命令的一部分):

\documentclass{article}    
\usepackage[margin=2cm]{geometry}    
\usepackage{linguex}    
\usepackage{lipsum} % for dummy text    
\begin{document}
\section{Section}
\ex.  \lipsum[1]\par 
% Note: for real text use blank lines instead \par 
\subsection{Subection}
\ex. \lipsum[2]\par
\subsubsection{Subsubsection}
\ex. \lipsum[3]\par
\ex. \lipsum[4]\par
\ex. \lipsum[5]\par
\end{document}

如果您不想要 (n) 格式或段落缩进,则可以轻松适应您的需求。更详细的例子:

\documentclass[twocolumn]{article}    
\usepackage[columnsep=1.5cm,margin=1.5cm]{geometry}    
\usepackage{linguex}    
\usepackage{lipsum} % for dummy text    
\usepackage{textcomp}
\usepackage{indentfirst}
\usepackage{xcolor}
% Custom format of the number counter: 
\renewcommand{\ExLBr}{\color{orange}\sffamily\bfseries}
\renewcommand{\ExRBr}{:}
\setlength{\parindent}{0em} 
\setlength{\parskip}{\smallskipamount}%
\newcommand\np{\ex. \hspace{0em}}
% because these lenghts cannot be placed in preamble as is:
\newcommand\NumberInMargin{ 
\setlength{\Exindent}{-2em}% 
\setlength{\Exlabelsep}{2em}%
\setlength{\Exlabelwidth}{0em}%
\setlength{\Extopsep}{\smallskipamount}}
\begin{document}
\NumberInMargin
\section{Section}
\ex. \lipsum[1]\par 
\subsection{Subection}
\lipsum[30] % paragraph not numbered
\np \lipsum[2]\par
\subsubsection{Subsubsection}
\ex. \lipsum[4]\par
\ex. \lipsum[5]\par
\ex. \lipsum[6]\par 
     \lipsum[7]\par % paragraph not numbered
\ex. \lipsum[8]\par
\end{document}

一个限制是,如果您想要混合编号段落和普通段落,并且两者都只在第一行缩进。那么,您可以获得第一行缩进的编号段落,但在该\ex.段落之后,下一个没有编号的段落会抑制第一段的缩进(这与默认格式非常吻合)。

相关内容