Насколько я понимаю, счетчик должен автоматически увеличиваться. Однако, когда я пытаюсь его использовать, все, что я получаю, это нули. Вот MWE.
\documentclass[12pt]{article}
\usepackage{lipsum}
\newcounter{mcounter}
\begin{document}
\themcounter \lipsum[1]
\themcounter \lipsum[2]
\themcounter \lipsum[3]
\end{document}
Честно говоря, я пытаюсь создать счетчик страниц в середине списка учебных планов. Список выглядит примерно так: "День 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}