Sunday, September 4th, 2016 23:46
Первое издание книги Гитлера «Моя борьба» редактировал Рудольф Гесс. Вот он и был первым граммар-наци.
Исторический факт.

Тезис, который я принимаю как аксиому: автор, уважающий своего читателя, сделает текст не только интересным, но и приятным для чтения. Автор, который следит за тем, чтобы его текст ещё и красиво выглядел, показывает своему читателю, что его, читателя, удобство важно для автора.

Секрет в форматировании. Хорошо оформленный текст — это текст, который выровнен по обоим краям, в котором там, где надо, дефисы заменены на короткие или на длинные тире, а кавычки-"лапки" заменены на кавычки-«ёлочки» и на кавычки-„правильные лапки”. В таком тексте содержание сносок должно быть не там, где придётся, а там, где надо. Я понимаю как само собой разумеющееся, что между иллюстрацией и обтекающим её текстом должно быть достаточное расстояние. Что вместо буквы «х» в выражении «5 на 7 метров» должен стоять типографский знак ×: «5×7 метров», — и что при указании температуры «27 градусов Цельсия» должен быть использован знак градуса ° («27°C»), а не буковка «о». Что знаки копирайта © и зарегистрированной торговой марки ™ должны находиться на своих местах вместо уродливых и неказистых (c) и (tm). Что для указания ударения используется не заглавная буква («докУменты»), а знак ударения («докуме́нты»). В идеале переводы строк в тексте должны располагаться только в разрешённых местах, (например, тире не могут отделяться от предыдущего, а предлоги — от следующего за ними слова переводом строки), а сам текст должен быть полностью ёфицирован, но я могу понять и тех, кто утверждает, что последние требования — это уже придирчивость и мелочность. Скажем, в своих произведениях — будь то рассказы или посты в ЖЖ — я за соблюдением правильного переноса строк не слежу.

Текст, который выглядит, как результат труда наборщика, приятнее читать, чем простыню неформатированного текста, который ассоциируется прежде всего с неоформленным потоком сознания. У меня неформатированный текст автора, который ещё не считается мной безусловно интересным, чаще всего вызывает реакцию из разряда «Сначала оформи свой поток сознания, а потом уже изливай его на окружающих». Я не читаю длинные и плохо оформленные тексты неизвестных мне авторов. Думаю, я не один такой.

Работа по правильному оформлению текста выполняется обычно во время написания — сюрприз! — ручками. Часть работы берут на себя Word или Pages, — они умеют заменять дефисы на тире, а кавычки-"лапки" на «ёлочки». Но при всём желании они не заменят буковку «х» на знак ×, потому что программа не может вмешиваться в замысел автора: вдруг автор сознательно поставил букву «х» между цифр, и знак × там совсем не нужен?

Поэтому автор, который заботится о своих читателях, наизусть знает таблицу Alt-кодов и умеет пользоваться клавишей Alt на Макинтоше. Или так, или у него есть редактор, электронный или из плоти и крови, который выполняет всю грязную работу за него. Писатели, которые пользуются ноутбуками без отдельной цифровой клавиатуры, априори оказываются в проигрышном положении по сравнению с остальными, потому что они не могут использовать Alt-коды без танцев с бубном.


Но, допустим, автор вложил душу не только в содержание, но и в форматирование, и написал со всех сторон прекрасный текст, со всеми кавычками и дополнительными знаками на своих местах. После чего он выкладывает его на Самиздат и обалдевает, потому что самиздатовскому движку на чужое форматирование как-то наплевать.

Лирическое отступление:
Внешний вид Самиздата, как и внешний вид библиотеки Мошкова, не менялся с 1996 года. Чёрный текст на сером фоне — именно так и выглядели Интернет-сайты середины девяностых, белым по умолчанию фон стал только в Internet Explorer 4. Подозреваю, что движок библиотеки Мошкова тоже не менялся с тех самых пор.

Самиздат публикует HTML. Все остальные форматы, которые он якобы принимает, на самом деле конвертируются движком Самиздата в HTML согласно неким мудрёным правилам, которые ни один нормальный человек понять не сможет. Форматирование при этом теряется полностью, кроме самого базового: наклонный шрифт обычно остаётся наклонным, полужирный — полужирным.

Но раз уж Самиздат публикует HTML, то, наверное, написав хороший, красивый, годный текст в HTML-кодах, его можно победить? Да ничего подобного. Самиздатовский движок плевать хотел на атрибуты style, на которые завязано форматирование современных сайтов. Более того, он самовольно заменяет кавычки-ёлочки на знаки дюйма, тире — на дефисы, опускает часть символов и вообще ведёт себя по-свински. Я многократно жаловался на его самоволие, (примеры: 1 2 3 4).

