1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545
|
<HTML>
<HEAD>
<!-- Created with AOLpress/2.0 -->
<!-- AP: Created on: 29-Dec-2002 -->
<!-- AP: Last modified: 11-Dec-2005 -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<!--<TITLE>Advanced Typography tables</TITLE> -->
<TITLE>高度組版機能テーブル (ATT)</TITLE>
<LINK REL="icon" href="../../_static/fftype16.png">
<LINK REL="stylesheet" TYPE="text/css" HREF="FontForge.css">
</HEAD>
<BODY>
<DIV id="in">
<H1 ALIGN=Center>
<!-- Advanced Typography Tables-->
高度組版機能テーブル (ATT)
</H1>
<P>
<!--
These differ between OpenType (originally called TrueType Open) and Apple
(GX or Apple Advanced Typography). My support for both OpenType and Apple
is incomplete. -->
これらは OpenType (当初 TrueType Open と呼ばれていました) と Apple (GX または Apple 高度タイポグラフィ (ATT)) とで違いがあります。このソフトの OpenType と Apple に対するサポートはどちらも不完全です。
<UL>
<LI>
<!-- <A HREF="#opentype">The <B><CODE>GPOS</CODE></B>,
<B><CODE>GSUB</CODE></B> and <B><CODE>GDEF</CODE></B> opentype tables</A>
<A HREF="#opentype"><B><CODE>GPOS</CODE></B>, <B><CODE>GSUB</CODE></B> および <B><CODE>GDEF</CODE></B> OpenType テーブル</A>
<LI>
<!-- <A HREF="#AAT">Apple Advanced Typography</A>-->
<A HREF="#AAT">Apple の高度タイポグラフィ</A>
<LI>
<!-- <A HREF="#Conversion">What features can be converted between OpenType and
AAT?</A>-->
<A HREF="#Conversion">どの機能が OpenType と AAT の間で変換可能か?</A>
<LI>
<A HREF="TrueOpenTables.html">other true type and open type tables</A>
<LI>
<A HREF="#Unsupported">What is unsupported</A>
<LI>
<A HREF="non-standard.html">FontForge's non-standard extensions</A>
</UL>
<H2>
<!-- The <B><CODE>GPOS,</CODE></B> <B><CODE>GSUB</CODE></B> and
<B><CODE>GDEF</CODE></B> <A NAME="opentype">opentype</A> tables -->
<B><CODE>GPOS</CODE></B>, <B><CODE>GSUB</CODE></B> および <B><CODE>GDEF</CODE></B> <A NAME="opentype">OpenType</A> テーブル
</H2>
<P>
<!--
These two tables are used for positioning and substituting glyphs. The GPOS
table can control things like: kerning, accent positioning, cursive joining,
etc. The GSUB table can control things like: ligatures, arabic forms, vertical
rotation, conversion to small caps, indic glyph rearrangement, etc. -->
これらの2つのテーブルは、グリフの位置変更と置き換えに用いられます。
GPOS テーブルは、以下のような物を制御することができます: カーニング、アクセントの位置指定、筆記体の結合など。
GSUB テーブルは以下のようなものを制御することができます: 合字、アラビア文字の複数の形、縦書き用の文字回転、小型大文字への変換、インド系文字のグリフ再配置など。
<P>
<!--
This page assumes basic familiarity with the abilities of the tables, for
more information on them read, study and inwardly digest the opentype docs
on:-->
このページは、各テーブルで何をすることができるかの基本的な知識があることを仮定しています。それらに関してのより詳しい情報を得るには、以下の OpenType の文書を読み、学習して自家薬籠中のものとしてください。
<UL>
<LI>
<!-- <A HREF="http://partners.adobe.com/public/developer/opentype/index_table_formats.html">The
header for both GPOS and GSUB</A>-->
<A HREF="http://partners.adobe.com/public/developer/opentype/index_table_formats.html">GPOS と GSUB に共通するヘッダ</A>
<LI>
<!-- <A HREF="http://partners.adobe.com/public/developer/opentype/index_table_formats2.html">The
GPOS table</A>, for positioning glyphs -->
<A HREF="http://partners.adobe.com/public/developer/opentype/index_table_formats2.html">GPOS テーブル (グリフの位置決めに用いる)</A>
<LI>
<!-- <A HREF="http://partners.adobe.com/public/developer/opentype/index_table_formats1.html">The
GSUB table</A>, for substituting glyphs-->
<A HREF="http://partners.adobe.com/public/developer/opentype/index_table_formats1.html">GSUB テーブル</A> (グリフの置換に用いる)
<LI>
<!-- <A HREF="http://partners.adobe.com/public/developer/opentype/index_table_formats5.html">The
GDEF table</A>, for classifying glyphs and for providing a ligature caret
table -->
<A HREF="http://partners.adobe.com/public/developer/opentype/index_table_formats5.html">GDEF テーブル (グリフのクラス分けと合字キャレットテーブルの指定に用いる)</A>
<LI>
<!-- <A HREF="http://partners.adobe.com/public/developer/opentype/index_tag3.html">The
list of feature tags supported by opentype</A>-->
<A HREF="http://partners.adobe.com/public/developer/opentype/index_tag3.html">OpenType がサポートする機能タグのリスト</A>
<LI>
<!-- <A HREF="http://partners.adobe.com/public/developer/opentype/index_tag1.html">The
list of script tags supported by opentype</A>-->
<A HREF="http://partners.adobe.com/public/developer/opentype/index_tag1.html">OpenType がサポートする用字系タグのリスト</A>
<LI>
<!-- -<A HREF="http://partners.adobe.com/public/developer/opentype/index_tag2.html">The
list of language tags supported by opentype</A>-->
<A HREF="http://partners.adobe.com/public/developer/opentype/index_tag2.html">OpenType がサポートする言語タグのリスト</A>
</UL>
<P>
<!--
The basic idea of the GPOS and GSUB tables is that each script (or language
within a script) has a set of "features" that are available to it. A feature
in turn is associated with a lookup which contains data for the feature.
An example of a script is 'latn' for latin, 'arab' for arabic, 'hani' for
chinese ideographs. Two examples of features are 'kern' which provides kerning
information between pairs of glyphs and 'init' which will transform one set
of glyphs to another when those glyphs are at the beginning of a word.-->
GPOS テーブルと GSUB テーブルの基本的アイディアは、各スクリプト (またはあるスクリプトを使用する言語) が、それらの文字に適用可能な“機能”の組をもっているという考えです。個々の機能はそれぞれが、その機能のためのデータを含む 1 個の索引に付随しています。用字系の例としては、ラテン文字の‘latn’, アラビア文字の‘arab’, 漢字の‘hani’が挙げられます。機能の例を 2 つ挙げれば、グリフの対の間のカーニング情報を提供する‘kern’や、ある一連のグリフを、単語の先頭に来たときに用いる別のグリフに置き換える‘init’があります。
<P>
<!--
FontForge <A HREF="gposgsub.html#Unsupported">does not support </A>the full
range of possibilities inherent in these tables. -->
FontForge は、これらの 2 つのテーブルによって可能なことの全ての範囲を<A HREF="gposgsub.html#Unsupported">サポートするわけではありません</A>。
<H3>
<!-- The <B><CODE><A NAME="GPOS">GPOS</A></CODE></B> table-->
<B><CODE><A NAME="GPOS">GPOS</A></CODE></B> テーブル
</H3>
<P>
<!--
FontForge will read the following sub tables of the GPOS table: -->
FontForge は GPOS テーブルの以下のサブテーブルを読み込みます:
<TABLE Border=1>
<TR>
<TH></TH>
<TH>name</TH>
<!-- <TH>Reading support</TH>-->
<TH>読み込みサポート</TH>
<!-- <TH>Writing support</TH>-->
<TH>書き出しサポート</TH>
</TR>
<TR>
<TD>1</TD>
<!-- <TD>single adjustment</TD>-->
<TD>1 文字の調整</TD>
<!-- <TD>This sub-table allows the font designer to change the metrics of a specific
glyph. The feature tag will provide a context in which the change should
occur. For instance the 'tnum' (tabular numbers) feature could change a
proportionally spaced digit by adjusting its advance width to be some set
value and then centering the digit (by adjusting the left side bearing) within
the new width.</TD>-->
<TD>このタイプのサブテーブルでは、特定のグリフのメトリックを変更することができます。どのようなコンテキストで変更が起こるかは、機能タグで指定します。例えば、‘tnum’ (表用数字) 機能により、プロポーショナル幅の数字の送り幅をある固定値に合わせてから (左サイドベアリングを調整して) 幅の中心に揃えることにより、プロポーショナル幅の数字を変更することができます。</TD>
<!-- <TD>These can be created with the <A HREF="charinfo.html">Element->Char
Info</A>->Position command.</TD>-->
<TD>これらは <A HREF="charinfo.html"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>グリフ情報(<U>I</U>)...</CODE></A>→<CODE>[位置]</CODE> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>2</TD>
<!-- <TD>pair adjustment</TD>-->
<TD>文字の対への調整</TD>
<!-- <TD>This sub-table allows the font designer to change the metrics of a specific
pair of glyph. The most common use of this is for kerning where the advance
width of the first glyph is altered depending on which glyph follows it.
But the table is more general than that and could support mark (accent, vowel)
positioning over a base glyph (though that is more efficiently done with
the mark to base subtable).</TD> -->
<TD>このタイプのサブテーブルでは、フォントデザイナーがグリフのメトリックの特定の要素を変更することができます。最も一般的な使い方としては、カーニングで、最初のグリフの送り幅が、次に来るグリフが何であるかによって変わる場合に使用するものです。しかし、このテーブルはそれよりも一般的な用途に用いることができ、基底グリフの上に置かれるマーク (アクセント、母音) の位置指定をサポートすることができます (ただし、これはマークからの基底グリフ指定サブテーブルを使うともっと効率的に行うことができるのですが)。
</TD>
<!-- <TD>'kern' feature s may be created from the <A HREF="metricsview.html">Metrics
View</A>. 'vkrn' with
<A HREF="metricsmenu.html#VKernFromHKern">Metrics->VKern From HKern</A>.</TD>-->
<TD>‘kern’機能はメトリックビューから作成することができ、‘vkrn’は <A HREF="metricsmenu.html#VKernFromHKern"><CODE>メトリック(<U>M</U>)</CODE>→<CODE>横書きカーニングを縦書きに</CODE></A>で指定することができます。</TD>
</TR>
<TR>
<TD>3</TD>
<!-- <TD>cursive attachment</TD>-->
<TD>筆記体の接続</TD>
<!-- <TD>This sub-table allows the font designer to force adjacent characters
to join at specific points. It can be used to generate the slanted script
style needed for Urdu.</TD> -->
<!-- <TD>This sub-table allows the font designer to force adjacent glyphs to join
at specific points. It can be used to generate the slanted script style needed
for Urdu.</TD> -->
<TD>このサブテーブルでは、フォントデザイナーが隣接するグリフ同士を特定の位置で接続するように強制することができます。これは、ウルドゥー語で必要となる傾いた筆記体を出力するのに使用することができます。</TD>
<!-- <TD>Only the 'curs' feature is supported for this sub-table. These may be
created with the <A HREF="pointmenu.html#AddAnchor">Points->Add Anchor</A>
command</TD>-->
<TD>このサブテーブルでサポートされているのは‘curs’機能だけです。これは、<A HREF="pointmenu.html#AddAnchor"><CODE>点(<U>P</U>)</CODE>→<CODE>アンカーを追加(<U>A</U>)...</CODE></A> コマンドによって作成できます。
</TR>
<TR>
<TD>4</TD>
<!-- <TD>mark to base</TD>-->
<TD>マークから基底グリフへ</TD>
<!-- <TD>This sub-table allows the font designer to specify how mark glyphs (accents,
vowel signs, etc.) are positioned over base glyphs. Every glyph can have
an attachment point and the mark's attachment point will be placed on the
base's attachment point so the two join properly. See my
on the base's attachment point so the two join properly. See my
<A HREF="overview.html#Anchors">example</A> in the overview.</TD>-->
<TD>フォントデザイナーは、このサブテーブルを使ってマーク (アクセント、母音記号など) グリフを基底グリフの上にどう配置するかを指定することができます。各グリフには接続点とを設定することができ、マークの接続点は基底グリフの接続点に重ね合わせられ、それによって それら正しく接続することになります。「概要」で示した私の<A HREF="overview.html#Anchors">例</A>をご覧ください。</TD>
<!-- <TD>These may be created with the
<A HREF="pointmenu.html#AddAnchor">Points->Add Anchor</A> command</TD> -->
<TD>これらは <A HREF="pointmenu.html#AddAnchor"><CODE>点(<U>P</U>)</CODE>→<CODE>アンカーを追加(<U>A</U>)...</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>5</TD>
<!-- <TD>mark to ligature</TD>-->
<TD>マークから合字へ</TD>
<!-- <TD>This sub-table is very similar to the previous one except that the base
glyph is a ligature and may have several different points at which the same
type of accent may be placed.</TD> -->
<TD>このサブテーブルは前のものと非常によく似ていますが、基底グリフが合字であって、同じタイプのアクセントを置くことができるいくつかの異なる点が存在してよいいことです。</TD>
<!-- <TD>These may be created with the
<A HREF="pointmenu.html#AddAnchor">Points->Add Anchor</A> command</TD> -->
<TD>これらは <A HREF="pointmenu.html#AddAnchor"><CODE>点(<U>P</U>)</CODE>→<CODE>アンカーを追加(<U>A</U>)...</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>6</TD>
<!-- <TD>mark to mark</TD>-->
<TD>マークからマークへ</TD>
<!-- <TD>This sub-table is very similar to the previous two except that the base
glyph is itself a mark. This may be used when a glyph has two accents each
of which would normally be placed at the same attachment point on a base
glyph. The second accent will be place relative to the first accent rather
than to the base glyph.</TD> -->
<TD>このサブテーブルは上の 2 つに非常によく似ていますが、基底グリフそのものがマークであってもよい点が異なります。これは基底グリフに 2 個のアクセントが接続し、それらが基底グリフに対して同じ接続点をもっている場合に使用することができます。2 番目のアクセントは基底グリフからではなく、最初のアクセントからの相対位置によって配置されることになります。</TD>
<!-- <TD>These may be created with the
<A HREF="pointmenu.html#AddAnchor">Points->Add Anchor</A> command</TD> -->
<TD>これらは <A HREF="pointmenu.html#AddAnchor"><CODE>点(<U>P</U>)</CODE>→<CODE>アンカーを追加(<U>A</U>)...</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>7</TD>
<!-- <TD>contextual positioning</TD>-->
<TD>文脈依存の位置指定</TD>
<!-- <TD>This sub-table allows the font designer to control the positioning of
glyphs when they occur within a specific string (or class of strings). For
instance this table could say "when you see a digit followed by the string
"th" then raise the "th" into a superscript position"</TD> -->
<TD>フォントデザイナーは、このサブテーブルを使って、複数のグリフが特定の文字列 (または文字列のクラス) の中に現れたときの位置指定を制御することができます。</TD>
<!-- <TD>These may be created with the
<A HREF="fontinfo.html#Contextual">Element->Font Info->Contextual
</A>command</TD> -->
<TD>これらは <A HREF="fontinfo.html#Contextual"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>フォント情報(<U>F</U>)...</CODE>→<CODE>[文脈依存]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>8</TD>
<!-- <TD>chaining contextual positioning</TD>-->
<TD>文脈依存の連鎖型位置指定</A>
<!-- <TD>This is a slightly more complex version of the above, it doesn't really
add new capabilities, but it does provide a more logical approach to the
issue.</TD> -->
<TD>これは上記の機能のより複雑なバージョンで、実際には本当に新しい機能を追加するものではありませんが、同じ事柄に対するより論理的なアプローチを提供しています。</TD>
<!-- <TD>These may be created with the
<A HREF="fontinfo.html#Contextual">Element->Font Info->Contextual
</A>command</TD> -->
<TD>これらは <A HREF="fontinfo.html#Contextual"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>フォント情報(<U>F</U>)...</CODE>→<CODE>[文脈依存]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>9</TD>
<!-- <TD>extension positioning</TD>-->
<TD>拡張位置指定</TD>
<!-- <TD>This is used to allow for a GPOS table which is bigger than 64k. Its
use should be quite invisible to the font designer</TD> -->
<TD>これは、GPOS テーブルが 64K より大きいときに使用します。これを使っていることは、フォントデザイナーからはまったく見えないようになっているべきです。</TD>
<!-- <TD>FontForge uses this sub-table when needed.</TD>-->
<TD>FontForge は、必要になったときにこのサブテーブルを使います。</TD>
</TR>
<TR>
<TD>10+</TD>
<!-- <TD>reserved for future use</TD>-->
<TD>将来の使用のために予約</TD>
<TD></TD>
<!-- <TD>FontForge does not support these sub-tables yet.<BR>
(nor does anyone)</TD>-->
<TD>FontForge は (ほかの誰もと同様に) これらのサブテーブルにまだ対応していません。</TD>
</TR>
</TABLE>
<P>
<!--
FontForge also has built into it knowledge on how to provide default values
for some features that use these tables. See
<A HREF="elementmenu.html#DefaultATT">Element->Typo. Features->Default
ATT</A> command for that. -->
FontForge には、これらのテーブルを使用するいくつかの機能に対して、どのようにデフォルト値を与えるべきかの知識が組み込まれています。これに関しては、<A HREF="elementmenu.html#DefaultATT"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>組版機能(<U>Y</U>)</CODE>→<CODE>デフォルトのATT(<U>D</U>)</CODE></A> コマンドを参照してください。
<P>
<!--
FontForge will retain the order of features in the GPOS table and when a
font is generated the order should be the same as it was before. -->
FontForge は GPOS テーブル内の機能の順番を保持し、フォントが出力されるときには前と同じ順番で出力されるはずです。
<H3>
<!-- The <B><CODE><A NAME="GSUB">GSUB</A></CODE></B> table-->
<B><CODE><A NAME="GSUB">GSUB</A></CODE></B> テーブル
</H3>
<P>
<!--
FontForge will read the following sub tables of the GSUB table: -->
FontForge は以下のサブテーブルを GSUB テーブルから読み込みます:
<TABLE Border=1>
<TR>
<TH></TH>
<TH>name</TH>
<!-- <TH>Reading support</TH>-->
<TH>読み込みサポート</TH>
<!-- <TH>Writing support</TH>-->
<TH>書き出しサポート</TH>
</TR>
<TR>
<TD>1</TD>
<!-- <TD>single substitution</TD>-->
<TD>単純置換 (単独置換)</TD>
<!-- <TD>This sub-table allows the font designer to change from one glyph to another,
with a context provided by the feature tag. For example many scripts have
letters which have a different form at the end of a word than they do within
(this is true of every letter in arabic, several in hebrew, lower case sigma
in greek, and the long-s/short-s pair in renaissance latin). So the 'fina'
feature would map the normal form into the final form, and the word processing
program would do a lookup at the end of each word to see if a transformation
was needed.</TD> -->
<TD>フォントデザイナーはこのサブテーブルを使って、あるグリフを別のグリフに、機能タグごとに定められた文脈の下で変更することができ。例えば、多くの用字系では、単語の終りに来たときには単語内に来たときと異なる形をもつ文字があります (これは、アラビア文字のほとんどの文字、ヘブライ文字のいくつか、ギリシャ文字の小文字シグマおよびルネッサンスのラテン文字の長い s/短い s のペアにおいては事実です)。そのために、‘fina’機能は通常の形から語尾専用の形への対応づけを行い、ワードプロセッサは各単語の末尾で、置換が必要かどうかを調べるためにその機能を使います。</TD>
<!-- <TD>These can be created with the <A HREF="charinfo.html">Element->Char
Info</A>->Substitution command.</TD> -->
<TD>これらは <A HREF="charinfo.html"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>グリフ情報(<U>I</U>)...</CODE>→<CODE>[置換]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>2</TD>
<!-- <TD>multiple substitution</TD>-->
<TD>複数置換</TD>
<!-- <TD>This sub-table allows the font designer to replace one glyph by a series
of others. This is generally used for rather technical layout issues.</TD>-->
<TD>フォントデザイナーはこのサブテーブルを使って、1 個のグリフを別のグリフの列に置換することができます。これは一般的に、かなり技術的なレイアウトの作業に使用されます。</TD>
<!-- <TD>These can be created with the <A HREF="charinfo.html">Element->Char
Info</A>->Multiple Substitution command.</TD> -->
<TD>これらは <A HREF="charinfo.html"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>グリフ情報(<U>I</U>)...</CODE>→<CODE>[複数置換]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>3</TD>
<!-- <TD>alternate substitution</TD>-->
<TD>選択肢つき置換</TD>
<!-- <TD>This sub-table allows the font designer to have a series of "alternates"
for each glyph. One common example would be an italic font which had several
swash variants for each capital letter. The word processing program would
allow the user to choose which variant was appropriate</TD> -->
<TD>フォントデザイナーはこのサブテーブルを使って、一連の“選択肢”を各グリフに持たせることができます。よくある一例としては、イタリックフォントの各大文字に、数種類のスワッシュ変種がある例でしょう。ワードプロセッサは、これらのどの変種が適切かを選ばせることができるでしょう。</TD>
<!-- <TD>These can be created with the <A HREF="charinfo.html">Element->Char
Info</A>->Alternate Substitution command.</TD> -->
<TD>これらは <A HREF="charinfo.html"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>グリフ情報(<U>I</U>)...</CODE>→<CODE>[選択型の置換]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>4</TD>
<!-- <TD>ligature substitution</TD>-->
<TD>合字置換</TD>
<!-- <TD>This sub-table allows the font designer to replace a string of glyphs
with another glyph. A common example is a ligature where the string
<IMG src="../../_images/f+i.png" WIDTH="24" HEIGHT="25" ALIGN="Middle"> is replaced by
the <IMG src="../../_images/fi.png" WIDTH="20" HEIGHT="25" ALIGN="Middle"> ligature.</TD> -->
<TD>フォントデザイナーはこのサブテーブルを使って、複数のグリフの並びを別の 1 個のグリフに置き換えることができます。よくある例としては、<IMG src="../../_images/f+i.png" WIDTH="24" HEIGHT="25" ALIGN="Middle"> というグリフの並びが合字 <IMG src="../../_images/fi.png" WIDTH="20" HEIGHT="25" ALIGN="Middle"> に置き換えられるなどの合字処理があります。</TD>
<!-- <TD>These can be created with the <A HREF="charinfo.html">Element->Char
Info</A>->Ligature command.</TD> -->
<TD>これらは <A HREF="charinfo.html"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>グリフ情報(<U>I</U>)...</CODE>→<CODE>[合字]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>5</TD>
<!-- <TD>contextual substitution</TD>-->
<TD>文脈依存の置換</TD>
<!-- <TD>This subtable allows for a string of glyphs to replace another string
of glyphs (or class of strings of glyphs)</TD> -->
<TD>個のサブテーブルでは、複数のグリフの並びを別のグリフの並び (またはグリフの並びのクラス) に置き換えることができます
<!-- <TD>These may be created with the
<A HREF="fontinfo.html#Contextual">Element->Font Info->Contextual
</A>command</TD>-->
<TD>これらは <A HREF="fontinfo.html#Contextual"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>フォント情報(<U>F</U>)...</CODE>→<CODE>[文脈依存]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>6</TD>
<!-- <TD>chaining contextual substitution</TD>-->
<TD>文脈連鎖依存の置換</TD>
<!-- <TD>This is a slightly more complex version of the above, it doesn't really
add new capabilities, but it does provide a more logical approach to the
issue.</TD> -->
<TD>これは上記の機能のより複雑なバージョンで、実際には本当に新しい機能を追加するものではありませんが、同じ事柄に対するより論理的なアプローチを提供しています。</TD>
<!-- <TD>These may be created with the
<A HREF="fontinfo.html#Contextual">Element->Font Info->Contextual
</A>command</TD> -->
<TD>これらは <A HREF="fontinfo.html#Contextual"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>フォント情報(<U>F</U>)...</CODE>→<CODE>[文脈依存]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>7</TD>
<!-- <TD>extension positioning</TD>-->
<TD>拡張置換</TD>
<!-- <TD>This is used to allow for a GSUB table which is bigger than 64k. Its
use should be quite invisible to the font designer</TD> -->
<TD>これは、GSUB テーブルが 64K より大きいときに使用します。これを使っていることは、フォントデザイナーからはまったく見えないようになっているべきです。</TD>
<!-- <TD>FontForge uses this sub-table when needed.</TD>-->
<TD>FontForge は、必要になったときにこのサブテーブルを使います。</TD>
</TR>
<TR>
<TD>8</TD>
<!-- <TD>reverse chaining contextual single substitution</TD>-->
<TD>逆順・連鎖型文脈依存の単独置換</TD>
<!-- <TD>This allows glyph substitutions to happen in reverse order, and it a
variant of the chaining contextual subtable.</TD> -->
<TD>これを使うと、グリフ置換を逆順に行うことができます。これは連鎖型文脈置換サブテーブルの変種です。</TD>
<!-- <TD>These may be created with the
<A HREF="fontinfo.html#Contextual">Element->Font Info->Contextual
</A>command</TD> -->
<TD>これらは <A HREF="fontinfo.html#Contextual"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>フォント情報(<U>F</U>)...</CODE>→<CODE>[文脈依存]</CODE></A> コマンドで作成することができます。</TD>
</TR>
<TR>
<TD>9+</TD>
<!-- <TD>reserved for future use</TD>-->
<TD>将来の使用のために予約</TD>
<TD></TD>
<!-- <TD>FontForge does not support these sub-tables yet.<BR>
(nor does anyone)</TD>-->
<TD>FontForge は (ほかの誰もと同様に) これらのサブテーブルにまだ対応していません。</TD>
</TR>
</TABLE>
<P>
<!--
FontForge also has built into it knowledge on how to provide default values
for some features that use these tables. See
<A HREF="elementmenu.html#DefaultATT">Element->Default ATT</A> command
for that. -->
FontForge には、これらのテーブルを使用する機能のいくつかに対しては、どのようにデフォルト値を与えるかの知識も組み込まれています。
<P>
<!--
FontForge can produce some of these tables, but the text layout/word processing
program used has to look up the tables and do the actual work of rearranging
the glyphs. -->
FontForge はこれらのテーブルのうちのいくつかを出力できますが、テキストレイアウト/ワードプロセッシング処理を行うプログラムは、このテーブルを参照して、実際にグリフを再配置する作業を行う必要があります。
<P>
<!--
FontForge will retain the order of features in the GSUB table, and the user
may adjust it with the <A HREF="fontinfo.html#Order">Element->Font Info</A>
command. -->
FontForge は GSUB テーブル内の機能の順番を保持しており、ユーザはそれを <A HREF="fontinfo.html#Order"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>フォント情報(<U>F</U>)...</CODE></A> コマンドで並べ替えることができます。
<H3>
<!-- The <B><CODE><A NAME="GDEF">GDEF</A> </CODE></B>table-->
<B><CODE><A NAME="GDEF">GDEF</A></CODE></B> テーブル
</H3>
<P>
<!--
FontForge will read ligature carets out of a GDEF table. -->
FontForge は合字キャレットを GDEF テーブルから読み込みます。
<P>
<!--
It will generate a GDEF table containing a glyph class definition sub-table
(if needed) or a ligature caret sub-table (if needed). -->
FontForge は、グリフクラス定義サブテーブル (必要な場合) または合字キャレット (必要な場合) を含む GDEF テーブルを生成します。
<H2>
<!-- <A NAME="AAT">Apple</A> Advanced Typography-->
<A NAME="AAT">Apple</A> 高度組版機能 (ATT)
</H2>
<P>
<!--
As above I do not go deeply into the abilities of these tables, for more
information see Apple's docs: -->
上に書いたように、私はこれらのテーブルの機能の詳細には立ち入りません。より詳しい情報に関しては Apple の文書を参照してください。
<UL>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6kern.html">The
'kern' table</A> -->
<A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6kern.html">‘kern’テーブル</A>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6lcar.html">The
'lcar' (ligature caret) table</A> -->
<A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6lcar.html">‘lcar’ (合字キャレット) テーブル</A>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6morx.html">The
'morx' (extended glyph metamorphosis) table</A>-->
<A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6morx.html">‘morx’ (拡張グリフ変形) テーブル</A>
<UL>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6mort.html">The
'mort' (older version of 'morx') table</A>-->
<A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6mort.html">‘mort’ (‘morx’ の旧版) テーブル</A>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6feat.html">The
'feat' (feature) table</A> -->
<A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6feat.html">‘feat’ (機能) テーブル</A>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/Registry/index.html">Apple's Font
Feature registry</A> -->
<A HREF="http://developer.apple.com/fonts/Registry/index.html">Apple のフォント機能登録簿</A>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6Tables.html">Description
of the subtables of the 'mort'/'morx' tables</A> -->
<A HREF="http://developer.apple.com/fonts/Registry/index.html">‘mort’/‘morx’テーブルのサブテーブルの説明</A>
</UL>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6opbd.html">The
‘opbd’(optical bounds) table</A> -->
<A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6opbd.html">‘opbd’ (視覚的境界線) テーブル</A>
<LI>
<!-- <A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6prop.html">The
'prop' (glyph properties) table</A> -->
<A HREF="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6prop.html">‘prop’ (グリフ属性) テーブル</A>
</UL>
<P>
<!--
FontForge will current read and produce (if Apple mode is set in font generation)
the following tables: -->
現在、FontForge は以下のテーブルの読み書きを (Apple モードがフォント出力時に設定されていれば) 行います:
<TABLE BORDER CELLPADDING="2">
<CAPTION>
<!-- Apple tables corresponding vaguely to <A HREF="#GDEF">GDEF</A>-->
<A HREF="#GDEF">GDEF</A> にほぼ相当する OpenType のテーブル
</CAPTION>
<TR>
<TH>tag</TH>
<TH>name</TH>
<!-- <TH>Reading support</TH>-->
<TH>読み込みサポート</TH>
<!-- <TH>Writing support</TH>-->
<TH>書き出しサポート</TH>
</TR>
<TR>
<TD><CODE>'lcar'</CODE></TD>
<!-- <TD>ligature caret table</TD>-->
<TD>合字キャレットテーブル</TD>
<!-- <TD>FontForge will read ligature carets</TD>-->
<TD>FontForge は合字キャレットを読み込みます</TD>
<!-- <TD>FontForge will produce this table if the user has specified ligature
carets</TD> -->
<TD>FontForge は、ユーザが合字キャレットを出力していればこのテーブルを出力します。</TD>
</TR>
<TR>
<TD><CODE>'prop'</CODE></TD>
<!-- <TD>glyph properties table</TD>-->
<TD>グリフ属性テーブル</TD>
<!-- <TD>FontForge will read this table to figure out which glyphs are hebrew
and arabic, and which have 'r2la' substitutions.</TD> -->
<TD>FontForge は、ヘブライ文字とアラビア文字にあたり、‘r2la’置換を行うののがどの文字であるかを特定するためにこのテーブルを読み込みます。</TD>
<!-- <TD>FontForge will generate this table if the font contains some right to
left glyphs.</TD> -->
<TD>FontForge は、フォントに何らかの右から左へ書くグリフが含まれているときにこのテーブルを出力します。</TD>
</TR>
</TABLE>
<P>
<TABLE BORDER CELLPADDING="2">
<CAPTION>
<!-- Apple tables corresponding vaguely to <A HREF="#GPOS">GPOS</A>-->
<A HREF="#GPOS">GPOS</A> にほぼ相当する OpenType のテーブル
</CAPTION>
<TR>
<TH>tag</TH>
<TH>name</TH>
<!-- <TH>Reading support</TH>-->
<TH>読み込みサポート</TH>
<!-- <TH>Writing support</TH>-->
<TH>書き出しサポート</TH>
</TR>
<TR>
<TD><CODE>'kern'</CODE></TD>
<!-- <TD>kerning table</TD>-->
<TD>カーニングテーブル</TD>
<!-- <TD>FontForge will read horizontal/vertical kerning pairs and classes. FontForge
can read contextual kerning information too into a state machine.</TD> -->
<TD>FontForge は横書き/縦書きカーニングペアとカーニングクラスを読み込みます。FontForge は文脈依存のカーニング情報を状態機械に読み込むこともできます。</TD>
<!-- <TD>FontForge will produce this if the font contains kerning data - - kerning
pairs, kerning by classes, and kerning by state machine.</TD> -->
<TD>FontForge は、フォントにカーニングデータが含まれていればそれ——カーニングペア・クラスごとのカーニングおよび状態機械によるカーニング——を出力します。</TD>
</TR>
<TR>
<TD><CODE>'opbd'</CODE></TD>
<!-- <TD>Optical bounds table</TD>-->
<TD>視覚的字端テーブル</TD>
<!-- <TD>FontForge will read optical bounds</TD>-->
<TD>FontForge は視覚的字端を読み込みます</TD>
<!-- <TD>FontForge will produce this table if the user has specified right and
left bounds as simple positions ('lfbd' and 'rtbd').</TD> -->
<TD>FontForge は、ユーザが単純な位置による左端および右端の指定 (‘lfbd’と‘rtbd’) を行った場合、これらのテーブルを出力します。</TD>
</TR>
</TABLE>
<P>
<P>
<!--
FontForge has support for the <CODE>'mort'</CODE> and
<CODE>'<A NAME="morx">morx</A>'</CODE> tables (Glyph metamorphosis and extended
glyph metamorphosis tables). These correspond vaguely to the
<A HREF="#GSUB">GSUB</A> table. Note: Any feature type/setting combinations
which correspond directly to an open type feature will be converted to the
opentype tag when read in. It will be converted back to a feature/setting
when an apple font is generated (use
<A HREF="prefs.html#Mac">File->Preferences</A> to extend FontForge's mapping
from feature type/setting to opentype tags). -->
FontFonge には <CODE>‘mort’</CODE> (グリフ変形) テーブルと <CODE>‘<A NAME="morx">morx</A>’</CODE> (拡張グリフ変形) テーブルのサポートが含まれています。これらは大まかに <A HREF="#GSUB">GSUB</A> テーブルと対応しています。注意: OpenType の昨日に直接対応するすべての任意の機能タイプ/設定の組合せは、読み込み時に OpenType タグに変換されます。それが機能/設定の対に書き戻されるのは、Apple 対応のフォントを生成したとき (FontForge の機能/設定から OpenType タグへの対応表を拡張するには、<A HREF="prefs.html#Mac"><CODE>ファイル(<U>F</U>)</CODE>→<CODE>環境設定(<U>E</U>)...</CODE></A> を使用してください)。
<TABLE BORDER CELLPADDING="2">
<CAPTION>
<!-- Sub tables of <CODE>'mort'</CODE> or <CODE>'morx'</CODE>-->
<CODE>‘mort’</CODE> または <CODE>‘morx’</CODE> テーブルのサブテーブル
</CAPTION>
<TR>
<TH></TH>
<!-- <TH>name</TH>-->
<TH>名前</TH>
<!-- <TH>Reading support</TH>-->
<TH>読み込みサポート</TH>
<!-- <TH>Writing support</TH>-->
<TH>書き出しサポート</TH>
</TR>
<TR>
<TD>0</TD>
<!-- <TD>Indic style rearrangement</TD>-->
<TD>インド系文字用の再配置</TD>
<!-- <TD>FontForge can read these and stores them as state machines (which can
be edited with <A HREF="fontinfo.html#Mac-SM">Font Info</A>)</TD> -->
<TD>FontForge はこれらを読み込み、状態機械として格納することができます (それらは <A HREF="fontinfo.html#Mac-SM">フォント情報</A> で編集することができます)。</TD>
<!-- <TD>Any indic state machines will be output in the generated font.</TD>-->
<TD>すべてのインド系文字状態機械は、出力されるフォントに書き出されます。</TD>
</TR>
<TR>
<TD>1</TD>
<!-- <TD>contextual glyph substitution</TD>-->
<TD>文脈依存のグリフ置換</TD>
<!-- <TD>FontForge can read these and stores them as state machines (which can
be edited with <A HREF="fontinfo.html#Mac-SM">Font Info</A>)</TD> -->
<TD>FontForge はこれらを読み込み、状態機械として格納することができます (それらは <A HREF="fontinfo.html#Mac-SM">フォント情報</A> で編集することができます)。</TD>
<!-- <TD>If the font contains any state machines they will be output here. If
there are no state machines then the following conversions of opentype features
will be done: -->
<TD>フォントに何らかの状態機械が含まれていれば、それらはここに書き出されます。もし、状態機械が存在しないならば、以下のようにして OpenType 機能から変換します:
<UL>
<LI>
<!-- FontForge will generate a <A NAME="cursive-connection">cursive connection
</A>feature using this subtable type if the font contains 'init', 'medi',
'fina' or 'isol' simple substitutions. -->
FontForge は、フォントに‘init’,‘medi’,‘fina’または‘isol’による単純置換が含まれていれば、このサブテーブルを使って<A NAME="cursive-connection">筆記体の接続</A>機能を書き出します。
<LI>
<!-- In <A HREF="gposgsub.html#sometimes">some cases</A> FontForge is able to
convert an OpenType Contextual/Chaining substitution table into an Apple
contextual glyph substitution table. -->
<A HREF="gposgsub.html#sometimes">一定の条件を満たしている場合</A>には、FontForge は OpenType の文脈依存テーブル/連鎖型文脈依存テーブルを Apple の文脈依存グリフ置換テーブルに変換することができます。
</UL>
</TD>
</TR>
<TR>
<TD>2</TD>
<!-- <TD>ligature substitution</TD>-->
<TD>合字置換</TD>
<!-- <TD>FontForge can read the unconditional information from these and stores
them as opentype ligatures (which can be edited with
<A HREF="charinfo.html#features">Char Info</A>).</TD> -->
<TD>FontForge は無条件の合字情報を読み込み、OpenType の合字として格納することができます (それらは <A HREF="charinfo.html#features">グリフ情報</A> で編集することができます)。</TD>
<!-- <TD>If there are any ligatures with an apple feature/setting (or which have
an opentype tag which can be converted to an apple feature/setting) then
this table will be output.</TD>-->
<TD>フォントに何らかの合字が含まれていれば (または Apple の機能/設定に変換可能な OpenType タグが存在すれば) このテーブルが出力されます。</TD>
</TR>
<TR>
<TD>4</TD>
<!-- <TD>non-contextual glyph substitution</TD>-->
<TD>文脈非依存のグリフ置換</TD>
<!-- <TD>FontForge can read these and stores them as opentype simple substitutions
(which can be edited with <A HREF="charinfo.html#features">Char Info</A>)</TD> -->
<TD>FontForge はこれらを読み込み、OpenType の単純置換として格納することができます (それらは <A HREF="charinfo.html#features">グリフ情報</A> で編集することができます)。</TD>
<!-- <TD>If there are any substitutions with an apple feature/setting (or which
have an opentype tag which can be converted to an apple feature/setting)
then this table will be output.</TD> -->
<TD>フォントに何らかの置換が含まれていれば (または Apple の機能/設定に変換可能な OpenType タグが存在すれば) このテーブルが出力されます。</TD> </TR>
<TR>
<TD>5</TD>
<!-- <TD>contextual glyph insertion</TD>-->
<TD>文脈依存のグリフ挿入</TD>
<!-- <TD>FontForge can read these and stores them as state machines (which can
be edited with <A HREF="fontinfo.html#Mac-SM">Font Info</A>)</TD> -->
<TD>FontForge はこれらを読み込み、状態機械として格納することができます (それらは <A HREF="fontinfo.html#Mac-SM">フォント情報</A> で編集することができます)。</TD>
<!-- <TD>Any glyph insertion state machines will be output in the generated font.</TD>-->
<TD>すべてのグリフ挿入状態機械は出力されるフォントに書き出されます。</TD>
</TR>
</TABLE>
<H3>
<!-- What features can be <A NAME="Conversion">interconverted</A> between OpenType
and AAT? -->
OpenType と AAT との間ではどの機能が<A NAME="Conversion">相互変換</A>可能か?
</H3>
<P>
<!--
Some features have almost the same meaning in OpenType and AAT (although
they are expressed quite differently), others are similar enough that they
can sometimes be converted, and others have essentially no common ground. -->
いくつかの機能は OpenType と AAT でほとんど同じ意味をもっており (それらの表現方法はまったく異なりますが)、他のいくつかは場合によっては変換可能なほど十分似ていますが、その他は本質的に共通の基盤をもっていません。
<P>
<TABLE BORDER CELLPADDING="2">
<TR>
<!-- <TH>OT Table</TH>-->
<TH>OpenType テーブル</TH>
<!-- <TH>AAT Table</TH>-->
<TH>AAT テーブル</TH>
<TH><P ALIGN=Left>
<!-- Description</TH>-->
説明</TH>
</TR>
<TR>
<TD VALIGN="Top"><P ALIGN=Center>
GDEF</TD>
<TD VALIGN="Top"><P ALIGN=Center>
lcar</TD>
<!-- <TD>The ligature caret information in both 'GDEF' and 'lcar' is essentially
identical and FontForge has no trouble reading both and converting from one
to the other.</TD> -->
<TD>合字キャレット情報は‘GDEF’と‘lcar’で本質的に等しく、FontForge は両形式の読み込みと、相互変換を問題なく行えます。
</TR>
<TR>
<TD><P ALIGN=Center>
GPOS</TD>
<TD><P ALIGN=Center>
kern</TD>
<!-- <TD>In most cases kerning information can be converted from one format to
another. Both provide support for vertical kerning and right to left kerning.
Both provide support for kerning by glyph pair and kerning by classes.-->
<TD>ほとんどの場合、カーニング情報は片方のフォーマットからもう一方へと変換可能です。両方とも縦書きカーニングと右横書きのカーニングをサポートしています。
<P>
<!-- OpenType allows kerning commands to be supplied via a contextual chaining
feature, Apple allows them to be controled by a state machine. FontForge
supports both, but does not interconvert.</TD> -->
OpenType はカーニングコマンドを条件連鎖型の機能を通じて提供可能で、Apple では状態機械によって制御することが可能です。FontForge は両方をサポートしていますが、相互変換はしません。</TD>
</TR>
<TR>
<TD><P ALIGN=Center>
GPOS</TD>
<TD><P ALIGN=Center>
opbd</TD>
<!-- <TD>The GPOS features 'lfbd' and 'rtbd' provide the information needed to
generate an Apple opbd table. If FontForge reads a font with an opbd table
it will generate appropriate 'lfbd' and 'rtbd' features. If FontForge generates
a font in apple mode that has these features it will create an opbd table.
Similarly when FontForge reads an opbd table it will create 'lfbd' and 'rtbd'
features.</TD> -->
<TD>GPOS 機能‘lfbd’および‘rfbd’は Apple の opbd テーブルを生成するのに十分なだけの情報を備えています。FontForge が opbd テーブルを服務フォントを読み込んだときには、適切な‘lfbd’および‘rtbd’機能を作成します。FotnForge が Apple モードのフォントを出力するときにそれらの機能が存在する場合、‘opbd’テーブルを作成します。同様に、FontForge が opbd テーブルを読み込むとき、‘lfbd’と‘rtbd’機能を作成します。</TD>
</TR>
<TR>
<TD><P ALIGN=Center>
GPOS</TD>
<TD>
<HR>
</TD>
<!-- <TD>I am not aware of any way to convert other GPOS features to AAT.</TD> -->
<TD>私はその他の GPOS 機能を AAT に変換する方法については知りません。</TD>
</TR>
<TR>
<TD><P ALIGN=Center>
GSUB</TD>
<TD><P ALIGN=Center>
morx</TD>
<!-- <TD ROWSPAN=2>The 'mort' and 'morx' tables have the same capabilities ('mort'
tables are an old format and Apple currently encourages that 'morx' tables
be used instead). FontForge can read either one, but only generates 'morx'
tables. Interconversion depends on specific feature types and the sub-table
formats, see below</TD>-->
<TD ROWSPAN=2>‘mort’および‘morx’テーブルは同じ機能をもっています (‘mort’テーブルは古いフォーマットで、Apple は現在それの代わりに‘morx’を用いることを推奨しています)。FontForge はどちらも読み込むことはできますが、‘morx’テーブルのみを出力します。相互変換ができるかどうかは個別の機能タイプおよびサブテーブルに依存します。以下を参照してください:
</TR>
<TR>
<TD><P ALIGN=Center>
GSUB</TD>
<TD><P ALIGN=Center>
mort</TD>
</TR>
</TABLE>
<H4>
<!-- An analysis of GSUB and morx sub-tables and feature tags-->
GSUB および morx サブテーブルの解析と機能タグ
</H4>
<P>
<!--
OpenType uses a four character feature tag (like 'liga') while Apple uses
two numbers to represent a feature setting (<1,2>). For FontForge to
be able to inter-convert an OpenType feature into an Apple feature there
must first be a correspondence between the two naming conventions. Sometimes
there is an easy direct conversion (above 'liga' and <1,2> both represent
"Common Ligatures") but far more often there is none. See
<A HREF="gposgsub.html#OT-Mac-features">below</A> for a list of the tags
and feature settings that FontForge considers similar enough to interconvert. -->
OpenType が 4 文字の機能タグ (‘liga’など) を使用しているのに対し、Apple は機能設定を表す 2 個の数値 (<1,2> など) を使用します。FontForge にとっては、OpenType の機能と Apple の機能を相互変換できるようにするためには、まず 2 つの名前付規約の間の対応づけが存在しなければなりません。時には、単純な直接変換が存在する場合もあります (例えば、‘liga’と <1,2> はどちらも“一般的な合字”を表します)。FontForge が、相互変換が十分可能なほど似ているとみなしているタグと機能の設定の一覧は、<A HREF="gposgsub.html#OT-Mac-features">以下</A>を参照してください。
<P>
<!--
GSUB tables have 7 sub-table formats, while morx tables have 5. -->
GSUB テーブルには 7 種類のサブテーブルフォーマットがあるのに対し、morx テーブルには 5 種類があります。
<TABLE BORDER CELLPADDING="2">
<TR>
<!-- <TH>GSUB<BR>
sub-<BR>
table</TH>-->
<TH>GSUB<BR>サブ<BR>テーブル</TH>
<!-- <TH>morx<BR>
sub-<BR>
table</TH>-->
<TH>morx<BR>サブ<BR>テーブル</TH>
<TH><P ALIGN=Left>
<!-- Description</TH>-->
説明</TH>
</TR>
<TR>
<TD VALIGN="Top"><P ALIGN=Center>
<!-- Single</TD> -->
単独</TD>
<TD VALIGN="Top"><P ALIGN=Center>
<!-- Non-<BR>
Contextual<BR>
Glyph</TD> -->
文脈<BR>独立な<BR>グリフ</TD>
<!-- <TD>These two sub-tables have almost exactly the same capabilities. Each
allows one glyph to be substituted for another. The morx sub-table also allows
a glyph to be deleted, while the GSUB sub-table does not.</TD> -->
<TD>これらの 2 種類のサブテーブルはほとんど正確に同じ機能をもっています。それぞれ 1 個のグリフをもう 1 つのグリフにすることができます。morx サブテーブルではグリフを削除することもできますが、GSUB サブテーブルではこれを許していません。</TD>
</TR>
<TR>
<TD VALIGN="Top"><P ALIGN=Center>
<!-- Multiple</TD>-->
複数</TD>
<TD></TD>
<!-- <TD>This GSUB subtable allows a single glyph to be replaced by multiple glyphs.
It has some similarities to Apple's Glyph Insertion sub-table except:-->
<TD>この GSUB サブテーブルは、1 個のグリフを複数のグリフによって置き換える個とが可能です。以下の相違点を除いて、Apple のグリフ挿入サブテーブルとある程度の類似点があります:
<UL>
<LI>
<!-- the 'morx' sub-table always leaves the current glyph in the glyph stream,
while this sub-table need not -->
‘morx’サブテーブルは、常に現在のグリフをグリフストリームに残すのに対して、このサブテーブルは残す必要はありません。
<LI>
<!-- the 'morx' sub-table is contextual while this sub-table is never. (But if
this sub-table is wrapped inside a Context or Chaining Context subtable the
result can be contextual). -->
‘morx’サブテーブルは文脈依存であるのに対し、このサブテーブルは完全に文脈独立です (ただし、このサブテーブルが文脈依存または連鎖型文脈依存サブテーブルに包まれているときは、結果が文脈依存になることもあり得ます)。
</UL>
</TD>
</TR>
<TR>
<TD></TD>
<TD VALIGN="Top"><P ALIGN=Center>
<!-- Glyph<BR>
Insertion</TD> -->
グリフ<BR>挿入</TD>
<!-- <TD>This morx subtable allows a string of glyphs to be inserted before or
after the current glyph (the current glyph always remains). This sub-table
is contextual (ie. the insertion can be restricted to certain contexts).
It bears some similarities to the GSUB Multiple subtable above.</TD> -->
<TD>この morx サブテーブルを使うと、グリフの列を現在のグリフの前後に挿入することができます (現在のグリフは常にそのまま残ります)。このサブテーブルは文脈依存です (すなわち、挿入が起こるのを特定の文脈に制限することができます)。上に挙げた GPOS の複数置換テーブルとある種の類似性があります。</TD>
</TR>
<TR>
<!-- <TD VALIGN="Top">Alternate</TD> -->
<TD VALIGN="Top">選択肢</TD>
<TD></TD>
<!-- <TD>This GSUB subtable allows a single glyph to be replaced by any one of
several alternatives (presumably with help from a word processor's UI). An
example of this would be a character which had several swash variants. There
is nothing like this in the 'morx' table.</TD>-->
<TD>この GSUB サブテーブルを使うと、1 個のグリフをいくつかの選択肢から (おそらくは、ワードプロセッサーの UI の助けを借りて) 任意の 1 個と交換することができます。この一例はいくつかの変種のスワッシュをがある文字です。‘morx’テーブルにはこれと似たような機能はありません。</TD>
</TR>
<TR>
<TD VALIGN="Top"><P ALIGN=Center>
<!-- Ligature</TD> -->
合字</TD>
<TD VALIGN="Top"><P ALIGN=Center>
<!-- Ligature</TD> -->
合字</TD>
<!-- <TD>Both formats have ligature sub-tables. The 'GSUB' version is unconditional
(the ligature is always applied -- though a ligature substitution could be
embedded in an OpenType contextual substitution to make it condtional). The
'morx' version can be contextual (though in fonts I have examined it is usually
uncontextual). FontForge only supports unconditional ligatures. -->
<TD>どちらのフォーマットにも合字サブテーブルは存在します。‘GSUB’のバージョンは文脈非依存です (合字は常に適用されます——合字置換を OpenType の文脈依存の置換に埋め込んで、実行条件をつけることはできますが)。‘morx’バージョンは文脈依存にすることも可能です (私が調べた限りでは、文脈非依存であるのが通例でしたが)。FontForge は文脈非依存の合字のみをサポートしています。
<P>
<!-- FontForge can read all the unconditional ligatures from a 'morx' sub-table.
FontForge loses all contextual ligatures. -->
FontForge はすべての文脈非依存の合字を‘morx’サブテーブルから読み込むことができます。FontForge は文脈依存の合字をすべて捨ててしまいます。
<P>
<!-- In OpenType, contextual ligatures can be built by wrapping a ligature sub-table
inside a Context or Chaining Context subtable.</TD> -->
OpenType では、文脈依存の合字は、合字サブテーブルを文脈依存または連鎖型文脈依存サブテーブルに埋め込むことによって作成可能です。</TD>
</TR>
<TR>
<TD></TD>
<TD VALIGN="Top"><P ALIGN=Center>
<!-- Contextual<BR>
Glyph</TD> -->
文脈依存の<BR>グリフ</TD>
<!-- <TD>This morx subtable allows single glyph substitutions to be applied within
certain contexts. At first glance it seems that this could be converted into
an opentype Context subtable, <A HREF="gposgsub.html#sometimes">but this
is rarely the case</A>.</TD>-->
<TD>この morx サブテーブルを使うと、単純グリフ置換をいくつかの文脈に適用することができます。一見して、これは OpenType の文脈依存サブテーブルに変換することができるように思えますが、<A HREF="gposgsub.html#sometimes">それが可能なのはごく稀な場合でしかありません。</TD>
</TR>
<TR>
<TD><P ALIGN=Center>
<!-- Context</TD> -->
文脈依存</TD>
<TD></TD>
<!-- <TD ROWSPAN="2" VALIGN="Top">These GSUB subtables allow any collection of
other substitutions to be applied contextually. At first glance one might
think that these (with appropriate nested substitutions) might be converted
to 'morx' contextual glyph substitutions, contextual ligatures, or even glyph
insertion. <A HREF="gposgsub.html#sometimes">Unfortunately this is rarely
the case</A>.</TD> -->
<TD ROWSPAN="2" VALIGN="Top">これらの GSUB サブテーブルはその他の置換の任意の集合を文脈依存の形で適用することが可能です。一見して (適切な入れ子構造の置換を含む) この種類のテーブルは‘morx’の文脈依存グリフ置換、文脈依存の合字、またはグリフ挿入にさえ変換することが可能なように思えるでしょう。<A HREF="gposgsub.html#sometimes">それが可能なのはごく稀な場合でしかありません。</A>
</TR>
<TR>
<TD><P ALIGN=Center>
<!-- Chaining<BR>
Context</TD> -->
連鎖型<BR>文脈依存</TD>
<TD></TD>
</TR>
<TR VALIGN="Top">
<TD><P ALIGN=Center>
<!-- Reverse<BR>
Chaining<BR>
Context</TD> -->
逆順の<BR>連鎖型<BR>文脈依存</TD>
<TD></TD>
<!-- <TD>This GSUB subtable is applied backwards to the stream of glyphs, it allows
a single glyph substitution per contextual match. There is nothing like it
in 'morx'.</TD> -->
<TD>この GSUB サブテーブルはグリフのストリームに対して逆順に適用されるもので、所定の文脈に一致するごとに単独グリフ置換を 1 回行うことができます。‘morx’にはこれに似た機能は存在しません。</TD>
</TR>
<TR VALIGN="Top">
<TD></TD>
<TD><P ALIGN=Center>
<!-- Indic<BR>
Rearrange-<BR>
ment</TD> -->
インド系<BR>文字の<BR>再配置</TD>
<!-- <TD>This‘morx’subtable allows for several glyphs to interchange their positions
in the glyph stream. There is nothing like it in GSUB (or GPOS for that matter).</TD>-->
<TD>この‘morx’サブテーブルを使うと、グリフのストリームに含まれるいくつかの文字の順番を交換する事ができます。 GSUB には (同じく GPOS にも) 似たような機能は存在しません。</TD>
</TR>
</TABLE>
<H4>
<!-- Why do contextual glyph substitutions only <A NAME="sometimes">sometimes</A>
get generated in AAT? -->
なぜ文脈依存のグリフ置換は<A NAME="sometimes">たまに</A>しか AAT で出力できないのか?
</H4>
<P>
<!--
Sadly OpenType and AAT provide disjoint capabilities when it comes to contextual
matching. AAT is more capable in some areas, OpenType more capable in others.
FontForge is able to convert an OpenType contextual substitution into an
AAT one if FontForge can detect that the OpenType substitution does not use
capabilities beyond those of AAT. Currently this means: -->
嘆かわしいことに、OpenType と AAT とが提供している機能は、文脈を照合する処理に関しては共通点がないのです。ある部分では AAT のほうが機能豊富で、別の部分では OpenType のほうが機能豊富です。FontForge が OpenType の文脈依存置換を AAT の置換に変換することができるのは、その OpenType 置換が AAT の能力を超えた機能を使用していないことを FontForge が検出できたときに限られます。現在のところ、具体的には以下の条件を満たしている必要があります:
<UL>
<LI>
<!-- There is an apple feature which matches the otf tag-->
その OTF タグに適合する Apple の機能が存在する
<LI>
<!-- And one of the following is true:-->
それに加え、以下のどれか 1 つが正しい:
<OL>
<LI>
<!-- Either -->
以下のどちらかの条件が満たされている:
<UL>
<LI>
<!-- The sub-table is in coverage format -->
そのサブテーブルが適用範囲フォーマットであるか、もしくは
<LI>
<!-- The sub-table contains either exactly one nested single glyph replacement
substitution, or<BR> -->
そのサブテーブルがちょうど 1 個の入れ子構造の単純グリフ置換を含んでいるか、または<BR>
<!-- it contains exactly two single glyph replacements and one of them refers
to the last glyph matched (and the other does not) -->
ちょうど 2 個の単純グリフ置換を含んでいて、それらのうちの 1 つが、最後に一致したグリフを参照している (そして、もう 1 つのほうは参照していない)
</UL>
<LI>
<!-- or -->
または以下の場合。
<UL>
<LI>
<!-- The sub-table is in either glyph or class format -->
そのサブテーブルがグリフフォーマットかクラスフォーマットのどちらかである
<LI>
<!-- If in class format then either the backtrack and lookahead classes must be
the same as the main class, or they must not be used. -->
クラスフォーマットの場合、バックトラックと前方参照クラスは全てメインクラスと同じであるか、それらを使っていないかのどちらかでなければなりません。
<LI>
<!-- If a rule has a substitution at a given glyph position, then all rules which
match the current rule up to that glyph position must also have a substitution
at that position. -->
あるルールが所定のグリフ位置での置換を含んでいる場合、現在のルールに一致するそのグリフ位置までのすべてのルールもまた、その位置における置換を含んでいなければなりません。
<LI>
<!-- A rule with exactly one substitution is acceptable<BR>
A rule with one substitution in the middle and one substitution on the last
glyph is acceptable.<BR>
A rule may contain more substitutions only if there is another rule which
matches it exactly up to the internal substitution.<BR>
So the following rule set is valid: -->
ちょうど 1 個の置換を含むルールは認められます。<BR>
途中に 1 個の置換を含み最後のグリフで起こる置換を 1 個含むルールも認められます。<BR>
ルールには、さらに追加の置換を含むことができる場合があります。それは、途中までの置換とその部分まで正確に同じ置換を行う別のルールがある場合に限ります。<BR>
これによると、以下の置換セットは正しいことになります:
<TABLE BORDER CELLPADDING="2">
<TR>
<!-- <TH>Rule</TH>-->
<TH>ルール</TH>
<TD>a</TD>
<TD>b</TD>
<TD>c</TD>
<TD>d</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
<TR>
<!-- <TH>Rule</TH>-->
<TH>ルール</TH>
<TD>a</TD>
<TD>b</TD>
<TD>c</TD>
<TD>d</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<!-- <TH>Rule</TH>-->
<TH>ルール</TH>
<TD>a</TD>
<TD>b</TD>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<!-- <TH>Substitutions</TH> -->
<TH>置換</TH>
<TD>A</TD>
<TD>B</TD>
<TD>C</TD>
<TD>D</TD>
<TD>E</TD>
<TD>F</TD>
</TR>
</TABLE>
<P>
<!-- So the third rule will match an "ab" and convert them to "AB" (and this is
valid because we have one internal and one final substitution and that's
ok), then if that "ab" is followed by "cd" then rule 2 kicks in and will
replace the "cd" with "CD" (again this has one internal and one final
substitution, which is ok), and if that is followed by "ef" then they will
be converted to "EF". -->
ここでは 3 番目のルールは“ab”に一致し、それを“AB”に変換します (これは途中までの置換 1 個と最後までの置換 1 個を含んでいるので、正しいルールです) その後、“ab”の後に“cd”が来た場合にはルール 2 が呼び出され、“cd”を“CD”に置き換え (この場合も、1 個の中間置換と 1 個の末尾までの置換を含んでおり、これも問題ありません)、さらに“ef”が後ろに来たならば、それらは“EF”に変換されます。
<P>
<!-- The following is not valid:-->
以下は正しくありません:
<TABLE BORDER CELLPADDING="2">
<TR>
<!-- <TH>Substitutions</TH> -->
<TH>置換</TH>
<TD></TD>
<TD>B</TD>
<TD></TD>
</TR>
<TR>
<!-- <TH>Rule</TH>-->
<TH>ルール</TH>
<TD>a</TD>
<TD>b</TD>
<TD>c</TD>
</TR>
<TR>
<TD COLSPAN=4>
<HR>
</TD>
</TR>
<TR>
<!-- <TH>Rule</TH>-->
<TH>ルール</TH>
<TD>a</TD>
<TD>b</TD>
<TD></TD>
</TR>
<TR>
<!-- <TH>Substitutions</TH> -->
<TH>置換</TH>
<TD>A</TD>
<TD></TD>
<TD></TD>
</TR>
</TABLE>
<P>
<!-- The two rules have substitutions at different places and that can't be expressed
in an Apple state machine given that they have the same glyphs. -->
2 つのルールは異なる場所での置換を含んでいるので、それらが同じグリフを含んでいるならば Apple 状態機械では表現できません。
</UL>
</OL>
</UL>
<P>
<!--
FontForge does not even try to convert an AAT contextual glyph substitution
sub-table, too few of these can be expressed in OpenType to make it worth
while. -->
FontForge は、AAT の文脈依存グリフ置換サブテーブルを変換しようと試みることすらありません。OpenType に変換可能な場合があまりにも少なくて、試みる価値がないからです。
<P>
<!--
NOTE: It would be possible to convert more lookups to state machines if FontForge
were willing to: -->
注意: もし FontForge が以下の処理を行えば、より多くの照合を状態機械に変換することができるでしょう:
<OL>
<LI>
<!-- Use several state machines to represent complicated lookups -->
複雑な照合を表現するためにいくつかの状態機械を使う
<LI>
<!-- Add additional glyphs to the font to be used as temporary state flags. -->
一時的な状態フラグとして、追加のグリフをフォントに付け加える
</OL>
<P>
<!--
FontForge will do neither of these. -->
これらの両方とも、FontForge が実現する予定はありません。
<H4>
<!-- <FONT COLOR="Red">BUG</FONT>-->
<FONT COLOR="Red">バグ</FONT>
</H4>
<P>
<!--
There is a subtle bug involved in converting a chaining contextual substitution
into an Apple contextual glyph substitution. AAT does not have the concept
of a backtrack list, this means that substitutions may occur in a different
order. -->
連鎖型文脈依存置換から Apple の文脈依存グリフ置換への変換処理に関する微妙なバグが存在します。AAT にはバックトラックリストの概念が存在しないので、それにより置換が起こる順番が変わってしまう可能性があります。
<H4>
<!-- Why can't all contextual/chaining tables be
<A NAME="not-converted">converted</A>? -->
なぜすべての文脈依存/連鎖型文脈依存テーブルを<A NAME="not-converted">変換でき</A>ないのか?
</H4>
<P>
<!--
Well, obviously there are some thing that just aren't present. The concept
of contextual positioning is missing from AAT, while Indic rearrangement
is missing from OpenType. So let's concentrate on contextual substitutions,
which both appear to support. The argument that follows is based on the
capabilities of contextual matching, it applies equally to contextual ligatures,
glyph insertion, glyph substitution and kerning, the examples given are only
of glyph substitution because it is easier to represent (and because FontForge
is only willing to convert contextual glyph substitutions) But even here,
there is a very basic mismatch in concepts between the way OpenType and Apple
specify contextual substitutions. Consider the following contextual substitution
in a glyph list format: -->
ええと、いくつかの機能は明らかに片方にしか存在しません。文脈依存の位置指定は AAT にはありませんし、インド系文字の再配置は OpenType にはありません。
だからここでは両方でサポートされているらしい、文脈依存の置換に話をしぼることにしましょう。以下の議論は、文脈の照合処理の能力に基づいており、文脈依存の合字・グリフ挿入・グリフ置換およびカーニングのどれについても同じことが言えるので、ここで示す例は表現が簡単なグリフ置換のみを挙げます (それにまた、FontForge が変換を行おうとするのは文脈依存のグリフ置換のみに限られるからです)。しかしそれに限っても、OpenType と Apple が仕様で示している文脈依存の置換を行う方法は、根本的にかけ離れた概念に基づいています。
以下のような、グリフリストフォーマットによる文脈依存の置換があるとします:
<TABLE BORDER CELLPADDING="2">
<TR>
<!-- <TH>Initial Sequence</TH>-->
<TH>初期シーケンス</TH>
<TD>a</TD>
<TD>b</TD>
<TD>c</TD>
<TD>d</TD>
</TR>
<TR>
<TH><P ALIGN=Left>
<!-- Replace With</TH>-->
置き換え対象</TH>
<TD> </TD>
<TD>B</TD>
<TD>C</TD>
<TD> </TD>
</TR>
</TABLE>
<P>
<!--
Now in OpenType this means if you find the sequence "abcd" then replace the
"b" with "B" and the" c" with "C". But this can't be expressed in an Apple
state machine. In OpenType the match is done first, and then the substitutions
occur. In a state machine the substitutions have to be done (almost) concurrently
with the match and so must happen whether the final "d" is present or not.
(Note I'm using a glyph sequence because it is easier to display in an example.
The same problem applies if the substitution is expressed by classes or by
coverage tables) -->
ここで、OpenType ではこれは“abcd”というシーケンスを探し出し、それから“b”を“B”に、“c”を“C”に置き換えます。しかしこれは Apple 状態機械では表現できません。OpenType では照合が最初に行われ、後から置換が行われます。状態機械では置換は (ほとんど) 照合と同期的に行われるので、最後の“d”があろうが無かろうが行わなければなりません。(ここで私がグリフ列を使用したのは、簡単に表示できるからであることに注意してください。同じ問題は、置換がクラスまたは適用範囲テーブルで表現されている場合にも起こります)
<P>
<!--
Consider the following table with two glyph strings -->
以下のような、2 個のグリフ列を含むテーブルがあるとします:
<TABLE BORDER CELLPADDING="2">
<TR>
<!-- <TH>Initial Sequence</TH>-->
<TH>初期シーケンス</TH>
<TD>a</TD>
<TD><P ALIGN=Center>
b</TD>
<TD><P ALIGN=Center>
c</TD>
<TD>d</TD>
</TR>
<TR>
<TH><P ALIGN=Left>
<!-- Replace With</TH>-->
置き換え対象</TH>
<TD> </TD>
<TD><P ALIGN=Center>
B</TD>
<TD></TD>
<TD> </TD>
</TR>
<TR>
<!-- <TH>Initial Sequence</TH>-->
<TH>初期シーケンス</TH>
<TD>a</TD>
<TD><P ALIGN=Center>
b</TD>
<TD><P ALIGN=Center>
c</TD>
<TD>e </TD>
</TR>
<TR>
<TH><P ALIGN=Left>
<!-- Replace With</TH>-->
置き換え対象</TH>
<TD> </TD>
<TD></TD>
<TD><P ALIGN=Center>
C</TD>
<TD> </TD>
</TR>
</TABLE>
<P>
<!--
So replace the "b" if the final "d" is present, otherwise replace the "c".
Again this cannot be expressed in Apple's state machines. -->
これは、最後に“d”が存在すれば“b”を置き換え、その他の場合には“c”を置き換えます。これも、Apple の状態機械では表現できません。
<P>
<!--
Finally consider -->
最後に、以下の場合があったとします:
<TABLE BORDER CELLPADDING="2">
<TR>
<!-- <TH>Initial Sequence</TH>-->
<TH>初期シーケンス</TH>
<TD><P ALIGN=Center>
a</TD>
<TD><P ALIGN=Center>
b</TD>
<TD><P ALIGN=Center>
c</TD>
<TD>d</TD>
</TR>
<TR>
<TH><P ALIGN=Left>
<!-- Replace With</TH>-->
置き換え対象</TH>
<TD> </TD>
<TD><P ALIGN=Center>
</TD>
<TD>C</TD>
<TD> </TD>
</TR>
<TR>
<!-- <TH>Initial Sequence</TH>-->
<TH>初期シーケンス</TH>
<TD><P ALIGN=Center>
b</TD>
<TD><P ALIGN=Center>
c</TD>
<TD><P ALIGN=Center>
e</TD>
<TD></TD>
</TR>
<TR>
<TH><P ALIGN=Left>
<!-- Replace With</TH>-->
置き換え対象</TH>
<TD><P ALIGN=Center>
B </TD>
<TD></TD>
<TD><P ALIGN=Center>
</TD>
<TD> </TD>
</TR>
</TABLE>
<P>
<!--
If this substitution is given the sequence "abce" it cannot work in AAT.
When it reads the "a" it will start down the "abcd" branch, the match will
not fail until it looks for the "d" and finds "e" instead. At that point
it is too late to switch to the "bce" substitution (which does match) because
the "b" glyph will not have been marked as a substitution location. -->
この置換が与えられた場合、シーケンス“abce”は AAT では動作しません。
"a" を読み込んだ時には“abcd”の分岐に入り、"d" を探そうとして“e”にぶつかるまで照合は失敗しません。ここでは、“bce”の分岐に入るのは遅すぎです(ので、一致しないことになります)。なぜなら、“b”のグリフは置換位置として印づけられなかったからです。
<P>
<HR>
<!--
On the other hand, Apple's state machines can express things that OpenType
tables cannot (again I'm restricting myself to contextual glyph substitutions).
Consider the case of a swash glyph at the beginning (or end) of a word. Let
us say that a word begins when a letter appears at the start of input or
following a whitespace character. But OpenType has no way of expressing "start
of input" (or end of input) in a contextual/chaining context, whereas Apple's
state machines do.-->
一方、Apple の状態機械は OpenType ではできないような事を表現できます (ここでも文脈依存のグリフ置換に話を絞ります)。単語の最初 (または最後) のスワッシュグリフの場合を考えます。単語は、入力の最初または空白文字の次に始まるものと考えられるでしょう。しかし OpenType の文脈依存/連鎖型文脈依存においては、Apple の状態機械に存在する“入力の始まり”(または入力の終り) を表現する方法がありません。
<P>
<!--
Since Apple's glyph substitutions can delete glyphs a contextual glyph
substitution table can create two character ligatures (one glyph is converted
to the ligature and the other is deleted), while OpenType tables must use
a ligature substitution to do this. -->
Apple のグリフ置換はグリフを削除する糊塗ができるので、文脈依存グリフ置換テーブルは 2 文字の合字を作成することができます (片方のグリフを合字に変換し、もう片方を削除します) が、OpenType でこれを行うためには、合字置換を使用しなければなりません。
<P>
<!--
Finally an AAT state machine can match a general regular expression, while
OpenType tables can only match fixed length strings. Suppose you were typesetting
mathematics and wanted a substitution which would convert an arbitrary digit
string following a variable into a subscript (so x23 should become
x<SMALL><SUB>23</SUB></SMALL>). It is easy to write a state machine which
will keep substituting as long as it gets more digits, but you'd need an
infinite number of OpenType rules to have the same expressive power. -->
最後に、AAT 状態機械は一般的な正規表現を用いた照合処理が可能ですが、OpenType テーブルは固定長の文字列との照合しかできません。数式を組版していて、変数の後ろに続く任意の桁数の数字を下つき文字にしたいとしましょう (その場合、x23 は x<SMALL><SUB>23</SUB></SMALL> になります)。数字が連続する限り同じ置換処理を続ける状態機械を書くのはまったく簡単ですが、同じ表現力を OpenType で得るには、無限個のルールが必要となります。
<P>
<!--
These examples probably seem fairly contrived, and (except for the swash
one) they are. But they illustrate the point that the two formats have very
different expressive capabilities and it is NOT possible to write a converter
which will take any input in one format and produce an equivalent output
in the other. -->
これらの例はおそらく非常に不自然に見えるでしょうが、(スワッシュ文字の例を除いては) 確かにその通りです。しかし、これらは、2 つのフォーマットが非常に異なる表現能力をもっており、片方のフォーマットで書かれた任意の入力を受け取ってもう片方のフォーマットでの等価な出力に変換するコンバータを書くのが<em>不可能</em>であることを示す実例です。
<H3>
<!-- Apple and OpenType features-->
Apple と OpenType の機能
</H3>
<TABLE BORDER CELLPADDING="2">
<CAPTION>
<!-- Correspondences between Apple and OpenType
<A NAME="OT-Mac-features">features</A><BR>
(that I support) -->
Apple と OpenType の <A NAME="OT-Mac-features">機能</A> の対応表<BR>
(私がサポートしている物のみ)
</CAPTION>
<TR>
<!-- <TH>Apple Feature Setting</TH>-->
<TH>Apple の機能設定</TH>
<!-- <TH>OpenType Feature Name</TH> -->
<TH>OpenType の機能名</TH>
<!-- <TH>OpenType Tag</TH> -->
<TH>OpenType タグ</TH>
</TR>
<TR>
<!-- <TD>Required Ligatures</TD> -->
<TD>必須の合字</TD>
<!-- <TD>Required Ligatures</TD> -->
<TD>必須の合字</TD>
<TD>rlig</TD>
</TR>
<TR>
<!-- <TD>Common Ligatures</TD> -->
<TD>一般的な合字</TD>
<!-- <TD>Standard Ligatures</TD> -->
<TD>標準の合字</TD>
<TD>liga</TD>
</TR>
<TR>
<!-- <TD>Rare Ligatures</TD> -->
<TD>稀な合字</TD>
<!-- <TD>Discretionary</TD> -->
<TD>任意の合字</TD>
<TD>dlig</TD>
</TR>
<TR>
<!-- <TD>Fractions</TD>-->
<TD>分数</TD>
<!-- <TD>Fractions</TD>-->
<TD>分数</TD>
<TD>frac</TD>
</TR>
<TR>
<TD COLSPAN=3>
<HR>
</TD>
</TR>
<TR>
<!-- <TD>Contextual Alternatives</TD>-->
<TD>文脈依存の選択肢</TD>
<!-- <TD>Cursive connection</TD>-->
<TD>筆記体の接続</TD>
<TD>calt</TD>
</TR>
<TR>
<TD COLSPAN=3>
<HR>
</TD>
</TR>
<TR>
<!-- <TD>Vertical Forms</TD>-->
<TD>縦書き字形</TD>
<!-- <TD>Vertical Rotation 2</TD>-->
<TD>縦書きおよび回転</TD>
<TD>vrt2</TD>
</TR>
<TR>
<!-- <TD>Monospace numbers</TD>-->
<TD>等幅数字</TD>
<!-- <TD>Tabular numbers</TD>-->
<TD>表用数字</TD>
<TD>tnum</TD>
</TR>
<TR>
<!-- <TD>Superscript</TD>-->
<TD>上つき文字</TD>
<!-- <TD>Superscript</TD>-->
<TD>上つき文字</TD>
<TD>sups</TD>
</TR>
<TR>
<!-- <TD>Subscript</TD>-->
<TD>下つき文字</TD>
<!-- <TD>Subscript</TD>-->
<TD>下つき文字</TD>
<TD>subs</TD>
</TR>
<TR>
<!-- <TD>Proportional Text</TD>-->
<TD>プロポーショナルテキスト</TD>
<!-- <TD>Proportional Widths</TD>-->
<TD>プロポーショナル幅</TD>
<TD>pwid</TD>
</TR>
<TR>
<!-- <TD>Half-width Text</TD>-->
<TD>半角テキスト</TD>
<!-- <TD>Half Width</TD>-->
<TD>半角</TD>
<TD>hwid</TD>
</TR>
<TR>
<!-- <TD>Full-width Text</TD>-->
<TD>全角テキスト</TD>
<!-- <TD>Full Width</TD>-->
<TD>全角</TD>
<TD>fwid</TD>
</TR>
<TR>
<!-- <TD>Traditional Characters</TD>-->
<TD>繁体字中国語</TD>
<!-- <TD>Traditional</TD>-->
<TD>繁体字</TD>
<TD>trad</TD>
</TR>
<TR>
<!-- <TD>Simplified Characters</TD>-->
<TD>簡体字中国語</TD>
<!-- <TD>Simplified</TD>-->
<TD>簡体字</TD>
<TD>smpl</TD>
</TR>
<TR>
<!-- <TD>JIS 1978 Characters</TD>-->
<TD>1978 年版 JIS 字形</TD>
<!-- <TD>JIS 1978 Characters</TD>-->
<TD>1978 年版 JIS 字形</TD>
<TD>jp78</TD>
</TR>
<TR>
<!-- <TD>JIS 1983 Characters</TD>-->
<TD>1983 年版 JIS 字形</TD>
<!-- <TD>JIS 1983 Characters</TD>-->
<TD>1983 年版 JIS 字形</TD>
<TD>jp83</TD>
</TR>
<TR>
<!-- <TD>JIS 1990 Characters</TD>-->
<TD>1990 年版 JIS 字形</TD>
<!-- <TD>JIS 1990 Characters</TD>-->
<TD>1990 年版 JIS 字形</TD>
<TD>jp90</TD>
</TR>
</TABLE>
<P>
<!--
FontForge will retain the order of features in the morx table, and the user
may adjust it with the <A HREF="fontinfo.html#Order">Element->Font Info</A>
command. (this is the same list as that used for GSUB table. GSUB features
that don't correspond to mac features will be ignored). -->
FontForge は morx テーブル内の機能の順番を保持し、ユーザはそれを <A HREF="fontinfo.html#Order"><CODE>エレメント(<U>L</U>)</CODE>→<CODE>フォント情報(<U>F</U>)...</CODE></A> コマンドで並べ替えることができます。(これは GSUB テーブルのために使用されるのと同じリストです。Mac に対応する機能が無い GSUB 機能は無視されます)。
<H2>
<!-- What is <A NAME="Unsupported">Unsupported</A>?-->
どの機能が<A NAME="Unsupported">サポートされていない</A>のか?
</H2>
<P>
<!--
FontForge does not (yet) support all the advanced typographic features available
in either opentype or apple advanced typography. -->
FontForge は OpenType と AAT のどちらでも、(まだ) すべての高度組版機能が使用可能なわけではありません。
<H3>
OpenType
</H3>
<UL>
<LI>
<!-- FontForge does not support using truetype points to control positioning -->
FontForge は TrueType の点を使った位置指定の制御をサポートしていません。
<LI>
FontForge does not support some of the more esoteric uses of the lookup flags.
FontForge は照合フラグのとくに秘教的な使用法のいくつかをサポートしていません。
<LI>
<!-- FontForge does not provide an attachment list subtable nor a MarkAttachClassDef
subtable of the GDEF table. -->
FontForge は GDEF テーブルの接続リストサブテーブルと MarkAttachClassDef サブテーブルに対応していません。
<LI>
<!-- FontForge does not support the BASE and JUST tables-->
FontForge は BASE テーブルと JUST テーブルに対応していません。
<LI>
<!-- FontForge has minimal support for VORG-->
FontForge は VORG テーブルに対して最小限の対応しか行っていません。
</UL>
<P>
<!-- <A HREF="TrueOpenTables.html">See here for a complete list of supported
tables</A>. -->
<A HREF="TrueOpenTables.html">対応しているテーブルの完全なリストはこちらを参照してください</A>。
<H3>
<!-- Apple Advanced Typography-->
Apple 高度組版機能
</H3>
<UL>
<LI>
<!-- FontForge will never generate a 'mort' table. It can read 'mort' tables,
but it will only produce 'morx' tables. -->
FontForge は決して‘mort’テーブルを生成しません。‘mort’テーブルを読み込むことはできますが、出力するのは‘morx’テーブルだけです。
<LI>
<!-- FontForge is unable to parse contextual ligatures. It can find ligatures
which start from state 0, but it will not find ligatures which start from
other states (that is, which are contextual) -->
FontForge は文脈依存の合字を解析することができません。状態 0 から始まる合字は発見できますが、他の状態から始まる (すなわち、文脈依存の) 合字は発見できません。
<LI>
<!-- FontForge does not support the following Apple specific tables -->
FontForge は以下の Apple 固有のテーブルに対応していません。
<UL>
<LI>
<!-- acnt (accent attachment) -->
acnt (アクセントの接続)
<LI>
<!-- bsln (baseline) -->
bsln (ベースライン)
<LI>
<!-- fdsc (font descriptor) -->
fdsc (フォント記述子)
<LI>
<!-- fmtx (font metrics) -->
fmtx (フォントメトリック)
<LI>
<!-- hsty (horizontal style) -->
hsty (スタイル指定時の幅情報)
<LI>
<!-- just (justification) -->
just (行揃え)
<LI>
<!-- trak (tracking) -->
trak (トラッキング)
<LI>
<!-- Zapf (glyph reference)-->
Zapf (グリフ参照)
</UL>
</UL>
<P>
<!--
<A HREF="TrueOpenTables.html">See here for a complete list of supported
tables</A>. -->
<A HREF="TrueOpenTables.html">対応している機能の完全なリストについては、ここを参照して下さい</A>。
<P>
<P ALIGN=Center>
— <A HREF="generate.html">前</A> — <A HREF="overview.html">目次</A> —
<A HREF="filemenu.html">次</A> —
</DIV>
</BODY></HTML>
|