Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработка предлогов в Ворде

248
09 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Вот такая нетривиальная (а может и тривиальная) задачка. В верстке предлоги не должны оставаться в конце строк. Т.е. надо, чтобы перед предлогами находился не простой пробел, а неразрывный (тогда, "если что", он будет обязательно перенесен в начало след. строки). Вот как эту задачу решить в Ворде? Т.е. надо, чтобы макрос искал одиночные и двойные символы, окруженные пробелами и заменял первый из этих пробелов на неразрывный. Вот как подойти к такой задачке?

Спасибо за возможные подсказки.
8.9K
09 декабря 2006 года
Залетин Виталий
71 / / 10.12.2005
Неразрывный пробел - это символ с кодом 160. Если я правильно понял задачу, то вот Вам приблизительно такой макрос (не забудьте выделить нужный текст):

Dim i As Long, oldSym As String * 1
Dim txt As Range, w

Set txt = Selection.Range
For i = 1 To txt.Words.Count
If txt.Words(i).Text Like "?? " Or _
txt.Words(i).Text Like "? " Then

If i > 1 Then 'Чтоб не было ошибки обращения к несуществующему слову
'Если последний символ предыдущего слова был равен пробелу...
If Asc(oldSym) = 32 Then
'... заменяем его на неразрывный пробел
Set w = txt.Words(i - 1)
w.Characters(Len(w.Text)).Text = Chr$(160)
End If
End If
End If

oldSym = Right$(txt.Words(i), 1)
Next i
248
11 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Так. Во-первых, спасибо. Во-вторых надо вчитаться (чтобы самому понимать, что к чему), в-третьих, надо испытать. Скоро буду с докладом.
267
11 декабря 2006 года
Cutty Sark
1.2K / / 17.10.2002
Извиняюсь за оффтоп, но не могу пройти мимо твоего аватара: как-то не так я представлял себе верстальщика. :D
248
11 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
дааа...Аватар - что надо... Правда с цветом кожи небольшая накладочка (я все же европеоидный тип) ;) А так, все практически один в один... :cool: (ну люблю я пропорции в туловищах, что тут поделать). А если серьезнее, то время, выигранное за счет автоматизации верстки, я трачу на некоторые хобби (в т.ч. немного и на спортзал.)
248
12 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Итак, сообщаю о результатах испытаний Виталию. Это работает оч. долго! Секунда на предложение... Видимо, надо заставить машину не перебирать все слова и измерять их длину, а сразу направить на поиск " ^?^? " или " ^? ". Причем не по всему тексту (такие условия редакторов), а только по стилю Заголовок 4. И надо (это я забыл, виноват), ставить неразр. пробел не до, а после предлогов. Т.е. не надо вычитать единицу (правильно?). Вот можно ли с учетом этого подкорретировать (или мне самому? Но покамест чего-то не получилось...):(
267
12 декабря 2006 года
Cutty Sark
1.2K / / 17.10.2002
Долго работает она не потому, что слова долго измеряет, а потому, что после каждого изменения перевёрстывает весь текст до конца. Поэтому чем ближе к концу, тем быстрее будет. Погоди, сейчас мы что-нибудь придумаем. Только сначала такие вопросы:
1. Неразрывные пробелы только в "Заголовке 4" и больше нигде?
2. Другие одно-двухбуквенные слова ("и", "а", "я", "ты" и т.п.) тоже обрастут неразрывными пробелами. Это нормально? Или надо только предлоги и частицы?
3. Ты точно ничего не забыл упомянуть? :)
267
12 декабря 2006 года
Cutty Sark
1.2K / / 17.10.2002
И ещё - было бы здорово, если бы ты зазипил сюда какой-нибудь файл для тренировок.
248
12 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Цитата:
после каждого изменения перевёрстывает весь текст до конца


Переверстывает в Ворде? А вроде ничего не видно... Или это в фоне происходит? Тогда надо бы это дело отключить (если оно отключается, конечно).
Ответы:
1. Редактор заставляет переносить предлоги только в заголовках 4 уровня.
2. "Я", "ты", "он", "она", "вместе целая страна" :p .... Таких слов в Заголовках 4 уровня не встречается (текст довольно деловой направленности). Т.е. можно смело обрабываться ВСЕ одно- и двух-. Правда РФ нельзя отрывать (!), нельзя отрывать кг, т, км (т.е. единицы измерения и ден. знаки (руб, долл,). Т.е. в перечисленных случаях надо неразвный пробел ставить как раз ДО обрабатываемого слова. Но это уже можно сделать на сл. этапе. Сначала бы справиться просто с предлогами.

(Вот вроде приаттачился test_text.doc)

Цитата:

248
12 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Цитата: Cutty Sark
Извиняюсь за оффтоп, но не могу пройти мимо твоего аватара: как-то не так я представлял себе верстальщика. :D


Придумал новую отмазку: работа уж больно тяжелая :mad: , руки сами крепчают... :D (нас... грузят, а мы крепчаем):mad:

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог