Господа скриптописатели! Если кого-го заинтересует и кто-либо сможет помочь - есть такая проблема (поиск включал, ничего не нашел...): верстаю книжки медицинской тематики, где довольно много слов с ударениями (латынь), причем в разных книгах могут быть разные шрифты. В свое время вышел на такое решение: сделал в одном из шрифтов символ значка ударения, и далее ставил это ударение с помощью такого алгоритма: гласная буква в слове, затем вставляется значок ударения, при необходимости этот значок ударения двигается по вертикали выше или ниже, подстраиваясь под высоту символа, затем у символа межбуквенный интервал загоняется в глубокий минус так, чтобы знак ударения встал над этим символом, затем, при необходимости, межбуквенный интервал уменьшается и знака ударения, чтобы слово смотрелось слитным.
Когда верстал в мейкере, на рабочем поле у меня стоял текстовый блок с уже подготовленными парами ударных гласных (буква + ударение). При необходимости нужный значок копировался и вставлялся туда, где нужен символ с ударением.
Сейчас перешел на ИнДиз, вместо шрифта с символом ударения использую епс-файл, где есть только знак ударения. Алгоритм остается тот же: вставить символ за буквой, если надо, поднять его выше-ниже, межбуквенными пробелами подвинуть знак ударения на место над буквой и при необходимости уменьшить межбуквенный пробел у ударения.
Но сейчас слов с ударениями стало так много, что появилась мысль: а нельзя ли это дело все автоматизировать?
Алгоритм мне видится такой: при наборе или предварительной верстке за буквами, над которыми требуется поставить знак ударения, ставится специальный символ (например, # или &), а затем запускается скрипт, который находит в тексте такую последовательность (гласная + спецзнак) и заменяет ее на последовательность (гласная + епс-файл "ударение").
Причем скрипт очень желательно иметь открытый, текстовый, с выделенным комментариями блоком, в котором можно изменять три плавающих параметра: 1. значение, изменяющее месторасположение знака ударения по вертикали (плюс-минус - вверх-вниз); 2. значение межбуквенного интервала для гласной и значение межбуквенного интервала для знака ударения (поскольку для разных гарнитур эти значения разнятся). А в идеале, для тонкой настройки, чтобы можно было модифицировать каждую гласную отдельно...
Либо нужна пара скриптов: первый, который в диалоговом режиме принимает эти параметры и модифицирует второй скрипт, который будет после этого работать с указанными параметрами до тех пор, пока не будет опять запущен первый скрипт (работаешь с одной гарнитурой - одни параметры, перешел на другую - изменил их...).
Надеюсь, что задача не слишком специфичная, и подобный скрипт (s) понадобится не только мне одному.
А, может, где-то кто-то уже решил подобную задачу? Буду благодарен за ссылку.
Контактный адрес: pk-kontakt(dog)mail.ru
Заранее спасибо, если кого-то эта задача заинтересует и он сможет помочь.
Когда верстал в мейкере, на рабочем поле у меня стоял текстовый блок с уже подготовленными парами ударных гласных (буква + ударение). При необходимости нужный значок копировался и вставлялся туда, где нужен символ с ударением.
Сейчас перешел на ИнДиз, вместо шрифта с символом ударения использую епс-файл, где есть только знак ударения. Алгоритм остается тот же: вставить символ за буквой, если надо, поднять его выше-ниже, межбуквенными пробелами подвинуть знак ударения на место над буквой и при необходимости уменьшить межбуквенный пробел у ударения.
Но сейчас слов с ударениями стало так много, что появилась мысль: а нельзя ли это дело все автоматизировать?
Алгоритм мне видится такой: при наборе или предварительной верстке за буквами, над которыми требуется поставить знак ударения, ставится специальный символ (например, # или &), а затем запускается скрипт, который находит в тексте такую последовательность (гласная + спецзнак) и заменяет ее на последовательность (гласная + епс-файл "ударение").
Причем скрипт очень желательно иметь открытый, текстовый, с выделенным комментариями блоком, в котором можно изменять три плавающих параметра: 1. значение, изменяющее месторасположение знака ударения по вертикали (плюс-минус - вверх-вниз); 2. значение межбуквенного интервала для гласной и значение межбуквенного интервала для знака ударения (поскольку для разных гарнитур эти значения разнятся). А в идеале, для тонкой настройки, чтобы можно было модифицировать каждую гласную отдельно...
Либо нужна пара скриптов: первый, который в диалоговом режиме принимает эти параметры и модифицирует второй скрипт, который будет после этого работать с указанными параметрами до тех пор, пока не будет опять запущен первый скрипт (работаешь с одной гарнитурой - одни параметры, перешел на другую - изменил их...).
Надеюсь, что задача не слишком специфичная, и подобный скрипт (s) понадобится не только мне одному.
А, может, где-то кто-то уже решил подобную задачу? Буду благодарен за ссылку.
Контактный адрес: pk-kontakt(dog)mail.ru
Заранее спасибо, если кого-то эта задача заинтересует и он сможет помочь.