"============================================================================= " File: elementmacros.vim " Author: Mikolaj Machowski " Created: Tue Apr 23 06:00 PM 2002 PST " " Description: macros for dimensions/fonts/counters. " and various common commands such ref/label/footnote. "============================================================================= nmap <silent> <script> <plug> i imap <silent> <script> <C-o><plug> <Nop> if exists('s:lastElementsLocation') && g:Tex_ElementsMenuLocation == s:lastElementsLocation finish endif if exists('s:lastElementsLocation') exe 'aunmenu '.s:lastElementsLocation.'Font.' exe 'aunmenu '.s:lastElementsLocation.'Dimension.' exe 'aunmenu '.s:lastElementsLocation.'Counters.' exe 'aunmenu '.s:lastElementsLocation.'Various.' endif let s:lastElementsLocation = g:Tex_ElementsMenuLocation let s:fontMenuLoc = g:Tex_ElementsMenuLocation.'Font.' let s:dimensionMenuLoc = g:Tex_ElementsMenuLocation.'Dimension.' let s:counterMenuLoc = g:Tex_ElementsMenuLocation.'Counters.' let s:variousMenuLoc = g:Tex_ElementsMenuLocation.'Various.' " ============================================================================== " Set up the functions the first time. " ============================================================================== if !exists('s:definedFuncs') " {{{ let s:definedFuncs = 1 " Tex_RemoveElementMenus: remove the elements menu {{{ function! Tex_RemoveElementMenus() exe 'silent! aunmenu '.s:lastElementsLocation.'Font.' exe 'silent! aunmenu '.s:lastElementsLocation.'Dimension.' exe 'silent! aunmenu '.s:lastElementsLocation.'Counters.' exe 'silent! aunmenu '.s:lastElementsLocation.'Various.' endfunction " }}} " Tex_FontFamily: sets up font menus {{{ function! <SID>Tex_FontFamily(font,fam) let vislhs = matchstr(tolower(a:font), '^.\zs.*') " avoid redoing imaps and vmaps for every reconfiguration of menus. if !exists('s:doneOnce') && g:Tex_FontMaps exe "vnoremap <silent> ".g:Tex_Leader.vislhs. \" \<C-\\>\<C-N>:call VEnclose('\\text".vislhs."{', '}', '{\\".vislhs.a:fam." ', '}')<CR>" exe 'call IMAP ("'.a:font.'", "\\text'.vislhs.'{<++>}<++>", "tex")' endif " menu entry. if g:Tex_Menus && g:Tex_FontMenus let location = s:fontMenuLoc.substitute(a:fam, '^.', '\u&', '').'.'.vislhs.a:fam.'<tab>'.a:font.'\ ('.g:Tex_Leader.vislhs.')' exe "amenu ".location. \" <plug><C-r>=IMAP_PutTextWithMovement('\\text".vislhs."{<++>}<++>')<CR>" exe "vmenu ".location. \" \<C-\\>\<C-N>:call VEnclose('\\text".vislhs."{', '}', '{\\".vislhs.a:fam." ', '}')<CR>" endif endfunction " }}} " Tex_FontDiacritics: sets up menus for diacritics. {{{ function! <SID>Tex_FontDiacritics(name, rhs) let location = s:fontMenuLoc.'&Diacritics.'.a:name.'<tab>' exe 'amenu '.location. \" <plug><C-r>=IMAP_PutTextWithMovement('\\".a:rhs."{<++>}<++>')<CR>" exe 'vmenu '.location. \" \<C-\\>\<C-n>:call VEnclose('\\".a:rhs."{', '}', '', '')<CR>" endfunction " }}} " Tex_FontSize: sets up size fonts {{{ function! <SID>Tex_FontSize(name) let location = s:fontMenuLoc.'&Size.'.a:name.'<tab>' exe 'amenu '.location." <plug>\\".a:name exe 'vunmenu '.location endfunction " }}} " Tex_Fontfont: sets up the 'font' part of font menus {{{ function! <SID>Tex_Fontfont(desc, lhs) let location = s:fontMenuLoc.'&font.'.a:desc.'<tab>' exe "amenu ".location." <plug><C-r>=IMAP_PutTextWithMovement('".a:lhs."')<CR>" exe "vunmenu ".location endfunction " }}} " Tex_DimMenus: set up dimension menus {{{ function! <SID>Tex_DimMenus(submenu, rhs) let location = s:dimensionMenuLoc.a:submenu.'.'.a:rhs.'<tab>' exe "amenu ".location." <plug>\\".a:rhs exe "vunmenu ".location endfunction " }}} " Tex_CounterMenus: set up counters menus {{{ function! <SID>Tex_CounterMenus(submenu, rhs) let location = s:counterMenuLoc.a:submenu.'.'.a:rhs.'<tab>' exe "amenu ".location." <plug>\\".a:rhs exe "vunmenu ".location endfunction " }}} " Tex_VariousMenus: set up various menus {{{ function! <SID>Tex_VariousMenus(desc, lhs) let location = s:variousMenuLoc.a:desc.'<tab>' exe "amenu ".location." <plug><C-r>=IMAP_PutTextWithMovement('".a:lhs."')<CR>" exe "vunmenu ".location endfunction " }}} endif " }}} " ============================================================================== " Fonts " ============================================================================== " series/family/shape {{{ call <SID>Tex_FontFamily("FBF","series") call <SID>Tex_FontFamily("FMD","series") call <SID>Tex_FontFamily("FTT","family") call <SID>Tex_FontFamily("FSF","family") call <SID>Tex_FontFamily("FRM","family") call <SID>Tex_FontFamily("FUP","shape") call <SID>Tex_FontFamily("FSL","shape") call <SID>Tex_FontFamily("FSC","shape") call <SID>Tex_FontFamily("FIT","shape") " the \emph is special. if g:Tex_FontMaps | exe "vnoremap <silent> ".g:Tex_Leader."em \<C-\\>\<C-N>:call VEnclose('\\emph{', '}', '{\\em', '\\/}')<CR>" | endif if g:Tex_FontMaps | exe 'call IMAP ("FEM", "\\emph{<++>}<++>", "tex")' | endif " }}} if g:Tex_Menus && g:Tex_FontMenus " {{{ diacritics call <SID>Tex_FontDiacritics('Acute', '"') call <SID>Tex_FontDiacritics('Breve', 'u') call <SID>Tex_FontDiacritics('Circle', 'r') call <SID>Tex_FontDiacritics('Circumflex', '^') call <SID>Tex_FontDiacritics('Umlaut', '"') call <SID>Tex_FontDiacritics('HUmlaut', 'H') call <SID>Tex_FontDiacritics('Dot\ over', '.') call <SID>Tex_FontDiacritics('Grave', '`') call <SID>Tex_FontDiacritics('Hacek', 'v') call <SID>Tex_FontDiacritics('Makron', '=') call <SID>Tex_FontDiacritics('Tilde', '~') call <SID>Tex_FontDiacritics('Underline', 'b') call <SID>Tex_FontDiacritics('Cedille', 'c') call <SID>Tex_FontDiacritics('Dot\ under', ' ') call <SID>Tex_FontDiacritics('Ligature', 't') " }}} " {{{ Si&ze. call <SID>Tex_FontSize('tiny') call <SID>Tex_FontSize('scriptsize') call <SID>Tex_FontSize('footnotesize') call <SID>Tex_FontSize('small') call <SID>Tex_FontSize('normalsize') call <SID>Tex_FontSize('large') call <SID>Tex_FontSize('Large') call <SID>Tex_FontSize('LARGE') call <SID>Tex_FontSize('huge') call <SID>Tex_FontSize('Huge') " }}} " {{{ &font. call s:Tex_Fontfont('fontencoding{}', '\fontencoding{<++>}<++>') call s:Tex_Fontfont('fontfamily{qtm}', '\fontfamily{<++>}<++>') call s:Tex_Fontfont('fontseries{m\ b\ bx\ sb\ c}', '\fontseries{<++>}<++>') call s:Tex_Fontfont('fontshape{n\ it\ sl\ sc\ ui}', '\fontshape{<++>}<++>') call s:Tex_Fontfont('fontsize{}{}', '\fontsize{<++>}{<++>}<++>') call s:Tex_Fontfont('selectfont', '\selectfont ') " }}} endif " ============================================================================== " Dimensions " ============================================================================== if g:Tex_Menus " {{{ Static1 call <SID>Tex_DimMenus('Static1', 'arraycolsep') call <SID>Tex_DimMenus('Static1', 'arrayrulewidth') call <SID>Tex_DimMenus('Static1', 'bibindent') call <SID>Tex_DimMenus('Static1', 'columnsep') call <SID>Tex_DimMenus('Static1', 'columnseprule') call <SID>Tex_DimMenus('Static1', 'columnwidth') call <SID>Tex_DimMenus('Static1', 'doublerulesep') call <SID>Tex_DimMenus('Static1', 'evensidemargin') call <SID>Tex_DimMenus('Static1', 'fboxrule') call <SID>Tex_DimMenus('Static1', 'fboxsep') call <SID>Tex_DimMenus('Static1', 'footheight') call <SID>Tex_DimMenus('Static1', 'footnotesep') call <SID>Tex_DimMenus('Static1', 'footskip') call <SID>Tex_DimMenus('Static1', 'headheight') call <SID>Tex_DimMenus('Static1', 'headsep') call <SID>Tex_DimMenus('Static1', 'itemindent') call <SID>Tex_DimMenus('Static1', 'labelsep') call <SID>Tex_DimMenus('Static1', 'labelwidth') call <SID>Tex_DimMenus('Static1', 'leftmargin') call <SID>Tex_DimMenus('Static1', 'leftmargini') call <SID>Tex_DimMenus('Static1', 'leftmarginii') call <SID>Tex_DimMenus('Static1', 'leftmarginiii') call <SID>Tex_DimMenus('Static1', 'leftmarginiv') call <SID>Tex_DimMenus('Static1', 'leftmarginv') call <SID>Tex_DimMenus('Static1', 'leftmarginvi') call <SID>Tex_DimMenus('Static1', 'linewidth') call <SID>Tex_DimMenus('Static1', 'listparindent') call <SID>Tex_DimMenus('Static1', 'marginparpush') call <SID>Tex_DimMenus('Static1', 'marginparsep') call <SID>Tex_DimMenus('Static1', 'marginparwidth') call <SID>Tex_DimMenus('Static1', 'mathindent') call <SID>Tex_DimMenus('Static1', 'oddsidemargin') " }}} " {{{ Static2 call <SID>Tex_DimMenus('Static2', 'paperheight') call <SID>Tex_DimMenus('Static2', 'paperwidth') call <SID>Tex_DimMenus('Static2', 'parindent') call <SID>Tex_DimMenus('Static2', 'rightmargin') call <SID>Tex_DimMenus('Static2', 'tabbingsep') call <SID>Tex_DimMenus('Static2', 'tabcolsep') call <SID>Tex_DimMenus('Static2', 'textheight') call <SID>Tex_DimMenus('Static2', 'textwidth') call <SID>Tex_DimMenus('Static2', 'topmargin') call <SID>Tex_DimMenus('Static2', 'unitlength') " }}} " {{{ Dynamic call <SID>Tex_DimMenus('Dynamic', 'abovedisplayshortskip') call <SID>Tex_DimMenus('Dynamic', 'abovedisplayskip') call <SID>Tex_DimMenus('Dynamic', 'baselineskip') call <SID>Tex_DimMenus('Dynamic', 'belowdisplayshortskip') call <SID>Tex_DimMenus('Dynamic', 'belowdisplayskip') call <SID>Tex_DimMenus('Dynamic', 'dblfloatsep') call <SID>Tex_DimMenus('Dynamic', 'dbltextfloatsep') call <SID>Tex_DimMenus('Dynamic', 'floatsep') call <SID>Tex_DimMenus('Dynamic', 'intextsep') call <SID>Tex_DimMenus('Dynamic', 'itemsep') call <SID>Tex_DimMenus('Dynamic', 'parsep') call <SID>Tex_DimMenus('Dynamic', 'parskip') call <SID>Tex_DimMenus('Dynamic', 'partopsep') call <SID>Tex_DimMenus('Dynamic', 'textfloatsep') call <SID>Tex_DimMenus('Dynamic', 'topsep') call <SID>Tex_DimMenus('Dynamic', 'topskip') " }}} " {{{ Change call <SID>Tex_DimMenus('Change', 'setlength') call <SID>Tex_DimMenus('Change', 'addtolength') call <SID>Tex_DimMenus('Change', 'settoheight') call <SID>Tex_DimMenus('Change', 'settowidth') call <SID>Tex_DimMenus('Change', 'settolength') " }}} endif " ============================================================================== " Counters " ============================================================================== if g:Tex_Menus " Counters {{{ call <SID>Tex_CounterMenus('Counters', 'bottomnumber') call <SID>Tex_CounterMenus('Counters', 'chapter') call <SID>Tex_CounterMenus('Counters', 'dbltopnumber') call <SID>Tex_CounterMenus('Counters', 'enumi') call <SID>Tex_CounterMenus('Counters', 'enumii') call <SID>Tex_CounterMenus('Counters', 'enumiii') call <SID>Tex_CounterMenus('Counters', 'enumiv') call <SID>Tex_CounterMenus('Counters', 'equation') call <SID>Tex_CounterMenus('Counters', 'figure') call <SID>Tex_CounterMenus('Counters', 'footnote') call <SID>Tex_CounterMenus('Counters', 'mpfootnote') call <SID>Tex_CounterMenus('Counters', 'page') call <SID>Tex_CounterMenus('Counters', 'paragraph') call <SID>Tex_CounterMenus('Counters', 'part') call <SID>Tex_CounterMenus('Counters', 'secnumdepth') call <SID>Tex_CounterMenus('Counters', 'section') call <SID>Tex_CounterMenus('Counters', 'subparagraph') call <SID>Tex_CounterMenus('Counters', 'subsection') call <SID>Tex_CounterMenus('Counters', 'subsubsection') call <SID>Tex_CounterMenus('Counters', 'table') call <SID>Tex_CounterMenus('Counters', 'tocdepth') call <SID>Tex_CounterMenus('Counters', 'topnumber') call <SID>Tex_CounterMenus('Counters', 'totalnumber') " }}} " theCounters {{{ call <SID>Tex_CounterMenus('theCounters', 'thebottomnumber') call <SID>Tex_CounterMenus('theCounters', 'thechapter') call <SID>Tex_CounterMenus('theCounters', 'thedbltopnumber') call <SID>Tex_CounterMenus('theCounters', 'theenumi') call <SID>Tex_CounterMenus('theCounters', 'theenumii') call <SID>Tex_CounterMenus('theCounters', 'theenumiii') call <SID>Tex_CounterMenus('theCounters', 'theenumiv') call <SID>Tex_CounterMenus('theCounters', 'theequation') call <SID>Tex_CounterMenus('theCounters', 'thefigure') call <SID>Tex_CounterMenus('theCounters', 'thefootnote') call <SID>Tex_CounterMenus('theCounters', 'thempfootnote') call <SID>Tex_CounterMenus('theCounters', 'thepage') call <SID>Tex_CounterMenus('theCounters', 'theparagraph') call <SID>Tex_CounterMenus('theCounters', 'thepart') call <SID>Tex_CounterMenus('theCounters', 'thesecnumdepth') call <SID>Tex_CounterMenus('theCounters', 'thesection') call <SID>Tex_CounterMenus('theCounters', 'thesubparagraph') call <SID>Tex_CounterMenus('theCounters', 'thesubsection') call <SID>Tex_CounterMenus('theCounters', 'thesubsubsection') call <SID>Tex_CounterMenus('theCounters', 'thetable') call <SID>Tex_CounterMenus('theCounters', 'thetocdepth') call <SID>Tex_CounterMenus('theCounters', 'thetopnumber') call <SID>Tex_CounterMenus('theCounters', 'thetotalnumber') " }}} " Type {{{ call <SID>Tex_CounterMenus('Type', 'alph') call <SID>Tex_CounterMenus('Type', 'Alph') call <SID>Tex_CounterMenus('Type', 'arabic') call <SID>Tex_CounterMenus('Type', 'roman') call <SID>Tex_CounterMenus('Type', 'Roman') " }}} endif " ============================================================================== " Various " ============================================================================== if g:Tex_Menus " Various {{{ call <SID>Tex_VariousMenus('ref{}' , '\ref{<++>}<++>') call <SID>Tex_VariousMenus('pageref{}' , '\pageref{<++>}<++>') call <SID>Tex_VariousMenus('label{}' , '\label{<++>}<++>') call <SID>Tex_VariousMenus('footnote{}' , '\footnote{<++>}<++>') call <SID>Tex_VariousMenus('footnotemark{}', '\footnotemark{<++>}<++>') call <SID>Tex_VariousMenus('footnotemark{}', '\footnotetext{<++>}<++>') call <SID>Tex_VariousMenus('cite{}' , '\cite{<++>}<++>') call <SID>Tex_VariousMenus('nocite{}' , '\nocite{<++>}<++>') " }}} endif if g:Tex_CatchVisMapErrors exe "vnoremap ".g:Tex_Leader." :\<C-u>call ExecMap('".g:Tex_Leader."', 'v')\<CR>" endif " this is for avoiding reinclusion of imaps from next time on. let s:doneOnce = 1 " vim:fdm=marker:ff=unix:noet:ts=4:sw=4