Теги форматирования текста ArcGIS Pro позволяют изменять форматирование фрагментов текста. Это позволяет создавать надписи смешанного формата, например, с одним подчеркнутым словом. Теги форматирования можно использовать практически везде, где нужно поместить текст. Их можно использовать везде, где есть возможность указать одновременно и сам текст, и символ текста. Например, теги можно использовать для выражений динамических надписей, аннотаций, текстов в легенде, заголовках карт, в динамическом тексте, а также в значениях полей, используемых для создания надписей объектов. Теги не обрабатываются на панели Содержание, в представлении таблицы или во всплывающих окнах, поэтому теги, добавленные в значения полей, будут видны как теги в этих областях.
См. таблицу доступных тегов форматирования текста
Динамический текст – это еще одна разновидность тега форматирования, которая динамически изменяет графический текст на основании текущего значения или зависящего от него свойства. Теги динамического текста можно использовать совместно с тегами форматирования текста, чтобы создавать на странице компоновки динамический текст смешанного формата.
Более подробно о работе с динамическим текстом.
Синтаксис тегов форматирования
У тегов форматирования может быть разный синтаксис в зависимости от того, где они используются. В следующих примерах показан синтаксис для аннотаций и надписей. Синтаксис аннотаций применяется к тексту в компоновке страницы, к значениям полей, используемых для надписывания объектов, а также для аннотаций. Синтаксис надписей применяется к динамическим надписям. Во всех примерах синтаксиса надписей форматированный текст можно заменить на поле надписи.
В аннотации теги объединяются в текстовую строку без специальных символов:<BOL>Text</BOL>
В выражениях надписей теги форматирования необходимо заключать в двойные кавычки и соединять с другими частями выражения с помощью оператора конкатенации. Этот оператор меняется в зависимости от используемого языка. Arcade, JScript и Python используют оператор плюс (+), а VBScript использует оператор амперсанд (&)."<BOL>" + "Text" + "</BOL>"
"<BOL>" + $feature.LABELFIELD + "</BOL>
"<BOL>" & "Text" & "</BOL>"
"<BOL>" & [LABELFIELD] & "</BOL>
Для заполнения значений тегов форматирования можно использовать значения поля:"<FNT size= '" + $feature.Size + "'>" + "Text" + "</FNT>"
"<FNT size= '" + $feature.Size + "'>" + $feature.LABELFIELD + "</FNT>"
"<FNT size= '" & [Size] & "'>" & "Text" & "</FNT>"
"<FNT size= '" & [Size] & "'>" & [LABELFIELD] & "</FNT>"
Более подробно о построении выражений надписей
В ArcGIS Pro для тегов форматирования применяются следующие правила синтаксиса:
- Теги форматирования текста в ArcGIS Pro используют правила синтаксиса XML. После каждого открывающего тега должен быть тег закрывающий. Теги могут быть вложенными, но внутренний тег должен быть закрыт прежде внешнего.
Аннотация <BOL><UND>Text</UND></BOL>
Выражение надписи "<BOL><UND>" + $feature.LABELFIELD + "</UND></BOL>"
- Атрибуты тегов должны быть заключены либо в одинарные, либо в двойные кавычки. Следующие выражения эквивалентны:
Аннотация <FNT name='Arial' size='18'>My text</FNT>
<FNT name="Arial" size="18">My text</FNT>
Выражение надписи '<FNT name="Arial" size="18">' + $feature.LABELFIELD + '</FNT>'
"<FNT name='Arial' size='18'>" + $feature.LABELFIELD + "</FNT>"
- Парные теги должны в точности совпадать. Поэтому <BOL>...</BOL> является допустимым, как и <bol>...</bol>, а <Bol>...</bol> – нет.
- Нераспознаваемые, разбалансированные пары тегов обработчиком игнорируются. Например, даже если <notag> не является допустимым тегом форматирования ArcGIS Pro, следующие строки допустимы, и будут отображаться правильно:
Аннотация <notag><BOL>State College<BOL></notag>
Выражение надписи "<notag><BOL>" + "State College" + "<BOL></notag>"
- Символы & и < являются спецсимволами, поэтому их нельзя использовать вместе с тегами форматирования текста. Вместо них, используйте эквивалентные коды символов & и <.
Аннотация Вместо <ITA>Джон & Пол</ITA> используйте:
<ITA>John & Paul</ITA>
Выражение надписи Это выражение заключает значения поля надписи в символы < >:
"<ITA><" + $feature.LABELFIELD + "></ITA>"
- Если вам надо заключить значения поля надписей в спецсимволы, их можно динамически заместить с помощью простого скрипта для надписей.
Выражение надписи – Arcade "<BOL>" + replace($feature.Notes, "&", "&") + "</BOL>"
Выражение надписи – VBScript Function FindLabel ([LABELFIELD]) NewString = Replace([LABELFIELD],"&","&") FindLabel = "<ITA>" & NewString & "</ITA>" End Function
- Любой текстовый фрагмент на карте обладает символом, который используется для прорисовки. Теги форматирования временно отменяют указанный для текста базовый символ и отображают указанную часть текста с тем символом, который прописан в теге. Кнопки и команды на ленте Надписи и на панели Класс надписей закладки Символы всегда отражают параметры базовых символов выбранного текста, но не отражают изменения, выполненные с помощью тегов форматирования. Например, если с помощью тега <FNT> изменить шрифт фрагмента текста, то когда эта надпись появится на карте в ниспадающем меню Шрифт на вкладке Надписи эти изменения отражены не будут; на ней будет отображен шрифт основного символа текста.
- Теги не влияют на текстовые фрагменты, если они просто повторяют уже имеющиеся свойства базового символа текста. В целом, их поведение интуитивно понятно; например, если у вас есть тег <BOL>, а сам текст уже выделен полужирным, тег <BOL> в тексте ни на что не влияет. Также, в связи с тем, что теги следуют правилам XML, нельзя использовать тег </BOL> для отключения полужирного начертания базового текстового символа. Вместо этого используйте тег <_BOL>.
Аннотация This is bold if the base text symbol is bold <_BOL>, but this is not: </_BOL>
Выражение надписи "This is bold if the base text symbol is bold <_BOL>, but this is not: </_BOL>"
Использование тегов форматирования текста с параметрами форматирования, которые применяет Maplex Label Engine
Теги форматирования текста разработаны для того, чтобы превалировать над свойствами, назначенными текстовым символам класса надписей. Maplex Label Engine распознает теги форматирования текста в процессе размещения надписей. Так как теги определяют то, как будет выглядеть надпись, и замещают параметры форматирования, Maplex Label Engine отключает параметры форматирования для класса надписей в случаях, когда он находит в строках надписей теги форматирования текста.
Далее приведен список ситуаций, в которых теги форматирования текста будут либо игнорироваться, либо изменять поведение Maplex Label Engine:
- Maplex Label Engine игнорирует тег интервала между знаками. Чтобы учитывалось расстояние между символами (буквами), его необходимо задать в текстовом символе.
- Maplex Label Engine игнорирует тег интервала между словами. Чтобы быть принятым во внимание, расстояние между словами должно задаваться в текстовом символе.
- Maplex Label Engine выключает поведение сокращения надписи, если надпись содержит тег форматирования размера шрифта или расстояния между строками.
- Надписи, содержащие теги форматирования, не будут сокращаться Maplex Label Engine при использовании словаря сокращений.
Если некоторые надписи в классе надписей содержат теги форматирования текста, но ни одна из них не представлена в текущем экстенте карты, ни один тег форматирования не будет выявлен, и выше перечисленные ограничения не вступят в силу.
Дополнительные теги форматирования текста, которые поддерживает Maplex Label Engine
В Maplex Label Engine предусмотрен дополнительный уникальный тег: Base (основной).
"<BSE>" + $feature.FIELDNAME + "</BSE>"
Если при надписывании пространственного объекта используются несколько полей, необходимо указать, какая из надписей является ключевой или основной. Основная надпись применяется в стратегии расположения, и другие надписи размещаются относительно этой надписи.
Только Maplex Label Engine поддерживает тег Основной. Если Standard Label Engine обнаружит тег <BSE>, тег <BSE> будет проигнорирован и удален перед размещением надписи.
Например, для для классов надписей на следующем изображении задано расположение Справа от точки, так что надписи размещаются точно к востоку от точечного объекта. Связывая тег Основной с первой строкой выражения надписи, вы управляете тем, как будет расположено относительно объекта все выражение надписи. В надписи слева не используется тег Base, а справа тег Base установлен вокруг первой строки надписи.
"<BSE>" + $feature.Name + "</BSE>" + TextFormatting.NewLine + $feature.Prov
Дополнительные подсказки по построению выражений надписей
Для построения выражений надписей вам помогут следующие советы:
- Чтобы проверить корректность выражения надписи с тегами форматирования текста, нажмите Применить, чтобы применить изменения и рассмотреть надписи на карте. Если синтаксис тегов форматирования текста неверен, эти теги будут отображаться в надписях на карте как обычный текст.
- В Arcade, Python, VBScript и JScript теги не интерпретируются. Вместо этого они передаются в среду ArcGIS Pro как обычный текст, и там уже динамически форматируются в процессе отображения. Теги в выражениях в кавычках не требуется специально брать в кавычки.
"Current <BOL>status</BOL> of parcel: " + $feature.LABELFIELD
- Теги форматирования можно заключить в значения поля, которое вы используете для надписывания пространственных объектов слоя независимо от того, используете ли вы выражение надписи. Таким образом, можно изменить формат любой части определенного значения в поле надписи. Чтобы применять теги форматирования, поле надписей должно быть текстового типа. Теги и атрибуты тегов, используемые в значениях полей, не требуется заключать в знаки кавычек или использовать операторы конкатенации, поэтому приведенные ниже значения являются корректными значениями для поля надписи:
<ITA>Rochester</ITA>
<FNT size='14'>C</FNT>olorado
<CLR red = '255'>Paul & Mary</CLR>
Доступные теги форматирования текста
В ArcGIS Pro поддерживаются следующие элементы и теги форматирования. Щелкайте по ссылкам в таблице, чтобы перейти к полному описанию. Примеры синтаксиса для аннотаций и надписей приведены для каждого тега. Синтаксис аннотаций применяется к тексту в компоновке страницы, к значениям полей, используемых для надписывания объектов, а также для аннотаций. Синтаксис надписей применяется к динамическим надписям. Во всех примерах синтаксиса надписей форматированный текст можно заменить на поле надписи.
Элемент | Выходные данные |
---|---|
Имя и/или размер шрифта
<FNT></FNT>
Атрибуты | Примечания |
---|---|
name = {TrueType font} style = {Font style} size = {1} scale = {1-} | Задайте имя, стиль, размер, масштаб или все сразу. Значение стиля - это имя стиля шрифта, или, если используется шрифт переменной, значение заданной переменной. При использовании переменных наведите указатель мыши на ось переменной, чтобы увидеть название тега. Примечание:Пример надписи: "<FNT name = 'Bahnschrift' wght = '465'>" + "Вес текста = 465" + "</FNT>" Пример аннотации: <FNT name = "Bahnschrift" wght = "465" >Вес текста = 465</FNT> |
Пример результата
Синтаксис аннотации
<FNT name = "Arial" style = "Regular" size = "12">Text size = 12</FNT> <FNT name = "Arial" scale="200"> Text scale = 200</FNT>
Синтаксис надписи
"<FNT name = 'Arial' style = 'Regular' size = '12'>" + "Text size = 12" + "</FNT>" + "<FNT name = 'Arial' scale='200'>" + "Text scale = 200" + "</FNT>"
Цвет (RGB)
<CLR></CLR>
Атрибуты | Примечания |
---|---|
red, green, blue = {0–255} alpha = {0–100} | Значение alpha определяет прозрачность текста. Пропущенным атрибутам red, green, blue будет присвоено 0 Пропущенному атрибуту alpha будет присвоено = 100 |
Пример результата
Синтаксис аннотации
<CLR red = "255">Text</CLR>
Синтаксис надписи
"<CLR red = '255'>" + "Text" + "</CLR>"
Цвет (CMYK)
<CLR></CLR>
Атрибуты | Примечания |
---|---|
голубой, пурпурный, желтый, черный alpha = {0–100} | Значение alpha определяет прозрачность текста. Пропущенные атрибуты считаются = 0 Пропущенному атрибуту alpha будет присвоено = 100 |
Пример результата
Синтаксис аннотации
<CLR magenta = "100">Text</CLR>
Синтаксис надписи
"<CLR magenta = '100'>" + "Text" + "</CLR>"
Цвет (SPOT)
<CLR></CLR>
Атрибуты | Примечания |
---|---|
spotname, alpha = {0–100}, tint = {0–100} голубой, пурпурный, желтый, черный красный, зеленый, синий | Используется для настройки плашечного цвета при печати. Значение alpha - непрозрачность текста. Рекомендуется оставить непрозрачность на уровне 0 (полностью непрозрачный цвет), если у вас нет специальных инструкций от поставщика услуг печати. Значение оттенка говорит об относительном количестве чернил (темнота). Альтернативный цвет используется для отображения плашечного цвета на экране и на любом устройстве вывода, которое не поддерживает плашечные цвета. Этот цвет указывается с помощью значений RGB или CMYK, которые визуально аналогичны чернилам плашечных цветов. Пропущенному атрибуту alpha будет присвоено = 100 Пропущенные атрибуты оттенка считаются = 100 Пропущенные атрибуты считаются = 0 |
Пример результата
Синтаксис аннотации
<CLR spotname = "RedlandsRed" cyan = "38" magenta = "100" yellow = "100" black = "0" alpha = "100" tint = "100">Text</CLR>
Синтаксис надписи
"<CLR spotname = 'RedlandsRed' cyan = '38' magenta = '100' yellow = '100' black = '0' alpha = '100' tint = '100'>" + "Text" + "</CLR>"
Полужирный
<BOL></BOL>
Пример результата
Синтаксис аннотации
<BOL>Text</BOL>
Синтаксис надписи
"<BOL>" + "Text" + "</BOL>"
Курсив
<ITA></ITA>
Пример результата
Синтаксис аннотации
<ITA>Text</ITA>
Синтаксис надписи
"<ITA>" + "Text" + "</ITA>"
Подчеркивание
<UND></UND>
Пример результата
Синтаксис аннотации
<UND>Text</UND>
Синтаксис надписи
"<UND>" + "Text" + "</UND>"
Все заглавные
<ACP></ACP>
Пример результата
Синтаксис аннотации
<ACP>Text</ACP>
Синтаксис надписи
"<ACP>" + "Text" + "</ACP>"
Маленькие заглавные
<SCP></SCP>
Пример результата
Синтаксис аннотации
<SCP>Text</SCP>
Синтаксис надписи
"<SCP>" + "Text" + "</SCP>"
Надстрочный
<SUP></SUP>
Пример результата
Синтаксис аннотации
E = mc<SUP>2</SUP>
Синтаксис надписи
"E = mc" + "<SUP>" + "2" + "</SUP>"
Подстрочный
<SUB></SUB>
Пример результата
Синтаксис аннотации
H<SUB>2</SUB>O
Синтаксис надписи
"H" + "<SUB>" + "2</SUB>" + "O"
Расстояние между символами/буквами
<CHR></CHR>
Атрибуты | Примечания |
---|---|
spacing = {1-} | Выражается в процентах выравнивания от стандартного интервала между знаками/буквами; 0 означает отсутствие изменений. |
Пример результата
Синтаксис аннотации
<CHR spacing = "200">Text</CHR>
Синтаксис надписи
"<CHR spacing = '200'>" + "Text" + "</CHR>"
Ширина знака/буквы
<CHR></CHR>
Атрибуты | Примечания |
---|---|
width = {1-} | Выражается в процентах относительно стандартной ширины символов/букв; 0 означает отсутствие изменений. |
Пример результата
Синтаксис аннотации
<CHR width = "150">Text</CHR>
Синтаксис надписи
"<CHR width='150'>" + "Text" + "</CHR>"
Расстояние между словами
<WRD></WRD>
Атрибуты | Примечания |
---|---|
spacing = {1-} | Выражается в процентах от расстояния между словами; 100 означает обычное расстояние. |
Пример результата
Синтаксис аннотации
<WRD spacing = "200">Extra Word Spacing</WRD>
Синтаксис надписи
"<WRD spacing = '200'>" + "Extra Word Spacing" + "</WRD>"
Выровнять
<ALIGN></ALIGN>
Атрибуты | Примечания |
---|---|
horizontal = {left, right, center, justify} | Горизонтальные атрибуты:
Пропущенный атрибут по горизонтали игнорируется. |
Пример результата
Синтаксис аннотации
The top two lines have no tags. The bottom line is aligned <ALIGN horizontal = "right">to the right.</ALIGN>
Синтаксис надписи
"The top two lines have no tags." + textformatting.newline + "The bottom line is aligned" + textformatting.newline + "<ALIGN horizontal = 'right'>" + "to the right." + "</ALIGN>"
Расстояние между строками
<LIN></LIN>
Атрибуты | Примечания |
---|---|
leading = {1-} leading_type = {extra, exact, multiple} | Выражается относительно стандартного междустрочного расстояния, в пунктах; 0 пунктов означает отсутствие изменений. Тип межстрочного расстояния:
|
Пример результата
Синтаксис аннотации
<LIN leading = "25" leading_type = "extra">Text with a leading value of 25 points</LIN>
Синтаксис надписи
"<LIN leading = '25' leading_type = 'extra'>" + "Text with a leading value of 25 points" + "</LIN>"
Отмена полужирного
<_BOL></_BOL>
Пример результата
Синтаксис аннотации
The base text symbol is bold <_BOL> but this part is not.</_BOL>
Синтаксис надписи
"The base text symbol is bold " + "<_BOL>" + " but this part is not." + "</_BOL>"
Отмена курсива
<_ITA></_ITA>
Пример результата
Синтаксис аннотации
The base text symbol is italic <_ITA> but this part is not.</_ITA>
Синтаксис надписи
"The base text symbol is italic " + "<_ITA>" + " but this part is not." + "</_ITA>"
Отмена подчёркнутого
<_UND></_UND>
Пример результата
Синтаксис аннотации
The base text symbol is underlined <_UND> but this part is not.</_UND>
Синтаксис надписи
"The base text symbol is underlined " + "<_UND>" + " but this part is not." + "</_UND>"
Отмена верхнего индекса
<_SUP></_SUP>
Пример результата
Синтаксис аннотации
<SUP><_SUP> This text is regular but </_SUP> this text is superscript.</SUP>
Синтаксис надписи
"<SUP><_SUP>" + "This text is regular but" + "</_SUP>" + " this text is superscript." + "</SUP>"
Отмена нижнего индекса
<_SUB></_SUB>
Пример результата
Синтаксис аннотации
<SUB><_SUB> This text is regular but </_SUB> this text is subscript.</SUB>
Синтаксис надписи
"<SUB><_SUB>" + "This text is regular but" + "</_SUB>" + " this text is subscript." + "</SUB>"
Фон
<BGD></BGD>
Атрибуты | Примечания |
---|---|
red, green, blue = {0–255} cyan, magenta, yellow, black = {0–100} alpha = {0–100} outline_red, outline_green, outline_blue = {0–255} outline_cyan, outline_magenta, outline_yellow, outline_black = {0–100} outline_alpha = {0–100} width = {Double} padding = {Double} | Значение alpha - непрозрачность фона. Значение outline_alpha - непрозрачность рамки. width – задает ширину рамки в точках. Значение padding - расстояние между рамкой и краем фона в точках. Пропущенным атрибутам red, green, blue будет присвоено 0 Пропущенным атрибутам cyan, magenta, yellow, black присваивается 0 Пропущенным атрибутам alpha и outline_alpha присваивается = 100 |
Пример результата
Синтаксис аннотации
<CLR red='255' green='236' blue='0' alpha='100'><BGD red='0' green='0' blue='0' alpha='100'>B</BGD></CLR><CLR red='255' green='255' blue='255' alpha='100'><BGD red='230' green='0' blue='0' alpha='100'>15-33</BGD></CLR>
Синтаксис надписи
"<CLR red='255' green='236' blue='0' alpha='100'><BGD red='0' green='0' blue='0' alpha='100'>" + "B" + "</BGD></CLR><CLR red='255' green='255' blue='255' alpha='100'><BGD red='230' green='0' blue='0' alpha='100'>" + "15-33" + "</BGD></CLR>"
Вертикальная азбука Морзе
<VMC></VMC>
Атрибуты | Примечания |
---|---|
x_offset = {1-} y_offset = {1-} | Значение x_offset является десятичным значением сдвига по X в точках. Значение y_offset является десятичным значением сдвига по Y в точках. Доступно только при использовании типа составная выноска. |
Пример результата
Синтаксис аннотации
<VMC>TUS</VMC>
Синтаксис надписи
"<VMC>" + "TUS" + "</VMC>"
Часть
<PART></PART>
Атрибуты | Примечания |
---|---|
position = {middle, topleft, top, topright, right, bottomright, bottom, bottomleft, left, floating] h_align = {left, right, center, justify} v_align = top, center, baseline, bottom} x_offset = {1-} y_offset = {1-} split_offset = {1} boxed = {true, false} | Значение x_offset является десятичным значением сдвига по X в точках. Значение y_offset является десятичным значением сдвига по Y в точках. split_offset - это промежуток между границей выноски и любой частью текста, пересекающей границу, измеренный в точках. Если значение задано шире, чем ширина выноски, то связующие линии выноски нарисованы не будут. Значение в рамке говорит о том, сохранить ли часть внутри выноски с разделительной линией, чтобы отделить ее от среднего элемента. Доступно только при использовании типа составная выноска. Теги смещения и выравнивания перезаписывают любые настройки символа. |
Пример результата
Синтаксис аннотации
<PART position="middle">Middle Element</PART><CLR blue="200"><PART position="top">Top</PART><PART position="topleft">TopL</PART><PART position="topright">TopR</PART><PART position="left">Left</PART><PART position="right">Right</PART><PART position="bottom">Bottom</PART><PART position="bottomleft">BottomL</PART><PART position="bottomright">BottomR</PART><PART position="floating" h_align="center" v_align="center" x_offset="0" y_offset="-10">Floating</PART></CLR>
Синтаксис надписи
"<PART position='middle'>" + "Middle Element" + "</PART><CLR blue='200'><PART position='top'>Top</PART><PART position='topleft'>" + "TopL" + "</PART><PART position='topright'>" + "TopR" + "</PART><PART position='left'>" + "Left" + "</PART><PART position='right'>" + "Right" + "</PART><PART position='bottom'>" + "Bottom" + "</PART><PART position='bottomleft'>" + "BottomL" + "</PART><PART position='bottomright'>" + "BottomR" + "</PART><PART position='floating' h_align='center' v_align='center' x_offset='0' y_offset='-10'>" + "Floating" + "</PART></CLR>"
Базовый
<BSE></BSE>
Примечания |
---|
Обозначает строку основного текста, используемую для первичного размещения надписей (только Maplex Label Engine). |
Пример результата
Синтаксис аннотации
<BSE>College Station</BSE>Population: 67890 Median Age: 21.9
Синтаксис надписи
"<BSE>" + "College Station" + "</BSE>" + TextFormatting.NewLine + "Population: 67890" + TextFormatting.NewLine + "Median Age: 21.9"