├── template.pdf ├── commands.sty ├── bibl.bib ├── code_cpp.sty ├── environments.sty ├── packages.sty ├── .gitignore ├── code_python.sty ├── titlepage.sty └── template.tex /template.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DimaTrushin/Term-Paper-LaTeX-Template/HEAD/template.pdf -------------------------------------------------------------------------------- /commands.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{commands} 2 | %% 3 | %% Объявление новых команд 4 | %% 5 | 6 | % \newcommand{\имя-команды}{определение команды} 7 | % Если длинным сложным командам LaTeX надо присвоить имя, это делается с помощью \newcommand. Ниже определяется след оператора 8 | \newcommand{\tr}{\operatorname{tr}} 9 | % Если команду надо переопределить используется \renewcommand. В этом есть необходимость, например, для определения мнимой части комплексного числа. Исходная LaTeX команда выдает не общепринятое обозначение 10 | \renewcommand{\Im}{\operatorname{Im}} 11 | \renewcommand{\Re}{\operatorname{Re}} 12 | -------------------------------------------------------------------------------- /bibl.bib: -------------------------------------------------------------------------------- 1 | @book{ 2 | GabRam, 3 | author="Gabber, O. and Ramero, L.", 4 | title="Almost Ring Theory", 5 | address="Berlin", 6 | series="Lecture notes in mathematics", 7 | publisher="Springer-{V}erlag", 8 | year="2003" 9 | }, 10 | 11 | @article{ 12 | Elkik73, 13 | author="Elkik, R.", 14 | title="Solutions d'\'equations \`a coefficients dans un anneau hens\'elien", 15 | journal="Annales scientifiques de L'\'E.N.S.", 16 | volume="Ser 4, 6", 17 | number="4", 18 | year="1973", 19 | pages="553--603" 20 | } 21 | 22 | @unpublished{ 23 | GGO, 24 | author="Gillet, H. and Gorchinskiy, S. and Ovchinnikov, A.", 25 | title="{P}arameterized {P}icard-{V}essiot extensions and {A}tiyah extensions", 26 | year="2011", 27 | URL="http://arxiv.org/abs/1110.3526" 28 | }, 29 | 30 | @phdthesis{ 31 | Wibmer1, 32 | author="Wibmer, M.", 33 | title="Geometric Difference {G}alois Theory", 34 | year="2010", 35 | school="Heidelberg" 36 | }, 37 | -------------------------------------------------------------------------------- /code_cpp.sty: -------------------------------------------------------------------------------- 1 | % Определим окружение для кода 2 | % Используется пакет listings 3 | 4 | \definecolor{@clr-background}{RGB}{250,250,250} 5 | \definecolor{@clr-text}{RGB}{0,0,0} 6 | \definecolor{@clr-string}{RGB}{255,85,255} 7 | \definecolor{@clr-preprocessor}{RGB}{0,0,153} 8 | \definecolor{@clr-keyword}{RGB}{255,128,0} 9 | \definecolor{@clr-variable}{RGB}{0,0,0} 10 | \definecolor{@clr-comment}{RGB}{0,102,0} 11 | \definecolor{@clr-type}{RGB}{51,51,255} 12 | 13 | \newcommand{\@twfont}{\footnotesize\ttfamily} 14 | \lstdefinestyle{Cpp}{ 15 | showlines=true, 16 | numbers=left, 17 | frame=tb, 18 | tabsize=2, 19 | showstringspaces=false, 20 | backgroundcolor=\color{@clr-background}, 21 | basicstyle=\color{@clr-text}\@twfont, 22 | stringstyle=\color{@clr-string}\@twfont, 23 | identifierstyle=\color{@clr-variable}\@twfont, 24 | commentstyle=\color{@clr-comment}\@twfont, 25 | directivestyle=\color{@clr-preprocessor}\@twfont, 26 | keywordstyle=\color{@clr-keyword}\@twfont, 27 | morekeywords={alignas,alignof,and,and_eq,asm,atomic_cancel,atomic_commit,atomic_noexcept,auto,bitand,bitor,bool,break,case,catch,char,char8_t,char16_t,char32_t,class,compl,concept,const,consteval,constexpr,constinit,const_cast,continue,co_await,co_return,co_yield,decltype,default,delete,do,double,dynamic_cast,else,enum,explicit,export,extern,false,float,for,friend,goto,if,inline,int,long,mutable,namespace,new,noexcept,not,not_eq,nullptr,operator,or,or_eq,private,protected,public,reflexpr,register,reinterpret_cast,requires,return,short,signed,sizeof,static,static_assert,static_cast,struct,switch,synchronized,template,this,thread_local,throw,true,try,typedef,typeid,typename,union,unsigned,using,virtual,void,volatile,wchar_t,while,xor,xor_eq, override, final}, 28 | emph={bool,char,char8_t,char16_t,char32_t,double,float,int,long,short,signed,unsigned,void,wchar_t}, 29 | emphstyle={\color{@clr-type}\@twfont}, 30 | % emph=[2]{try, catch}, 31 | % emphstyle=[2]{\color{orange}} 32 | } 33 | 34 | \newcounter{@cppcode} 35 | \setcounter{@cppcode}{1} 36 | \lstnewenvironment{cppcode}[1][] 37 | {\lstset{ 38 | language=C++, 39 | style=Cpp, 40 | #1 41 | } 42 | } 43 | {\setcounter{@cppcode}{\value{lstnumber}}} 44 | 45 | \newcommand{\inputcppcode}[2][]{\lstinputlisting[language=C++, style=Cpp,, #1]{#2}} 46 | 47 | -------------------------------------------------------------------------------- /environments.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{environments} 2 | 3 | %% 4 | %% Объявление новых окружений 5 | %% 6 | 7 | % Пакет amsmath позволяет определить свои собственные окружения для оформления теорем, следствий, задач и похожих вещей. 8 | % Есть три типа оформления окружений основная разница в двух вещах: (1) каким шрифтом оформляется заголовок окружения, (2) каким шрифтом пишется текст окружения. 9 | 10 | % Переключение типов оформления идет с помощью команды \theoremstyle{тип} по умолчанию тип=plain 11 | 12 | %% Теоремы 13 | % Заголовок жирным, текст курсивом 14 | \theoremstyle{plain} 15 | 16 | % \newtheorem{имя-окружения-в-LaTeX}{печатаемое-имя-окружения} 17 | % Эта команда создает новые нумеруемые окружения 18 | \newtheorem{theorem}{Теорема} 19 | 20 | % Каждое окружение типа теорема имеет свой счетчик для нумерации. То есть theorem и lemma будут нумероваться отдельно друг от друга. Если я хочу нумеровать леммы и теоремы одним счетчиком, то надо заменить счетчик для lemma на счетчик для theorem. (Можно сделать более хитрое подчинение, но я не буду это обсуждать). 21 | % \newtheorem{имя-окружения-в-LaTeX}[имя-окружения-в-LaTeX-чей-счетчик-мы-используем]{печатаемое-имя-окружения} 22 | \newtheorem{lemma}[theorem]{Лемма} 23 | \newtheorem{proposition}[theorem]{Предложение} 24 | \newtheorem{corollary}[theorem]{Следствие} 25 | \newtheorem{claim}[theorem]{Утверждение} 26 | 27 | % \newtheorem*{имя-окружения-в-LaTeX}{печатаемое-имя-окружения} 28 | % Эта команда создает новые не нумеруемые окружения. Имя theorem* и т.д. не обязано содержать звездочку, но удобно, так как в LaTeX общепринято, что звездочка означает отсутствие нумерации 29 | \newtheorem*{claim*}{Утверждение} 30 | \newtheorem*{theorem*}{Теорема} 31 | \newtheorem*{lemma*}{Лемма} 32 | \newtheorem*{corollary*}{Следствие} 33 | 34 | %% Определения 35 | % Заголовок жирным, текст прямым шрифтом 36 | \theoremstyle{definition} 37 | \newtheorem{definition}[theorem]{Определение} 38 | \newtheorem{problem}[theorem]{Задача} 39 | \newtheorem{problems}[theorem]{Задачи} 40 | 41 | \newtheorem*{definition*}{Определение} 42 | \newtheorem*{problem*}{Задача} 43 | \newtheorem*{problems*}{Задачи} 44 | \newtheorem*{fact*}{Факт} 45 | 46 | %% Замечания и примеры 47 | % Заголовок курсивом, текст прямым шрифтом 48 | \theoremstyle{remark} 49 | \newtheorem{example}[theorem]{Пример} 50 | \newtheorem{examples}[theorem]{Примеры} 51 | \newtheorem{remark}[theorem]{Замечание} 52 | 53 | \newtheorem*{example*}{Пример} 54 | \newtheorem*{remark*}{Замечание} 55 | -------------------------------------------------------------------------------- /packages.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{packages} 2 | %% 3 | %% Подключение и настройка пакетов 4 | %% 5 | 6 | % \usepackage[опции]{имя-пакета} 7 | % Команда отвечает за подключение дополнительных пакетов с функциями, которых нет по умолчанию в \LaTeX 8 | % Здесь я использую \RequirePackage вместо \usepackage. Можно использовать любую из них. Есть небольшая разница в их работе, я сам не большой специалист в этом и украл это оформление из книги Львовского ``Набор и верстка в LaTeX'' 9 | 10 | % Следующая группа пакетов делает возможным набор на русском языке. Сначала подключается кодировка шрифтов (в данном случае подключены две: T1 и T2A), чтобы правильно выводить русские символы, потом подключается кодировка ввода символов (выбран utf8 как наиболее переносимый), чтобы они правильно считывались с клавиатуры, потом подключается пакет с шрифтами babel (русскими и английскими). 11 | 12 | % Кодировки шрифтов 13 | \RequirePackage[T1,T2A]{fontenc} 14 | % Кодировка текста 15 | \RequirePackage[utf8]{inputenc} 16 | % Подключение поддержки языков 17 | \RequirePackage[english,russian]{babel} 18 | 19 | % Пакет отвечает за изменение размеров полей и геометрии вывода на странице текста в целом 20 | \RequirePackage[left=2cm,right=2cm, top=2cm,bottom=2cm,bindingoffset=0cm]{geometry} 21 | %% Математические пакеты 22 | 23 | % набор AMS пакетов используемых для работы с математическими формулами, символами и окружениями. 24 | \RequirePackage{amsmath} 25 | \RequirePackage{amssymb} 26 | % Математические шрифты 27 | \RequirePackage{amsfonts} 28 | % Оформление теорем. Без этого пакета не доступны окружения теорем. 29 | \RequirePackage{amsthm} 30 | 31 | % Пакет позволяет включать рисунки различных форматов 32 | \RequirePackage{graphicx} 33 | % Пакет для набора простых коммутативных диаграмм. Я обычно использую более продвинутый xy 34 | \RequirePackage{amscd} 35 | \RequirePackage{multirow} 36 | % Очень мощный пакет для рисования различных диаграмм. Я подключаю из него только матрицы, стрелки и кривые. 37 | \RequirePackage[matrix,arrow,curve]{xy} 38 | 39 | % Изначально в amsmath при наборе матриц есть ограничение на максимальное количество столбцов матрицы. Здесь я его увеличиваю до 20. 40 | \setcounter{MaxMatrixCols}{20} 41 | 42 | \RequirePackage{paralist} 43 | % Этот пакет позволяет делать горизонтальные нумерованные перични 44 | \RequirePackage{enumitem} 45 | 46 | % Этот пакет позволяет делать активные цветные гиперссылки. 47 | \RequirePackage[colorlinks=true, urlcolor=blue]{hyperref} 48 | 49 | % Это пакет для печати кода в документе 50 | \RequirePackage{listings} 51 | \RequirePackage[dvipsnames]{xcolor} 52 | \RequirePackage{code_cpp} 53 | \RequirePackage{code_python} 54 | 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Core latex/pdflatex auxiliary files: 2 | *.aux 3 | *.lof 4 | *.log 5 | *.lot 6 | *.fls 7 | *.out 8 | *.toc 9 | *.fmt 10 | *.fot 11 | *.cb 12 | *.cb2 13 | .*.lb 14 | 15 | ## Intermediate documents: 16 | *.dvi 17 | *.xdv 18 | *-converted-to.* 19 | # these rules might exclude image files for figures etc. 20 | # *.ps 21 | # *.eps 22 | # *.pdf 23 | 24 | ## Generated if empty string is given at "Please type another file name for output:" 25 | .pdf 26 | 27 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 28 | *.bbl 29 | *.bcf 30 | *.blg 31 | *-blx.aux 32 | *-blx.bib 33 | *.run.xml 34 | 35 | ## Build tool auxiliary files: 36 | *.fdb_latexmk 37 | *.synctex 38 | *.synctex(busy) 39 | *.synctex.gz 40 | *.synctex.gz(busy) 41 | *.pdfsync 42 | 43 | ## Build tool directories for auxiliary files 44 | # latexrun 45 | latex.out/ 46 | 47 | ## Auxiliary and intermediate files from other packages: 48 | # algorithms 49 | *.alg 50 | *.loa 51 | 52 | # achemso 53 | acs-*.bib 54 | 55 | # amsthm 56 | *.thm 57 | 58 | # beamer 59 | *.nav 60 | *.pre 61 | *.snm 62 | *.vrb 63 | 64 | # changes 65 | *.soc 66 | 67 | # comment 68 | *.cut 69 | 70 | # cprotect 71 | *.cpt 72 | 73 | # elsarticle (documentclass of Elsevier journals) 74 | *.spl 75 | 76 | # endnotes 77 | *.ent 78 | 79 | # fixme 80 | *.lox 81 | 82 | # feynmf/feynmp 83 | *.mf 84 | *.mp 85 | *.t[1-9] 86 | *.t[1-9][0-9] 87 | *.tfm 88 | 89 | #(r)(e)ledmac/(r)(e)ledpar 90 | *.end 91 | *.?end 92 | *.[1-9] 93 | *.[1-9][0-9] 94 | *.[1-9][0-9][0-9] 95 | *.[1-9]R 96 | *.[1-9][0-9]R 97 | *.[1-9][0-9][0-9]R 98 | *.eledsec[1-9] 99 | *.eledsec[1-9]R 100 | *.eledsec[1-9][0-9] 101 | *.eledsec[1-9][0-9]R 102 | *.eledsec[1-9][0-9][0-9] 103 | *.eledsec[1-9][0-9][0-9]R 104 | 105 | # glossaries 106 | *.acn 107 | *.acr 108 | *.glg 109 | *.glo 110 | *.gls 111 | *.glsdefs 112 | *.lzo 113 | *.lzs 114 | 115 | # uncomment this for glossaries-extra (will ignore makeindex's style files!) 116 | # *.ist 117 | 118 | # gnuplottex 119 | *-gnuplottex-* 120 | 121 | # gregoriotex 122 | *.gaux 123 | *.gtex 124 | 125 | # htlatex 126 | *.4ct 127 | *.4tc 128 | *.idv 129 | *.lg 130 | *.trc 131 | *.xref 132 | 133 | # hyperref 134 | *.brf 135 | 136 | # knitr 137 | *-concordance.tex 138 | # TODO Comment the next line if you want to keep your tikz graphics files 139 | *.tikz 140 | *-tikzDictionary 141 | 142 | # listings 143 | *.lol 144 | 145 | # luatexja-ruby 146 | *.ltjruby 147 | 148 | # makeidx 149 | *.idx 150 | *.ilg 151 | *.ind 152 | 153 | # minitoc 154 | *.maf 155 | *.mlf 156 | *.mlt 157 | *.mtc[0-9]* 158 | *.slf[0-9]* 159 | *.slt[0-9]* 160 | *.stc[0-9]* 161 | 162 | # minted 163 | _minted* 164 | *.pyg 165 | 166 | # morewrites 167 | *.mw 168 | 169 | # nomencl 170 | *.nlg 171 | *.nlo 172 | *.nls 173 | 174 | # pax 175 | *.pax 176 | 177 | # pdfpcnotes 178 | *.pdfpc 179 | 180 | # sagetex 181 | *.sagetex.sage 182 | *.sagetex.py 183 | *.sagetex.scmd 184 | 185 | # scrwfile 186 | *.wrt 187 | 188 | # sympy 189 | *.sout 190 | *.sympy 191 | sympy-plots-for-*.tex/ 192 | 193 | # pdfcomment 194 | *.upa 195 | *.upb 196 | 197 | # pythontex 198 | *.pytxcode 199 | pythontex-files-*/ 200 | 201 | # tcolorbox 202 | *.listing 203 | 204 | # thmtools 205 | *.loe 206 | 207 | # TikZ & PGF 208 | *.dpth 209 | *.md5 210 | *.auxlock 211 | 212 | # todonotes 213 | *.tdo 214 | 215 | # vhistory 216 | *.hst 217 | *.ver 218 | 219 | # easy-todo 220 | *.lod 221 | 222 | # xcolor 223 | *.xcp 224 | 225 | # xmpincl 226 | *.xmpi 227 | 228 | # xindy 229 | *.xdy 230 | 231 | # xypic precompiled matrices and outlines 232 | *.xyc 233 | *.xyd 234 | 235 | # endfloat 236 | *.ttt 237 | *.fff 238 | 239 | # Latexian 240 | TSWLatexianTemp* 241 | 242 | ## Editors: 243 | # WinEdt 244 | *.bak 245 | *.sav 246 | 247 | # Texpad 248 | .texpadtmp 249 | 250 | # LyX 251 | *.lyx~ 252 | 253 | # Kile 254 | *.backup 255 | 256 | # gummi 257 | .*.swp 258 | 259 | # KBibTeX 260 | *~[0-9]* 261 | 262 | # TeXnicCenter 263 | *.tps 264 | 265 | # auto folder when using emacs and auctex 266 | ./auto/* 267 | *.el 268 | 269 | # expex forward references with \gathertags 270 | *-tags.tex 271 | 272 | # standalone packages 273 | *.sta 274 | 275 | # Makeindex log files 276 | *.lpz 277 | 278 | # Old material 279 | *.old -------------------------------------------------------------------------------- /code_python.sty: -------------------------------------------------------------------------------- 1 | % Определим окружение для кода 2 | % Используется пакет listings 3 | 4 | \definecolor{@clr-python-background}{RGB}{250,250,250} 5 | \definecolor{@clr-python-text}{RGB}{0,0,0} 6 | \definecolor{@clr-python-string}{RGB}{0,170,0} 7 | %\definecolor{@clr-python-preprocessor}{RGB}{0,0,153} 8 | \definecolor{@clr-python-definitions}{RGB}{0,0,255} 9 | \definecolor{@clr-python-keyword}{RGB}{255,119,0} 10 | \definecolor{@clr-python-variable}{RGB}{0,0,0} 11 | \definecolor{@clr-python-comment}{RGB}{221,0,0} 12 | \definecolor{@clr-python-type}{RGB}{144,0,144} 13 | 14 | \newcommand{\@twpythonfont}{\footnotesize\ttfamily} 15 | \lstdefinestyle{Python}{ 16 | showlines=true, 17 | numbers=left, 18 | frame=tb, 19 | tabsize=2, 20 | showstringspaces=false, 21 | backgroundcolor=\color{@clr-python-background}, 22 | basicstyle=\color{@clr-python-text}\@twpythonfont, 23 | stringstyle=\color{@clr-python-string}\@twpythonfont, 24 | identifierstyle=\color{@clr-python-variable}\@twpythonfont, 25 | commentstyle=\color{@clr-python-comment}\@twpythonfont, 26 | keywordstyle=\color{@clr-python-keyword}\@twpythonfont, 27 | morekeywords={as, False, None, True, assert, async, await, nonlocal, with, yield}, 28 | emph={int, float, complex, list, tuple, range, str, bytes, bytearray, memoryview, set, frozenset, dict, abs, aiter, all, any, anext, ascii, bin, bool, breakpoint, callable, chr, classmethod, compile, complex, delattr, dir, divmod, enumerate, eval, exec, filter, format, getattr, globals, hasattr, hash, help, hex, id, input, isinstance, issubclass, iter, len, locals, map, max, min, next, object, oct, open, ord, pow, print, property, repr, reversed, round, setattr, slice, sorted, staticmethod, sum, super, type, vars, zip, @classmethod, @staticmethod}, 29 | emphstyle={\color{@clr-python-type}\@twpythonfont}, 30 | emph=[2]{_, _PyBytes_, _PyInterpreterState_, _PyObject_, _PyTuple_, _Py_, _Py_c_, __, __PYVENV_LAUNCHER__, __abs__, __add__, __aenter__, __aexit__, __aiter__, __all__, __and__, __anext__, __annotations__, __args__, __await__, __bases__, __bool__, __breakpointhook__, __bytes__, __cached__, __call__, __callback__, __cause__, __ceil__, __class__, __class_getitem__, __classcell__, __closure__, __code__, __complex__, __concat__, __contains__, __context__, __copy__, __debug__, __deepcopy__, __defaults__, __del__, __delattr__, __delete__, __delitem__, __dict__, __dir__, __displayhook__, __divmod__, __doc__, __enter__, __eq__, __excepthook__, __exit__, __file__, __float__, __floor__, __floordiv__, __format__, __fspath__, __func__, __future__, __ge__, __get__, __getattr__, __getattribute__, __getitem__, __getnewargs__, __getnewargs_ex__, __getstate__, __globals__, __gt__, __hash__, __iadd__, __iand__, __iconcat__, __ifloordiv__, __ilshift__, __imatmul__, __imod__, __import__, __imul__, __index__, __init__, __init_subclass__, __instancecheck__, __int__, __interactivehook__, __inv__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iter__, __itruediv__, __ixor__, __kwdefaults__, __le__, __len__, __length_hint__, __loader__, __lshift__, __lt__, __main__, __matmul__, __missing__, __mod__, __module__, __mro__, __mul__, __name__, __ne__, __neg__, __new__, __next__, __not__, __notes__, __optional_keys__, __or__, __origin__, __package__, __parameters__, __path__, __pos__, __pow__, __prepare__, __qualname__, __radd__, __rand__, __rdivmod__, __reduce__, __reduce_ex__, __repr__, __required_keys__, __reversed__, __rfloordiv__, __rlshift__, __rmatmul__, __rmod__, __rmul__, __ror__, __round__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __self__, __set__, __set_name__, __setattr__, __setitem__, __setstate__, __slots__, __spec__, __stderr__, __stdin__, __stdout__, __str__, __sub__, __subclasscheck__, __subclasses__, __subclasshook__, __suppress_context__, __total__, __traceback__, __truediv__, __trunc__, __unpacked__, __unraisablehook__, __xor__, _anonymous_, _b_base_, _b_needsfree_, _clear_type_, _current_, _emscripten_, _enter_, _field_, _fields_, _generate_next_value_, _get_child_, _get_preferred_, _ignore_, _leave_, _length_, _missing_, _numeric_repr_, _objects, _pack_, _register_, _type_, _unregister_}, 31 | emphstyle=[2]{\color{@clr-python-definitions}\@twpythonfont} 32 | } 33 | 34 | \newcounter{@pythoncode} 35 | \setcounter{@pythoncode}{1} 36 | \lstnewenvironment{pythoncode}[1][] 37 | {\lstset{ 38 | language=Python, 39 | style=Python, 40 | #1 41 | } 42 | } 43 | {\setcounter{@pythoncode}{\value{lstnumber}}} 44 | 45 | \newcommand{\inputpythoncode}[2][]{\lstinputlisting[language=Python, style=Python,, #1]{#2}} 46 | 47 | -------------------------------------------------------------------------------- /titlepage.sty: -------------------------------------------------------------------------------- 1 | \newcommand{\@tpageUDK}{} 2 | \newcommand{\@tpageType}{} 3 | \newcommand{\@tpageTitle}{} 4 | \newcommand{\@tpageGroup}{} 5 | \newcommand{\@tpageStudentSgn}{} 6 | \newcommand{\@tpageStudent}{} 7 | \newcommand{\@tpageStudentDate}{} 8 | \newcommand{\@tpageAdvisor}{} 9 | \newcommand{\@tpageAdvisorTitle}{} 10 | \newcommand{\@tpageAdvisorAffiliation}{} 11 | \newcommand{\@tpageAdvisorDate}{} 12 | \newcommand{\@tpageGrade}{} 13 | \newcommand{\@tpageAdvisorSgn}{} 14 | \newcommand{\@tpageYear}{} 15 | 16 | 17 | \newcommand{\setUDK}[1]{\renewcommand{\@tpageUDK}{#1}} 18 | \newcommand{\setTitle}[1]{\renewcommand{\@tpageTitle}{#1}} 19 | 20 | \newcommand{\setStageOne}{\newcommand{\@tStage}{(промежуточный, этап 1)}} 21 | \newcommand{\setStageTwo}{\newcommand{\@tStage}{(промежуточный, этап 2)}} 22 | \newcommand{\setStageFinal}{\newcommand{\@tStage}{\vphantom{()}}} 23 | 24 | \newcommand{\setGroup}[1]{\renewcommand{\@tpageGroup}{#1}} 25 | \newcommand{\setStudentSgn}[1]{\renewcommand{\@tpageStudentSgn}{\smash{#1}}} 26 | \newcommand{\setStudent}[1]{\renewcommand{\@tpageStudent}{#1}} 27 | \newcommand{\setStudentDate}[1]{\renewcommand{\@tpageStudentDate}{#1}} 28 | \newcommand{\setAdvisor}[1]{\renewcommand{\@tpageAdvisor}{#1}} 29 | \newcommand{\setAdvisorTitle}[1]{\renewcommand{\@tpageAdvisorTitle}{#1}} 30 | \newcommand{\setAdvisorAffiliation}[1]{\renewcommand{\@tpageAdvisorAffiliation}{#1}} 31 | \newcommand{\setAdvisorDate}[1]{\renewcommand{\@tpageAdvisorDate}{#1}} 32 | \newcommand{\setGrade}[1]{\renewcommand{\@tpageGrade}{#1}} 33 | \newcommand{\setAdvisorSgn}[1]{\renewcommand{\@tpageAdvisorSgn}{\smash{#1}}} 34 | \newcommand{\setYear}[1]{\renewcommand{\@tpageYear}{#1}} 35 | 36 | \newcommand{\setToResearch}{\renewcommand{\@tpageType}{Отчет об исследовательском проекте}\renewcommand{\@tUDK}{УДК: \@tpageUDK}} 37 | \newcommand{\setToProgram}{\renewcommand{\@tpageType}{Отчет о программном проекте}\renewcommand{\@tUDK}{\vphantom{УДК}}} 38 | 39 | \newcommand{\@textWithScript}[3]{\parbox[t]{#1}{\hbox to #1{\hfil#2\strut\hfil}\hrule\hbox to #1{\hfil #3\strut\hfil}}} 40 | 41 | \newcommand{\@tUDK}{УДК: \@tpageUDK} 42 | 43 | \newcommand{\@tTitle}{\@textWithScript{15cm}{\@tpageTitle}{}} 44 | 45 | \newcommand{\@tGroup}{\parbox[t]{1cm}{\hbox{\@tpageGroup\strut}\hrule}} 46 | 47 | \newcommand{\@tStudentSgn}{\@textWithScript{5.5cm}{\@tpageStudentSgn}{Подпись}} 48 | 49 | 50 | \newcommand{\@tStudent}{\@textWithScript{6cm}{\@tpageStudent}{И.О.Фамилия}} 51 | 52 | 53 | \newcommand{\@tStudentDate}{\@textWithScript{4.4cm}{\@tpageStudentDate}{Дата}} 54 | 55 | \newcommand{\@tAdvisor}{\@textWithScript{12cm}{\@tpageAdvisor}{Имя, Отчество, Фамилия}} 56 | 57 | \newcommand{\@tAdvisorTitle}{\@textWithScript{17cm}{\@tpageAdvisorTitle}{Должность, ученое звание}} 58 | 59 | \newcommand{\@tAffiliation}{\@textWithScript{17cm}{\@tpageAdvisorAffiliation}{Место работы (Компания или подразделение НИУ ВШЭ)}} 60 | 61 | \newcommand{\@tAdvisorData}{\@textWithScript{1.5cm}{\@tpageAdvisorDate}{}} 62 | 63 | \newcommand{\@tGrade}{\@textWithScript{6cm}{\@tpageGrade}{Оценка (по 10-ти бальной шкале)}} 64 | 65 | \newcommand{\@tAdvisorSgn}{\@textWithScript{5.5cm}{\@tpageAdvisorSgn}{Подпись}} 66 | 67 | 68 | \newcommand{\makeTitlePage}{ 69 | 70 | \begin{center} 71 | \large 72 | \textbf{ 73 | ПРАВИТЕЛЬСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ \\ 74 | ФГАОУ ВО НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ \\ 75 | <<ВЫСШАЯ ШКОЛА ЭКОНОМИКИ>> 76 | } 77 | \end{center} 78 | 79 | \begin{center} 80 | \large 81 | Факультет компьютерных наук \\ 82 | Образовательная программа <<Прикладная математика и информатика>> 83 | \end{center} 84 | 85 | \noindent\@tUDK 86 | 87 | 88 | \vspace{3cm} 89 | 90 | \begin{center} 91 | \textbf{\large\@tpageType} 92 | \vspace{1cm} 93 | 94 | на тему: \@tTitle 95 | \end{center} 96 | 97 | \begin{center} 98 | \@tStage 99 | \end{center} 100 | 101 | \vspace{1.5cm} 102 | 103 | \noindent\begin{tabular}{lcc} 104 | {\textbf{Выполнил:}}&{}&{}\\ 105 | {Студент группы БПМИ\@tGroup}&{\@tStudentSgn}&{\@tStudent}\\[15pt] 106 | {\@tStudentDate}&{}&{} 107 | \end{tabular} 108 | \vspace{2cm} 109 | 110 | \noindent\begin{tabular}{lcr} 111 | {\textbf{Принял:}}&{}&{}\\ 112 | {Руководитель проекта}&\multicolumn{2}{r}{\@tAdvisor}\\[15pt] 113 | \multicolumn{3}{c}{\@tAdvisorTitle}\\[15pt] 114 | \multicolumn{3}{c}{\@tAffiliation}\\[15pt] 115 | \end{tabular} 116 | \vfill 117 | \noindent\begin{tabular}{lcr} 118 | {Дата проверки\@tAdvisorData \@tpageYear}&{\@tGrade}&{\@tAdvisorSgn} 119 | \end{tabular} 120 | \begin{center} 121 | \textbf{Москва \@tpageYear} 122 | \end{center} 123 | \thispagestyle{empty} 124 | \newpage 125 | } 126 | -------------------------------------------------------------------------------- /template.tex: -------------------------------------------------------------------------------- 1 | % Это основная команда, с которой начинается любой \LaTeX-файл. Она отвечает за тип документа, с которым связаны основные правил оформления текста. 2 | \documentclass{article} 3 | 4 | % Здесь идет преамбула документа, тут пишутся команды, которые настраивают LaTeX окружение, подключаете внешние пакеты, определяете свои команды и окружения. В данном случае я это делаю в отдельных файлах, а тут подключаю эти файлы. 5 | 6 | % Здесь я подключаю разные стилевые пакеты. Например возможности набирать особые символы или возможность компилировать русский текст. Подробное описание внутри. 7 | \usepackage{packages} 8 | 9 | % Здесь я определяю разные окружения, например, теоремы, определения, замечания и так далее. У этих окружений разные стили оформления, кроме того, эти окружения могут быть нумерованными или нет. Все подробно объяснено внутри. 10 | \usepackage{environments} 11 | 12 | % Здесь я определяю разные команды, которых нет в LaTeX, но мне нужны, например, команда \tr для обозначения следа матрицы. Или я переопределяю LaTeX команды, которые работают не так, как мне хотелось бы. Типичный пример мнимая и вещественная часть комплексного числа \Im, \Re. В оригинале они выглядят не так, как мы привыкли. Кроме того, \Im еще используется и для обозначения образа линейного отображения. Подробнее описано внутри. 13 | \usepackage{commands} 14 | 15 | % Потребуется для вставки картинки подписи 16 | % \usepackage{graphicx} 17 | 18 | % Пакет для титульника проекта 19 | \usepackage{titlepage} 20 | 21 | % Здесь задаем параметры титульной страницы 22 | \setUDK{192.168.1.1} 23 | % Выбрать одно из двух 24 | \setToResearch 25 | %\setToProgram 26 | 27 | \setTitle{Базисы шмазисы} 28 | 29 | % Выбрать одно из трех: 30 | % КТ1 -- \setStageOne 31 | % КТ2 -- \setStageTwo 32 | % Финальная версия -- \setStageFinal 33 | \setStageOne 34 | %\setStageTwo 35 | %\setStageFinal 36 | 37 | \setGroup{201} 38 | % Сюда можно воткнуть картинку подписи с помощью \includegraphics[scale=0.2]{<имя файла>} 39 | % (scale подбирается индивидуально для конкретной картинки) 40 | \setStudentSgn{подпись студента} 41 | \setStudent{И.И.Иванов} 42 | \setStudentDate{11.06.2021} 43 | \setAdvisor{Дмитрий Витальевич Трушин} 44 | \setAdvisorTitle{доцент, к.ф.-м.н.} 45 | \setAdvisorAffiliation{ФКН НИУ ВШЭ} 46 | \setAdvisorDate{12.06} 47 | \setGrade{11} 48 | % Сюда можно воткнуть картинку подписи с помощью \includegraphics[scale=0.2]{<имя файла>} 49 | % (scale подбирается индивидуально для конкретной картинки) 50 | \setAdvisorSgn{подпись руководителя} 51 | \setYear{2021} 52 | 53 | 54 | % С этого момента начинается текст документа 55 | \begin{document} 56 | 57 | % Эта команда создает титульную страницу 58 | \makeTitlePage 59 | 60 | % Здесь будет автоматически генерироваться содержание документа 61 | \tableofcontents 62 | 63 | % Данное окружение оформляет аннотацию: краткое описание текста выделенным абзацем после заголовка 64 | \begin{abstract} 65 | Текст аннотации. Здесь кратко в два-три предложения описываем, что происходит в работе. 66 | \end{abstract} 67 | 68 | 69 | \section{Введение} 70 | 71 | Во введении надо кратко описать область, в которой будет ваша работа, потом рассказать о поставленной задаче, далее о том, что вы будете делать. 72 | 73 | 74 | Со временем, когда вы начнете набирать содержательную часть, вы будете модифицировать введения, меняя фразы о своих планах, на описание проделанной работы. Так же в конце введения обычно принято писать обзор структуры содержательной части, чтобы можно было сориентироваться в происходящем, не начиная читать содержательную часть. 75 | 76 | Здесь вы пишите какие в каких источниках какая информация находится. Это нужно для того, чтобы читающий мог понять, где искать информацию в нужном направлении после изучения вашего текста. Этот пункт можно не выделять отдельно. Его можно слить с другими, например сослаться на источники во время описания работы или описания структуры курсовой. 77 | 78 | Пример цитирования источника. Если в тексте не будет ни одного цитирования, то BiB-TeX выдаст ошибку при генерации списка литературы. В списке будут только те источники, на которые есть ссылки. 79 | 80 | Note also that very recently several constructions of~\cite{Elkik73} were clarified and simplified by Gabber and Ramero in~\cite[Chapter~5]{GabRam}. Some other source with url~\cite{GGO} 81 | 82 | \section{Описание функциональных и нефункциональных требований к программному проекту} 83 | 84 | Этот пункт нужен только для программных проектов. В нем вы описываете, что у вас вообще должна быть за программа. На каком языке вы ее пишите. Что она должна делать. Подробное описание. Например, у вас пишется библиотека для работы с многочленами. Она должна предоставлять такие-то классы, пример использования. Она предоставляет такие-то методы, пример использования. Такая-то сложность методов. Например, еще можно написать, что вы тестируете библиотеку с помощью консольного приложения, данные считываются так-то, тестируются такие-то вещи, такие-то вещи выводятся. И так далее и тому подобное. 85 | 86 | \section{Содержательная часть} 87 | 88 | Здесь идет планомерное изложение информации от начала до конца. Тут не нужна никакая философия или объяснения, все это было во введении. Тут сухой математический текст с определениями, формулировками и где надо доказательствами. Содержательную часть можно бить на части, чтобы структурировать изложение. 89 | 90 | \subsection{Содержательная часть 1} 91 | 92 | \subsection{Содержательная часть 2} 93 | 94 | 95 | \section{Вставки кода} 96 | 97 | Вставки кода прямо в тексте на плюсах: 98 | \begin{cppcode} 99 | #include "test.h" 100 | #include "except.h" 101 | 102 | int main() { 103 | try { 104 | test::run_all(); 105 | } catch(...) { 106 | except::react(); 107 | } 108 | return 0; 109 | } 110 | \end{cppcode} 111 | 112 | И на питоне: 113 | \begin{pythoncode} 114 | def function(x, y): 115 | return x + y; 116 | 117 | def main(): 118 | z = function(2, 3) 119 | print(f"2 + 3 = {z}"); 120 | \end{pythoncode} 121 | 122 | % Здесь автоматически генерируется библиография. Первая команда задает стиль оформления библиографии, а вторая указывает на имя файла с расширением bib, в котором находится информация об источниках. Чтобы источник появился, надо на него сослаться. 123 | \bibliographystyle{plainurl} 124 | \bibliography{bibl} 125 | 126 | 127 | 128 | % С этого момента глобальная нумерация идет буквами. Этот раздел я добавил лишь для демонстрации возможностей LaTeX, его можно и нужно удалить и он не нужен для курсового проекта непосредственно. 129 | \appendix 130 | 131 | Проведем небольшой обзор возможностей \LaTeX. Далее идет обзорный кусок, который надо будет вырезать. Он приведен лишь для демонстрации возможностей \LaTeX. 132 | 133 | \section{Нумеруемый заголовок} 134 | Текст раздела 135 | \subsection{Нумеруемый подзаголовок} 136 | Текст подраздела 137 | \subsubsection{Нумеруемый подподзаголовок} 138 | Текст подподраздела 139 | 140 | \section*{Не нумеруемый заголовок} 141 | Текст раздела 142 | \subsection*{Не нумеруемый подзаголовок} 143 | Текст подраздела 144 | \subsubsection*{Не нумеруемый подподзаголовок} 145 | Текст подподраздела 146 | 147 | 148 | \paragraph{Заголовок абзаца} Текст абзаца 149 | 150 | Формулы в тексте набирают так $x = e^{\pi i}\sqrt{\text{формула}}$. Выключенные не нумерованные формулы набираются либо так: 151 | \[ 152 | x = e^{\pi i}\sqrt{\text{формула}} 153 | \] 154 | Либо так 155 | $$ 156 | x = e^{\pi i}\sqrt{\text{формула}} 157 | $$ 158 | Первый способ предпочтительнее при подаче статей в журналы AMS, потому рекомендую привыкать к нему. 159 | 160 | Выключенные нумерованные формулы: 161 | \begin{equation}\label{Equation1} 162 | % \label{имя-метки} эта команда ставит метку, на которую потом можно сослаться с помощью \ref{имя-метки}. Метки можно ставить на все объекты, у которых есть автоматические счетчики (номера разделов, подразделов, теорем, лемм, формул и т.д. 163 | x = e^{\pi i}\sqrt{\text{формула}} 164 | \end{equation} 165 | Или не нумерованная версия 166 | \begin{equation*} 167 | x = e^{\pi i}\sqrt{\text{формула}} 168 | \end{equation*} 169 | 170 | Уравнение~\ref{Equation1} радостно занумеровано. 171 | 172 | Лесенка для длинных формул 173 | \begin{multline} 174 | x = e^{\pi i}\sqrt{\text{очень очень очень длинная формула}}=\\ 175 | \tr A - \sin(\text{еще одна очень очень длинная формула})=\\ 176 | \cos z \Im \varphi(\text{и последняя длинная при длинная формула}) 177 | \end{multline} 178 | 179 | Многострочная формула с центровкой 180 | \begin{gather} 181 | x = e^{\pi i}\sqrt{\text{очень очень очень длинная формула}}=\\ 182 | \tr A - \sin(\text{еще одна очень очень длинная формула})=\\ 183 | \cos z \Im \varphi(\text{и последняя длинная при длинная формула}) 184 | \end{gather} 185 | 186 | Многострочная формула с ручным выравниванием. Выравнивание идет по знаку $\&$, который на печать не выводится. 187 | \begin{align} 188 | x = &e^{\pi i}\sqrt{\text{очень очень очень длинная формула}}=\\ 189 | &\tr A - \sin(\text{еще одна очень очень длинная формула})=\\ 190 | &\cos z \Im \varphi(\text{и последняя длинная при длинная формула}) 191 | \end{align} 192 | 193 | \begin{theorem} 194 | Текст теоремы 195 | \end{theorem} 196 | \begin{proof} 197 | В специальном окружении оформляется доказательство. 198 | \end{proof} 199 | 200 | \begin{theorem}[Имя теоремы] 201 | Текст теоремы 202 | \end{theorem} 203 | \begin{proof}[Доказательство нашей теоремы] 204 | В специальном окружении оформляется доказательство. 205 | \end{proof} 206 | 207 | \begin{definition} 208 | Текст определения 209 | \end{definition} 210 | 211 | \begin{remark} 212 | Текст замечания 213 | \end{remark} 214 | 215 | \paragraph{Перечни:} Нумерованные 216 | \begin{enumerate} 217 | \item Первый 218 | \item Второй 219 | \begin{enumerate} 220 | \item Вложенный первый 221 | \item Вложенный второй 222 | \end{enumerate} 223 | \end{enumerate} 224 | 225 | Не нумерованные 226 | 227 | \begin{itemize} 228 | \item Первый 229 | \item Второй 230 | \begin{itemize} 231 | \item Вложенный первый 232 | \item Вложенный второй 233 | \end{itemize} 234 | \end{itemize} 235 | 236 | 237 | % Здесь текст документа заканчивается 238 | \end{document} 239 | % Начиная с этого момента весь текст LaTeX игнорирует, можете вставлять любую абракадабру. 240 | --------------------------------------------------------------------------------