===== Enigma Strings - General Syntax ===== An Enigma string is a string where **commands** can be inserted. A command starts with a caret (''^''). All commands ends with a ''()'' pair that for some commands contains parameters. A double caret ''^^'' in an Enigma string will insert a single ''^'' to the printed text. Only the text strings that support formatting are stored as Enigma strings in Finale. For example: a Staff name is an Enigma string, a Bookmark name is not. ===== Examples ===== Full Enigma string might look like this: | ''^fontMus(Font0,0)^size(24)^nfx(0)F'' | "mf" (mezzoforte) text expression marking using the category's default font name. | | ''^fontTxt(Times New Roman,4096)^size(12)^nfx(2)subito ^fontMus(Font0,0)^size(24)^nfx(0)p'' | "subito p" text expression (with font change before "p") | | ''^font(Times New Roman,4096)^size(12)^nfx(0)^title()'' | A text with a "title" text insert. | ===== Text Storage ===== Enigma strings are saved to different text pools depending on the object data that requires the string. Text blocks use a different storage pool compared to text expressions, for example. ===== Fonts ===== === ^font(string [,integer]) === The ''string'' appears without quotes. The ''integer'' contains a specific information about the font (such as the platform). For //JW Lua// scripts, this parameter can usually be skipped. === ^nfx(integer) === The font styles as a bit set coded as an integer. Use ''FCFontInfo:CreateEnigmaStyleString()'' to get the string to use from an existing style. The ''FCFontInfo.EnigmaStyles'' property can get/set the numerical style data directly in a FCFontInfo object. ''^nfx(0)'' would mean a plain font style. Other bit style numbers are: ^ Decimal ^ Hexadecimal ^ Font style ^ | 1 | 0x01 | Bold | | 2 | 0x02 | Italic | | 4 | 0x04 | Underline | | 32 | 0x20 | Strikeout | | 64 | 0x40 | Fixed font size | | 128 | 0x80 | Hidden | === ^size(integer) === The font size, where the integer value is in points. ===== Special Text Expression Fonts ===== **Text expressions** support 3 special commands for font names that allow them to respond correctly to category changes. The syntax is the same as for the ''^font'' command listed above. | ''^fontMus'' | The category music font | | ''^fontTxt'' | The category text font | | ''^fontNum'' | The category number font | In addition to using traditional font names (such as ''^fontTxt(Times New Roman, 0)''), these commands can also use a "special" font name called ''Font0'', that would represent the default category font (such as ''^fontTxt(Font0,0)''). ===== Formatting ===== The Enigma strings support a couple of **text formatting** commands that can be inserted in the text. | ''^baseline(integer)'' | The baseline shift value. | | ''^superscript(integer)'' | The superscript value. | | ''^tracking(integer)'' | The tracking value. | ===== Text Inserts ===== These commands will insert special contents to the string. Some text inserts might not make sense for certain types of Enigma strings. | ''^arranger()'' | The arranger name text insert (defined in the File Info). | | ''^composer()'' | The composer name text insert (defined in the File Info). | | ''^copyright()'' | The copyright text insert (defined in the File Info). | | ''^cprsym()'' | The copyright symbol. | | ''^date(integer)'' | The current date. The ''integer'' parameter is the date format: 0 - short, 1 - long | | ''^dbflat()'' | The double flat text insert. | | ''^dbsharp()'' | The double sharp text insert. | | ''^description()'' | The description text insert (defined in the File Info). | | ''^fdate(integer)'' | The file date. The ''integer'' parameter is the date format: 0 - short, 1 - long | | ''^filename()'' | The document's file name. | | ''^flat()'' | The "flat" symbold text insert. | | ''^lyricist()'' | The lyricist text insert (defined in the File Info). | | ''^natural()'' | The "natural" symbol text insert. | | ''^page(integer)'' | The page number with the added offset of the ''integer'' value. 0 as an offset would mean that the first page have page number 1. | | ''^partname()'' | The score/part name for the score/part in scope. | | ''^perftime(integer)'' | The playback/performance time text insert. The ''integer'' parameter is a time format specifier: 0 - m:ss, 1 - hh:mm:ss, 2 - hh:mm:ss.1000nds, 3 - hh:mm, 4 - m´ss´´, 5 - m | | ''^rehearsal()'' | For **text expressions** only! Inserts a rehearsal figure in the text expression string. | | ''^sharp()'' | A "sharp" symbol text insert. | | ''^subtitle()'' | The subtitle text insert (defined in the File Info). | | ''^title()'' | The title text insert (defined in the File Info). | | ''^time(integer)'' | The current time. The ''integer'' parameter is a time format specifier, see the ''perftime()'' text insert. | | ''^totpages()'' | The text insert for total number of pages in the current score/part. | ===== Misc. ===== There's also a **^url()** command to format hyperlinks. Syntax currently unknown.