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
|
<HTML>
<HEAD>
<!-- Created with AOLpress/2.0 -->
<!-- AP: Created on: 11-Dec-2000 -->
<!-- AP: Last modified: 5-Apr-2010 -->
<TITLE>The Element Menu</TITLE>
<LINK REL="icon" href="ffanvil16.png">
<LINK REL="stylesheet" TYPE="text/css" HREF="FontForge.css">
</HEAD>
<BODY id="menued">
<P ALIGN=CENTER>
<IMG SRC="fontforge-banner-420.jpeg" WIDTH=420 HEIGHT=80>
<DIV class="menucontainer">
<UL class="menubar">
<LI class="menu">
<A href="/project/platformdownload.php?group_id=103338">Download</A>
<UL>
<LI>
<A href="http://sourceforge.net/project/showfiles.php?group_id=103338&package_id=111040"
>Application</A>
<LI>
<A href="http://sourceforge.net/project/showfiles.php?group_id=103338&package_id=114329"
>Documentation</A>
<LI>
<A href="http://sourceforge.net/project/showfiles.php?group_id=103338&package_id=114328"
>Source</A>
</UL>
<LI>
<A HREF="overview.html#TOC">Introduction</A>
<LI>
<A href="editexample.html">Tutorial</A>
<LI class="menu">
<A href="fontview.html">Windows</A>
<UL>
<LI>
<A href="fontview.html" >Font</A>
<LI>
<A href="charview.html" >Outline Glyph</A>
<LI>
<SMALL><A href="charview.html#Debugging" > Debugging
TrueType</A></SMALL>
<LI>
<SMALL><A href="multilayer.html" > Type3 Glyphs</A></SMALL>
<LI>
<A href="bitmapview.html" >Bitmap Glyph</A>
<LI>
<A href="metricsview.html" >Metrics</A>
</UL>
<LI class="menu">
<A href="fontinfo.html">Dialogs 1</A>
<UL>
<LI>
<A href="fontinfo.html" >Font Information</A>
<LI>
<SMALL><A href="histogram.html" > Histogram Dialog</A></SMALL>
<LI>
<A href="charinfo.html" >Glyph Information</A>
<LI>
<A href="getinfo.html" >Point, Reference Information</A>
<LI>
<A href="multilayer.html#Layer" >Type3 Layer Information</A>
<LI>
<A href="bdfinfo.html" >Bitmap Properties</A>
<LI>
<A href="baseline.html" >Baseline Information</A>
<LI>
<A HREF="justify.html">Justification Information</A>
<LI>
<A href="math.html" >Math Information</A>
<LI>
<A href="multiplemaster.html" >Multiple Master Information</A>
<LI>
<HR>
<LI>
<A href="lookups.html" >Lookups & subtables</A>
<LI>
<A href="metricsview.html#kernpair" >Kerning glyph pairs 1</A>
<LI>
<A href="kernpairs.html" >Kerning glyph pairs 2</A>
<LI>
<A href="metricsview.html#kernclass" >Kerning by classes</A>
<LI>
<A href="anchorcontrol.html" >Anchor Control</A>
<LI>
<A href="contextchain.html" >Contextual lookup dialog</A>
<LI>
<A href="statemachine.html" >Apple State Machine dialog</A>
<LI>
<A href="showatt.html" >Show Advanced Typography</A>
<LI>
<HR>
<LI>
<A href="problems.html" >Potential Problems dialog</A>
<LI>
<A href="validation.html" >Font Validation dialog</A>
</UL>
<LI class="menu">
<A href="generate.html">Dialogs 2</A>
<UL>
<LI>
<A href="filemenu.html#Open" >Open Fonts dialog</A>
<LI>
<A href="oflib.html" >Browsing OFLib dialog</A>
<LI>
<A href="generate.html" >Generate Fonts dialog</A>
<LI>
<A href="generate.html#Mac" >Generate Mac Family dialog</A>
<LI>
<HR>
<LI>
<A href="display.html" >Print & Display dialog</A>
<LI>
<A href="prefs.html" >Preferences dialog</A>
<LI>
<A href="groups.html" >Groups dialog</A>
<LI>
<HR>
<LI>
<A href="elementmenu.html#Bitmaps">Manage Bitmap Strikes</A>
<LI>
<A href="elementmenu.html#Regenerate">Re-Rasterize Bitmap Strikes</A>
<LI>
<HR>
<LI>
<A href="search.html" >Search & Replace dialog</A>
<LI>
<A href="Styles.html" >Style Transformation dialogs</A>
<LI>
<A href="transform.html" >Transformation dialog</A>
<LI>
<A href="elementmenu.html#Expand" >Expand Stroke dialog</A>
<LI>
<A href="tilepath.html" >Tile Path dialog</A>
<LI>
<A href="InsertTextDlg.html" >Insert Text dialog</A>
<LI>
<HR>
<LI>
<A href="metricsmenu.html#Width">Set width dialogs</A>
<LI>
<A href="metricsmenu.html#Width">Set left/right bearings</A>
<LI>
<A href="autowidth.html" >Auto Width & Kern dialogs</A>
<LI>
<HR>
<LI>
<A href="hintsmenu.html#Review" >Review PS Hints dialog</A>
<LI>
<A href="ttfinstrs.html" >TrueType Instruction Editor</A>
<LI>
<A href="ttfinstrs.html#cvt" >TrueType 'cvt ' Editor</A>
<LI>
<HR>
<LI>
<A href="selectbyatt.html" >Select by feature dialog</A>
<LI>
<A href="elementmenu.html#MassRename" >Rename Glyphs dialog</A>
<LI>
<A href="elementmenu.html#CompareFonts" >Compare Fonts dialog</A>
</UL>
<LI class="menu">
<A href="filemenu.html">Menus</A>
<UL>
<LI>
<A href="filemenu.html" >File</A>
<LI>
<A href="editmenu.html" >Edit</A>
<LI>
<A href="pointmenu.html" >Point</A>
<LI>
<A href="elementmenu.html">Element</A>
<LI>
<A href="toolsmenu.html">Tools</A>
<LI>
<A href="hintsmenu.html" >Hints</A>
<LI>
<A href="encodingmenu.html" >Encoding</A>
<LI>
<A href="viewmenu.html" >View</A>
<LI>
<A href="metricsmenu.html" >Metrics</A>
<LI>
<A href="cidmenu.html" >CID</A>
<LI>
<A href="mmmenu.html" >Multi Master</A>
<LI>
<A href="windowmenu.html" >Window</A>
<LI>
<A href="helpmenu.html" >Help</A>
</UL>
<LI>
<A href="faqFS.html">FAQ</A>
<LI>
<A href="IndexFS.html">Index</A>
<LI>
<A href="GlossaryFS.html">Glossary</A>
</UL>
</DIV>
<DIV id="in">
<H1 ALIGN=Center>
The Element Menu
</H1>
<P>
<UL>
<LI>
<A HREF="#Font">Font Info</A>...
<LI>
<A HREF="#CharInfo">Glyph Info</A>...
<LI>
Other Info
<UL>
<LI>
<A HREF="#MATH">MATH Info...</A>
<LI>
<A HREF="elementmenu.html#BDF-Info">BDF Info...</A>
<LI>
<A HREF="#HBase">Horizontal Baselines...</A>
<LI>
<A HREF="#VBase">Vertical Baselines...</A>
<LI>
<A HREF="#Justify">Justification Information...</A>
<LI>
Show Dependencies
<UL>
<LI>
<A HREF="elementmenu.html#Dependencies">References</A>
<LI>
<A HREF="#DepSubs">Substitutions</A>
</UL>
<LI>
<A HREF="#MassRename">Mass Glyph Rename...</A>
</UL>
<LI>
<A HREF="#Info">Get Info</A>...
<LI>
<A HREF="#Problems">Find Problems...</A>
<LI>
<A HREF="#Validate">Validate...</A>
<LI>
<A HREF="#Bitmaps">Bitmap Strikes Available...</A>
<LI>
<A HREF="#Regenerate">Regenerate Bitmap Glyphs...</A>
<LI>
<A HREF="#RemoveBitmaps">Remove Bitmap Glyphs...</A>
<LI>
<A NAME="Style">Style</A>
<UL>
<LI>
<A HREF="#Embolden">Change Weight...</A>
<LI>
<A HREF="#Italic">Italic</A>
<LI>
<A HREF="#Oblique">Oblique</A>
<LI>
<A HREF="#Condense">Condense/Extend</A>...
<LI>
<A HREF="#xheight">Change X-Height...</A>
<LI>
<A HREF="#changeglyph">Change Glyph...</A>
<LI>
<A HREF="#SmallCaps">Add Small Caps</A>
<LI>
<A HREF="#SubSuper">Add Subscripts/Superscripts</A>
<LI>
<A HREF="#Outline">Outline</A>
<LI>
<A HREF="#Inline">Inline</A>
<LI>
<A HREF="#Shadow">Shadow</A>
<LI>
<A HREF="#Wireframe">Wireframe</A>
</UL>
<LI>
Transformations
<UL>
<LI>
<A HREF="#Transform">Transform</A>...
<LI>
<A HREF="#PoV">Point of View Projection</A>...
<LI>
<A HREF="elementmenu.html#Non-Linear">Non-Linear Transform</A>...<BR>
<LI>
<A HREF="#Flip">Flip Horizontally</A>
<LI>
<A HREF="#FlipV">Flip Vertically</A>
<LI>
<A HREF="#Rotate">Rotate 90° CW</A>
<LI>
<A HREF="#Rotate90CCW">Rotate 90° CCW</A>
<LI>
<A HREF="#Rotate180">Rotate 180°</A>
<LI>
<A HREF="#Skew">Skew</A>
</UL>
<LI>
<A HREF="#Expand">Expand Stroke...</A>
<LI>
<A HREF="elementmenu.html#TilePath">Tile Path...</A>
<LI>
<A HREF="#TilePattern">Tile Pattern...</A>
<LI>
Overlap
<UL>
<LI>
<A HREF="#Remove">Remove Overlap</A>
<LI>
<A HREF="#Intersect">Intersect</A>
<LI>
<A HREF="#Exclude">Exclude</A>
<LI>
<A HREF="#FindInter">Find Intersections</A>
</UL>
<LI>
Simplify
<UL>
<LI>
<A HREF="#Simplify">Simplify</A>
<LI>
<A HREF="elementmenu.html#SimplifyMore">Simplify More</A>
<LI>
<A HREF="#Cleanup">Cleanup Glyphs</A>
<LI>
<A HREF="#CanonicalSP">Canonical Start Points</A>
<LI>
<A HREF="#CanonicalContours">Canonical Contour Order</A>
</UL>
<LI>
<A HREF="elementmenu.html#Add-Extrema">Add Extrema</A>
<LI>
<A HREF="#AutoTrace">AutoTrace</A>
<LI>
<A HREF="#Align">Align</A>
<UL>
<LI>
<A HREF="elementmenu.html#Average">Average Points</A>
<LI>
<A HREF="elementmenu.html#Space-Pts">Space Points</A>
<LI>
<A HREF="elementmenu.html#Space-Regions">Space Regions</A>
<LI>
<A HREF="#Parallel">Make Parallel</A>
</UL>
<LI>
Round
<UL>
<LI>
<A HREF="#Round">To Int</A>
<LI>
<A HREF="#Hundredths">To Hundredths</A>
<LI>
<A HREF="#Cluster">Cluster</A>
</UL>
<LI>
<A HREF="#Order">Order</A>
<UL>
<LI>
First
<LI>
Earlier
<LI>
Later
<LI>
Last
</UL>
<LI>
<A HREF="#Clockwise">Clockwise</A>
<LI>
<A HREF="#Counter">Counter-Clockwise</A>
<LI>
<A HREF="#Correct">Correct Direction</A>
<LI>
<A HREF="#Insert-Text">Insert Text Outlines...</A>
<LI>
Build
<UL>
<LI>
<A HREF="#Accented">Build Accented Glyph</A>
<LI>
<A HREF="#Accented">Build Composite Glyph</A>
<LI>
<A HREF="#BuildDuplicate">Build Duplicate</A>
</UL>
<LI>
<A HREF="#Merge">Merge Fonts...</A>
<LI>
<A HREF="#Interpolate">Interpolate Fonts...</A>
<LI>
<A HREF="#CompareFonts">Compare Fonts...</A>
<LI>
<A HREF="#CompareL2L">Compare Layer To Layer...</A>
</UL>
<P>
There are also two menu entries which are not part of the default build but
which may be configured by modifying <CODE>configure-fontforge.h</CODE> before
compiling FontForge.
<UL>
<LI>
<A HREF="#TilePath">Tile Path</A>
<LI>
<A HREF="#NonLinear">Non Linear Transform...</A>
</UL>
<P>
<DL>
<DT>
<A NAME="Font">Font</A> Info
<DD>
In all views this brings up the <A HREF="fontinfo.html">Font Info
dialog</A>.<BR>
CID keyed fonts can set information on the CID font as a whole (rather than
just the current sub-font, which is what this command does) from
<A HREF="cidmenu.html#FontInfo">CID->CID Font Info</A>.
<DT>
Glyph <A NAME="CharInfo">Info</A>
<DD>
In the all views this brings up the <A HREF="charinfo.html#Character">Glyph
Info dialog</A>.
<DT>
<A NAME="MATH">MATH</A> Info...
<DD>
Brings up the <A HREF="math.html">MATH Info dialog</A>.
<DT>
<A NAME="BDF-Info">BDF</A> Info
<DD>
If you have bitmaps in your font, then in the font view or bitmap view this
command will bring up the <A HREF="bdfinfo.html">BDF Info dialog.</A>
<DT>
<A NAME="HBase">Horizontal Baselines...</A>
<DD>
This <A HREF="baseline.html">dialog</A> gives you control over the OpenType
'BASE' table which allows you to specify different baselines for different
scripts, and how to align those baselines with each other. It also provides
fine control over the inter-baseline spacing (the line height).
<DT>
<A NAME="VBase">Vertical Baselines...</A>
<DD>
This <A HREF="baseline.html">dialog</A> gives you control over the OpenType
'BASE' table which allows you to specify different baselines for different
scripts, and how to align those baselines with each other. It also provides
fine control over the inter-baseline spacing (the column width).
<DT>
<A NAME="Justify">Justification</A> Information...
<DD>
This <A HREF="justify.html">dialog</A> allows you to examine and provide
the information needed for the OpenType JSTF table -- information which helps
layout engines do text justification.
<DT>
Get <A NAME="Info">Info</A>
<DD>
In the outline view this brings up <A HREF="getinfo.html">one of four different
dialogs</A> (Point Info, Image Info, Reference Info, Anchor Point Info) depending
on what is selected.
<DT>
Show Dependencies
<DL>
<DT>
<A NAME="Dependencies">References</A>...
<DD>
This dialog is not available in the bitmap view. It shows you what glyphs
contain a reference to the current glyph. You can open a window looking at
any of the dependent glyphs by selecting that glyph and pressing the [Show]
button.
<DT>
<A NAME="DepSubs">Substitutions</A>...
<DD>
Show any glyphs that have substitutions (ligatures, multiple subs, etc.)
which depend on the current glyph. So if you select "i", you might see that
"fi" depended on it as a ligature, and if you select "A.swash" you might
see that "A" depended on it as a 'swsh' alternate subs.
</DL>
<DT>
<A NAME="MassRename">Mass Glyph Rename...</A>
<DD>
<IMG SRC="MassRename.png" WIDTH="429" HEIGHT="288" ALIGN="Right">This allows
you to rename a bunch of selected glyphs. It can be used in two ways, either:
<UL>
<LI>
You want to rename all the selected glyphs by adding a suffix to their names
(this might be useful if you are working with a small caps Type1 font that
you wanted to convert to an otf font, where the old convention was just to
name the glyphs as "a", "b" and so forth rather than "a.sc", "b.sc", etc.).
<LI>
Or you can select a block of glyphs, and specify another glyph somewhere
in the encoding, then the selected glyphs would get be named by appending
the suffix to the sequence of glyphs starting with the one identified in
the dialog. (This might be useful if you wanted to add a small caps collection
to an existing font). In this case you may also specify a lookup subtable
so that the base glyphs would get substituted by the appropriate renamed
glyphs when that subtable was activated (this can't be done in the previous
case, because there are no longer any base glyphs)
</UL>
<DT>
Find <A NAME="Problems">Problems</A>...
<DD>
This command is not present in the bitmap view. It will search for several
common problems. In the glyph view it will select anything that needs to
be fixed, in the font view it will check all selected glyphs and if any have
problems will open them and select the problems. It will post a message telling
you of each problem found. It brings up the <A HREF="problems.html">Find
Problem</A> dialog to let you choose what problems to look for.
<DT>
<A NAME="Validate">Validate</A>...
<DD>
Rather similar to Find Problems, but works with a much smaller set of things
which are definitely errors, and provides an overview of the problems found
in all glyphs of the font. See the <A HREF="validation.html">validation
page</A> for more info.
<DT>
<A NAME="Bitmaps">Bitmap Strikes</A> Available...
<DD>
This brings up a list of pixel sizes for bitmap fonts.<BR>
<IMG SRC="bitmapsavail.png" WIDTH="317" HEIGHT="365" ALIGN="Right"> If you
have bitmap fonts this will show their pixel sizes. If you remove a size
that is in the list then that font will be deleted from the sfd file. If
you add a size then that size font will be created and stored in the sfd
file.
<P>
FontForge deals in pixel sizes, not point sizes. The conversion between pixels
and points differs on different systems and indeed on different screens.
A point is (approximately) 1/72 of an inch, a pixel is however big a pixel
happens to be on your screen. Usually pixels range from about 1/72 of an
inch to about 1/144 of an inch. Different systems support different screen
resolutions as "standard", and FontForge tries to know about these standards.
<TABLE BORDER CELLPADDING="2" ALIGN=Center>
<CAPTION>
Some conversions between points and pixels
</CAPTION>
<TR>
<TH><P ALIGN=Left>
<U>Screen Resolution</U><BR>
Point Size</TH>
<TH>72dpi<BR>
Mac</TH>
<TH>75dpi<BR>
X</TH>
<TH>96dpi<BR>
Win</TH>
<TH>100dpi<BR>
X</TH>
<TH>120dpi<BR>
Win</TH>
</TR>
<TR>
<TH>10pt</TH>
<TD>10</TD>
<TD>10</TD>
<TD>13</TD>
<TD>14</TD>
<TD>17</TD>
</TR>
<TR>
<TH>12pt</TH>
<TD>12</TD>
<TD>12~13</TD>
<TD>16</TD>
<TD>17</TD>
<TD>20</TD>
</TR>
<TR>
<TH>18pt</TH>
<TD>18</TD>
<TD>19</TD>
<TD>24</TD>
<TD>25</TD>
<TD>30</TD>
</TR>
<TR>
<TH>24pt</TH>
<TD>24</TD>
<TD>25</TD>
<TD>32</TD>
<TD>33</TD>
<TD>40</TD>
</TR>
</TABLE>
<P>
Sadly your screen will probably not match one of the standard screens precisely.
On X the standard resolutions are 75 and 100dpi, on MS Windows 96 and 120dpi,
and on the Mac 72dpi. This dialog provides the conversion between pixel size
and point sizes at these resolutions.
<P>
Normally the new glyphs are created by rasterizing the outline font. If your
system has the freetype2 library installed (and you checked the "Use FreeType"
box) then FontForge will use the FreeType rasterizer to generate bitmaps,
otherwise it will use FontForge's built-in rasterizer (which isn't as good,
but involves a little less overhead).
<P>
Finally, if you have no outline font then the new glyphs will be created
by scaling the (bitmap) font displayed in the font view.
<P>
If you want to generate a blank strike (one containing no glyphs) then turn
off the <CODE>[] Create Rasterized Strikes</CODE> checkbox.
<P>
In CID keyed fonts there will not be a set of bitmaps for each sub font,
instead the entire complex of sub-fonts share bitmaps. <BR Clear=Right>
<P>
<IMG SRC="greymapsavail.png" WIDTH="263" HEIGHT="366" ALIGN="Right">FontForge
also supports anti-aliased bitmap fonts, and you can use this dialog to generate
them. If you want to generate a 12 point anti-aliased font with 8 bits per
pixel you would type 12@8 into the dialog above. FontForge supports 1, 2,
4 and 8 bit per pixel fonts (a 1 bit per pixel font is a standard bitmap,
the others are greymaps).<BR>
(New greymaps can not be created by scaling old greymaps, if you wish to
generate a greymap font, you must have an outline font).
<DT>
<A NAME="Regenerate">Regenerate</A> Bitmap Glyphs...
<DD>
If you have changed the outline that a bitmap is based one then you should
(at some point) look into changing the bitmap too. This command allows you
to regenerate a subset of the glyphs in a given bitmap font. In the font
view you can regenerate all selected glyphs, while in the bitmap and outline
views you can regenerate the current glyph. You can pick what pixel sizes
should be regenerated too (unlike the above command, removing a bitmap size
from the regenerate list will not delete it).<BR>
As before, if you wish to change a greymap you should refer to it by
<pixel-size>@<bits-per-pixel>.
<DT>
<A NAME="RemoveBitmaps">Remove</A> Bitmap Glyphs...
<DD>
This command will remove one or several bitmap glyphs from a strike (while
leaving the strike otherwise intact). The dialog is similar to the above
two. Any indicated glyphs will be removed from the specified strikes.
<DT>
Styles
<DD>
There are many <A HREF="Styles.html">standard variations</A> on Latin (Greek,
Cyrillic) fonts. Some of them apply to other scripts -- making a font darker
(bolder) is common to many scripts, though the actual mechanics differ from
script to script) Others -- such as Italic -- are more specialized.
<DL>
<DT>
<A NAME="Embolden">Change Weight</A>...
<DD>
This is a simplistic command to make the stems of glyphs darker or lighter.
It sometimes works.
<P>
For CJK glyphs it simply expands the strokes of the font outward.
<P>
For LCG (Latin, Cyrillic, Greek) glyphs it expands the stroke outward and
then moves everything below a certain point up, and everything above another
point down. This is based on heuristics and will fail if a glyph is even
the slightest bit unexpected.<BR>
For other writing systems FontForge will do something, currently it will
fall into one of the two cases above.<BR>
See the <A HREF="Styles.html#Embolden">Change Weight dialog</A>.
<DT>
<A NAME="Italic">Italic</A>
<DD>
An italic font is different from and more complex than an oblique font.
Traditionally fonts with serifs are made italic and fonts without serifs
are made oblique. This will change some letterforms, change the serifs, condense
the font and slant things. See the <A HREF="Styles.html#Italic">Italic
dialog.</A>
<DT>
<A NAME="Oblique">Oblique</A>
<DD>
An oblique font is different from and simpler than an italic font. Traditionally
fonts with serifs are made italic and fonts without serifs are made oblique.
This will slant the letters.
<DT>
<A NAME="Condense">Condense</A>/Extend
<DD>
Allows you to change the width of the counters and side bearings of a glyph.
The algorithm only works on simple latin glyphs, and it has problems with
diagonal stems. See the <A HREF="Styles.html#Condense">Condense/Extend
dialog</A>.
<DT>
Change <A NAME="xheight">X-Height</A>
<DD>
Allows you to change the x-height of a font
<DT>
<A NAME="changeglyph">Change Glyph.</A>..
<DD>
Allows you to make very general changes to a glyph's shape.
<DT>
Add <A NAME="SmallCaps">Small</A> Caps
<DD>
This is a little different from the previous menu items as it does not change
the selected characters themselves. Instead it creates a new glyph (or reuses
an old one) with the appropriate name. So if you selected "A", "B", and "C"
it would create glyphs "a.sc", "b.sc" and "c.sc". It will create two lookups
one bound to 'c2sc' which maps capital letters to small caps, and the other
bound to 'smcp' which maps lower case letters to small caps. It will build
the appropriate small caps glyphs in the new glyph slots. This only applies
to upper and lower case letters in the latin, greek and cyrillic scripts.
<A HREF="Styles.html#Smallcaps">See the Small Caps dialog</A>.
<DT>
<A NAME="SubSuper">Add Subscripts/Superscripts</A>
<DD>
Like the previous command this creates new glyphs based on the selected ones.
The outlines of the selected glyphs will be scaled (with stems potentially
being scaled differently from the glyph as a whole), and moved vertically.
Then a new lookup will be created mapping the original glyph to the newly
created one under control of the appropriate feature.
<A HREF="Styles.html#SubSuper">See the Subscript/Superscript dialog</A>.
<DT>
<A NAME="Outline">Outline</A>
<DD>
<IMG SRC="OutlineInline.png" WIDTH="146" HEIGHT="70" ALIGN="Right">Changes
the selected glyphs so that instead of being a solid block, only the outline
of the glyph is visible. The glyphs' bounding boxes will not change.
<DT>
<A NAME="Inline">Inline</A>
<DD>
Changes the selected glyphs so that the glyph is surrounded by an outline.
The glyphs' bounding boxes will not change.
<DT>
<A NAME="Shadow">Shadow</A>
<DD>
Changes the selected glyphs to give them each a
shadow.<IMG SRC="ShadowWireframe.png" WIDTH="171" HEIGHT="69" ALIGN="Right">
The user has control over the shadow size and angle.
<DT>
<A NAME="Wireframe">Wireframe</A>
<DD>
Changes the selected glyphs to give them a 3D wireframe look.
</DL>
<DT>
Transformations
<DD>
This sub-menu has rather different choices in the bitmap view from the other
views. (Because bitmaps are discrete and the continuous transformations of
splines are not meaningful).
<DL>
<DT>
<A NAME="Transform">Transform</A>...
<DD>
<A HREF="transform.html">In the Font and Outline Views this brings up the
transform dialog</A>. This provides the standard linear transformations you
expect to have available (rotation, scaling, translation, skewing).
<DT>
<A NAME="PoV">Point of View </A>Projection
<DD>
<A HREF="transform.html#PoV">This dialog </A>allows you to perform a perspective
transformation on your glyphs. (This is a non-linear transformation)
<DT>
<A NAME="Non-Linear">Non-Linear</A> Transform...
<DD>
<A HREF="transform.html#Non-Linear">This dialog</A> allows you to perform
a general transformation (which could be linear or which can be non-linear).
Essentially you provide two equations for how x and y should be mapped.<BR>
<DT>
<A NAME="Flip">Flip</A> Horizontally
<DD>
Flips the bitmap horizontally. (Only in bitmap view)
<DT>
<A NAME="FlipV">Flip</A> Vertically
<DD>
Flips the bitmap vertically. (Only in bitmap view)
<DT>
<A NAME="Rotate">Rotate</A> 90° CW
<DD>
Rotates the bitmap 90° clockwise. (Only in bitmap view)
<DT>
<A NAME="Rotate90CCW">Rotate</A> 90° CCW
<DD>
Rotates the bitmap 90° counter-clockwise. (Only in bitmap view)
<DT>
<A NAME="Rotate180">Rotate</A> 180°
<DD>
Rotates the bitmap 180° (Only in bitmap view)
<DT>
<A NAME="Skew">Skew</A>
<DD>
Allows you to specify a ratio by which to skew the bitmap 1:3 means for every
3 pixel rise in y, skew the bitmap one pixel horizontally. (Only in bitmap
view)
</DL>
<DT>
<A NAME="NonLinear">Non Linear </A>Transform...
<DD>
This command is not available in the default build, you must modify the file
<CODE>configure-fontforge.h</CODE> and then rebuild FontForge. This command
allows the user to specify a non-linear transformation as a pair of expressions
(the first specifies the transformation for the x coordinate, the second
for the y coordinate). These expressions may be fairly general functions
of x and y. See the <A HREF="scripting-alpha.html#NonLinearTransform">scripting
page</A> for a description of the syntax.
<DT>
<A NAME="Expand">Expand</A> Stroke...
<DD>
Not in the bitmap view. In the font view it applies to all foreground splines
in all selected glyphs. In the outline view it applies to all paths that
have at least one point selected (or if no points are selected then it applies
to all paths).<BR>
<IMG SRC="twolines.png" WIDTH="247" HEIGHT="247">
<IMG SRC="expandedlines.png" WIDTH="247" HEIGHT="247"><BR>
Above is a simple example of what expand stroke can do. It takes the two
open paths above left and turns them into the two closed paths right.<BR>
<IMG SRC="expandstroke.png" WIDTH="358" HEIGHT="663" ALIGN="Left"><BR>
The Expand Stroke dialog gives you control over various aspects of the expansion
process. First you can specify three types of pen nibs:
<UL>
<LI>
A round pen, which is circular by default but may be transformed into an
ellipse
<LI>
A rectangular pen, which is square by default but may be transformed into
more traditional caligraphic nib shapes
<LI>
A polygonal pen -- you can draw almost any convex polygon.
</UL>
<P>
For circular and caligraphic pens you can chose a stroke width, how the ends
of an open path should be drawn, and how the path should look when two splines
(or lines) join which do not have the same slope (ie. at a corner point).
<P>
For closed contours you may also choose to remove either the generated contour
which is inside the original, or that which is outside (Note: Make sure your
glyph is oriented correctly with
<A HREF="elementmenu.html#Correct">Edit->Correct Direction </A>before
removing a contour (if misoriented the wrong contour may be removed)).
<P>
<A HREF="pfaeditmath.html#Stroke">How is this done?</A><BR CLEAR=ALL>
<DT>
<A NAME="TilePath">Tile Path</A>
<DD>
This command is not available in the default build, you must reconfigure
$ <CODE>configure --with-tilepath</CODE> and then rebuild FontForge. Not
available in quadratic (truetype) fonts. This command brings up a
<A HREF="tilepath.html">dialog</A> which allows you to specify a tile to
be applied to any selected contours.
<DT>
<A NAME="TilePattern">Tile Pattern...</A>
<DD>
Also not available in the default build, also controled by $ <CODE>configure
--with-tilepath</CODE>. <A HREF="tilepath.html#Pattern">This command</A>
allows you to design a pattern which will be layed down on the current layer
m*n times (where m is the number of horizontal repeats and n the number of
vertical repeats.
<DT>
Overlap
<DD>
None of these is available in the bitmap view.
<DL>
<DT>
<A NAME="Remove">Remove</A> Overlap
<DD>
Not in the bitmap view, <EM>not available when the font has quadratic
splines</EM><SUP><A HREF="#overlap-footnote">1</A></SUP>. If two closed paths
intersect then there will be overlap. This will get rid of it, leaving one
closed path behind.
<P>
Make sure paths have the correct orientation. Consider the letter "O" with
two contours. If both contours run in the same direction then the inner path
will be removed (because the outer path overlaps it everywhere), but if the
contours run in opposite orientations then the inner path will be retained.
Things get very strange if you have intersecting paths with different
orientations.
<P>
<IMG SRC="expandedlines.png" WIDTH="247" HEIGHT="247">
<IMG SRC="overlappedlines.png" WIDTH="247" HEIGHT="247"><BR>
This command is probably the buggiest in FontForge. So before FontForge invokes
the command it will save the state to the error recovery file.<BR>
Warning: Splines which are tangent (or nearly so) cause problems. Points
which are close together can cause problems.
<DT>
<A NAME="Intersect">Intersect</A>
<DD>
<TABLE CELLPADDING="2">
<TR>
<TD><IMG SRC="exclude-pre.png" WIDTH="174" HEIGHT="174"></TD>
<TD><IMG SRC="intersect-post.png" WIDTH="174" HEIGHT="174"></TD>
</TR>
</TABLE>
<P>
This will remove everything not in the intersection of two regions.
<DT>
<A NAME="Exclude">Exclude</A>
<DD>
<TABLE CELLPADDING="2">
<TR>
<TD><IMG SRC="exclude-pre.png" WIDTH="174" HEIGHT="174"></TD>
<TD><IMG SRC="exclude-post.png" WIDTH="174" HEIGHT="174"></TD>
</TR>
</TABLE>
<P>
This will remove the selected contours from the unselected ones. Only available
in the outline glyph view.
<DT>
Find Intersections
<DD>
This finds the places where overlapping contours intersect and inserts points
at those locations.
</DL>
<DT>
Simplify
<DD>
<DL>
<DT>
<A NAME="Simplify">Simplify</A>
<DD>
Not in the bitmap view. If you have lots of points on a path, some of which
do not materially add to the path's shape, then this command will remove
the extraneous points. (It will not remove points where the slope at the
point is horizontal or vertical as postscript likes to have these points
present).
<P>
<A HREF="pfaeditmath.html#Approximating">How is this done?</A>
<DT>
<A NAME="SimplifyMore">Simplify More</A>
<DD>
This is a variant of the simplify command. It brings up a dialog which gives
you control over what sorts of errors this simplification is allowed to induce.
You can control:
<UL>
<LI>
How far the simplified contour is allowed to stray from the original
<LI>
Whether to allow removal of extreme points
<LI>
Whether to allow the slope to change at points.
<LI>
Whether to make corner points into curve points (by adjusting the control
points)
<LI>
Whether to flatten small bumps off of lines
<LI>
Whether to try to simplify straight lines at all
</UL>
<P>
Finally, you may specify whether this set of values should become the default
value for future Simplify commands
<DT>
<A NAME="Cleanup">Cleanup Glyph</A>
<DD>
This is a special case of the simplify command. In this case if there is
a spline which actually traces out a line but none the less has control points,
then this command will remove the control points. It will also cleanup zero
length splines.
<DT>
<A NAME="CanonicalSP">Canonical Start Points</A>
<DD>
This will change the start point of the contour (or of all selected contours)
to be the leftmost point on the contour. If there are several points with
the same horizontal coordinate it will pick the one closest to the baseline.
There are two reasons for doing this:
<UL>
<LI>
In a PostScript Type1 or Type2 font it will (usually) reduce the size of
the code expressing the glyph slightly. (I don't think it can increase the
code, but there are certainly cases where the optimization will have no effect).
<LI>
It will enable FontForge to find more reusable bits of code which it can
put in subroutines
</UL>
<DT>
<A NAME="CanonicalContours">Canonical Contour Order</A>
<DD>
Order the contours so that the contour with the leftmost point comes first,
then the contour whose leftmost point is a little further right and so forth.
Again, this should decrease the code size slightly in a Type1 font.
</DL>
<DT>
<A NAME="Add-Extrema">Add Extrema</A>
<DD>
Not in the bitmap view. Both TrueType and Type1 say that there should be
points on the contour where it reaches its extreme horizontal and vertical
values. In the outline view, if any points are selected, this will add points
at all extrema on splines between selected points. In the font view, metrics
view (or if nothing is selected in the outline view) it will add extrema
to a spline if: 1) The spline is longer than the em-size/32, or 2) the entire
contour (rather than just the current spline) attains its maximum/minimum
value at this point. If the added extrema is extremely close to an already
existing point, fontforge may remove that point to avoid creating tiny splines.
<DT>
<A NAME="AutoTrace">AutoTrace</A>
<DD>
This command is only available if you have downloaded Martin Weber's
<A HREF="http://sourceforge.net/projects/autotrace/">autotrace program</A>,
or Peter Selinger's <A HREF="http://potrace.sf.net/">potrace</A>. If you
have a background image in a glyph then autotrace will automagically trace
the outlines of that image. See <A HREF="autotrace.html">the section on
autotracing</A> for more information.
<DT>
<A NAME="Align">Align</A> menu
<DD>
This submenu is only present in the outline view, it allows you to align
points or to space them out along an axis.
<DL>
<DT>
<A NAME="Average">Average</A> Points
<DD>
This will look at all the selected points and find the coordinate with the
least change. Then it will average find the median point on that axis and
set all the selected points to have that value for the appropriate
coordinate.<BR>
So if you have a line which is almost horizontal, and select its endpoints
and apply this command it will be horizontal.<BR>
<IMG SRC="Constrain2_1.png" WIDTH="122" HEIGHT="90">
<IMG SRC="Constrain2_2.png" WIDTH="122" HEIGHT="90"><BR>
(if you select exactly two points, and they lie close to a 45 diagonal, then
they will be forced to the diagonal rather than to horizontal/vertical)
<DT>
<A NAME="Space-Pts">Space Points</A>
<DD>
If you have three or more points selected then FontForge will figure out
the coordinate that has the greatest change and will space the points out
regularly along that axis.<BR>
If you select one point (and that point is in the middle of a path) then
(internally) the point's location will be expressed in a coordinate system
which is rotated so that one axis is parallel to the line between the two
points that surround the selected point. The selected point will be moved
mid-way between the two on this axis, while its other coordinate remains
fixed.<BR>
That's an extremely complicated way of saying: If the selected point is connected
to two points which are on a horizontal line, then the selected point's x
coordinate will be midway between the two, while its y coordinate remains
unchanged.<BR>
<IMG SRC="Constrain1_1.png" WIDTH="122" HEIGHT="90">
<IMG SRC="Constrain1_2.png" WIDTH="122" HEIGHT="90">
<DT>
<A NAME="Space-Regions">Space Regions</A>
<DD>
This is similar to the above command except that it allows you to make a
rather simple definition of a collection of points which should be moved
together. Each of these regions will be regularly spaced along the chosen
axis. A region is defined as a collection of points, each one of which is
within some maximum distance of at least one other point in the region. The
purpose of this is to allow you to space out the stems of the letter "m"
so that they regularly spaced horizontally. Sadly it won't work in many cases
because in a serifed font the serifs will often be closer to each other than
to their respective stems.<BR>
<IMG SRC="Spacem_1.png" WIDTH="140" HEIGHT="108">
<IMG SRC="Spacem_2.png" WIDTH="145" HEIGHT="108">
<DT>
Make <A NAME="Parallel">Parallel</A>
<DD>
If four points are selected, and there are two lines between them, then FontForge
will make those lines parallel. If there are four lines between them (ie.
they form a quadrilateral, then FontForge will turn it into a parallelogram.
(note, this only works on lines, not on curved splines)<BR>
The last point selected will be the one moved (sometimes FontForge doesn't
remember which point was selected last, then it will just pick one randomly.
If you don't want that to happen, select your points and then single click
on the one you want moved).
</DL>
<DT>
Round
<DD>
<DL>
<DT>
<A NAME="Round">Round</A> to Int
<DD>
Not in the bitmap view. FontForge stores point locations as real numbers
(ie. it retains fractional values). TrueType only supports integral values
(And much of the time you want integral values in Type1 and Type2 fonts also
-- using real numbers makes font files bigger), so when generating the font
points are rounded to integral values. This command will round all selected
locations to the closest integer.
<DT>
Round to <A NAME="Hundredths">Hundredths</A>
<DD>
Not in bitmap or metrics views. FontForge's Type1 output is limited to hundredths
of an em-unit, even when rounding is turned off in the Generate [Options]
dialog.
<DT>
Round to <A NAME="Cluster">Cluster</A>
<DD>
Occasionally you want to make sure that coordinates which are close together
have the same value. This command will do that.
</DL>
<DT>
<A NAME="Order">Order</A>
<DD>
This changes the order in which contours, references and images are drawn.
It is almost useless because this order of contours and references does not
affect the final appearance of the glyph. The only relevance it has is when
interpolating fonts and in multiple master fonts. Here similar contours must
appear in the same order.
<P>
If you have a glyph which contains both contours and references, FontForge
does not specify whether references or contours are drawn first (or whether
the two are intermixed). If this matters to you, unlink your references.
<DT>
<A NAME="Clockwise">Clockwise</A>
<DD>
Only in the outline view. If all selected paths have a clockwise direction
then this will be checked. Selecting it will make all paths be clockwise.
<P>
If not paths are selected, or if all selected paths are open this will be
greyed out. I a selected path intersects itself results are indeterminate.
<DT>
<A NAME="Counter">Counter</A>-Clockwise
<DD>
Only in the outline view. If all selected paths have a counter-clockwise
direction then this will be checked. Selecting it will make all paths be
counter-clockwise.
<P>
If not paths are selected, or if all selected paths are open this will be
greyed out. I a selected path intersects itself results are indeterminate.
<DT>
<A NAME="Correct">Correct</A> Direction
<DD>
Not in the bitmap view. Sets the direction of outermost paths to be clockwise.
The next path crossed will be made counter-clockwise, the next clockwise,
etc.<BR>
This command may produce unexpected results if two splines cross.<BR>
If a glyph contains a flipped reference, this command will be unable to correct
the contours inside of the reference directly, instead it will offer to unlink
the reference after which it can treat its (former) contours like any others.
<DT>
<A NAME="Insert-Text">Insert Text Outlines...</A>
<DD>
Upon occasion it is useful to be able to insert text into a glyph. The
<A HREF="InsertTextDlg.html">Insert Text Dialog</A> lets you do this.
<DT>
Build <A NAME="Accented">Accented/Composite</A> Glyph
<DD>
Not in the bitmap view.
<P>
The first menu item will only build accented letters, the second will build
general composite glyphs (fractions, ligatures, digits inside parens, roman
numerals, etc.) as well.
<P>
If the current glyph is an accented glyph (and all the base glyphs and accents
have already been created) then this command will delete anything that is
currently in the foreground and put a reference to the base glyph and another
reference to the accent glyph into the foreground. So if the current glyph
were "À" then a reference to "A" would be added to it, and a reference
to "`" would be centered above the "A". <BR>
If the current glyph is something like "agrave.sc" then it will be built
using the rules of "agrave" but with ".sc" variants. So "agrave.sc" would
contain "a.sc". For accents it will use "grave.sc" if it exists and "grave"
if it does not.<BR>
If <A HREF="editmenu.html#From">Copy From</A> is set to All Fonts then any
bitmaps will have a similar process done -- that is bitmap references will
be created (even in the outline glyph view).<BR>
A more complete description is given in the section on
<A HREF="accented.html">accented glyphs</A>.
<DT>
Build <A NAME="BuildDuplicate">Duplicate</A>
<DD>
Only in the font view.<BR>
Consider the letters "Alpha" and "A". Often these may be represented by the
same glyph. This command which change the encoding slightly so that the encoding
for U+0391 will refer to the glyph named "A". Note that this is subtly different
from refering to a glyph named "Alpha" which refers to another glyph named
"A".
<P>
Adobe suggests that you use a reference rather than giving to unicode code
points to one glyph, but it is part of the font format.
<DT>
<A NAME="Merge">Merge</A> Fonts...
<DD>
Only in the font view. If you are building a unicode font you will often
want to merge in other fonts. You can, of course, cut and paste from one
to the other, but that can be tedious, while this command will do it all
in one fell swoop.
<P>
FontForge does the following when merging CID-keyed fonts:
<UL>
<LI>
If the font in the window (the mergee) is a normal font and the other font
(the merger) is a CID keyed font, then the merger font is effectively flattened
and the result merged into the mergee.
<LI>
If the mergee is a CID keyed font and the merger font is a normal font then
the merger font will be merged into whichever of the mergee's subfonts is
currently active.
<LI>
If both are CID keyed fonts, then they should:
<UL>
<LI>
Have the same registry and ordering
<LI>
The supplement number of the mergee should be at least as big as that of
the merger
<LI>
The mergee should have at least as many subfonts as the merger.
</UL>
<P>
If these conditions be met then any CIDs from the merger which are not present
in the mergee will be merged into the same subfont of the mergee as they
came from in the merger.
<P>
This strikes me as somewhat problematic, but I can't think of a better solution.
</UL>
<P>
FontForge will also copy advanced typographic features, kerning, ligatures,
etc.<BR>
If one of the two glyphs of a kerning pair is in the mergee and the other
in the merger then you will be given the option of either ignoring this kerning
pair or adding it to the resultant font. This happens if both the mergee
and the merger contain a glyph, and the kerning pair is in the merger font
-- if that glyph is the same in both fonts then you would want to include
the kerning pair, but if it differs then you probably don't.
<DT>
<A NAME="Interpolate">Interpolate</A> Fonts...
<DD>
Only in the font view. If you have a bold font and a light font and would
like to create a medium font, then you can interpolate a font between the
two (or you can extrapolate a font that's even bolder or lighter). Your two
fonts must have the same sets of glyphs, and each glyph must have the same
number of paths (ordered similarly) and each path must have the same number
of points on it, and must have the same references.
<P>
Examples: If you are interpolating from a light font to a bold one, then
a medium font might be 50% between the two, an extra-bold font might be 200%
and a thin one -100%.
<DT>
<A NAME="CompareFonts">Compare Fonts...</A>
<DD>
<IMG SRC="fontcompdlg.png" WIDTH="254" HEIGHT="448" ALIGN="Right">Sometimes
it is useful to compare two versions of a font and see what has changed.
This command will allow you to check:
<UL>
<LI>
The addition or removal of glyphs
<LI>
Changes to outline glyphs
<LI>
Changes to bitmap glyphs
<LI>
Changes to the font's names (truetype 'name' table and some postscript names)
<LI>
Changes to the font's glyph substitutions (ligatures and whatnot)
<LI>
Changes to the font's glyph positioning (kerning and whatnot)
</UL>
<P>
You can also use it to compare truetype and postscript versions of the same
font. Normally fontforge checks to make sure all the splines match exactly,
but you can also have it test whether a contour in one font is always close
to the similar contour in another font, or whether a contour in one font
is inside a reference in another (these are common when comparing PostScript
fonts where the format loses references).
<P>
Comparing PostScript hintmasks is another somewhat iffy topic. There are
often many equivalent (I think) hint mask possibilities, but I don't have
a good algorithm for saying that they are equivalent -- especially since
Adobe uses hints in ways which I find unexpected.
<P>
Finally you can have it place the outlines of each differing glyph from the
second font into the background of the corresponding glyph in the first font.
This can be helpful in correcting discrepancies.
<P>
<IMG SRC="fontcompresults.png" WIDTH="497" HEIGHT="349">
<DT>
<A NAME="CompareL2L">Compare Layer To Layer...</A>
<DD>
Only available in the Outline and Font Views. This command allows you to
specify two layers within the current font and then checks that they are
similar. In the outline view a message box pops up to say if the layers are
the same or different. In the Font View, the view will scroll to the first
glyph whch differs, all differing glyphs will be selected and a message box
pops up.
</DL>
<P>
<H2>
Other menus
</H2>
<UL>
<LI>
<A HREF="filemenu.html">File</A>
<LI>
<A HREF="editmenu.html">Edit</A>
<LI>
<A HREF="pointmenu.html">Point</A>
<LI>
<A HREF="elementmenu.html">Element</A>
<LI>
<A href="toolsmenu.html">Tools</A>
<LI>
<A HREF="hintsmenu.html">Hints</A>
<LI>
<A HREF="encodingmenu.html">Encoding</A>
<LI>
<A HREF="viewmenu.html">View</A>
<LI>
<A HREF="metricsmenu.html">Metrics</A>
<LI>
<A HREF="cidmenu.html">CID</A>
<LI>
<A HREF="mmmenu.html">MM</A>
<LI>
<A HREF="windowmenu.html">Window</A>
<LI>
<A HREF="helpmenu.html">Help</A>
<LI>
<A HREF="HotKeys.html">Hot Keys</A>
</UL>
<P ALIGN=Center>
-- <A HREF="pointmenu.html">Prev</A> -- <A HREF="overview.html">TOC</A> --
<A HREF="toolsmenu.html">Next</A> --
<P>
</DIV>
</BODY></HTML>
|