Как можно указать число абзацев в LaTeX?
Учитывая кучу абзацев:
Para. A ...
Para. B ...
Para. C ...
Как можно заставить LaTeX автоматически их число, т.е.
1. Para. A. ...
2. Para. B. ...
3. Para. C. ...
Я видел следующее предложение:
\newcounter{parnum}
\newcommand{\N}{%
\noindent\refstepcounter{parnum}%
\makebox[\parindent][l]{\textbf{\arabic{parnum}.}}}
% Use a generous paragraph indent so numbers can be fit inside the
% indentation space.
\setlength{\parindent}{2em}
Отсюда: comp.text.tex: Re: Как я могу выделить параграфы в LaTeX?
Затем используйте \N перед каждым пронумерованным номером, т.е.
\N Para. A. ...
\N Para. B. ...
\N Para. C. ...
Я также видел ссылки на Sarovar и numberpar, но оба они называются "неустойчивыми" или "непредсказуемыми", и такие вещи, как "случайное нарушение", что делает меня настороже.
Мне хотелось бы внести свой вклад в то, что может быть лучшим способом, здесь, и я думаю, что это тема, заслуживающая обсуждения.
Спасибо за ваш интерес и внимание к этому.
EDIT: я пробовал следующие
\begin{enumerate}
\item Para No. 1
\item Para No. 2
...
\end{enumerate}
Однако это приводит к проблемам с набором, особенно потому, что я вставляю заголовки разделов ala.
\begin{enumerate}
\item Para No. 1
\item Para No. 2
\section{Part II}
\item Para No. 5
\item Para No. 6
...
\end{enumerate}
и заголовок раздела "Часть II" иногда заканчивается в самой нижней части страницы (т.е. он не поддерживает следующий текст).
Ответы
Ответ 1
Я думаю, что есть три возможных решения (по крайней мере!), которые не связаны с переводом собственного или чужого макроса, в зависимости от того, что вы пытаетесь сделать.
1 Если нумерация требуется во всем документе, используйте \paragraph
, которая представляет собой команду секционирования нижнего уровня (например,\chapter,\section,\subsection и т.д.)
Для получения дополнительной информации см. LaTeX wikibook.
\setcounter{secnumdepth}{5}
...
\paragraph{If we want to} do something ...
(Вы можете найти этот излишний/уродливый, потому что ему нужна правильная вложенная структура разделов и подразделов, чтобы они не были)
Обратите внимание, что если вы используете класс memoir document (который я рекомендую без колебаний), строка \setcounter
становится \maxsecnumdepth{paragraph}
2 Если это всего лишь небольшая часть, используйте список:
\begin{enumerate}
\item Para No. 1
\item Para No. 2
...
\end{enumerate}
3 Или обобщенный список (\begin{list}...\end{list{}
), если вы хотите настроить форматирование. Мне не удалось найти хорошую онлайн-ссылку для этого, кроме части в Руководство по LaTeX
Ответ 2
В моем случае я решил это решить, переопределив новый макрос \P
, который работает как абзац.
\newcounter{paranum}
\newcommand{\P}{\vspace{10pt}\noindent\textbf{\refstepcounter{paranum}\theparanum}\textbf}
Чтобы написать новый "абзац", я делаю
\P{Paragraph title No. 1} ...text...
...
\P{Paragraph title No. 2} ...text...
Чтобы связать перечисление с разделом, я использую
\newcounter{paranum}[section]
\newcommand{\P}{\vspace{10pt}\noindent\textbf{\thesection.\refstepcounter{paranum}\theparanum}\textbf}
Я знаю, что это на самом деле неудачно, но в итоге я работал у меня.
Ответ 3
Я считаю, что другой вариант - это пакет ledmac
. Вот цитата из документации:
Макросы normal\label,\ref и \label\pageref могут использоваться в пронумерованном тексте и работать знакомым образом. В качестве примера можно привести один из способов нумерации абзацы в пронумерованном тексте, а затем возможность ссылаться на номера абзацев, в дополнение к номерам строк и страниц.
\newcounter{para} \setcounter{para}{0}
\newcommand{\newpara}{%
\refstepcounter{para}%
\noindent\llap{\thepar. }\quad}
\newcommand{\oldpara}[1]{%
\noindent\llap{\ref{#1}. }\quad}
Определения\newpara и \oldpara помещают числа в левое поле и первая строка абзаца имеет отступ. Теперь вы можете писать такие вещи, как:
\linenummargin{right}
\beginnumbering
\pstart
\newpara\label{P1} A paragraph about \ldots
\pend
In paragraph~\ref{P1} the author \ldots
\pstart
\oldpara{P1} This has the same
\edtext{number}{\Afootnote{\ref{P1} is the paragraph, not line}}
as the first paragraph.
\pend
\endnumbering
Я никогда не пытался это сам, однако.
Ответ 4
Решением этой проблемы является использование пакета парано, написанного CV Radhakrishnan из River Valley Technologies, Тривандрум, Индия.
Я знаю это решение со следующей веб-страницы
http://www.ub-filosofie.ro/~solcan/wt/gnu/n/np.html