参考段落编号和页码

参考段落编号和页码

我在手稿中做了一条评论,希望以后能引用。我希望引用看起来像“参见我在第 4 页第 3 段的评论”。我知道如何使用 \label 和 \pageref 自动提取评论的页码

blah blah \label{comment1}

blah blah

blah blah see my comment on paragraph 3 of page \pageref{comment1}

但是有没有办法也可以自动获取段落编号?

请注意,我不希望在文本中对段落进行编号。我希望读者能够数到页面中的第三段。

答案1

请注意,已经有一个段落计数器,它由 \paragraph 递增。我假设你不想使用那个。

这用于\everypar在本地增加计数器并进行\@currentlabel全局设置。这样,环境中的段落将不被计算在内。请注意,\everypar一般不会保留,需要经常重置。(\@afterheading是最常见的违规者。)

\documentclass{article}
\usepackage{etoolbox}
\usepackage{lipsum}

\newcounter{Paragraph}[page]

\makeatletter
\newcommand{\Everypar}{\advance \c@Paragraph by 1
  \xdef\@currentlabel{\theParagraph}}
  
\patchcmd{\@afterheading}{\if@nobreak}{\Everypar\if@nobreak}{}{Failed}
\patchcmd{\@afterheading}{\everypar{}}{\everypar{\Everypar}}{}{Failed}
\makeatother
\everypar{\Everypar}

\begin{document}
\section{Test}

\ref{first} page \pageref{first} \label{first}\LipsumPar{1}

\begin{figure}[p]
  \caption{test}
\end{figure}

\ref{second} page \pageref{second} \label{second}\LipsumPar{2}

\ref{third} page \pageref{third} \label{third}\LipsumPar{3}

\ref{fourth} page \pageref{fourth} \label{fourth}\LipsumPar{4}

\ref{fifth} page \pageref{fifth} \label{fifth}\LipsumPar{5}% \label placement matters

\ref{sixth} page \pageref{sixth} \label{sixth}\LipsumPar{6}

\ref{seventh} page \pageref{seventh} \label{seventh}\LipsumPar{7}

\ref{eighth} page \pageref{eighth} \label{eighth}\LipsumPar{8}

\end{document}

相关内容