Парфе Александр Васильевич: другие произведения.

Выравнивание текста по ширине

Журнал "Самиздат": [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь]
 Ваша оценка:
  • Аннотация:
    В помощь авторам СИ. Как создать макрос, который будет всё за вас делать... :))

Александ Парфе

Выравнивание текста по ширине

(в помощь авторам СИ)

Для правильного восприятия этого текста желательно скопировать его (начиная со слова "НАЧАЛО") в документ Ворд и заменить все символы "[" на левую угловую скобку, а "]" - на правую. Потому что специальные символы тегов, во избежание путаницы при конвертировании, здесь показаны символами "[" и "]". Кому непонятно, что я такое сказал, выполните следующие действия по шагам :)

1. В настоящем документе выделите мышкой текст (от слов "НАЧАЛО" до слов "КОНЕЦ"), затем щёлкните правой клавишей мышки по выделенному тексту и в появившемся меню выберите пункт "Копировать" (по-английски "Copy").
2. Запустите Ворд.
3. Вставьте скопированный текст в документ Ворд (нажмите сочетание клавиш Ctrl+V).
4. Нажмите сочетание клавиш Ctrl+H (поиск и замена). Появится окно. В поле "Найти" вбейте символ "[", а в поле "Заменить на" впишите левую угловую скобку (т.е. нажмите одновременно с клавишей Shift клавишу, обозначенную знаком "," в английской раскладке), после чего нажмите на кнопку "Заменить все". Потом всё то же самое повторите для символа "]", заменив его на правую угловую скобку (Shift+знак "." в английской раскладке).
5. Теперь читайте полученный текст, не забыв предварительно сохранить его - в дальнейшем этот файл нам ещё понадобится.

НАЧАЛО

При заливке нового текста в раздел СИ с помощью офисного документа (*.doc) наиболее эстетически воспитанным авторам не нравится получаемый результат. Это и отсутствие красной строки, и пустые строки между абзацами, и изломанный правый край...
Хорошо известно, что абзацный отступ (красная строка) в HTML-документе выполняется тегом [dd], а собственно конец абзаца (клавиша Энтер в документе Ворд) - тегом [br]. Проще всего с выравниванием по ширине (ровный правый край текста) - для этого нужно лишь самым первым тегом документа проставить эти вот девятнадцать символов: [div align=justify], а самым последним - [/div]. В небольших текстах теги эти можно расставить вручную, а если текст на сотню килобайт или даже несколько сотен? Вот для этого случая предлагается создать макрос, который будет выполнять эту работу автоматически - всего за пару секунд!
Создать макрос (так называется крошечная программка, выполняемая процессором Ворд) может каждый, даже тот, кто никогда и краем уха не слыхивал, что такое программирование. Все действия нужно выполнять строго по шагам, описанным ниже. При этом предполагается, что у вас уже открыт Ворд (вы ведь выполнили предыдущие шаги?):

1. Нажмите сочетание клавиш Alt+F11. Запустится программная оболочка Ворда. Не пугайтесь, никакими ошибочными действиями в этом окне вы не навредите Ворду - он очень хорошо защищён от подобных атак "чайников").
2. Нажмите сочетание клавиш Ctrl+R. Слева откроется узенькое окошечко проектов (а если оно уже на месте, то и хорошо, лишнее нажатие клавиш ему не повредит).
3. Найдите в окне проектов слово "Normal" и щёлкните мышкой по плюсику слева от него (а если там вместо плюсика стоит минусик, то пропустите этот шаг). Плюсик превратится в минусик, а под словом "Normal" откроется список общих программных разделов для всех документов Ворд.
4. В списке разделов щёлкните по плюсику рядом со словом "Modules". Откроется ещё один список - список модулей, в котором, скорее всего (на вашей машине), будет только один элемент - "NewMacros". Если у вас вообще нет никакого "Modules", то просто пропустите этот шаг. На шаге намбер 5 злополучный "Modules" должен появиться у вас автоматически.
5. В меню (верхняя строка окна "Microsoft Visual Basic") выберите опцию "Insert" ("Вставить") и в выпавшем подменю щёлкните по пункту "Module" ("Модуль"). Вы добавили свой собственный модуль, в котором можете создавать макросы. В зависимости от версии вашего Ворда, модуль этот будет называться "Module1" или по-русски "Модуль1". Естественно, если до вашего прихода в этот раздел уже кто-то успел наследить, то модуль будет иметь следующий порядковый номер ("Модуль2" и т.д.)
6. В пустое окно справа от окошка проектов скопируйте текст макроса, представленный ниже (начиная со слова "Sub" и кончая "End Sub"). Помните, что ВСЕ символы "квадратная скобка" должны быть знаками тегов - левая и правая "угловая скобка"! Иначе программа просто будет выдавать ошибку.

