Выровнять по правому краю остальную часть абзаца после табуляции

Я набираю указатель для книги, где темы указателя (сами имена/слова/элементы) должны быть выровнены по левому краю, но номера страниц, на которые делается ссылка, должны быть выровнены по правому краю – аналогично тому, что вы обычно видите в таблице. содержания.

  • Это не проблема, если это всего лишь одна строка.
  • Также нет проблем, если номера страниц переходят на следующую строку, если тема — только одна строка: просто выровняйте весь абзац по правому краю, и текст перед табуляцией автоматически выровняется по левому краю.
  • Это также не проблема, если тема переходит на следующую строку, если номера страниц умещаются на одной строке: просто выровняйте текст по левому краю и вставьте табуляцию с отступом вправо.

Проблема возникает, когда тема и номера страниц слишком длинные и не помещаются на одной строке. В таких случаях первые две (или сколько угодно) строки, содержащие тему, должны быть выровнены по левому краю; а последние две (или сколько угодно) строки, содержащие номера страниц, должны быть выровнены по правому краю. «Средняя» строка (где сосуществуют номера темы и страницы) должна иметь вкладку, чтобы она отображалась как по левому, так и по правому краю. Иллюстрация:

Пример правильного и неправильного ввода

Я могу сделать это вручную, добавляя правый отступ перед каждой строкой номеров страниц, но это довольно громоздко для длинного указателя. И я не могу придумать способ добиться этого без необходимости вручную добавлять вещи.

Есть ли способ добиться этого автоматически?

(У меня нет Quark, как упоминалось в комментарии Скотта, но у меня есть Affinity Publisher и Designer, просто на всякий случай это проще сделать там.)

@ Скотт К сожалению, у меня нет Quark. У меня есть Affinity Publisher (и Designer), хотя я никогда им не пользовался и не очень хорошо с ним знаком.

Ответы (3)

Насколько я знаю, этого добиться не так-то просто. У меня есть два возможных решения. Один из них прост, но не делает именно то, что вы хотите. Другой делает именно то, что вы хотите, но только полуавтоматический.

Решение А. Используйте выравнивание по правому краю

Этот прямолинеен. Установите для параметра « Выравнивание » текста значение «Выравнивание по правому краю» и вставьте какой-нибудь пробельный символ, например, пробел Em, за которым следует табуляция с отступом вправо между темой и номерами страниц.

Пробел просто гарантирует, что между темой и номерами страниц всегда будет пробел.

Очевидно, недостатком является то, что вам придется жить с выравниванием текста во всех других строках, кроме строки с вкладкой «Правый отступ» и последней строки.

Решение B. Используйте привязанный объект с переносом текста

Это немного сложнее. Вам нужны отдельные стили абзаца для темы и номеров страниц. Кроме того, вам нужно создать объект-разделитель с собственным стилем объекта.

Стиль абзаца темы (выделен красным)

  • Выравнивание: слева

Стиль абзаца номера страницы (синий)

  • Выравнивание: справа

  • Интерлиньяж: Общий интерлиньяж (здесь 15 pt)

  • Сдвиг базовой линии: общий интерлиньяж (здесь 15 pt)

(Дополнительный пробел между записями можно добавить с помощью Space After , но пробел не может быть меньше начального с помощью этого метода. По крайней мере, я не могу найти способ прямо сейчас.)

Укажите тему и номера страниц в отдельных абзацах. Смещение базовой линии приводит к тому, что номера страниц подскакивают на одном уровне с темой, но абзацы перекрываются:

Нарисуйте небольшой прямоугольник. Назначьте ему стиль объекта и вставьте копию в конце каждого абзаца темы.

Стиль объекта-разделителя (зеленый)

  • Параметры размера и положения > Размер > Настройка: высота и ширина

  • Параметры размера и положения> Размер> Ширина: минимальное расстояние между темой и номерами страниц (здесь 3 мм)

  • «Параметры размера и положения» > «Размер» > «Высота»: что-то ниже, чем интерлиньяж абзаца темы (здесь 3 мм).

  • Параметры привязанного объекта > Положение: встроенный

  • Обтекание текстом и другое > Обтекание текстом > Тип: Обтекание ограничивающей рамки

  • Text Wrap & Other > Offset > Bottom: любой небольшой размер, который работает (здесь 1 мм)

  • Обтекание текстом и другое > Параметры обтекания > Обтекание: правая сторона

Прямоугольник должен убедиться, что тема и номера страниц больше не перекрываются:

Без цветов результат выглядит так:

Чтобы применить этот метод

  • Убедитесь, что для параметра «Следующий стиль» в обоих стилях абзаца установлено другое значение.

  • Используйте функцию «Найти/Заменить» , чтобы заменить каждый символ табуляции символом конца абзаца .

  • Выделите весь текст и примените «Стиль темы абзаца», затем «Следующий стиль» .

  • Скопируйте объект-разделитель.

  • Используйте функцию «Найти/Заменить» , чтобы заменить каждый символ конца абзаца в стиле абзаца темы содержимым буфера обмена, за которым следует символ конца абзаца .

