lineno 排除部分小节等

lineno 排除部分小节等

这个问题之前被问过其中接受的答案修补了相关的 LaTeX 宏。这个接受的答案对我不起作用 - 代码没有效果。无论如何,lineno 文档明确指出

您通常不会明确关闭行号,而是将行号限制在组或环境中。(第 3 页)

那么,这是否告诉我有一种比黑客攻击更简单的方法(如链接答案中所述)\section并且\xsect不需要不断地编写\begin{linenumbers} ... \end{linenumbers}环境?

如果我必须使用链接的答案,(1)有人可以检查代码是否正确吗?(2),你怎样才能排除枚举列表?

另外 - 就我所知:链接的接受答案mtoolbox用于patchcmd宏。这不能用\renewcommand例如实现\renewcommand*{\section}{\nolinenumbers\section\linenumbers}吗?

编辑:

  • 我怎样才能针对逐项环境、枚举列表和块引用实现这一点?

答案1

您没有举例说明为什么您链接的已接受答案对您不起作用。根据我的经验,原因可能是:

  1. 您没有使用标准类等articlebook您的类中可能没有补丁\@startsection,或者\@xsect补丁不起作用。
  2. \section、等的样式\subsection已被 等包修改titlesec

快速说明:该命令\section比您想象的更复杂:它检测它是否有星号跟随,并且通常还有一个可选参数,用于分配短标题来替换超链接中的实际标题,然后它读取主要参数,IE您的章节标题。因此,您不能指望一些简单的事情能够\renewcommand*{\section}{\nolinenumbers\section\linenumbers}起作用。

在我自己的包或课程中,我通常有以下内容:

\newif\ifLNturnsON
\def\LocallyStopLineNumbers{\LNturnsONfalse%
    \ifLineNumbers\LNturnsONtrue\fi\nolinenumbers}
\def\ResumeLineNumbers{\ifLNturnsON\linenumbers\fi}

\LocallyStopLineNumbers和比和\ResumeLineNumbers更好,因为它们检测行号是否已打开,因此如果用户在 时尚未启用行号,则在禁用行号后将不会启用它。\nolinenumbers\linenumbers\ResumeLineNumbers\LocallyStopLineNumbers

现在来看看解决方案,无论哪种方式,您都可以使用titlesec并添加\LocallyStopLineNumbers到格式的开头和[\LocallyStopLineNumbers]结尾。在下面的示例中,我包含了一组模仿默认样式的完整格式(代码是从文档中复制的titlesec,“8.2. 标准类“)。当然你也可以用类似的方法修改自己的风格。

\documentclass{article}
\usepackage{lineno}
\usepackage{lipsum}

\usepackage{titlesec}

\newif\ifLNturnsON
\def\LocallyStopLineNumbers{\LNturnsONfalse%
    \ifLineNumbers\LNturnsONtrue\fi\nolinenumbers}
\def\ResumeLineNumbers{\ifLNturnsON\linenumbers\fi}

\makeatletter

\titleformat{\chapter}[display]
{\LocallyStopLineNumbers\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\ResumeLineNumbers]
\titleformat{\section}
{\LocallyStopLineNumbers\normalfont\Large\bfseries}{\thesection}{1em}{}[\ResumeLineNumbers]
\titleformat{\subsection}
{\LocallyStopLineNumbers\normalfont\large\bfseries}{\thesubsection}{1em}{}[\ResumeLineNumbers]
\titleformat{\subsubsection}
{\LocallyStopLineNumbers\normalfont\normalsize\bfseries}{\thesubsubsection}{1em}{}[\ResumeLineNumbers]
\titleformat{\paragraph}[runin]
{\LocallyStopLineNumbers\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}[\ResumeLineNumbers]
\titleformat{\subparagraph}[runin]
{\LocallyStopLineNumbers\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{}[\ResumeLineNumbers]
\titlespacing*{\chapter}     {0pt}{50pt}{40pt}
\titlespacing*{\section}     {0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}
\titlespacing*{\subsection}   {0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titlespacing*{\subsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titlespacing*{\paragraph}   {0pt}{3.25ex plus 1ex minus .2ex}{1em}
\titlespacing*{\subparagraph} {\parindent}{3.25ex plus 1ex minus .2ex}{1em}

\makeatother

\linenumbers

\begin{document}
\section{A section} \lipsum[2]
\subsection{Another section} \lipsum[2]
\subsubsection{Final section} \lipsum[2]
\end{document}

在此处输入图片描述

相关内容