\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{iumsheet}[2022/03/02 v1.16]
%Author: Grigory Merzon, merzon@mccme.ru
%encoding: utf8

% Пример преамбулы:
%   \documentclass[a4paper,12pt,DIV=15,headinclude]{scrartcl}
%   \usepackage[utf8]{inputenc}
%   \usepackage[russian]{babel}
%   \usepackage{iumsheet}
%   \def\sheetnum{7}
% Для любителей колонтитулов:
%   \usepackage{scrlayer-scrpage}
%   \pagestyle{scrheadings}
%   \setkomafont{pagehead}{\small}
%   \lohead{Драконоведение, листок \sheetnum}
%   \rohead{Летняя школа НИИЧАВО (20 мартобря 2666 года)}
%   \cfoot{}
%   \setheadsepline{.4pt}


\makeatletter

% Команда \header для заголовков листков
\def\header#1{\par{\centering \vspace*{-.5mm}\Large\textbf{#1}\vspace*{2.5mm}\par}}

% Команда \task для условий задач с необязательным заголовком
%   и возможностью ставить звездочки
% Нумерация по умолчанию -- типа \sheetnum.\thetask
%           (или просто \thetask, если \sheetnum не определен)
%
% \task
% \task*
% \task[теорема Фубини]
% \task[теорема Мёбиуса]*

% следующую троицу можно и нужно переопределять в преамбуле, чтобы влиять на оформление задач
\def\taskprefix{Задача\nbsp\ifdefined\sheetnum\sheetnum.\else\fi}
\def\indentcommand{\noindent\hangindent=1.5em\hangafter=1}
\let\z@sbuk=\asbuk % каким алфавитом нумеровать пункты задач (для латиницы -- '\alph')

% для любителей более тонкой настройки:
\def\@@begintask{\medskip\par\indentcommand\normalsize}
\def\@@task#1#2*{%
\@@begintask\textbf{\taskprefix#1\ifnonempty{#2}{ (#2)}.}\ %
}
\def\@sub#1*{\indentcommand\normalsize #1)\nbsp}



\RequirePackage{ifthen}
\newcommand\ifnonempty[2]{\ifthenelse{\equal{#1}{}}{}{#2}}
\newcommand\nbsp{\nobreak\kern.3em\hskip0mm} % неразрывный и (в отл. от '~') несжимаемый




\newcounter{task}
% танцы с бубном для необязательного аргумента
\def\task{\@ifnextchar[%
{\@task}%
{\@task[]}%
}
\def\@task[#1]{\refstepcounter{task}\@ifnextchar*{%
\@@task{\thetask*}{#1}}%
{\@@task{\thetask}{#1}*}%
}
\def\taskX#1{\@@task{#1}*}
% (добавлено в версии 1.15 -- задача с произвольным номером)

% Команда \sub для пунктов задач (тоже с возможностью звездочек)
\newcounter{subtask}[task]
\def\thesubtask{\z@sbuk{subtask})} %для \ref'ов
\def\sub{\refstepcounter{subtask}\@ifnextchar*%
{\@sub{\z@sbuk{subtask}*}}%
{\@sub{\z@sbuk{subtask}}*}%
}






%...и для замечаний, определений и прочего
\def\comment{\medskip\par\noindent\hskip0mm\llap{$\triangleright$\kern7pt}\small}
\def\remark{\medskip\par\noindent\small} % как \comment, но без треугольника на полях
\def\hint#1{{\noindent\small\textsc{Указание.}\ #1}}
\def\footer#1{\vskip\fill\hrule\smallskip\par\noindent{\small #1}}

\makeatother
