Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

more fixes for wrong references...

  • Loading branch information...
commit a80351a096dbca6b94211db16a27069752255083 1 parent 4cac47d
@alexott alexott authored
View
10 chapter-03.tex
@@ -20,7 +20,7 @@ \chapter{Практикум: Простая база данных}
описаны гораздо более систематически.
Одно замечание по терминологии: в этой главе я расскажу о некоторых операторах Lisp. В
-главе~\ref{ch:4} вы узнаете, что Common Lisp предоставляет три разных типа операторов: функции,
+главе~\ref{ch:04} вы узнаете, что Common Lisp предоставляет три разных типа операторов: функции,
макросы и операторы специального назначения. Для целей этой главы вам необязательно
понимать разницу. Однако я буду ссылаться на различные операторы как на функции, макросы
или специальные операторы, в зависимости от того, чем они на самом деле являются, вместо
@@ -127,7 +127,7 @@ \section{Заполнение CD}
Lisp при объявлении глобальных переменных. \footnote{Использование глобальной переменной
имеет ряд недостатков~--- например, вы можете использовать только одну базу данных в
каждый момент времени. В гл. 27, имея за плечами уже солидный багаж знаний о Lisp, вы
- будете готовы к созданию более гибкой базы данных. В~\ref{ch:6} главе вы также увидите, что даже
+ будете готовы к созданию более гибкой базы данных. В~\ref{ch:06} главе вы также увидите, что даже
использование глобальных переменных в Common Lisp более гибко, чем это возможно в других
языках.}
@@ -642,7 +642,7 @@ \section{Выполнение запросов к базе данных}
перестанет существовать после выхода из \code{artist-selector}\footnote{Техническое
обозначение функции, ссылающейся на свободную переменную в своём контексте~---
\textbf{замыкание}, потому что функция как бы <<смыкается>> над переменной. Я подробнее
- расскажу о замыканиях в главе~\ref{ch:6}.}. Функция выглядит странно, но она работает именно так,
+ расскажу о замыканиях в главе~\ref{ch:06}.}. Функция выглядит странно, но она работает именно так,
как нам нужно~--- если вызвать \code{artist-selector} с аргументом <<Dixie Chicks>>, мы
получим анонимную функцию, которая ищет CD с полем \code{:artist}, содержащим \code{"Dixie
Chicks"}, и если вызвать её с аргументом \code{"Lyle Lovett"}, то мы получим другую функцию,
@@ -803,8 +803,8 @@ \section{Обновление существующих записей — пов
\end{lstlisting}
Ещё одна новинка в этой функции\translationnote{Автор ещё забыл упомянуть макрос \stdcode{WHEN}. Он
- будет подробно рассмотрен в~\ref{ch:7} главе.}~--- приложение \stdcode{SETF} к
-сложной форме вида \code{(getf row :title)}. Я расскажу о \stdcode{SETF} подробнее в главе~\ref{ch:6},
+ будет подробно рассмотрен в~\ref{ch:07} главе.}~--- приложение \stdcode{SETF} к
+сложной форме вида \code{(getf row :title)}. Я расскажу о \stdcode{SETF} подробнее в главе~\ref{ch:06},
но сейчас вам просто нужно знать, что это общий оператор присваивания, который может
использоваться для присваивания друг другу различных "вещей", а не только переменных. (То,
что \stdcode{SETF} и \stdcode{GETF} имеют настолько похожие имена~--- просто совпадение. Между
View
16 chapter-04.tex
@@ -91,7 +91,7 @@ \section{Вскрытие чёрного ящика}
вычисления форм.
Это разделение чёрного ящика имеет несколько следствий. Одно из них состоит в том, что вы
-можете использовать s-выражения, как вы видели в главе~\ref{ch:3}, в качестве внешнего формата для
+можете использовать s-выражения, как вы видели в главе~\ref{ch:03}, в качестве внешнего формата для
данных, не являющихся исходным кодом, используя \textbf{READ} для их чтения и
\textbf{PRINT} для их записи\footnote{Не все объекты Lisp могут быть записаны таким
образом, чтобы их можно было снова прочитать. Но все, что вы можете прочитать с помощью
@@ -263,7 +263,7 @@ \section{S-выражения как формы Lisp}
пустой список) является допустимой формой Lisp, а также любой список, который содержит
символ в качестве своего первого элемента, также является допустимой формой
Lisp\footnote{Другой, редко используемый тип форм Lisp~--- это список, первый элемент
- которого является лямбда-формой. Я обсужу этот тип форм в главе~\ref{ch:5}}.
+ которого является лямбда-формой. Я обсужу этот тип форм в главе~\ref{ch:05}}.
Конечно, интересным является не синтаксис форм Lisp, а то, как эти формы вычисляются. Для
целей дальнейшего обсуждения вам достаточно думать о процедуре вычисления как о функции,
@@ -279,7 +279,7 @@ \section{S-выражения как формы Lisp}
остальное. Символ, вычисляемый как форма, трактуется как имя переменной и вычисляется в её
текущее значение\footnote{Существует одна иная возможность~--- возможно определить
\textit{символьный} макрос (\textit{symbol macros}), который вычисляется немного по
- другому. Мы не должны беспокоиться об этом}. Я обсужу в главе~\ref{ch:6} как переменные получают
+ другому. Мы не должны беспокоиться об этом}. Я обсужу в главе~\ref{ch:06} как переменные получают
свои значения впервые. Также следует заметить, что некоторые <<переменные>> являются старым
программистским оксюмороном: <<константными переменными>>. Например, символ \textbf{PI}
именует константную переменную, чьё значение~--- число с плавающей точкой, являющееся
@@ -288,7 +288,7 @@ \section{S-выражения как формы Lisp}
Все остальные атомы (числа и строки) являются типом объектов, который вы уже рассмотрели
-- это \textit{самовычисляемые объекты} (\textit{self-evaluating objects}). Это означает,
что когда выражение передаётся в воображаемую функцию вычисления, оно просто
-возвращается. Вы видели примеры самовычисляемости объектов в главе~\ref{ch:2}, когда набирали 10 и
+возвращается. Вы видели примеры самовычисляемости объектов в главе~\ref{ch:02}, когда набирали 10 и
\code{"hello, world"} в REPL.
Символы также могут быть самовычисляемыми в том смысле, что переменной, которую именует
@@ -356,7 +356,7 @@ \section{Специальные операторы}
Нужно сказать, что не все операции могут быть определены как функции. Так как все
аргументы функции вычисляются перед её вызовом, не существует возможности написать
функцию, которая ведёт себя как оператор \textbf{IF}, который вы использовали в
-главе~\ref{ch:3}. Для того, чтобы увидеть почему, рассмотрим такую форму:
+главе~\ref{ch:03}. Для того, чтобы увидеть почему, рассмотрим такую форму:
\begin{lstlisting}
(if x (format t "yes") (format t "no"))
@@ -432,7 +432,7 @@ \section{Специальные операторы}
В общем, специальные операторы реализуют возможности языка, которые требуют специальной
обработки процедурой вычисления. Например, некоторые специальные операторы манипулируют
окружением, в котором вычисляются другие формы. Один из них, который я обсужу детально в
-главе~\ref{ch:6},~--- \textbf{LET}, который используется для создания новой \textit{привязки
+главе~\ref{ch:06},~--- \textbf{LET}, который используется для создания новой \textit{привязки
переменной} (\textit{variable binding}). Следующая форма вычисляется в 10, так как
второй x вычисляется в окружении, где он именует переменную, связанную оператором
\textbf{LET} со значением 10:
@@ -446,7 +446,7 @@ \section{Макросы}
В то время как специальные операторы расширяют синтаксис Common Lisp, выходя за пределы
того, что может быть выражено простыми вызовами функций, множество специальных операторов
ограничено стандартом языка. С другой стороны, макросы дают пользователям языка способ
-расширения его синтаксиса. Как вы увидели в главе~\ref{ch:3}, макрос~--- это функция, которая
+расширения его синтаксиса. Как вы увидели в главе~\ref{ch:03}, макрос~--- это функция, которая
получает в качестве аргументов s-выражения и возвращает форму Lisp, которая затем
вычисляется на месте формы макроса. Вычисление формы макроса происходит в две фазы:
сначала элементы формы макроса передаются, не вычисляясь, в функцию макроса, а затем
@@ -471,7 +471,7 @@ \section{Макросы}
назначает смысл s-выражениям, используемым в \textit{форме} этого макроса (macro form),
посредством того, как он использует эти s-выражения для генерации своего
расширения. Другими словами, каждый макрос определяет свой собственный локальный
-синтаксис. Например, макрос переворачивания списка задом наперёд из главы~\ref{ch:3} определяет
+синтаксис. Например, макрос переворачивания списка задом наперёд из главы~\ref{ch:03} определяет
синтаксис, в котором выражение является допустимой перевёрнутой формой если её список,
будучи перевёрнутым, является допустимой формой Lisp.
View
10 chapter-05.tex
@@ -50,7 +50,7 @@ \section{Определение новых функций}
определённых случаях. Например, функции, которые преобразуют значения из одного типа в
другой, иногда используют символ \code{->} в имени. Или функция, которая преобразует
строку в виджет, может быть названа \code{string->widget}. Наиболее важное соглашение по
-именованию, затронутое в главе~\ref{ch:2}, заключается в том, что лучше создавать составные имена,
+именованию, затронутое в главе~\ref{ch:02}, заключается в том, что лучше создавать составные имена,
используя знак минус вместо подчёркивания или использования заглавных букв внутри имени.
Так что \code{frob-widget} лучше соответствует стилю Lisp, чем \lstinline!frob_widget! или
\code{frobWidget}.
@@ -84,7 +84,7 @@ \section{Определение новых функций}
значение функции. Для возврата из любой точки функции может использоваться специальный
оператор \code{RETURN-FROM}, что я продемонстрирую через некоторое время.
-В главе~\ref{ch:2} мы написали функцию \code{hello-world}, которая выглядела вот так:
+В главе~\ref{ch:02} мы написали функцию \code{hello-world}, которая выглядела вот так:
\begin{lstlisting}
(defun hello-world () (format t "hello, world"))
@@ -323,7 +323,7 @@ \section{Именованные параметры}
\end{lstlisting}
Когда функция вызывается, каждый именованный параметр связывается со значением, которое
-указано после ключевого слова, имеющего то же имя, что и параметр. Вернёмся к главе~\ref{ch:4}, в
+указано после ключевого слова, имеющего то же имя, что и параметр. Вернёмся к главе~\ref{ch:04}, в
которой указывалось, что ключевые слова~--- это имена, которые начинаются с двоеточия, и
которые автоматически определяются как константы, вычисляемые сами в себя FIXME
(self-evaluating).
@@ -535,7 +535,7 @@ \section{Функции как данные, или Функции высшег
В Lisp функции являются просто другим типом объектов. Когда вы определяете функцию с
помощью \code{DEFUN}, вы в действительности делаете две вещи: создаёте новый
объект-функцию, и даёте ему имя. Кроме того, имеется возможность, как вы
-увидели в главе~\ref{ch:3}, использовать \code{LAMBDA} для создания функции без
+увидели в главе~\ref{ch:03}, использовать \code{LAMBDA} для создания функции без
имени. Действительное
представление объекта-функции, независимо от того, именованный он или нет, является
неопределённым~--- в компилируемых вариантах Lisp, они вероятно состоят в основном из
@@ -561,7 +561,7 @@ \section{Функции как данные, или Функции высшег
В действительности, вы уже использовали \code{FUNCTION}, но это было
замаскировано. Синтаксис \lstinline!#'!, который вы использовали в
-главе~\ref{ch:3}, является синтаксической обёрткой для \code{FUNCTION}, точно
+главе~\ref{ch:03}, является синтаксической обёрткой для \code{FUNCTION}, точно
также как и \code{'} является обёрткой для \code{QUOTE}.\footnote{Лучше всего
рассматривать \code{FUNCTION} как специальный вид экранирования.
Экранирование символа предотвращает его вычисление, оставляя сам символ, а не
View
4 chapter-06.tex
@@ -57,7 +57,7 @@ \section{Основы переменных}
поскольку целые числа и знаки являются неизменяемыми значениями, не имеет значения тот
факт, что может существовать несколько копий <<одного и того же>> объекта в различных
переменных. Это и является корнем различия между \textbf{EQ} и \textbf{EQL}, описанного
- в главе~\ref{ch:4}.}. Поэтому присваивание переменной нового значения изменяет то, на
+ в главе~\ref{ch:04}.}. Поэтому присваивание переменной нового значения изменяет то, на
\textit{какой} объект ссылается переменная (то есть, куда ссылается переменная), но не
оказывает никакого влияния на объект, на который переменная ссылалась ранее. Однако,
если переменная содержит ссылку на изменяемый объект, вы можете использовать данную
@@ -583,7 +583,7 @@ \section{Константы}
\section{Присваивание}
После создания привязки вы можете совершать с ней два действия: получить текущее значение
-и установить ей новое значение. Как вы видели в главе~\ref{ch:4}, символ вычисляется в
+и установить ей новое значение. Как вы видели в главе~\ref{ch:04}, символ вычисляется в
значение переменной, которую он именует, поэтому вы можете получить текущее значение
просто обратившись к переменной. Для присваивания нового значения привязке используйте
макрос \textbf{SETF}, являющийся в Common Lisp оператором присваивания общего назначения.
View
2  chapter-10.tex
@@ -103,7 +103,7 @@ \section{Числа}
\section{Запись чисел}
Вы можете записывать числа разными способами; вы видели это на примерах в
-главе~\ref{ch:4}. Однако, очень важно помнить о разнице между процедурой чтения Lisp и
+главе~\ref{ch:04}. Однако, очень важно помнить о разнице между процедурой чтения Lisp и
процедурой вычисления -- процедура чтения отвечает за преобразование текста в объекты
Lisp, а процедура вычисления, работает только с этими объектами. Для конкретного числа с
конкретным типом может быть множество способов текстовой записи, все из которых
View
2  chapter-11.tex
@@ -704,7 +704,7 @@ \section{Хэш-таблицы}
\code{MAKE-HASH-TABLE} символ \code{EQUAL} в качестве именованного аргумента \code{:test}.
Кроме того, для аргумента \code{:test} можно использовать ещё два символа: \code{EQ} и
\code{EQUALP}. Конечно, эти символы являются именами стандартных функций сравнения
-объектов, которые я обсуждал в главе~\ref{ch:4}. Однако, в отличие от аргумента \code{:test},
+объектов, которые я обсуждал в главе~\ref{ch:04}. Однако, в отличие от аргумента \code{:test},
передаваемого функциям работы с последовательностями, аргумент \code{:test} функции
\code{MAKE-HASH-TABLE} не может использовать произвольную функцию~--- допустимы только
значения \code{EQ}, \code{EQL}, \code{EQUAL} и \code{EQUALP}. Это происходит потому, что
View
2  chapter-12.tex
@@ -492,7 +492,7 @@ \section{Комбинирование утилизации с общими ст
\section{Функции для работы со списками}
-\ref{sec:12-list-funcs}
+\label{sec:12-list-funcs}
Теперь вы готовы взглянуть на библиотеку функций для работы со списками, которую
предоставляет Common Lisp.
View
4 chapter-13.tex
@@ -331,7 +331,7 @@ \section{Таблицы поиска: ассоциативные списки и
\end{lstlisting}
Другой разновидностью таблицы поиска является список свойств (property list или сокращённо
-plist), который вы использовали для представления строк базы данных в главе~\ref{ch:3}.
+plist), который вы использовали для представления строк базы данных в главе~\ref{ch:03}.
Структурно список свойств есть просто обычный список с ключами и значениями в виде
чередующихся величин. К примеру, список свойств отображающий \code{A}, \code{B}, и
\code{C}, на \code{1}, \code{2}, и \code{3} это просто список \code{(A 1 B 2 C 3)}. На
@@ -352,7 +352,7 @@ \section{Таблицы поиска: ассоциативные списки и
аргумента \code{:test}, \code{GETF} всегда использует \code{EQ} для проверки, совпадает ли
переданный ей ключ с ключами списка свойств. Следовательно, вам никогда не следует
использовать числа или знаки в качестве ключей в списке свойств; как вы видели в
-главе~\ref{ch:4}, поведение \code{EQ} для этих типов данных фактически не определено. На
+главе~\ref{ch:04}, поведение \code{EQ} для этих типов данных фактически не определено. На
практике, ключи в списке свойств почти всегда являются символами, с тех пор как списки
свойств были впервые изобретены для реализации <<свойств>> символов, то есть произвольных
отображений между именами и значениями.
View
2  chapter-14.tex
@@ -109,7 +109,7 @@ \section{Чтение данных из файлов}
T
\end{lstlisting}
-Как было показано в главе~\ref{ch:3}, возможно использовать \code{PRINT} для того, чтобы выводить
+Как было показано в главе~\ref{ch:03}, возможно использовать \code{PRINT} для того, чтобы выводить
объекты Lisp на печать в удобочитаемой форме. Итак, когда необходимо хранить данные в
файлах, \code{PRINT} и \code{READ} предоставляют простой способ делать это без создания
специального формата данных и парсера для их прочтения. Вы даже можете использовать
View
2  chapter-18.tex
@@ -608,7 +608,7 @@ \section{Условное Форматирование}
С модификатором \textit{двоеточие} \lstinline!~[! может содержать только два выражения;
директива использует единственный аргумент и обрабатывает первое выражение, если аргумент
\code{NIL}, и второе выражение в противном случае. Вы уже использовали этот вариант
-\lstinline!~[! в главе~\ref{ch:9} для формирования сообщений типа принять/отклонить FIXME
+\lstinline!~[! в главе~\ref{ch:09} для формирования сообщений типа принять/отклонить FIXME
(pass/fail message? сработало или не сработало?), таких как это:
\begin{lstlisting}
View
4 chapter-20.tex
@@ -48,7 +48,7 @@ \section{Манипуляции с лексическим окружением}
конструкция, такая как \code{DO} или \code{DOTIMES}, которая связывает лексические
переменные, будет развёрнута в \code{LET} или \code{LET*}.\footnote{Конечно, с технической
точки зрения эти конструкции также будут развёрнуты в \code{LAMBDA}-выражения,
- поскольку, как я упоминял в главе~\ref{ch:6}, \code{LET} может быть определена (и это
+ поскольку, как я упоминял в главе~\ref{ch:06}, \code{LET} может быть определена (и это
делалось в ранних версиях Lisp) в виде макроса, который развёртывается в запуск анонимной
функции.} Специальный оператор \code{SETQ} является одним из операторов для доступа к
лексическому окружению, поскольку он может быть использован для установки значений
@@ -976,7 +976,7 @@ \section{Другие специальные операторы}
используется для <<связывания>> некоторых вещей с компилятором, что не изменит работу
вашего кода, но позволит генерировать лучший код~--- более быстрый, более понятные
сообщения об ошибках, и т.п.\footnote{Одним из объявлений, которая имеет влияние на
- семантику программы, является объявление \code{SPECIAL}, упомянутое в главе~\ref{ch:6}.}
+ семантику программы, является объявление \code{SPECIAL}, упомянутое в главе~\ref{ch:06}.}
Мы коротко обсудим объявления в главе~\ref{ch:32}.
Еще два оператора~--- \code{LOAD-TIME-VALUE} и \code{PROGV}, используются не часто, и
View
2  chapter-22.tex
@@ -324,7 +324,7 @@ \section{Equals-Then итерирование}
тем, как любая из этих переменных получит своё новое значение (подобно тому как это
происходит в \textbf{DO}). В этом случае вы можете объединить несколько предложений
\code{for}, заменив все кроме первого \code{for} на \code{and}. Вы уже видели такую запись
\textbf{LOOP}-версии вычисления чисел Фиббоначи в главе~\ref{ch:7}. Вот другой вариант,
\textbf{LOOP}-версии вычисления чисел Фиббоначи в главе~\ref{ch:07}. Вот другой вариант,
основанный на двух предыдущих примерах:
\begin{lstlisting}
View
4 chapter-27.tex
@@ -15,7 +15,7 @@ \section{База данных}
Основной проблемой базы данных из главы~\ref{ch:03} является то, что есть только одна
таблица~--- список, сохранённый в переменной \code{*db*}. Другой проблемой является то,
что код ничего не знает о типах значений, сохранённых в разных колонках. В
-главе~\ref{ch:3} вы просто использовали функцию общего назначения \code{EQUAL} для
+главе~\ref{ch:03} вы просто использовали функцию общего назначения \code{EQUAL} для
сравнения значений в колонках при выборе строк из базы данных, но у вас были бы проблемы,
если бы вы хотели бы сохранить значения, которые не сравниваются с помощью\code{EQUAL},
или если бы вы хотели сортировать строки в базе данных, поскольку не такой функции
@@ -412,7 +412,7 @@ \section{Выполнение запросов к базе данных}
После того, как загрузите данные в базу данных, вам необходимо найти способ выполнять
запросы к ней. Для приложения работающего с файлами MP3 вам понадобятся более сложные
-функции выполнения запросов чем те, которые были использованы в главе~\ref{ch:3}. Сейчас
+функции выполнения запросов чем те, которые были использованы в главе~\ref{ch:03}. Сейчас
вам нужна не только возможность извлекать строки отвечающие определённым критериям, но
также и возможность делать выборку только определённых колонок, и возможно, сортировать
строки по определённой колонке. В соответствии с теорией реляционных баз данных,
View
64 pcl-ru.tex
@@ -19,7 +19,6 @@
%\usepackage{fonts}
-
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{epigraph}
@@ -31,51 +30,7 @@
\usepackage{centernot}
\usepackage{empheq}
\usepackage{needspace}
-%% \usepackage{colonequals}
-%\usepackage{tikz}
-%\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,%
-% decorations.pathreplacing,decorations.pathmorphing,shapes,%
-% matrix,shapes.symbols,decorations.shapes,decorations.markings,fit}
-
-\makeatletter
-
-%\pgfarrowsdeclare{mdiamond}{mdiamond}%{{-.5bp}{14.5bp}}
-%{
-% \pgfutil@tempdima=0.4pt%
-% \advance\pgfutil@tempdima by.275\pgflinewidth%
-% \pgfarrowsleftextend{+-.5\pgflinewidth}
-% \pgfutil@tempdimb=14\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth
-% \pgfarrowsrightextend{+\pgfutil@tempdimb}
-%}
-%{
-% \pgfutil@tempdima=0.4pt%
-% \advance\pgfutil@tempdima by.275\pgflinewidth%
-% \pgfsetdash{}{+0pt}
-% \pgfsetroundjoin
-% \pgfpathmoveto{\pgfqpoint{14\pgfutil@tempdima}{0\pgfutil@tempdima}}
-% \pgfpathlineto{\pgfqpoint{4\pgfutil@tempdima}{4\pgfutil@tempdima}}
-% \pgfpathlineto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}
-% \pgfpathlineto{\pgfqpoint{4\pgfutil@tempdima}{-4\pgfutil@tempdima}}
-% \pgfpathclose
-% \pgfusepathqstroke
-%}
-\makeatother
-
-%\tikzset{
-%>=stealth',
-% phase/.style={
-% rectangle,
-% rounded corners,
-% % fill=black!10,
-% draw=black, very thick,
-% text width=10em,
-% minimum height=3em,
-% text centered},
-% line/.style={draw=black, thin, ->,font=\scriptsize},
-% noarrow/.style={draw=black, thick, -},
-% every edge/.style={->,thick,shorten >=1pt},
-% into/.style={->, thin, dotted, >=mdiamond}
-%}
+\usepackage{indentfirst}
%%% На команде \matrix спотыкается HeVeA, я ее (пока что?) просто затыкаю. -- goga
%HEVEA\renewcommand{\matrix}{}
@@ -93,8 +48,8 @@
\usepackage{longtable,citehack,enumerate}
\usepackage[nottoc]{tocbibind}
-%\usepackage[unicode,colorlinks=true,a4paper]{hyperref}
-\usepackage[unicode,a4paper]{hyperref}
+%\usepackage[unicode,colorlinks=true]{hyperref}
+\usepackage[unicode]{hyperref}
\definecolor{pfpcolorint}{rgb}{0,0.4,0}
\definecolor{pfpcolorext}{rgb}{0,0,0.6}
@@ -116,8 +71,6 @@
\usepackage{fancyvrb}
-\usepackage{url}
-\usepackage[dvips]{color}
\usepackage{stmaryrd}
\usepackage{marginnote}
\usepackage{array}
@@ -197,18 +150,17 @@
\newcommand{\stdcode}[1]{\code{#1}}
%% proper captions for figures, etc
-%\usepackage{caption}
+\usepackage{caption}
+
%\DeclareCaptionLabelSeparator{Period}{.\hskip.5em}
%\captionsetup{compatibility=false,margin={-1cm,0pt},oneside,labelsep=Period,labelfont=sc,
%format=plain,justification=raggedright,singlelinecheck=false,skip=10bp}
% Добавляем точку после номера раздела
-%% \usepackage{titlesec}
-%% \titlelabel{\thetitle.\quad}
-%% \usepackage[dotinlabels]{titletoc}
-
-%%
+\usepackage{titlesec}
+\titlelabel{\thetitle.\quad}
+\usepackage[dotinlabels]{titletoc}
% settings for floating objects
\renewcommand{\topfraction}{.9}
Please sign in to comment.
Something went wrong with that request. Please try again.