# $Id$ # # >>Title:: MIF Tuning # # >>Copyright:: # Copyright (c) 1992-1996, Ian Clatworthy (ianc@mincom.com). # You may distribute under the terms specified in the LICENSE file. # # >>History:: # ----------------------------------------------------------------------- # Date Who Change # 29-Feb-96 ianc SDF 2.000 # ----------------------------------------------------------------------- # # >>Purpose:: # The {{stdlib/mif.sdn}} module defines [[SDF]] configuration details for # generating [[MIF]] files. # # >>Description:: # # >>Limitations:: # # Make MIF a restricted family of variables !restrict 'MIF' # Declare Frame document variables !block variables; family="MIF"; export Name Type Rule COVER string PAGE_SIZE pagesize START_PAGE integer PAGE_NUM_STYLE keyword PAGE_POINT_STYLE keyword TWO_SIDES boolean PARITY keyword PAGE_ROUNDING keyword FROZEN_PAGES boolean SMART_QUOTES_ON boolean SMART_SPACES_ON boolean LINEBREAK_CHARS string PUNCTUATION_CHARS string MAX_INTER_LINE dimension MAX_INTER_PGF dimension F_NOTE_TAG string F_NOTE_MAX_H dimension F_NOTE_RESTART keyword F_NOTE_START_NUM integer F_NOTE_NUM_STYLE keyword F_NOTE_LABELS string F_NOTE_ANCHOR_POS keyword F_NOTE_ANCHOR_PREFIX string F_NOTE_ANCHOR_SUFFIX string F_NOTE_NUMBER_POS keyword F_NOTE_NUMBER_PREFIX string F_NOTE_NUMBER_SUFFIX string TBL_F_NOTE_TAG string TBL_F_NOTE_NUM_STYLE keyword TBL_F_NOTE_LABELS string TBL_F_NOTE_ANCHOR_POS keyword TBL_F_NOTE_ANCHOR_PREFIX string TBL_F_NOTE_ANCHOR_SUFFIX string TBL_F_NOTE_NUMBER_POS keyword TBL_F_NOTE_NUMBER_PREFIX string TBL_F_NOTE_NUMBER_SUFFIX string CH_BAR_GAP dimension CH_BAR_WIDTH dimension CH_BAR_POSITION keyword CH_BAR_COLOR string VIEW_ONLY_X_REF keyword VIEW_ONLY_SELECT keyword VIEW_ONLY_WIN_BORDERS boolean VIEW_ONLY_WIN_MENUBAR boolean VIEW_ONLY_WIN_POPUP boolean VIEW_ONLY_WIN_PALETTE boolean LANGUAGE keyword SUPERSCRIPT_SIZE number SUBSCRIPT_SIZE number SMALL_CAPS_SIZE number SUPERSCRIPT_SHIFT number SUBSCRIPT_SHIFT number !endblock # Declare Frame paragraph attributes !block paraattrs; family="mif" Name Type Rule UseNextTag boolean NextTag string FIndent dimension LIndent dimension RIndent dimension Alignment keyword SpBefore dimension SpAfter dimension LineSpacing keyword Leading dimension Placement keyword PlacementStyle keyword RunInDefaultPunct string WithPrev boolean WithNext boolean BlockSize integer AutoNum boolean NumFormat string NumberFont string NumAtEnd boolean Hyphenate boolean HyphenMaxLines integer HyphenMinPrefix integer HyphenMinSuffix integer HyphenMinWord integer LetterSpace boolean MinWordSpace integer OptWordSpace integer MaxWordSpace integer Language keyword TopSeparator string BotSeparator string CellAlignment keyword CellMargins LTRB CellLMarginFixed boolean CellTMarginFixed boolean CellRMarginFixed boolean CellBMarginFixed boolean TabStop tabstop AcrobatLevel integer NumTabs integer Locked boolean FIndentRelative boolean FIndentOffset dimension BotSepAtIndent boolean BotSepOffset dimension TopSepAtIndent boolean TopSepOffset dimension !endblock # Declare Frame phrase attributes !block phraseattrs; family="mif"; para="Font" Name Type Rule Family string Angle string Weight string Var string PostScriptName string PlatformName string Size dimension Color string Separation integer Underlining keyword Overline boolean Strike boolean ChangeBar boolean Position keyword Outline boolean Shadow boolean PairKern boolean Case keyword DX dimension DY dimension DW dimension Locked boolean !endblock # Declare Frame table parameters !block tableparams; family="mif" Name Type Rule LIndent dimension RIndent dimension SpBefore dimension SpAfter dimension Alignment keyword Placement keyword BlockSize integer CellMargins LTRB TitlePlacement keyword TitleGap dimension NumByColumn boolean ColumnRuling string XColumnNum integer XColumnRuling string BodyRowRuling string XRowRuling string RulingPeriod integer HFRowRuling string SeparatorRuling string LRuling string BRuling string RRuling string TRuling string LastBRuling boolean HFFill integer HFColor string HFSeparation integer BodyFill integer BodyColor string BodySeparation integer ShadeByColumn boolean ShadePeriod integer XFill integer XColor string XSeparation integer AltShadePeriod integer InitNumColumns integer InitNumBodyRows integer InitNumFRows integer InitNumHRows integer !endblock # Declare Frame row parameters !block rowparams; family="mif" Name Type Rule WithNext boolean WithPrev boolean MinHeight dimension MaxHeight dimension Height dimension Placement keyword !endblock # Declare Frame cell parameters !block cellparams; family="mif" Name Type Rule Fill integer Color string LRuling string BRuling string RRuling string TRuling string Columns integer Rows integer AffectsColumnWidthA boolean Angle integer <0|90|180|270> !endblock # Mapping tables for attribute/parameter values !block script %mif_bool= ( '0', 'No', '1', 'Yes', ); %mif_align = ( '1', 'LeftRight', 'Full', 'LeftRight', ); %mif_top = ( '0', 'Anywhere', '1', 'PageTop', 'Page', 'PageTop', 'Column', 'ColumnTop', 'Left', 'LPageTop', 'Right', 'RPageTop', ); %mif_wide = ( '0', 'Normal', '1', 'Straddle', ); %mif_ruling = ( 'Vthin', 'Very Thin', ); !endblock # Mapping of paragraph attributes !block paraattrs Name To Map Attributes nopb Placement='Anywhere' label NumFormat AutoNum left LIndent first FIndent right RIndent align Alignment %mif_align top Placement %mif_top keep_next WithNext %mif_bool keep_prev WithPrev %mif_bool sp_after SpAfter sp_before SpBefore wide PlacementStyle %mif_wide tabs TabStop !endblock # Mapping of phrase attributes !block phraseattrs Name To Map Attributes family Family size Size bold Weight='Bold' italics Angle='Oblique' underline Underlining='FSingle' changed ChangeBar %mif_bool color Color !endblock # Cross-reference definitions !block targetobjects; type=Xref Name Attributes pagenum value='<$pagenum\>' paratext value='<$paratext\>' paratag value='<$paratag\>' paranum value='<$paranum\>' paranumonly value='<$paranumonly\>' section value='section\x11 <$paranumonly\>, \xd2 <$paratext\>\xd3 , on page\x11 <$pagenum\>' !endblock # Handle book mode !if MIF_BOOK_MODE # Start the front part !output &'MifNewComponent('front') # End the last component !block end !DOC_COMPONENT_END !output '-' !endblock # Start a new component, when requested !on paragraph '';; \ &'MifNewComponent($attr{'component'}) if $attr{'component'} # Make each level 1 heading a component, unless it is already one !on paragraph '[HAP]1';; \ if ($attr{'component'}) { \ } \ elsif (substr($style, 0, 1) eq 'H') {\ $attr{'component'} = 1; \ } \ elsif (substr($style, 0, 1) eq 'A') {\ $attr{'component'} = 'appendix'; \ } \ else { \ $attr{'component'} = $text; \ } !endif # # If we are generating html, we need paragraphs without # hypenation. Otherwise, the fm2html converter can sometimes # fail to highlight the whole jump text. # !if $var{'OPT_TARGET'} eq 'html' !on paragraph '';; $attr{'mif.Hyphenate'} = 0 !endif # If we are generating text: # * minimise wrapping of example lines # * use * as the bullet character. !if $var{'OPT_TARGET'} eq 'txt' !on paragraph 'E' ;; $style = 'E80' !on paragraph 'LU\d';; $attr{'label'} = '*\t' !endif # If we are generating Windows help: # * ignore PB tags (as page-breaks cause topic breaks) # * use plain headings. !if $var{'OPT_TARGET'} eq 'hlp' !on paragraph 'PB';; $style = 'N' !on paragraph '[HA]\d';; substr($style, 0, 1) = 'P' !endif