Нумерация и буквенная нумерация таблиц в слове с перекрестными ссылками
Как получить интеллектуальную систему нумерации, как показано ниже? Всякий раз, когда у меня есть новая таблица, я хочу, чтобы нумерация увеличивалась. Если, с другой стороны, я добавлю строку в таблицу, я бы хотел добавить букву позади нумерации. Это возможно?
Я начал использовать полевые коды и последовательности, и я считаю, что это путь.
Я знаю, что нумерация без букв может быть получена
Number #{ STYLEREF 1\s}{SEQ Table \# "00"}
Я также знаю, что алфавитная нумерация может быть сделана с помощью команды \alphabetic.
Я просто не уверен, как их объединить. Также я хотел бы сделать перекрестные ссылки на подписи к таблицам.
2 ответа
Вы можете достичь этого с помощью встроенной нумерации Word - нет необходимости прибегать к сложной комбинации полей, которые вам нужно будет обновить вручную.
Я собираюсь изложить очень полный подход...
- На вкладке Главная: Абзац / Многоуровневый список / Определить новый стиль списка.
- Введите имя для стиля, затем из кнопки "Формат" выберите "Нумерация"; нажмите Больше.
- Выбрав Уровень 1, выберите стиль, с которым вы хотите связать нумерацию (например, Заголовок 1)
- В поле "Введите форматирование для числа" введите любой текст, который вы хотите видеть до или после каждого номера. (Согласно вашей картинке: заголовок перед номером 1 с серой штриховкой уже в коробке.)
- Выберите Уровень 2, выберите стиль, с которым вы хотите связать нумерацию (заголовок 2, например)
- В поле "Введите форматирование для номера" введите перед номером (2, серая заливка): номер #00
- В раскрывающемся списке "Включить номер уровня из" выберите уровень 1. Число от уровня 1 будет вставлено между последним 0 и 2 серым цветом.
- При необходимости измените настройки выравнивания (возможно, вы не хотите использовать отступ внутри ячейки таблицы?)
Теперь, когда вы применяете стили заголовка, нумерация будет применяться автоматически. Если вам не нравится форматирование стилей заголовков, вы можете изменить определение (я) стилей. Поскольку вы создали стиль нумерации, вы также можете изменить эти настройки, снова перейдя в диалоговое окно "Многоуровневая нумерация", щелкнув правой кнопкой мыши созданный вами формат нумерации и выбрав "Изменить".
Я полагаю, что следующий подход к полевому коду даст вам нумерацию, указанную в вашем образце изображения (где нумерация таблиц перезапускается для каждого абзаца заголовка 1. Однако, вероятно, это будет работать только для "встроенных" таблиц, а не для плавающих таблиц или таблиц в текстовые поля и так далее.
Основной целью здесь является обеспечение того, чтобы можно было вставлять точно такие же коды полей для каждого нового "номера #", которое вам нужно, но для достижения этого вам также необходимо поместить некоторые коды в начало и конец каждой таблицы. Вам также нужно будет дважды выбрать и повторно выполнить все коды полей, чтобы обеспечить их правильное обновление - это тот недостаток, о котором упоминает ответ Синди Мейстер.
В начале или перед началом каждой таблицы поставьте следующие поля. (Если вы уже ставите заголовок таблицы перед каждой таблицей, вы можете сделать это немного по-другому.)
{ SEQ tbl \s 1 \h }{ SEQ ltr \r0 \h }
Это увеличивает номер таблицы, сбрасывая каждый абзац заголовка 1, и сбрасывает номер буквы в 0.
Для каждого "номера #", который вы хотите в таблице, используйте следующие поля:
Number #{ STYLEREF 1 \s }{ SEQ tbl \c #00 }{ SEQ ltr \h }{ IF { REF "chap{ STYLEREF 1 \s }tbl{ SEQ tbl \c }" } > 1 "{ SEQ ltr \c \*alphabetic }" "" }
Это вставит соответствующий номер заголовка и номер таблицы и увеличит номер буквы. Затем он смотрит на закладку, которая содержит количество записей "Number#" в этой таблице. Например, если заголовок 1 пронумерован 4, и это таблица с тремя заголовками под этим заголовком, закладка будет называться "chap1tbl4". Если значение закладки больше 1, будет добавлено соответствующее письмо.
Но мы должны создать эту закладку и значение, что мы можем сделать только после всех полей "Number#" для этой таблицы. Поэтому в конце каждой таблицы или сразу после таблицы и перед любым новым абзацем заголовка 1 вам понадобятся следующие коды полей:
{SET "chap {STYLEREF 1 \ s} tbl {SEQ tbl \ c}" {SEQ ltr \ c}}
Дело в том, что Word оценивает коды полей в той последовательности, в которой они появляются в документе. Поэтому, когда Word впервые встречает поле { REF } в таблице, закладка не будет иметь значения. Поэтому при первом выборе всех полей и их выполнении вы можете увидеть неправильный ответ. После того, как вы это сделали, закладка будет создана. Word будет использовать значение, недавно назначенное закладке, поэтому в следующий раз, когда вы заполните поля "Number#", они должны работать правильно.
Я думаю, что для достижения того, что вы хотели, используя общий подход, приведенный в ответе Синди Мейстер, вам нужно иметь два отдельных уровня заголовков, один для чисел без букв и другой для чисел с буквами. Пользователь или какой-нибудь VBA (скажем) должен будет решить для каждой таблицы, какой уровень заголовка использовать. Но даже если это так (и она может иметь в виду что-то еще), это может быть операционно более простой подход, чем полевой. Я подозреваю, что только вы в состоянии принять решение.
Может быть более простая формулировка на основе полей, но основная проблема IME в том, что вы не можете проверить "окончательное значение" поля SEQ или SET, только значение, которое оно имеет в точке выполнения. Например, если есть флаг \f, который позволяет вам проверить окончательное значение поля SEQ, вы можете использовать
{ IF { SEQ "chap{ STYLEREF 1 \s }tbl{ SEQ tbl \c }" \f } > 1 .... }
проверить количество записей "Number#" в каждой таблице, не имея того неловкого поля SET конца таблицы.