Создание диагональной дроби
Раньше мы уже рассмотрели способ создания диагональной дроби. Теперь продолжим эту тему.
1. Создание дроби в OpenType шрифтах с поддержкой дробей
Относительно небольшое количество шрифтов, таких, как например Adobe Garamond Pro, имеют хорошую поддержку дробей, и создать дробь в этом случае проще простого.
Выделите дробь, затем в меню панели Character выберите команду OpenType > Fractions.
Эту команду также можно найти в Панели Управления и в опциях символьного стиля (вкладка Open Type Features).
Если вы собираетесь часто использовать эту команду, имеет смысл сделать для нее клавиатурное сокращение. Для этого зайдите в меню Edit > Keyboard Shortcuts, затем из списка Product Area выберите Panel Menus, и ниже выберите команду Character:OpenType:Fractions . В выпадающем списке Context выберите значение Text, и в поле New ShortCut задайте клавиатурное сокращение, например, Command+Shift+F (Mac) или Ctrl+Shift+F (Win).
2. Метод Find/Change
Если в OpenType шрифте присутствует поддержка fractions, то получить дробь можно тоже очень легко при помощи GREP.
Установите Find what: \d+/ \d+
Change to:
Выберите Found > Found Text $0
Задайте Change Format:
Style Options: Character Style > fraction.
В InDesign CS4 в стиле абзаца можно задать Grep-стиль с вышеуказанным выражением.
В символьном стиле установите следующие параметры:
Необходимо учесть, что даты, записанные в таком формате:
22/09/2009
будут обрабатываться как дроби, что неверно. В таких случаях применяйте следующее Grep-выражение:
(?<!\d)(?<!\d/)\d+/\d+(?!/\d)(?!\d)
Если в шрифте нет поддержки дробей, то процесс получения дроби придется выполнять в несколько шагов. На первом шаге идет замена верхней части дроби на superscript.
Первый шаг:
Find what: \d+/
Change to: $0
Change Format:
Для шрифтов типа OpenType с поддержкой Numerator и Denumerator установите Numerator
Для не OpenType шрифтов придется поиграться с установками документа Edit > Preferences > Advanced Type, задав свои параметры superscript Position, subscript Position и Size setting для наилучшего визуального отображения дроби. Желательно также установить кернинг для текста как оптический. Итак, в этом случае:
Change Format: superscript.
Второй шаг:
Find what:/\d+
Set Change to: $0
Set Change Format: Denumerator или subscript.
Третий шаг:
Заметьте, что после первой процедуры Поиска/Замены косая черта дроби стала типа superscript, а после второй — subscript. Теперь ей надо вернуть нормальную величину.
Set Find what: / (косая черта)
Set Find Format: subscript
Будем менять косую черту на символ Fraction Slash, который имеет юникодовский номер 2044.
Change to: \x{2044}
Change Format:
Style Options: Character Style > [None]. (для удаления subscript style).
Basic Character Formats: Normal
Вот такие шаги надо сделать для получения диагональной дроби.
3. Скрипт FindChangeByList
Эту длинную последовательность шагов можно выполнить при помощи скрипта FindChangeByList, изменив файл FindChangeList.txt на следующее содержание.
grep {findWhat:»\\d+?/»} {appliedCharacterStyle:»superscript»} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false} set nominator
grep {findWhat:»/\\d+?»} {appliedCharacterStyle:app.documents.item(0).characterStyles.item(«subscript»)} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false} set denominator
grep {findWhat:»/»} {changeTo:»\u2044″, appliedCharacterStyle:»normal»} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false} set fraction slash
Конечно, у вас должны быть в документе стили, упомянутые в этих строках. Иначе будет выдаваться ошибка скрипта.
Будет еще удобнее, если вы вместо скрипта FindChangeByList станете использовать его модифицированный вариант, опубликованный на нашем сайте. Тогда в файл FindChangeList.txt надо будет просто добавить эти строки с заголовком ***Fractions.
Источник: http://carijansen.com/2008/08/25/indesign_fractions/
4. Скрипт gotfractions.jsx
При помощи этого скрипта можно обработать весь материал, поставив курсор в текст. Он не имеет диалогового окна. Если шрифт, которым набраны дроби, имеет поддержку дробей, то они примут нужный формат, а если поддержки нет, то ничего и не произойдет.
Строка поиска в скрипте выглядит следующим образом:
var grepPattern = «(?<![0-9])(?<![0-9]/)[0-9]+/[0-9]+(?!/[0-9])(?![0-9])»;
Скрипт найден на этой странице: http://www.yourscriptdoctor.com/automating-indesign-cs6/got-fractions.
Работоспособность проверялась на InDesign CC2017, MAC. После скачивания скрипт надо поместить в папку пользовательских скриптов.
Скачать скрипт gotfractions.jsx (zip)
Дополнительно о дробях смотрите на нашем сайте:
Последние комментарии