Это, конечно, может быть заскриптовано.

Как получить меньше места после записей, чем ведущее

Как уже упоминалось, предлагаемый метод просто поднимает номера страниц на одну строку, поэтому внизу будет пробел. Это нормально, если вам нужна целая строка между каждой записью, но раздражает, если вы хотите меньше. Вот способ лучше контролировать пространство между записями.

  • Создайте стиль символов для первой строки стиля абзаца темы , который просто устанавливает интерлиньяж на 0 .

  • В стиле абзаца темы добавьте стиль вложенных строк , который применяет этот новый стиль символов для 1 строки .

Таким образом, пространство между записями исчезает, и теперь им можно управлять, как обычно, с помощью пробела перед стилем абзаца темы (а не пробела после !).

Здесь расстояние между записями установлено равным 1 мм. Строка, затронутая новым стилем символов, окрашена в оранжевый цвет:

Недостатком является то, что весь текст перескакивает на одну строку вверх, но с этим можно легко справиться, добавив интерлиньяж к первой базовой линии в параметрах текстового фрейма текстового фрейма.

Я подозреваю, что обоснование в первом варианте может стать проблемой в некоторых местах, но второй, очень оригинальный вариант выглядит многообещающе! Я должен быть в состоянии сделать это и без сценариев: убедитесь, что следующий стиль в обоих стилях абзаца ссылается на другой; заменить вкладку знаком абзаца; выбрать все и применить стиль темы + применить следующий; скопируйте объект-разделитель; найти/изменить метку последнего абзаца в стиле темы с содержимым буфера обмена + метка абзаца. Не так многоразово, как скрипт, но, вероятно, быстрее.
У второго также есть то преимущество, что я могу использовать стиль объекта для управления пространством между темой и номером первой страницы, но настраивая параметры автоматической настройки размера.
Я рада, что вам понравилась идея! И эй, я никогда не думал, что вы можете найти/изменить содержимое буфера обмена !!! 🤯😱✨ Нашла только потому, что вы упомянули. Это изменит мою жизнь. Спасибо!
И да, я не упомянул об этом, но я сделал размер частью стиля объекта, чтобы сделать его динамичным. (Я добавляю часть вашего комментария к ответу.)
Вариант 2 действительно весьма изобретателен.
Упс, только что понял, что пробел после каждой записи не может быть меньше общего интерлиньяжа. Дополнительный пробел можно добавить, используя «Пробел после» в стиле абзаца «Номер страницы» . Я добавлю это к ответу. Раздражающий. Дайте мне знать, если вы найдете способ.
О да, когда вы используете смещение базы, вы, конечно, теряете линию. Жулик! Вернуться к чертежной доске я иду ...
Я думаю, что можно было бы не потерять строку, если умело использовать стиль символов с интерлиньяжем = 0 pt и, возможно, еще один сдвиг базовой линии, примененный к правой строке с помощью вложенных стилей. Возможно посмотрю позже.
@JanusBahsJacquet, хорошо, я нашел решение для интервала. Я добавил это в ответ. Это работает для вас?
Умный! Таким образом будет затронута только верхняя строка в каждом кадре, что должно быть легко управляемым с некоторыми тщательными настройками параметров базовой линии.
Хмммм… Я пытаюсь реализовать это сейчас, и по какой-то причине я не могу заставить интервалы работать. Мой базовый интерлиньяж составляет 12 пунктов, но независимо от того, устанавливаю ли я интерлиньяж в стиле абзаца темы на 0 пунктов или 12 пунктов, он всегда занимает 12 пунктов, оставляя пробел между каждой записью (= последняя строка номера страницы, с номерами, выбираемыми со сдвигом базовой линии) . Кажется, это связано с базовой сеткой — если я отключу Align to Grid , то он работает, но когда я его выравниваю, он прыгает вниз. Теперь, какого черта это имеет значение, когда интерлиньяж = сетка (или 0pt), а расстояние до/после = 0 мм?
На самом деле, позвольте мне исправить себя: если я отключу выравнивание по сетке в одной строке, она подпрыгнет, но если я сделаю это в стиле абзаца, тогда все строки просто подпрыгнут на одну строку, и между каждой записью все еще будет пробел. Так что не (только) связанный с сеткой в ​​конце концов… :-/
Включение выравнивания по сетке , вероятно, не очень хорошая идея, несмотря ни на что. Вы пробовали делать именно так, как я описываю? Я имею в виду использование стиля символов с ведущим = 0, а затем применить его с помощью стиля вложенных строк в первой строке стиля абзаца темы ?
А вы убедились, что один из стилей абзаца не основан на другом? Я сделал эту ошибку, и произошли непредсказуемые вещи.