Но не всё так плохо, Самиздат можно заставить показать всякие специальные символы, если вместо прямого их использования в тексте указать их численные коды. Мнемоники HTML-символов Самиздат тоже не понимает, поэтому, например, вместо знака × надо писать не легко запоминаемое выражение ×, а зубодробительное число ×, запомнить которое невозможно. При этом фраза «пять на семь метров» превращается в строку «5 × 7 метров», которую надо писать ручками, потому что, как я уже говорил выше, никакая автоматика это сама по себе не сделает. (Символ с численным кодом 160 между пятёркой и знаком × — это неразрывный пробел, пробел, на котором нельзя выполнять перенос строки. В математических выражениях — а 5 × 7 это математическое выражение — знак операции ставится на той же строке, на которой находится первый операнд выражения. У символа с кодом 160 тоже есть мнемонический аналог —  , от non-breakable space, и эту мнемонику понимают все сайты в Интернете, включая ЖЖ, кроме Самиздата).

Но писать всё это ручками во время набора текста произведения глупо, потому что и вдохновение уходит, и текст становится совершенно нечитаемым. Поэтому поначалу ради форматирования текстов для Самиздата я перед публикацией копировал текст из Word`а в Notepad и с помощью множества операций «Найти и заменить» менял настоящие символы на то, что Самиздат сумеет переварить и показать. Ctrl+H, найти все символы «, заменить их на «, заменить все. Найти все символы », заменить на », заменить все. Найти все длинные тире, подумать, с какой стороны от них должен быть неразрывный пробел, (в случае прямой речи — после тире, в других случаях — перед), заменить тире с пробелом на соответствующую строку. Этот процесс занимал у меня примерно час.

В качестве вишенки на торте добавлю, что после выкладывания текста на Самиздат приключения не заканчиваются. Текст надо периодически обновлять, хотя бы чтобы исправлять опечатки. Но любое редактирование выложенного текста Самиздатовскими средствами, кроме полной замены содержимого, снова убивает всё форматирование. Суть тут вот в чём: Самиздат знает, что последовательность символов « представляет собой открывающую кавычку «, поэтому в окне редактирования он покажет именно кавычку. А при сохранении отредактированного текста многомудрая автозамена наткнётся на странную кавычку « и заменит её на лапку ". Поэтому всё столь тяжело выстраданное форматирование для Самиздата будет жить только до первого редактирования текста на сайте.

Так что созданный в предыдущем абзаце текстовый файл с хорошо отформатированным текстом не удалялся, а сохранялся. В дальнейшем все исправления опечаток вносились сразу в два места: в Word`овский документ, который был основным, и — немедленно — в файлик Notepad с форматированием. Для исправления одной опечатки нужно полностью заменять текст на сайте содержимым этого файла. Обновление перед выкладыванием на сайт копируется в отдельное окно Notepad, форматируется согласно требованиям Самиздата, затем переносится в нужное место файлика с форматированием, и опять же весь текст на Самиздате меняется на текст из файлика.

Да, две копии, обязательно и непременно синхронизируемые друг с другом вручную. Основной набор текста идёт в Word, выкладывание обновлений выполняется через текстовый файл Notepad с уже подготовленным форматированием. Я до сих пор так и работаю: для каждого произведения, выложенного в моём разделе на Самиздате, у меня есть текстовый файл с форматированной для Самиздата версией.

Так вот, больше всего времени уходит именно на форматирование текстов. Когда я говорил про час времени, который требуется на обработку одного-единственного файла, я не шутил. Размер файла, впрочем, практически не имеет значения; для медленного человеческого восприятия нет разницы, заменяет «Поиск и замена» двадцать вхождений или сорок тысяч.


Однако программист я или почём?! Я слегка повспоминал C# и написал программу, которая выполняет всё форматирование за меня. Фактически, одной кнопкой. Эта же программа заботится о правильной нумерации сносок (примечание: программа корректирует только сноски внизу страницы, так называемые footnotes; сноски в самом конце текста — endnotes — остаются нетронутыми). Кроме того, я встроил в программу вызов сервиса «Типограф» студии Артемия Лебедева, который превращает некрасивый текст в красивый, расставляя правильные тире и кавычки, а также заботясь о неразрывной связи предлогов с последующими за ними словами. С помощью моей программы можно выровнять края текста слева и справа, сделать отступы в начале абзацев и удалить пустые строки, которые движок Самиздата превращает в огромные пустые пространства между абзацами.

