- Сообщения
- 221
- Реакции
- 34
Друзья,
в ветке "Скриптинг" я обратился к В.Батушеву с просьбой разработать скрипт для автоматического составления Индекса. Он попросил сформулировать "техзадание". Я набросал свои соображения, и хочу опубликовать их для общего обсуждения. Присоединяйтесь.
Техзадание
Нужен скрипт, помечающий маркерами указателя определенные слова из имеющегося списка. Наверное, Вы знаете, как работает эта функция в Ворде. Напомню в двух словах: создается файл, содержащий таблицу из двух колонок; в левой даются входы указателя в виде всех словоформ (например, склонения слова), а в левой – "выходы", т.е. то, как данный термин будет выглядеть в созданном указателе. Потом программе дается команда "пометить с использованием данного файла"; она осуществляет автоматический поиск всех слов из левой колонки и вставляет туда маркеры из правой.
В принципе, устроил бы (а возможно, был бы даже лучше) полуавтоматический способ, работающий по алгоритму поиска-замены. К сожалению, программа поиска в ИнДи не ищет маркеров указателя и не сохраняет их в составе заменяющего слова. То есть если я скопирую часть слова, содержащую маркер указателя, в буфер, то при вставке содержимого буфера маркер переносится. Но при помещении того же самого в поле "заменить на" он теряется.
Поэтому на практике мои действия должны выглядеть так:
1. Отыскиваю слово в начале текста.
2. Помечаю его маркером указателя.
3. Копирую неизменяемую часть слова вместе с маркером указателя в буфер
4. Задаю эту часть слова в поиске.
5. Нахожу.
6. Перехожу из режима поиска в режим редактирования.
7. Вставляю содержимое буфера на место найденного.
И так много, много раз, со многими, многими словами.
В целом, скрипт должен выполнять примерно такой алгоритм. Идеально будет, если он сможет работать и в таком полуавтоматическом, и в полностью автоматическом (как в Ворде) режимах, по выбору.
Еще один недостаток ИнДи, который хотелось бы исправить – это его неумение удалять сразу все маркеры указателя (по крайней мере я пока такого способа не нашел). Объясню, зачем.
Обычно, если автор хочет указатель, он создает его в Ворде. И вся эта байда худо-бедно переносится в верстку (у меня кое-что теряется, но я пока не понял, кто виноват: программа или я). Но если нужно сделать два указателя, например именной и предметный, все становится несколько сложнее. Сейчас я выполняю работу именно с таким заданием. Для этого автор дал мне два одинаковых Вордовых файла. В одном составлен именной указатель, а в другом – предметный. Я заверстал тот, который с предметным, в него внесли все возможные правки, вот он готов к печати, но без именного указателя. Я планирую сделать так:
1. Создать копию файла верстки.
2. Удалить в ней маркеры указателя (руками, блин!)
3. Промаркировать имена (опять, блин, руками!)
4. Создать именной указатель.
5. Подшить его к исходному файлу.
Вот пункты (2) и (3) хотелось бы автоматизировать. К сожалению, я вряд ли успею применить Ваши умения к этой работе; ее пора сдавать. Но культура книгоиздательства в нашей стране растет, и указатели требуются все чаще.
Сергей Хос
в ветке "Скриптинг" я обратился к В.Батушеву с просьбой разработать скрипт для автоматического составления Индекса. Он попросил сформулировать "техзадание". Я набросал свои соображения, и хочу опубликовать их для общего обсуждения. Присоединяйтесь.
Техзадание
Нужен скрипт, помечающий маркерами указателя определенные слова из имеющегося списка. Наверное, Вы знаете, как работает эта функция в Ворде. Напомню в двух словах: создается файл, содержащий таблицу из двух колонок; в левой даются входы указателя в виде всех словоформ (например, склонения слова), а в левой – "выходы", т.е. то, как данный термин будет выглядеть в созданном указателе. Потом программе дается команда "пометить с использованием данного файла"; она осуществляет автоматический поиск всех слов из левой колонки и вставляет туда маркеры из правой.
В принципе, устроил бы (а возможно, был бы даже лучше) полуавтоматический способ, работающий по алгоритму поиска-замены. К сожалению, программа поиска в ИнДи не ищет маркеров указателя и не сохраняет их в составе заменяющего слова. То есть если я скопирую часть слова, содержащую маркер указателя, в буфер, то при вставке содержимого буфера маркер переносится. Но при помещении того же самого в поле "заменить на" он теряется.
Поэтому на практике мои действия должны выглядеть так:
1. Отыскиваю слово в начале текста.
2. Помечаю его маркером указателя.
3. Копирую неизменяемую часть слова вместе с маркером указателя в буфер
4. Задаю эту часть слова в поиске.
5. Нахожу.
6. Перехожу из режима поиска в режим редактирования.
7. Вставляю содержимое буфера на место найденного.
И так много, много раз, со многими, многими словами.
В целом, скрипт должен выполнять примерно такой алгоритм. Идеально будет, если он сможет работать и в таком полуавтоматическом, и в полностью автоматическом (как в Ворде) режимах, по выбору.
Еще один недостаток ИнДи, который хотелось бы исправить – это его неумение удалять сразу все маркеры указателя (по крайней мере я пока такого способа не нашел). Объясню, зачем.
Обычно, если автор хочет указатель, он создает его в Ворде. И вся эта байда худо-бедно переносится в верстку (у меня кое-что теряется, но я пока не понял, кто виноват: программа или я). Но если нужно сделать два указателя, например именной и предметный, все становится несколько сложнее. Сейчас я выполняю работу именно с таким заданием. Для этого автор дал мне два одинаковых Вордовых файла. В одном составлен именной указатель, а в другом – предметный. Я заверстал тот, который с предметным, в него внесли все возможные правки, вот он готов к печати, но без именного указателя. Я планирую сделать так:
1. Создать копию файла верстки.
2. Удалить в ней маркеры указателя (руками, блин!)
3. Промаркировать имена (опять, блин, руками!)
4. Создать именной указатель.
5. Подшить его к исходному файлу.
Вот пункты (2) и (3) хотелось бы автоматизировать. К сожалению, я вряд ли успею применить Ваши умения к этой работе; ее пора сдавать. Но культура книгоиздательства в нашей стране растет, и указатели требуются все чаще.
Сергей Хос