Одной из функций QuarkXpress, которая мне нравилась, была возможность использовать «правый отступ» через Option/Alt-tab.

Я много лет думал , что в InDesign нет этой функции, но это не так . Этот вопрос на самом деле заставил меня копать, чтобы посмотреть, есть ли что-то подобное. Я должен был знать, что в InDesign есть эта функция, я просто не знал, где она находится. InDesign просто использует другой ярлык — Shift+ Tab— для этой функции ( Type > insert Special Character > Other > Right Indent Tab)

Это приводит к тому, что все , что находится после табуляции, оказывается справа от текстового фрейма. Для нескольких строк просто введите сначала мягкий возврат/принудительный разрыв строки, затем вкладку с правым отступом ( Shift+ , Returnзатем Shift+ Tab)

Итак, один вход:

Название темы [правый отступ-вкладка] Страница, страница, страница, страница, страница, страница [мягкий возврат] [
правый отступ-вкладка] страница, страница, страница и т. д.

Результат:

введите описание изображения здесь

Вкладки с правым отступом также доступны для поиска. При этом их можно добавить постфактум, просто заменив какой-нибудь специальный символ. Или удалите их, если это необходимо.

введите описание изображения здесь


Если вы хотите избежать ручного ввода возвратов, просто настройте вторичный стиль абзаца для продолжения номера страницы с Nextпараметрами чередования стилей.

В конце концов, это может быть самый простой способ сделать это. Но для этого нужна грубая сила. Проблема в том, что вам нужно вручную добавить вкладки с мягким возвратом и правым отступом.
@Вольф возможно. Но это проще, чем привязывать символ переноса текста 😀 С поиском... можно использовать стили абзаца с параметрами next, чтобы избежать мягких возвратов.
Легче понять, но не обязательно быстрее, если у вас много записей. С помощью этого метода вы должны просмотреть все записи вручную. С помощью предложенного мной метода вы можете автоматически вставлять объекты-разделители за один раз, как я объясняю в конце своего ответа.
@Wolff Я отредактировал этот комментарий. :)Все, что нужно, это отдельный стиль абзаца для продолжения страницы, тогда нет необходимости в мягком возврате, как в вашем ответе.
Табуляции на моем рисунке на самом деле представляют собой табуляции с правым отступом, но, как говорит Вольф, недостатком является то, что таким образом это нужно делать вручную. Я не знаю точно, какой длины будет окончательный указатель, но пока он составляет 136 страниц, и у меня еще нет всего этого, поэтому все, что мне придется делать вручную, будет изрядно хлопотным…
Справедливо. Я из тех, кто достаточно внимателен, чтобы прочесть каждую строчку.
Я уважаю это. Иногда поиск автоматизированного способа занимает гораздо больше времени, чем просто выполнение работы вручную. В других случаях мне действительно жаль, что у меня не хватило смелости продолжить поиск более простого способа в течение нескольких часов, вместо того, чтобы сразу же начать щелкать.
@Scott Я тоже мог бы это сделать, за исключением того, что (а) скорее всего, будет сумасшедший крайний срок, и у меня будет не более одного или двух дней, чтобы набрать все это, и (б) нет возможности бюджет мог выдержать, так что я бы в конечном итоге делать это впустую. Я не в восторге от египетских ритуальных папирусов.
@JanusBahsJacquet Для меня проблема с текстом и автоматизацией ... в том, что я не всегда доверяю этому. Автоматизация процедур обязательна. Но для таких вещей, как переводы строк и переносы... ну, я думаю, я был достаточно укушен. Я полностью получаю сжатые сроки и бюджетные соображения, хотя. -- выберите два... быстро, хорошо, дешево.:)

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

Единственное, что я сделал по-другому, это нажать вкладку после текста заголовка. Здесь используется обычный интерлиньяж (хотя я использовал дополнительный возврат между текстом заголовка для видимости).

Обратите внимание, что я не менял стили в своем образце, вы можете это сделать, если хотите.

Кроме того, два текстовых фрейма представляют собой один и тот же текст с той разницей, что я изменил ширину второго.

введите описание изображения здесь

Как я сказал в вопросе, это прекрасно работает, если текст темы или номера страниц могут содержаться только в одной строке. Ваша версия здесь идентична первой версии на иллюстрации в вопросе. Этот способ терпит неудачу, если текст темы и номера страниц достаточно длинные, чтобы занимать несколько строк, что они будут делать во многих случаях в этом указателе.
Таким образом, вы хотите, чтобы несколько строк текста заголовка были неровными вправо (выровнены по левому краю), если в одной строке нет номеров страниц. Если это правильно, я бы последовал ответу @Wolff.
Да; по сути, я всегда хочу, чтобы текст темы был неровным вправо, а номера страниц — неровными влево, в том числе в строке, где они встречаются (где оба сочетания, конечно, приравниваются к полному выравниванию).