Результат своей работы — програмку размером 188 килобайт — я запихнул на GitHub, начальный релиз можно скачать здесь. В моём разделе на GitHub есть возможность посмотреть на весь проект целиком, скачать его, посмотреть в исходники, исправить, если надо. Начальный релиз с бинарником находится тут. Программа требует .NET Framework версии 4.5, которую я тщательно и продуманно выбирал по принципу «нуачо».


Работа с этой программой проста и безыскусна. Допустим, я написал гениальный рассказ:

При наборе этого текста я вручную набирал символы параграфа, градуса и длинного тире, а короткие тире, кавычки, сноску, знак ® и оба заголовка Ворд поставил сам.

Если загнать его в Самиздат простым копированием текста, получится следующее:

Ну, как выглядит? Не слишком здорово, правда? Поэтому откроем мою программулину, скопируем весь текст из Ворда и вставим его в верхнюю панельку. Получается что-то примерно такое:

Окно программы сразу после копирования текста из Word. Красненьким обведены некоторые (не все!) символы, которых Самиздат не понимает.

Можем отправить текст в «Типограф», можем не отправлять. Ради этого примера я пользоваться «Типографом» не стал. Жмём самую главную кнопку «Сделать п» «ЧИСТКА!». Намного более короткий и более разумный текст появляется в нижней панельке:

В нижней панельке выведен текст после чистки. Зелёными стрелочками указаны HTML-коды некоторых символов, с которыми Самиздат устраивает проблемы. Программа сработала, как надо, и заменила символы на соответствующие им числовые коды.

Допустим, это у нас не весь текст, а только обновление, поэтому сноски в нём должны начинаться с номера 5. Отмечаем это в правой панельке, жмём «Да!». Делаем отступ у параграфов в десять пробелов, выравниваем края слева и справа, так, чтобы текст занимал только 50% ширины экрана, и проверяем, как выглядит конечный результат:

Сноски начинаются с номера 5, у параграфов отступ по 10 пробелов, текст отцентрован и выровнен по обоим краям так, чтобы занимать 50% от площади экрана.

До публикации осталось только удалить пустые строки, — я говорил выше, что Самиздат нервно воспринимает пустые строки между параграфами. Но копировать текст в отдельный файл лучше всего будет именно на этом шаге, до удаления пустых строк. В текстовом файле проще ориентироваться, когда абзацы визуально отделены друг от друга, — а ориентироваться придётся, хотя бы ради исправления неизбежных опечаток. Ну и, понятно, если это — продолжение, то сноски из этого отрывка должны располагаться в нужном месте, после сносок из предыдущих отрывков…

Но если полученный результат устраивает, то удаляем пустые строки специальной галочкой, копируем текст из нижней панельки и вставляем его в редактор текста в Самиздате. И получаем следующее:

Конечный результат — скриншот с Самиздата.

Моя программа не следит за тем, чтобы предлоги и следующие за ними слова оставались на одной строке, поэтому на скриншоте слова «на» и «термометр» оказались на разных строках. «Типограф» Лебедева эту проблему решает, но зато он заменяет многоточие (типографский знак «ellipsis», …) на три отдельных точки, а я этого не люблю.

Последний тизер следующего обновления романа «Живёшь только трижды» был подготовлен с помощью этой программы секунд за тридцать, включая создание текстового файла. С часа до тридцати секунд — неплохая экономия, верно?

Излишне говорить, что эту же программу можно использовать для форматирования любого HTML-текста, вплоть до ЖЖ.


Дисклеймер:

Я не представляю себе, что именно может пойти не так при работе с этой программой, — она не пишет на жёсткий диск и не обращается к нему, Интернет ей нужен только для того, чтобы отправлять данные в «Типограф», и кроме работы с текстом она не делает ничего, — но, если что-то нехорошее всё-таки случится во время её использования, я не виноват.

Известный баг есть один. При использовании шортката Ctrl+V в верхнюю панельку текст может запоститься дважды, причём первый раз — в том виде, в котором он был в Ворде, WYSIWYG. Почему это происходит — я понятия не имею; операцию «Paste» я перехватываю и обрабатываю по-своему. С другой стороны, я с C# не настолько хорошо знаком, чтобы утверждать, что я закрыл абсолютно все потайные лазейки. Решается эта проблема использованием соответствующей кнопочки вместо Ctrl+V.

