Как нумеровать абзацы в мемуарах?

Как нумеровать абзацы в мемуарах?

Я пытаюсь реализовать нумерацию абзацев с помощью memoir. Я хотел бы, чтобы номера были

  1. на внешнем поле,
  2. вплотную к текстовому блоку и
  3. вертикально выровнен по первой строке абзаца.

Объединив различные фрагменты кода, которые я нашел здесь, на Stack Exchange, я получил

\documentclass[12pt]{memoir}
\pagestyle{empty}

\usepackage{lipsum}

\strictpagecheck
\newcounter{PN}
\marginparmargin{outer}

%% ATTEMPT A
\newcommand{\pnum}{\addtocounter{PN}{1}\marginpar{\mpjustification\arabic{PN}}}

%% ATTEMPT B
%\newcommand{\pnum}{\addtocounter{PN}{1}\hspace{0pt}\marginpar{\mpjustification\arabic{PN}}}

\begin{document}

\pnum\lipsum[\value{PN}]

\pnum\lipsum[\value{PN}]

\end{document}

Обе попытки A и B близки. Но попытка A ставит слишком большие числа, так что они находятся между последней строкой предыдущего абзаца и первой строкой текущего абзаца, в то время как попытка B ставит слишком маленькие числа, так что они находятся между первой и второй строками текущего абзаца.

Мы ценим любые предложения.

EDIT: Мой ответ на ответы

Предложения Майка Ренфро и Гонсало Медины были полезны (и я отметил их как таковые). В моем реальном документе я меняю стиль названий глав, и это по какой-то причине приводит к смещению номеров абзацев на первой странице каждой главы. (Если я не применяю пользовательский стиль главы, эта проблема исчезает.) В конечном итоге я выбрал ответ Майка, потому что в нем этой проблемы нет. Спасибо вам обоим (и lockstep). Кроме того, я не знал об этой команде \stepcounter; она более элегантна.

решение1

Работая с ответом Гонсало, но используя memoirвстроенные возможности заметок на полях (см. раздел 12.3memoirруководство):

\documentclass[12pt]{memoir}
\pagestyle{empty}
\usepackage{lipsum}   
\newcounter{PN}
\sideparmargin{outer}   
\newcommand\pnum{%
  \stepcounter{PN}\sidepar{\arabic{PN}}}
\begin{document}
\pnum\lipsum[\value{PN}]
\pnum\lipsum[\value{PN}]
\end{document}

решение2

Возможно, используя \marginnoteизmarginnoteупаковка?

\documentclass[12pt]{memoir}
\pagestyle{empty}
\usepackage{marginnote}
\usepackage{lipsum}

\strictpagecheck
\newcounter{PN}
\marginparmargin{outer}

\newcommand\pnum{%
  \stepcounter{PN}\marginnote{\mpjustification\arabic{PN}}}

\begin{document}

\pnum\lipsum[\value{PN}]

\pnum\lipsum[\value{PN}]

\end{document}

введите описание изображения здесь

Если вам нужно что-то автоматическое (до определенной степени), вы можете использовать \everypar:

\documentclass[12pt]{memoir}
\usepackage{lipsum}

\newcounter{PN}
\marginparmargin{outer}

\reversemarginpar

\newcommand\countpar{%
    \everypar{\stepcounter{PN}\marginpar{\arabic{PN}}}%
}
\newcommand\mcountpar{%
    \stepcounter{PN}\marginpar{\arabic{PN}}%
}

\pagestyle{empty}

\begin{document}
\countpar
\lipsum[1-2]

\begin{enumerate}
\item \mbox{}\mcountpar\lipsum[2]
\end{enumerate}

\end{document}

\stepcounter{PN}можно изменить на , \refstepcounter{PN}если нужно сделать перекрестные ссылки на абзацы (Спасибосинхронноза указание на это).

Связанный контент