Cпособы расстановки ударений: собираем словарь

  • Автор темы Автор темы Skvoznyak
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Где-то неправильно сформировано условие поиска в findGlyphPreferences
Обратите внимание, у вас закоментированная строка дублировала аналогичную, причем была лишена смысла.
Тем не менее, команды поддерживаются как минимум с 5.5
Мне сложно что-то посоветовать, самому никогда такое делать не приходилось, более того, даже живого индизайна под рукой нет проверить.
Курите матчасть по ключевым словам findGlyph и findGlyphPreferences
 
Последнее редактирование:
Сейчас актуальна другая задача (сообщение #8). Виноват, что не выделил ее в отдельную тему, но для меня это лишь другой этап решения все той же задачи.
Комментарий модератора: Реализацию словаря ударений обсуждаем здесь.
 
для начала непонятно что такое 201D и зачем его превращать в 201.

алгоритм мне тоже непонятен, зачем глифы искать вообще?

я бы так делал - собрать поиском просто все слова, которые есть в публикации. сохранить те, в которых есть символ ударения (что проверяется методом String indexOf например) - извиняюсь за тавтологию - в словарь. Без ударений как ключи, с ударениями как значения. Собственно и все, дальше сохранить в файл, по надобности загружать в скрипт и либо дополнять и пересохранять, либо использовать уже для замены.
 
для начала непонятно что такое 201D и зачем его превращать в 201.
алгоритм мне тоже непонятен, зачем глифы искать вообще?

Да не нужны они вовсе. Это просто тупиковая ветвь обсуждения :)

я бы так делал - собрать поиском просто все слова, которые есть в публикации. сохранить те, в которых есть символ ударения (что проверяется методом String indexOf например) - извиняюсь за тавтологию - в словарь. Без ударений как ключи, с ударениями как значения. Собственно и все, дальше сохранить в файл, по надобности загружать в скрипт и либо дополнять и пересохранять, либо использовать уже для замены.

На уровне блоксхемы я задачу примерно так и расписал, но превратить эту схему в код я пока не в состоянии :(
 
Комментарий модератора: Реализацию словаря ударений обсуждаем здесь.
А вы не могли бы поместить в первое сообщение этой новой темы сообщение #42 из предыдущей, где я подробно сформулировал задачу?
 
Здесь это сообщение #8. Не знаю, получится ли сделать его заглавным. В любом случае все, кто потенциально может Вам помочь, — думаю, сориентируются.
Простите, у меня открылась сразу 2-я страница и я не обратил на это внимания.
 
алгоритм мне тоже непонятен, зачем глифы искать вообще?
Вообще говоря, задача была сформулирована таким образом
И вот я никак не могу сообразить, как мне из текста выбрать слова, в которых присутствует NewFont и составить из них словарь?
Т.е. есть некие глифы в некоем новом шрифте, которые надо найти и словарь из них составить.
 
а, я уже просто забыл, что ударение не одним и тем же символом везде. в любом случае это мало что меняет.
 
Вообще говоря, задача была сформулирована таким образом

Т.е. есть некие глифы в некоем новом шрифте, которые надо найти и словарь из них составить.

Ну если быть точным, то о глифах речь не шла, а шла о поиске слов, содержаших символ шрифта "NewFont" в тексте, напечатанном шрифтом "Font".
 
Ну так это оно и есть. Устанавливаете appliedFont в NewFont, glyphID в код символа ударения - и вперед, на винные склады!

Вся загвоздка в том, что в NewFont нет никакого символа ударения. Там само начертание гласных содержит в себе этот символ.
 
Тогда вам наверное нужно это
А здесь я вам даже в популярном виде на языке нашей страны накопал. Глава седьмая.
 
Последнее редактирование модератором:
Припоминаю 2-а способа для расстановки ударения вручную:
1. Если ударения растравлять вручную, то удобно пользоваться этой бесплатной прогой - http://myasnick.com/soft/typeiteasy/
2. Не актуальный. В глифах нужно выбрать шрифт Times New Roman (именно этот шрифт), в тексте встать перед буквой которой нужно поставить ударение и 2-а раза кликнуть по Unicode: 0301
 
Тогда вам наверное нужно это
А здесь я вам даже в популярном виде на языке нашей страны накопал. Глава седьмая.

Похоже, это именно то. Попробую в меру своей деревянности поиграться с этим :) Но открытым остается вопрос, как из найденных слов сделать словарь (массив) ?
 
