MathType и Indesign

Статус
Закрыто для дальнейших ответов.

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign

Что касается WMF. Например у меня. да и не только, слетает межбуквенный интерва (т.е. буквы сливаются, притом с любыми шрифтами).

Может скажите чего-нибудь лесного о скрипте. Хорошая вещь или так второстепенная? :confused:
 

Onger

12 лет на форуме
Сообщения
389
Реакции
75
Ответ: MathType и Indesign

Может скажите чего-нибудь лесного о скрипте. Хорошая вещь или так второстепенная?
да, хорошая штука, но хочу потестить и сказать уже конкретно что нравиться что нет, и что можно улучшить.
 

SergHos

20 лет на форуме
Сообщения
219
Реакции
31
Ответ: MathType и Indesign

@diz@ сказал(а):
Если сделать такой pdf, то при открытии его на mac проблем тоже не будет?
Я просто на всякий случай хочу уточнить. С WMF все понятно. Но это все же Windows Metafile. В общем, есть ли положительная практика?
Пока не пробовал. Сними мой файл test_page.pdf и попробуй сам.
СХ
 

AndreySci

Участник
Сообщения
4
Реакции
0
Ответ: MathType и Indesign

Maks_Tsofin
Прежде всего спасибо за скрипт. И несколько вопросов и пожеланий. Версия, которая присоединена к вашему сообщению здесь, корректно работает (в смысле, сдвигает EPS'ы по Baseline) с inDesign CS, однако не работает в указанном смысле в CS2 (XP Pro Rus, Adobe Creative Suite CS2). На Adobe Exchange я нашел версию, которая вроде бы для CS2 (InsertEqnCS2.js), однако работа этого скрипта сопровождается ошибкой. Приведу здесь элемент кода, похоже, содержащий ошибку:
-------------------------------------------------------
try
{
z=mySearch[k-i-1].place(mf1);
if (myRadioButContr1.checkedState)
{ //если EPS
b=Array(0,getPos(mf1)*0.353);
z.parent.move(null,b);
//z.parent.fit(FitOptions.contentToFrame);
}
}
catch (error)
{
alert("Error with "+i+" equation");
}
-------------------------------------------------------
Так вот, Debugger на команде z.parent.move(null,b) выдает ошибку "The requested distance would cause this inline item to exceed its container boundary." Baseline, как видно в Debugger'е, определяется корректно функцией getPos, множитель 0.353, как я понимаю, это пересчет числа Baseline в EPS'е в величину сдвига в iD, нет? Тогда может быть у меня не верно указаны единицы измерения в CS2? Что интересно (может быть только для меня, я в этом деле человек новый...), если я сдвигаю не родительский объект (фрейм), а картинку в нем, т.е. z.move(null,b), ее сдвиг происходит, но на явно завышенное расстояние... Ну вот и вопрос - я что-то не так делаю, или все же ошибка в этой команде? И не подскажете, где можно посмотреть описание команд, используемых в *.js?
И еще, вся строка, в которую вставляется фрейм с EPS'ом, сдвигается вниз, обеспечивание неналожение фрейма на предыдущую строку, однако фрейм при это может перекрывать последующую строку. Нельзя ли обеспечить опускание последующей строки до нижней границы фрейма в этом скрипте? Или это следует обеспечить на этапе подготовки макета до импорта EPS'ов? Еще раз спасибо, ваш скрипт может оказаться чрезвычайно полезным при импорте большого количества inline формул, а проблема с русским языком решается заменой вставленных EPS'ов на соответствующие WMF'ы, например, с помощью InChange.js.
 

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign

Вообще 0,353 -- это перевод пунктов в мм. Т.е в ID должны быть правильно настроены единицы измерения, а именно должны быть мм.
Во всяком случае у меня все работает нормально. И при этом вся моя редакция верстает учебники где количество формул доходит до 10000.

Что касается наездов на нижнюю строку. Да действительно это проблема если там нет формул. Хочу отметить и тот факт, что отбивка от верхней строки работает только при автоинтерлиньяже. Я думал про это, но нормального алгоритма решения проблемы, действительно разумного, который бы не создавал проблем при переверстке, правке и т.д. не придумал. Более того, как показывает практика, если формул, действительно много, то это вовсе не проблема. А если мало то и фиг с ним. Увеличения интерлиньяжа у одного из символов нижней строки быстро решает данную проблему.

Что касается набора команд. Они самые приметивные. Их описание можно найти в любом описании по скриптингу в ID (на форуме были ссылки, да и в документации по CS2 есть пдф). Мне тяжело себя назвать большим специалистом в скриптинге, но обладая элементарными знаниями javascript и vb + немного ангельско языка+серого вещества, и скрипты пишутся.

Что касется русского языка. В Word'е прежде чем делать eps-ы я делаю wmf-ы. После вставки епсов я попрасту переименовываю вмфы в епсы, обновляю связи и все. Единственное приходится мудрить если работа полноцветная (вмфы имеют RGB, что при цветоделении дает разложение фомул на 4 краски). Для этого у меня есть специальная примочка под Acrobat.

А вообще спасибо за положительные отзывы. Если будут проблемы и предложения с удовольствием займусь доработкой. Вот версия на русском для CS2
 

AndreySci

Участник
Сообщения
4
Реакции
0
Ответ: MathType и Indesign

Maks_Tsofin сказал(а):
Вообще 0,353 -- это перевод пунктов в мм. Т.е в ID должны быть правильно настроены единицы измерения, а именно должны быть мм.
Все верно, выбрал миллиметры и все заработало! Да, стыдно мне, я ведь по сути вычислил, где может находиться ошибка, однако не пошел до конца и не поэксперементировал с единицами измерения документа... :(

Maks_Tsofin сказал(а):
Что касается наездов на нижнюю строку. Да действительно это проблема если там нет формул. Хочу отметить и тот факт, что отбивка от верхней строки работает только при автоинтерлиньяже. Я думал про это, но нормального алгоритма решения проблемы, действительно разумного, который бы не создавал проблем при переверстке, правке и т.д. не придумал. Более того, как показывает практика, если формул, действительно много, то это вовсе не проблема. А если мало то и фиг с ним. Увеличения интерлиньяжа у одного из символов нижней строки быстро решает данную проблему.
Все таки ручками этот интерлиньяж задавать/подбирать, а ведь сдвиг потребный уже по сути посчитала ваша функция getPos... Ну а если вставлять формулы по порядку не снизу вверх (так делает ваш скрипт, нет?), а сверху вниз, т.е. основные подвижки в верхней части (относительно помещаемого в данный момент уравнения) макета уже произошли и после вставки данного уравнения для первого символа в следующей строке (можно ли такой переход осуществить?) задать интерлиньяж -getPos? Лучше было бы задать для какого нибудь из символов вблизи центра строки (это бы уменьшило вероятность ошибки при чистовом подтягивании и сокращении длины верхней части макета, т.е. ситуации, когда этот символ перейдет в строку выше), однако не исключено помещение следующего уравнения (уравнений) в ту же строку, что и предыдущего, что вызовет большую подвижку и переход ключевого символа на строку следующую... Как вариант предотвращения такого сдвига в общем случае можно рассмотреть возможность растягивания/сжатия заменяемого inline-текста до ширины помещаемого на его место уравнения...

Maks_Tsofin сказал(а):
Что касается набора команд. Они самые приметивные. Их описание можно найти в любом описании по скриптингу в ID (на форуме были ссылки, да и в документации по CS2 есть пдф). Мне тяжело себя назвать большим специалистом в скриптинге, но обладая элементарными знаниями javascript и vb + немного ангельско языка+серого вещества, и скрипты пишутся.
Серость между ушами вроде имеется (я уже давно пишу довольно сложные программы на C, правда, это все математическое моделирование), английский тоже в порядке, так что надо изучать матчасть - документацию...

Maks_Tsofin сказал(а):
Что касется русского языка. В Word'е прежде чем делать eps-ы я делаю wmf-ы. После вставки епсов я попрасту переименовываю вмфы в епсы, обновляю связи и все.
Интересно, и iD нормально интерпретирует такую графику? Хотя конечно, это же не OS, он скорее всего определяет тип графики по заголовку в ее файле...

Maks_Tsofin сказал(а):
Единственное приходится мудрить если работа полноцветная (вмфы имеют RGB, что при цветоделении дает разложение фомул на 4 краски). Для этого у меня есть специальная примочка под Acrobat.
Не буду пока донимать вас вопросами об этой примочке, поскольку пока что речь идет о чернобелом документе, который, как я понимаю, можно при экспорте в PDF целиком перегнать в CMYK.

Maks_Tsofin сказал(а):
А вообще спасибо за положительные отзывы. Если будут проблемы и предложения с удовольствием займусь доработкой. Вот версия на русском для CS2
Уже есть одно предложение. Хорошо бы, если вдруг понадобилось отредактировать уже помещенное уравнение, апдейтить и сдвиг по Baseline. Т.е., отредактировал я уравнение, закрыл MathType (фрейм сейчас выделен), и запускаю скрипт:

function getPos(formula) {...)
var myDoc = app.activeDocument;
var MySel = myDoc.selection[0];
MySel.fit(FitOptions.frameToContent);
var fname="Путь к графическому файлу в выделенном фрейме"; // вот это я пока не знаю как задать
MySel.move(null,Array(0,getPos(File(fname))*0.353));

Поразумевается, что редактировали EPS.
 

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign

Учел пожелания. Скрипт доделал. Теперь EPSы и WMFы (!!!!!) ставит на место при обновлении. Новую версию выложу позже.
 

AndreySci

Участник
Сообщения
4
Реакции
0
Ответ: MathType и Indesign

Maks_Tsofin сказал(а):
Теперь EPSы и WMFы (!!!!!) ставит на место при обновлении.
Ну, чудес не бывает, Baseline в WMF нет, поэтому полагаю, что вы реализовали некую синхронизацию набора EPS'ов с лежащими где-то рядом WMF'ами, нет? Или на лету дублирование реализовали... И вставляете WMF, используя информацию из идентичного графически EPS'а?

Maks_Tsofin сказал(а):
Учел пожелания.... Новую версию выложу позже.
Большое спасибо!
 

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign

Ха-ха. Я тоже так думал. Но хорошо поковырявшись нашел.

Итак. Выкладываю новую версию скриптов. Просьба побыстрее дать отзывы.

Внес следующие изменения
1. Работает смещение относительно базовой линии как для EPS так и для WMF.
2. При обновлении формулы подправляет ее положение в тексте.

Убедительная просьба, знатокам английского сделать перевод readme_ru.txt.
 

Вложения

  • EqnCS2.rar
    4.7 КБ · Просм.: 1 314

SergHos

20 лет на форуме
Сообщения
219
Реакции
31
Ответ: MathType и Indesign - возвращаясь к напечатанному

Maks_Tsofin сказал(а):
Что касается WMF. Например у меня. да и не только, слетает межбуквенный интерва (т.е. буквы сливаются, притом с любыми шрифтами).:
Забавно, у меня в последней работе возник такой же эффект. Метод лечения (найденный экспериментально) оказался очень странным: шрифт встает на место при незначительном изменении размера кегля русских букв, то есть именно того фрагмента, который уезжает. В моем случае я менял 10,5 на 10,6 pt. Шрифт NewtonC, которым я уже сделал много аналогичных работ, и до сих пор все было нормально. Оперативка вроде тоже та же самая.
Может, знатоки шрифтов окажут любезность и дадут теоретическое обоснование?
СХ
 

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign - возвращаясь к напечатанному

Отзывы будут?
 

Onger

12 лет на форуме
Сообщения
389
Реакции
75
Ответ: MathType и Indesign - возвращаясь к напечатанному

Maks_Tsofin сказал(а):
Макс — пока всё просто супер, у меня в качестве "теста" твоего скрипта, сотрудник вчера закончил верстать книгу с более 1000 формул.
Так что ты просто таки спас его от самоубийства '))', в виду подстройки каждой формулы под базовую линию.
 

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign - возвращаясь к напечатанному

А что использовал wmf или eps. И какие шрифты?
 

AndreySci

Участник
Сообщения
4
Реакции
0
Ответ: MathType и Indesign - возвращаясь к напечатанному

Maks_Tsofin
Действительно, работает даже с WMF! Посмотрел исходник, как я понимаю, вам удалось в бинарнике найти информацию, которая пересчитывается в пресловутый baseline, здорово, большое спасибо!

Я немного приболел, приду в себя и сделаю readme_en.txt...
А с проблемой "слета" интервала я тоже столкнулся, сегодня вечером попробую дома рецепт лечения от SergHos...
 

Onger

12 лет на форуме
Сообщения
389
Реакции
75
Ответ: MathType и Indesign - возвращаясь к напечатанному

Использовал wmf. Шрифты — символьные: Symbol Proportional (Bitstream) для курсива, Symbol, для текста — Питербург (трутайп версию), extra math: MT Extra.
Правда иногда были глюки, но совет SergHos с уменьшением, увеличением на одну долю пункта помог.
Т.е. насколько понял, глючит он в первую очередь с курсивом при сохранении в этом формате (поэтому для символов и был использован бистримовский шрифт).
На будушее скорее всего сделаю для Питербурга и Ньютона отдельную версию в фонтлабе (в смысле — курсив отделю).
 

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign - возвращаясь к напечатанному

Вот сижу и думаю, стоит ли делать чтобы нижняя строка отбивалась. На сколько это актульно? В моей практике это сильно немешало. Да и нормальный алгоритм(чтобы быстро работало) на ум не приходит.

Что публика может сказать по данному поводу?
 

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Ответ: MathType и Indesign

Во-первых, спасибо Maks_Tsofin за очень полезный скрипт.

Есть одно соображение по поводу MathType и eps. Как известно, он корректно пишет кириллицу, если вводить ее через Edit/Insert Symbol. Там же можно назначить горячие клавиши для кириллических букв (например Alt+б для буквы "б" и т. д.), и в этом случае кириллица тоже выводится корректно. Вопрос состоит в том, где Маттайп хранит пользовательские сочетания клавиш, я нигде не нашел.
 

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign

Спасибо за положительные отзывы о скрипте. Далее про MathType. Где он хранит горячие клавиши я тоже не нашел. Впрочем как и не наблюдаю сохранение русского текста в EPS при вставке через Insert Symbol...
 

@diz@

отечеств. про
15 лет на форуме
Сообщения
4 220
Реакции
1 914
Ответ: MathType и Indesign

Maks_Tsofin сказал(а):
Спасибо за положительные отзывы о скрипте. Далее про MathType. Где он хранит горячие клавиши я тоже не нашел. Впрочем как и не наблюдаю сохранение русского текста в EPS при вставке через Insert Symbol...
Насчёт русского. Срабатывает следующая операция: при вставке символа нужно в поле Range выбрать Windows. И затем набить что нужно.
Если в выборе русских букв отказано (нет их в данном множестве), то в EPS пролезут "хрюшки" или вообще ничего не будет видно.
Что за механизм - хрен его знает. У меня вообще так набивались русские только с паратайповскими Type1 шрифтами. После конверсии их в OpenType чуда не происходило и русские пропадали. Также не удалось провернуть это с "народными" Minion Pro и иже с ними, идущими с CS2.
 

Maks_Tsofin

Топикстартер
15 лет на форуме
Сообщения
150
Реакции
3
Ответ: MathType и Indesign

У меня не при каких условиях русского текста в Eps не наблюдается. Зато я разобрался что надо делать со шрифтами, чтобы они корректно работали и в MathType и в CS2. Но это не здесь должно обсуждаться.
 
Статус
Закрыто для дальнейших ответов.