%20(%D0%BB%D1%8E%D0%B1%D0%BE%D0%B9%20TeX).png)
Я использую LaTeX для заметок в университете. Заметки делятся на главы, которые являются отдельными уроками. Они пронумерованы. Легко потерять номер урока. Поэтому я хотел бы, чтобы LaTeX делал это вместо меня. Мне нужно создать счетчик и использовать его значение в названии глав. Что-то вроде \newtheorem
, только это не может быть в заголовках разделов, потому что это приводит к ошибке
argument of \@sect has an extra }
Мое оглавление начинается так:
Полное оглавление довольно длинное, поэтому я не буду приводить его здесь, так как считаю, что и этого достаточно. Как вы видите, есть главы с названиямиЛезионе xx(xx — число), главы озаглавленыЭсерцитация xx, и главыЭсерджизи(соответственно, Урок xx, Упражнение урок xx, Упражнения), поэтому мне понадобятся два независимых счетчика дляЛеционеиЭсерцитационечтобы не пришлось нумеровать их вручную и не рисковать оказаться (как я только что) с двумяЭсерцитация 14, нетЛеционе 22и нетЛеционе 25. Есть ли способ сделать это в LaTeX? И есть ли способ создать список всех теорем определенного вида (например, если я определил \newtheorem{defi}{Definizione}
, создать список всех " defi
"s)?
решение1
Это может вам подойти:
\documentclass{report}
\newcounter{le}
\setcounter{le}{0}
\newcommand{\lezione}[1]{Lezione~\arabic{le}:~#1}
\newcommand{\incle}[0]{\refstepcounter{le}}
\newcounter{ei}
\setcounter{ei}{0}
\newcommand{\esercizi}[0]{Esercizi~\arabic{ei}}
\newcommand{\incei}[0]{\refstepcounter{ei}}
\newcounter{ee}
\setcounter{ee}{0}
\newcommand{\esercitazione}[1]{Esercitazione~\arabic{ee}:~#1}
\newcommand{\incee}[0]{\refstepcounter{ee}}
\begin{document}
\tableofcontents
\incle
\chapter{\lezione{Foo}}
\incle
\chapter{\lezione{Bar}}
\incei
\chapter{\esercizi}
\incle
\chapter{\lezione{Baz}}
\incee
\chapter{\esercitazione{Bla}}
\end{document}
Я определил две отдельные команды для увеличения счетчика и вызова его в \chapter
команде, чтобы сохранить все необязательные функции команды \chapter
. «Более простой» способ — объединить их, но тогда невозможно будет использовать опции команды \chapter
. Просто для информации, команда тогда будет такой (для лекций):
\newcounter{le}
\setcounter{le}{0}
\newcommand{\lezione}[1]{\refstepcounter{le}
\chapter{Lezione~\arabic{le}:~#1}}
и команда, которую нужно использовать в документе, — это просто \lezione{<title>}
.
Вот вывод обоих методов для оглавления: