%!TEX TS-program = xelatex \documentclass[12pt, a4paper]{article} %%%%%%%%%% Програмный код %%%%%%%%%% \usepackage{minted} % Включает подсветку команд в программах! % Нужно, чтобы на компе стоял питон, надо поставить пакет Pygments, в котором он сделан, через pip. % Для Windows: Жмём win+r, вводим cmd, жмём enter. Открывается консоль. % Прописываем pip install Pygments % Заходим в настройки texmaker и там прописываем в PdfLatex: % pdflatex -shell-escape -synctex=1 -interaction=nonstopmode %.tex % Для Linux: Открываем консоль. Убеждаемся, что у вас установлен pip командой pip --version % Если он не установлен, ставим его: sudo apt-get install python-pip % Ставим пакет sudo pip install Pygments % Для Mac: Всё то же самое, что на Linux, но через brew. % После всего этого вы должны почувствовать себя тру-программистами! % Документация по пакету хорошая. Сам читал, погуглите! %%%%%%%%%% Математика %%%%%%%%%% \usepackage{amsmath,amsfonts,amssymb,amsthm,mathtools} %\mathtoolsset{showonlyrefs=true} % Показывать номера только у тех формул, на которые есть \eqref{} в тексте. %\usepackage{leqno} % Нумерация формул слева %%%%%%%%%%%%%%%%%%%%%%%% Шрифты %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage[british,russian]{babel} % выбор языка для документа \usepackage[utf8]{inputenc} % задание utf8 кодировки исходного tex файла \usepackage{fontspec} % пакет для подгрузки шрифтов \setmainfont{Arial} % задаёт основной шрифт документа \usepackage{unicode-math} % пакет для установки математического шрифта %\setmathfont{Asana Math} % шрифт для математики % \setmathfont[math-style=ISO]{Asana Math} % Можно делать смену начертания с помощью разных стилей % Конкретный символ из конкретного шрифта % \setmathfont[range=\int]{Neo Euler} %%%%%%%%%% Работа с картинками %%%%%%%%% \usepackage{graphicx} % Для вставки рисунков \usepackage{graphics} \graphicspath{{images/}{pictures/}} % можно указать папки с картинками \usepackage{wrapfig} % Обтекание рисунков и таблиц текстом %%%%%%%%%% Работа с таблицами %%%%%%%%%% \usepackage{tabularx} % новые типы колонок \usepackage{tabulary} % и ещё новые типы колонок \usepackage{array} % Дополнительная работа с таблицами \usepackage{longtable} % Длинные таблицы \usepackage{multirow} % Слияние строк в таблице \usepackage{float} % возможность позиционировать объекты в нужном месте \usepackage{booktabs} % таблицы как в книгах! \renewcommand{\arraystretch}{1.3} % больше расстояние между строками % Заповеди из документации к booktabs: % 1. Будь проще! Глазам должно быть комфортно % 2. Не используйте вертикальные линни % 3. Не используйте двойные линии. Как правило, достаточно трёх горизонтальных линий % 4. Единицы измерения - в шапку таблицы % 5. Не сокращайте .1 вместо 0.1 % 6. Повторяющееся значение повторяйте, а не говорите "то же" % 7. Есть сомнения? Выравнивай по левому краю! %%%%%%%%%% Графика и рисование %%%%%%%%%% \usepackage{tikz, pgfplots} % язык для рисования графики из latex'a %%%%%%%%%% Гиперссылки %%%%%%%%%% \usepackage{xcolor} % разные цвета % Два способа включить в пакете какие-то опции: %\usepackage[опции]{пакет} %\usepackage[unicode,colorlinks=true,hyperindex,breaklinks]{hyperref} \usepackage{hyperref} \hypersetup{ unicode=true, % позволяет использовать юникодные символы colorlinks=true, % true - цветные ссылки, false - ссылки в рамках urlcolor=blue, % цвет ссылки на url linkcolor=red, % внутренние ссылки citecolor=green, % на библиографию pdfnewwindow=true, % при щелчке в pdf на ссылку откроется новый pdf breaklinks % если ссылка не умещается в одну строку, разбивать ли ее на две части? } \usepackage{csquotes} % Еще инструменты для ссылок %%%%%%%%%% Другие приятные пакеты %%%%%%%%% \usepackage{multicol} % несколько колонок \usepackage{verbatim} % для многострочных комментариев \usepackage{enumitem} % дополнительные плюшки для списков % например \begin{enumerate}[resume] позволяет продолжить нумерацию в новом списке \usepackage{todonotes} % для вставки в документ заметок о том, что осталось сделать % \todo{Здесь надо коэффициенты исправить} % \missingfigure{Здесь будет Последний день Помпеи} % \listoftodos --- печатает все поставленные \todo'шки %%%%%%%%%%%%%%%%%%%%%%%% Оформление %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage[paper=a4paper,top=15mm, bottom=15mm,left=35mm,right=10mm,includefoot]{geometry} \usepackage{indentfirst} % установка отступа в первом абзаце главы \title{Красивый код} \date{\today} \begin{document} % конец преамбулы, начало документа \maketitle \section{Вольфрам} $$ \frac{1}{\pi \left(z^2+1\right)} \quad \text{, if} \quad \Re\left(z^2\right)>-1 $$ \[ \left( \begin{array}{ccccc} \sin (x+y) & \sin \left(x^2+2 y\right) & \sin \left(x^3+3 y\right) & \sin \left(x^4+4 y\right) & \sin \left(x^5+5 y\right) \\ \sin \left(2 x+y^2\right) & \sin \left(2 x^2+2 y^2\right) & \sin \left(2 x^3+3 y^2\right) & \sin \left(2 x^4+4 y^2\right) & \sin \left(2 x^5+5 y^2\right) \\ \sin \left(3 x+y^3\right) & \sin \left(3 x^2+2 y^3\right) & \sin \left(3 x^3+3 y^3\right) & \sin \left(3 x^4+4 y^3\right) & \sin \left(3 x^5+5 y^3\right) \\ \sin \left(4 x+y^4\right) & \sin \left(4 x^2+2 y^4\right) & \sin \left(4 x^3+3 y^4\right) & \sin \left(4 x^4+4 y^4\right) & \sin \left(4 x^5+5 y^4\right) \\ \sin \left(5 x+y^5\right) & \sin \left(5 x^2+2 y^5\right) & \sin \left(5 x^3+3 y^5\right) & \sin \left(5 x^4+4 y^5\right) & \sin \left(5 x^5+5 y^5\right) \\ \end{array} \right) \] \section{Как слышу так и пишу} Окружение verbatim предназначено для буквального воспроизведения имеющихся в файле символов. \begin{verbatim} def monthlength(month,year): if year % 4 == 0: VisYear = 29 else: VisYear = 28 return [31,VisYear,31,30,31,30,31,31,30,31,30,31][month] \end{verbatim} Можно использовать это окружения для написания команд напрямую. Например, команда \verb|\dots| задает многоточие. \section{Красивое оформление кода} Окружение minted красиво и с автоматической подцветкой оформляет код в питоне! \begin{minted}[breaklines,linenos]{python} import numpy as np import pandas as pd #Вспомогательная функция для получения правильного количества дней. Работает даже с високосным годом. def monthlength(month,year): if year % 4 == 0: VisYear = 29 else: VisYear = 28 return [31,VisYear,31,30,31,30,31,31,30,31,30,31][month] \end{minted} Можно писать математические комменатрии к коду. У пакета очень много разных опций. \begin{minted}[mathescape]{python} # Код ниже выдаст $\sum_{i=1}^{n}i$ def sum_from_one_to(n): r = range(1,n+1) return sum(r) \end{minted} \end{document} % конец документа