-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmathenvrus.sty
102 lines (90 loc) · 4.5 KB
/
mathenvrus.sty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
% Стилевой файл
% - новые команды:
% - \opbr{математический знак} (operator break) — разрешает перенос строки на данном знаке,
% автоматически дублируя его на следующей;
% - \mult и \notmult — знак кратности в математической моде;
% - \bigand — n-арная версия \land (печатается увеличенным символом);
% - \lAnd — знак конъюнкции для связывания высказываний;
% - \lOr — знак дизъюнкции для связывания высказываний;
%
% - \updownarrows — печатает стрелку вверх и за ней стрелку вниз (напр., для обозначения
% противоположно направленных векторов)
%
% - \Arg — печатает Arg в математической моде;
% - \grad — печатает grad в математической моде;
% - \pr — печатает pr в математической моде;
% - \rank — печатает rank в математической моде;
% - \sgn — печатает sgn в математической моде;
%
% - \indbase (induction base) — оформление базы математической индукции;
% - \indstep (induction step) — оформление шага математической индукции;
% - \indend (induction end) — конец метода математической индукции;
%
% - \series[первый номер] — печатает обозначение ряда в математической моде.
%
% - переопределённые команды:
% - \* — работает аналогично \opbr\cdot, но при отсутствии переноса строки ничего не делает;
% - \land — теперь печатает &.
%
% - новые окружения:
% - statement для утверждений;
% - lemma для лемм;
% - theorem для теорем;
% - consequent для следствий;
%
% - proof[пояснение] для доказательств;
% - proofmathind для доказательств методом математической индукции;
% - proofcontra для доказательств методом от противного.
\usepackage[intlimits]{amsmath}
\usepackage{amsfonts, amssymb, mathtools, cancel}
\usepackage{scalerel} % увеличение размера символов
\usepackage{xparse}
\NewDocumentCommand\opbr{m}{%
#1\nobreak\discretionary{}{\hbox{\ensuremath{#1}}}{}%
}
\NewDocumentCommand\mult{}{\mathrel{\raise -0.7mm\hbox{\vdots}}}
\NewDocumentCommand\notmult{}{\hspace{-2.5pt}\mathrel{\not\hspace{2.5pt}\mult}}
\RenewDocumentCommand\land{}{\mathbin{\&}}
\NewDocumentCommand\bigand{}{\mathop{\scalerel*{\&}{\sum}}}
\NewDocumentCommand\lAnd{}{\mathrel{\&}}
\NewDocumentCommand\lOr{}{\mathrel{\lor}}
\NewDocumentCommand\updownarrows{}{\mathrel\uparrow\hspace{-0.1em}\downarrow}
\DeclareMathOperator\Arg{Arg}
\DeclareMathOperator\grad{grad}
\DeclareMathOperator\pr{pr}
\DeclareMathOperator\rank{rank}
\DeclareMathOperator\sgn{sgn}
\NewDocumentCommand\indbase{}{%
\begin{itemize}%
\item \textit{База индукции.\ }%
}
\NewDocumentCommand\indstep{}{%
\item \textit{Шаг индукции.\ }%
}
\NewDocumentCommand\indend{}{%
\end{itemize}%
}
\NewDocumentCommand\series{O{1}}{\sum\limits_{k=#1}^\infty}
\RenewDocumentCommand{\*}{}{%
\discretionary{\hbox{\ensuremath{\cdot}}}{\hbox{\ensuremath{\cdot}}}{}%
}
\RenewDocumentCommand{\@begintheorem}{mm}{%
\par\textbf{#1\ #2.\ }\begingroup\slshape%
}
\RenewDocumentCommand{\@opargbegintheorem}{mmm}{%
\par\textbf{#1\ #2\ (#3).\ }\begingroup\slshape%
}
\RenewDocumentCommand{\@endtheorem}{}{\endgroup}
\newtheorem{theorem}{Теорема}[section]
\newtheorem{statement}[theorem]{Утверждение}
\newtheorem{lemma}[theorem]{Лемма}
\newtheorem{consequent}[theorem]{Следствие}
\NewDocumentEnvironment{proof}{o}
{\par\textbf{Доказательство\IfNoValueTF{#1}{.\ }{\ #1.}}}
{$\scriptstyle\blacksquare$}
\NewDocumentEnvironment{proofmathind}{}
{\par\textbf{Доказательство методом математической индукции.}}
{$\scriptstyle\blacksquare$}
\NewDocumentEnvironment{proofcontra}{}
{\par\textbf{Доказательство методом от противного.}}
{$\scriptstyle\blacksquare$}