увеличить счетчик

увеличить счетчик

Насколько я понимаю, счетчик должен автоматически увеличиваться. Однако, когда я пытаюсь его использовать, все, что я получаю, это нули. Вот MWE.

\documentclass[12pt]{article}
\usepackage{lipsum}
\newcounter{mcounter}


\begin{document}
\themcounter \lipsum[1]

\themcounter \lipsum[2]

\themcounter \lipsum[3]
\end{document}

Напечатанный шрифтом «lipsum» текст с нулями перед каждым абзацем.

Честно говоря, я пытаюсь создать счетчик страниц в середине списка учебных планов. Список выглядит примерно так: "День 1: Рабочие листы № 1, № 2 и заметки. День 2: Рабочие листы № 3, заметки и Рабочий лист № 4". Если я добавлю рабочий лист (или уберу один), я не хочу перенумеровывать все в списке для этого дня и любых последующих дней.

Есть какие-нибудь предположения, что я делаю не так? Я использую LauLaTeX на Texmaker на ПК с Win 10.

решение1

Вы написали,

Насколько я понимаю, счетчик должен увеличиваться автоматически.

Это не правильно. Если вы создаете счетчик, но ничего не делаете с ним, кроме отображения его значения (например, через \themcounter), значение счетчика останется на своем начальном значении (обычно 0) на протяжении всего документа.

В LaTeX значение счетчика можно изменить с помощью команд \setcounter, \addtocounter, \stepcounter, и \refstepcounter. \setcounterи \addtocounterпринимают два аргумента: имя счетчика и целое число. \stepcounterи \refstepcounterувеличивают значение счетчика на 1, и принимают только один аргумент — имя счетчика, значение которого необходимо увеличить.

Если вы хотите создать макрос LaTeX, который (a) увеличивает счетчик с именем mycounterи 1(b) отображает новое увеличенное значение mycounter, вы можете сделать это несколькими способами. Например, после создания счетчика с помощью

\newcounter{mycounter}

Вы можете использовать одно из следующих трех определений \showmycounter:

\newcommand\showmycounter{\addtocounter{mycounter}{1}\themycounter}
\newcommand\showmycounter{\stepcounter{mycounter}\themycounter}
\newcommand\showmycounter{\refstepcounter{mycounter}\themycounter}

По умолчанию директивы \themycounterи \arabic{mycounter}выдают одинаковый вывод, т. е. по умолчанию для отображения значения счетчика используются арабские цифры. Если вы хотите отобразить значение счетчика, скажем, в виде заглавной римской цифры, вам придется либо переопределить \themycounter(через \renewcommand\themycounter{\Roman{mycounter}}), либо изменить приведенные выше \newcommandинструкции, например,

\newcommand\showmycounter{\stepcounter{mycounter}\Roman{mycounter}}

Theценитьсчетчика может быть любым целым числом, включая 0и отрицательные целые числа. Неудивительно, что если значение mycounterнеположительное, попытка представить его значение в виде буквенного символа или римской цифры приведет к появлению сообщения об ошибке.


MWE (минимальный рабочий пример), который строится на следующих идеях:

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

\documentclass{article}
\newcounter{mycounter} % create a new counter, called 'mycounter'
% default def'n of '\themycounter' is '\arabic{mycounter}'

%% command to increment 'mycounter' by 1 and to display its value:
\newcommand\showmycounter{\stepcounter{mycounter}\themycounter}

\usepackage{lipsum}
\newcommand\showlips{\stepcounter{mycounter}\lipsum[\value{mycounter}]}

\begin{document}
\showmycounter, \showmycounter, \showmycounter

\showlips

% verifying that the preceding command used '4':
\lipsum[4]
\end{document}

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