Кроме того, помните вот этот мой пост? Так вот, сия программулина является прекрасным примером для этого поста. Я писал крошечную утилитку, решающую одну-единственную задачу, причём решающую её так, как надо мне. Поэтому всё плохое, что я понаписал в том своём посте про подобные программы, к этой программулине относится в полной мере. Справедливости ради скажу, что я начал писать её задолго до того, как задумался о том, что пишу код неправильно.

Tags:
Sunday, September 4th, 2016 23:46 (UTC)
Огромное спасибо! Очень полезный подарок!
Но "ё" вместо "е" в текстах приходится заменять всё равно вручную.
Monday, September 5th, 2016 06:50 (UTC)
Word 2016 в настройках имеет галочку принудительной ёфикации («Enforce strict ё»).
Monday, September 5th, 2016 00:42 (UTC)
Здорово как! Когда надумаю длинный текст писать воспользуюсь обязательно.
А альтернатив Самиздату нет, кстати?
Меня из всех типографских проблем меньше всего напрягают кавычки. Хоть елочками, хоть лапками... вообще без разницы) Читаю легко, не застревает взгляд.
Monday, September 5th, 2016 07:01 (UTC)
Есть немало литературных сайтов и форумов. При всей своей неуклюжести Самиздат — один из лучших, потому что, зная HTML, можно заставить его отобразить текст именно так, как задумывалось.

Кавычки-"лапки" на «ёлочки» моя программа сама не исправляет, это делают или Word при наборе текста, или «Типограф».

Я как-то читал рассказ, в котором кавычки-"лапки" использовались очень часто, и даже вложения многоуровневые были, а ещё там чуть ли не на каждой строке было что-то с дюймами. К концу рассказа я уже не понимал авторскую мысль, потому что не сумел уследить, в каком месте кавычки — это дюймы, а в каком они просто заканчивают цитату…
Monday, September 5th, 2016 12:04 (UTC)
Мне кажется, кавычки-елочки более приятны при чтении бумажного текста, а вот в интернете (лично мне) больше нравятся кавычки-лапки.
Monday, September 5th, 2016 16:19 (UTC)
По-моему, текст на бумаге и на экране должен выглядеть одинаково. WYSIWYG, и всё такое.
Monday, September 5th, 2016 16:25 (UTC)
Этак ты еще потребуешь, чтобы и цвета выглядели одинаково!
Куплю тонну краски в RGB, продам в CMYK - наварюсь!..
Monday, September 5th, 2016 02:59 (UTC)

Ого, не знала, что у СИ такие проблемы

Monday, September 5th, 2016 07:04 (UTC)
Справедливости ради скажу, что это самая крупная проблема Самиздата.

PS: Я в том смысле, что это проблема неприятная, но решаемая, а все остальные проблемы мельче, так что им вполне можно пользоваться.
Edited Sep. 5th, 2016 16:18 (UTC)
Thursday, September 8th, 2016 14:22 (UTC)
Я не выкладывалась на СИ, но твоя программка меня впечатлила)
И да, все же СИ - один из самых популярных ресурсов в своем жанре.
Thursday, September 8th, 2016 14:51 (UTC)
Ну вот, теперь можешь выкладываться :)

Меня больше всего радует возможность делать нормальные сноски. Это часто бывает нужно, хотя бы для того, чтобы предупредить читателей ("Не вздумайте воспользоваться следующим отрывком как руководством по оказанию первой медицинской помощи!"), а самостоятельно создавать их — это тот ещё кошмар. Эта программа позволяет использовать Вордовский механизм для сносок почти без изменений, только исправляет нумерацию.
Wednesday, September 28th, 2016 15:03 (UTC)
Интересно, а всякие Лит-Эра, Продаман? Как там дела обстоят?
Мне пока так и нечего особо выкладывать, увы)
Wednesday, September 28th, 2016 15:20 (UTC)
Я их не пробовал ещё. Мне хватает Самиздата :) Теперь-то, с программой :)
Wednesday, September 28th, 2016 15:23 (UTC)
))) Понятно)
Monday, September 5th, 2016 03:45 (UTC)

эээ... лайк?    :)