Sub HTML_for_SI()
Dim kolParag As Integer
Dim nn As Integer
Dim centr As Boolean
Selection.HomeKey Unit:=wdStory
If Asc(Selection.Text) [] 13 Then
Selection.TypeParagraph
End If
Selection.WholeStory
kolParag = Selection.Paragraphs.Count
Selection.HomeKey Unit:=wdStory
Selection.TypeText Text:="[div align=justify]"
Selection.TypeParagraph
centr = False
For nn = 1 To kolParag - 1
Selection.MoveDown Unit:=wdParagraph, Count:=1
If centr Then
Selection.TypeText Text:="[/center]"
centr = False
End If
If Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter And Asc(Selection.Text) [] 13 Then
Selection.TypeText Text:="[center]"
centr = True
Else
If Asc(Selection.Text) = 13 Then
Selection.TypeText Text:="[br]"
Else
Selection.TypeText Text:="[br][dd]"
End If
End If
Next
Selection.TypeParagraph
Selection.TypeText Text:="[/div]"
Selection.TypeParagraph
End Sub

7. Теперь закройте окно "Microsoft Visual Basic" (нажмите клавиши Alt+F4 или щёлкните по крестику в верхнем правом углу окна).
8. Сохраните документ Ворд и закройте его.
9. Теперь откройте тот документ, который хотите оформить перед заливкой в свой раздел СИ. А лучше откройте его копию, чтобы потом, в случае чего, на меня не посыпались многочисленные шишки... :)
10. Открыли? Теперь нажмите клавиши Alt+F8. Откроется окно макросов. Если никто до вас макросов не создавал, то ваш макрос будет там первой и единственной строчкой. А если там полно всего, то найдите свой - имя у него такое: "HTML_for_SI". Выделите его и щёлкните по кнопке "Выполнить" (либо просто нажмите Энтер).
11. Насладитесь эффектом.
12. Затем сохраните файл в виде простого текста (*.txt), который и залейте в интерфейс Мошкова (путём копирования в окошко для добавления нового текста; окошко это, кстати, хоть и маленькое, но безразмерное - туда можно вливать тексты любого размера, хоть на мегатонну, если производительность вашего соединения с интернет позволяет это). Ещё один интересный момент: если вручную изменить расширение этого файла с "*.txt" на "*.htm", то этот файл тут же можно запустить и посмотреть, нормально ли оформился текст.

Помимо выравнивания текста по ширине и расстановки красных строк данная программка выполняет ещё одну полезную функцию - центрирует заголовки (в смысле - макрос выискивает не те абзацы, у которых стиль "заголовок", а обычные, но у которых проставлен формат выравнивания "По центру"). А кто немного волокёт в Бэйсике (или кто английский знает), тот может добавить и некие свои команды - главное сообразить, куда вписать нужные строки программы. :) В крайнем случае пишите мне в комментариях к этому файлу свои просьбы и предложения. Покумекаем вместе.
Ещё следует добавить, что данные 12 шагов выполняются единожды. Макрос создан! Теперь вы просто будете использовать его для своих текстов (т.е. просто выполнять шаги 9 - 12). Макрос этот доступен для всех документов, даже для тех, которые вы создали где-то на стороне и потом перенесли на свой компьютер.
Удачи!

КОНЕЦ

 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
М.Куприянова "Анделор" Д.Мухин "Артазэль. Архангел" Т.Мансурова "Великие тайны цивилизаций. 100 историй о загадках цивилизаций" М.Суворкина "Желтый пепел" В.Лещенко "Полет Кондора" Ю.Набокова "Скандал в вампирском семействе" Ю.Иванович "Раб из нашего времени-2. Шагнуть в неизвестность" М.Белозеров "Черные ангелы" С.Лысенко "Почтовый ящик пани Доры" А.Левицкий "Воин пустоши" А.Доронин "Сорок дней спустя" А.Шакилов "Война кротов" О.Мушинский "Корсары. Черный ростовщик" Е.Малиновская "Частная магическая практика. Лицензия" Т.Толстова "Коричневый дракон" К.Измайлова "Случай из практики" И.Дравин "Чужак. Барон" С.Малицкий "Блокада" И.Арсенов "Сен. Развеять скуку" Д.Распопов "Осколки Сердец" В.Коваленко "Против ветра! Андреевские флаги над Америкой" А.Глушановский "Сердце вьюги" В.Башун "Сэр Троглодит" В.Мясоедов "Новые эльфы" Д.Хван "Знак Сокола" О.Верещагин "Последний день войны" А.Левицкий, А.Бобл "Песчаный блюз"

Как попасть в этoт список

Сайт - "Художники"
Доска об'явлений "Книги"