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

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

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:
  • Аннотация:
    В помощь авторам СИ. Как создать макрос, который будет всё за вас делать... :))

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

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

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

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

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). Макрос этот доступен для всех документов, даже для тех, которые вы создали где-то на стороне и потом перенесли на свой компьютер.
Удачи!

КОНЕЦ

 Ваша оценка:

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

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

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