Перше видання книги Гітлера «Моя боротьба» редагував Рудольф Гесс. Ось він і був першим грамнацист. Історичний факт.
Теза, який я приймаю як аксіому: автор, поважаючий свого читача, зробить текст не тільки цікавим, але і приємним для читання. Автор, який стежить за тим, щоб його текст ще й красиво виглядав, показує своєму читачеві, що його, читача, зручність важливо для автора.
Секрет у форматуванні. Добре оформлений текст - це текст, який вирівняний по обох краях, в якому там, де треба, дефіси замінені на короткі або на довгі тире, а лапки- "лапки" замінені на лапки- «ялинки» і на лапки- "правильні лапки" . У такому тексті зміст виносок має бути не там, де доведеться, а там, де треба. Я розумію як само собою зрозуміле, що між ілюстрацією та оточуючий її текстом має бути достатня відстань. Що замість літери «х» в вираженні «5 на 7 метрів» повинен стояти друкарський знак ×: «5 × 7 метрів», - і що при вказівці температури «27 градусів Цельсія» повинен бути використаний знак градуса ° ( «27 ° C» ), а не буква «о». Що знаки копірайту © і зареєстрованої торгової марки ™ повинні знаходитися на своїх місцях замість потворних і непоказних (c) і (tm). Що для вказівки наголоси використовується не заголовна буква ( «Документи»), а знак наголоси ( «документи»). В ідеалі переклади рядків в тексті повинні розташовуватися тільки в дозволених місцях, (наприклад, тире не можуть відокремлюватися від попереднього, а приводи - від наступного за ними слова перекладом рядка), а сам текст повинен бути повністю yoфіцірован , Але я можу зрозуміти і тих, хто стверджує, що останні вимоги - це вже прискіпливість і дріб'язковість. Скажімо, в своїх творах - будь то розповіді або пости в ЖЖ - я за дотриманням правильного перенесення рядків не стежу.
Текст, який виглядає, як результат праці складача, приємніше читати, ніж простирадло неформатированного тексту, який асоціюється насамперед з неоформлених потоком свідомості. У мене звичайний текст автора, який ще не вважається мною безумовно цікавим, найчастіше викликає реакцію з розряду «Спочатку оформи свій потік свідомості, а потім вже будеш приносити його на оточуючих». Я не читаю довгі і погано оформлені тексти невідомих мені авторів. Думаю, я не один такий.
Робота по правильному оформленню тексту виконується зазвичай під час написання - сюрприз! - ручками. Частина роботи беруть на себе Word або Pages, - вони вміють замінювати дефіси на тире, а лапки- "лапки" на "ялинки». Але при всьому бажанні вони не замінять букву «х» на знак ×, тому що програма не може втручатися в задум автора: раптом автор свідомо поставив букву «х» між цифр, і знак × там зовсім не потрібний?
Тому автор, який піклується про своїх читачів, напам'ять знає таблицю Alt-кодів і вміє користуватися клавішею Alt на Макінтош. Або так, або у нього є редактор, електронний або з плоті і крові, який виконує всю брудну роботу за нього. Письменники, які користуються ноутбуками без окремої цифрової клавіатури, апріорі виявляються в програшному становищі порівняно з іншими, тому що вони не можуть використовувати Alt-коди без танців з бубном.
Але, припустимо, автор вклав душу не тільки в зміст, а й в форматування, і написав з усіх боків прекрасний текст, з усіма лапками і додатковими знаками на своїх місцях. Після чого він викладає його на самвидав і чманіє, тому що самвидавні движку на чуже форматування якось наплювати.
Самвидав публікує HTML. Всі інші формати, які він нібито бере, насправді конвертуються движком Самвидаву в HTML згідно деяким мудрованим правилами, які жодна нормальна людина зрозуміти не зможе. Форматування при цьому втрачається повністю, крім самого базового: похилий шрифт зазвичай залишається похилим, напівжирний - напівжирним.
Але якщо вже Самвидав публікує HTML, то, напевно, написавши хороший, красивий, придатний текст в HTML-кодах, його можна перемогти? Та нічого подібного. Самвидавчу движок плювати хотів на атрибути style, на які зав'язано форматування сучасних сайтів. Більш того, він самовільно замінює лапки-ялинки на знаки дюйма, тире - на дефіси, опускає частина символів і взагалі поводиться по-свинськи. Я багато разів скаржився на його свавілля, (приклади: 1 2 3 4 ).
Але не все так погано, Самвидав можна змусити показати всякі спеціальні символи, якщо замість прямого їх використання в тексті вказати їх чисельні коди. Мнемоніки HTML-символів Самвидав теж не розуміє, тому, наприклад, замість знака × треба писати не легко запам'ятовуються вираз & times; , А зубодробильні число & # 0215; , Запам'ятати яке неможливо. При цьому фраза «п'ять на сім метрів» перетворюється в рядок «5 & # 160; & # 0215; 7 метрів », яку треба писати ручками, тому що, як я вже говорив вище, ніяка автоматика це сама по собі не зробить. (Символ з чисельним кодом 160 між п'ятіркою і знаком × - це нерозривний пробіл, пробіл, на якому можна виконувати перенос рядка. У математичних виразах - а 5 × 7 це математичний вираз - знак операції ставиться на тому самому рядку, на якій знаходиться перший операнд вираження. у символу з кодом 160 теж є мнемонічний аналог - & nbsp;, від non-breakable space, і цю мнемоніку розуміють всі сайти в Інтернеті, включаючи ЖЖ, крім Самвидаву).
Але писати все це ручками під час набору тексту твору нерозумно, тому що і натхнення йде, і текст стає абсолютно нечитабельним. Тому спочатку заради форматування текстів для Самвидаву я перед публікацією копіював текст з Word`а в Notepad і за допомогою безлічі операцій «Знайти і замінити» міняв справжні символи на те, що Самвидав зуміє переварити і показати. Ctrl + H, знайти всі символи «, замінити їх на & # 0171; , Замінити всі. Знайти всі символи », замінити на & # 0187; , Замінити всі. Знайти всі довгі тире, подумати, з якого боку від них повинен бути нерозривний пробіл, (в разі прямої мови - після тире, в інших випадках - перед), замінити тире з пропуском на відповідний рядок. Цей процес займав у мене приблизно годину.
Як вишеньки на торті додам, що після викладання тексту на Самвидав пригоди не закінчуються. Текст треба періодично оновлювати, хоча б щоб виправляти помилки. Але будь-яке редагування викладеного тексту самвидавні засобами, крім повної заміни вмісту, знову вбиває все форматування. Суть тут ось в чому: Самвидав знає, що послідовність символів & # 0171; являє собою відкриває лапки «, тому у вікні редагування він покаже саме лапки. А при збереженні відредагованого тексту Многомудрий автозамена наткнеться на дивну лапки «і замінить її на лапку". Тому все настільки важко вистраждане форматування для Самвидаву буде жити тільки до першого редагування тексту на сайті.
Так що створений в попередньому абзаці текстовий файл з добре відформатованим текстом не віддалився, а зберігався. Надалі все виправлення помилок вносилися відразу в два місця: у Word`овскій документ, який був основним, і - негайно - в файлик Notepad з форматуванням. Для виправлення однієї помилки потрібно повністю замінювати текст на сайті вмістом цього файлу. Оновлення перед викладанням на сайт копіюється в окреме вікно Notepad, форматується відповідно до вимог Самвидаву, потім переноситься в потрібне місце файлик з форматуванням, і знову ж таки весь текст на самвидаві змінюється на текст з файлик.
Так, дві копії, обов'язково і неодмінно синхронізуються один з одним вручну. Основний набір тексту йде в Word, викладання оновлень виконується через текстовий файл Notepad з уже підготовленим форматуванням. Я до сих пір так і працюю: для кожного твору, викладеного в моєму розділі на самвидаві , У мене є текстовий файл з форматованої для Самвидаву версією.
Так ось, найбільше часу йде саме на форматування текстів. Коли я говорив про годину часу, який потрібен на обробку одного-єдиного файлу, я не жартував. Розмір файлу, втім, практично не має значення; для повільного людського сприйняття немає різниці, замінює «Пошук і заміна» двадцять входжень або сорок тисяч.
Однак програміст я або почому ?! Я злегка повспоминать C # і написав програму, яка виконує все форматування за мене. Фактично, однією кнопкою. Ця ж програма піклується про правильну нумерації виносок (примітка: програма коригує тільки виноски внизу сторінки, так звані footnotes; виноски в самому кінці тексту - endnotes - залишаються недоторканими). Крім того, я вмонтував в програму виклик сервісу «Типограф» студії Артемія Лебедєва , Який перетворює негарний текст в красивий, розставляючи правильні тире і лапки, а також піклуючись про нерозривний зв'язок прийменників з подальшими за ними словами. За допомогою моєї програми можна вирівняти краю тексту зліва і справа, зробити відступи на початку абзаців і видалити порожні рядки, які движок Самвидаву перетворює в величезні порожні простори між абзацами.
Результат своєї роботи - програму розміром 188 кілобайт - я запхав на GitHub, початковий реліз можна скачати тут . У моєму розділі на GitHub є можливість подивитися на весь проект цілком , Скачати його, подивитися в вихідні, виправити, якщо треба. Початковий реліз з бінарники знаходиться тут . Програма вимагає .NET Framework версії 4.5, яку я ретельно і продумано вибирав за принципом «нуачо».
Робота з цією програмою проста і невигадлива. Припустимо, я написав геніальний розповідь:
При наборі цього тексту я вручну набирав символи параграфа, градуси і довгого тире, а короткі тире, лапки, виноску, знак ® і обидва заголовка Ворд поставив сам.
Якщо загнати його в Самвидав простим копіюванням тексту, вийде наступне:
Ну, як виглядає? Чи не занадто здорово, правда? Тому відкриємо мою программуліна, скопіюємо весь текст з Ворда і вставимо його в верхню панельку. Виходить щось приблизно таке:
Чи можемо відправити текст в «Типограф», можемо не надсилати. Заради цього прикладу я користуватися «друкарня» не став. Тиснемо найголовнішу кнопку «Зробити п» «ЧИСТКА!». Набагато більш короткий і більш розумний текст з'являється в нижній панелі:
Припустимо, це у нас не весь текст, а тільки оновлення, тому виноски в ньому повинні починатися з номера 5. Відзначаємо це в правій панелі, тиснемо «Так!». Робимо відступ у параграфів в десять прогалин, вирівнюємо краю зліва і справа, так, щоб текст займав тільки 50% ширини екрану, і перевіряємо, як виглядає кінцевий результат:
До публікації залишилося тільки видалити порожні рядки, - я говорив вище, що Самвидав нервово сприймає порожні рядки між параграфами. Але копіювати текст в окремий файл найкраще буде саме на цьому етапі, до видалення порожніх рядків. У текстовому файлі простіше орієнтуватися, коли абзаци візуально відокремлені один від одного, - а орієнтуватися доведеться, хоча б заради виправлення неминучих помилок. Ну і, зрозуміло, якщо це - продовження, то виноски з цього уривка повинні розташовуватися в потрібному місці, після виносок з попередніх уривків ...
Але якщо отриманий результат влаштовує, то видаляємо порожні рядки спеціальної галочкою, копіюємо текст з нижньої панельки і вставляємо його в редактор тексту в самвидаві. І отримуємо наступне:
Моя програма не стежить за тим, щоб приводи і наступні за ними слова залишалися на одному рядку, тому на скріншоті слова «на» і «термометр» виявилися на різних рядках. «Типограф» Лебедєва цю проблему вирішує, але зате він замінює три крапки (друкарський знак «ellipsis», ...) на три окремих точки, а я цього не люблю.
Останній тизер наступного оновлення роману «Живеш тільки тричі» був підготовлений за допомогою цієї програми секунд за тридцять, включаючи створення текстового файлу. З години до тридцяти секунд - непогана економія, вірно?
Зайве говорити, що цю ж програму можна використовувати для форматування будь-якого HTML-тексту, аж до ЖЖ.
Дисклеймер:
Я не уявляю собі, що саме може піти не так при роботі з цією програмою, - вона не пише на жорсткий диск і не звертається до нього, Інтернет їй потрібен тільки для того, щоб відправляти дані в «Типограф», і крім роботи з текстом вона не робить нічого, - але, якщо щось нехороше все-таки трапиться під час її використання, я не винен.
Відомий баг є один. При використанні шорткати Ctrl + V в верхню панельку текст може запостив двічі, причому перший раз - в тому вигляді, в якому він був у Ворді, WYSIWYG. Чому це відбувається - я поняття не маю; операцію «Paste» я перехоплюю і обробляю по-своєму. З іншого боку, я з C # не так добре знайомий, щоб стверджувати, що я закрив абсолютно всі потаємні лазівки. Вирішується ця проблема використанням відповідної кнопочки замість Ctrl + V.
Крім того, пам'ятайте ось цей мій пост ? Так ось, ця программуліна є прекрасним прикладом для цього поста. Я писав крихітну утилітки, вирішальну одне-єдине завдання, причому вирішальну її так, як треба мені. Тому все погане, що я понаписував в тому своєму пості про подібні програми, до цієї программуліна відноситься повною мірою. Справедливості заради скажу, що я почав писати її задовго до того, як задумався про те, що пишу код неправильно.
Але при всьому бажанні вони не замінять букву «х» на знак ×, тому що програма не може втручатися в задум автора: раптом автор свідомо поставив букву «х» між цифр, і знак × там зовсім не потрібний?Але якщо вже Самвидав публікує HTML, то, напевно, написавши хороший, красивий, придатний текст в HTML-кодах, його можна перемогти?
Однак програміст я або почому ?
Чи не занадто здорово, правда?
З години до тридцяти секунд - непогана економія, вірно?