*Керниган Бриан В.*
*Ритчи Деннис М.*
**Язык программирования Си**
издание второе, переработанное и дополненное
*перевод с английского Вик. С. Штаркман*
*под редакцией и с предисловием Вс. С. Штаркмана*
1992 год
#### Оригинал
ed2k
torrent
#### Замечания по сборке
1. Сборка осуществляется скриптом `build_script`, который использует `xelatex`.
Результат сохраняется в подкаталоге `build`.
2. Перед сборкой убедитесь в наличии всех пакетов, включаемых в файле
`definitions.tex` инструкциями `\usepackage` и `\RequirePackage`.
3. Перед сборкой убедитесь в наличии всех используемых шрифтов, перечисленных в
файле `definitions.tex` в параметрах инструкций `\set*font` и `\newfontfamily`.
4. Для восстановления шутки, которая присутствует в оригинальном англоязычном
издании книги:
(а) выполните сборку скриптом `build_script`;
(б) в подкаталоге `build` в файле
`Kernigan_B.W.,Ritchie_D.M.-Yazyk_programmirovaniya_Si[2nd_ed][1992y]-russian.pdf`
в разделе "Предметный указатель" найдите ключевое слово "рекурсия" и
запомните номер страницы, где оно находится;
(в) в файле
`build/Kernigan_B.W.,Ritchie_D.M.-Yazyk_programmirovaniya_Si.ind` найдите
строку
```
\item рекурсия ...
```
и в конец строки добавьте последовательность "`, \hyperpage{n}`" (без
кавычек), где вместо `n` укажите номер страницы, на которой размещён список
страниц по ключевому слову "рекурсия" и сохраните файл;
(г) из корневого каталога проекта осуществите повторную сборку командой
```Bash
xelatex -interaction=nonstopmode -output-directory build \
'Kernigan_B.W.,Ritchie_D.M.-Yazyk_programmirovaniya_Si[2nd_ed][1992y]-russian.tex'
```
#### Замечания по соответствию оригиналу
1. Исправлены замеченные опечатки и ошибки. Эти изменения относительно
оригинала отмечены в исходном коде комментариями под абзацами, в которых
произведены изменения.
2. Восстановлена буква "ё".
3. Схема дерева в разделе 6.5 книги в оригинале была выполнена моноширинным
шрифтом. Её оригинальное исполнение присутствует в исходном коде, но
закомментировано и заменено схемой, выполненной с использованием пакета
[Xy-pic][xypic-homepage]. Это сделано в связи с тем, что оригинальное
представление дерева было сочтено крайне неясным и шрифтозависимым, однако, в
своих сборках ничего не мешает вам раскомментировать моноширинное представление
дерева и использовать его.
4. Для отображения основного текста использован шрифт "Adobe Garamond Premier
Pro", однако в оригинале использовалась гарнитура "Литературная"
(ГОСТ-3489.33-72). Если удастся получить набор всех начертаний гарнитуры
"Литературная", этот недостаток будет исправлен.
5. Не удалось точно установить каким шрифтом в оригинале набраны исходные
тексты программ, но вероятнее всего это шрифт ремингтоновских печатных машинок.
Принципиально этот шрифт доступен под именем "LTC Remington Typewriter Pro", но
так как реализован шрифт с ошибками при описании глифов, использовать его не
представляется возможным до исправления ошибок. В связи с этим в данном коммите
использована несколько избыточная система замен и подстановки моноширинных
шрифтов с уменьшением кернинга. Со временем этот недостаток будет исправлен.
6. При восстановлении предметного указателя были найдены откровенные ошибки и
ряд неясностей, для разрешения которых приходилось обращаться к англоязычному
изданию. Кроме того, список ключей в переводе был асимметричен, то есть мог
быть ключ "ААА, БББ", но не быть ключа "БББ, ААА", что, если было замечено, то
исправлено. Поэтому предметный указатель имеет значительные расхождения с
оригиналом, но его полнота и точность не снижены, а наоборот увеличены.
7. Восстановлена шутка присутствующая в оригинальном англоязычном издании, но
утраченная при переводе. Шутка заключается в том, что в предметном указателе
(англ. Index) в списке номеров страниц по ключевому слову "рекурсия" (англ.
recursion) последним указан номер страницы, где и напечатано ключевое слово
"рекурсия" предметного указателя.
[xypic-homepage]:http://tug.org/applications/Xy-pic/Xy-pic.html