Припоминаю 2-а способа для расстановки ударения вручную:
1. Если ударения растравлять вручную, то удобно пользоваться этой бесплатной прогой - http://myasnick.com/soft/typeiteasy/
2. Не актуальный. В глифах нужно выбрать шрифт Times New Roman (именно этот шрифт), в тексте встать перед буквой которой нужно поставить ударение и 2-а раза кликнуть по Unicode: 0301

Благодарю, но ни тот не другой способы не подходят . Мы отказались от глифов по двум причинам. Во-первых, они не всегда красиво располагаются над гласными, а во-вторых, часто конфликтуют со словарем переносов и иногда при переносе отрываются от гласной.
 
Тогда вам наверное нужно это
А здесь я вам даже в популярном виде на языке нашей страны накопал. Глава седьмая.
Не было времени заняться этой темой, и вот появилось. Итак, что у меня получается с "FindTextPreference" и что мне нужно, но пока не получается. Легко получается найти символ шрифта "NewFont" в тексте, напечатанном шрифтом "Font". Но мне нужен не символ, а слово, содержащее этот символ. Можно нагородить городуху и организовать цикл по перебору всех символов в каждом слове. Но это не изящно :) Может ли кто-нибудь подсказать более изящное решение?
 
Пример, как по найденной букве получить слово
Код:
    // Ищем английскую букву 'a' в тексте и отображаем на экране содержащее ее слово посредством ф-ции alert()
    // Внимаиние! В данном примере если в слове две искомые буквы, то это слово будет показано 2 раза
    // Перебор идет от конца к началу, но это совершенно непринципиально.
    app.changeGrepPreferences = app.findGrepPreferences = NothingEnum.nothing;
    app.findGrepPreferences.findWhat  = 'a';
    myDoc = app.activeDocument;
    myFoundItems = myDoc.findGrep();
    if(myFoundItems.length != 0)
    {
        for (var i=myFoundItems.length-1; 0 <=i; i--)
        {
                myFoundItem = myFoundItems[i];
                alert(myFoundItem.words[0].contents);
          }
      } // for
 
Пример, как по найденной букве получить слово
Код:
    // Ищем английскую букву 'a' в тексте и отображаем на экране содержащее ее слово посредством ф-ции alert()
    // Внимаиние! В данном примере если в слове две искомые буквы, то это слово будет показано 2 раза
    // Перебор идет от конца к началу, но это совершенно непринципиально.
    app.changeGrepPreferences = app.findGrepPreferences = NothingEnum.nothing;
    app.findGrepPreferences.findWhat  = 'a';
    myDoc = app.activeDocument;
    myFoundItems = myDoc.findGrep();
    if(myFoundItems.length != 0)
    {
        for (var i=myFoundItems.length-1; 0 <=i; i--)
        {
                myFoundItem = myFoundItems[i];
                alert(myFoundItem.words[0].contents);
          }
      } // for
'cooll)''alil''dans))'
 
Пример, как по найденной букве получить слово
Код:
    // Ищем английскую букву 'a' в тексте и отображаем на экране содержащее ее слово посредством ф-ции alert()
    // Внимаиние! В данном примере если в слове две искомые буквы, то это слово будет показано 2 раза
    // Перебор идет от конца к началу, но это совершенно непринципиально.
    app.changeGrepPreferences = app.findGrepPreferences = NothingEnum.nothing;
    app.findGrepPreferences.findWhat  = 'a';
    myDoc = app.activeDocument;
    myFoundItems = myDoc.findGrep();
    if(myFoundItems.length != 0)
    {
        for (var i=myFoundItems.length-1; 0 <=i; i--)
        {
                myFoundItem = myFoundItems[i];
                alert(myFoundItem.words[0].contents);
          }
      } // for
Целый день бьюсь - ничего не получается *[[ Как мне теперь найденные слова сохранить столбиком в отдельном документе (файле)?
 
Статус
Закрыто для дальнейших ответов.