\everypar 部分(或章节)命令不起作用

\everypar 部分(或章节)命令不起作用

这是一个后续问题 自动段落编号(\everypar 仅适用于段落,不适用于 \section 等)

我想\everypar在每个部分(或章节)中进行更改。我一使用命令就\everypar收到\section错误。当我使用命令时,它就可以正常工作。

版本 1(不工作)

\documentclass{article}

\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{parskip}

% Version 1
% ----------------------------
% everypar in section
\let\OriginalSection\section%
\renewcommand{\section}{%
    \OriginalSection%
    \everypar={\marginpar[Testtext 1]{}}    
}

%% Version 2
%% ----------------------------
%% everypar in command
%\def\NumPar{%
%   \everypar={\marginpar[]{Testtext 2}}%
%}

\begin{document}

\section{First section}
%\NumPar

\blindtext

\blindtext

\section{Second section}
%\NumPar

\blindtext

\blindtext

\end{document}

我得到了错误

! Missing { inserted.
<to be read again>
\@@par
l.25 \section
{First section}
A left brace was mandatory here, so I've put one in.
You might want to delete and/or insert some corrections
so that I will find a matching right brace soon.
(If you're confused by all this, try typing `I}' now.)

版本 2(可用但不推荐)

注意\NumPar代码中的命令!

\documentclass{article}

\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{parskip}

%% Version 1
%% ----------------------------
%% everypar in section
%\let\OriginalSection\section%
%\renewcommand{\section}{%
%   \OriginalSection%
%   \everypar={\marginpar[Testtext 1]{}}    
%}

% Version 2
% ----------------------------
% everypar in command
\def\NumPar{%
    \everypar={\marginpar[]{Testtext 2}}%
}

\begin{document}

\section{First section}
\NumPar

\blindtext

\blindtext

\section{Second section}
\NumPar

\blindtext

\blindtext

\end{document}

这给了我输出

在此处输入图片描述

我想要的是

我想使用\everypar命令版本 1因为这样我就不必\NumPar版本 2

答案1

\OriginalSection%
\everypar

您正在将\everypar其作为参数传递给原始部分。

\everpar读取节参数后,您可以按如下方式进行设置。如果您需要星号形式和可选参数,则需要多加努力\section

确实不支持\everypar这样设置很多在内部使用段落设置的东西可能会损坏,

\documentclass{article}

\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{parskip}

% Version 1
% ----------------------------
% everypar in section
\let\OriginalSection\section%
\renewcommand{\section}[1]{%
    \OriginalSection{#1}%
    \everypar={\marginpar[Testtext 1]{}}% 
}

%% Version 2
%% ----------------------------
%% everypar in command
%\def\NumPar{%
%   \everypar={\marginpar[]{Testtext 2}}%
%}

\begin{document}

\section{First section}
%\NumPar

\blindtext

\blindtext

\section{Second section}
%\NumPar

\blindtext

\blindtext

\end{document}

相关内容