Monday, September 5th, 2016 07:02 (UTC)
Спасибки! :)
Monday, September 5th, 2016 07:34 (UTC)
Какая полезная штука! (Пользоваться не буду, но сохранить надо) ))
Monday, September 5th, 2016 09:28 (UTC)
Почему же не пользоваться? :)
Tuesday, September 6th, 2016 14:19 (UTC)
Ничего крупнее ЖЖ постов я всё равно не пишу, а если и пишу, то в сеть не выкладываю. А только для ЖЖ - лень заморачиваться.
:)
Tuesday, September 6th, 2016 17:44 (UTC)
А зачем тогда тебе может понадобиться программа? Зачем её сохранять?
Wednesday, September 7th, 2016 08:10 (UTC)
По двум причинам.
1. Мне вполне может когда-нибудь понадобиться отформатировать большой текст. Вероятность - процентов 20 - довольно много.
2. У меня есть друзья, которым можно её прорекламировать при случае.
Wednesday, September 7th, 2016 11:38 (UTC)
Отлично, буду рад бесплатной рекламе :)
Monday, September 5th, 2016 07:52 (UTC)
Большое спасибо за текст! Очень ценная информация.

И в виде - ну, не знаю, иллюстрации? казуса?.. - скрин того, как этот пост отобразился у меня, пока не был открыт отдельной вкладкой.

Monday, September 5th, 2016 09:27 (UTC)
А в чём вы его читаете? Для отделения первого абзаца от эпиграфа я использую CSS-свойство "clear: right;", которое не воспринимается страницей друзей в новом виде (***.livejournal.com/feed) и некоторыми программами-клиентами ЖЖ.
Monday, September 5th, 2016 09:55 (UTC)
если девять бит - два байта, то у Эс четырёхсполовиннобитный байт! :-Р
Monday, September 5th, 2016 10:01 (UTC)

Это к чему? Всем известно, что в некоторых байтах по девять битов, потому что каждый четвёртый байт — високосный.

Monday, September 5th, 2016 10:15 (UTC)
"Всего восемь вариантов для одного узла. Два узла дают 64 варианта, три — 512, что соответствует двум байтам"
(deleted comment)
Monday, September 5th, 2016 14:58 (UTC)
два [восьмибитных] байта = 28 × 28 = 216 = 65536 комбинаций = 16 бит минимум, как ни крути.
Monday, September 5th, 2016 16:10 (UTC)
Да, верно. Затупил. Прошу прощения, буду переделывать. Спасибо!
Monday, September 5th, 2016 17:05 (UTC)
Там вполне может оказаться аналог (72,64) кода Хэмминга - самое то по размеру ;)
Monday, September 5th, 2016 18:20 (UTC)
автор, уважающий своего читателя, сделает текст не только интересным, но и приятным для чтения. Автор, который следит за тем, чтобы его текст ещё и красиво выглядел, показывает своему читателю, что его, читателя, удобство важно для автора.

Ну у меня для вас плохие новости.
Monday, September 5th, 2016 19:44 (UTC)
Поверни iPhone на 90° 🙂
Monday, September 5th, 2016 19:37 (UTC)
Автоматических ёфикаторов, к сожалению, не существует. Нет возможности программным способом безошибочно определить, где во фразе «все все выпили» должна быть буква «ё».
Wednesday, September 7th, 2016 21:34 (UTC)
А Рудольф Гесс был не только редактором, но и достойным соавтором знаменитой книги. Он заложил в нее теоретическую часть, посвященную "жизненному пространству Германии". То, чему научился у Хаусхофера.
Тоже исторический факт:)
Thursday, September 8th, 2016 06:08 (UTC)
Креативный граммар-наци :) Звучит, как описание вакансии :)
Thursday, September 8th, 2016 10:16 (UTC)
Кстати, эту вакансию после Гесса так никто и не занял. Борман хоть и стал партийным руководителем, но заместителем фюрера так и не стал:)
Thursday, September 8th, 2016 11:19 (UTC)
Спорный вопрос. Он стал секретарём фюрера, и вовсю пользовался этой должностью. Обычно он требовал, чтобы проситель аудиенции с фюрером излагал дело ему (Борману), Борман представлял вопрос фюреру вместе с планируемым решением, Гитлер чаще всего просто кивал или говорил "Соглсен", и это побуждало Бормана составлять огромные меморандумы и многостраничные программные проекты с инструкциями.

Это даже не "заместитель", это уже получается "руководитель", раз он заставлял весь Рейх выполнять собственные решения, пусть и под прикрытием подписи фюрера :)
Thursday, September 8th, 2016 12:05 (UTC)
Вы правильно говорите: Борман был "серым кардиналом" при Гитлере. А Гесс был самостоятельной политической личностью, к тому же любимцем народа. У Бормана было много другого, но не это.