*Керниган Бриан В.*

*Ритчи Деннис М.*

**Язык программирования Си**

издание второе, переработанное и дополненное

*перевод с английского Вик. С. Штаркман*

*под редакцией и с предисловием Вс. С. Штаркмана*

1992 год

#### Оригинал

<a href="magnet:?dn=Kernigan_B.W.,Ritchie_D.M.-Yazyk_programmirovaniya_Si[2nd_ed][1992y][273p]-russian.scans.pdf&xt=urn:ed2k:d5e8c0a31208e386beedef99e5ed889d&xt=urn:ed2khash:d5e8c0a31208e386beedef99e5ed889d&xl=12940945">ed2k</a>
&nbsp; &nbsp; &nbsp; 
<a href="magnet:?xt=urn:btih:8819eea62b5ef892440e028c14346c327c0af8f5">torrent</a>

#### Готовая сборка

<a href="magnet:?dn=Kernigan_B.W.,Ritchie_D.M.-Yazyk_programmirovaniya_Si[2nd_ed][1992y]-russian-2aad8c8dd7.pdf&xt=urn:ed2k:b3c31e0cd69f114a0f6947ca0cc9b718&xt=urn:ed2khash:b3c31e0cd69f114a0f6947ca0cc9b718&xl=4617542">ed2k</a>
&nbsp; &nbsp; &nbsp; 
<a href="magnet:?xt=urn:btih:820f8a59958052f613fbf68a12057e4787711861">torrent</a>

#### Замечания по сборке

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
