FONTREG Procedure

REMOVE Statement

Removes a font family, all fonts of a particular type (such as TrueType or Type1), or all fonts from the Core\Printing\Freetype\Fonts location of the SAS registry.

Syntax

Required Arguments

family-name
specifies the family name of the font that you want to remove from the Core\Printing\Freetype\Fonts key in the SAS registry. Enclose family-name in quotation marks if the value contains one or more spaces.
alias
specifies an alternative name, usually in a shortened form, for family-name. Enclose the alias name in quotation marks if the value contains one or more spaces.
Note:The valid values that can be specified as an alias are listed in the Core\Printing\Alias\Fonts\Freetype key in the SAS registry.
family-type
specifies the name of a font type (such as TrueType or Type1) that SAS supports and that you want removed from the SAS registry.
Note: The font type is not removed from the operating system location in which they reside. The registration of the font type from the SAS registry is removed so that SAS does not recognize the fonts.
_ALL_
specifies that all font families in the Core\Printing\Freetype\Fonts key in the SAS registry will be deleted.

Details

Removing Fonts from the Registry

The REMOVE statement removes a font family, all fonts of a particular type, or all fonts from the Core\Printing\Freetype\Fonts location in the SAS registry. If you specify the USESASHELP procedure option, then fonts are removed from the SASHELP portion of the registry. If you do not specify USESASHELP, then fonts are removed from the SASUSER portion of the registry. Removal from the SASUSER portion of the registry is the default.
Note that when you specify the family-name argument in the REMOVE statement, SAS removes font families rather than individual fonts within the family. For example, you might register several fonts within the Arial family. When you use the REMOVE Arial; statement, all fonts in the Arial family are removed from the registry. Similarly, when you specify the family-type argument and use the REMOVE Type1; statement, all Type1 font families are removed from the registry.

The Order in Which Fonts Are Added or Removed

Fonts are removed from the SAS registry before any fonts are added or replaced in the registry using other procedure statements. The REMOVE statement removes a font family from the registry as soon as the statement is processed. Other font statements (FONTFILE, FONTPATH, TRUETYPE, and TYPE1) are processed in the order in which they are received, but the font information is stored until all of the statements are processed. SAS then updates the registry.

Searching for a Font That Is Specified in the REMOVE Statement

If the name that you specify in a REMOVE statement does not exist, then SAS adds a font tag prefix (for example, <ttf>) to the specified name to determine whether it exists in the SAS registry. For example, if you specify Arial, SAS uses the <ttf> prefix tag and first searches for a TrueType font type so that it can be removed from the registry. If the search is not successful, then SAS uses the <at1> prefix tag and searches for a Type1 font type so that it can be removed from the registry.

When SAS Is Unable to Remove a Font Family

If SAS is unable to remove a font family after processing the information in the _ALL_, family-type, or family-name arguments, then SAS looks in the Core\Printing\Alias\Fonts\Freetype key in the SAS registry to determine whether the specified value is an alias. If the specified value exists as an alias in this key, then SAS deletes the font family that corresponds to the alias and deletes the alias as well. For example, if an alias of Test refers to the Arial font family, and you specify the REMOVE test; statement with PROC FONTREG, then SAS determines that Test is an alias for Arial. SAS removes the Arial font family from the Core\Printing\Freetype\Fonts key and the Test alias from Core\Printing\Alias\Fonts\Freetype key in the SAS registry.
If SAS is unable to remove a font family at this point, then SAS writes a message to the log indicating that the specified value in the REMOVE statement is invalid.