Оба дадут требуемый результат, только разными способами. На каком же остановиться? Предлагаю выбрать последний вариант как наиболее универсальный, поскольку он не приведет к изменению размещения текста в ячейке по вертикали (представьте себе ситуацию, если текст был распределен по высоте ячейки: при увеличении высоты ячейки межстрочное расстояние увели чится еще больше, а вот второй вариант приемлемое расположение сохранит). При этом величина приращения для каждого отступа должна быть в два раза меньше, чтобы в итоге мы набрали ту же самую высоту.
Осталось предусмотреть вариант, когда строк не так уже и много, а расстояние до края колонки набора достаточно большое. В таком случае зададим порог (thresholdValue):
if (delta > thresholdValue)
{
delta = thresholdValue
}
8.3. Быстрый перенос таблиц из Word
Идущий в стандартной поставке InDesign фильтр, открывающий файлы с расширениями doc и rtf, позволяет напрямую работать с офисными документами - корректно обрабатывая в том числе таблицы, сноски и т. п.
Если вы верстаете публикацию на одном языке, вопросов не возникает. Однако довольно часто приходится, кроме одного варианта, создавать еще и версию на другом языке. Выходов, как поступить, всего два- либо полностью переверстывать публикацию, либо заменить только текст, а саму верстку не трогать. Как правило, выбирают второй вариант как наименее труднозатратный, при этом с обычным текстом проблем не возникает (он переносится через системный буфер, для упрощения процесса можно воспользоваться утилитой Punto Switcher. Ее основное предназначение- конвертировать ошибочно набранные в другой раскладке буквы, но есть и еще одно ценное - она позволяет хранить в памяти до 15 фрагментов скопированного текста. Иными словами, можно в Word скопировать до 15 фрагментов, переключиться в InDesign и вставлять их в нужные места до тех пор, пока лимит не исчерпается, потом снова вернуться в Word и т. д., очень удобно). Все это прекрасно подходит к работе с текстом, открытым остается вопрос с таблицами.
Поскольку переводчики переводят только текст (цифры заново не набирают), встает вопрос - каким образом они должны форматировать текст, чтобы содержимое разных ячеек осталось разграниченным? Как вариант- в качестве разграничителя по горизонтали использовать любой не встречающийся в тексте символ, например символ табуляции, а каждый ряд начинать с новой строки. Однако если таблицы большие, то лимита в 15 фрагментов явно мало и придется часто переключаться туда-сюда. Чтобы упростить процесс, были написаны два крошечных скрипта, которые позволяют вставить как всю таблицу сразу, так только выделенные ячейки.
Первый написан на Visual Basic for Applications (редактор другой язык просто не понимает)- листинг 8.10. Основное предназначение скрипта- обход ограничения механизма скриптинга InDesign, связанного с отсутствием доступа к системному буферу. Именно системному, поскольку доступ к буферу обмена самого InDesign реализован через методы сору о и paste о. Вопрос решается просто - выбранный текст копируется в пустой документ, который сохраняется в определенном месте, после чего он становится доступным скрипту через метод File. open ().