[ID CC-CC2021] Нет ли несложного способа сделать динамич. номера страниц в TOC?

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Афторы замучали менять начинку (то удаляют статьи, то прибавляют). Соотвественно приходится полуруками заменять номера страниц на новые. Недавно (;]]) узнал, что есть Cross Reference или что-то такое, которое может автоотслеживать линк на страницу. Нет ли идей, как это дело прикрутить к номерам страниц? (типа привязка по стилям).
 

xenOnn

15 лет на форуме
Сообщения
287
Реакции
45
Так ведь ToC и есть динамичный. Или у вас там кривое дерево, которое, после составления приходится вручную править?
Cross Ref по сути тоже самое, только заточено немного под другие задачи. Cross Ref это привязка не к стилю (как в переменных), а к конкретному объекту. И если у вас с оглавлении пара сотен позиций - это занятие муторное будет. Плюс если у вас не один indd-файл, а книга - вообще лучше не юзать Cross Ref, т.к. в этом случае комп может зависнуть намертво (при определённых условиях).
 

К.Т.

Участник
Сообщения
323
Реакции
337
В каком смысле полуруками?
Если всё сделано правильно, то содержание обновляется одной командой.

Могут быть случаи, когда автообновлённое содержание требует дополнительной обработки — тогда просто делается список греп-замен и посредством скрипта для замен по списку, они разные существуют. В этом случае будет две команды.
 
  • Спасибо
Реакции: Slx1

lmn1

15 лет на форуме
Сообщения
519
Реакции
215

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Есть такой скрипт: Изменение числовых значений в тексте - СКРИПТЫ для Adobe InDesign
Полезен, если содержание уже сформировано, а потом добавилось/убавилось какое-то число страниц.
Только будьте осторожны. Если в названиях статей есть цифры, то они тоже могут измениться.
Есть специально разработанные именно для работы с оглавлением:
 
  • Спасибо
Реакции: Serbel и lmn1

afalbert

10 лет на форуме
Сообщения
120
Реакции
88
Да, изменить цифирки сравнительно не сложно, но вопрос скорее в другом - как не забыть обновить содержание? или хотя бы проверить, что оно соответствует действительности?
 

afalbert

10 лет на форуме
Сообщения
120
Реакции
88

xenOnn

15 лет на форуме
Сообщения
287
Реакции
45
Можно сделать два ToC. Один вручную, с тем текстом, который нужен (или структурой, не знаю в чём там затык), а второй уже реальных, но только с номерами страниц. Это всё равно нужно будет обновлять. Зато всё будет работать.
Можно сделать на переменных, тогда и обновлять ничего не надо будет, но это будет уже не простой способ.
 

densen

15 лет на форуме
Сообщения
751
Реакции
639
Cross Reference или что-то такое, которое может автоотслеживать линк на страницу. Нет ли идей, как это дело прикрутить к номерам страниц? (типа привязка по стилям).
Cross-References очень легко прикручивается к номерам страниц.
1) Открыть панель Cross-References (CS6: Window > Interactive > Hyperlinks; CC: Window > Type & Tables > Cross-References)
2) Поставить курсор в то место, где необходимо расположить номер страницы. В панели Cross-References выбрать пункт Insert Cross-Reference (CC: New Cross-Reference)
3) В открывшемся окне рядом с Cross-Reference Format нажать на карандаш, чтобы создать формат отображения номеров страниц.
4) Выбрать там Page Number и нажать "+". Выбрать имя для формата (допустим TOC Page Number), и его Definition (Описание) должно быть <pageNum />, т.е. убрать "page " от начала. Сохранить формат, нажав на OK.
5) Вернулись к предыдущему окну. Выбрать Link To: Paragraph; Document: текущий.
6) В левой части этого окна представлен список всех абзацных стилей, на которые можно поставить слежение. Выбрать нужный (это может быть название статьи, имя автора, URL, DOI в мед. статье - выбор большой. Главное, чтобы этот стиль располагался на нужной странице). В правой части отобразятся все случаи его употребления в документе. Можно пощелкать по строкам - номер страницы под курсором будет меняться в зависимости от того, на какой странице документа находится выбранный абзац. Выбрать нужную строку, нажать ОК.
7) Продолжать до внутреннего ощущения отлично выполненной работы.

Теперь при добавлении страниц в документ нумерация страниц в TOC будет автоматически меняться.
А теперь важное: Что делать, если потребуется вместо кросс-ссылок получить реальные номера страниц? Бывают разные ситуации. Например, нужно сделать репринт одной статьи из журнала с обязательным наличием полного содержания статей этого номера.
Ответ: Выделить текст > Type > Text Variables > Convert Variable to Text.
При этом ссылка на исходную страницу как бы теряется, но все равно отслеживается. В панели Cross-References можно щелкнуть на желтый треугольник и вместо текстового номера страницы появится номер страницы ссылкой (и обновится на новый, если страница изменила свое расположение в документе).
 
  • Спасибо
Реакции: hulk1776

xenOnn

15 лет на форуме
Сообщения
287
Реакции
45
Только уточнение - СС автоматом не обновляются. Для этого нужно ткнуть в "обновить", а автор хотел чтобы ничего не делать)
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Cross-References очень легко прикручивается к номерам страниц.
1) Открыть панель Cross-References (CS6: Window > Interactive > Hyperlinks; CC: Window > Type & Tables > Cross-References)
2) Поставить курсор в то место, где необходимо расположить номер страницы. В панели Cross-References выбрать пункт Insert Cross-Reference (CC: New Cross-Reference)...
Интересно, что в сгенерированном содержании пункт Insert Cross-Ref не активен. То есть надо создать чистый текстфрейм с со списком текста из содержания (сгенерированный TOC не годится :(). И потом в них натыкать референции. Процесс небыстрый. Но когда потом (тест) страницу добавил-удалил - приятно видеть обновленные номера страниц. Надо подумать, как автоматизировать процесс. Спасибо)
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
В каком смысле полуруками?
Если всё сделано правильно, то содержание обновляется одной командой.

Могут быть случаи, когда автообновлённое содержание требует дополнительной обработки — тогда просто делается список греп-замен и посредством скрипта для замен по списку, они разные существуют. В этом случае будет две команды.
При автоматич. обновлении содержания улетает все нагороженное форматирование. А полуруками: скриптиком меняю на заданный интервал номера страниц.
 

afalbert

10 лет на форуме
Сообщения
120
Реакции
88
При автоматич. обновлении содержания улетает все нагороженное форматирование
может быть проще придумать как реализовать нагороженное форматирование с помощью греп-стилей и т.п., чтобы не делать его руками
 

xenOnn

15 лет на форуме
Сообщения
287
Реакции
45
Интересно, что в сгенерированном содержании пункт Insert Cross-Ref не активен. То есть надо создать чистый текстфрейм с со списком текста из содержания (сгенерированный TOC не годится :(). И потом в них натыкать референции. Процесс небыстрый. Но когда потом (тест) страницу добавил-удалил - приятно видеть обновленные номера страниц. Надо подумать, как автоматизировать процесс. Спасибо)
Если вам уж так приспичило городить огород такой - то содержание не нужно делать через инструменты ID, а ручками или через CC или переменные. Сделали один раз - потом его трогать уже не нужно, будет апдейтиться само.