テキスト書式設定タグの使用
ArcGIS のテキスト書式タグを使用することにより、テキストの一部の書式を変更できます。たとえば、テキストに含まれる 1 つの単語に下線を付けるなど、複数の書式を組み合わせたテキストを作成できます。テキスト書式タグは、ArcMap のマップ上、またはその周囲のテキストが配置されるほぼすべての場所で使用できます。テキスト文字列とテキスト シンボルの両方を指定できる場所であれば、これらのタグを使用できます。たとえば、ダイナミック ラベル条件式、アノテーション、凡例テキスト、マップ タイトル、およびフィーチャのラベリングに使用されるフィールドの値に使用できます。これらのタグは、ArcMap のコンテンツ ウィンドウ、テーブル ウィンドウ、[個別属性] ウィンドウでは認識されないため、フィールド値に追加されたタグはこれらのウィンドウにテキストとして表示されます。
ArcMap で使用可能なテキスト書式タグについては、この表を参照してください。
ダイナミック テキストは、もう 1 つのタイプの書式タグであり、グラフィック テキストをそのプロパティの現在の値に基づいて動的に変化させます。これは、レイアウト ビューでのみ使用できます。ダイナミック テキスト タグをテキスト書式タグとともに使用して、ページ レイアウトで複数の書式を組み合わせた動的なテキストを作成できます。
書式タグの構文
書式タグの構文は、アノテーションで使用されるのか、ラベル条件式で使用されるのかによって、異なります。アノテーションでは、書式タグは、特殊文字を使用しないでテキスト文字列に連結します。
<BOL>Text</BOL>
一方、ラベル条件式では、書式タグは二重引用符(")で囲み、& 演算子を使用して条件式の他の部分に連結する必要があります。
"<BOL>" & "Text" & "</BOL>"
"<BOL>" & [LABELFIELD] & "</BOL>"
ArcMap の書式タグには、次の構文規則が適用されます。
- ArcGIS のテキスト書式タグは、XML 構文規則に準拠します。開始タグには、それぞれ対応する終了タグが必要です。タグはネストできますが、外部タグを閉じる前に内部タグを閉じる必要があります。アノテーション
<BOL><UND>Text</UND></BOL>
ラベル条件式"<BOL><UND>" & [LABELFIELD] & "</UND></BOL>"
- タグ属性は、単一引用符(')または二重引用符(")のいずれかで囲むことができます。次の 2 つの記述は同等です。アノテーション
<FNT name='Arial' size='18'>My text</FNT> <FNT name="Arial" size="18">My text</FNT>
ラベル条件式"<FNT name=""Arial"" size=""18"">" & [LABELFIELD] & "</FNT>" "<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>"
- タグの組みの大文字と小文字は正確に一致している必要があります。したがって、「<BOL>...</BOL>」や「<bol>...</bol>」は有効ですが、「<Bol>...</bol>」は無効です。
- 認識不可能なタグの組みは、パーサによって無視されます。たとえば、「<notag>」は有効な ArcGIS 書式タグではありませんが、次の文字列は有効であり、適切に表示されます。アノテーション
<notag><BOL>State College<BOL></notag>
ラベル条件式"<notag><BOL>" & "State College" & "<BOL></notag>"
- アンパサンド(&)と山括弧(<)は特殊文字であり、書式タグが使用されているテキストでは無効です。代わりに、これらの文字に相当する「&」と「⁢」の文字コードを使用します。アノテーション
<ITA>John & Paul</ITA> の代わりに、次のように記述します。
<ITA>John & Paul</ITA>
ラベル条件式次の条件式は < > 文字に囲まれたラベル フィールドの値を表示します。
"<ITA><" & [LABELFIELD] & "></ITA>"
ラベル条件式ラベル フィールドの値に特殊文字を埋め込んでいる場合には、単純なラベル スクリプトを使用して、その文字を動的に置き換えることができます。
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>"
ラベル条件式作成のその他のヒント
ラベル条件式の作成には、次のヒントが役立ちます。
- テキスト書式タグを含む条件式の有効性をチェックするには、[確認] ボタンをクリックするか、変更を [適用] し、マップ上にラベルを表示します。無効な書式タグまたは構文の場合、タグは [確認] ウィンドウとマップ ラベルでテキストとして表示されます。
- タグは Python、VBScript、および JScript では解釈されません。タグはただのテキストとして ArcMap フレームワークに渡され、描画時に動的に書式が設定されます。引用符で囲まれた文字列内のタグを引用符で囲む必要はありません。
"Current <BOL>status</BOL> of parcel: " & [LABELFIELD]
- ラベル条件式を使用するかどうかにかかわらず、レイヤのフィーチャのラベリングに使用するフィールドの値に書式タグを埋め込むことができます。これにより、ラベル フィールドに含まれる特定の値の任意部分の書式を変更することができます。書式タグを埋め込むには、ラベル フィールドが文字列タイプである必要があります。フィールド値で使用されるタグおよびタグの属性を引用符で囲む必要はないため、ラベル フィールドでは次の値が有効となります。
<ITA>Rochester</ITA> <FNT size='14'>C</FNT>olorado