trunk eingeführt

git-svn-id: https://vimsuite.svn.sourceforge.net/svnroot/vimsuite/trunk@133 eb2d0018-73a3-4aeb-bfe9-1def61c9ec69
This commit is contained in:
qx13468 2007-04-12 15:34:18 +00:00
commit 28d94f21ed
245 changed files with 67635 additions and 0 deletions

View File

@ -0,0 +1,31 @@
*damos.txt* Funktinen fuer das Arbeiten mit DAMOS-Dateien
DAMOS-Tools *damos* *kgs* *osp*
==============================================================================
*:PatchA2L*
:PatchA2L A2L-File patchen
Mit diesem Befehl wird ein 'make patch_a2l' durchgeführt. Nähere Informationen
sind in der HTML-Dokumentation zu lesen.
Wenn man sich im kgs-File auf einer Umrechnungsformel befindet können folgende
Befehle ausgeführt werden:
*:GetOspPhysValue*
:GetOspPhysValue{Integer-Wert} Ausgabe des physikalische Werts mit Einheit.
*:GetOspIntValue*
:GetOspIntValue{Phys-Wert} Ausgabe des Integer Werts in dez und hex.
*:GetOspTestValues*
:GetOspTestValues Ausgabe eines Sets von Testwerten.
Wenn man sich im kgs-File auf einem Kennwert-Namen befindet kann folgender
Befehl ausgeführt werden:
*:GetKgsTestWertp*
:GetKgsTestWertp Ausgabe des Testwert als physikalischer Wert ausgegeben.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:

9
vimfiles.damos/doc/tags Normal file
View File

@ -0,0 +1,9 @@
:GetKgsTestWertp damos.txt /*:GetKgsTestWertp*
:GetOspIntValue damos.txt /*:GetOspIntValue*
:GetOspPhysValue damos.txt /*:GetOspPhysValue*
:GetOspTestValues damos.txt /*:GetOspTestValues*
:PatchA2L damos.txt /*:PatchA2L*
damos damos.txt /*damos*
damos.txt damos.txt /*damos.txt*
kgs damos.txt /*kgs*
osp damos.txt /*osp*

View File

@ -0,0 +1,2 @@
autocmd BufRead,BufNewFile *.dcm set filetype=damos
autocmd BufRead,BufNewFile *.dcl set filetype=damos

View File

@ -0,0 +1 @@
au BufRead,BufNewFile *.kgs set filetype=kgs

View File

@ -0,0 +1 @@
au BufRead,BufNewFile *.kon set filetype=konserve

View File

@ -0,0 +1,27 @@
" Vim filetype plugin
" Language: damos command file
" Maintainer: Stefan Liebl <S.Liebl@gmx.de>
" URL:
" Credits:
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" ----
" TABS
" ----
" use spaces for tabs
setlocal expandtab
" autoindent
" indent mode - one of autoindent, smartindent or cindent
setlocal autoindent
" commenting
" ----------
let b:commentstring = "// "
" Grep options
let b:GrepFiles = '*.dcm'

View File

@ -0,0 +1,416 @@
" Vim filetype plugin
" Language: damos Kenngroessen Beschreibungs Datei
" Maintainer: Stefan Liebl <S.Liebl@gmx.de>
" URL:
" Credits:
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" ----
" TABS
" ----
" tab width
let tabwidth = 4
let &l:tabstop = tabwidth
" spaces for tabs
"let &softtabstop = tabwidth
" smart indent tabs (use spaces for indent else tabs)
"set smarttab
" use spaces for tabs
setlocal expandtab
" autoindent
" indent mode - one of autoindent, smartindent or cindent
" set autoindent
" set smartindent
"set cindent
setlocal cinoptions=*200,)100,(s,w1
let &l:shiftwidth = tabwidth
setlocal formatoptions=croq
setlocal formatexpr=KgsFormat()
" commenting
" ----------
let b:commentstring = "\/\/"
" Grep options
let b:GrepFiles = '*.kgs'
" formatting
" ----------
let s:levelSgFunktion = 0 * &sw
let s:levelBlock = 1 * &sw
let s:levelKeyword = 2 * &sw
let s:lenKeyword = 27
let s:lenBlockNameId = (s:levelKeyword - s:levelBlock) + s:lenKeyword
if exists("*KgsFormat")
finish
endif
" function for gq command
" -----------------------
function KgsFormat()
if mode() !~ '[iR]'
" not in insert mode
let lstart = v:lnum
let lend = lstart + v:count - 1
while v:lnum <= lend
let level = GetKgsIndent()
let line = getline(v:lnum)
if level == s:levelSgFunktion
" nix tun
elseif level == s:levelBlock
" Definition eines Blocks
let list = matchlist(line, '^\s*\(\w\+\)\s\+\(\w\+;\?\)\s*\(.*\)\?\s*')
let NameId = printf('%s %s', list[1], list[2])
let line = printf('%-' . s:lenBlockNameId . 's %s', NameId, list[3])
elseif level == s:levelKeyword
" Parameter eines Blocks
let list = matchlist(line, '^\s*\(\w\+\)\s\+\(.\{-}\)\s\{-}\(;\)\?\(.*\)\?')
let line = printf('%-' . s:lenKeyword . 's %s%s%s', list[1], list[2], list[3], list[4])
else
endif
" delete leading spaces
let line = substitute(line, '^\s*\(.*\)', '\1', '')
" indent
let line = printf('%' . level . 's%s', '', line)
" delete trailing spaces
let line = substitute(line, '\(.\{-}\)\s*$', '\1', '')
call setline(v:lnum, line)
let v:lnum = v:lnum + 1
endwhile
endif
endfunction
" ------------
" KGS Reformat
" ------------
function ReformatKGS()
let cursorLine = line('.')
let cursorCol = col('.')
"do gq over all
execute 'normal ggVGgq'
call cursor(cursorLine, cursorCol)
endfunction
" ---------------------------------------------------------
" Physikalischen Wert zu Testwert eines Kennwerts ermitteln
" Cursor muss sich im .kgs-File auf dem Kennwert befinden
" ---------------------------------------------------------
function s:GetOspLine(umrechnungsformel)
execute 'tag ' a:umrechnungsformel
let OspLine = getline('.')
execute 'pop'
return OspLine
endfunction
function s:GetOspPoly(Nr, OspLine)
if match(a:OspLine, 'Poly') >= 0
let valRegEx = '[^:;]\+'
let pxPos = matchend(a:OspLine, 'P' . a:Nr . '=')
if pxPos >=0
let pxVal = matchstr(a:OspLine, valRegEx, pxPos)
else
let pxVal = '0.0'
endif
else
echo 'kein Polynom'
let pxVal = '0.0'
endif
return pxVal
endfunction
function s:GetOspMas(OspLine)
let masRegEx = '[^:;"]\+'
let masPos = matchend(a:OspLine, 'Mas="')
if masPos >=0
let mas = matchstr(a:OspLine, masRegEx, masPos)
else
let mas = '-'
endif
return mas
endfunction
function s:GetOspPolyPhysValue(int, p1, p2, p3, p4, p5)
" P2 - (int - P5) * P4
" phys = --------------------
" (int - P5) * P3 - P1
"
" echo 'P1: ' a:p1 ' P2:' a:p2 ' P3:' a:p3 ' P4:' a:p4 ' P5:' a:p5
let polynom = '(' . a:p2 . ' - ((' . a:int . ' - ' . a:p5 . ') * '
\ . a:p4 . ')) / (((' . a:int . ' - ' . a:p5 . ') * '
\ . a:p3 . ') - ' . a:p1 . ')'
" echo polynom
let phys = Eval(polynom)
return phys
endfunction
function s:GetOspPolyIntValue(phys, p1, p2, p3, p4, p5)
" P1 * phys + P2
" int = -------------- + P5
" P3 * phys + P4
"
" echo 'P1: ' a:p1 ' P2:' a:p2 ' P3:' a:p3 ' P4:' a:p4 ' P5:' a:p5
let polynom = '((((' . a:p1 . ' * ' . a:phys . ') + ' . a:p2 . ') / (('
\ . a:p3 . ' * ' . a:phys . ') + ' . a:p4 . ')) + ' . a:p5 . ')'
" echo polynom
let float = Eval(polynom)
let int = ToInt(float)
return int
endfunction
command -nargs=1 GetOspPhysValue call s:GetOspPhysValue('<args>')
function s:GetOspPhysValue(int)
execute 'normal yiw'
let umrechnung = @0
echo 'umrechnung:' umrechnung
let OspLine = s:GetOspLine(umrechnung)
if match(OspLine, 'Poly') >= 0
let p1Val = s:GetOspPoly('1', OspLine)
let p2Val = s:GetOspPoly('2', OspLine)
let p3Val = s:GetOspPoly('3', OspLine)
let p4Val = s:GetOspPoly('4', OspLine)
let p5Val = s:GetOspPoly('5', OspLine)
let mas = s:GetOspMas(OspLine)
" Poynom
echo 'umrechnung:' umrechnung
echo 'P1:' p1Val 'P2:' p2Val 'P3:' p3Val 'P4:' p4Val 'P5:' p5Val
let phys = s:GetOspPolyPhysValue(a:int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo 'Int:' a:int 'Phys:' phys mas
else
echo 'kein Polynom'
return
endif
endfunction
command -nargs=1 GetOspIntValue call s:GetOspIntValue('<args>')
function s:GetOspIntValue(phys)
execute 'normal yiw'
let umrechnung = @0
echo 'umrechnung:' umrechnung
let OspLine = s:GetOspLine(umrechnung)
if match(OspLine, 'Poly') >= 0
let p1Val = s:GetOspPoly('1', OspLine)
let p2Val = s:GetOspPoly('2', OspLine)
let p3Val = s:GetOspPoly('3', OspLine)
let p4Val = s:GetOspPoly('4', OspLine)
let p5Val = s:GetOspPoly('5', OspLine)
let mas = s:GetOspMas(OspLine)
" Poynom
echo 'umrechnung:' umrechnung
echo 'P1:' p1Val 'P2:' p2Val 'P3:' p3Val 'P4:' p4Val 'P5:' p5Val
let int = s:GetOspPolyIntValue(a:phys, p1Val, p2Val, p3Val, p4Val, p5Val)
let hex = ToHex(int, 0)
echo 'Phys:' a:phys mas 'Int:' int 'Hex:' hex
else
echo 'kein Polynom'
return
endif
endfunction
command GetOspTestValues call s:GetOspTestValues()
function s:GetOspTestValues()
execute 'normal yiw'
let umrechnung = @0
echo 'umrechnung:' umrechnung
let OspLine = s:GetOspLine(umrechnung)
if match(OspLine, 'Poly') >= 0
let p1Val = s:GetOspPoly('1', OspLine)
let p2Val = s:GetOspPoly('2', OspLine)
let p3Val = s:GetOspPoly('3', OspLine)
let p4Val = s:GetOspPoly('4', OspLine)
let p5Val = s:GetOspPoly('5', OspLine)
let mas = s:GetOspMas(OspLine)
" Poynom
echo 'umrechnung:' umrechnung
echo 'P1:' p1Val 'P2:' p2Val 'P3:' p3Val 'P4:' p4Val 'P5:' p5Val
let int = '0'
let hex = ToHex(int, 8)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '1'
let hex = ToHex(int, 8)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '127'
let hex = ToHex(int, 8)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '-128'
let hex = ToHex(int, 8)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '255'
let hex = ToHex(int, 8)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '32767'
let hex = ToHex(int, 16)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '-32768'
let hex = ToHex(int, 16)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '65535'
let hex = ToHex(int, 16)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '2147483647L'
let hex = ToHex(int, 32)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '-2147483648L'
let hex = ToHex(int, 32)
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
let int = '4294967295L'
let hex = '0xffffffff'
let phys = s:GetOspPolyPhysValue(int, p1Val, p2Val, p3Val, p4Val, p5Val)
echo s:formatValues(int, hex, phys, mas)
else
echo 'kein Polynom'
return
endif
endfunction
function s:formatValues(int, hex, phys, mas)
return printf('Int: %12s Hex: %12s Phys: %s %s',a:int, a:hex, a:phys, a:mas)
endfunction
command GetKgsTestWertp call s:GetKgsTestWertp()
function s:GetKgsTestWertp()
" position markieren
execute 'normal mx'
" kennwert namen speichern
execute 'normal yiw'
let kennwert = @0
echo 'kennwert:' kennwert
" Position von { und } merken
call search('{')
let startLineNr = line('.')
execute 'normal %'
let endLineNr = line('.')
execute 'normal %'
" umrechnungs-Formel hohlen
call cursor(startLineNr, 0)
call search('umrechnung', 'W')
execute 'normal wyiw'
let umrechnung = @0
echo 'umrechnung:' umrechnung
let OspLine = s:GetOspLine(umrechnung)
call cursor(startLineNr, 0)
if match(OspLine, 'Poly') >= 0
let p1Val = s:GetOspPoly('1', OspLine)
let p2Val = s:GetOspPoly('2', OspLine)
let p3Val = s:GetOspPoly('3', OspLine)
let p4Val = s:GetOspPoly('4', OspLine)
let p5Val = s:GetOspPoly('5', OspLine)
" test_wert lesen
call cursor(startLineNr, 0)
call search('test_wert', 'W')
while search('\x\+\s*}\?\s*[,;]', 'W') > 0
if line('.') <= endLineNr
execute 'normal yiw'
let test_wert = @0
" Poynom
echo 'P1:' p1Val 'P2:' p2Val 'P3:' p3Val 'P4:' p4Val 'P5:' p5Val
let phys = s:GetOspPolyPhysValue(
\test_wert, p1Val, p2Val, p3Val, p4Val, p5Val)
echo 'test_wert:' test_wert 'umrechnung:' umrechnung 'Phys:' phys
endif
endwhile
else
echo 'kein Polynom'
return
endif
execute 'normal `x'
endfunction
" ------------------------------------------------------------
" Zum überprüfen von Testwerten
" Im Fenster 1 muss sich konserve_2.kon befinden
" Im Fenster 3 muss sich konserve_4.kon befinden
" Im Fenster 2 wird das .kgs-File geöffnet, das den Kennwert definiert
" Im Fenster 4 wird das .c-File zum .kgs-File geöffnet
" ------------------------------------------------------------
command -nargs=1 DamosCheckValues call s:DamosCheckValues('<args>')
function s:DamosCheckValues(kennwert)
" find kennwert in kgs-file
2wincmd w
execute 'tselect ' . a:kennwert
execute 'normal 0jzok'
call search(a:kennwert)
execute 'normal gm'
let @/ = a:kennwert . '\>'
" get c-file-name and find kennwert
let cFile = expand('%:p:r') . '.c'
4wincmd w
execute 'edit ' . cFile
execute 'normal zR!'
execute 'normal n'
1wincmd w
execute 'normal n'
3wincmd w
execute 'normal n'
2wincmd w
endfunction
" --------------------------------------------------
" Sucht den Wert eines Kennwerts aus einer Konserve,
" die als erster Parameter übergeben wird
" --------------------------------------------------
function s:DamosGetKonserveVal(konserve, kennwert)
let kwPos = match(a:konserve, a:kennwert)
" echo 'kwPos: ' . kwPos
if kwPos >= 0
let wertLine = matchstr(a:konserve, 'WERT\s\p\+', kwPos)
echo 'wertLine:' wertLine
let wert = substitute(wertLine, 'WERT\s\+\([0-9.,]\+\)' , '\1', '')
else
echo a:kennwert 'not found in' a:konserve
let wert = '-'
endif
return wert
endfunction
command -nargs=+ DamosCheckKonserven call s:DamosCheckKonserven(<f-args>)
function s:DamosCheckKonserven(kennwert, newValue)
let output = DamosCheckKonserve('konserve_2.kon', a:kennwert, a:newValue)
echo output
let output = DamosCheckKonserve('konserve_4.kon', a:kennwert, a:newValue)
echo output
endfunction
" -------------------------------------------------------
" Überprüft, ab welcher Version der Konserve ein Kennwert
" einen bestimmten Wert hat
" -------------------------------------------------------
function s:DamosCheckKonserve(konserve, kennwert, newValue)
" Get object from Continuus
silent let k2_obj = CCM_get_object(a:konserve)
silent let k2_root = CCM_get_hist_root(k2_obj)
let k2_obj = k2_root
while k2_obj != ''
let k2_content = CCM_view_object(k2_obj)
let wert = s:DamosGetKonserveVal(k2_content, a:kennwert)
if wert != '-'
echo a:kennwert . ': ' . wert . '\n'
let equal = Eval(wert . ' == ' . a:newValue)
if equal == 0
let output = a:kennwert . ': not equal in: ' . k2_obj
silent let owner = CCM_get_owner(k2_obj)
let output = output . ' owner: ' . owner
return output
endif
endif
silent let k2_obj = CCM_get_successor(k2_obj)
endwhile
return 'nix'
endfunction

View File

@ -0,0 +1,27 @@
" Vim filetype plugin
" Language: damos Konserve
" Maintainer: Stefan Liebl <S.Liebl@gmx.de>
" URL:
" Credits:
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" ----
" TABS
" ----
" use spaces for tabs
setlocal expandtab
" autoindent
" indent mode - one of autoindent, smartindent or cindent
setlocal autoindent
" commenting
" ----------
let b:commentstring = "* "
" Grep options
let b:GrepFiles = '*.kon'

View File

@ -0,0 +1,91 @@
" Vim indent file
" Language: damos Kenngroessen Beschreibungs Datei
" Maintainer: Stefan Liebl <S.Liebl@gmx.de>
" URL:
" Credits:
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetKgsIndent()
setlocal nolisp
setlocal nosmartindent
setlocal autoindent
setlocal indentkeys+=}
" Only define the function once
if exists("*GetKgsIndent")
finish
endif
function GetKgsIndent()
" Do not change indentation of commented lines.
if exists("b:commentstring")
if getline(v:lnum) =~ '^' . b:commentstring . '.*'
return 0
endif
endif
" Don't indent preprocessor directives
if getline(v:lnum) =~ '^\s*#'
return 0
endif
" Find a non-blank line above the current line, that's not a comment and not a preprocessor directive
let lnum = prevnonblank(v:lnum - 1)
while 1
if getline(lnum) =~ '^#'
" search
elseif exists("b:commentstring")
if getline(lnum) =~ '^' . b:commentstring
" search
else
" found
break
endif
else
" found
break
endif
" search next
let lnum = prevnonblank(lnum - 1)
endwhile
" At the start of the file use zero indent.
if lnum == 0 | return 0
endif
let ind = indent(lnum)
let line = getline(lnum) " last line
let cline = getline(v:lnum) " current line
" Add a 'shiftwidth' after beginning of environments.
" Don't add it for /begin ... /end
if line =~ '{' && line !~ '}'
let ind = ind + &sw
endif
" Subtract a 'shiftwidth' when an environment ends
if cline =~ '^\s*}'
let ind = ind - &sw
endif
if line !~ '{' && line =~ '}' && line !~ '^\s*}'
let ind = ind - &sw
endif
" Add a space after beginning of a comment-block
if line =~ '\/\*' && line !~ '\*\/'
let ind = ind + 1
endif
" Subtract a space after end of a comment-block
if line !~ '\/\*' && line =~ '\*\/'
let ind = ind - 1
endif
return ind
endfunction

View File

@ -0,0 +1,86 @@
" Vim syntax file
" Language: damos command file
" Maintainer: Stefan Liebl <S.Liebl@gmx.de>
" URL:
" Credits: Based on the java.vim syntax file by Claudio Fleiner
" Last change: 2004 Okt 04
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" we define it here so that included files can test for it
if !exists("main_syntax")
let main_syntax='damos'
endif
" ignore case
"syn case ignore
" commands
syn keyword damosFunction begrenzeFehlerausgabe unterdrueckeBeaFort
syn keyword damosFunction einstelleSprache oeffneOSp liesBezeichner oeffnePV
syn keyword damosFunction liesAdressDatei anlegeDatenstand
syn keyword damosFunction liesKonservierung speichere schreibeHexDatei
syn keyword damosFunction schreibeASAP_AgIAsw
syn keyword damosFunction kdoOTypCheck ausfuehreTrans pruefeAutoRam
syn keyword damosFunction pruefeFktKonsistenz schreibeFhlListAusFktKonsPruef
syn keyword damosFunction oeffneQuellDatenstand fuelleAusTestwerte
syn keyword damosFunction definiereSGGrAuswahl anlegeAsw entferneAsw schneideAsw
syn keyword damosFunction schliesseAsw setzeUmfang schreibeDatenquelle
syn keyword damosFunction schreibeFktIncludeAbh anlegeOSp importiereObjekte
syn keyword damosFunction schliesseOSp
syn keyword damosCommand exit Dam DAMOS quellDst
syn match damosSeperator "[<>,:]"
syn match damosParameter "'p\d\+'"
syn keyword damosParameter Motorola Intel Lesen S I W E y j n V1_3
syn keyword damosParameter deutsch OSp Dst DAT EXIT PrV maxSstAnz dfpm_fkt alle_fkt
syn keyword damosParameter switch_dfpm_fkt fktGelesen dfpm_index switch_dfpm_index
" Comments
syn keyword damosTodo contained TODO FIXME XXX
" string inside comments
syn region damosCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=damosSpecial,damosCommentStar,damosSpecialChar
syn match damosCommentCharacter contained "'\\[^']\{1,6\}'" contains=damosSpecialChar
syn match damosCommentCharacter contained "'\\''" contains=damosSpecialChar
syn match damosCommentCharacter contained "'[^\\]'"
syn match damosLineComment "//.*" contains=damosCommentCharacter,damosTodo
hi link damosLineComment damosComment
hi link damosCommentString damosString
" Strings and constants
syn region damosString start=+"+ end=+"+ contains=ucSpecialChar,ucSpecialError
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_damos_syntax_inits")
if version < 508
let did_damos_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink damosComment Comment
HiLink damosString String
HiLink damosBranch Statement
HiLink damosSeperator String
HiLink damosFunction Function
HiLink damosCommand Statement
HiLink damosParameter Label
delcommand HiLink
endif
let b:current_syntax = "damos"
if main_syntax == 'damos'
unlet main_syntax
endif
" vim: ts=8

View File

@ -0,0 +1,36 @@
" Vim syntax file
" Language: damos Kenngroessen Beschreibungs Datei
" Maintainer: Stefan Liebl <S.Liebl@gmx.de>
" URL:
" Credits:
" load c-syntax
execute('source ' . $VIMRUNTIME . '/syntax/c.vim')
"syntax keyword kgsFunctions sg_funktion contained
syntax keyword kgsFunctions sg_funktion variante revision
syntax keyword kgsDefinitions fkt_bezeichner kgs_bezeichner ram_bezeichner
syntax keyword kgsDefinitions ram_groesse lok_ram_groesse kennwert kennlinie
syntax keyword kgsDefinitions gruppenkennlinie gruppenkennfeld gruppenstuetzstellen
syntax keyword kgsDefinitions kennfeld kennwerteblock systemkonstante
syntax keyword kgsRefgroessen ref_ram_groesse ref_kenngroesse
syntax keyword kgsKomponents umrechnung codesyntax datentyp adressierschema
syntax keyword kgsKomponents bitanzahl element_anzahl bitbasis_typ bitposition
syntax keyword kgsKomponents bitbasis_name init_wert init_wertp minp_w maxp_w
syntax keyword kgsKomponents ablageschema umrechnung anzahl min_w max_w
syntax keyword kgsKomponents test_wert test_wertp test_wert_text nicht_im_eprom
syntax keyword kgsKomponents eingangsgroesse_x eingangsgroesse_y ergebnisgroesse
syntax keyword kgsKomponents anzahl_stuetzstellen_x anzahl_stuetzstellen_y
syntax keyword kgsKomponents test_stuetzstellen_x test_stuetzstellen_y
syntax keyword kgsKomponents anzahl_test_stuetzstellen_x anzahl_test_stuetzstellen_y
syntax keyword kgsKomponents gruppenstuetzstellen_x gruppenstuetzstellen_y
syntax keyword kgsKomponents minp_x minp_y maxp_x maxp_y
syntax keyword kgsKomponents test_stuetzstellenp_x test_stuetzstellenp_y
syntax keyword kgsKomponents nicht_applizierbar
syntax keyword kgsKomponents deutsch
highlight def link kgsFunctions Function
highlight def link kgsDefinitions Function
highlight def link kgsRefgroessen Function
highlight def link kgsKomponents Type

View File

@ -0,0 +1,48 @@
--langdef=damos
--langmap=damos:.kgs
--regex-damos=/^[ \t]*systemkonstante[ \t]*([a-zA-Z0-9_]+)/\1/k,systemkonstante/
--regex-damos=/^[ \t]*ram_groesse[ \t]*([a-zA-Z0-9_]+)/\1/r,ram_groesse/
--regex-damos=/^[ \t]*ram_groesse[ \t]*([a-zA-Z0-9_]+)/GET_\1/r,ram_groesse/
--regex-damos=/^[ \t]*ram_groesse[ \t]*([a-zA-Z0-9_]+)/SET_\1/r,ram_groesse/
--regex-damos=/^[ \t]*ram_groesse[ \t]*([a-zA-Z0-9_]+)/CLR_\1/r,ram_groesse/
--regex-damos=/^[ \t]*ram_groesse[ \t]*([a-zA-Z0-9_]+)/PUT_\1/r,ram_groesse/
--regex-damos=/^[ \t]*lok_ram_groesse[ \t]*([a-zA-Z0-9_]+)/\1/s,lok_ram_groesse/
--regex-damos=/^[ \t]*lok_ram_groesse[ \t]*([a-zA-Z0-9_]+)/GET_\1/s,lok_ram_groesse/
--regex-damos=/^[ \t]*lok_ram_groesse[ \t]*([a-zA-Z0-9_]+)/SET_\1/s,lok_ram_groesse/
--regex-damos=/^[ \t]*lok_ram_groesse[ \t]*([a-zA-Z0-9_]+)/CLR_\1/s,lok_ram_groesse/
--regex-damos=/^[ \t]*lok_ram_groesse[ \t]*([a-zA-Z0-9_]+)/PUT_\1/s,lok_ram_groesse/
--regex-damos=/^[ \t]*kennwert[ \t]*([a-zA-Z0-9_]+)/\1/w,kennwert/
--regex-damos=/^[ \t]*kennwert[ \t]*([a-zA-Z0-9_]+)/KW\1/w,kennwert/
--regex-damos=/^[ \t]*kennwert[ \t]*([a-zA-Z0-9_]+)/KW_\1/w,kennwert/
--regex-damos=/^[ \t]*kennwerteblock[ \t]*([a-zA-Z0-9_]+)/\1/w,kennwert/
--regex-damos=/^[ \t]*kennwerteblock[ \t]*([a-zA-Z0-9_]+)/KWB\1/w,kennwert/
--regex-damos=/^[ \t]*kennwerteblock[ \t]*([a-zA-Z0-9_]+)/KWB_\1/w,kennwert/
--regex-damos=/^[ \t]*kennlinie[ \t]*([a-zA-Z0-9_]+)/\1/l,kennlinie/
--regex-damos=/^[ \t]*kennlinie[ \t]*([a-zA-Z0-9_]+)/KL\1/l,kennlinie/
--regex-damos=/^[ \t]*kennlinie[ \t]*([a-zA-Z0-9_]+)/KL_\1/l,kennlinie/
--regex-damos=/^[ \t]*kennlinie[ \t]*([a-zA-Z0-9_]+)/F_\1/l,kennlinie/
--regex-damos=/^[ \t]*festkennlinie[ \t]*([a-zA-Z0-9_]+)/\1/l,kennlinie/
--regex-damos=/^[ \t]*festkennlinie[ \t]*([a-zA-Z0-9_]+)/FKL_\1/l,kennlinie/
--regex-damos=/^[ \t]*festkennlinie[ \t]*([a-zA-Z0-9_]+)/KL_\1/l,kennlinie/
--regex-damos=/^[ \t]*gruppenkennlinie[ \t]*([a-zA-Z0-9_]+)/\1/l,kennlinie/
--regex-damos=/^[ \t]*gruppenkennlinie[ \t]*([a-zA-Z0-9_]+)/GKL\1/l,kennlinie/
--regex-damos=/^[ \t]*gruppenkennlinie[ \t]*([a-zA-Z0-9_]+)/GKL_\1/l,kennlinie/
--regex-damos=/^[ \t]*gruppenkennlinie[ \t]*([a-zA-Z0-9_]+)/F_\1/l,kennlinie/
--regex-damos=/^[ \t]*kennfeld[ \t]*([a-zA-Z0-9_]+)/\1/f,kennfeld/
--regex-damos=/^[ \t]*kennfeld[ \t]*([a-zA-Z0-9_]+)/KF\1/f,kennfeld/
--regex-damos=/^[ \t]*kennfeld[ \t]*([a-zA-Z0-9_]+)/KF_\1/f,kennfeld/
--regex-damos=/^[ \t]*kennfeld[ \t]*([a-zA-Z0-9_]+)/F_\1/f,kennfeld/
--regex-damos=/^[ \t]*festkennfeld[ \t]*([a-zA-Z0-9_]+)/FKF_\1/f,kennfeld/
--regex-damos=/^[ \t]*gruppenkennfeld[ \t]*([a-zA-Z0-9_]+)/\1/f,kennfeld/
--regex-damos=/^[ \t]*gruppenkennfeld[ \t]*([a-zA-Z0-9_]+)/GKF\1/f,kennfeld/
--regex-damos=/^[ \t]*gruppenkennfeld[ \t]*([a-zA-Z0-9_]+)/GKF_\1/f,kennfeld/
--regex-damos=/^[ \t]*gruppenkennfeld[ \t]*([a-zA-Z0-9_]+)/F_\1/f,kennfeld/
--regex-damos=/^[ \t]*gruppenstuetzstellen[ \t]*([a-zA-Z0-9_]+)/\1/g,kennfeld/
--langdef=osp
--langmap=osp:.osp
--regex-osp=/^:OId=[0-9a-fA-F]+:Typ=Umr:Name=([a-zA-Z0-9_]+).*/\1/u,umrechnung/
--regex-osp=/^:OId=[0-9a-fA-F]+:Typ=CSy:Name=([a-zA-Z0-9_]+).*/\1/c,codesyntax/
--regex-osp=/^:OId=[0-9a-fA-F]+:Typ=Abl:Name=([a-zA-Z0-9_]+).*/\1/a,ablageschema/
--regex-osp=/^:OId=[0-9a-fA-F]+:Typ=AdS:Name=([a-zA-Z0-9_]+).*/\1/d,adressierschema/
--langmap=c:.c.h.d.dat.inv.mkinc -h .h.d.dat.inv.mkinc --c-types=+p

View File

@ -0,0 +1,293 @@
" File: tex.vim
" Type: compiler plugin for LaTeX
" Original Author: Artem Chuprina <ran@ran.pp.ru>
" Customization: Srinath Avadhanula <srinath@fastmail.fm>
" CVS: $Id: tex.vim 997 2006-03-20 09:45:45Z srinathava $
" Description: {{{
" This file sets the 'makeprg' and 'errorformat' options for the LaTeX
" compiler. It is customizable to optionally ignore certain warnings and
" provides the ability to set a dynamic 'ignore-warning' level.
"
" By default it is set up in a 'non-verbose', 'ignore-common-warnings' mode,
" which means that irrelevant lines from the compilers output will be
" ignored and also some very common warnings are ignored.
"
" Depending on the 'ignore-level', the following kinds of messages are
" ignored. An ignore level of 3 for instance means that messages 1-3 will be
" ignored. By default, the ignore level is set to 4.
"
" 1. LaTeX Warning: Specifier 'h' changed to 't'.
" This errors occurs when TeX is not able to correctly place a floating
" object at a specified location, because of which it defaulted to the
" top of the page.
" 2. LaTeX Warning: Underfull box ...
" 3. LaTeX Warning: Overfull box ...
" both these warnings (very common) are due to \hbox settings not being
" satisfied nicely.
" 4. LaTeX Warning: You have requested ...,
" This warning occurs in slitex when using the xypic package.
" 5. Missing number error:
" Usually, when the name of an included eps file is spelled incorrectly,
" then the \bb-error message is accompanied by a bunch of "missing
" number, treated as zero" error messages. This level ignores these
" warnings.
" NOTE: number 5 is actually a latex error, not a warning!
"
" Use
" TCLevel <level>
" where level is a number to set the ignore level dynamically.
"
" When TCLevel is called with the unquoted string strict
" TClevel strict
" then the 'efm' switches to a 'verbose', 'no-lines-ignored' mode which is
" useful when you want to make final checks of your document and want to be
" careful not to let things slip by.
"
" TIP: MikTeX has a bug where it sometimes erroneously splits a line number
" into multiple lines. i.e, if the warning is on line 1234. the compiler
" output is:
" LaTeX Warning: ... on input line 123
" 4.
" In this case, vim will wrongly interpret the line-number as 123 instead
" of 1234. If you have cygwin, a simple remedy around this is to first
" copy the file vimlatex (provided) into your $PATH, make sure its
" executable and then set the variable g:tex_flavor to vimlatex in your
" ~/.vimrc (i.e putting let "g:tex_flavor = 'vimlatex'" in your .vimrc).
" This problem occurs rarely enough that its not a botheration for most
" people.
"
" TODO:
" 1. menu items for dynamically selecting a ignore warning level.
" }}}
" avoid reinclusion for the same buffer. keep it buffer local so it can be
" externally reset in case of emergency re-sourcing.
if exists('b:doneTexCompiler') && !exists('b:forceRedoTexCompiler')
finish
endif
let b:doneTexCompiler = 1
" ==============================================================================
" Customization of 'efm': {{{
" This section contains the customization variables which the user can set.
" g:Tex_IgnoredWarnings: This variable contains a ¡ seperated list of
" patterns which will be ignored in the TeX compiler's output. Use this
" carefully, otherwise you might end up losing valuable information.
if !exists('g:Tex_IgnoredWarnings')
let g:Tex_IgnoredWarnings =
\'Underfull'."\n".
\'Overfull'."\n".
\'specifier changed to'."\n".
\'You have requested'."\n".
\'Missing number, treated as zero.'."\n".
\'There were undefined references'."\n".
\'Citation %.%# undefined'
endif
" This is the number of warnings in the g:Tex_IgnoredWarnings string which
" will be ignored.
if !exists('g:Tex_IgnoreLevel')
let g:Tex_IgnoreLevel = 7
endif
" There will be lots of stuff in a typical compiler output which will
" completely fall through the 'efm' parsing. This options sets whether or not
" you will be shown those lines.
if !exists('g:Tex_IgnoreUnmatched')
let g:Tex_IgnoreUnmatched = 1
endif
" With all this customization, there is a slight risk that you might be
" ignoring valid warnings or errors. Therefore before getting the final copy
" of your work, you might want to reset the 'efm' with this variable set to 1.
" With that value, all the lines from the compiler are shown irrespective of
" whether they match the error or warning patterns.
" NOTE: An easier way of resetting the 'efm' to show everything is to do
" TCLevel strict
if !exists('g:Tex_ShowallLines')
let g:Tex_ShowallLines = 0
endif
" }}}
" ==============================================================================
" Customization of 'makeprg': {{{
" There are several alternate ways in which 'makeprg' is set up.
"
" Case 1
" ------
" The first is when this file is a part of latex-suite. In this case, a
" variable called g:Tex_DefaultTargetFormat exists, which gives the default
" format .tex files should be compiled into. In this case, we use the TTarget
" command provided by latex-suite.
"
" Case 2
" ------
" The user is using this file without latex-suite AND he wants to directly
" specify the complete 'makeprg'. Then he should set the g:Tex_CompileRule_dvi
" variable. This is a string which should be directly be able to be cast into
" &makeprg. An example of one such string is:
"
" g:Tex_CompileRule_dvi = 'pdflatex \\nonstopmode \\input\{$*\}'
"
" NOTE: You will need to escape back-slashes, {'s etc yourself if you are
" using this file independently of latex-suite.
" TODO: Should we also have a check for backslash escaping here based on
" platform?
"
" Case 3
" ------
" The use is using this file without latex-suite and he doesnt want any
" customization. In this case, this file makes some intelligent guesses based
" on the platform. If he doesn't want to specify the complete 'makeprg' but
" only the name of the compiler program (for example 'pdflatex' or 'latex'),
" then he sets b:tex_flavor or g:tex_flavor.
if exists('g:Tex_DefaultTargetFormat')
exec 'TTarget '.g:Tex_DefaultTargetFormat
elseif exists('g:Tex_CompileRule_dvi')
let &l:makeprg = g:Tex_CompileRule_dvi
else
" If buffer-local variable 'tex_flavor' exists, it defines TeX flavor,
" otherwize the same for global variable with same name, else it will be LaTeX
if exists("b:tex_flavor")
let current_compiler = b:tex_flavor
elseif exists("g:tex_flavor")
let current_compiler = g:tex_flavor
else
let current_compiler = "latex"
end
if has('win32')
let escChars = ''
else
let escChars = '{}\'
endif
" Furthermore, if 'win32' is detected, then we want to set the arguments up so
" that miktex can handle it.
if has('win32')
let options = '--src-specials'
else
let options = ''
endif
let &l:makeprg = current_compiler . ' ' . options .
\ escape(' \nonstopmode \input{$*}', escChars)
endif
" }}}
" ==============================================================================
" Functions for setting up a customized 'efm' {{{
" IgnoreWarnings: parses g:Tex_IgnoredWarnings for message customization {{{
" Description:
function! <SID>IgnoreWarnings()
let i = 1
while s:Strntok(g:Tex_IgnoredWarnings, "\n", i) != '' &&
\ i <= g:Tex_IgnoreLevel
let warningPat = s:Strntok(g:Tex_IgnoredWarnings, "\n", i)
let warningPat = escape(substitute(warningPat, '[\,]', '%\\\\&', 'g'), ' ')
exe 'setlocal efm+=%-G%.%#'.warningPat.'%.%#'
let i = i + 1
endwhile
endfunction
" }}}
" SetLatexEfm: sets the 'efm' for the latex compiler {{{
" Description:
function! <SID>SetLatexEfm()
let pm = ( g:Tex_ShowallLines == 1 ? '+' : '-' )
set efm=
if !g:Tex_ShowallLines
call s:IgnoreWarnings()
endif
setlocal efm+=%E!\ LaTeX\ %trror:\ %m
setlocal efm+=%E!\ %m
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#
setlocal efm+=%+W%.%#\ at\ lines\ %l--%*\\d
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %m
exec 'setlocal efm+=%'.pm.'Cl.%l\ %m'
exec 'setlocal efm+=%'.pm.'Cl.%l\ '
exec 'setlocal efm+=%'.pm.'C\ \ %m'
exec 'setlocal efm+=%'.pm.'C%.%#-%.%#'
exec 'setlocal efm+=%'.pm.'C%.%#[]%.%#'
exec 'setlocal efm+=%'.pm.'C[]%.%#'
exec 'setlocal efm+=%'.pm.'C%.%#%[{}\\]%.%#'
exec 'setlocal efm+=%'.pm.'C<%.%#>%m'
exec 'setlocal efm+=%'.pm.'C\ \ %m'
exec 'setlocal efm+=%'.pm.'GSee\ the\ LaTeX%m'
exec 'setlocal efm+=%'.pm.'GType\ \ H\ <return>%m'
exec 'setlocal efm+=%'.pm.'G\ ...%.%#'
exec 'setlocal efm+=%'.pm.'G%.%#\ (C)\ %.%#'
exec 'setlocal efm+=%'.pm.'G(see\ the\ transcript%.%#)'
exec 'setlocal efm+=%'.pm.'G\\s%#'
exec 'setlocal efm+=%'.pm.'O(%*[^()])%r'
exec 'setlocal efm+=%'.pm.'P(%f%r'
exec 'setlocal efm+=%'.pm.'P\ %\\=(%f%r'
exec 'setlocal efm+=%'.pm.'P%*[^()](%f%r'
exec 'setlocal efm+=%'.pm.'P(%f%*[^()]'
exec 'setlocal efm+=%'.pm.'P[%\\d%[^()]%#(%f%r'
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
setlocal efm+=%-P%*[^()]
endif
exec 'setlocal efm+=%'.pm.'Q)%r'
exec 'setlocal efm+=%'.pm.'Q%*[^()])%r'
exec 'setlocal efm+=%'.pm.'Q[%\\d%*[^()])%r'
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
setlocal efm+=%-Q%*[^()]
endif
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
setlocal efm+=%-G%.%#
endif
endfunction
" }}}
" Strntok: extract the n^th token from a list {{{
" example: Strntok('1,23,3', ',', 2) = 23
fun! <SID>Strntok(s, tok, n)
return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}')
endfun
" }}}
" SetTexCompilerLevel: sets the "level" for the latex compiler {{{
function! <SID>SetTexCompilerLevel(...)
if a:0 > 0
let level = a:1
else
call Tex_ResetIncrementNumber(0)
echo substitute(g:Tex_IgnoredWarnings,
\ '^\|\n\zs\S', '\=Tex_IncrementNumber(1)." ".submatch(0)', 'g')
let level = input("\nChoose an ignore level: ")
if level == ''
return
endif
endif
if level == 'strict'
let g:Tex_ShowallLines = 1
elseif level =~ '^\d\+$'
let g:Tex_ShowallLines = 0
let g:Tex_IgnoreLevel = level
else
echoerr "SetTexCompilerLevel: Unkwown option [".level."]"
end
call s:SetLatexEfm()
endfunction
com! -nargs=? TCLevel :call <SID>SetTexCompilerLevel(<f-args>)
" }}}
" }}}
" ==============================================================================
call s:SetLatexEfm()
if !exists('*Tex_Debug')
function! Tex_Debug(...)
endfunction
endif
call Tex_Debug("compiler/tex.vim: sourcing this file", "comp")
" vim: fdm=marker:commentstring=\ \"\ %s

View File

@ -0,0 +1,116 @@
IMAP -- A fluid replacement for :imap
*imaps.txt*
Srinath Avadhanula <srinath AT fastmail DOT fm>
Abstract
========
This plugin provides a function IMAP() which emulates vims |:imap| function. The
motivation for providing this plugin is that |:imap| suffers from problems
which get increasingly annoying with a large number of mappings.
Consider an example. If you do >
imap lhs something
then a mapping is set up. However, there will be the following problems:
1. The 'ttimeout' option will generally limit how easily you can type the lhs.
if you type the left hand side too slowly, then the mapping will not be
activated.
2. If you mistype one of the letters of the lhs, then the mapping is deactivated
as soon as you backspace to correct the mistake.
3. The characters in lhs are shown on top of each other. This is fairly
distracting. This becomes a real annoyance when a lot of characters initiate
mappings.
This script provides a function IMAP() which does not suffer from these
problems.
*imaps.txt-toc*
|im_1| Using IMAP
================================================================================
Viewing this file
This file can be viewed with all the sections and subsections folded to ease
navigation. By default, vim does not fold help documents. To create the folds,
press za now. The folds are created via a foldexpr which can be seen in the
last section of this file.
See |usr_28.txt| for an introduction to folding and |fold-commands| for key
sequences and commands to work with folds.
================================================================================
Using IMAP *im_1* *imaps-usage*
Each call to IMAP is made using the syntax: >
call IMAP (lhs, rhs, ft [, phs, phe])
This is equivalent to having <lhs> map to <rhs> for all files of type <ft>.
Some characters in the <rhs> have special meaning which help in cursor placement
as described in |imaps-placeholders|. The optional arguments define these
special characters.
Example One: >
call IMAP ("bit`", "\\begin{itemize}\<cr>\\item <++>\<cr>\\end{itemize}<++>", "tex")
This effectively sets up the map for "bit`" whenever you edit a latex file. When
you type in this sequence of letters, the following text is inserted: >
\begin{itemize}
\item *
\end{itemize}<++>
where * shows the cursor position. The cursor position after inserting the text
is decided by the position of the first "place-holder". Place holders are
special characters which decide cursor placement and movement. In the example
above, the place holder characters are <+ and +>. After you have typed in the
item, press <C-j> and you will be taken to the next set of <++>'s. Therefore by
placing the <++> characters appropriately, you can minimize the use of movement
keys.
Set g:Imap_UsePlaceHolders to 0 to disable placeholders altogether.
Set g:Imap_PlaceHolderStart and g:Imap_PlaceHolderEnd to something else if you
want different place holder characters. Also, b:Imap_PlaceHolderStart and
b:Imap_PlaceHolderEnd override the values of g:Imap_PlaceHolderStart and
g:Imap_PlaceHolderEnd respectively. This is useful for setting buffer specific
place holders.
Example Two: You can use the <C-r> command to insert dynamic elements such as
dates. >
call IMAP ('date`', "\<c-r>=strftime('%b %d %Y')\<cr>", '')
With this mapping, typing date` will insert the present date into the file.
================================================================================
About this file
This file was created automatically from its XML variant using db2vim. db2vim is
a python script which understands a very limited subset of the Docbook XML 4.2
DTD and outputs a plain text file in vim help format.
db2vim can be obtained via anonymous CVS from sourceforge.net. Use
cvs -d:pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex co db2vim
Or you can visit the web-interface to sourceforge CVS at:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/db2vim/
The following modelines should nicely fold up this help manual.
vim:ft=help:fdm=expr:nowrap
vim:foldexpr=getline(v\:lnum-1)=~'-\\{80}'?'>2'\:getline(v\:lnum-1)=~'=\\{80}'?'>1'\:getline(v\:lnum)=~'=\\{80}'?'0'\:getline(v\:lnum)=~'-\\{80}'?'1'\:'='
vim:foldtext=substitute(v\:folddashes.substitute(getline(v\:foldstart),'\\s*\\*.*',"",""),'^--','--\ \ \ \ ','')
================================================================================

View File

@ -0,0 +1,448 @@
A (very) quick introduction to Latex-Suite
*latex-suite-quickstart.txt*
Srinath Avadhanula <srinath AT fastmail DOT fm>
Abstract
========
Latex-Suite is a comprehensive set of scripts to aid in editing, compiling and
viewing LaTeX documents. A thorough explanation of the full capabilities of
Latex-Suite is described in the user manual. This guide on the other hand,
provides a quick 30-45 minute running start to some of the more commonly used
functionalities of Latex-Suite.
*latex-suite-quickstart.txt-toc*
|lq_1| Using this tutorial
|lq_2| Inserting a template
|lq_3| Inserting a package
|lq_4| Inserting an Environment
|lq_5| A few keyboard shortcuts
|lq_6| Folding in Latex-Suite
|lq_7| Inserting a Reference
|lq_8| Compiling a document
|lq_8_1| Debugging LaTeX source files
|lq_9| Viewing DVI files
|lq_9_1| Performing forward searches
|lq_9_2| Performing inverse searches
|lq_10| Conclusions
================================================================================
Viewing this file
This file can be viewed with all the sections and subsections folded to ease
navigation. By default, vim does not fold help documents. To create the folds,
press za now. The folds are created via a foldexpr which can be seen in the
last section of this file.
See |usr_28.txt| for an introduction to folding and |fold-commands| for key
sequences and commands to work with folds.
================================================================================
Using this tutorial *lq_1* *lq_a_bc*
*lsq-using-tutorial*
This tutorial assumes that you have vim version 6.1+ installed on your machine.
To check, open vim and type >
:ver
You will see the version in the first line of the output. Get the latest vim
version from http://vim.sf.net |lq_u_1|.
Assuming you have Vim 6.1+ already up and running, follow the instructions here
|lq_u_2| to set up Latex-Suite. Remember to make sure your 'grepprg' setting of
Vim works.
Good, now you are all set to start the tutorial. Since this tutorial aims to
explain the newbie-friendly version of Latex-Suite, it needs some GUI
functionality. Therefore, at least for this tutorial, open the gui version of
vim. (On MS windows, this is the default). Open up this help file in either the
same gvim session in a split window or in a different session and follow the
(friendly) instructions.
================================================================================
Inserting a template *lq_2* *lq_a_bd*
*lsq-inserting-template*
Start up gvim and begin editing a new file. >
e newfile.tex
If the installation went well, you should see a new set of menus appear. Goto
Tex-Suite > Templates. You will see a number of templates to choose from. For
now, choose to insert a template for an article. You should get the following in
the main vim window (after possibly a hit-enter prompt). >
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Sun Jun 22 04:00 PM 2003 P
4 %
5 \documentclass[a4paper]{article}
6 \begin{document}
7
8 \end{document}
9
10 ~
11 ~
12 ~
13 ~
-- INSERT -- 7,1 All
The cursor is left on line 7 (just after the \begin{document} line) from where
you can start typing straight away. Trying to lessen movement is a recurring
theme in Latex-Suite.
================================================================================
Inserting a package *lq_3* *lq_a_be*
*lsq-lsq-inserting-package*
Assume that we are writing a mathematical paper and we want to use the popular
amsmath package. We will use some functionality which Latex-Suite provides
specifically for including LaTeX packages, providing options etc. Navigate to
before the \begin{document} line (The portion of the document before the
\begin{document} is called the _preamble_ in LaTeX). On an empty line in the
preamble, type the single word amsmath and then press <F5> in normal mode. The
line will change to >
\usepackage[]{amsmath}<++>
with the cursor positioned conviniently between the []'s. For now, do not worry
about the trailing <++> at the end of this line. Assume we want to provide the
sumlimits options to amsmath. You can either type in this option manually, or
choose from a menu of package options which Latex-Suite automatically creates
when you insert a package using <F5>. With the cursor still placed between the
[], goto TeX-Suite > Packages > amsmath Options. Choose the sumlimits option.
The package line should get converted to: >
\usepackage[sumlimits,]{amsmath}<++>
with the cursor before ]. Press <C-j> in insert mode. You will see the cursor
jump to the end of the package line and the trailing <++> will dissapear. What
just happened?! You had your first taste of _Placeholders_. Read more about them
(later) here |lq_u_3|. In short, pressing <C-j> in insert mode takes you to the
next <++> in the text.
================================================================================
Inserting an Environment *lq_4* *lq_a_bf*
*lsq-insert-environment*
Now let us type in a simple formula in LaTeX. Move back to the body of the
document (The portion of the document between \begin{document} and
\end{document} is called the body). Type in a few simple sentences and then on
an empty line, type the single word eqnarray. Escape to normal mode and press
<F5>. (Remember: <F5> is very useful!) This time, the line will change to: >
\begin{eqnarray}
\label{}<++>
\end{eqnarray}<++>
<with the cursor between the {}. Enter a label. We will use eqn:euler. After
typing in eqn:euler, press <C-j>. This will take you outside the curly-braces.
Another time you used a Placeholder!
================================================================================
A few keyboard shortcuts *lq_5* *lq_a_bg*
*lsq-keyboard-shortcuts*
Now to type in the famous Euler formula. Our aim is to type >
e^{j\pi} + 1 &=& 0
Instead of typing this blindly, let us use a few shortcuts to reduce movement.
Start out by typing e^. Now instead of typing {, type another ^. You will see
the e^^ change instantly to e^{}<++> with the cursor between {}'s. (The ^^
changed to ^{}<++>.) Continue with the following sequence of letters: j`p. This
will change instantly to j\pi. (The `p changed to \pi.) Having typed in all we
need to type between the {}'s, press <C-j>. You will pop back out of the
curly-braces. Continue typing the rest of the formula. You can use == as a
shortcut for &=&. Latex-Suite provides a large number of such shortcuts which
should making typing much more fun and fast if you get acquainted with them. A
list is provided here |lq_u_4|. Definitely spend some time getting a feel for
them. Most of them are pretty intuitive like `/ for \frac{}{}, `8 for \infty
etc.
In order to understand the next section better, it will be helpful to have one
more \label. Lets use the handy <F5> key to insert another equation. This time
something simple like the following will do: >
\begin{eqnarray}
\label{eqn:simple}
1 + 1 = 2
\end{eqnarray}
================================================================================
Folding in Latex-Suite *lq_6* *lq_a_bh* *lsq-folding*
Okay, we have typed enough. At this stage, hopefully, your file is looking
something like this: >
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Mon Dec 15 07:00 PM 2003
4 %
5 \documentclass[a4paper]{article}
6
7 \usepackage[sumlimits,]{amsmath}
8
9 \begin{document}
10 \begin{eqnarray}
11 \label{eqn:euler}
12 e^{j\pi} + 1 &=& 0
13 \end{eqnarray}
14 This is the famous euler equation. I
15 will type another equation, just as
16 true:
17 \begin{eqnarray}
18 \label{eqn:simple}
19 1 + 1 &=& 2
20 \end{eqnarray}
21 This is my contribution to mathematics.
22 \end{document}
In normal mode, press \rf. This will fold up the entire file and you should see
the file looking as below: >
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Mon Dec 15 07:00 PM 2003
4 %
5 +-- 4 lines: Preamble: \documentclass[a4paper]{article} -----
9 \begin{document}
10 +-- 4 lines: eqnarray (eqn:euler) \label{eqn:euler} -----------
14 This is the famous euler equation. I
15 will type another equation, just as
16 true:
10 +-- 4 lines: eqnarray (eqn:simple) \label{eqn:simple} ---------
21 This is my contribution to mathematics.
22 \end{document}
What has happened is that Latex-Suite folded away blocks of LaTeX code into
folded regions. You can open and close folds by using the command za in normal
mode.
================================================================================
Inserting a Reference *lq_7* *lq_a_bi*
*lsq-inserting-reference*
A necessary part of LaTeX editing is referencing equations, figures,
bibliographic entries etc. This is done with the \ref and the \cite commands.
Latex-Suite provides an easy way to do this. Somewhere in the body of the
document, type in the following sentence >
This is a reference to (\ref{}).
With the cursor between the {} press <F9> in insert mode. Your vim session will
sprout two new windows and it should look like below: >
9 \begin{document}
10 +-- 4 lines: eqnarray (eqn:euler) : \label{eqn:euler}-----------------------
14 This is the famous euler equation. I
15 will type another equation, just as
16 true:
17 +-- 4 lines: eqnarray (eqn:simple) : \label{eqn:simple}---------------------
21 This is my contribution to mathematics.
22 This is a reference to (\ref{}&lt;++&gt;)&lt;++&gt;
23 \end{document}
~
~
~
test.tex [+] 22,29 Bot
test.tex|11| \label{eqn:euler}
test.tex|18| \label{eqn:simple}
~
~
~
[Error List] 1,1 All
7 \usepackage[sumlimits,]{amsmath}
8
9 \begin{document}
10 \begin{eqnarray}
11 \label{eqn:euler}
12 e^{j\pi} + 1 &=& 0
13 \end{eqnarray}
14 This is the famous euler equation. I
15 will type another equation, just as
16 true:
test.tex [Preview][+] 11,2-5 46%
The cursor will relocate to the middle window which shows all \labels found in
all the .tex file in the current directory. You can scroll up and down in the
middle window till you reach the reference you want to insert. Notice how when
you scroll in the middle window, the bottom "Preview" window scrolls
automatically to show you the location of the current selection. This helps you
identify the reference with greater ease because often times, \labels are not
descriptive enough or there might be too many of them. To insert the reference,
just position the cursor on the relevant line in the middle window and press
<enter>. The line which you were editing will change to: >
This is a reference to (\ref{eqn:euler})
<and the bottom windows close automatically.
The <F9> key also works for inserting \cite commands to reference bibliographich
entries, inserting file names for the \inputgraphics command and just plain
searching for words. Click here |lq_u_5| for more information.
================================================================================
Compiling a document *lq_8* *lq_a_bj*
*lsq-compiling*
|lq_8_1| Debugging LaTeX source files
Great! We have just created a small latex file. The next step is to make the
latex compiler create a .dvi file from it. Compiling via latex-suite is simple.
Goto normal mode and press \ll (replace \ with whatever mapleader setting you
have). This will call the latex compiler. If all goes well, then the focus
should return to the vim window.
Nothing happend? Ouch! You might need to do some additional settings as
described here. |lq_u_6|
--------------------------------------------------------------------------------
Debugging LaTeX source files *lq_8_1* *lq_a_bk*
*lsq-debugging*
To illustrate the debugging procedure, let's create a few mistakes in the file.
Insert the following ``mistakes'' in the file: >
This is a $\mistake$.
And this is $\another$
Now press \ll again. This time you will notice that after compilation finishes,
the cursor automatically lands on $\mistake$. In addition, 2 new windows will
appear as shown here:
The middle window is an _Error List_ window showing you the errors which the
latex compiler found. Th bottom window is a _Log Preview_ window, which shows
you the context of the error made by displaying the relevant portion of the .log
file created during the latex compilation procedure. Jump to the _Error List_
window and try scrolling around in it using either the j, k keys or the arrow
keys. You will notice that the _Log Preview_ window scrolls automatically to
retain the context of the error you are currently located on. If you press
<enter> on any line, you will see the cursor jump to the location of the error.
Latex-Suite tries to guess the column location as best as it can so you can
continue typing straight away.
Having got a taste for compiling, proceed by deleting the erroneous lines and
re-compiling.
The Latex-Suite compiler is capable of much more including selectively filtering
out common errors which you might want to ignore for the moment, compiling parts
of a document, setting levels of verbosity in the compiler output etc. See here
|lq_u_7| for more.
================================================================================
Viewing DVI files *lq_9* *lq_a_bl*
*lsq-viewing-dvi*
|lq_9_1| Performing forward searches
|lq_9_2| Performing inverse searches
Now that you have compiled your first latex source, its time to view it. Again,
this should be pretty simple. Press \lv in normal mode. Depending on your
platform, a DVI viewer program should open up and display the dvi file generated
in compilation step previously.
Nothing happend? Ouch! You might need to do some additional settings as
described here. |lq_u_8|
--------------------------------------------------------------------------------
Performing forward searches *lq_9_1* *lq_a_bm*
*lsq-quick-forward-searching*
If you are using a modern DVI viewer, then it is possible to do what is called
forward and inverse searching. However, you will need to customize the standard
Latex-Suite distribution in order to utilize this functionality. Type in the
following on the command line: >
:let g:Tex_CompileRule_dvi = 'latex -src-specials -interaction=nonstopmode $*'
:TCTarget dvi
Now recompile the latex file by pressing \ll. This time, instead of pressing \lv
to view the file, press \ls from within the tex file. If the DVI viewer supports
forward searching (most of them do), then the viewer will actually display the
portion of the DVI file corresponding to the location where you were editing the
tex file.
NOTE: The reason Latex-Suite does not have this setting by default is that on
some systems this causes unpredictable results in the DVI output. If you
find the DVI output satisfactory, then you can insert the first of the 2
lines above into your $VIM/ftplugin/tex.vim file. $VIM is ~/vimfiles for
windows and ~/.vim for *nix machines.
--------------------------------------------------------------------------------
Performing inverse searches *lq_9_2* *lq_a_bn*
*lsq-quick-inverse-searching*
Most DVI viewers also support inverse searching, whereby you can make the DVI
viewer ask vim to display the tex source corresponding to the DVI file being
shown. This is extremeley helpful while proofreading large documents.
Simply double-click anywhere in the viewer window. If the viewer supports it,
then it will attempt to open an editor window at the location corresponding to
where you double-clicked. On *nix platforms, Latex-Suite attempts to start the
viewer program in such a way that it already knows to use vim to open the tex
source. Thus you should see a vim window open up showing the tex file. However,
if there is an error, or some other program is used, you will need to tell the
viewer program to use gvim as the editor. On windows platforms, if you use the
commonly available yap viewer (available as part of the miktex distribution),
then this option can be set from View > Options > Inverse Search. In the Command
line: window, write >
"C:\Program Files\vim\vim61\gvim" -c ":RemoteOpen +%l %f"
(Customize the path according to where you have installed gvim). If you double
click in the view pane now, you will see gvim start up and take you to the
relevant portion of the tex file.
================================================================================
Conclusions *lq_10* *lq_a_bo*
*lsq-conclusions*
Thats all folks! By now, you should know enough of the basic functions of
latex-suite. Ofcourse, latex-suite is capable of much, much more such as
compiling files multiple times to resolve changed labels, compiling
dependencies, handling user packages and more. To get a feel for that, you will
need to take a look at the Latex-Suite user manual. |lq_u_9|
================================================================================
URLs used in this file
*lq_u_1* : http://vim.sf.net
*lq_u_2* : http://vim-latex.sourceforge.net/index.php?subject=download&title=Download
*lq_u_3* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-macros.html
*lq_u_4* : http://vim-latex.sourceforge.net/documentation/latex-suite/auc-tex-mappings.html
*lq_u_5* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-completion.html
*lq_u_6* : http://vim-latex.sourceforge.net/index.php?subject=faq&title=FAQ#faq-2
*lq_u_7* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-compiling.html
*lq_u_8* : http://vim-latex.sourceforge.net/index.php?subject=faq&title=FAQ#faq-3
*lq_u_9* : http://vim-latex.sourceforge.net/index.php?subject=manual&title=Manual#user-manual
================================================================================
About this file
This file was created automatically from its XML variant using db2vim. db2vim is
a python script which understands a very limited subset of the Docbook XML 4.2
DTD and outputs a plain text file in vim help format.
db2vim can be obtained via anonymous CVS from sourceforge.net. Use
cvs -d:pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex co db2vim
Or you can visit the web-interface to sourceforge CVS at:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/db2vim/
The following modelines should nicely fold up this help manual.
vim:ft=help:fdm=expr:nowrap
vim:foldexpr=getline(v\:lnum-1)=~'-\\{80}'?'>2'\:getline(v\:lnum-1)=~'=\\{80}'?'>1'\:getline(v\:lnum)=~'=\\{80}'?'0'\:getline(v\:lnum)=~'-\\{80}'?'1'\:'='
vim:foldtext=substitute(v\:folddashes.substitute(getline(v\:foldstart),'\\s*\\*.*',"",""),'^--','\ \ \ \ \ \ ','')
================================================================================

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

905
vimfiles.latex/doc/tags Normal file
View File

@ -0,0 +1,905 @@
Alph latexhelp.txt /*Alph*
Alt-B latex-suite.txt /*Alt-B*
Alt-C latex-suite.txt /*Alt-C*
Alt-I latex-suite.txt /*Alt-I*
Alt-L latex-suite.txt /*Alt-L*
BibTeX latexhelp.txt /*BibTeX*
IMAP_PutTextWithMovement latex-suite.txt /*IMAP_PutTextWithMovement*
Imap_DeleteEmptyPlaceHolders latex-suite.txt /*Imap_DeleteEmptyPlaceHolders*
Imap_FreezeImap latex-suite.txt /*Imap_FreezeImap*
Imap_PlaceHolderEnd latex-suite.txt /*Imap_PlaceHolderEnd*
Imap_PlaceHolderStart latex-suite.txt /*Imap_PlaceHolderStart*
Imap_StickyPlaceHolders latex-suite.txt /*Imap_StickyPlaceHolders*
Imap_UsePlaceHolders latex-suite.txt /*Imap_UsePlaceHolders*
LaTeX latexhelp.txt /*LaTeX*
Plug_IMAP_DeleteAndJumBack latex-suite.txt /*Plug_IMAP_DeleteAndJumBack*
Plug_IMAP_DeleteAndJumpForward latex-suite.txt /*Plug_IMAP_DeleteAndJumpForward*
Plug_IMAP_JumpBack latex-suite.txt /*Plug_IMAP_JumpBack*
Plug_IMAP_JumpForward latex-suite.txt /*Plug_IMAP_JumpForward*
Plug_Tex_InsertItem latex-suite.txt /*Plug_Tex_InsertItem*
Plug_Tex_LeftRight latex-suite.txt /*Plug_Tex_LeftRight*
Plug_Tex_MathBF latex-suite.txt /*Plug_Tex_MathBF*
Plug_Tex_MathCal latex-suite.txt /*Plug_Tex_MathCal*
Roman latexhelp.txt /*Roman*
TClearCiteHist latex-suite.txt /*TClearCiteHist*
TLook latex-suite.txt /*TLook*
TLookAll latex-suite.txt /*TLookAll*
TLookBib latex-suite.txt /*TLookBib*
TMacro latex-suite.txt /*TMacro*
TMacroDelete latex-suite.txt /*TMacroDelete*
TMacroEdit latex-suite.txt /*TMacroEdit*
TMacroNew latex-suite.txt /*TMacroNew*
TPackage latex-suite.txt /*TPackage*
TPackageUpdate latex-suite.txt /*TPackageUpdate*
TPackageUpdateAll latex-suite.txt /*TPackageUpdateAll*
TPartComp latex-suite.txt /*TPartComp*
TPartView latex-suite.txt /*TPartView*
TSection latex-suite.txt /*TSection*
TSectionAdvanced latex-suite.txt /*TSectionAdvanced*
TTemplate latex-suite.txt /*TTemplate*
Tex_AutoFolding latex-suite.txt /*Tex_AutoFolding*
Tex_BIBINPUTS latex-suite.txt /*Tex_BIBINPUTS*
Tex_CatchVisMapErrors latex-suite.txt /*Tex_CatchVisMapErrors*
Tex_Com_name latex-suite.txt /*Tex_Com_name*
Tex_CompileRule_format latex-suite.txt /*Tex_CompileRule_format*
Tex_Debug latex-suite.txt /*Tex_Debug*
Tex_DefaultTargetFormat latex-suite.txt /*Tex_DefaultTargetFormat*
Tex_Diacritics latex-suite.txt /*Tex_Diacritics*
Tex_Env_name latex-suite.txt /*Tex_Env_name*
Tex_EnvironmentMaps latex-suite.txt /*Tex_EnvironmentMaps*
Tex_EnvironmentMenus latex-suite.txt /*Tex_EnvironmentMenus*
Tex_ExplorerHeight latex-suite.txt /*Tex_ExplorerHeight*
Tex_FoldedCommands latex-suite.txt /*Tex_FoldedCommands*
Tex_FoldedEnvironments latex-suite.txt /*Tex_FoldedEnvironments*
Tex_FoldedMisc latex-suite.txt /*Tex_FoldedMisc*
Tex_FoldedSections latex-suite.txt /*Tex_FoldedSections*
Tex_Folding latex-suite.txt /*Tex_Folding*
Tex_FontMaps latex-suite.txt /*Tex_FontMaps*
Tex_FontMenus latex-suite.txt /*Tex_FontMenus*
Tex_GotoError latex-suite.txt /*Tex_GotoError*
Tex_HotKeyMappings latex-suite.txt /*Tex_HotKeyMappings*
Tex_IgnoreLevel latex-suite.txt /*Tex_IgnoreLevel*
Tex_IgnoredWarnings latex-suite.txt /*Tex_IgnoredWarnings*
Tex_ImageDir latex-suite.txt /*Tex_ImageDir*
Tex_ItemStyle_environment latex-suite.txt /*Tex_ItemStyle_environment*
Tex_Leader latex-suite.txt /*Tex_Leader*
Tex_Leader2 latex-suite.txt /*Tex_Leader2*
Tex_MainFileExpression latex-suite.txt /*Tex_MainFileExpression*
Tex_MainMenuLocation latex-suite.txt /*Tex_MainMenuLocation*
Tex_MathMenus latex-suite.txt /*Tex_MathMenus*
Tex_Menus latex-suite.txt /*Tex_Menus*
Tex_MultipleCompileFormats latex-suite.txt /*Tex_MultipleCompileFormats*
Tex_NestElementMenus latex-suite.txt /*Tex_NestElementMenus*
Tex_NestPackagesMenu latex-suite.txt /*Tex_NestPackagesMenu*
Tex_PackagesMenu latex-suite.txt /*Tex_PackagesMenu*
Tex_ProjectSourceFiles latex-suite.txt /*Tex_ProjectSourceFiles*
Tex_PromptedCommands latex-suite.txt /*Tex_PromptedCommands*
Tex_PromptedEnvironments latex-suite.txt /*Tex_PromptedEnvironments*
Tex_RememberCiteSearch latex-suite.txt /*Tex_RememberCiteSearch*
Tex_SectionMaps latex-suite.txt /*Tex_SectionMaps*
Tex_SectionMenus latex-suite.txt /*Tex_SectionMenus*
Tex_SmartKeyBS latex-suite.txt /*Tex_SmartKeyBS*
Tex_SmartKeyQuote latex-suite.txt /*Tex_SmartKeyQuote*
Tex_TEXINPUTS latex-suite.txt /*Tex_TEXINPUTS*
Tex_UseMakefile latex-suite.txt /*Tex_UseMakefile*
Tex_UseMenuWizard latex-suite.txt /*Tex_UseMenuWizard*
Tex_UsePython latex-suite.txt /*Tex_UsePython*
Tex_UseSimpleLabelSearch latex-suite.txt /*Tex_UseSimpleLabelSearch*
Tex_UseUtfMenus latex-suite.txt /*Tex_UseUtfMenus*
Tex_ViewRuleComplete_format latex-suite.txt /*Tex_ViewRuleComplete_format*
Tex_ViewRule_format latex-suite.txt /*Tex_ViewRule_format*
Tex_ViewerCwindowHeight latex-suite.txt /*Tex_ViewerCwindowHeight*
Tex_ViewerPreviewHeight latex-suite.txt /*Tex_ViewerPreviewHeight*
Tshortcuts latex-suite.txt /*Tshortcuts*
\Alph latexhelp.txt /*\\Alph*
\Huge latexhelp.txt /*\\Huge*
\LARGE latexhelp.txt /*\\LARGE*
\Large latexhelp.txt /*\\Large*
\Roman latexhelp.txt /*\\Roman*
\\ latexhelp.txt /*\\\\*
\\\\ latexhelp.txt /*\\\\\\\\*
\addcontentsline latexhelp.txt /*\\addcontentsline*
\address latexhelp.txt /*\\address*
\addtocontents latexhelp.txt /*\\addtocontents*
\addtocounter latexhelp.txt /*\\addtocounter*
\addtolength latexhelp.txt /*\\addtolength*
\addvspace latexhelp.txt /*\\addvspace*
\alph latexhelp.txt /*\\alph*
\and latexhelp.txt /*\\and*
\appendix latexhelp.txt /*\\appendix*
\arabic latexhelp.txt /*\\arabic*
\author latexhelp.txt /*\\author*
\begin latexhelp.txt /*\\begin*
\bfseries latexhelp.txt /*\\bfseries*
\bibitem latexhelp.txt /*\\bibitem*
\bibliography latexhelp.txt /*\\bibliography*
\bibliographystyle latexhelp.txt /*\\bibliographystyle*
\bigskip latexhelp.txt /*\\bigskip*
\cc latexhelp.txt /*\\cc*
\cdots latexhelp.txt /*\\cdots*
\centering latexhelp.txt /*\\centering*
\chapter latexhelp.txt /*\\chapter*
\circle latexhelp.txt /*\\circle*
\cite latexhelp.txt /*\\cite*
\cleardoublepage latexhelp.txt /*\\cleardoublepage*
\clearpage latexhelp.txt /*\\clearpage*
\cline latexhelp.txt /*\\cline*
\closing latexhelp.txt /*\\closing*
\dashbox latexhelp.txt /*\\dashbox*
\date latexhelp.txt /*\\date*
\ddots latexhelp.txt /*\\ddots*
\depth latexhelp.txt /*\\depth*
\documentclass latexhelp.txt /*\\documentclass*
\dotfill latexhelp.txt /*\\dotfill*
\emph latexhelp.txt /*\\emph*
\end latexhelp.txt /*\\end*
\enlargethispage latexhelp.txt /*\\enlargethispage*
\fbox latexhelp.txt /*\\fbox*
\flushbottom latexhelp.txt /*\\flushbottom*
\fnsymbol latexhelp.txt /*\\fnsymbol*
\fontencoding latexhelp.txt /*\\fontencoding*
\fontfamily latexhelp.txt /*\\fontfamily*
\fontseries latexhelp.txt /*\\fontseries*
\fontshape latexhelp.txt /*\\fontshape*
\fontsize latexhelp.txt /*\\fontsize*
\footnote latexhelp.txt /*\\footnote*
\footnotemark latexhelp.txt /*\\footnotemark*
\footnotesize latexhelp.txt /*\\footnotesize*
\footnotetext latexhelp.txt /*\\footnotetext*
\frac latexhelp.txt /*\\frac*
\frame latexhelp.txt /*\\frame*
\framebox latexhelp.txt /*\\framebox*
\fussy latexhelp.txt /*\\fussy*
\height latexhelp.txt /*\\height*
\hfill latexhelp.txt /*\\hfill*
\hline latexhelp.txt /*\\hline*
\hrulefill latexhelp.txt /*\\hrulefill*
\hspace latexhelp.txt /*\\hspace*
\huge latexhelp.txt /*\\huge*
\hyphenation latexhelp.txt /*\\hyphenation*
\include latexhelp.txt /*\\include*
\includeonly latexhelp.txt /*\\includeonly*
\indent latexhelp.txt /*\\indent*
\input latexhelp.txt /*\\input*
\item latexhelp.txt /*\\item*
\itshape latexhelp.txt /*\\itshape*
\kill latexhelp.txt /*\\kill*
\label latexhelp.txt /*\\label*
\large latexhelp.txt /*\\large*
\ldots latexhelp.txt /*\\ldots*
\lefteqn latexhelp.txt /*\\lefteqn*
\letter latexhelp.txt /*\\letter*
\line latexhelp.txt /*\\line*
\linebreak latexhelp.txt /*\\linebreak*
\linethickness latexhelp.txt /*\\linethickness*
\listoffigures latexhelp.txt /*\\listoffigures*
\listoftables latexhelp.txt /*\\listoftables*
\location latexhelp.txt /*\\location*
\lrbox latexhelp.txt /*\\lrbox*
\makebox latexhelp.txt /*\\makebox*
\makelabels latexhelp.txt /*\\makelabels*
\maketitle latexhelp.txt /*\\maketitle*
\marginpar latexhelp.txt /*\\marginpar*
\markboth latexhelp.txt /*\\markboth*
\markright latexhelp.txt /*\\markright*
\mathbf latexhelp.txt /*\\mathbf*
\mathcal latexhelp.txt /*\\mathcal*
\mathit latexhelp.txt /*\\mathit*
\mathnormal latexhelp.txt /*\\mathnormal*
\mathrm latexhelp.txt /*\\mathrm*
\mathsf latexhelp.txt /*\\mathsf*
\mathtt latexhelp.txt /*\\mathtt*
\mathversion latexhelp.txt /*\\mathversion*
\mbox latexhelp.txt /*\\mbox*
\mdseries latexhelp.txt /*\\mdseries*
\medskip latexhelp.txt /*\\medskip*
\multicolumn latexhelp.txt /*\\multicolumn*
\multiput latexhelp.txt /*\\multiput*
\name latexhelp.txt /*\\name*
\newcommand latexhelp.txt /*\\newcommand*
\newcounter latexhelp.txt /*\\newcounter*
\newenvironment latexhelp.txt /*\\newenvironment*
\newfont latexhelp.txt /*\\newfont*
\newlength latexhelp.txt /*\\newlength*
\newline latexhelp.txt /*\\newline*
\newpage latexhelp.txt /*\\newpage*
\newsavebox latexhelp.txt /*\\newsavebox*
\newtheorem latexhelp.txt /*\\newtheorem*
\nocite latexhelp.txt /*\\nocite*
\nofiles latexhelp.txt /*\\nofiles*
\noindent latexhelp.txt /*\\noindent*
\nolinebreak latexhelp.txt /*\\nolinebreak*
\nonumber latexhelp.txt /*\\nonumber*
\nopagebreak latexhelp.txt /*\\nopagebreak*
\normalfont latexhelp.txt /*\\normalfont*
\normalsize latexhelp.txt /*\\normalsize*
\onecolumn latexhelp.txt /*\\onecolumn*
\opening latexhelp.txt /*\\opening*
\oval latexhelp.txt /*\\oval*
\overbrace latexhelp.txt /*\\overbrace*
\overline latexhelp.txt /*\\overline*
\pagebreak latexhelp.txt /*\\pagebreak*
\pagenumbering latexhelp.txt /*\\pagenumbering*
\pageref latexhelp.txt /*\\pageref*
\pagestyle latexhelp.txt /*\\pagestyle*
\par latexhelp.txt /*\\par*
\paragraph latexhelp.txt /*\\paragraph*
\parbox latexhelp.txt /*\\parbox*
\part latexhelp.txt /*\\part*
\picture-framebox latexhelp.txt /*\\picture-framebox*
\ps latexhelp.txt /*\\ps*
\pushtabs latexhelp.txt /*\\pushtabs*
\put latexhelp.txt /*\\put*
\raggedbottom latexhelp.txt /*\\raggedbottom*
\raggedleft latexhelp.txt /*\\raggedleft*
\raggedright latexhelp.txt /*\\raggedright*
\raisebox latexhelp.txt /*\\raisebox*
\ref latexhelp.txt /*\\ref*
\refstepcounter latexhelp.txt /*\\refstepcounter*
\renewcommand latexhelp.txt /*\\renewcommand*
\renewenvironment latexhelp.txt /*\\renewenvironment*
\reversemarginpar latexhelp.txt /*\\reversemarginpar*
\rmfamily latexhelp.txt /*\\rmfamily*
\roman latexhelp.txt /*\\roman*
\rule latexhelp.txt /*\\rule*
\savebox latexhelp.txt /*\\savebox*
\sbox latexhelp.txt /*\\sbox*
\scriptsize latexhelp.txt /*\\scriptsize*
\scshape latexhelp.txt /*\\scshape*
\section latexhelp.txt /*\\section*
\selectfont latexhelp.txt /*\\selectfont*
\setcounter latexhelp.txt /*\\setcounter*
\setlength latexhelp.txt /*\\setlength*
\settodepth latexhelp.txt /*\\settodepth*
\settoheight latexhelp.txt /*\\settoheight*
\settowidth latexhelp.txt /*\\settowidth*
\sffamily latexhelp.txt /*\\sffamily*
\shortstack latexhelp.txt /*\\shortstack*
\signature latexhelp.txt /*\\signature*
\sloppy latexhelp.txt /*\\sloppy*
\slshape latexhelp.txt /*\\slshape*
\small latexhelp.txt /*\\small*
\smallskip latexhelp.txt /*\\smallskip*
\space latexhelp.txt /*\\space*
\sqrt latexhelp.txt /*\\sqrt*
\startbreaks latexhelp.txt /*\\startbreaks*
\stepcounter latexhelp.txt /*\\stepcounter*
\stopbreaks latexhelp.txt /*\\stopbreaks*
\subparagraph latexhelp.txt /*\\subparagraph*
\subsection latexhelp.txt /*\\subsection*
\subsubsection latexhelp.txt /*\\subsubsection*
\symbol latexhelp.txt /*\\symbol*
\table latexhelp.txt /*\\table*
\tableofcontents latexhelp.txt /*\\tableofcontents*
\telephone latexhelp.txt /*\\telephone*
\textbf latexhelp.txt /*\\textbf*
\textit latexhelp.txt /*\\textit*
\textmd latexhelp.txt /*\\textmd*
\textnormal latexhelp.txt /*\\textnormal*
\textrm latexhelp.txt /*\\textrm*
\textsc latexhelp.txt /*\\textsc*
\textsf latexhelp.txt /*\\textsf*
\textsl latexhelp.txt /*\\textsl*
\texttt latexhelp.txt /*\\texttt*
\textup latexhelp.txt /*\\textup*
\thanks latexhelp.txt /*\\thanks*
\thebibliography latexhelp.txt /*\\thebibliography*
\thispagestyle latexhelp.txt /*\\thispagestyle*
\tiny latexhelp.txt /*\\tiny*
\title latexhelp.txt /*\\title*
\totalheight latexhelp.txt /*\\totalheight*
\ttfamily latexhelp.txt /*\\ttfamily*
\twocolumn latexhelp.txt /*\\twocolumn*
\typein latexhelp.txt /*\\typein*
\typeout latexhelp.txt /*\\typeout*
\underbrace latexhelp.txt /*\\underbrace*
\underline latexhelp.txt /*\\underline*
\upshape latexhelp.txt /*\\upshape*
\usebox latexhelp.txt /*\\usebox*
\usecounter latexhelp.txt /*\\usecounter*
\usefont latexhelp.txt /*\\usefont*
\usepackage latexhelp.txt /*\\usepackage*
\value latexhelp.txt /*\\value*
\vdots latexhelp.txt /*\\vdots*
\vector latexhelp.txt /*\\vector*
\verb latexhelp.txt /*\\verb*
\vfill latexhelp.txt /*\\vfill*
\vline latexhelp.txt /*\\vline*
\vspace latexhelp.txt /*\\vspace*
\width latexhelp.txt /*\\width*
adding-bib-options latex-suite.txt /*adding-bib-options*
alph latexhelp.txt /*alph*
altkey-mappings latex-suite.txt /*altkey-mappings*
arabic latexhelp.txt /*arabic*
array latexhelp.txt /*array*
article-class latexhelp.txt /*article-class*
auc-tex-mappings latex-suite.txt /*auc-tex-mappings*
automatic-package-detection latex-suite.txt /*automatic-package-detection*
bibtex latexhelp.txt /*bibtex*
bibtex-bindings latex-suite.txt /*bibtex-bindings*
book-class latexhelp.txt /*book-class*
center latexhelp.txt /*center*
changing-commands latex-suite.txt /*changing-commands*
changing-environments latex-suite.txt /*changing-environments*
cite-search-caching latex-suite.txt /*cite-search-caching*
compiler-dependency latex-suite.txt /*compiler-dependency*
compiler-output-customization latex-suite.txt /*compiler-output-customization*
compiler-rules latex-suite.txt /*compiler-rules*
compiling-multiple latex-suite.txt /*compiling-multiple*
completion-window-preferences latex-suite.txt /*completion-window-preferences*
custom-macros-menu latex-suite.txt /*custom-macros-menu*
custom-packages latex-suite.txt /*custom-packages*
customize-alt-key-maps latex-suite.txt /*customize-alt-key-maps*
customize-imap-maps latex-suite.txt /*customize-imap-maps*
customizing-compiling latex-suite.txt /*customizing-compiling*
customizing-folding latex-suite.txt /*customizing-folding*
customizing-latex-completion latex-suite.txt /*customizing-latex-completion*
customizing-latex-suite latex-suite.txt /*customizing-latex-suite*
customizing-macros latex-suite.txt /*customizing-macros*
customizing-menus latex-suite.txt /*customizing-menus*
customizing-packages latex-suite.txt /*customizing-packages*
customizing-place-holders latex-suite.txt /*customizing-place-holders*
customizing-smart-keys latex-suite.txt /*customizing-smart-keys*
customizing-viewing latex-suite.txt /*customizing-viewing*
customizing-what-to-fold latex-suite.txt /*customizing-what-to-fold*
default-folding latex-suite.txt /*default-folding*
description latexhelp.txt /*description*
diacritic-mappings latex-suite.txt /*diacritic-mappings*
displaymath latexhelp.txt /*displaymath*
draft latexhelp.txt /*draft*
editing-folding latex-suite.txt /*editing-folding*
empty latexhelp.txt /*empty*
enabling-searching latex-suite.txt /*enabling-searching*
enclosing-commands latex-suite.txt /*enclosing-commands*
enclosing-env-f5 latex-suite.txt /*enclosing-env-f5*
enclosing-env-threeletter latex-suite.txt /*enclosing-env-threeletter*
enclosing-environments latex-suite.txt /*enclosing-environments*
enumerate latexhelp.txt /*enumerate*
environment-mappings latex-suite.txt /*environment-mappings*
eqnarray latexhelp.txt /*eqnarray*
equation latexhelp.txt /*equation*
figure latexhelp.txt /*figure*
final latexhelp.txt /*final*
fleqn latexhelp.txt /*fleqn*
flushleft latexhelp.txt /*flushleft*
flushright latexhelp.txt /*flushright*
fold-setting-adding latex-suite.txt /*fold-setting-adding*
fold-setting-advanced latex-suite.txt /*fold-setting-advanced*
font-lowlevelcommands latexhelp.txt /*font-lowlevelcommands*
font-maps latex-suite.txt /*font-maps*
font-size latexhelp.txt /*font-size*
font-styles latexhelp.txt /*font-styles*
forward-searching latex-suite.txt /*forward-searching*
greek-letter-mappings latex-suite.txt /*greek-letter-mappings*
headings latexhelp.txt /*headings*
hyph- latexhelp.txt /*hyph-*
im_1 imaps.txt /*im_1*
imaps-usage imaps.txt /*imaps-usage*
imaps.txt imaps.txt /*imaps.txt*
imaps.txt-toc imaps.txt /*imaps.txt-toc*
inserting-commands latex-suite.txt /*inserting-commands*
inserting-env-f5 latex-suite.txt /*inserting-env-f5*
inserting-env-shift-f1 latex-suite.txt /*inserting-env-shift-f1*
inserting-env-threeletter latex-suite.txt /*inserting-env-threeletter*
inserting-environments latex-suite.txt /*inserting-environments*
inserting-packages latex-suite.txt /*inserting-packages*
inverse-searching latex-suite.txt /*inverse-searching*
itemize latexhelp.txt /*itemize*
landscape latexhelp.txt /*landscape*
latex latexhelp.txt /*latex*
latex-boxes latexhelp.txt /*latex-boxes*
latex-breaking latexhelp.txt /*latex-breaking*
latex-classes latexhelp.txt /*latex-classes*
latex-command-maps latex-suite.txt /*latex-command-maps*
latex-commands latexhelp.txt /*latex-commands*
latex-compiling latex-suite.txt /*latex-compiling*
latex-completion latex-suite.txt /*latex-completion*
latex-completion-cite latex-suite.txt /*latex-completion-cite*
latex-counters latexhelp.txt /*latex-counters*
latex-definitions latexhelp.txt /*latex-definitions*
latex-environments latexhelp.txt /*latex-environments*
latex-folding latex-suite.txt /*latex-folding*
latex-footnotes latexhelp.txt /*latex-footnotes*
latex-hor-space latexhelp.txt /*latex-hor-space*
latex-inputting latexhelp.txt /*latex-inputting*
latex-layout latexhelp.txt /*latex-layout*
latex-lengths latexhelp.txt /*latex-lengths*
latex-letters latexhelp.txt /*latex-letters*
latex-macros latex-suite.txt /*latex-macros*
latex-margin-notes latexhelp.txt /*latex-margin-notes*
latex-master-file latex-suite.txt /*latex-master-file*
latex-master-file-specification latex-suite.txt /*latex-master-file-specification*
latex-math latexhelp.txt /*latex-math*
latex-modes latexhelp.txt /*latex-modes*
latex-package-scanning latex-suite.txt /*latex-package-scanning*
latex-packages latex-suite.txt /*latex-packages*
latex-page-styles latexhelp.txt /*latex-page-styles*
latex-paragraphs latexhelp.txt /*latex-paragraphs*
latex-parameters latexhelp.txt /*latex-parameters*
latex-project latex-suite.txt /*latex-project*
latex-project-example latex-suite.txt /*latex-project-example*
latex-project-settings latex-suite.txt /*latex-project-settings*
latex-references latexhelp.txt /*latex-references*
latex-sectioning latexhelp.txt /*latex-sectioning*
latex-spaces-boxes latexhelp.txt /*latex-spaces-boxes*
latex-special latexhelp.txt /*latex-special*
latex-start-end latexhelp.txt /*latex-start-end*
latex-suite-commands latex-suite.txt /*latex-suite-commands*
latex-suite-commands-maps latex-suite.txt /*latex-suite-commands-maps*
latex-suite-credits latex-suite.txt /*latex-suite-credits*
latex-suite-maintainer latex-suite.txt /*latex-suite-maintainer*
latex-suite-maps latex-suite.txt /*latex-suite-maps*
latex-suite-quickstart.txt latex-suite-quickstart.txt /*latex-suite-quickstart.txt*
latex-suite-quickstart.txt-toc latex-suite-quickstart.txt /*latex-suite-quickstart.txt-toc*
latex-suite-templates latex-suite.txt /*latex-suite-templates*
latex-suite.txt latex-suite.txt /*latex-suite.txt*
latex-suite.txt-toc latex-suite.txt /*latex-suite.txt-toc*
latex-terminal latexhelp.txt /*latex-terminal*
latex-toc latexhelp.txt /*latex-toc*
latex-typefaces latexhelp.txt /*latex-typefaces*
latex-ver-space latexhelp.txt /*latex-ver-space*
latex-viewing latex-suite.txt /*latex-viewing*
latex-viewing-rules latex-suite.txt /*latex-viewing-rules*
latexhelp.txt latexhelp.txt /*latexhelp.txt*
leqno latexhelp.txt /*leqno*
letter-class latexhelp.txt /*letter-class*
list latexhelp.txt /*list*
lq_1 latex-suite-quickstart.txt /*lq_1*
lq_10 latex-suite-quickstart.txt /*lq_10*
lq_2 latex-suite-quickstart.txt /*lq_2*
lq_3 latex-suite-quickstart.txt /*lq_3*
lq_4 latex-suite-quickstart.txt /*lq_4*
lq_5 latex-suite-quickstart.txt /*lq_5*
lq_6 latex-suite-quickstart.txt /*lq_6*
lq_7 latex-suite-quickstart.txt /*lq_7*
lq_8 latex-suite-quickstart.txt /*lq_8*
lq_8_1 latex-suite-quickstart.txt /*lq_8_1*
lq_9 latex-suite-quickstart.txt /*lq_9*
lq_9_1 latex-suite-quickstart.txt /*lq_9_1*
lq_9_2 latex-suite-quickstart.txt /*lq_9_2*
lq_a_bc latex-suite-quickstart.txt /*lq_a_bc*
lq_a_bd latex-suite-quickstart.txt /*lq_a_bd*
lq_a_be latex-suite-quickstart.txt /*lq_a_be*
lq_a_bf latex-suite-quickstart.txt /*lq_a_bf*
lq_a_bg latex-suite-quickstart.txt /*lq_a_bg*
lq_a_bh latex-suite-quickstart.txt /*lq_a_bh*
lq_a_bi latex-suite-quickstart.txt /*lq_a_bi*
lq_a_bj latex-suite-quickstart.txt /*lq_a_bj*
lq_a_bk latex-suite-quickstart.txt /*lq_a_bk*
lq_a_bl latex-suite-quickstart.txt /*lq_a_bl*
lq_a_bm latex-suite-quickstart.txt /*lq_a_bm*
lq_a_bn latex-suite-quickstart.txt /*lq_a_bn*
lq_a_bo latex-suite-quickstart.txt /*lq_a_bo*
lq_u_1 latex-suite-quickstart.txt /*lq_u_1*
lq_u_2 latex-suite-quickstart.txt /*lq_u_2*
lq_u_3 latex-suite-quickstart.txt /*lq_u_3*
lq_u_4 latex-suite-quickstart.txt /*lq_u_4*
lq_u_5 latex-suite-quickstart.txt /*lq_u_5*
lq_u_6 latex-suite-quickstart.txt /*lq_u_6*
lq_u_7 latex-suite-quickstart.txt /*lq_u_7*
lq_u_8 latex-suite-quickstart.txt /*lq_u_8*
lq_u_9 latex-suite-quickstart.txt /*lq_u_9*
lr-mode latexhelp.txt /*lr-mode*
ls-completion-custom latex-suite.txt /*ls-completion-custom*
ls-completion-ref latex-suite.txt /*ls-completion-ref*
ls-completion-usage latex-suite.txt /*ls-completion-usage*
ls-filename-completion latex-suite.txt /*ls-filename-completion*
ls-general-purpose-settings latex-suite.txt /*ls-general-purpose-settings*
ls-imap-f7 latex-suite.txt /*ls-imap-f7*
ls-imap-s-f7 latex-suite.txt /*ls-imap-s-f7*
ls-imaps-syntax latex-suite.txt /*ls-imaps-syntax*
ls-new-macros latex-suite.txt /*ls-new-macros*
ls-set-grepprg latex-suite.txt /*ls-set-grepprg*
ls-vmap-f7 latex-suite.txt /*ls-vmap-f7*
ls_1 latex-suite.txt /*ls_1*
ls_10 latex-suite.txt /*ls_10*
ls_10_1 latex-suite.txt /*ls_10_1*
ls_10_1_1 latex-suite.txt /*ls_10_1_1*
ls_10_1_2 latex-suite.txt /*ls_10_1_2*
ls_10_2 latex-suite.txt /*ls_10_2*
ls_10_2_1 latex-suite.txt /*ls_10_2_1*
ls_10_2_10 latex-suite.txt /*ls_10_2_10*
ls_10_2_11 latex-suite.txt /*ls_10_2_11*
ls_10_2_12 latex-suite.txt /*ls_10_2_12*
ls_10_2_13 latex-suite.txt /*ls_10_2_13*
ls_10_2_14 latex-suite.txt /*ls_10_2_14*
ls_10_2_15 latex-suite.txt /*ls_10_2_15*
ls_10_2_16 latex-suite.txt /*ls_10_2_16*
ls_10_2_2 latex-suite.txt /*ls_10_2_2*
ls_10_2_3 latex-suite.txt /*ls_10_2_3*
ls_10_2_4 latex-suite.txt /*ls_10_2_4*
ls_10_2_5 latex-suite.txt /*ls_10_2_5*
ls_10_2_6 latex-suite.txt /*ls_10_2_6*
ls_10_2_7 latex-suite.txt /*ls_10_2_7*
ls_10_2_8 latex-suite.txt /*ls_10_2_8*
ls_10_2_9 latex-suite.txt /*ls_10_2_9*
ls_11 latex-suite.txt /*ls_11*
ls_11_1 latex-suite.txt /*ls_11_1*
ls_11_10 latex-suite.txt /*ls_11_10*
ls_11_10_1 latex-suite.txt /*ls_11_10_1*
ls_11_1_1 latex-suite.txt /*ls_11_1_1*
ls_11_1_2 latex-suite.txt /*ls_11_1_2*
ls_11_2 latex-suite.txt /*ls_11_2*
ls_11_2_1 latex-suite.txt /*ls_11_2_1*
ls_11_2_2 latex-suite.txt /*ls_11_2_2*
ls_11_2_3 latex-suite.txt /*ls_11_2_3*
ls_11_2_4 latex-suite.txt /*ls_11_2_4*
ls_11_3 latex-suite.txt /*ls_11_3*
ls_11_3_1 latex-suite.txt /*ls_11_3_1*
ls_11_3_10 latex-suite.txt /*ls_11_3_10*
ls_11_3_11 latex-suite.txt /*ls_11_3_11*
ls_11_3_12 latex-suite.txt /*ls_11_3_12*
ls_11_3_13 latex-suite.txt /*ls_11_3_13*
ls_11_3_2 latex-suite.txt /*ls_11_3_2*
ls_11_3_3 latex-suite.txt /*ls_11_3_3*
ls_11_3_4 latex-suite.txt /*ls_11_3_4*
ls_11_3_5 latex-suite.txt /*ls_11_3_5*
ls_11_3_6 latex-suite.txt /*ls_11_3_6*
ls_11_3_7 latex-suite.txt /*ls_11_3_7*
ls_11_3_8 latex-suite.txt /*ls_11_3_8*
ls_11_3_9 latex-suite.txt /*ls_11_3_9*
ls_11_4 latex-suite.txt /*ls_11_4*
ls_11_4_1 latex-suite.txt /*ls_11_4_1*
ls_11_4_2 latex-suite.txt /*ls_11_4_2*
ls_11_5 latex-suite.txt /*ls_11_5*
ls_11_5_1 latex-suite.txt /*ls_11_5_1*
ls_11_5_2 latex-suite.txt /*ls_11_5_2*
ls_11_5_3 latex-suite.txt /*ls_11_5_3*
ls_11_5_4 latex-suite.txt /*ls_11_5_4*
ls_11_5_5 latex-suite.txt /*ls_11_5_5*
ls_11_6 latex-suite.txt /*ls_11_6*
ls_11_6_1 latex-suite.txt /*ls_11_6_1*
ls_11_6_2 latex-suite.txt /*ls_11_6_2*
ls_11_6_3 latex-suite.txt /*ls_11_6_3*
ls_11_6_4 latex-suite.txt /*ls_11_6_4*
ls_11_6_5 latex-suite.txt /*ls_11_6_5*
ls_11_6_6 latex-suite.txt /*ls_11_6_6*
ls_11_6_7 latex-suite.txt /*ls_11_6_7*
ls_11_6_8 latex-suite.txt /*ls_11_6_8*
ls_11_7 latex-suite.txt /*ls_11_7*
ls_11_7_1 latex-suite.txt /*ls_11_7_1*
ls_11_7_2 latex-suite.txt /*ls_11_7_2*
ls_11_8 latex-suite.txt /*ls_11_8*
ls_11_8_1 latex-suite.txt /*ls_11_8_1*
ls_11_8_2 latex-suite.txt /*ls_11_8_2*
ls_11_8_3 latex-suite.txt /*ls_11_8_3*
ls_11_8_4 latex-suite.txt /*ls_11_8_4*
ls_11_8_5 latex-suite.txt /*ls_11_8_5*
ls_11_8_6 latex-suite.txt /*ls_11_8_6*
ls_11_8_7 latex-suite.txt /*ls_11_8_7*
ls_11_9 latex-suite.txt /*ls_11_9*
ls_11_9_1 latex-suite.txt /*ls_11_9_1*
ls_11_9_2 latex-suite.txt /*ls_11_9_2*
ls_12 latex-suite.txt /*ls_12*
ls_2 latex-suite.txt /*ls_2*
ls_3 latex-suite.txt /*ls_3*
ls_3_1 latex-suite.txt /*ls_3_1*
ls_3_10 latex-suite.txt /*ls_3_10*
ls_3_10_1 latex-suite.txt /*ls_3_10_1*
ls_3_10_2 latex-suite.txt /*ls_3_10_2*
ls_3_10_3 latex-suite.txt /*ls_3_10_3*
ls_3_10_4 latex-suite.txt /*ls_3_10_4*
ls_3_11 latex-suite.txt /*ls_3_11*
ls_3_12 latex-suite.txt /*ls_3_12*
ls_3_12_1 latex-suite.txt /*ls_3_12_1*
ls_3_12_2 latex-suite.txt /*ls_3_12_2*
ls_3_1_1 latex-suite.txt /*ls_3_1_1*
ls_3_1_1_1 latex-suite.txt /*ls_3_1_1_1*
ls_3_1_1_2 latex-suite.txt /*ls_3_1_1_2*
ls_3_1_1_3 latex-suite.txt /*ls_3_1_1_3*
ls_3_1_2 latex-suite.txt /*ls_3_1_2*
ls_3_1_2_1 latex-suite.txt /*ls_3_1_2_1*
ls_3_1_2_2 latex-suite.txt /*ls_3_1_2_2*
ls_3_1_3 latex-suite.txt /*ls_3_1_3*
ls_3_2 latex-suite.txt /*ls_3_2*
ls_3_2_1 latex-suite.txt /*ls_3_2_1*
ls_3_2_2 latex-suite.txt /*ls_3_2_2*
ls_3_2_3 latex-suite.txt /*ls_3_2_3*
ls_3_3 latex-suite.txt /*ls_3_3*
ls_3_4 latex-suite.txt /*ls_3_4*
ls_3_5 latex-suite.txt /*ls_3_5*
ls_3_6 latex-suite.txt /*ls_3_6*
ls_3_7 latex-suite.txt /*ls_3_7*
ls_3_8 latex-suite.txt /*ls_3_8*
ls_3_8_1 latex-suite.txt /*ls_3_8_1*
ls_3_9 latex-suite.txt /*ls_3_9*
ls_4 latex-suite.txt /*ls_4*
ls_4_1 latex-suite.txt /*ls_4_1*
ls_4_2 latex-suite.txt /*ls_4_2*
ls_4_3 latex-suite.txt /*ls_4_3*
ls_4_3_1 latex-suite.txt /*ls_4_3_1*
ls_4_4 latex-suite.txt /*ls_4_4*
ls_4_4_1 latex-suite.txt /*ls_4_4_1*
ls_4_4_2 latex-suite.txt /*ls_4_4_2*
ls_5 latex-suite.txt /*ls_5*
ls_5_1 latex-suite.txt /*ls_5_1*
ls_5_2 latex-suite.txt /*ls_5_2*
ls_5_3 latex-suite.txt /*ls_5_3*
ls_5_3_1 latex-suite.txt /*ls_5_3_1*
ls_5_4 latex-suite.txt /*ls_5_4*
ls_5_5 latex-suite.txt /*ls_5_5*
ls_6 latex-suite.txt /*ls_6*
ls_6_1 latex-suite.txt /*ls_6_1*
ls_6_2 latex-suite.txt /*ls_6_2*
ls_6_3 latex-suite.txt /*ls_6_3*
ls_6_4 latex-suite.txt /*ls_6_4*
ls_6_5 latex-suite.txt /*ls_6_5*
ls_7 latex-suite.txt /*ls_7*
ls_7_1 latex-suite.txt /*ls_7_1*
ls_7_2 latex-suite.txt /*ls_7_2*
ls_7_3 latex-suite.txt /*ls_7_3*
ls_8 latex-suite.txt /*ls_8*
ls_8_1 latex-suite.txt /*ls_8_1*
ls_8_2 latex-suite.txt /*ls_8_2*
ls_8_2_1 latex-suite.txt /*ls_8_2_1*
ls_8_2_2 latex-suite.txt /*ls_8_2_2*
ls_8_2_3 latex-suite.txt /*ls_8_2_3*
ls_8_2_4 latex-suite.txt /*ls_8_2_4*
ls_8_2_5 latex-suite.txt /*ls_8_2_5*
ls_8_3 latex-suite.txt /*ls_8_3*
ls_9 latex-suite.txt /*ls_9*
ls_9_1 latex-suite.txt /*ls_9_1*
ls_9_2 latex-suite.txt /*ls_9_2*
ls_a_bA latex-suite.txt /*ls_a_bA*
ls_a_bB latex-suite.txt /*ls_a_bB*
ls_a_bC latex-suite.txt /*ls_a_bC*
ls_a_bD latex-suite.txt /*ls_a_bD*
ls_a_bE latex-suite.txt /*ls_a_bE*
ls_a_bF latex-suite.txt /*ls_a_bF*
ls_a_bG latex-suite.txt /*ls_a_bG*
ls_a_bH latex-suite.txt /*ls_a_bH*
ls_a_bI latex-suite.txt /*ls_a_bI*
ls_a_bJ latex-suite.txt /*ls_a_bJ*
ls_a_bK latex-suite.txt /*ls_a_bK*
ls_a_bL latex-suite.txt /*ls_a_bL*
ls_a_bM latex-suite.txt /*ls_a_bM*
ls_a_bN latex-suite.txt /*ls_a_bN*
ls_a_bO latex-suite.txt /*ls_a_bO*
ls_a_bP latex-suite.txt /*ls_a_bP*
ls_a_bQ latex-suite.txt /*ls_a_bQ*
ls_a_bR latex-suite.txt /*ls_a_bR*
ls_a_bS latex-suite.txt /*ls_a_bS*
ls_a_bT latex-suite.txt /*ls_a_bT*
ls_a_bU latex-suite.txt /*ls_a_bU*
ls_a_bV latex-suite.txt /*ls_a_bV*
ls_a_bW latex-suite.txt /*ls_a_bW*
ls_a_bX latex-suite.txt /*ls_a_bX*
ls_a_bY latex-suite.txt /*ls_a_bY*
ls_a_bZ latex-suite.txt /*ls_a_bZ*
ls_a_bc latex-suite.txt /*ls_a_bc*
ls_a_bd latex-suite.txt /*ls_a_bd*
ls_a_be latex-suite.txt /*ls_a_be*
ls_a_bf latex-suite.txt /*ls_a_bf*
ls_a_bg latex-suite.txt /*ls_a_bg*
ls_a_bh latex-suite.txt /*ls_a_bh*
ls_a_bi latex-suite.txt /*ls_a_bi*
ls_a_bj latex-suite.txt /*ls_a_bj*
ls_a_bk latex-suite.txt /*ls_a_bk*
ls_a_bl latex-suite.txt /*ls_a_bl*
ls_a_bm latex-suite.txt /*ls_a_bm*
ls_a_bn latex-suite.txt /*ls_a_bn*
ls_a_bo latex-suite.txt /*ls_a_bo*
ls_a_bp latex-suite.txt /*ls_a_bp*
ls_a_bq latex-suite.txt /*ls_a_bq*
ls_a_br latex-suite.txt /*ls_a_br*
ls_a_bs latex-suite.txt /*ls_a_bs*
ls_a_bt latex-suite.txt /*ls_a_bt*
ls_a_bu latex-suite.txt /*ls_a_bu*
ls_a_bv latex-suite.txt /*ls_a_bv*
ls_a_bw latex-suite.txt /*ls_a_bw*
ls_a_bx latex-suite.txt /*ls_a_bx*
ls_a_by latex-suite.txt /*ls_a_by*
ls_a_bz latex-suite.txt /*ls_a_bz*
ls_a_cA latex-suite.txt /*ls_a_cA*
ls_a_cB latex-suite.txt /*ls_a_cB*
ls_a_cC latex-suite.txt /*ls_a_cC*
ls_a_cD latex-suite.txt /*ls_a_cD*
ls_a_cE latex-suite.txt /*ls_a_cE*
ls_a_cF latex-suite.txt /*ls_a_cF*
ls_a_cG latex-suite.txt /*ls_a_cG*
ls_a_cH latex-suite.txt /*ls_a_cH*
ls_a_cI latex-suite.txt /*ls_a_cI*
ls_a_cJ latex-suite.txt /*ls_a_cJ*
ls_a_cK latex-suite.txt /*ls_a_cK*
ls_a_cL latex-suite.txt /*ls_a_cL*
ls_a_cM latex-suite.txt /*ls_a_cM*
ls_a_cN latex-suite.txt /*ls_a_cN*
ls_a_cO latex-suite.txt /*ls_a_cO*
ls_a_cP latex-suite.txt /*ls_a_cP*
ls_a_cQ latex-suite.txt /*ls_a_cQ*
ls_a_cR latex-suite.txt /*ls_a_cR*
ls_a_cS latex-suite.txt /*ls_a_cS*
ls_a_cT latex-suite.txt /*ls_a_cT*
ls_a_cU latex-suite.txt /*ls_a_cU*
ls_a_cV latex-suite.txt /*ls_a_cV*
ls_a_cW latex-suite.txt /*ls_a_cW*
ls_a_cX latex-suite.txt /*ls_a_cX*
ls_a_cY latex-suite.txt /*ls_a_cY*
ls_a_cZ latex-suite.txt /*ls_a_cZ*
ls_a_ca latex-suite.txt /*ls_a_ca*
ls_a_cb latex-suite.txt /*ls_a_cb*
ls_a_cc latex-suite.txt /*ls_a_cc*
ls_a_cd latex-suite.txt /*ls_a_cd*
ls_a_ce latex-suite.txt /*ls_a_ce*
ls_a_cf latex-suite.txt /*ls_a_cf*
ls_a_cg latex-suite.txt /*ls_a_cg*
ls_a_ch latex-suite.txt /*ls_a_ch*
ls_a_ci latex-suite.txt /*ls_a_ci*
ls_a_cj latex-suite.txt /*ls_a_cj*
ls_a_ck latex-suite.txt /*ls_a_ck*
ls_a_cl latex-suite.txt /*ls_a_cl*
ls_a_cm latex-suite.txt /*ls_a_cm*
ls_a_cn latex-suite.txt /*ls_a_cn*
ls_a_co latex-suite.txt /*ls_a_co*
ls_a_cp latex-suite.txt /*ls_a_cp*
ls_a_cq latex-suite.txt /*ls_a_cq*
ls_a_cr latex-suite.txt /*ls_a_cr*
ls_a_cs latex-suite.txt /*ls_a_cs*
ls_a_ct latex-suite.txt /*ls_a_ct*
ls_a_cu latex-suite.txt /*ls_a_cu*
ls_a_cv latex-suite.txt /*ls_a_cv*
ls_a_cw latex-suite.txt /*ls_a_cw*
ls_a_cx latex-suite.txt /*ls_a_cx*
ls_a_cy latex-suite.txt /*ls_a_cy*
ls_a_cz latex-suite.txt /*ls_a_cz*
ls_a_dA latex-suite.txt /*ls_a_dA*
ls_a_dB latex-suite.txt /*ls_a_dB*
ls_a_dC latex-suite.txt /*ls_a_dC*
ls_a_dD latex-suite.txt /*ls_a_dD*
ls_a_dE latex-suite.txt /*ls_a_dE*
ls_a_dF latex-suite.txt /*ls_a_dF*
ls_a_dG latex-suite.txt /*ls_a_dG*
ls_a_dH latex-suite.txt /*ls_a_dH*
ls_a_dI latex-suite.txt /*ls_a_dI*
ls_a_dJ latex-suite.txt /*ls_a_dJ*
ls_a_dK latex-suite.txt /*ls_a_dK*
ls_a_dL latex-suite.txt /*ls_a_dL*
ls_a_dM latex-suite.txt /*ls_a_dM*
ls_a_dN latex-suite.txt /*ls_a_dN*
ls_a_dO latex-suite.txt /*ls_a_dO*
ls_a_dP latex-suite.txt /*ls_a_dP*
ls_a_dQ latex-suite.txt /*ls_a_dQ*
ls_a_dR latex-suite.txt /*ls_a_dR*
ls_a_dS latex-suite.txt /*ls_a_dS*
ls_a_dT latex-suite.txt /*ls_a_dT*
ls_a_dU latex-suite.txt /*ls_a_dU*
ls_a_dV latex-suite.txt /*ls_a_dV*
ls_a_dW latex-suite.txt /*ls_a_dW*
ls_a_dX latex-suite.txt /*ls_a_dX*
ls_a_dY latex-suite.txt /*ls_a_dY*
ls_a_dZ latex-suite.txt /*ls_a_dZ*
ls_a_da latex-suite.txt /*ls_a_da*
ls_a_db latex-suite.txt /*ls_a_db*
ls_a_dc latex-suite.txt /*ls_a_dc*
ls_a_dd latex-suite.txt /*ls_a_dd*
ls_a_de latex-suite.txt /*ls_a_de*
ls_a_df latex-suite.txt /*ls_a_df*
ls_a_dg latex-suite.txt /*ls_a_dg*
ls_a_dh latex-suite.txt /*ls_a_dh*
ls_a_di latex-suite.txt /*ls_a_di*
ls_a_dj latex-suite.txt /*ls_a_dj*
ls_a_dk latex-suite.txt /*ls_a_dk*
ls_a_dl latex-suite.txt /*ls_a_dl*
ls_a_dm latex-suite.txt /*ls_a_dm*
ls_a_dn latex-suite.txt /*ls_a_dn*
ls_a_do latex-suite.txt /*ls_a_do*
ls_a_dp latex-suite.txt /*ls_a_dp*
ls_a_dq latex-suite.txt /*ls_a_dq*
ls_a_dr latex-suite.txt /*ls_a_dr*
ls_a_ds latex-suite.txt /*ls_a_ds*
ls_a_dt latex-suite.txt /*ls_a_dt*
ls_a_du latex-suite.txt /*ls_a_du*
ls_a_dv latex-suite.txt /*ls_a_dv*
ls_a_dw latex-suite.txt /*ls_a_dw*
ls_a_dx latex-suite.txt /*ls_a_dx*
ls_a_dy latex-suite.txt /*ls_a_dy*
ls_a_dz latex-suite.txt /*ls_a_dz*
ls_a_eA latex-suite.txt /*ls_a_eA*
ls_a_eB latex-suite.txt /*ls_a_eB*
ls_a_eC latex-suite.txt /*ls_a_eC*
ls_a_eD latex-suite.txt /*ls_a_eD*
ls_a_eE latex-suite.txt /*ls_a_eE*
ls_a_eF latex-suite.txt /*ls_a_eF*
ls_a_eG latex-suite.txt /*ls_a_eG*
ls_a_ea latex-suite.txt /*ls_a_ea*
ls_a_eb latex-suite.txt /*ls_a_eb*
ls_a_ec latex-suite.txt /*ls_a_ec*
ls_a_ed latex-suite.txt /*ls_a_ed*
ls_a_ee latex-suite.txt /*ls_a_ee*
ls_a_ef latex-suite.txt /*ls_a_ef*
ls_a_eg latex-suite.txt /*ls_a_eg*
ls_a_eh latex-suite.txt /*ls_a_eh*
ls_a_ei latex-suite.txt /*ls_a_ei*
ls_a_ej latex-suite.txt /*ls_a_ej*
ls_a_ek latex-suite.txt /*ls_a_ek*
ls_a_el latex-suite.txt /*ls_a_el*
ls_a_em latex-suite.txt /*ls_a_em*
ls_a_en latex-suite.txt /*ls_a_en*
ls_a_eo latex-suite.txt /*ls_a_eo*
ls_a_ep latex-suite.txt /*ls_a_ep*
ls_a_eq latex-suite.txt /*ls_a_eq*
ls_a_er latex-suite.txt /*ls_a_er*
ls_a_es latex-suite.txt /*ls_a_es*
ls_a_et latex-suite.txt /*ls_a_et*
ls_a_eu latex-suite.txt /*ls_a_eu*
ls_a_ev latex-suite.txt /*ls_a_ev*
ls_a_ew latex-suite.txt /*ls_a_ew*
ls_a_ex latex-suite.txt /*ls_a_ex*
ls_a_ey latex-suite.txt /*ls_a_ey*
ls_a_ez latex-suite.txt /*ls_a_ez*
ls_u_1 latex-suite.txt /*ls_u_1*
ls_u_2 latex-suite.txt /*ls_u_2*
ls_u_3 latex-suite.txt /*ls_u_3*
ls_u_4 latex-suite.txt /*ls_u_4*
lsq-compiling latex-suite-quickstart.txt /*lsq-compiling*
lsq-conclusions latex-suite-quickstart.txt /*lsq-conclusions*
lsq-debugging latex-suite-quickstart.txt /*lsq-debugging*
lsq-folding latex-suite-quickstart.txt /*lsq-folding*
lsq-insert-environment latex-suite-quickstart.txt /*lsq-insert-environment*
lsq-inserting-reference latex-suite-quickstart.txt /*lsq-inserting-reference*
lsq-inserting-template latex-suite-quickstart.txt /*lsq-inserting-template*
lsq-keyboard-shortcuts latex-suite-quickstart.txt /*lsq-keyboard-shortcuts*
lsq-lsq-inserting-package latex-suite-quickstart.txt /*lsq-lsq-inserting-package*
lsq-quick-forward-searching latex-suite-quickstart.txt /*lsq-quick-forward-searching*
lsq-quick-inverse-searching latex-suite-quickstart.txt /*lsq-quick-inverse-searching*
lsq-using-tutorial latex-suite-quickstart.txt /*lsq-using-tutorial*
lsq-viewing-dvi latex-suite-quickstart.txt /*lsq-viewing-dvi*
macro-enabling latex-suite.txt /*macro-enabling*
math, latexhelp.txt /*math,*
math-misc latexhelp.txt /*math-misc*
math-mode latexhelp.txt /*math-mode*
math-spacing latexhelp.txt /*math-spacing*
math-symbols latexhelp.txt /*math-symbols*
math: latexhelp.txt /*math:*
math; latexhelp.txt /*math;*
matn! latexhelp.txt /*matn!*
minipage latexhelp.txt /*minipage*
notitlepage latexhelp.txt /*notitlepage*
onecolumn latexhelp.txt /*onecolumn*
oneside latexhelp.txt /*oneside*
openany latexhelp.txt /*openany*
openbib latexhelp.txt /*openbib*
openright latexhelp.txt /*openright*
overriding-macros latex-suite.txt /*overriding-macros*
package-actions latex-suite.txt /*package-actions*
paragraph-mode latexhelp.txt /*paragraph-mode*
part-compiling latex-suite.txt /*part-compiling*
pausing-imaps latex-suite.txt /*pausing-imaps*
picture latexhelp.txt /*picture*
picture-makebox latexhelp.txt /*picture-makebox*
place-holder latex-suite.txt /*place-holder*
place-holders latex-suite.txt /*place-holders*
plain latexhelp.txt /*plain*
pre-lengths latexhelp.txt /*pre-lengths*
quotation latexhelp.txt /*quotation*
quote-l latexhelp.txt /*quote-l*
recommended-settings latex-suite.txt /*recommended-settings*
remapping-latex-suite-keys latex-suite.txt /*remapping-latex-suite-keys*
report-class latexhelp.txt /*report-class*
roman latexhelp.txt /*roman*
rqno latexhelp.txt /*rqno*
section-mappings latex-suite.txt /*section-mappings*
slides-class latexhelp.txt /*slides-class*
smart-backspace latex-suite.txt /*smart-backspace*
smart-keys latex-suite.txt /*smart-keys*
sub-sup latexhelp.txt /*sub-sup*
subscripts latexhelp.txt /*subscripts*
superscripts latexhelp.txt /*superscripts*
supporting-packages latex-suite.txt /*supporting-packages*
tab' latexhelp.txt /*tab'*
tab+ latexhelp.txt /*tab+*
tab- latexhelp.txt /*tab-*
tab< latexhelp.txt /*tab<*
tab= latexhelp.txt /*tab=*
tab> latexhelp.txt /*tab>*
tab` latexhelp.txt /*tab`*
taba latexhelp.txt /*taba*
tabbing latexhelp.txt /*tabbing*
tabular latexhelp.txt /*tabular*
theorem latexhelp.txt /*theorem*
titlepage latexhelp.txt /*titlepage*
twocolumn latexhelp.txt /*twocolumn*
twoside latexhelp.txt /*twoside*
verbatim latexhelp.txt /*verbatim*
verse latexhelp.txt /*verse*
why-IMAP latex-suite.txt /*why-IMAP*

View File

@ -0,0 +1,16 @@
" File: bib_latexSuite.vim
" Author: Srinath Avadhanula
" License: Vim Charityware License
" Description:
" This file sources the bibtex.vim file distributed as part of latex-suite.
" That file sets up 3 maps BBB, BAS, and BBA which are easy wasy to type in
" bibliographic entries.
"
" CVS: $Id: bib_latexSuite.vim 997 2006-03-20 09:45:45Z srinathava $
" source main.vim because we need a few functions from it.
runtime ftplugin/latex-suite/main.vim
" Disable smart-quotes because we need to enter real quotes in bib files.
runtime ftplugin/latex-suite/bibtex.vim
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:nowrap

View File

@ -0,0 +1,266 @@
"=============================================================================
" File: bibtex.vim
" Function: BibT
" Author: Alan G Isaac <aisaac@american.edu>
" modified by Srinath Avadhanula for latex-suite.
" License: Vim Charityware license.
" CVS: $Id: bibtex.vim 997 2006-03-20 09:45:45Z srinathava $
"=============================================================================
" Fields:
" Define what field type each letter denotes {{{
"
let s:w_standsfor = 'address'
let s:a_standsfor = 'author'
let s:b_standsfor = 'booktitle'
let s:c_standsfor = 'chapter'
let s:d_standsfor = 'edition'
let s:e_standsfor = 'editor'
let s:h_standsfor = 'howpublished'
let s:i_standsfor = 'institution'
let s:k_standsfor = 'isbn'
let s:j_standsfor = 'journal'
let s:m_standsfor = 'month'
let s:n_standsfor = 'number'
let s:o_standsfor = 'organization'
let s:p_standsfor = 'pages'
let s:q_standsfor = 'publisher'
let s:r_standsfor = 'school'
let s:s_standsfor = 'series'
let s:t_standsfor = 'title'
let s:u_standsfor = 'type'
let s:v_standsfor = 'volume'
let s:y_standsfor = 'year'
let s:z_standsfor = 'note'
" }}}
" Define the fields required for the various entry types {{{
"
" s:{type}_required defines the required fields
" s:{type}_optional1 defines common optional fields
" s:{type}_optional2 defines uncommmon optional fields
" s:{type}_retval defines the first line of the formatted bib entry.
"
let s:key='<+key+>'
let s:{'article'}_required="atjy"
let s:{'article'}_optional1="vnpm"
let s:{'article'}_optional2="z" " z is note
let s:{'article'}_retval = '@ARTICLE{' . s:key . ','."\n"
let s:{'book'}_required="aetqy" " requires author *or* editor
let s:{'book'}_optional1="wd"
let s:{'book'}_optional2="vnsmz" " w is address, d is edition
let s:{'book'}_extras="k" " isbn
let s:{'book'}_retval = '@BOOK{' . s:key . ','."\n"
let s:{'booklet'}_required="t"
let s:{'booklet'}_optional1="ahy"
let s:{'booklet'}_optional2="wmz" " w is address
let s:{'booklet'}_retval = '@BOOKLET{' . s:key . ','."\n"
let s:{'inbook'}_required="aetcpqy"
let s:{'inbook'}_optional1="w" " w is address
let s:{'inbook'}_optional2="vnsudmz" " d is edition
let s:{'inbook'}_extras="k" " isbn
let s:{'inbook'}_retval = '@INBOOK{' . s:key . ','."\n"
let s:{'incollection'}_required="atbqy" " b is booktitle
let s:{'incollection'}_optional1="cpw" " w is address, c is chapter
let s:{'incollection'}_optional2="evnsudmz" " d is edition
let s:{'incollection'}_extras="k" " isbn
let s:{'incollection'}_retval = '@INCOLLECTION{' . s:key . ','."\n"
let s:{'inproceedings'}_required="atby" " b is booktitle
let s:{'inproceedings'}_optional1="epwoq" " w is address, q is publisher
let s:{'inproceedings'}_optional2="vnsmz"
let s:{'inproceedings'}_extras="k" " isbn
let s:{'inproceedings'}_retval = '@INPROCEEDINGS{' . s:key . ','."\n"
let s:{'conference'}_required="atby" " b is booktitle
let s:{'conference'}_optional1="epwoq" " w is address, q is publisher
let s:{'conference'}_optional2="vnsmz"
let s:{'conference'}_extras="k" " isbn
let s:{'conference'}_retval = '@CONFERENCE{' . s:key . ','."\n"
let s:{'manual'}_required="t"
let s:{'manual'}_optional1="ow"
let s:{'manual'}_optional2="admyz" " w is address
let s:{'manual'}_retval = '@MANUAL{' . s:key . ','."\n"
let s:{'msthesis'}_required="atry" " r is school
let s:{'msthesis'}_optional1="w" " w is address
let s:{'msthesis'}_optional2="umz" " u is type, w is address
let s:{'msthesis'}_retval = '@MASTERSTHESIS{' . s:key . ','."\n"
let s:{'misc'}_required=""
let s:{'misc'}_optional1="ath"
let s:{'misc'}_optional2="myz"
let s:{'misc'}_retval = '@MISC{' . s:key . ','."\n"
let s:{'phdthesis'}_required="atry" " r is school
let s:{'phdthesis'}_optional1="w" " w is address
let s:{'phdthesis'}_optional2="umz" " u is type
let s:{'phdthesis'}_retval = '@PHDTHESIS{' . s:key . ','."\n"
let s:{'proceedings'}_required="ty"
let s:{'proceedings'}_optional1="ewo" " w is address
let s:{'proceedings'}_optional2="vnsmqz" " q is publisher
let s:{'proceedings'}_retval = '@PROCEEDINGS{' . s:key . ','."\n"
let s:{'techreport'}_required="atiy"
let s:{'techreport'}_optional1="unw" " u is type, w is address
let s:{'techreport'}_optional2="mz"
let s:{'techreport'}_retval = '@TECHREPORT{' . s:key . ','."\n"
let s:{'unpublished'}_required="atz"
let s:{'unpublished'}_optional1="y"
let s:{'unpublished'}_optional2="m"
let s:{'unpublished'}_retval = '@UNPUBLISHED{' . s:key . ','."\n"
" }}}
if exists('s:done')
finish
endif
let s:done = 1
call IMAP ('BBB', "\<C-r>=BibT('', '', 0)\<CR>", 'bib')
call IMAP ('BBL', "\<C-r>=BibT('', 'o', 0)\<CR>", 'bib')
call IMAP ('BBH', "\<C-r>=BibT('', 'O', 0)\<CR>", 'bib')
call IMAP ('BBX', "\<C-r>=BibT('', 'Ox', 0)\<CR>", 'bib')
" BibT: function to generate a formatted bibtex entry {{{
" three sample usages:
" :call BibT() will request type choice
" :call BibT("article") preferred, provides most common fields
" :call BibT("article","ox") more optional fields (o) and extras (x)
"
" Input Arguments:
" type: is one of the types listed above. (this should be a complete name, not
" the acronym).
" options: a string containing 0 or more of the letters 'oOx'
" where
" o: include a bib entry with first set of options
" O: include a bib entry with extended options
" x: incude bib entry with extra options
" prompt: whether the fields are asked to be filled on the command prompt or
" whether place-holders are used. when prompt == 1, then comman line
" questions are used.
"
" Returns:
" a string containing a formatted bib entry
function BibT(type, options, prompt)
if a:type != ''
let choosetype = a:type
else
let types =
\ 'article'."\n".
\ 'booklet'."\n".
\ 'book'."\n".
\ 'conference'."\n".
\ 'inbook'."\n".
\ 'incollection'."\n".
\ 'inproceedings'."\n".
\ 'manual'."\n".
\ 'msthesis'."\n".
\ 'misc'."\n".
\ 'phdthesis'."\n".
\ 'proceedings'."\n".
\ 'techreport'."\n".
\ 'unpublished'
let choosetype = Tex_ChooseFromPrompt(
\ "Choose the type of bibliographic entry: \n" .
\ Tex_CreatePrompt(types, 3, "\n") .
\ "\nEnter number or filename :",
\ types, "\n")
if choosetype == ''
let choosetype = 'article'
endif
if types !~ '^\|\n'.choosetype.'$\|\n'
echomsg 'Please choose only one of the given types'
return
endif
endif
if a:options != ''
let options = a:options
else
let options = ""
endif
let fields = ''
let extras=""
let retval = ""
" define fields
let fields = s:{choosetype}_required
if options =~ 'o' && exists('s:'.choosetype.'_optional1')
let fields = fields . s:{choosetype}_optional1
endif
if options =~ "O" && exists('s:'.choosetype.'_optional2')
if options !~ 'o'&& exists('s:'.choosetype.'_optional1')
let fields = fields . s:{choosetype}_optional1
endif
let fields = fields . s:{choosetype}_optional2
endif
if options =~ "x" && exists('s:'.choosetype.'_extras')
let fields = fields . extras
endif
if exists('g:Bib_'.choosetype.'_options')
let fields = fields . g:Bib_{choosetype}_options
endif
let retval = s:{choosetype}_retval
let i = 0
while i < strlen(fields)
let field = strpart(fields, i, 1)
if exists('s:'.field.'_standsfor')
let field_name = s:{field}_standsfor
let retval = retval.field_name." = {<++>},\n"
endif
let i = i + 1
endwhile
" If the user wants even more fine-tuning...
if Tex_GetVarValue('Bib_'.choosetype.'_extrafields') != ''
let extrafields = Tex_GetVarValue('Bib_'.choosetype.'_extrafields')
let i = 1
while 1
let field_name = Tex_Strntok(extrafields, "\n", i)
if field_name == ''
break
endif
let retval = retval.field_name." = {<++>},\n"
let i = i + 1
endwhile
endif
let retval = retval.'otherinfo = {<++>}'."\n"
let retval = retval."}<++>"."\n"
return IMAP_PutTextWithMovement(retval)
endfunction
" }}}
function! s:Input(prompt, ask) " {{{
if a:ask == 1
let retval = input(a:prompt)
if retval == ''
return "<++>"
endif
else
return "<++>"
endif
endfunction
" }}}
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4

View File

@ -0,0 +1,219 @@
import re
class Bibliography(dict):
def __init__(self, txt, macros={}):
"""
txt:
a string which represents the entire bibtex entry. A typical
entry is of the form:
@ARTICLE{ellington:84:part3,
author = {Ellington, C P},
title = {The Aerodynamics of Hovering Insect Flight. III. Kinematics},
journal = {Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences},
year = {1984},
volume = {305},
pages = {41-78},
number = {1122},
owner = {Srinath},
pdf = {C:\srinath\research\papers\Ellington-3-Kinematics.pdf},
timestamp = {2006.01.02},
}
"""
if macros:
for k, v in macros.iteritems():
txt = txt.replace(k, '{'+v+'}')
m = re.match(r'\s*@(\w+){((\S+),)?(.*)}\s*', txt, re.MULTILINE | re.DOTALL)
if not m:
return None
self['bibtype'] = m.group(1).capitalize()
self['key'] = m.group(3)
self['body'] = m.group(4)
body = self['body']
self['bodytext'] = ''
while 1:
m = re.search(r'(\S+?)\s*=\s*(.)', body)
if not m:
break
field = m.group(1)
body = body[(m.start(2)+1):]
if m.group(2) == '{':
# search for the next closing brace. This is not simply a
# matter of searching for the next closing brace since
# braces can be nested. The following code basically goes
# to the next } which has not already been closed by a
# following {.
mniter = re.finditer(r'{|}', body)
count = 1
while 1:
try:
mn = mniter.next()
except StopIteration:
return None
if mn.group(0) == '{':
count += 1
else:
count -= 1
if count == 0:
value = body[:(mn.start(0))]
break
elif m.group(2) == '"':
# search for the next unquoted double-quote. To be more
# precise, a double quote which is preceded by an even
# number of double quotes.
mn = re.search(r'(?!\\)(\\\\)*"', body)
if not mn:
return None
value = body[:(mn.start(0))]
else:
mn = re.match(r'\d+', body)
if not mn:
raise "Only completely numeral fields can be left unquoted"
value = m.group(2) + mn.group(0)
self[field] = re.sub(r'\s+', ' ', value)
body = body[(mn.start(0)+1):]
self['bodytext'] += (' %s: %s\n' % (field, value))
if self['bibtype'].lower() == 'string':
self['macro'] = {field: value}
self['bodytext'] = self['bodytext'].rstrip()
def __getitem__(self, key):
try:
return dict.__getitem__(self, key)
except KeyError:
return ''
def __str__(self):
if self['bibtype'].lower() == 'string':
return 'String: %(macro)s' % self
elif self['bibtype'].lower() == 'article':
return ('Article [%(key)s]\n' +
'TI "%(title)s"\n' +
'AU %(author)s\n' +
'IN In %(journal)s, %(year)s') % self
elif self['bibtype'].lower() == 'conference':
return ('Conference [%(key)s]\n' +
'TI "%(title)s"\n' +
'AU %(author)s\n' +
'IN In %(booktitle)s, %(year)s') % self
elif self['bibtype'].lower() == 'mastersthesis':
return ('Masters [%(key)s]\n' +
'TI "%(title)s"\n' +
'AU %(author)s\n' +
'IN In %(school)s, %(year)s') % self
elif self['bibtype'].lower() == 'phdthesis':
return ('PhD [%(key)s]\n' +
'TI "%(title)s"\n' +
'AU %(author)s\n' +
'IN In %(school)s, %(year)s') % self
elif self['bibtype'].lower() == 'book':
return ('Book [%(key)s]\n' +
'TI "%(title)s"\n' +
'AU %(author)s\n' +
'IN %(publisher)s, %(year)s') % self
else:
s = '%(bibtype)s [%(key)s]\n' % self
if self['title']:
s += 'TI "%(title)s"\n' % self
if self['author']:
s += 'AU %(author)s\n' % self
for k, v in self.iteritems():
if k not in ['title', 'author', 'bibtype', 'key', 'id', 'file', 'body', 'bodytext']:
s += 'MI %s: %s\n' % (k, v)
return s.rstrip()
def satisfies(self, filters):
for field, regexp in filters:
if not re.search(regexp, self[field], re.I):
return False
return True
class BibFile:
def __init__(self, filelist=''):
self.bibentries = []
self.filters = []
self.macros = {}
self.sortfields = []
if filelist:
for f in filelist.splitlines():
self.addfile(f)
def addfile(self, file):
fields = open(file).read().split('@')
for f in fields:
if not (f and re.match('string', f, re.I)):
continue
b = Bibliography('@' + f)
self.macros.update(b['macro'])
for f in fields:
if not f or re.match('string', f, re.I):
continue
b = Bibliography('@' + f, self.macros)
if b:
b['file'] = file
b['id'] = len(self.bibentries)
self.bibentries += [b]
def addfilter(self, filterspec):
self.filters += [filterspec.split()]
def rmfilters(self):
self.filters = []
def __str__(self):
s = ''
for b in self.bibentries:
if b['key'] and b.satisfies(self.filters):
s += '%s\n\n' % b
return s
def addsortfield(self, field):
self.sortfields += [field]
def rmsortfields(self):
self.sortfields = []
def sort(self):
def cmpfun(b1, b2):
for f in self.sortfields:
c = cmp(b1[f], b2[f])
if c:
return c
return 0
self.bibentries.sort(cmp=cmpfun)
if __name__ == "__main__":
import sys
bf = BibFile(sys.argv[1])
print bf

View File

@ -0,0 +1,145 @@
" ==============================================================================
" History: This was originally part of auctex.vim by Carl Mueller.
" Srinath Avadhanula incorporated it into latex-suite with
" significant modifications.
" Parts of this file may be copyrighted by others as noted.
" CVS: $Id: brackets.vim 997 2006-03-20 09:45:45Z srinathava $
" Description:
" This ftplugin provides the following maps:
" . <M-b> encloses the previous character in \mathbf{}
" . <M-c> is polymorphic as follows:
" Insert mode:
" 1. If the previous character is a letter or number, then capitalize it and
" enclose it in \mathcal{}
" 2. otherwise insert \cite{}
" Visual Mode:
" 1. Enclose selection in \mathcal{}
" . <M-l> is also polymorphic as follows:
" If the character before typing <M-l> is one of '([{|<q', then do the
" following:
" 1. (<M-l> \left(\right
" similarly for [, |
" {<M-l> \left\{\right\}
" 2. <<M-l> \langle\rangle
" 3. q<M-l> \lefteqn{}
" otherwise insert \label{}
" . <M-i> inserts \item commands at the current cursor location depending on
" the surrounding environment. For example, inside itemize, it will
" insert a simple \item, but within a description, it will insert
" \item[<+label+>] etc.
"
" These functions make it extremeley easy to do all the \left \right stuff in
" latex.
" ==============================================================================
" Avoid reinclusion.
if exists('b:did_brackets')
finish
endif
let b:did_brackets = 1
" define the funtions only once.
if exists('*Tex_MathBF')
finish
endif
" Tex_MathBF: encloses te previous letter/number in \mathbf{} {{{
" Description:
function! Tex_MathBF()
return "\<Left>\\mathbf{\<Right>}"
endfunction " }}}
" Tex_MathCal: enclose the previous letter/number in \mathcal {{{
" Description:
" if the last character is not a letter/number, then insert \cite{}
function! Tex_MathCal()
let line = getline(line("."))
let char = line[col(".")-2]
if char =~ '[a-zA-Z0-9]'
return "\<BS>".'\mathcal{'.toupper(char).'}'
else
return IMAP_PutTextWithMovement('\cite{<++>}<++>')
endif
endfunction
" }}}
" Tex_LeftRight: maps <M-l> in insert mode. {{{
" Description:
" This is a polymorphic function, which maps the behaviour of <M-l> in the
" following way:
" If the character before typing <M-l> is one of '([{|<q', then do the
" following:
" 1. (<M-l> \left(<++>\right<++>
" similarly for [, |
" {<M-l> \left\{<++>\right\}<++>
" 2. <<M-l> \langle<++>\rangle<++>
" 3. q<M-l> \lefteqn{<++>}<++>
" otherwise insert \label{<++>}<++>
function! Tex_LeftRight()
let line = getline(line("."))
let char = line[col(".")-2]
let previous = line[col(".")-3]
let matchedbrackets = '()[]{}||'
if char =~ '(\|\[\|{\||'
let add = ''
if char =~ '{'
let add = "\\"
endif
let rhs = matchstr(matchedbrackets, char.'\zs.\ze')
return "\<BS>".IMAP_PutTextWithMovement('\left'.add.char.'<++>\right'.add.rhs.'<++>')
elseif char == '<'
return "\<BS>".IMAP_PutTextWithMovement('langle<++>\rangle<++>')
elseif char == 'q'
return "\<BS>".IMAP_PutTextWithMovement('\lefteqn{<++>}<++>')
else
return IMAP_PutTextWithMovement('\label{<++>}<++>')
endif
endfunction " }}}
" Tex_PutLeftRight: maps <M-l> in normal mode {{{
" Description:
" Put \left...\right in front of the matched brackets.
function! Tex_PutLeftRight()
let previous = getline(line("."))[col(".") - 2]
let char = getline(line("."))[col(".") - 1]
if previous == '\'
if char == '{'
exe "normal ileft\\\<Esc>l%iright\\\<Esc>l%"
elseif char == '}'
exe "normal iright\\\<Esc>l%ileft\\\<Esc>l%"
endif
elseif char =~ '\[\|('
exe "normal i\\left\<Esc>l%i\\right\<Esc>l%"
elseif char =~ '\]\|)'
exe "normal i\\right\<Esc>l%i\\left\<Esc>l%"
endif
endfunction " }}}
" Provide <plug>'d mapping for easy user customization. {{{
inoremap <silent> <Plug>Tex_MathBF <C-r>=Tex_MathBF()<CR>
inoremap <silent> <Plug>Tex_MathCal <C-r>=Tex_MathCal()<CR>
inoremap <silent> <Plug>Tex_LeftRight <C-r>=Tex_LeftRight()<CR>
vnoremap <silent> <Plug>Tex_MathBF <C-C>`>a}<Esc>`<i\mathbf{<Esc>
vnoremap <silent> <Plug>Tex_MathCal <C-C>`>a}<Esc>`<i\mathcal{<Esc>
nnoremap <silent> <Plug>Tex_LeftRight :call Tex_PutLeftRight()<CR>
" }}}
" Tex_SetBracketingMaps: create mappings for the current buffer {{{
function! <SID>Tex_SetBracketingMaps()
call Tex_MakeMap('<M-b>', '<Plug>Tex_MathBF', 'i', '<buffer> <silent>')
call Tex_MakeMap('<M-c>', '<Plug>Tex_MathCal', 'i', '<buffer> <silent>')
call Tex_MakeMap('<M-l>', '<Plug>Tex_LeftRight', 'i', '<buffer> <silent>')
call Tex_MakeMap('<M-b>', '<Plug>Tex_MathBF', 'v', '<buffer> <silent>')
call Tex_MakeMap('<M-c>', '<Plug>Tex_MathCal', 'v', '<buffer> <silent>')
call Tex_MakeMap('<M-l>', '<Plug>Tex_LeftRight', 'n', '<buffer> <silent>')
endfunction
" }}}
augroup LatexSuite
au LatexSuite User LatexSuiteFileType
\ call Tex_Debug('brackets.vim: Catching LatexSuiteFileType event', 'brak') |
\ call <SID>Tex_SetBracketingMaps()
augroup END
" vim:fdm=marker

View File

@ -0,0 +1,820 @@
"=============================================================================
" File: compiler.vim
" Author: Srinath Avadhanula
" Created: Tue Apr 23 05:00 PM 2002 PST
"
" Description: functions for compiling/viewing/searching latex documents
" CVS: $Id: compiler.vim 997 2006-03-20 09:45:45Z srinathava $
"=============================================================================
" Tex_SetTeXCompilerTarget: sets the 'target' for the next call to Tex_RunLaTeX() {{{
function! Tex_SetTeXCompilerTarget(type, target)
call Tex_Debug("+Tex_SetTeXCompilerTarget: setting target to [".a:target."] for ".a:type."r", "comp")
if a:target == ''
let target = Tex_GetVarValue('Tex_DefaultTargetFormat')
let target = input('Enter the target format for '.a:type.'r: ', target)
else
let target = a:target
endif
if target == ''
let target = 'dvi'
endif
let targetRule = Tex_GetVarValue('Tex_'.a:type.'Rule_'.target)
if targetRule != ''
if a:type == 'Compile'
let &l:makeprg = escape(targetRule, Tex_GetVarValue('Tex_EscapeChars'))
elseif a:type == 'View'
let s:viewer = targetRule
endif
let s:target = target
elseif Tex_GetVarValue('Tex_'.a:type.'RuleComplete_'.target) != ''
let s:target = target
else
let curd = getcwd()
exe 'cd '.expand('%:p:h')
if !Tex_GetVarValue('Tex_UseMakefile') || (glob('makefile*') == '' && glob('Makefile*') == '')
if has('gui_running')
call confirm(
\'No '.a:type.' rule defined for target '.target."\n".
\'Please specify a rule in $VIMRUNTIME/ftplugin/tex/texrc'."\n".
\' :help Tex_'.a:type.'Rule_format'."\n".
\'for more information',
\"&ok", 1, 'Warning')
else
call input(
\'No '.a:type.' rule defined for target '.target."\n".
\'Please specify a rule in $VIMRUNTIME/ftplugin/tex/texrc'."\n".
\' :help Tex_'.a:type.'Rule_format'."\n".
\'for more information'
\)
endif
else
echomsg 'Assuming target is for makefile'
let s:target = target
endif
exe 'cd '.curd
endif
endfunction
function! SetTeXTarget(...)
if a:0 < 1
let target = Tex_GetVarValue('Tex_DefaultTargetFormat')
let target = input('Enter the target format for compiler and viewer: ', target)
else
let target = a:1
endif
if target == ''
let target = 'dvi'
endif
call Tex_SetTeXCompilerTarget('Compile', target)
call Tex_SetTeXCompilerTarget('View', target)
endfunction
com! -nargs=1 TCTarget :call Tex_SetTeXCompilerTarget('Compile', <f-args>)
com! -nargs=1 TVTarget :call Tex_SetTeXCompilerTarget('View', <f-args>)
com! -nargs=? TTarget :call SetTeXTarget(<f-args>)
" }}}
" Tex_CompileLatex: compiles the present file. {{{
" Description:
function! Tex_CompileLatex()
if &ft != 'tex'
echo "calling Tex_RunLaTeX from a non-tex file"
return
end
" close any preview windows left open.
pclose!
let curd = getcwd()
" Find the main file corresponding to this file. Always cd to the
" directory containing the file to avoid problems with the directory
" containing spaces.
" Latex on linux seems to be unable to handle file names with spaces at
" all! Therefore for the moment, do not attempt to handle spaces in the
" file name.
if exists('b:fragmentFile')
let mainfname = expand('%:p:t')
call Tex_CD(expand('%:p:h'))
else
let mainfname = Tex_GetMainFileName(':p:t')
call Tex_CD(Tex_GetMainFileName(':p:h'))
end
call Tex_Debug('Tex_CompileLatex: getting mainfname = ['.mainfname.'] from Tex_GetMainFileName', 'comp')
" if a makefile exists and the user wants to use it, then use that
" irrespective of whether *.latexmain exists or not. mainfname is still
" extracted from *.latexmain (if possible) log file name depends on the
" main file which will be compiled.
if Tex_GetVarValue('Tex_UseMakefile') && (glob('makefile') != '' || glob('Makefile') != '')
let _makeprg = &l:makeprg
call Tex_Debug("Tex_CompileLatex: using the makefile in the current directory", "comp")
let &l:makeprg = 'make $*'
if exists('s:target')
call Tex_Debug('Tex_CompileLatex: execing [make! '.s:target.']', 'comp')
exec 'make! '.s:target
else
call Tex_Debug('Tex_CompileLatex: execing [make!]', 'comp')
exec 'make!'
endif
let &l:makeprg = _makeprg
else
" If &makeprg has something like "$*.ps", it means that it wants the
" file-name without the extension... Therefore remove it.
if &makeprg =~ '\$\*\.\w\+'
let mainfname = fnamemodify(mainfname, ':r')
endif
call Tex_Debug('Tex_CompileLatex: execing [make! '.mainfname.']', 'comp')
exec 'make! '.mainfname
endif
redraw!
call Tex_CD(curd)
endfunction " }}}
" Tex_RunLaTeX: compilation function {{{
" this function runs the latex command on the currently open file. often times
" the file being currently edited is only a fragment being \input'ed into some
" master tex file. in this case, make a file called mainfile.latexmain in the
" directory containig the file. in other words, if the current file is
" ~/thesis/chapter.tex
" so that doing "latex chapter.tex" doesnt make sense, then make a file called
" main.tex.latexmain
" in the ~/thesis directory. this will then run "latex main.tex" when
" Tex_RunLaTeX() is called.
function! Tex_RunLaTeX()
call Tex_Debug('+Tex_RunLaTeX, b:fragmentFile = '.exists('b:fragmentFile'), 'comp')
let dir = expand("%:p:h").'/'
let curd = getcwd()
call Tex_CD(expand("%:p:h"))
let initTarget = s:target
" first get the dependency chain of this format.
call Tex_Debug("Tex_RunLaTeX: compiling to target [".s:target."]", "comp")
if Tex_GetVarValue('Tex_FormatDependency_'.s:target) != ''
let dependency = Tex_GetVarValue('Tex_FormatDependency_'.s:target)
if dependency !~ ','.s:target.'$'
let dependency = dependency.','.s:target
endif
else
let dependency = s:target
endif
call Tex_Debug('Tex_RunLaTeX: getting dependency chain = ['.dependency.']', 'comp')
" now compile to the final target format via each dependency.
let i = 1
while Tex_Strntok(dependency, ',', i) != ''
let s:target = Tex_Strntok(dependency, ',', i)
call Tex_SetTeXCompilerTarget('Compile', s:target)
call Tex_Debug('Tex_RunLaTeX: setting target to '.s:target, 'comp')
if Tex_GetVarValue('Tex_MultipleCompileFormats') =~ '\<'.s:target.'\>'
call Tex_Debug("Tex_RunLaTeX: compiling file multiple times via Tex_CompileMultipleTimes", "comp")
call Tex_CompileMultipleTimes()
else
call Tex_Debug("Tex_RunLaTeX: compiling file once via Tex_CompileLatex", "comp")
call Tex_CompileLatex()
endif
let errlist = Tex_GetErrorList()
call Tex_Debug("Tex_RunLaTeX: errlist = [".errlist."]", "comp")
" If there are any errors, then break from the rest of the steps
if errlist =~ '\v(error|warning)'
call Tex_Debug('Tex_RunLaTeX: There were errors in compiling, breaking chain...', 'comp')
break
endif
let i = i + 1
endwhile
let s:target = initTarget
let s:origwinnum = winnr()
call Tex_SetupErrorWindow()
call Tex_CD(curd)
call Tex_Debug("-Tex_RunLaTeX", "comp")
endfunction
" }}}
" Tex_ViewLaTeX: opens viewer {{{
" Description: opens the DVI viewer for the file being currently edited.
" Again, if the current file is a \input in a master file, see text above
" Tex_RunLaTeX() to see how to set this information.
function! Tex_ViewLaTeX()
if &ft != 'tex'
echo "calling Tex_ViewLaTeX from a non-tex file"
return
end
let curd = getcwd()
" If b:fragmentFile is set, it means this file was compiled as a fragment
" using Tex_PartCompile, which means that we want to ignore any
" *.latexmain or makefile's.
if !exists('b:fragmentFile')
" cd to the location of the file to avoid having to deal with spaces
" in the directory name.
let mainfname = Tex_GetMainFileName(':p:t:r')
call Tex_CD(Tex_GetMainFileName(':p:h'))
else
let mainfname = expand("%:p:t:r")
call Tex_CD(expand("%:p:h"))
endif
if Tex_GetVarValue('Tex_ViewRuleComplete_'.s:target) != ''
let execString = Tex_GetVarValue('Tex_ViewRuleComplete_'.s:target)
let execString = substitute(execString, '{v:servername}', v:servername, 'g')
elseif has('win32')
" unfortunately, yap does not allow the specification of an external
" editor from the command line. that would have really helped ensure
" that this particular vim and yap are connected.
let execString = 'start '.s:viewer.' "$*.'.s:target.'"'
elseif has('macunix')
if strlen(s:viewer)
let s:viewer = '-a '.s:viewer
endif
let execString = 'open '.s:viewer.' $*.'.s:target
else
" taken from Dimitri Antoniou's tip on vim.sf.net (tip #225).
" slight change to actually use the current servername instead of
" hardcoding it as xdvi.
" Using an option for specifying the editor in the command line
" because that seems to not work on older bash'es.
if s:target == 'dvi'
if Tex_GetVarValue('Tex_UseEditorSettingInDVIViewer') == 1 &&
\ v:servername != '' &&
\ (s:viewer == "xdvi" || s:viewer == "xdvik")
let execString = s:viewer.' -editor "gvim --servername '.v:servername.
\ ' --remote-silent +\%l \%f" $*.dvi &'
elseif Tex_GetVarValue('Tex_UseEditorSettingInDVIViewer') == 1 &&
\ s:viewer == "kdvi"
let execString = 'kdvi --unique $*.dvi &'
else
let execString = s:viewer.' $*.dvi &'
endif
else
let execString = s:viewer.' $*.'.s:target.' &'
endif
end
let execString = substitute(execString, '\V$*', mainfname, 'g')
call Tex_Debug("Tex_ViewLaTeX: execString = ".execString, "comp")
exec 'silent! !'.execString
if !has('gui_running')
redraw!
endif
call Tex_CD(curd)
endfunction
" }}}
" Tex_ForwardSearchLaTeX: searches for current location in dvi file. {{{
" Description: if the DVI viewr is compatible, then take the viewer to that
" position in the dvi file. see docs for Tex_RunLaTeX() to set a
" master file if this is an \input'ed file.
" Tip: With YAP on Windows, it is possible to do forward and inverse searches
" on DVI files. to do forward search, you'll have to compile the file
" with the --src-specials option. then set the following as the command
" line in the 'view/options/inverse search' dialog box:
" gvim --servername LATEX --remote-silent +%l "%f"
" For inverse search, if you are reading this, then just pressing \ls
" will work.
function! Tex_ForwardSearchLaTeX()
if &ft != 'tex'
echo "calling Tex_ViewLaTeX from a non-tex file"
return
end
" only know how to do forward search for yap on windows and xdvik (and
" some newer versions of xdvi) on unices. Therefore forward searching will
" automatically open the DVI viewer irrespective of what the user chose as
" the default view format.
if Tex_GetVarValue('Tex_ViewRule_dvi') == ''
return
endif
let viewer = Tex_GetVarValue('Tex_ViewRule_dvi')
let curd = getcwd()
let mainfname = Tex_GetMainFileName(':t')
let mainfnameRoot = fnamemodify(Tex_GetMainFileName(), ':t:r')
" cd to the location of the file to avoid problems with directory name
" containing spaces.
call Tex_CD(Tex_GetMainFileName(':p:h'))
" inverse search tips taken from Dimitri Antoniou's tip and Benji Fisher's
" tips on vim.sf.net (vim.sf.net tip #225)
if has('win32')
let execString = 'silent! !start '. viewer.' -s '.line('.').expand('%').' '.mainfnameRoot
else
if Tex_GetVarValue('Tex_UseEditorSettingInDVIViewer') == 1 &&
\ exists('v:servername') &&
\ (viewer == "xdvi" || viewer == "xdvik")
let execString = 'silent! !'.viewer.' -name xdvi -sourceposition '.line('.').expand("%").
\ ' -editor "gvim --servername '.v:servername.' --remote-silent +\%l \%f" '.
\ mainfnameRoot.'.dvi &'
elseif Tex_GetVarValue('Tex_UseEditorSettingInDVIViewer') == 1 && viewer == "kdvi"
let execString = 'silent! !kdvi --unique file:'.mainfnameRoot.'.dvi\#src:'.line('.').expand("%").' &'
else
let execString = 'silent! !'.viewer.' -name xdvi -sourceposition '.line('.').expand("%").' '.mainfnameRoot.'.dvi &'
endif
end
call Tex_Debug("Tex_ForwardSearchLaTeX: execString = ".execString, "comp")
execute execString
if !has('gui_running')
redraw!
endif
call Tex_CD(curd)
endfunction
" }}}
" ==============================================================================
" Functions for compiling parts of a file.
" ==============================================================================
" Tex_PartCompile: compiles selected fragment {{{
" Description: creates a temporary file from the selected fragment of text
" prepending the preamble and \end{document} and then asks Tex_RunLaTeX() to
" compile it.
function! Tex_PartCompile() range
call Tex_Debug('+Tex_PartCompile', 'comp')
" Save position
let pos = line('.').' | normal! '.virtcol('.').'|'
" Get a temporary file in the same directory as the file from which
" fragment is being extracted. This is to enable the use of relative path
" names in the fragment.
let tmpfile = Tex_GetTempName(expand('%:p:h'))
" Remember all the temp files and for each temp file created, remember
" where the temp file came from.
let s:Tex_NumTempFiles = (exists('s:Tex_NumTempFiles') ? s:Tex_NumTempFiles + 1 : 1)
let s:Tex_TempFiles = (exists('s:Tex_TempFiles') ? s:Tex_TempFiles : '')
\ . tmpfile."\n"
let s:Tex_TempFile_{s:Tex_NumTempFiles} = tmpfile
" TODO: For a function Tex_RestoreFragment which restores a temp file to
" its original location.
let s:Tex_TempFileOrig_{s:Tex_NumTempFiles} = expand('%:p')
let s:Tex_TempFileRange_{s:Tex_NumTempFiles} = a:firstline.','.a:lastline
" Set up an autocmd to clean up the temp files when Vim exits.
if Tex_GetVarValue('Tex_RemoveTempFiles')
augroup RemoveTmpFiles
au!
au VimLeave * :call Tex_RemoveTempFiles()
augroup END
endif
" If mainfile exists open it in tiny window and extract preamble there,
" otherwise do it from current file
let mainfile = Tex_GetMainFileName(":p")
exe 'bot 1 split '.escape(mainfile, ' ')
exe '1,/\s*\\begin{document}/w '.tmpfile
wincmd q
exe a:firstline.','.a:lastline."w! >> ".tmpfile
" edit the temporary file
exec 'drop '.tmpfile
" append the \end{document} line.
$ put ='\end{document}'
w
" set this as a fragment file.
let b:fragmentFile = 1
silent! call Tex_RunLaTeX()
endfunction " }}}
" Tex_RemoveTempFiles: cleans up temporary files created during part compilation {{{
" Description: During part compilation, temporary files containing the
" visually selected text are created. These files need to be
" removed when Vim exits to avoid "file leakage".
function! Tex_RemoveTempFiles()
if !exists('s:Tex_NumTempFiles') || !Tex_GetVarValue('Tex_RemoveTempFiles')
return
endif
let i = 1
while i <= s:Tex_NumTempFiles
let tmpfile = s:Tex_TempFile_{i}
" Remove the tmp file and all other associated files such as the
" .log files etc.
call Tex_DeleteFile(fnamemodify(tmpfile, ':p:r').'.*')
let i = i + 1
endwhile
endfunction " }}}
" ==============================================================================
" Compiling a file multiple times to resolve references/citations etc.
" ==============================================================================
" Tex_CompileMultipleTimes: The main function {{{
" Description: compiles a file multiple times to get cross-references right.
function! Tex_CompileMultipleTimes()
" Just extract the root without any extension because we want to construct
" the log file names etc from it.
let curd = getcwd()
let mainFileName_root = Tex_GetMainFileName(':p:t:r')
call Tex_CD(Tex_GetMainFileName(':p:h'))
" First ignore undefined references and the
" "rerun to get cross-references right" message from
" the compiler output.
let origlevel = Tex_GetVarValue('Tex_IgnoreLevel')
let origpats = Tex_GetVarValue('Tex_IgnoredWarnings')
let g:Tex_IgnoredWarnings = g:Tex_IgnoredWarnings."\n"
\ . 'Reference %.%# undefined'."\n"
\ . 'Rerun to get cross-references right'
TCLevel 1000
let idxFileName = mainFileName_root.'.idx'
let auxFileName = mainFileName_root.'.aux'
let runCount = 0
let needToRerun = 1
while needToRerun == 1 && runCount < 5
" assume we need to run only once.
let needToRerun = 0
let idxlinesBefore = Tex_CatFile(idxFileName)
let auxlinesBefore = Tex_GetAuxFile(auxFileName)
" first run latex.
echomsg "latex run number : ".(runCount+1)
call Tex_Debug("Tex_CompileMultipleTimes: latex run number : ".(runCount+1), "comp")
silent! call Tex_CompileLatex()
" If there are errors in any latex compilation step, immediately
" return. For now, do not bother with warnings because those might go
" away after compiling again or after bibtex is run etc.
let errlist = Tex_GetErrorList()
call Tex_Debug("Tex_CompileMultipleTimes: errors = [".errlist."]", "comp")
if errlist =~ 'error'
let g:Tex_IgnoredWarnings = origpats
exec 'TCLevel '.origlevel
return
endif
let idxlinesAfter = Tex_CatFile(idxFileName)
" If .idx file changed, then run makeindex to generate the new .ind
" file and remember to rerun latex.
if runCount == 0 && glob(idxFileName) != '' && idxlinesBefore != idxlinesAfter
echomsg "Running makeindex..."
let temp_mp = &mp | let &mp = Tex_GetVarValue('Tex_MakeIndexFlavor')
exec 'silent! make '.mainFileName_root
let &mp = temp_mp
let needToRerun = 1
endif
" The first time we see if we need to run bibtex and if the .bbl file
" changes, we will rerun latex.
if runCount == 0 && Tex_IsPresentInFile('\\bibdata', mainFileName_root.'.aux')
let bibFileName = mainFileName_root.'.bbl'
let biblinesBefore = Tex_CatFile(bibFileName)
echomsg "Running '".Tex_GetVarValue('Tex_BibtexFlavor')."' ..."
let temp_mp = &mp | let &mp = Tex_GetVarValue('Tex_BibtexFlavor')
exec 'silent! make '.mainFileName_root
let &mp = temp_mp
let biblinesAfter = Tex_CatFile(bibFileName)
" If the .bbl file changed after running bibtex, we need to
" latex again.
if biblinesAfter != biblinesBefore
echomsg 'Need to rerun because bibliography file changed...'
call Tex_Debug('Tex_CompileMultipleTimes: Need to rerun because bibliography file changed...', 'comp')
let needToRerun = 1
endif
endif
" check if latex asks us to rerun
let auxlinesAfter = Tex_GetAuxFile(auxFileName)
if auxlinesAfter != auxlinesBefore
echomsg "Need to rerun because the AUX file changed..."
call Tex_Debug("Tex_CompileMultipleTimes: Need to rerun to get cross-references right...", 'comp')
let needToRerun = 1
endif
let runCount = runCount + 1
endwhile
call Tex_Debug("Tex_CompileMultipleTimes: Ran latex ".runCount." time(s)", "comp")
echomsg "Ran latex ".runCount." time(s)"
let g:Tex_IgnoredWarnings = origpats
exec 'TCLevel '.origlevel
" After all compiler calls are done, reparse the .log file for
" errors/warnings to handle the situation where the clist might have been
" emptied because of bibtex/makeindex being run as the last step.
exec 'silent! cfile '.mainFileName_root.'.log'
call Tex_CD(curd)
endfunction " }}}
" Tex_GetAuxFile: get the contents of the AUX file {{{
" Description: get the contents of the AUX file recursively including any
" @\input'ted AUX files.
function! Tex_GetAuxFile(auxFile)
if !filereadable(a:auxFile)
return ''
endif
let auxContents = Tex_CatFile(a:auxFile)
let pattern = '@\input{\(.\{-}\)}'
let auxContents = substitute(auxContents, pattern, '\=Tex_GetAuxFile(submatch(1))', 'g')
return auxContents
endfunction " }}}
" ==============================================================================
" Helper functions for
" . viewing the log file in preview mode.
" . syncing the display between the quickfix window and preview window
" . going to the correct line _and column_ number from from the quick fix
" window.
" ==============================================================================
" Tex_SetupErrorWindow: sets up the cwindow and preview of the .log file {{{
" Description:
function! Tex_SetupErrorWindow()
let mainfname = Tex_GetMainFileName()
let winnum = winnr()
" close the quickfix window before trying to open it again, otherwise
" whether or not we end up in the quickfix window after the :cwindow
" command is not fixed.
cclose
cwindow
" create log file name from mainfname
let mfnlog = fnamemodify(mainfname, ":t:r").'.log'
call Tex_Debug('Tex_SetupErrorWindow: mfnlog = '.mfnlog, 'comp')
" if we moved to a different window, then it means we had some errors.
if winnum != winnr()
if Tex_GetVarValue('Tex_ShowErrorContext')
call Tex_UpdatePreviewWindow(mfnlog)
exe 'nnoremap <buffer> <silent> j j:call Tex_UpdatePreviewWindow("'.mfnlog.'")<CR>'
exe 'nnoremap <buffer> <silent> k k:call Tex_UpdatePreviewWindow("'.mfnlog.'")<CR>'
exe 'nnoremap <buffer> <silent> <up> <up>:call Tex_UpdatePreviewWindow("'.mfnlog.'")<CR>'
exe 'nnoremap <buffer> <silent> <down> <down>:call Tex_UpdatePreviewWindow("'.mfnlog.'")<CR>'
endif
exe 'nnoremap <buffer> <silent> <enter> :call Tex_GotoErrorLocation("'.mfnlog.'")<CR>'
setlocal nowrap
" resize the window to just fit in with the number of lines.
exec ( line('$') < 4 ? line('$') : 4 ).' wincmd _'
if Tex_GetVarValue('Tex_GotoError') == 1
call Tex_GotoErrorLocation(mfnlog)
else
exec s:origwinnum.' wincmd w'
endif
endif
endfunction " }}}
" Tex_PositionPreviewWindow: positions the preview window correctly. {{{
" Description:
" The purpose of this function is to count the number of times an error
" occurs on the same line. or in other words, if the current line is
" something like |10 error|, then we want to count the number of
" lines in the quickfix window before this line which also contain lines
" like |10 error|.
"
function! Tex_PositionPreviewWindow(filename)
if getline('.') !~ '|\d\+ \(error\|warning\)|'
if !search('|\d\+ \(error\|warning\)|')
call Tex_Debug("not finding error pattern anywhere in quickfix window :".bufname(bufnr('%')),
\ 'comp')
pclose!
return
endif
endif
" extract the error pattern (something like 'file.tex|10 error|') on the
" current line.
let errpat = matchstr(getline('.'), '^\f*|\d\+ \(error\|warning\)|\ze')
let errfile = matchstr(getline('.'), '^\f*\ze|\d\+ \(error\|warning\)|')
" extract the line number from the error pattern.
let linenum = matchstr(getline('.'), '|\zs\d\+\ze \(error\|warning\)|')
" if we are on an error, then count the number of lines before this in the
" quickfix window with an error on the same line.
if errpat =~ 'error|$'
" our location in the quick fix window.
let errline = line('.')
" goto the beginning of the quickfix window and begin counting the lines
" which show an error on the same line.
0
let numrep = 0
while 1
" if we are on the same kind of error line, then means we have another
" line containing the same error pattern.
if getline('.') =~ errpat
let numrep = numrep + 1
normal! 0
endif
" if we have reached the original location in the quick fix window,
" then break.
if line('.') == errline
break
else
" otherwise, search for the next line which contains the same
" error pattern again. goto the end of the current line so we
" dont count this line again.
normal! $
call search(errpat, 'W')
endif
endwhile
else
let numrep = 1
endif
if getline('.') =~ '|\d\+ warning|'
let searchpat = escape(matchstr(getline('.'), '|\d\+ warning|\s*\zs.*'), '\ ')
else
let searchpat = 'l\.'.linenum
endif
" We first need to be in the scope of the correct file in the .log file.
" This is important for example, when a.tex and b.tex both have errors on
" line 9 of the file and we want to go to the error of b.tex. Merely
" searching forward from the beginning of the log file for l.9 will always
" land us on the error in a.tex.
if errfile != ''
exec 'silent! bot pedit +/(\\(\\f\\|\\[\\|\]\\|\\s\\)*'.errfile.'/ '.a:filename
else
exec 'bot pedit +0 '.a:filename
endif
" Goto the preview window
" TODO: This is not robust enough. Check that a wincmd j actually takes
" us to the preview window.
wincmd j
" now search forward from this position in the preview window for the
" numrep^th error of the current line in the quickfix window.
while numrep > 0
call search(searchpat, 'W')
let numrep = numrep - 1
endwhile
normal! z.
endfunction " }}}
" Tex_UpdatePreviewWindow: updates the view of the log file {{{
" Description:
" This function should be called when focus is in a quickfix window.
" It opens the log file in a preview window and makes it display that
" part of the log file which corresponds to the error which the user is
" currently on in the quickfix window. Control returns to the quickfix
" window when the function returns.
"
function! Tex_UpdatePreviewWindow(filename)
call Tex_PositionPreviewWindow(a:filename)
if &previewwindow
6 wincmd _
wincmd p
endif
endfunction " }}}
" Tex_GotoErrorLocation: goes to the correct location of error in the tex file {{{
" Description:
" This function should be called when focus is in a quickfix window. This
" function will first open the preview window of the log file (if it is not
" already open), position the display of the preview to coincide with the
" current error under the cursor and then take the user to the file in
" which this error has occured.
"
" The position is both the correct line number and the column number.
function! Tex_GotoErrorLocation(filename)
" first use vim's functionality to take us to the location of the error
" accurate to the line (not column). This lets us go to the correct file
" without applying any logic.
exec "normal! \<enter>"
" If the log file is not found, then going to the correct line number is
" all we can do.
if glob(a:filename) == ''
return
endif
let winnum = winnr()
" then come back to the quickfix window
wincmd w
" find out where in the file we had the error.
let linenum = matchstr(getline('.'), '|\zs\d\+\ze \(warning\|error\)|')
call Tex_PositionPreviewWindow(a:filename)
if getline('.') =~ 'l.\d\+'
let brokenline = matchstr(getline('.'), 'l.'.linenum.' \zs.*\ze')
" If the line is of the form
" l.10 ...and then there was some error
" it means (most probably) that only part of the erroneous line is
" shown. In this case, finding the length of the broken line is not
" correct. Instead goto the beginning of the line and search forward
" for the part which is displayed and then go to its end.
if brokenline =~ '^\M...'
let partline = matchstr(brokenline, '^\M...\m\zs.*')
let normcmd = "0/\\V".escape(partline, "\\")."/e+1\<CR>"
else
let column = strlen(brokenline) + 1
let normcmd = column.'|'
endif
elseif getline('.') =~ 'LaTeX Warning: \(Citation\|Reference\) `.*'
let ref = matchstr(getline('.'), "LaTeX Warning: \\(Citation\\|Reference\\) `\\zs[^']\\+\\ze'")
let normcmd = '0/'.ref."\<CR>"
else
let normcmd = '0'
endif
" go back to the window where we came from.
exec winnum.' wincmd w'
exec 'silent! '.linenum.' | normal! '.normcmd
if !Tex_GetVarValue('Tex_ShowErrorContext')
pclose!
endif
endfunction " }}}
" Tex_SetCompilerMaps: sets maps for compiling/viewing/searching {{{
" Description:
function! <SID>Tex_SetCompilerMaps()
if exists('b:Tex_doneCompilerMaps')
return
endif
let s:ml = exists('g:mapleader') ? g:mapleader : "\\"
nnoremap <buffer> <Plug>Tex_Compile :call Tex_RunLaTeX()<cr>
vnoremap <buffer> <Plug>Tex_Compile :call Tex_PartCompile()<cr>
nnoremap <buffer> <Plug>Tex_View :call Tex_ViewLaTeX()<cr>
nnoremap <buffer> <Plug>Tex_ForwardSearch :call Tex_ForwardSearchLaTeX()<cr>
call Tex_MakeMap(s:ml."ll", "<Plug>Tex_Compile", 'n', '<buffer>')
call Tex_MakeMap(s:ml."ll", "<Plug>Tex_Compile", 'v', '<buffer>')
call Tex_MakeMap(s:ml."lv", "<Plug>Tex_View", 'n', '<buffer>')
call Tex_MakeMap(s:ml."ls", "<Plug>Tex_ForwardSearch", 'n', '<buffer>')
endfunction
" }}}
augroup LatexSuite
au LatexSuite User LatexSuiteFileType
\ call Tex_Debug('compiler.vim: Catching LatexSuiteFileType event', 'comp') |
\ call <SID>Tex_SetCompilerMaps()
augroup END
command! -nargs=0 -range=% TPartCompile :<line1>, <line2> silent! call Tex_PartCompile()
" Setting b:fragmentFile = 1 makes Tex_CompileLatex consider the present file
" the _main_ file irrespective of the presence of a .latexmain file.
command! -nargs=0 TCompileThis let b:fragmentFile = 1
command! -nargs=0 TCompileMainFile let b:fragmentFile = 0
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4

View File

@ -0,0 +1,257 @@
"=============================================================================
" File: custommacros.vim
" Author: Mikolaj Machowski
" Version: 1.0
" Created: Tue Apr 23 05:00 PM 2002 PST
" CVS: $Id: custommacros.vim 997 2006-03-20 09:45:45Z srinathava $
"
" Description: functions for processing custom macros in the
" latex-suite/macros directory
"=============================================================================
let s:path = expand('<sfile>:p:h')
" Set path to macros dir dependent on OS {{{
if has("unix") || has("macunix")
let s:macrodirpath = $HOME."/.vim/ftplugin/latex-suite/macros/"
elseif has("win32")
if exists("$HOME")
let s:macrodirpath = $HOME."/vimfiles/ftplugin/latex-suite/macros/"
else
let s:macrodirpath = $VIM."/vimfiles/ftplugin/latex-suite/macros/"
endif
endif
" }}}
" SetCustomMacrosMenu: sets up the menu for Macros {{{
function! <SID>SetCustomMacrosMenu()
let flist = Tex_FindInRtp('', 'macros')
exe 'amenu '.g:Tex_MacrosMenuLocation.'&New :call <SID>NewMacro("FFFromMMMenu")<CR>'
exe 'amenu '.g:Tex_MacrosMenuLocation.'&Redraw :call RedrawMacro()<CR>'
let i = 1
while 1
let fname = Tex_Strntok(flist, ',', i)
if fname == ''
break
endif
exe "amenu ".g:Tex_MacrosMenuLocation."&Delete.&".i.":<tab>".fname." :call <SID>DeleteMacro('".fname."')<CR>"
exe "amenu ".g:Tex_MacrosMenuLocation."&Edit.&".i.":<tab>".fname." :call <SID>EditMacro('".fname."')<CR>"
exe "imenu ".g:Tex_MacrosMenuLocation."&".i.":<tab>".fname." <C-r>=<SID>ReadMacro('".fname."')<CR>"
exe "nmenu ".g:Tex_MacrosMenuLocation."&".i.":<tab>".fname." i<C-r>=<SID>ReadMacro('".fname."')<CR>"
let i = i + 1
endwhile
endfunction
if g:Tex_Menus
call <SID>SetCustomMacrosMenu()
endif
" }}}
" NewMacro: opens new file in macros directory {{{
function! <SID>NewMacro(...)
" Allow for calling :TMacroNew without argument or from menu and prompt
" for name.
if a:0 > 0
let newmacroname = a:1
else
let newmacroname = input("Name of new macro: ")
if newmacroname == ''
return
endif
endif
if newmacroname == "FFFromMMMenu"
" Check if NewMacro was called from menu and prompt for insert macro
" name
let newmacroname = input("Name of new macro: ")
if newmacroname == ''
return
endif
elseif Tex_FindInRtp(newmacroname, 'macros') != ''
" If macro with this name already exists, prompt for another name.
exe "echomsg 'Macro ".newmacroname." already exists. Try another name.'"
let newmacroname = input("Name of new macro: ")
if newmacroname == ''
return
endif
endif
exec 'split '.Tex_EscapeSpaces(s:macrodirpath.newmacroname)
setlocal filetype=tex
endfunction
" }}}
" RedrawMacro: refreshes macro menu {{{
function! RedrawMacro()
aunmenu TeX-Suite.Macros
call <SID>SetCustomMacrosMenu()
endfunction
" }}}
" ChooseMacro: choose a macro file {{{
" " Description:
function! s:ChooseMacro(ask)
let filelist = Tex_FindInRtp('', 'macros')
let filename = Tex_ChooseFromPrompt(
\ a:ask."\n" .
\ Tex_CreatePrompt(filelist, 2, ',') .
\ "\nEnter number or filename :",
\ filelist, ',')
endfunction
" }}}
" DeleteMacro: deletes macro file {{{
function! <SID>DeleteMacro(...)
if a:0 > 0
let filename = a:1
else
let filename = s:ChooseMacro('Choose a macro file for deletion :')
endif
if !filereadable(s:macrodirpath.filename)
" When file is not in local directory decline to remove it.
call confirm('This file is not in your local directory: '.filename."\n".
\ 'It will not be deleted.' , '&OK', 1)
else
let ch = confirm('Really delete '.filename.' ?', "&Yes\n&No", 2)
if ch == 1
call delete(s:macrodirpath.filename)
endif
call RedrawMacro()
endif
endfunction
" }}}
" EditMacro: edits macro file {{{
function! <SID>EditMacro(...)
if a:0 > 0
let filename = a:1
else
let filename = s:ChooseMacro('Choose a macro file for insertion:')
endif
if filereadable(s:macrodirpath.filename)
" If file exists in local directory open it.
exec 'split '.Tex_EscapeSpaces(s:macrodirpath.filename)
else
" But if file doesn't exist in local dir it probably is in user
" restricted area. Instead opening try to copy it to local dir.
" Pity VimL doesn't have mkdir() function :)
let ch = confirm("You are trying to edit file which is probably read-only.\n".
\ "It will be copied to your local LaTeX-Suite macros directory\n".
\ "and you will be operating on local copy with suffix -local.\n".
\ "It will succeed only if ftplugin/latex-suite/macros dir exists.\n".
\ "Do you agree?", "&Yes\n&No", 1)
if ch == 1
" But there is possibility we already created local modification.
" Check it and offer opening this file.
if filereadable(s:macrodirpath.filename.'-local')
let ch = confirm('Local version of '.filename." already exists.\n".
\ 'Do you want to open it or overwrite with original version?',
\ "&Open\nOver&write\n&Cancel", 1)
if ch == 1
exec 'split '.Tex_EscapeSpaces(s:macrodirpath.filename.'-local')
elseif ch == 2
new
exe '0read '.Tex_FindInRtp(filename, 'macros')
" This is possible macro was edited before, wipe it out.
if bufexists(s:macrodirpath.filename.'-local')
exe 'bwipe '.s:macrodirpath.filename.'-local'
endif
exe 'write! '.s:macrodirpath.filename.'-local'
else
return
endif
else
" If file doesn't exist, open new file, read in system macro and
" save it in local macro dir with suffix -local
new
exe '0read '.Tex_FindInRtp(filename, 'macros')
exe 'write '.s:macrodirpath.filename.'-local'
endif
endif
endif
setlocal filetype=tex
endfunction
" }}}
" ReadMacro: reads in a macro from a macro file. {{{
" allowing for placement via placeholders.
function! <SID>ReadMacro(...)
if a:0 > 0
let filename = a:1
else
let filelist = Tex_FindInRtp('', 'macros')
let filename =
\ Tex_ChooseFromPrompt("Choose a macro file:\n" .
\ Tex_CreatePrompt(filelist, 2, ',') .
\ "\nEnter number or name of file :",
\ filelist, ',')
endif
let fname = Tex_FindInRtp(filename, 'macros', ':p')
let markerString = '<---- Latex Suite End Macro ---->'
let _a = @a
let position = line('.').' | normal! '.virtcol('.').'|'
silent! call append(line('.'), markerString)
silent! exec "read ".fname
silent! exec "normal! V/^".markerString."$/-1\<CR>\"ax"
" This is kind of tricky: At this stage, we are one line after the one we
" started from with the marker text on it. We need to
" 1. remove the marker and the line.
" 2. get focus to the previous line.
" 3. not remove anything from the previous line.
silent! exec "normal! $v0k$\"_x"
call Tex_CleanSearchHistory()
let @a = substitute(@a, '['."\n\r\t ".']*$', '', '')
let textWithMovement = IMAP_PutTextWithMovement(@a)
let @a = _a
return textWithMovement
endfunction
" }}}
" commands for macros {{{
com! -nargs=? TMacroNew :call <SID>NewMacro(<f-args>)
" This macros had to have 2 versions:
if v:version >= 602
com! -complete=custom,Tex_CompleteMacroName -nargs=? TMacro
\ :let s:retVal = <SID>ReadMacro(<f-args>) <bar> normal! i<C-r>=s:retVal<CR>
com! -complete=custom,Tex_CompleteMacroName -nargs=? TMacroEdit
\ :call <SID>EditMacro(<f-args>)
com! -complete=custom,Tex_CompleteMacroName -nargs=? TMacroDelete
\ :call <SID>DeleteMacro(<f-args>)
" Tex_CompleteMacroName: for completing names in TMacro... commands {{{
" Description: get list of macro names with Tex_FindInRtp(), remove full path
" and return list of names separated with newlines.
"
function! Tex_CompleteMacroName(A,P,L)
" Get name of macros from all runtimepath directories
let macronames = Tex_FindInRtp('', 'macros')
" Separate names with \n not ,
let macronames = substitute(macronames,',','\n','g')
return macronames
endfunction
" }}}
else
com! -nargs=? TMacro
\ :let s:retVal = <SID>ReadMacro(<f-args>) <bar> normal! i<C-r>=s:retVal<CR>
com! -nargs=? TMacroEdit :call <SID>EditMacro(<f-args>)
com! -nargs=? TMacroDelete :call <SID>DeleteMacro(<f-args>)
endif
" }}}
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4

View File

@ -0,0 +1,124 @@
"=============================================================================
" File: diacritics.vim
" Author: Lubomir Host
" Created: Tue Apr 23 07:00 PM 2002 PST
"
" Description: shortcuts for all diacritics.
"=============================================================================
if !g:Tex_Diacritics
finish
endif
" \'{a} {{{
call IMAP ('=a', "\\\'{a}", 'tex')
call IMAP ('=b', "\\'{b}", 'tex')
call IMAP ('=c', "\\'{c}", 'tex')
call IMAP ('=d', "\\'{d}", 'tex')
call IMAP ('=e', "\\'{e}", 'tex')
call IMAP ('=f', "\\'{f}", 'tex')
call IMAP ('=g', "\\'{g}", 'tex')
call IMAP ('=h', "\\'{h}", 'tex')
call IMAP ('=i', "\\'{\i}", 'tex')
call IMAP ('=j', "\\'{j}", 'tex')
call IMAP ('=k', "\\'{k}", 'tex')
call IMAP ('=l', "\\'{l}", 'tex')
call IMAP ('=m', "\\'{m}", 'tex')
call IMAP ('=n', "\\'{n}", 'tex')
call IMAP ('=o', "\\'{o}", 'tex')
call IMAP ('=p', "\\'{p}", 'tex')
call IMAP ('=q', "\\'{q}", 'tex')
call IMAP ('=r', "\\'{r}", 'tex')
call IMAP ('=s', "\\'{s}", 'tex')
call IMAP ('=t', "\\'{t}", 'tex')
call IMAP ('=u', "\\'{u}", 'tex')
call IMAP ('=v', "\\'{v}", 'tex')
call IMAP ('=w', "\\'{w}", 'tex')
call IMAP ('=x', "\\'{x}", 'tex')
call IMAP ('=y', "\\'{y}", 'tex')
call IMAP ('=z', "\\'{z}", 'tex')
call IMAP ('=A', "\\'{A}", 'tex')
call IMAP ('=B', "\\'{B}", 'tex')
call IMAP ('=C', "\\'{C}", 'tex')
call IMAP ('=D', "\\'{D}", 'tex')
call IMAP ('=E', "\\'{E}", 'tex')
call IMAP ('=F', "\\'{F}", 'tex')
call IMAP ('=G', "\\'{G}", 'tex')
call IMAP ('=H', "\\'{H}", 'tex')
call IMAP ('=I', "\\'{\I}", 'tex')
call IMAP ('=J', "\\'{J}", 'tex')
call IMAP ('=K', "\\'{K}", 'tex')
call IMAP ('=L', "\\'{L}", 'tex')
call IMAP ('=M', "\\'{M}", 'tex')
call IMAP ('=N', "\\'{N}", 'tex')
call IMAP ('=O', "\\'{O}", 'tex')
call IMAP ('=P', "\\'{P}", 'tex')
call IMAP ('=Q', "\\'{Q}", 'tex')
call IMAP ('=R', "\\'{R}", 'tex')
call IMAP ('=S', "\\'{S}", 'tex')
call IMAP ('=T', "\\'{T}", 'tex')
call IMAP ('=U', "\\'{U}", 'tex')
call IMAP ('=V', "\\'{V}", 'tex')
call IMAP ('=W', "\\'{W}", 'tex')
call IMAP ('=X', "\\'{X}", 'tex')
call IMAP ('=Y', "\\'{Y}", 'tex')
call IMAP ('=Z', "\\'{Z}", 'tex')
" }}}
" \v{a} {{{
call IMAP ('+a', "\\v{a}", 'tex')
call IMAP ('+b', "\\v{b}", 'tex')
call IMAP ('+c', "\\v{c}", 'tex')
call IMAP ('+d', "\\v{d}", 'tex')
call IMAP ('+e', "\\v{e}", 'tex')
call IMAP ('+f', "\\v{f}", 'tex')
call IMAP ('+g', "\\v{g}", 'tex')
call IMAP ('+h', "\\v{h}", 'tex')
call IMAP ('+i', "\\v{\i}", 'tex')
call IMAP ('+j', "\\v{j}", 'tex')
call IMAP ('+k', "\\v{k}", 'tex')
call IMAP ('+l', "\\q l", 'tex')
call IMAP ('+m', "\\v{m}", 'tex')
call IMAP ('+n', "\\v{n}", 'tex')
call IMAP ('+o', "\\v{o}", 'tex')
call IMAP ('+p', "\\v{p}", 'tex')
call IMAP ('+q', "\\v{q}", 'tex')
call IMAP ('+r', "\\v{r}", 'tex')
call IMAP ('+s', "\\v{s}", 'tex')
call IMAP ('+t', "\\q t", 'tex')
call IMAP ('+u', "\\v{u}", 'tex')
call IMAP ('+v', "\\v{v}", 'tex')
call IMAP ('+w', "\\v{w}", 'tex')
call IMAP ('+x', "\\v{x}", 'tex')
call IMAP ('+y', "\\v{y}", 'tex')
call IMAP ('+z', "\\v{z}", 'tex')
call IMAP ('+A', "\\v{A}", 'tex')
call IMAP ('+B', "\\v{B}", 'tex')
call IMAP ('+C', "\\v{C}", 'tex')
call IMAP ('+D', "\\v{D}", 'tex')
call IMAP ('+E', "\\v{E}", 'tex')
call IMAP ('+F', "\\v{F}", 'tex')
call IMAP ('+G', "\\v{G}", 'tex')
call IMAP ('+H', "\\v{H}", 'tex')
call IMAP ('+I', "\\v{\I}", 'tex')
call IMAP ('+J', "\\v{J}", 'tex')
call IMAP ('+K', "\\v{K}", 'tex')
call IMAP ('+L', "\\v{L}", 'tex')
call IMAP ('+M', "\\v{M}", 'tex')
call IMAP ('+N', "\\v{N}", 'tex')
call IMAP ('+O', "\\v{O}", 'tex')
call IMAP ('+P', "\\v{P}", 'tex')
call IMAP ('+Q', "\\v{Q}", 'tex')
call IMAP ('+R', "\\v{R}", 'tex')
call IMAP ('+S', "\\v{S}", 'tex')
call IMAP ('+T', "\\v{T}", 'tex')
call IMAP ('+U', "\\v{U}", 'tex')
call IMAP ('+V', "\\v{V}", 'tex')
call IMAP ('+W', "\\v{W}", 'tex')
call IMAP ('+X', "\\v{X}", 'tex')
call IMAP ('+Y', "\\v{Y}", 'tex')
call IMAP ('+Z', "\\v{Z}", 'tex')
" }}}
call IMAP ('+}', "\\\"{a}", 'tex')
call IMAP ('+:', "\\^{o}", 'tex')
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4

View File

@ -0,0 +1,289 @@
addprefix
addunit
ampere
amperemetresecond
amperepermetre
amperepermetrenp
amperepersquaremetre
amperepersquaremetrenp
angstrom
arad
arcminute
arcsecond
are
atomicmass
atto
attod
barn
bbar
becquerel
becquerelbase
bel
candela
candelapersquaremetre
candelapersquaremetrenp
celsius
Celsius
celsiusbase
centi
centid
coulomb
coulombbase
coulombpercubicmetre
coulombpercubicmetrenp
coulombperkilogram
coulombperkilogramnp
coulombpermol
coulombpermolnp
coulombpersquaremetre
coulombpersquaremetrenp
cubed
cubic
cubicmetre
cubicmetreperkilogram
cubicmetrepersecond
curie
dday
deca
decad
deci
decid
degree
degreecelsius
deka
dekad
derbecquerel
dercelsius
dercoulomb
derfarad
dergray
derhenry
derhertz
derjoule
derkatal
derlumen
derlux
dernewton
derohm
derpascal
derradian
dersiemens
dersievert
dersteradian
dertesla
dervolt
derwatt
derweber
electronvolt
exa
exad
farad
faradbase
faradpermetre
faradpermetrenp
femto
femtod
fourth
gal
giga
gigad
gram
graybase
graypersecond
graypersecondnp
hectare
hecto
hectod
henry
henrybase
henrypermetre
henrypermetrenp
hertz
hertzbase
hour
joule
joulebase
joulepercubicmetre
joulepercubicmetrenp
jouleperkelvin
jouleperkelvinnp
jouleperkilogram
jouleperkilogramkelvin
jouleperkilogramkelvinnp
jouleperkilogramnp
joulepermole
joulepermolekelvin
joulepermolekelvinnp
joulepermolenp
joulepersquaremetre
joulepersquaremetrenp
joulepertesla
jouleperteslanp
katal
katalbase
katalpercubicmetre
katalpercubicmetrenp
kelvin
kilo
kilod
kilogram
kilogrammetrepersecond
kilogrammetrepersecondnp
kilogrammetrepersquaresecond
kilogrammetrepersquaresecondnp
kilogrampercubicmetre
kilogrampercubicmetrecoulomb
kilogrampercubicmetrecoulombnp
kilogrampercubicmetrenp
kilogramperkilomole
kilogramperkilomolenp
kilogrampermetre
kilogrampermetrenp
kilogrampersecond
kilogrampersecondcubicmetre
kilogrampersecondcubicmetrenp
kilogrampersecondnp
kilogrampersquaremetre
kilogrampersquaremetrenp
kilogrampersquaremetresecond
kilogrampersquaremetresecondnp
kilogramsquaremetre
kilogramsquaremetrenp
kilogramsquaremetrepersecond
kilogramsquaremetrepersecondnp
kilowatthour
liter
litre
lumen
lumenbase
lux
luxbase
mega
megad
meter
metre
metrepersecond
metrepersecondnp
metrepersquaresecond
metrepersquaresecondnp
micro
microd
milli
millid
minute
mole
molepercubicmetre
molepercubicmetrenp
nano
nanod
neper
newton
newtonbase
newtonmetre
newtonpercubicmetre
newtonpercubicmetrenp
newtonperkilogram
newtonperkilogramnp
newtonpermetre
newtonpermetrenp
newtonpersquaremetre
newtonpersquaremetrenp
NoAMS
no@qsk
ohm
ohmbase
ohmmetre
one
paminute
pascal
pascalbase
pascalsecond
pasecond
per
period@active
persquaremetresecond
persquaremetresecondnp
peta
petad
pico
picod
power
@qsk
quantityskip
rad
radian
radianbase
radianpersecond
radianpersecondnp
radianpersquaresecond
radianpersquaresecondnp
reciprocal
rem
roentgen
rp
rpcubed
rpcubic
rpcubicmetreperkilogram
rpcubicmetrepersecond
rperminute
rpersecond
rpfourth
rpsquare
rpsquared
rpsquaremetreperkilogram
second
siemens
siemensbase
sievert
sievertbase
square
squared
squaremetre
squaremetrepercubicmetre
squaremetrepercubicmetrenp
squaremetrepercubicsecond
squaremetrepercubicsecondnp
squaremetreperkilogram
squaremetrepernewtonsecond
squaremetrepernewtonsecondnp
squaremetrepersecond
squaremetrepersecondnp
squaremetrepersquaresecond
squaremetrepersquaresecondnp
steradian
steradianbase
tera
terad
tesla
teslabase
ton
tonne
unit
unitskip
usk
volt
voltbase
voltpermetre
voltpermetrenp
watt
wattbase
wattpercubicmetre
wattpercubicmetrenp
wattperkilogram
wattperkilogramnp
wattpermetrekelvin
wattpermetrekelvinnp
wattpersquaremetre
wattpersquaremetrenp
wattpersquaremetresteradian
wattpersquaremetresteradiannp
weber
weberbase
yocto
yoctod
yotta
yottad
zepto
zeptod
zetta
zettad

View File

@ -0,0 +1,677 @@
abbrv
abovedisplayshortskip
abovedisplayskip
abstract
abstract
abstractname
acute
addcontentsline
address
addtime
addtocontents
addtocounter
addtolength
addvspace
align
alph
Alph
alpha
amsmath
amsthm
and
appendix
appendixname
arabic
array
arraycolsep
arrayrulewidth
arraystretch
article
author
a4paper
a5paper
backmatter
bar
bar
baselineskip
baselinestretch
batchmode
begin
belowdisplayshortskip
belowdisplayskip
bezier
bf
bfseries
bibindent
bibitem
bibliography
bibliographystyle
bibname
big
Big
Bigg
bigg
Biggl
biggl
Biggm
biggm
Biggr
biggr
Bigl
bigl
bigm
Bigm
bigr
Bigr
bigskip
bigskipamount
binom
blg
boldmath
boldsymbol
book
botfigrule
bottmofraction
bottomnumber
boxedminipage
bp
breve
b5paper
calc
calc
caption
caption2
capt-of
cases
cc
ccaption
ccname
cdotscenter
centering
cercle
cfrac
changebar
chapter
chapterbib
chaptername
check
cite
cleardoublepage
clearpage
cline
clock
closing
cm
COLON
columnsep
columnseprule
columnwidth
contentsline
contentsname
copyright
dag
dashbox
date
dbinom
dblfigure
dblfloatpage
dblfloatsep
dbltextfloatsep
dbltopfraction
dbltopnumber
dcolumn
dd
ddag
ddot
ddots
DeclareMathOperator
depth
description
dfrac
displaylimits
displaymath
displaystyle
document
documentclass
dot
dotfill
doublerulesep
downbracefill
draft
dropping
dywiz
em
emph
empty
encl
enclname
end
endfloat
enlargethispage
enskip
enspace
ensuremath
enumerate
enumi
enumii
enumiii
enumiv
eqnarray
equation
errorstopmode
eucal
eufrak
evensidemargin
everyship
ex
executivepaper
expdlist
extracolsep
extramark
fancybox
fancyhdr
fbox
fboxrule
fboxsep
figure
figurename
file
filecontents
final
flafter
fleqn
floatflt
floatpagefraction
floatsep
flushbottom
flushleft
flushright
fnpara
fnsymbol
fn2end
fontenc
footheight
footmisc
footnote
footnotemark
footnoterule
footnotesep
footnotesize
footnotetext
footnpag
footskip
frac
frame
framebox
frenchspacing
frontmatter
ftnright
fussy
gather
genfrac
geometry
glossary
glossaryentry
graphicx
graphpaper
grave
hat
hbox
headheihgt
headings
headsep
height
helvet
hfill
hhline
hline
hrulefill
hspace
huge
Huge
HUGE
hyperref
hyphenation
ifthen
in
include
includeonly
indent
indentfirst
index
indexentry
indexname
indexspace
input
inputenc
intertext
intextsep
invisible
it
item
itemindent
itemize
itemsep
itshape
jot
kill
label
labelenumi
labelenumii
labelenumiii
labelenumiv
labelitemi
labelitemii
labelitemiii
labelitemiv
labelsep
labelwidth
landscape
large
LARGE
Large
LaTeX
LaTeXe
latexsym
ldots
left
leftarrowfill
lefteqn
leftmargin
leftmargini
leftmarginii
leftmarginiii
leftmarginiv
leftmarginv
leftmarginvi
leftmark
legalpaper
leq
leqno
letter
letterpaper
letterspace
lhead
limits
line
linebreak
linethickness
linewidth
list
listfigurename
listfiles
listoffigures
listoftables
listparindent
location
longtable
lq
lrbox
lscape
mainmatter
makeatletter
makeatother
makebox
makeglossary
makeidx
makeindex
makelabel
maketitle
manyfoot
marginpar
marginparpush
marginparsep
marginparwidth
markboth
markleft
markright
math
mathbb
mathbf
mathbin
mathcal
mathclose
mathfrak
mathindent
mathit
mathnormal
mathop
mathopen
mathord
mathpunct
mathrel
mathrm
mathscr
mathsf
mathstrut
mathtt
mathversion
mbox
mdseries
medmuskip
medskip
medskipamount
minipage
minitoc
minus
mkern
mm
moreverbatim
mpfootnote
mu
multicol
multicolumn
multilanguage
multiput
multirow
myheadings
nabla
name
NeedsTeXFormat
newcommand
newcounter
newenvironment
newfont
newlength
newline
newpage
newsavebox
newtheorem
nocite
nofiles
noindent
nolimits
nolinebreak
nomathsymbols
nonfrenchspacing
nonumber
nopagebreak
normalfont
normalsize
not
notag
note
notitlepage
nu
numberline
numline
numprint
oddsidemargin
oldstyle
onecolumn
oneside
onlynotes
onlyslides
openany
openbib
opening
openright
operatorname
oval
overbrace
overlay
overleftarrow
overline
overrightarrow
page
pagebreak
pagenumbering
pageref
pagestyle
paperheight
paperwidth
par
paragraph
parbox
parbox
parindent
parsep
parskip
part
partial
partname
partopsep
pauza
pc
phi
pi
picture
plain
PLdateending
plmath
PLSlash
plus
pmb
pmod
polski
polski
poptabs
pounds
ppauza
prefixing
printindex
protect
providecommand
ps
pt
pushtabs
put
qbezier
qbeziermax
qquad
quad
quotation
quote
raggedbottom
raggedleft
raggedright
ragged2e
raisebox
ratio
real
ref
refname
refstepcounter
relsize
renewcommand
renewenvironment
report
reversemarginpar
rhead
right
rightarrowfill
rightmargin
rightmark
rm
rmfamily
roman
Roman
rotate
rotating
rq
rule
samepage
savebox
sb
sbox
sc
scriptscriptstyle
scriptsize
scriptstyle
scrollmode
scshape
secnumdepth
section
sectionmark
see
seename
selectfont
selectlanguage
setcounter
setlength
settime
settodepth
settoheight
settowidth
sf
sffamily
shadethm
shadow
shapepar
shortstack
showlabels
sidecap
signature
sin
sl
slide
slides
sloppy
sloppybar
slshape
small
smallskip
smallskipamount
soul
sp
space
sqrt
ss
SS
stackrel
startbreaks
stepcounter
stop
stopbreaks
stretch
strut
subfigure
subfigure
subitem
subparagraph
subsection
subsubitem
subsubsection
sum
supressfloats
symbol
symbol
tabbing
tabcolsep
table
tablename
tableofcontents
tabular
tabularx
tag
tan
tbinom
telephone
TeX
textbf
textbullet
textcircled
textcompwordmark
textemdash
textendash
textexclamdown
textfloatsep
textfraction
textheight
textit
textmd
textnormal
textperiodcenter
textquestiondown
textquotedblleft
textquotedblright
textquoteleft
textquoteright
textrm
textsc
textsf
textsl
textstyle
textsuperscript
texttt
textup
textvisiblespace
textwidth
tfrac
thanks
the
thebibliography
theindex
theorem
thepage
thesection
theta
thicklines
thickmuskip
thinlines
thispagestyle
tilde
time
times
tiny
title
titlepage
tocdepth
today
topfigrule
topfraction
topmargin
topmargin
topmargin
topsep
topskip
topskip
totalheight
totalnumber
trivlist
tt
ttfamily
twocolumn
twocolumn
twoside
typein
typein
typeout
typeout
ulem
ulem
unboldmath
underbrace
underline
unsort
unsrt
upbracefill
upshape
upshape
usebox
usebox
usecounter
usefont
usepackage
value
vbox
vdots
vec
vector
verb
verb
verbatim
verse
vfill
visible
vline
vmargin
voffset
vspace
widehat
widetilde
width
wrapfig
xleftarrow
xrightarrow
threeparttable

View File

@ -0,0 +1,338 @@
"=============================================================================
" 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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,393 @@
"=============================================================================
" File: folding.vim
" Author: Srinath Avadhanula
" modifications/additions by Zhang Linbo
" CVS: $Id: folding.vim 997 2006-03-20 09:45:45Z srinathava $
" Created: Tue Apr 23 05:00 PM 2002 PST
"
" Description: functions to interact with Syntaxfolds.vim
"=============================================================================
nnoremap <unique> <Plug>Tex_RefreshFolds :call MakeTexFolds(1)<cr>
augroup LatexSuite
au LatexSuite User LatexSuiteFileType
\ call Tex_Debug('folding.vim: catching LatexSuiteFileType', 'fold') |
\ call Tex_SetFoldOptions()
augroup END
" Tex_SetFoldOptions: sets maps for every buffer {{{
" Description:
function! Tex_SetFoldOptions()
if exists('b:doneSetFoldOptions')
return
endif
let b:doneSetFoldOptions = 1
setlocal foldtext=TexFoldTextFunction()
if g:Tex_Folding && g:Tex_AutoFolding
call MakeTexFolds(0)
endif
let s:ml = exists('g:mapleader') ? g:mapleader : "\\"
call Tex_MakeMap(s:ml."rf", "<Plug>Tex_RefreshFolds", 'n', '<silent> <buffer>')
endfunction " }}}
" Tex_FoldSections: creates section folds {{{
" Author: Zhang Linbo
" Description:
" This function takes a comma seperated list of "sections" and creates fold
" definitions for them. The first item is supposed to be the "shallowest" field
" and the last is the "deepest". See g:Tex_FoldedSections for the default
" definition of the lst input argument.
"
" **works recursively**
function! Tex_FoldSections(lst, endpat)
let i = match(a:lst, ',')
if i > 0
let s = strpart(a:lst, 0, i)
else
let s = a:lst
endif
if s =~ '%%fakesection'
let s = '^\s*' . s
else
let s = '^\s*\\' . s . '\W'
endif
let endpat = s . '\|' . a:endpat
if i > 0
call Tex_FoldSections(strpart(a:lst,i+1), endpat)
endif
let endpat = '^\s*\\appendix\W\|' . endpat
call AddSyntaxFoldItem(s, endpat, 0, -1)
endfunction
" }}}
" MakeTexFolds: function to create fold items for latex. {{{
"
" used in conjunction with MakeSyntaxFolds().
" see ../plugin/syntaxFolds.vim for documentation
function! MakeTexFolds(force)
if exists('g:Tex_Folding') && !g:Tex_Folding
return
endif
if &ft != 'tex'
return
end
" Setup folded items lists g:Tex_Foldedxxxx
" 1. Use default value if g:Tex_Foldedxxxxxx is not defined
" 2. prepend default value to g:Tex_Foldedxxxxxx if it starts with ','
" 3. append default value to g:Tex_Foldedxxxxxx if it ends with ','
" Folding items which are not caught in any of the standard commands,
" environments or sections.
let s = 'item,slide,preamble,<<<'
if !exists('g:Tex_FoldedMisc')
let g:Tex_FoldedMisc = s
elseif g:Tex_FoldedMisc[0] == ','
let g:Tex_FoldedMisc = s . g:Tex_FoldedMisc
elseif g:Tex_FoldedMisc =~ ',$'
let g:Tex_FoldedMisc = g:Tex_FoldedMisc . s
endif
" By default do not fold any commands. It looks like trying to fold
" commands is a difficult problem since commands can be arbitrarily nested
" and the end patterns are not unique unlike the case of environments.
" For this to work well, we need a regexp which will match a line only if
" a command begins on that line but does not end on that line. This
" requires a regexp which will match unbalanced curly braces and that is
" apparently not doable with regexps.
let s = ''
if !exists('g:Tex_FoldedCommands')
let g:Tex_FoldedCommands = s
elseif g:Tex_FoldedCommands[0] == ','
let g:Tex_FoldedCommands = s . g:Tex_FoldedCommands
elseif g:Tex_FoldedCommands =~ ',$'
let g:Tex_FoldedCommands = g:Tex_FoldedCommands . s
endif
let s = 'verbatim,comment,eq,gather,align,figure,table,thebibliography,'
\. 'keywords,abstract,titlepage'
if !exists('g:Tex_FoldedEnvironments')
let g:Tex_FoldedEnvironments = s
elseif g:Tex_FoldedEnvironments[0] == ','
let g:Tex_FoldedEnvironments = s . g:Tex_FoldedEnvironments
elseif g:Tex_FoldedEnvironments =~ ',$'
let g:Tex_FoldedEnvironments = g:Tex_FoldedEnvironments . s
endif
if !exists('g:Tex_FoldedSections')
let g:Tex_FoldedSections = 'part,chapter,section,%%fakesection,'
\. 'subsection,subsubsection,paragraph'
endif
" the order in which these calls are made decides the nestedness. in
" latex, a table environment will always be embedded in either an item or
" a section etc. not the other way around. so we first fold up all the
" tables. and then proceed with the other regions.
let b:numFoldItems = 0
" ========================================================================
" How to add new folding items {{{
" ========================================================================
"
" Each of the following function calls defines a syntax fold region. Each
" definition consists of a call to the AddSyntaxFoldItem() function.
"
" The order in which the folds are defined is important. Juggling the
" order of the function calls will create havoc with folding. The
" "deepest" folding item needs to be called first. For example, if
" the \begin{table} environment is a subset (or lies within) the \section
" environment, then add the definition for the \table first.
"
" The AddSyntaxFoldItem() function takes either 4 or 6 arguments. When it
" is called with 4 arguments, it is equivalent to calling it with 6
" arguments with the last two left blank (i.e as empty strings)
"
" The explanation for each argument is as follows:
" startpat: a line matching this pattern defines the beginning of a fold.
" endpat : a line matching this pattern defines the end of a fold.
" startoff: this is the offset from the starting line at which folding will
" actually start
" endoff : like startoff, but gives the offset of the actual fold end from
" the line satisfying endpat.
" startoff and endoff are necessary when the folding region does
" not have a specific end pattern corresponding to a start
" pattern. for example in latex,
" \begin{section}
" defines the beginning of a section, but its not necessary to
" have a corresponding
" \end{section}
" the section is assumed to end 1 line _before_ another section
" starts.
" startskip: a pattern which defines the beginning of a "skipped" region.
"
" For example, suppose we define a \itemize fold as follows:
" startpat = '^\s*\\item',
" endpat = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}',
" startoff = 0,
" endoff = -1
"
" This defines a fold which starts with a line beginning with an
" \item and ending one line before a line beginning with an
" \item or \end{enumerate} etc.
"
" Then, as long as \item's are not nested things are fine.
" However, once items begin to nest, the fold started by one
" \item can end because of an \item in an \itemize
" environment within this \item. i.e, the following can happen:
"
" \begin{itemize}
" \item Some text <------- fold will start here
" This item will contain a nested item
" \begin{itemize} <----- fold will end here because next line contains \item...
" \item Hello
" \end{itemize} <----- ... instead of here.
" \item Next item of the parent itemize
" \end{itemize}
"
" Therefore, in order to completely define a folding item which
" allows nesting, we need to also define a "skip" pattern.
" startskip and end skip do that.
" Leave '' when there is no nesting.
" endskip: the pattern which defines the end of the "skip" pattern for
" nested folds.
"
" Example:
" 1. A syntax fold region for a latex section is
" startpat = "\\section{"
" endpat = "\\section{"
" startoff = 0
" endoff = -1
" startskip = ''
" endskip = ''
" Note that the start and end patterns are thus the same and endoff has a
" negative value to capture the effect of a section ending one line before
" the next starts.
" 2. A syntax fold region for the \itemize environment is:
" startpat = '^\s*\\item',
" endpat = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}',
" startoff = 0,
" endoff = -1,
" startskip = '^\s*\\begin{\(enumerate\|itemize\|description\)}',
" endskip = '^\s*\\end{\(enumerate\|itemize\|description\)}'
" Note the use of startskip and endskip to allow nesting.
"
"
" }}}
" ========================================================================
" {{{ comment lines
if g:Tex_FoldedMisc =~ '\<comments\>'
call AddSyntaxFoldItem (
\ '^%\([^%]\|[^f]\|[^a]\|[^k]\|[^e]\)',
\ '^[^%]',
\ 0,
\ -1
\ )
endif
" }}}
" {{{ items
if g:Tex_FoldedMisc =~ '\<item\>'
call AddSyntaxFoldItem (
\ '^\s*\\item',
\ '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}',
\ 0,
\ -1,
\ '^\s*\\begin{\(enumerate\|itemize\|description\)}',
\ '^\s*\\end{\(enumerate\|itemize\|description\)}'
\ )
endif
" }}}
" {{{ title
if g:Tex_FoldedMisc =~ '\<title\>'
call AddSyntaxFoldItem (
\ '^\s*\\title\W',
\ '^\s*\\maketitle',
\ 0,
\ 0
\ )
endif
" }}}
" Commands and Environments {{{
" Fold the commands and environments in 2 passes.
let pass = 0
while pass < 2
if pass == 0
let lst = g:Tex_FoldedCommands
else
let lst = g:Tex_FoldedEnvironments
endif
while lst != ''
let i = match(lst, ',')
if i > 0
let s = strpart(lst, 0, i)
let lst = strpart(lst, i+1)
else
let s = lst
let lst = ''
endif
if s != ''
if pass == 0
" NOTE: This pattern ensures that a command which is
" terminated on the same line will not start a fold.
" However, it will also refuse to fold certain commands
" which have not terminated. eg:
" \commandname{something \bf{text} and
" will _not_ start a fold.
" In other words, the pattern is safe, but not exact.
call AddSyntaxFoldItem('^\s*\\'.s.'{[^{}]*$','^[^}]*}',0,0)
else
call AddSyntaxFoldItem('^\s*\\begin{'.s,'^\s*\\end{'.s,0,0)
endif
endif
endwhile
let pass = pass + 1
endwhile
" }}}
" Sections {{{
if g:Tex_FoldedSections != ''
call Tex_FoldSections(g:Tex_FoldedSections,
\ '^\s*\\frontmatter\|^\s*\\mainmatter\|^\s*\\backmatter\|'
\. '^\s*\\begin{thebibliography\|>>>\|^\s*\\endinput\|'
\. '^\s*\\begin{slide\|^\s*\\end{document')
endif
" }}}
" {{{ slide
if g:Tex_FoldedMisc =~ '\<slide\>'
call AddSyntaxFoldItem (
\ '^\s*\\begin{slide',
\ '^\s*\\appendix\W\|^\s*\\chapter\W\|^\s*\\end{slide\|^\s*\\end{document',
\ 0,
\ 0
\ )
endif
" }}}
" {{{ preamble
if g:Tex_FoldedMisc =~ '\<preamble\>'
call AddSyntaxFoldItem (
\ '^\s*\\document\(class\|style\).*{',
\ '^\s*\\begin{document}',
\ 0,
\ -1
\ )
endif
" }}}
" Manually folded regions {{{
if g:Tex_FoldedMisc =~ '\(^\|,\)<<<\(,\|$\)'
call AddSyntaxFoldItem (
\ '<<<',
\ '>>>',
\ 0,
\ 0
\ )
endif
" }}}
call MakeSyntaxFolds(a:force)
normal! zv
endfunction
" }}}
" TexFoldTextFunction: create fold text for folds {{{
function! TexFoldTextFunction()
let leadingSpace = matchstr(' ', ' \{,'.indent(v:foldstart).'}')
if getline(v:foldstart) =~ '^\s*\\begin{'
let header = matchstr(getline(v:foldstart),
\ '^\s*\\begin{\zs\([:alpha:]*\)[^}]*\ze}')
let caption = ''
let label = ''
let i = v:foldstart
while i <= v:foldend
if getline(i) =~ '\\caption'
" distinguish between
" \caption{fulldesc} - fulldesc will be displayed
" \caption[shortdesc]{fulldesc} - shortdesc will be displayed
if getline(i) =~ '\\caption\['
let caption = matchstr(getline(i), '\\caption\[\zs[^\]]*')
let caption = substitute(caption, '\zs\]{.*}[^}]*$', '', '')
else
let caption = matchstr(getline(i), '\\caption{\zs.*')
let caption = substitute(caption, '\zs}[^}]*$', '', '')
end
elseif getline(i) =~ '\\label'
let label = matchstr(getline(i), '\\label{\zs.*')
let label = substitute(label, '\zs}[^}]*$', '', '')
end
let i = i + 1
endwhile
let ftxto = foldtext()
" if no caption found, then use the second line.
if caption == ''
let caption = getline(v:foldstart + 1)
end
let retText = matchstr(ftxto, '^[^:]*').': '.header.
\ ' ('.label.') : '.caption
return leadingSpace.retText
elseif getline(v:foldstart) =~ '^%' && getline(v:foldstart) !~ '^%%fake'
let ftxto = foldtext()
return leadingSpace.substitute(ftxto, ':', ': % ', '')
elseif getline(v:foldstart) =~ '^\s*\\document\(class\|style\).*{'
let ftxto = leadingSpace.foldtext()
return substitute(ftxto, ':', ': Preamble: ', '')
else
return leadingSpace.foldtext()
end
endfunction
" }}}
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4

View File

@ -0,0 +1,11 @@
% my long complicated macro. This is an example of how to set up a
% tex-macro for latex-suite. simply type in the lines as you would in
% latex. Place holders are allowed.
% NOTE: if you have filetype indentation turned on, then do not do
% formatting here. the indentation will follow automatically...
\begin{mycomplicatedenvironment}
\mycommand1{<++>}
\mycommand2{<+hint2+>}
\mycommand3{<++>}
\mycommand4{<++>}
\end{mycomplicatedenvironment}<++>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,729 @@
"=============================================================================
" File: mathmacros.vim
" Author: Mikolaj Machowski
" Created: Tue Apr 23 06:00 PM 2002 PST
"
" Description: macros for everything mathematical in latex.
"=============================================================================
if !(has('gui_running') && g:Tex_MathMenus && g:Tex_Menus)
finish
endif
let s:MathMenuName = g:Tex_MenuPrefix.'Ma&th.'
function! Tex_MathMenuRemove()
exe 'silent! aunmenu '.s:MathMenuName
endfunction
let s:pA = 'amenu <silent> 85 '.s:MathMenuName
" brackets and dollars {{{
exe s:pA.'\\&[\ \\] <plug><C-r>=IMAP_PutTextWithMovement("\\[<++>\\]<++>")<cr>'
exe s:pA.'\\&(\ \\) <plug><C-r>=IMAP_PutTextWithMovement("\\(<++>\\)<++>")<cr>'
exe s:pA.'&$\ $ <plug>$$'
exe s:pA.'-sepmath1- :'
" }}}
" MATH arrows {{{
let s:pA1 = s:pA."&Arrows."
exe s:pA1.'Leftarrow<Tab>⇐ <plug>\Leftarrow '
exe s:pA1.'leftarrow<Tab>← <plug>\leftarrow'
exe s:pA1.'longleftarrow<Tab>← <plug>\longleftarrow '
exe s:pA1.'Longleftarrow<Tab>⇐ <plug>\Longleftarrow '
exe s:pA1.'rightarrow<Tab>→ <plug>\rightarrow '
exe s:pA1.'longrightarrow<Tab>→ <plug>\longrightarrow '
exe s:pA1.'Rightarrow<Tab>⇒ <plug>\Rightarrow '
exe s:pA1.'Longrightarrow<Tab>⇒ <plug>\Longrightarrow '
exe s:pA1.'leftrightarrow<Tab>⇆ <plug>\leftrightarrow '
exe s:pA1.'longleftrightarrow<Tab>↔ <plug>\longleftrightarrow '
exe s:pA1.'Leftrightarrow<Tab>⇔ <plug>\Leftrightarrow '
exe s:pA1.'Longleftrightarrow<Tab>⇔ <plug>\Longleftrightarrow '
exe s:pA1.'uparrow<Tab>↑ <plug>\uparrow '
exe s:pA1.'Uparrow<Tab>⇑ <plug>\Uparrow '
exe s:pA1.'downarrow<Tab>↓ <plug>\downarrow '
exe s:pA1.'Downarrow<Tab>⇓ <plug>\Downarrow '
exe s:pA1.'updownarrow<Tab>↕ <plug>\updownarrow '
exe s:pA1.'Updownarrow<Tab>⇕ <plug>\Updownarrow '
exe s:pA1.'nearrow<Tab>↗ <plug>\nearrow '
exe s:pA1.'searrow<Tab>↘ <plug>\searrow '
exe s:pA1.'swarrow<Tab>↙ <plug>\swarrow '
exe s:pA1.'nwarrow<Tab>↖ <plug>\nwarrow '
exe s:pA1.'mapsto<Tab>↦ <plug>\mapsto '
exe s:pA1.'leadsto<Tab>↝ <plug>\leadsto '
exe s:pA1.'longmapsto<Tab>⇖ <plug>\longmapsto '
exe s:pA1.'hookleftarrow<Tab>↩ <plug>\hookleftarrow '
exe s:pA1.'hookrightarrow<Tab>↪ <plug>\hookrightarrow '
exe s:pA1.'leftharpoonup<Tab>↼ <plug>\leftharpoonup '
exe s:pA1.'leftharpoondown<Tab>↽ <plug>\leftharpoondown '
exe s:pA1.'rightharpoonup<Tab>⇀ <plug>\rightharpoonup '
exe s:pA1.'rightharpoondown<Tab>⇁ <plug>\rightharpoondown '
exe s:pA1.'rightleftharpoons<Tab>⇌ <plug>\rightleftharpoons '
exe s:pA1.'overleftarrow<Tab> <plug>\overleftarrow '
exe s:pA1.'overrightarrow<Tab> <plug>\overrightarrow '
exe s:pA1.'overleftrightarrow<Tab> <plug>\overleftrightarrow '
exe s:pA1.'underleftarrow<Tab> <plug>\underleftarrow '
exe s:pA1.'underrightarrow<Tab> <plug>\underrightarrow '
exe s:pA1.'underleftrightarrow<Tab> <plug>\underleftrightarrow '
exe s:pA1.'xleftarrow<Tab> <plug>\xleftarrow '
exe s:pA1.'xrightarrow<Tab> <plug>\xrightarrow '
" }}}
" MATH Arrows2 {{{
let s:pA1a = s:pA."Arrows2."
exe s:pA1a.'dashleftarrow<Tab>⇠ <plug>\dashleftarrow '
exe s:pA1a.'leftleftarrows<Tab>⇇ <plug>\leftleftarrows '
exe s:pA1a.'leftrightarrows<Tab>⇆ <plug>\leftrightarrows '
exe s:pA1a.'Lleftarrow<Tab>⇚ <plug>\Lleftarrow '
exe s:pA1a.'twoheadleftarrow<Tab>↞ <plug>\twoheadleftarrow '
exe s:pA1a.'leftarrowtail<Tab>↢ <plug>\leftarrowtail '
exe s:pA1a.'leftrightharpoons<Tab>⇋ <plug>\leftrightharpoons '
exe s:pA1a.'Lsh<Tab>↰ <plug>\Lsh '
exe s:pA1a.'looparrowleft<Tab>↫ <plug>\looparrowleft '
exe s:pA1a.'curvearrowleft<Tab>↶ <plug>\curvearrowleft '
exe s:pA1a.'circlearrowleft<Tab>↺ <plug>\circlearrowleft '
exe s:pA1a.'dashrightarrow<Tab>⇢ <plug>\dashrightarrow '
exe s:pA1a.'rightrightarrows<Tab>⇉ <plug>\rightrightarrows '
exe s:pA1a.'rightleftarrows<Tab>⇄ <plug>\rightleftarrows '
exe s:pA1a.'Rrightarrow<Tab>⇛ <plug>\Rrightarrow '
exe s:pA1a.'twoheadrightarrow<Tab>↠ <plug>\twoheadrightarrow '
exe s:pA1a.'rightarrowtail<Tab>↣ <plug>\rightarrowtail '
exe s:pA1a.'rightleftharpoons<Tab>⇌ <plug>\rightleftharpoons '
exe s:pA1a.'Rsh<Tab>↱ <plug>\Rsh '
exe s:pA1a.'looparrowright<Tab>↬ <plug>\looparrowright '
exe s:pA1a.'curvearrowright<Tab>↷ <plug>\curvearrowright '
exe s:pA1a.'circlearrowright<Tab>↻ <plug>\circlearrowright '
exe s:pA1a.'multimap<Tab>⊸ <plug>\multimap '
exe s:pA1a.'upuparrows<Tab>⇈ <plug>\upuparrows '
exe s:pA1a.'downdownarrows<Tab>⇊ <plug>\downdownarrows '
exe s:pA1a.'upharpoonleft<Tab>↿ <plug>\upharpoonleft '
exe s:pA1a.'upharpoonright<Tab>↾ <plug>\upharpoonright '
exe s:pA1a.'downharpoonleft<Tab>⇃ <plug>\downharpoonleft '
exe s:pA1a.'downharpoonright<Tab>⇂ <plug>\downharpoonright '
exe s:pA1a.'rightsquigarrow<Tab>⇝ <plug>\rightsquigarrow '
exe s:pA1a.'leftrightsquigarrow<Tab>↭ <plug>\leftrightsquigarrow '
" }}}
" MATH nArrows {{{
let s:pA1b = s:pA."&nArrows."
exe s:pA1b.'nleftarrow<Tab>↚ <plug>\nleftarrow '
exe s:pA1b.'nLeftarrow<Tab>⇍ <plug>\nLeftarrow '
exe s:pA1b.'nleftrightarrow<Tab>↮ <plug>\nleftrightarrow '
exe s:pA1b.'nLeftrightarrow<Tab>⇎ <plug>\nleftrightarrow '
exe s:pA1b.'nrightarrow<Tab>↛ <plug>\nrightarrow '
exe s:pA1b.'nRightarrow<Tab>⇏ <plug>\nRightarrow '
" }}}
" MATH Fonts {{{
let s:pA2a = s:pA."&MathFonts."
exe s:pA2a.'mathbf{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathbf{<++>}<++>")<cr>'
exe s:pA2a.'mathrm{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathrm{<++>}<++>")<cr>'
exe s:pA2a.'mathsf{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathsf{<++>}<++>")<cr>'
exe s:pA2a.'mathtt{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathtt{<++>}<++>")<cr>'
exe s:pA2a.'mathit{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathit{<++>}<++>")<cr>'
exe s:pA2a.'mathfrak{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathfrak{<++>}<++>")<cr>'
exe s:pA2a.'mathcal{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathcal{<++>}<++>")<cr>'
exe s:pA2a.'mathscr{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathscr{<++>}<++>")<cr>'
exe s:pA2a.'mathbb{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathbb{<++>}<++>")<cr>'
" }}}
" Greek Letters small {{{
let s:pA2 = s:pA."&Greek.&Small."
exe s:pA2.'alpha<Tab>`a\ \ α <plug>\alpha '
exe s:pA2.'beta<Tab>`b\ \ β <plug>\beta '
exe s:pA2.'gamma<Tab>`g\ \ γ <plug>\gamma '
exe s:pA2.'delta<Tab>`d\ \ δ <plug>\delta '
exe s:pA2.'epsilon<Tab>∊ <plug>\epsilon '
exe s:pA2.'varepsilon<Tab>`e\ \ ε <plug>\varepsilon '
exe s:pA2.'zeta<Tab>`z\ \ ζ <plug>\zeta '
exe s:pA2.'eta<Tab>`h\ \ η <plug>\eta '
exe s:pA2.'theta<Tab>`q\ \ θ <plug>\theta '
exe s:pA2.'vartheta<Tab>ϑ <plug>\vartheta '
exe s:pA2.'iota<Tab>`i\ \ ι <plug>\iota '
exe s:pA2.'kappa<Tab>`k\ \ κ <plug>\kappa '
exe s:pA2.'lambda<Tab>`l\ \ λ <plug>\lambda '
exe s:pA2.'mu<Tab>`m\ \ μ <plug>\mu '
exe s:pA2.'nu<Tab>`n\ \ ν <plug>\nu '
exe s:pA2.'xi<Tab>`x\ \ ξ <plug>\xi '
exe s:pA2.'pi<Tab>`p\ \ π <plug>\pi '
exe s:pA2.'varpi<Tab>ϖ <plug>\varpi '
exe s:pA2.'rho<Tab>`r\ \ ρ <plug>\rho '
exe s:pA2.'varrho<Tab>ϱ <plug>\varrho '
exe s:pA2.'sigma<Tab>`s\ \ σ <plug>\sigma '
exe s:pA2.'varsigma<Tab>`v\ \ ς <plug>\varsigma '
exe s:pA2.'tau<Tab>`t\ \ τ <plug>\tau '
exe s:pA2.'upsilon<Tab>`u\ \ υ <plug>\upsilon '
exe s:pA2.'phi<Tab>φ <plug>\phi '
exe s:pA2.'varphi<Tab>`f\ \ ϕ <plug>\varphi '
exe s:pA2.'chi<Tab>`c\ \ χ <plug>\chi '
exe s:pA2.'psi<Tab>`y\ \ ψ <plug>\psi '
exe s:pA2.'omega<Tab>`w\ \ ω <plug>\omega '
" }}}
" Greek Letters big {{{
let s:pA3 = s:pA.'&Greek.&Big.'
exe s:pA3.'Alpha<Tab>`A\ \ A <plug>\Alpha '
exe s:pA3.'Beta<Tab>`B\ \ B <plug>\Beta '
exe s:pA3.'Gamma<Tab>`G\ \ Γ <plug>\Gamma '
exe s:pA3.'Delta<Tab>`D\ \ Δ <plug>\Delta '
exe s:pA3.'Epsilon<Tab>`E\ \ E <plug>\Epsilon '
exe s:pA3.'Zeta<Tab>`Z\ \ Z <plug>\mathrm{Z} '
exe s:pA3.'Eta<Tab>`H\ \ H <plug>\Eta '
exe s:pA3.'Theta<Tab>Θ <plug>\Theta '
exe s:pA3.'Iota<Tab>I <plug>\mathrm{I} '
exe s:pA3.'Kappa<Tab>`K\ \ K <plug>\Kappa '
exe s:pA3.'Lambda<Tab>`L\ \ Λ <plug>\Lambda '
exe s:pA3.'Mu<Tab>`M\ \ M <plug>\Mu '
exe s:pA3.'Nu<Tab>`N\ \ N <plug>\Nu '
exe s:pA3.'Xi<Tab>`X\ \ Ξ <plug>\Xi '
exe s:pA3.'Pi<Tab>`P\ \ Π <plug>\Pi '
exe s:pA3.'Rho<Tab>`R\ \ P <plug>\Rho '
exe s:pA3.'Sigma<Tab>`S\ \ Σ <plug>\Sigma '
exe s:pA3.'Tau<Tab>`T\ \ T <plug>\Tau '
exe s:pA3.'Upsilon<Tab>`U\ \ Y <plug>\Upsilon '
exe s:pA3.'Phi<Tab>Φ <plug>\Phi '
exe s:pA3.'Chi<Tab>`C\ \ X <plug>\Chi '
exe s:pA3.'Psi<Tab>`Y\ \ Ψ <plug>\Psi '
exe s:pA3.'Omega<Tab>`W\ \ Ω <plug>\Omega '
" }}}
" BinaryRel1 {{{
let s:pA4 = s:pA."&BinaryRel1."
exe s:pA4.'ll<Tab>≪ <plug>\ll '
exe s:pA4.'lll<Tab>⋘ <plug>\lll '
exe s:pA4.'leqslant<Tab>≤ <plug>\leqslant '
exe s:pA4.'leq<Tab>≤ <plug>\leq '
exe s:pA4.'leqq<Tab>≦ <plug>\leqq '
exe s:pA4.'eqslantless<Tab>⋜ <plug>\eqslantless '
exe s:pA4.'lessdot<Tab>⋖ <plug>\lessdot '
exe s:pA4.'prec<Tab>≺ <plug>\prec '
exe s:pA4.'preceq<Tab>≼ <plug>\preceq '
exe s:pA4.'preccurlyeq<Tab>≼ <plug>\preccurlyeq '
exe s:pA4.'curlyeqprec<Tab>⋞ <plug>\curlyeqprec '
exe s:pA4.'lesssim<Tab>≲ <plug>\lesssim '
exe s:pA4.'lessapprox<Tab> <plug>\lessapprox '
exe s:pA4.'precsim<Tab>≾ <plug>\precsim '
exe s:pA4.'precapprox<Tab> <plug>\precapprox '
exe s:pA4.'in<Tab>∈ <plug>\in '
exe s:pA4.'subset<Tab>`(\ \ ⊂ <plug>\subset '
exe s:pA4.'Subset<Tab>`)\ \ ⋐ <plug>\Subset '
exe s:pA4.'subseteq<Tab>⊆ <plug>\subseteq '
exe s:pA4.'subseteqq<Tab> <plug>\subseteqq '
exe s:pA4.'sqsubset<Tab>⊏ <plug>\sqsubset '
exe s:pA4.'sqsubseteq<Tab>⊑ <plug>\sqsubseteq '
exe s:pA4.'smile<Tab>⌣ <plug>\smile '
exe s:pA4.'smallsmile<Tab>⌣ <plug>\smallsmile '
exe s:pA4.'parallel<Tab>∥ <plug>\parallel '
exe s:pA4.'shortparallel<Tab>∥ <plug>\shortparallel '
exe s:pA4.'dashv<Tab>⊣ <plug>\dashv '
exe s:pA4.'vdash<Tab>⊢ <plug>\vdash '
exe s:pA4.'vDash<Tab>⊨ <plug>\vDash '
exe s:pA4.'models<Tab>⊨ <plug>\models '
exe s:pA4.'therefore<Tab>∴ <plug>\therefore '
exe s:pA4.'backepsilon<Tab>∍ <plug>\backepsilon '
" }}}
" nBinaryRel1 {{{
let s:pA4a = s:pA."&nBinaryRel1."
exe s:pA4a.'nless<Tab>≮ <plug>\nless '
exe s:pA4a.'nleqslant<Tab>≰ <plug>\nleqslant '
exe s:pA4a.'nleq<Tab> <plug>\nleq '
exe s:pA4a.'lneq<Tab> <plug>\lneq '
exe s:pA4a.'nleqq<Tab> <plug>\nleqq '
exe s:pA4a.'lneqq<Tab>≨ <plug>\lneqq '
exe s:pA4a.'lvertneqq<Tab> <plug>\lvertneqq '
exe s:pA4a.'nprec<Tab>⊀ <plug>\nprec '
exe s:pA4a.'npreceq<Tab>⋠ <plug>\npreceq '
exe s:pA4a.'precneqq<Tab> <plug>\precneqq '
exe s:pA4a.'lnsim<Tab>⋦ <plug>\lnsim '
exe s:pA4a.'lnapprox<Tab> <plug>\lnapprox '
exe s:pA4a.'precnsim<Tab>⋨ <plug>\precnsim '
exe s:pA4a.'precnapprox<Tab> <plug>\precnapprox '
exe s:pA4a.'notin<Tab>∉ <plug>\notin '
exe s:pA4a.'nsubseteq<Tab>⊈ <plug>\nsubseteq '
exe s:pA4a.'varsubsetneq<Tab> <plug>\varsubsetneq '
exe s:pA4a.'subsetneq<Tab>⊊ <plug>\subsetneq '
exe s:pA4a.'nsubseteqq<Tab> <plug>\nsubseteqq '
exe s:pA4a.'varsubsetneqq<Tab> <plug>\varsubsetneqq '
exe s:pA4a.'subsetneqq<Tab>⊈ <plug>\subsetneqq '
exe s:pA4a.'nparallel<Tab>∦ <plug>\nparallel '
exe s:pA4a.'nshortparallel<Tab> <plug>\nshortparallel '
exe s:pA4a.'nvdash<Tab>⊬ <plug>\nvdash '
exe s:pA4a.'nvDash<Tab>⊭ <plug>\nvDash '
" }}}
" BinaryRel2 {{{
let s:pA5 = s:pA."&BinaryRel2."
exe s:pA5.'gg<Tab>≫ <plug>\gg '
exe s:pA5.'ggg<Tab>⋙ <plug>\ggg '
exe s:pA5.'gggtr<Tab>⋙ <plug>\gggtr '
exe s:pA5.'geqslant<Tab> <plug>\geqslant '
exe s:pA5.'geq<Tab>≥ <plug>\geq '
exe s:pA5.'geqq<Tab>≧ <plug>\geqq '
exe s:pA5.'eqslantgtr<Tab> <plug>\eqslantgtr '
exe s:pA5.'gtrdot<Tab>⋗ <plug>\gtrdot '
exe s:pA5.'succ<Tab>≻ <plug>\succ '
exe s:pA5.'succeq<Tab>≽ <plug>\succeq '
exe s:pA5.'succcurlyeq<Tab>≽ <plug>\succcurlyeq '
exe s:pA5.'curlyeqsucc<Tab>⋟ <plug>\curlyeqsucc '
exe s:pA5.'gtrsim<Tab>≳ <plug>\gtrsim '
exe s:pA5.'gtrapprox<Tab> <plug>\gtrapprox '
exe s:pA5.'succsim<Tab>≿ <plug>\succsim '
exe s:pA5.'succapprox<Tab> <plug>\succapprox '
exe s:pA5.'ni<Tab>∋ <plug>\ni '
exe s:pA5.'owns<Tab> <plug>\owns '
exe s:pA5.'supset<Tab>⊃ <plug>\supset '
exe s:pA5.'Supset<Tab>⋑ <plug>\Supset '
exe s:pA5.'supseteq<Tab>⊇ <plug>\supseteq '
exe s:pA5.'supseteqq<Tab> <plug>\supseteqq '
exe s:pA5.'sqsupset<Tab>⊐ <plug>\sqsupset '
exe s:pA5.'sqsupseteq<Tab>⊒ <plug>\sqsupseteq '
exe s:pA5.'frown<Tab>⌢ <plug>\frown '
exe s:pA5.'smallfrown<Tab>⌢ <plug>\smallfrown '
exe s:pA5.'mid<Tab> <plug>\mid '
exe s:pA5.'shortmid<Tab> <plug>\shortmid '
exe s:pA5.'between<Tab>≬ <plug>\between '
exe s:pA5.'Vdash<Tab>⊩ <plug>\Vdash '
exe s:pA5.'bowtie<Tab>⋈ <plug>\bowtie '
exe s:pA5.'Join<Tab>⋈ <plug>\Join '
exe s:pA5.'pitchfork<Tab>⋔ <plug>\pitchfork '
" }}}
" {{{ nBinaryRel2
let s:pA5a = s:pA."n&BinaryRel2." "TODO: dorobiæ logarytmy
exe s:pA5a.'ngtr<Tab>≯ <plug>\ngtr '
exe s:pA5a.'ngeqslant<Tab>≱ <plug>\ngeqslant '
exe s:pA5a.'ngeq<Tab> <plug>\ngeq '
exe s:pA5a.'gneq<Tab> <plug>\gneq '
exe s:pA5a.'ngeqq<Tab> <plug>\ngeqq '
exe s:pA5a.'gneqq<Tab>≩ <plug>\gneqq '
exe s:pA5a.'nsucc<Tab>⊁ <plug>\nsucc '
exe s:pA5a.'nsucceq<Tab>⋡ <plug>\nsucceq '
exe s:pA5a.'succneqq<Tab> <plug>\succneqq '
exe s:pA5a.'gnsim<Tab>⋧ <plug>\gnsim '
exe s:pA5a.'gnapprox<Tab> <plug>\gnapprox '
exe s:pA5a.'succnsim<Tab>⋩ <plug>\succnsim '
exe s:pA5a.'succnapprox<Tab> <plug>\succnapprox '
exe s:pA5a.'nsupseteq<Tab>⊉ <plug>\nsupseteq '
exe s:pA5a.'varsupsetneq<Tab> <plug>\varsupsetneq '
exe s:pA5a.'supsetneq<Tab>⊋ <plug>\supsetneq '
exe s:pA5a.'nsupseteqq<Tab> <plug>\nsupseteqq '
exe s:pA5a.'varsupsetneqq<Tab> <plug>\varsupsetneqq '
exe s:pA5a.'supsetneqq<Tab> <plug>\supsetneqq '
exe s:pA5a.'nmid<Tab>∤ <plug>\nmid '
exe s:pA5a.'nshortmid<Tab> <plug>\nshortmid '
exe s:pA5a.'nVdash<Tab>⊮ <plug>\nVdash '
" }}}
" {{{ BinaryRel3
let s:pA6 = s:pA."&BinaryRel3."
exe s:pA6.'doteq<Tab>≐ <plug>\doteq '
exe s:pA6.'circeq<Tab>≗ <plug>\circeq '
exe s:pA6.'eqcirc<Tab>≖ <plug>\eqcirc '
exe s:pA6.'risingdotseq<Tab>≓ <plug>\risingdotseq '
exe s:pA6.'doteqdot<Tab>≑ <plug>\doteqdot '
exe s:pA6.'Doteq<Tab>≑ <plug>\Doteq '
exe s:pA6.'fallingdotseq<Tab>≒ <plug>\fallingdotseq '
exe s:pA6.'triangleq<Tab>≜ <plug>\triangleq '
exe s:pA6.'bumpeq<Tab>≏ <plug>\bumpeq '
exe s:pA6.'Bumpeq<Tab>≎ <plug>\Bumpeq '
exe s:pA6.'equiv<Tab>`=\ \ ≡ <plug>\equiv '
exe s:pA6.'sim<Tab> <plug>\sim '
exe s:pA6.'thicksim<Tab> <plug>\thicksim '
exe s:pA6.'backsim<Tab>∽ <plug>\backsim '
exe s:pA6.'simeq<Tab>≃ <plug>\simeq '
exe s:pA6.'backsimeq<Tab>⋍ <plug>\backsimeq '
exe s:pA6.'cong<Tab>≅ <plug>\cong '
exe s:pA6.'approx<tab>=~\ \ ≈ <plug>\approx '
exe s:pA6.'thickapprox<Tab>≈ <plug>\thickapprox '
exe s:pA6.'approxeq<Tab>≊ <plug>\approxeq '
exe s:pA6.'blacktriangleleft<Tab>◀ <plug>\blacktriangleleft '
exe s:pA6.'vartriangleleft<Tab>⊲ <plug>\vartriangleleft '
exe s:pA6.'trianglelefteq<Tab>⊴ <plug>\trianglelefteq '
exe s:pA6.'blacktriangleright<Tab>▶ <plug>\blacktriangleright '
exe s:pA6.'vartriangleright<Tab>⊳ <plug>\vartriangleright '
exe s:pA6.'trianglerighteq<Tab>⊵ <plug>\trianglerighteq '
exe s:pA6.'perp<Tab>⊥ <plug>\perp '
exe s:pA6.'asymp<Tab>≍ <plug>\asymp '
exe s:pA6.'Vvdash<Tab>⊪ <plug>\Vvdash '
exe s:pA6.'propto<Tab>∝ <plug>\propto '
exe s:pA6.'varpropto<Tab>∝ <plug>\varpropto '
exe s:pA6.'because<Tab>∵ <plug>\because '
" }}}
" {{{ nBinaryRel3
let s:pA6a = s:pA."&nBinaryRel3."
exe s:pA6a.'neq<Tab>≠ <plug>\neq '
exe s:pA6a.'nsim<Tab>≁ <plug>\nsim '
exe s:pA6a.'ncong<Tab>≆ <plug>\ncong '
exe s:pA6a.'ntriangleleft<Tab>⋪ <plug>\ntriangleleft '
exe s:pA6a.'ntrianglelefteq<Tab>⋬ <plug>\ntrianglelefteq '
exe s:pA6a.'ntriangleright<Tab>⋫ <plug>\ntriangleright '
exe s:pA6a.'ntrianglerighteq<Tab>⋭ <plug>\ntrianglerighteq '
" }}}
" {{{ BinaryRel4
let s:pA7 = s:pA."&BinaryRel4."
exe s:pA7.'lessgtr<Tab>≶ <plug>\lessgtr '
exe s:pA7.'gtrless<Tab>≷ <plug>\gtrless '
exe s:pA7.'lesseqgtr<Tab>⋚ <plug>\lesseqgtr '
exe s:pA7.'gtreqless<Tab>⋛ <plug>\gtreqless '
exe s:pA7.'lesseqqgtr<Tab> <plug>\lesseqqgtr '
exe s:pA7.'gtreqqless<Tab> <plug>\gtreqqless '
" }}}
" {{{ BigOp
let s:pA8a = s:pA."&BigOp."
exe s:pA8a.'limits<Tab> <plug>\limits'
exe s:pA8a.'nolimits<Tab> <plug>\nolimits'
exe s:pA8a.'displaylimits<Tab> <plug>\displaylimits'
exe s:pA8a.'-seplimits- :'
exe s:pA8a.'bigcap<Tab>`-\ \ ⋂ <plug>\bigcap'
exe s:pA8a.'bigcup<Tab>`+\ \ <plug>\bigcup'
exe s:pA8a.'bigodot<Tab>⊙ <plug>\bigodot'
exe s:pA8a.'bigoplus<Tab>⊕ <plug>\bigoplus'
exe s:pA8a.'bigotimes<Tab>⊗ <plug>\bigotimes'
exe s:pA8a.'bigsqcup<Tab>⊔ <plug>\bigsqcup'
exe s:pA8a.'biguplus<Tab>⊎ <plug>\biguplus'
exe s:pA8a.'bigvee<Tab> <plug>\bigvee'
exe s:pA8a.'bigwedge<Tab>⋀ <plug>\bigwedge'
exe s:pA8a.'coprod<Tab>∐ <plug>\coprod'
exe s:pA8a.'int<Tab>∫ <plug>\int'
exe s:pA8a.'iint<Tab>∬ <plug>\int'
exe s:pA8a.'iiint<Tab>∭ <plug>\int'
exe s:pA8a.'oint<Tab>∮ <plug>\oint'
exe s:pA8a.'prod<Tab>∏ <plug>\prod'
exe s:pA8a.'sum<Tab>∑ <plug>\sum'
" }}}
" {{{ BinaryOp
let s:pA8 = s:pA."&BinaryOp."
exe s:pA8.'pm<Tab>± <plug>\pm '
exe s:pA8.'mp<Tab>∓ <plug>\mp '
exe s:pA8.'dotplus<Tab>∔ <plug>\dotplus '
exe s:pA8.'cdot<Tab>`.\ \ ⋅ <plug>\cdot '
exe s:pA8.'centerdot<Tab>⋅ <plug>\centerdot '
exe s:pA8.'times<Tab>`*\ \ × <plug>\times '
exe s:pA8.'ltimes<Tab>⋉ <plug>\ltimes '
exe s:pA8.'rtimes<Tab>⋊ <plug>\rtimes '
exe s:pA8.'leftthreetimes<Tab>⋋ <plug>\leftthreetimes '
exe s:pA8.'rightthreetimes<Tab>⋌ <plug>\rightthreetimes '
exe s:pA8.'div<Tab>÷ <plug>\div '
exe s:pA8.'divideontimes<Tab>⋇ <plug>\divideontimes '
exe s:pA8.'bmod<Tab> <plug>\bmod '
exe s:pA8.'ast<Tab> <plug>\ast '
exe s:pA8.'star<Tab>⋆ <plug>\star '
exe s:pA8.'setminus<Tab>`\\\ \ <plug>\setminus '
exe s:pA8.'smallsetminus<Tab> <plug>\smallsetminus '
exe s:pA8.'diamond<Tab>⋄ <plug>\diamond '
exe s:pA8.'wr<Tab>≀ <plug>\wr '
exe s:pA8.'intercal<Tab>⊺ <plug>\intercal '
exe s:pA8.'circ<Tab>`@\ \ ∘ <plug>\circ '
exe s:pA8.'bigcirc<Tab>○ <plug>\bigcirc '
exe s:pA8.'bullet<Tab>∙ <plug>\bullet '
exe s:pA8.'cap<Tab>∩ <plug>\cap '
exe s:pA8.'Cap<Tab>⋒ <plug>\Cap '
exe s:pA8.'cup<Tab> <plug>\cup '
exe s:pA8.'Cup<Tab>⋓ <plug>\Cup '
exe s:pA8.'sqcap<Tab>⊓ <plug>\sqcap '
exe s:pA8.'sqcup<Tab>⊔ <plug>\sqcup'
exe s:pA8.'amalg<Tab> <plug>\amalg '
exe s:pA8.'uplus<Tab>⊎ <plug>\uplus '
exe s:pA8.'triangleleft<Tab>◁ <plug>\triangleleft '
exe s:pA8.'triangleright<Tab>▷ <plug>\triangleright '
exe s:pA8.'bigtriangleup<Tab>△ <plug>\bigtriangleup '
exe s:pA8.'bigtriangledown<Tab>▽ <plug>\bigtriangledown '
exe s:pA8.'vee<Tab> <plug>\vee '
exe s:pA8.'veebar<Tab>⊻ <plug>\veebar '
exe s:pA8.'curlyvee<Tab>⋎ <plug>\curlyvee '
exe s:pA8.'wedge<Tab>`&\ \ ∧ <plug>\wedge '
exe s:pA8.'barwedge<Tab>⊼ <plug>\barwedge '
exe s:pA8.'doublebarwedge<Tab>⌆ <plug>\doublebarwedge '
exe s:pA8.'curlywedge<Tab>⋏ <plug>\curlywedge '
exe s:pA8.'oplus<Tab>⊕ <plug>\oplus '
exe s:pA8.'ominus<Tab>⊖ <plug>\ominus '
exe s:pA8.'otimes<Tab>⊗ <plug>\otimes '
exe s:pA8.'oslash<Tab>⊘ <plug>\oslash '
exe s:pA8.'boxplus<Tab>⊞ <plug>\boxplus '
exe s:pA8.'boxminus<Tab>⊟ <plug>\boxminus '
exe s:pA8.'boxtimes<Tab>⊠ <plug>\boxtimes '
exe s:pA8.'boxdot<Tab>⊡ <plug>\boxdot '
exe s:pA8.'odot<Tab>⊙ <plug>\odot '
exe s:pA8.'circledast<Tab>⊛ <plug>\circledast '
exe s:pA8.'circleddash<Tab>⊝ <plug>\circleddash '
exe s:pA8.'circledcirc<Tab>⊚ <plug>\circledcirc '
exe s:pA8.'dagger<Tab>† <plug>\dagger '
exe s:pA8.'ddagger<Tab>‡ <plug>\ddagger '
exe s:pA8.'lhd<Tab>⊲ <plug>\lhd '
exe s:pA8.'unlhd<Tab>⊴ <plug>\unlhd '
exe s:pA8.'rhd<Tab>⊳ <plug>\rhd '
exe s:pA8.'unrhd<Tab>⊵ <plug>\unrhd '
" }}}
" {{{ Other1
let s:pA9 = s:pA."&Other1."
exe s:pA9.'hat<Tab>â <plug>\hat '
exe s:pA9.'check<Tab>ǎ <plug>\check '
exe s:pA9.'grave<Tab>à <plug>\grave '
exe s:pA9.'acute<Tab>á <plug>\acute '
exe s:pA9.'dot<Tab>ȧ <plug>\dot '
exe s:pA9.'ddot<Tab>ä <plug>\ddot '
exe s:pA9.'tilde<Tab>`,\ \ ã <plug>\tilde '
exe s:pA9.'breve<Tab>ă <plug>\breve '
exe s:pA9.'bar<Tab>ā <plug>\bar '
exe s:pA9.'vec<Tab>a⃗ <plug>\vec '
exe s:pA9.'aleph<Tab>א <plug>\aleph '
exe s:pA9.'hbar<Tab>ℏ <plug>\hbar '
exe s:pA9.'imath<Tab> <plug>\imath '
exe s:pA9.'jmath<Tab> <plug>\jmath '
exe s:pA9.'ell<Tab> <plug>\ell '
exe s:pA9.'wp<Tab>℘ <plug>\wp '
exe s:pA9.'Re<Tab> <plug>\Re '
exe s:pA9.'Im<Tab> <plug>\Im '
exe s:pA9.'partial<Tab>∂ <plug>\partial '
exe s:pA9.'infty<Tab>`8\ \ ∞ <plug>\infty '
exe s:pA9.'prime<Tab> <plug>\prime '
exe s:pA9.'emptyset<Tab>∅ <plug>\emptyset '
exe s:pA9.'nabla<Tab>∇ <plug>\nabla '
exe s:pA9.'surd<Tab>√ <plug>\surd '
exe s:pA9.'top<Tab> <plug>\top '
exe s:pA9.'bot<Tab>⊥ <plug>\bot '
exe s:pA9.'angle<Tab>∠ <plug>\angle '
exe s:pA9.'triangle<Tab>△ <plug>\triangle '
exe s:pA9.'backslash<Tab>\\ <plug>\backslash '
exe s:pA9.'forall<Tab>∀ <plug>\forall '
exe s:pA9.'exists<Tab>∃ <plug>\exists '
exe s:pA9.'neg<Tab>¬ <plug>\neg '
exe s:pA9.'flat<Tab>♭ <plug>\flat '
exe s:pA9.'natural<Tab>♮ <plug>\natural '
exe s:pA9.'sharp<Tab>♯ <plug>\sharp '
exe s:pA9.'clubsuit<Tab>♣ <plug>\clubsuit '
exe s:pA9.'diamondsuit<Tab>♢ <plug>\diamondsuit '
exe s:pA9.'heartsuit<Tab>♡ <plug>\heartsuit '
exe s:pA9.'spadesuit<Tab>♠ <plug>\spadesuit '
exe s:pA9.'S<Tab>§ <plug>\S '
exe s:pA9.'P<Tab>¶ <plug>\P'
" }}}
" {{{ MathCreating
let s:pA10 = s:pA."&MathCreating."
exe s:pA10.'not<Tab> <plug>\not'
exe s:pA10.'mkern<Tab> <plug>\mkern'
exe s:pA10.'mathbin<Tab> <plug>\mathbin'
exe s:pA10.'mathrel<Tab> <plug>\mathrel'
exe s:pA10.'stackrel<Tab> <plug>\stackrel'
exe s:pA10.'mathord<Tab> <plug>\mathord'
" }}}
" {{{ Styles
let s:pA11 = s:pA."&Styles."
exe s:pA11.'displaystyle<Tab> <plug>\displaystyle'
exe s:pA11.'textstyle<Tab> <plug>\textstyle'
exe s:pA11.'scritpstyle<Tab> <plug>\scritpstyle'
exe s:pA11.'scriptscriptstyle<Tab> <plug>\scriptscriptstyle'
" }}}
" {{{ MathDiacritics
let s:pA12 = s:pA."&MathDiacritics."
exe s:pA12.'acute{}<Tab>á <plug><C-r>=IMAP_PutTextWithMovement("\\acute{<++>}<++>")<cr>'
exe s:pA12.'bar{}<Tab>`_\ \ ā <plug><C-r>=IMAP_PutTextWithMovement("\\bar{<++>}<++>")<cr>'
exe s:pA12.'breve{}<Tab>ă <plug><C-r>=IMAP_PutTextWithMovement("\\breve{<++>}<++>")<cr>'
exe s:pA12.'check{}<Tab>ǎ <plug><C-r>=IMAP_PutTextWithMovement("\\check{<++>}<++>")<cr>'
exe s:pA12.'ddot{}<Tab>`:\ \ ä <plug><C-r>=IMAP_PutTextWithMovement("\\ddot{<++>}<++>")<cr>'
exe s:pA12.'dot{}<Tab>`;\ \ ȧ <plug><C-r>=IMAP_PutTextWithMovement("\\dot{<++>}<++>")<cr>'
exe s:pA12.'grave{}<Tab>à <plug><C-r>=IMAP_PutTextWithMovement("\\grave{<++>}<++>")<cr>'
exe s:pA12.'hat{}<Tab>`^\ \ â <plug><C-r>=IMAP_PutTextWithMovement("\\hat{<++>}<++>")<cr>'
exe s:pA12.'tilde{}<tab>`~\ \ ã <plug><C-r>=IMAP_PutTextWithMovement("\\tilde{<++>}<++>")<cr>'
exe s:pA12.'vec{}<Tab>a⃗ <plug><C-r>=IMAP_PutTextWithMovement("\\vec{<++>}<++>")<cr>'
exe s:pA12.'widehat{}<Tab> <plug><C-r>=IMAP_PutTextWithMovement("\\widehat{<++>}<++>")<cr>'
exe s:pA12.'widetilde{}<Tab> <plug><C-r>=IMAP_PutTextWithMovement("\\widetilde{<++>}<++>")<cr>'
exe s:pA12.'imath<Tab> <plug><C-r>=IMAP_PutTextWithMovement("\\imath")<cr>'
exe s:pA12.'jmath<Tab> <plug><C-r>=IMAP_PutTextWithMovement("\\jmath")<cr>'
" }}}
" {{{ OverlineAndCo
let s:pA13 = s:pA."&OverlineAndCo."
exe s:pA13.'overline{} <plug><C-r>=IMAP_PutTextWithMovement("\\overline{}")<cr>'
exe s:pA13.'underline{} <plug><C-r>=IMAP_PutTextWithMovement("\\underline{}")<cr>'
exe s:pA13.'overrightarrow{} <plug><C-r>=IMAP_PutTextWithMovement("\\overrightarrow{}")<cr>'
exe s:pA13.'overleftarrow{} <plug><C-r>=IMAP_PutTextWithMovement("\\overleftarrow{}")<cr>'
exe s:pA13.'overbrace{} <plug><C-r>=IMAP_PutTextWithMovement("\\overbrace{}")<cr>'
exe s:pA13.'underbrace{} <plug><C-r>=IMAP_PutTextWithMovement("\\underbrace{}")<cr>'
" }}}
" {{{ Symbols1
let s:pA14a = s:pA."&Symbols1."
exe s:pA14a.'forall<Tab>∀ <plug>\forall '
exe s:pA14a.'exists<Tab>∃ <plug>\exists '
exe s:pA14a.'nexists<Tab>∄ <plug>\nexists '
exe s:pA14a.'neg<Tab>¬ <plug>\neg '
exe s:pA14a.'top<Tab> <plug>\top '
exe s:pA14a.'bot<Tab>⊥ <plug>\bot '
exe s:pA14a.'emptyset<Tab>∅ <plug>\emptyset '
exe s:pA14a.'varnothing<Tab>⌀ <plug>\varnothing '
exe s:pA14a.'infty<Tab>∞ <plug>\infty '
exe s:pA14a.'aleph<Tab>א <plug>\aleph '
exe s:pA14a.'beth<Tab>ב <plug>\beth '
exe s:pA14a.'gimel<Tab>ג <plug>\gimel '
exe s:pA14a.'daleth<Tab>ד <plug>\daleth '
exe s:pA14a.'hbar<Tab> <plug>\hbar '
exe s:pA14a.'hslash<Tab>ℏ <plug>\hslash '
exe s:pA14a.'diagup<Tab> <plug>\diagup '
exe s:pA14a.'vert<Tab>\| <plug>\vert '
exe s:pA14a.'Vert<Tab>∥ <plug>\Vert '
exe s:pA14a.'backslash<Tab>\\ <plug>\backslash '
exe s:pA14a.'diagdown<Tab> <plug>\diagdown '
exe s:pA14a.'Bbbk<Tab>ᵕ <plug>\Bbbk '
exe s:pA14a.'P<Tab>¶ <plug>\P '
exe s:pA14a.'S<Tab>§ <plug>\S '
" }}}
" {{{ Symbols2
let s:pA14b = s:pA."&Symbols2."
exe s:pA14b.'# <plug>\# '
exe s:pA14b.'% <plug>\% '
exe s:pA14b.'_<Tab> <plug>\_ '
exe s:pA14b.'$ <plug>\$ '
exe s:pA14b.'& <plug>\& '
exe s:pA14b.'imath<Tab> <plug>\imath '
exe s:pA14b.'jmath<Tab> <plug>\jmath '
exe s:pA14b.'ell<Tab> <plug>\ell '
exe s:pA14b.'wp<Tab>℘ <plug>\wp '
exe s:pA14b.'Re<Tab> <plug>\Re '
exe s:pA14b.'Im<Tab> <plug>\Im '
exe s:pA14b.'prime<Tab> <plug>\prime '
exe s:pA14b.'backprime<Tab> <plug>\backprime '
exe s:pA14b.'nabla<Tab>∇ <plug>\nabla '
exe s:pA14b.'surd<Tab>√ <plug>\surd '
exe s:pA14b.'flat<Tab>♭ <plug>\flat '
exe s:pA14b.'sharp<Tab>♯ <plug>\sharp '
exe s:pA14b.'natural<Tab>♮ <plug>\natural '
exe s:pA14b.'eth<Tab>ð <plug>\eth '
exe s:pA14b.'bigstar<Tab>★ <plug>\bigstar '
exe s:pA14b.'circledS<Tab>Ⓢ <plug>\circledS '
exe s:pA14b.'Finv<Tab>Ⅎ <plug>\Finv '
exe s:pA14b.'dag<Tab>† <plug>\dag '
exe s:pA14b.'ddag<Tab>‡ <plug>\ddag '
" }}}
" {{{ Symbols3
let s:pA14c = s:pA."&Symbols3."
exe s:pA14c.'angle<Tab>∠ <plug>\angle '
exe s:pA14c.'measuredangle<Tab>∡ <plug>\measuredangle '
exe s:pA14c.'sphericalangle<Tab>∢ <plug>\sphericalangle '
exe s:pA14c.'spadesuit<Tab>♠ <plug>\spadesuit '
exe s:pA14c.'heartsuit<Tab>♡ <plug>\heartsuit '
exe s:pA14c.'diamondsuit<Tab>♢ <plug>\diamondsuit '
exe s:pA14c.'clubsuit<Tab>♣ <plug>\clubsuit '
exe s:pA14c.'lozenge<Tab>◊ <plug>\lozenge '
exe s:pA14c.'blacklozenge<Tab>◆ <plug>\blacklozenge '
exe s:pA14c.'Diamond<Tab>◇ <plug>\Diamond '
exe s:pA14c.'triangle<Tab>△ <plug>\triangle '
exe s:pA14c.'vartriangle<Tab>△ <plug>\vartriangle '
exe s:pA14c.'blacktriangle<Tab>▲ <plug>\blacktriangle '
exe s:pA14c.'triangledown<Tab>▽ <plug>\triangledown '
exe s:pA14c.'blacktriangledown<Tab>▼ <plug>\blacktriangledown '
exe s:pA14c.'Box<Tab>□ <plug>\Box '
exe s:pA14c.'square<Tab>□ <plug>\square '
exe s:pA14c.'blacksquare<Tab>■ <plug>\blacksquare '
exe s:pA14c.'complement<Tab>∁ <plug>\complement '
exe s:pA14c.'mho<Tab>℧ <plug>\mho '
exe s:pA14c.'Game<Tab>⅁ <plug>\Game '
exe s:pA14c.'partial<Tab>`6\ \ ∂ <plug>\partial '
exe s:pA14c.'smallint<Tab>∫ <plug>\smallint '
" }}}
" {{{ Logic
let s:pA15 = s:pA."&Logic."
exe s:pA15.'lnot<Tab>¬ <plug>\lnot '
exe s:pA15.'lor<Tab> <plug>\lor '
exe s:pA15.'land<Tab>∧ <plug>\land '
" }}}
" {{{ Limits1
let s:pA16 = s:pA."&Limits1."
exe s:pA16.'left<Tab>( <plug>\left'
exe s:pA16.'right<Tab>) <plug>\right'
exe s:pA16.'-sepbigl- :'
exe s:pA16.'bigl<Tab> <plug>\bigl'
exe s:pA16.'Bigl<Tab> <plug>\Bigl'
exe s:pA16.'biggl<Tab> <plug>\biggl'
exe s:pA16.'Biggl<Tab> <plug>\Biggl'
exe s:pA16.'-sepbigr- :'
exe s:pA16.'bigr<Tab> <plug>\bigr'
exe s:pA16.'Bigr<Tab> <plug>\Bigr'
exe s:pA16.'biggr<Tab> <plug>\biggr'
exe s:pA16.'Biggr<Tab> <plug>\Biggr'
exe s:pA16.'-sepbig- :'
exe s:pA16.'big<Tab> <plug>\big'
exe s:pA16.'bigm<Tab> <plug>\bigm'
exe s:pA16.'-sepfloor- :'
exe s:pA16.'lfloor<Tab>⌊ <plug>\lfloor '
exe s:pA16.'lceil<Tab>⌈ <plug>\lceil '
exe s:pA16.'rfloor<Tab>⌋ <plug>\rfloor '
exe s:pA16.'rceil<Tab>⌉ <plug>\rceil '
exe s:pA16.'-sepangle- :'
exe s:pA16.'langle<Tab>〈 <plug>\langle '
exe s:pA16.'rangle<Tab>〉 <plug>\rangle '
" }}}
" {{{ Limits2
let s:pA16a = s:pA."&Limits2."
exe s:pA16a.'ulcorner<Tab>⌜ <plug>\ulcorner '
exe s:pA16a.'urcorner<Tab>⌝ <plug>\urcorner '
exe s:pA16a.'llcorner<Tab>⌞ <plug>\llcorner '
exe s:pA16a.'rlcorner<Tab>⌟ <plug>\rlcorner '
exe s:pA16a.'-sepcorner- :'
exe s:pA16a.'vert<Tab>\| <plug>\vert '
exe s:pA16a.'Vert<Tab>∥ <plug>\Vert '
exe s:pA16a.'lvert<Tab> <plug>\lvert '
exe s:pA16a.'lVert<Tab> <plug>\lVert '
exe s:pA16a.'rvert<Tab> <plug>\rvert '
exe s:pA16a.'rVert<Tab> <plug>\rVert '
exe s:pA16a.'uparrow<Tab>↑ <plug>\uparrow '
exe s:pA16a.'Uparrow<Tab>⇑ <plug>\Uparrow '
exe s:pA16a.'downarrow<Tab>↓ <plug>\downarrow '
exe s:pA16a.'Downarrow<Tab>⇓ <plug>\Downarrow '
exe s:pA16a.'updownarrow<Tab>↕ <plug>\updownarrow '
exe s:pA16a.'Updownarrow<Tab>⇕ <plug>\Updownarrow '
exe s:pA16a.'lgroup<Tab> <plug>\lgroup '
exe s:pA16a.'rgroup<Tab> <plug>\rgroup '
exe s:pA16a.'lmoustache<Tab>∫ <plug>\lmoustache '
exe s:pA16a.'rmoustache<Tab> <plug>\rmoustache '
exe s:pA16a.'arrowvert<Tab> <plug>\arrowvert '
exe s:pA16a.'Arrowvert<Tab> <plug>\Arrowvert '
exe s:pA16a.'bracevert<Tab> <plug>\bracevert '
" }}}
" {{{ Log-likes
let s:pA17 = s:pA."Lo&g-likes."
exe s:pA17.'arccos<Tab> <plug>\arccos '
exe s:pA17.'arcsin<Tab> <plug>\arcsin '
exe s:pA17.'arctan<Tab> <plug>\arctan '
exe s:pA17.'arg<Tab> <plug>\arg '
exe s:pA17.'cos<Tab> <plug>\cos '
exe s:pA17.'cosh<Tab> <plug>\cosh '
exe s:pA17.'cot<Tab> <plug>\cot '
exe s:pA17.'coth<Tab> <plug>\coth '
exe s:pA17.'csc<Tab> <plug>\csc '
exe s:pA17.'deg<Tab> <plug>\deg '
exe s:pA17.'det<Tab> <plug>\det '
exe s:pA17.'dim<Tab> <plug>\dim '
exe s:pA17.'exp<Tab> <plug>\exp '
exe s:pA17.'gcd<Tab> <plug>\gcd '
exe s:pA17.'hom<Tab> <plug>\hom '
exe s:pA17.'inf<Tab> <plug>\inf '
exe s:pA17.'injlim<Tab> <plug>\injlim '
exe s:pA17.'ker<Tab> <plug>\ker '
exe s:pA17.'lg<Tab> <plug>\lg '
exe s:pA17.'lim<Tab> <plug>\lim '
exe s:pA17.'liminf<Tab> <plug>\liminf '
exe s:pA17.'limsup<Tab> <plug>\limsup '
exe s:pA17.'ln<Tab> <plug>\ln '
exe s:pA17.'log<Tab> <plug>\log '
exe s:pA17.'max<Tab> <plug>\max '
exe s:pA17.'min<Tab> <plug>\min '
exe s:pA17.'Pr<Tab> <plug>\Pr '
exe s:pA17.'projlim<Tab> <plug>\projlim '
exe s:pA17.'sec<Tab> <plug>\sec '
exe s:pA17.'sin<Tab> <plug>\sin '
exe s:pA17.'sinh<Tab> <plug>\sinh '
exe s:pA17.'sup<Tab> <plug>\sup '
exe s:pA17.'tan<Tab> <plug>\tan '
exe s:pA17.'tanh<Tab> <plug>\tanh '
exe s:pA17.'varlimsup<Tab> <plug>\varlimsup '
exe s:pA17.'varliminf<Tab> <plug>\varliminf '
exe s:pA17.'varinjlim<Tab> <plug>\varinjlim '
exe s:pA17.'varprojlim<Tab> <plug>\varprojlim '
" }}}
" {{{ MathSpacing
let s:pA18 = s:pA."MathSpacing."
exe s:pA18.', <plug>\, '
exe s:pA18.': <plug>\: '
exe s:pA18.'; <plug>\; '
exe s:pA18.'[space] <plug>\ '
exe s:pA18.'quad<Tab> <plug>\quad '
exe s:pA18.'qquad<Tab> <plug>\qquad '
exe s:pA18.'! <plug>\! '
exe s:pA18.'thinspace<Tab> <plug>\thinspace '
exe s:pA18.'medspace<Tab> <plug>\medspace '
exe s:pA18.'thickspace<Tab> <plug>\thickspace '
exe s:pA18.'negthinspace<Tab> <plug>\negthinspace '
exe s:pA18.'negmedspace<Tab> <plug>\negmedspace '
exe s:pA18.'negthickspace<Tab> <plug>\negthickspace '
" 1}}}
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:fenc=utf-8

View File

@ -0,0 +1,730 @@
"=============================================================================
" File: mathmacros.vim
" Author: Mikolaj Machowski
" Created: Tue Apr 23 06:00 PM 2002 PST
"
" Description: macros for everything mathematical in latex.
"=============================================================================
if !(has('gui_running') && g:Tex_MathMenus && g:Tex_Menus)
finish
endif
let s:MathMenuName = g:Tex_MenuPrefix.'&Math.'
function! Tex_MathMenuRemove()
exe 'silent! aunmenu '.s:MathMenuName
endfunction
let s:pA = 'amenu <silent> '.g:Tex_NextMenuLocation.' '.s:MathMenuName
let g:Tex_NextMenuLocation = g:Tex_NextMenuLocation + 1
" brackets and dollars {{{
exe s:pA.'\\&[\ \\] <plug><C-r>=IMAP_PutTextWithMovement("\\[<++>\\]<++>")<cr>'
exe s:pA.'\\&(\ \\) <plug><C-r>=IMAP_PutTextWithMovement("\\(<++>\\)<++>")<cr>'
exe s:pA.'&$\ $ <plug>$$'
exe s:pA.'-sepmath1- :'
" }}}
" MATH arrows {{{
let s:pA1 = s:pA."&Arrows."
exe s:pA1.'Leftarrow <plug>\leftarrow '
exe s:pA1.'leftarrow <plug>\leftarrow'
exe s:pA1.'longleftarrow <plug>\longleftarrow '
exe s:pA1.'Leftarrow <plug>\Leftarrow '
exe s:pA1.'Longleftarrow <plug>\Longleftarrow '
exe s:pA1.'rightarrow <plug>\rightarrow '
exe s:pA1.'longrightarrow <plug>\longrightarrow '
exe s:pA1.'Rightarrow <plug>\Rightarrow '
exe s:pA1.'Longrightarrow <plug>\Longrightarrow '
exe s:pA1.'leftrightarrow <plug>\leftrightarrow '
exe s:pA1.'longleftrightarrow <plug>\longleftrightarrow '
exe s:pA1.'Leftrightarrow <plug>\Leftrightarrow '
exe s:pA1.'Longleftrightarrow <plug>\Longleftrightarrow '
exe s:pA1.'uparrow <plug>\uparrow '
exe s:pA1.'Uparrow <plug>\Uparrow '
exe s:pA1.'downarrow <plug>\downarrow '
exe s:pA1.'Downarrow <plug>\Downarrow '
exe s:pA1.'updownarrow <plug>\updownarrow '
exe s:pA1.'Updownarrow <plug>\Updownarrow '
exe s:pA1.'nearrow <plug>\nearrow '
exe s:pA1.'searrow <plug>\searrow '
exe s:pA1.'swarrow <plug>\swarrow '
exe s:pA1.'nwarrow <plug>\nwarrow '
exe s:pA1.'mapsto <plug>\mapsto '
exe s:pA1.'leadsto <plug>\leadsto '
exe s:pA1.'longmapsto <plug>\longmapsto '
exe s:pA1.'hookleftarrow <plug>\hookleftarrow '
exe s:pA1.'hookrightarrow <plug>\hookrightarrow '
exe s:pA1.'leftharpoonup <plug>\leftharpoonup '
exe s:pA1.'leftharpoondown <plug>\leftharpoondown '
exe s:pA1.'rightharpoonup <plug>\rightharpoonup '
exe s:pA1.'rightharpoondown <plug>\rightharpoondown '
exe s:pA1.'rightleftharpoons <plug>\rightleftharpoons '
exe s:pA1.'overleftarrow <plug>\overleftarrow '
exe s:pA1.'overrightarrow <plug>\overrightarrow '
exe s:pA1.'overleftrightarrow <plug>\overleftrightarrow '
exe s:pA1.'underleftarrow <plug>\underleftarrow '
exe s:pA1.'underrightarrow <plug>\underrightarrow '
exe s:pA1.'underleftrightarrow <plug>\underleftrightarrow '
exe s:pA1.'xleftarrow <plug>\xleftarrow '
exe s:pA1.'xrightarrow <plug>\xrightarrow '
" }}}
" MATH nArrows {{{
let s:pA1a = s:pA."&nArrows."
exe s:pA1a.'nleftarrow <plug>\nleftarrow '
exe s:pA1a.'nLeftarrow <plug>\nLeftarrow '
exe s:pA1a.'nleftrightarrow <plug>\nleftrightarrow '
exe s:pA1a.'nrightarrow <plug>\nrightarrow '
exe s:pA1a.'nRightarrow <plug>\nRightarrow '
" }}}
" MATH Arrows2 {{{
let s:pA1a = s:pA."Arrows2."
exe s:pA1a.'dashleftarrow <plug>\dashleftarrow '
exe s:pA1a.'leftleftarrows <plug>\leftleftarrows '
exe s:pA1a.'leftrightarrows <plug>\leftrightarrows '
exe s:pA1a.'Lleftarrow <plug>\Lleftarrow '
exe s:pA1a.'twoheadleftarrow <plug>\twoheadleftarrow '
exe s:pA1a.'leftarrowtail <plug>\leftarrowtail '
exe s:pA1a.'leftrightharpoons <plug>\leftrightharpoons '
exe s:pA1a.'Lsh <plug>\Lsh '
exe s:pA1a.'looparrowleft <plug>\looparrowleft '
exe s:pA1a.'curvearrowleft <plug>\curvearrowleft '
exe s:pA1a.'circlearrowleft <plug>\circlearrowleft '
exe s:pA1a.'dashrightarrow <plug>\dashrightarrow '
exe s:pA1a.'rightrightarrows <plug>\rightrightarrows '
exe s:pA1a.'rightleftarrows <plug>\rightleftarrows '
exe s:pA1a.'Rrightarrow <plug>\Rrightarrow '
exe s:pA1a.'twoheadrightarrow <plug>\twoheadrightarrow '
exe s:pA1a.'rightarrowtail <plug>\rightarrowtail '
exe s:pA1a.'rightleftharpoons <plug>\rightleftharpoons '
exe s:pA1a.'Rsh <plug>\Rsh '
exe s:pA1a.'looparrowright <plug>\looparrowright '
exe s:pA1a.'curvearrowright <plug>\curvearrowright '
exe s:pA1a.'circlearrowright <plug>\circlearrowright '
exe s:pA1a.'multimap <plug>\multimap '
exe s:pA1a.'upuparrows <plug>\upuparrows '
exe s:pA1a.'downdownarrows <plug>\downdownarrows '
exe s:pA1a.'upharpoonleft <plug>\upharpoonleft '
exe s:pA1a.'upharpoonright <plug>\upharpoonright '
exe s:pA1a.'downharpoonleft <plug>\downharpoonleft '
exe s:pA1a.'downharpoonright <plug>\downharpoonright '
exe s:pA1a.'rightsquigarrow <plug>\rightsquigarrow '
exe s:pA1a.'leftrightsquigarrow <plug>\leftrightsquigarrow '
" }}}
" MATH Fonts {{{
let s:pA2a = s:pA."&MathFonts."
exe s:pA2a.'mathbf{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathbf{<++>}<++>")<cr>'
exe s:pA2a.'mathrm{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathrm{<++>}<++>")<cr>'
exe s:pA2a.'mathsf{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathsf{<++>}<++>")<cr>'
exe s:pA2a.'mathtt{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathtt{<++>}<++>")<cr>'
exe s:pA2a.'mathit{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathit{<++>}<++>")<cr>'
exe s:pA2a.'mathfrak{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathfrak{<++>}<++>")<cr>'
exe s:pA2a.'mathcal{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathcal{<++>}<++>")<cr>'
exe s:pA2a.'mathscr{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathscr{<++>}<++>")<cr>'
exe s:pA2a.'mathbb{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathbb{<++>}<++>")<cr>'
" }}}
" Greek Letters small {{{
let s:pA2 = s:pA."&Greek.&Small."
exe s:pA2.'alpha<Tab>`a <plug>\alpha '
exe s:pA2.'beta<Tab>`b <plug>\beta '
exe s:pA2.'gamma<Tab>`g <plug>\gamma '
exe s:pA2.'delta<Tab>`d <plug>\delta '
exe s:pA2.'epsilon <plug>\epsilon '
exe s:pA2.'varepsilon<Tab>`e <plug>\varepsilon '
exe s:pA2.'zeta<Tab>`z <plug>\zeta '
exe s:pA2.'eta<Tab>`h <plug>\eta '
exe s:pA2.'theta<Tab>`q <plug>\theta '
exe s:pA2.'vartheta <plug>\vartheta '
exe s:pA2.'iota<Tab>`i <plug>\iota '
exe s:pA2.'kappa<Tab>`k <plug>\kappa '
exe s:pA2.'lambda<Tab>`l <plug>\lambda '
exe s:pA2.'mu<Tab>`m <plug>\mu '
exe s:pA2.'nu<Tab>`n <plug>\nu '
exe s:pA2.'xi<Tab>`x <plug>\xi '
exe s:pA2.'pi<Tab>`p <plug>\pi '
exe s:pA2.'varpi <plug>\varpi '
exe s:pA2.'rho<Tab>`r <plug>\rho '
exe s:pA2.'varrho <plug>\varrho '
exe s:pA2.'sigma<Tab>`s <plug>\sigma '
exe s:pA2.'varsigma<Tab>`v <plug>\varsigma '
exe s:pA2.'tau<Tab>`t <plug>\tau '
exe s:pA2.'upsilon<Tab>`u <plug>\upsilon '
exe s:pA2.'phi <plug>\phi '
exe s:pA2.'varphi<Tab>`f <plug>\varphi '
exe s:pA2.'chi<Tab>`c <plug>\chi '
exe s:pA2.'psi<Tab>`y <plug>\psi '
exe s:pA2.'omega<Tab>`w <plug>\omega '
" }}}
" Greek Letters big {{{
let s:pA3 = s:pA.'&Greek.&Big.'
exe s:pA3.'Alpha<Tab>`A <plug>\Alpha '
exe s:pA3.'Beta<Tab>`B <plug>\Beta '
exe s:pA3.'Gamma<Tab>`G <plug>\Gamma '
exe s:pA3.'Delta<Tab>`D <plug>\Delta '
exe s:pA3.'Epsilon<Tab>`E <plug>\Epsilon '
exe s:pA3.'Zeta<Tab>`Z <plug>\mathrm{Z} '
exe s:pA3.'Eta<Tab>`H <plug>\Eta '
exe s:pA3.'Theta <plug>\Theta '
exe s:pA3.'Iota <plug>\mathrm{I} '
exe s:pA3.'Kappa<Tab>`K <plug>\Kappa '
exe s:pA3.'Lambda<Tab>`L <plug>\Lambda '
exe s:pA3.'Mu<Tab>`M <plug>\Mu '
exe s:pA3.'Nu<Tab>`N <plug>\Nu '
exe s:pA3.'Xi<Tab>`X <plug>\Xi '
exe s:pA3.'Pi<Tab>`P <plug>\Pi '
exe s:pA3.'Rho<Tab>`R <plug>\Rho '
exe s:pA3.'Sigma<Tab>`S <plug>\Sigma '
exe s:pA3.'Tau<Tab>`T <plug>\Tau '
exe s:pA3.'Upsilon<Tab>`U <plug>\Upsilon '
exe s:pA3.'Phi <plug>\Phi '
exe s:pA3.'Chi<Tab>`C <plug>\Chi '
exe s:pA3.'Psi<Tab>`Y <plug>\Psi '
exe s:pA3.'Omega<Tab>`W <plug>\Omega '
" }}}
" BinaryRel1 {{{
let s:pA4 = s:pA."&BinaryRel1."
exe s:pA4.'ll <plug>\ll '
exe s:pA4.'lll <plug>\lll '
exe s:pA4.'leqslant <plug>\leqslant '
exe s:pA4.'leq <plug>\leq '
exe s:pA4.'leqq <plug>\leqq '
exe s:pA4.'eqslantless <plug>\eqslantless '
exe s:pA4.'lessdot <plug>\lessdot '
exe s:pA4.'prec <plug>\prec '
exe s:pA4.'preceq <plug>\preceq '
exe s:pA4.'preccurlyeq <plug>\preccurlyeq '
exe s:pA4.'curlyeqprec <plug>\curlyeqprec '
exe s:pA4.'lesssim <plug>\lesssim '
exe s:pA4.'lessapprox <plug>\lessapprox '
exe s:pA4.'precsim <plug>\precsim '
exe s:pA4.'precapprox <plug>\precapprox '
exe s:pA4.'in <plug>\in '
exe s:pA4.'subset<Tab>`( <plug>\subset '
exe s:pA4.'Subset<Tab>`) <plug>\Subset '
exe s:pA4.'subseteq <plug>\subseteq '
exe s:pA4.'subseteqq <plug>\subseteqq '
exe s:pA4.'sqsubset <plug>\sqsubset '
exe s:pA4.'sqsubseteq <plug>\sqsubseteq '
exe s:pA4.'smile <plug>\smile '
exe s:pA4.'smallsmile <plug>\smallsmile '
exe s:pA4.'parallel <plug>\parallel '
exe s:pA4.'shortparallel <plug>\shortparallel '
exe s:pA4.'dashv <plug>\dashv '
exe s:pA4.'vdash <plug>\vdash '
exe s:pA4.'vDash <plug>\vDash '
exe s:pA4.'models <plug>\models '
exe s:pA4.'therefore <plug>\therefore '
exe s:pA4.'backepsilon <plug>\backepsilon '
" }}}
" nBinaryRel1 {{{
let s:pA4a = s:pA."&nBinaryRel1."
exe s:pA4a.'nless <plug>\nless '
exe s:pA4a.'nleqslant <plug>\nleqslant '
exe s:pA4a.'nleq <plug>\nleq '
exe s:pA4a.'lneq <plug>\lneq '
exe s:pA4a.'nleqq <plug>\nleqq '
exe s:pA4a.'lneqq <plug>\lneqq '
exe s:pA4a.'lvertneqq <plug>\lvertneqq '
exe s:pA4a.'nprec <plug>\nprec '
exe s:pA4a.'npreceq <plug>\npreceq '
exe s:pA4a.'precneqq <plug>\precneqq '
exe s:pA4a.'lnsim <plug>\lnsim '
exe s:pA4a.'lnapprox <plug>\lnapprox '
exe s:pA4a.'precnsim <plug>\precnsim '
exe s:pA4a.'precnapprox <plug>\precnapprox '
exe s:pA4a.'notin <plug>\notin '
exe s:pA4a.'nsubseteq <plug>\nsubseteq '
exe s:pA4a.'varsubsetneq <plug>\varsubsetneq '
exe s:pA4a.'subsetneq <plug>\subsetneq '
exe s:pA4a.'nsubseteqq <plug>\nsubseteqq '
exe s:pA4a.'varsubsetneqq <plug>\varsubsetneqq '
exe s:pA4a.'subsetneqq <plug>\subsetneqq '
exe s:pA4a.'nparallel <plug>\nparallel '
exe s:pA4a.'nshortparallel <plug>\nshortparallel '
exe s:pA4a.'nvdash <plug>\nvdash '
exe s:pA4a.'nvDash <plug>\nvDash '
" }}}
" BinaryRel2 {{{
let s:pA5 = s:pA."&BinaryRel2."
exe s:pA5.'gg <plug>\gg '
exe s:pA5.'ggg <plug>\ggg '
exe s:pA5.'gggtr <plug>\gggtr '
exe s:pA5.'geqslant <plug>\geqslant '
exe s:pA5.'geq <plug>\geq '
exe s:pA5.'geqq <plug>\geqq '
exe s:pA5.'eqslantgtr <plug>\eqslantgtr '
exe s:pA5.'gtrdot <plug>\gtrdot '
exe s:pA5.'succ <plug>\succ '
exe s:pA5.'succeq <plug>\succeq '
exe s:pA5.'succcurlyeq <plug>\succcurlyeq '
exe s:pA5.'curlyeqsucc <plug>\curlyeqsucc '
exe s:pA5.'gtrsim <plug>\gtrsim '
exe s:pA5.'gtrapprox <plug>\gtrapprox '
exe s:pA5.'succsim <plug>\succsim '
exe s:pA5.'succapprox <plug>\succapprox '
exe s:pA5.'ni <plug>\ni '
exe s:pA5.'owns <plug>\owns '
exe s:pA5.'supset <plug>\supset '
exe s:pA5.'Supset <plug>\Supset '
exe s:pA5.'supseteq <plug>\supseteq '
exe s:pA5.'supseteqq <plug>\supseteqq '
exe s:pA5.'sqsupset <plug>\sqsupset '
exe s:pA5.'sqsupseteq <plug>\sqsupseteq '
exe s:pA5.'frown <plug>\frown '
exe s:pA5.'smallfrown <plug>\smallfrown '
exe s:pA5.'mid <plug>\mid '
exe s:pA5.'shortmid <plug>\shortmid '
exe s:pA5.'between <plug>\between '
exe s:pA5.'Vdash <plug>\Vdash '
exe s:pA5.'bowtie <plug>\bowtie '
exe s:pA5.'Join <plug>\Join '
exe s:pA5.'pitchfork <plug>\pitchfork '
" }}}
" {{{ nBinaryRel2
let s:pA5a = s:pA."n&BinaryRel2." "TODO: dorobiæ logarytmy
exe s:pA5a.'ngtr <plug>\ngtr '
exe s:pA5a.'ngeqslant <plug>\ngeqslant '
exe s:pA5a.'ngeq <plug>\ngeq '
exe s:pA5a.'gneq <plug>\gneq '
exe s:pA5a.'ngeqq <plug>\ngeqq '
exe s:pA5a.'gneqq <plug>\gneqq '
exe s:pA5a.'nsucc <plug>\nsucc '
exe s:pA5a.'nsucceq <plug>\nsucceq '
exe s:pA5a.'succneqq <plug>\succneqq '
exe s:pA5a.'gnsim <plug>\gnsim '
exe s:pA5a.'gnapprox <plug>\gnapprox '
exe s:pA5a.'succnsim <plug>\succnsim '
exe s:pA5a.'succnapprox <plug>\succnapprox '
exe s:pA5a.'nsupseteq <plug>\nsupseteq '
exe s:pA5a.'varsupsetneq <plug>\varsupsetneq '
exe s:pA5a.'supsetneq <plug>\supsetneq '
exe s:pA5a.'nsupseteqq <plug>\nsupseteqq '
exe s:pA5a.'varsupsetneqq <plug>\varsupsetneqq '
exe s:pA5a.'supsetneqq <plug>\supsetneqq '
exe s:pA5a.'nmid <plug>\nmid '
exe s:pA5a.'nshortmid <plug>\nshortmid '
exe s:pA5a.'nVdash <plug>\nVdash '
" }}}
" {{{ BinaryRel3
let s:pA6 = s:pA."&BinaryRel3."
exe s:pA6.'doteq <plug>\doteq '
exe s:pA6.'circeq <plug>\circeq '
exe s:pA6.'eqcirc <plug>\eqcirc '
exe s:pA6.'risingdotseq <plug>\risingdotseq '
exe s:pA6.'doteqdot <plug>\doteqdot '
exe s:pA6.'Doteq <plug>\Doteq '
exe s:pA6.'fallingdotseq <plug>\fallingdotseq '
exe s:pA6.'triangleq <plug>\triangleq '
exe s:pA6.'bumpeq <plug>\bumpeq '
exe s:pA6.'Bumpeq <plug>\Bumpeq '
exe s:pA6.'equiv<Tab>`= <plug>\equiv '
exe s:pA6.'sim <plug>\sim '
exe s:pA6.'thicksim <plug>\thicksim '
exe s:pA6.'backsim <plug>\backsim '
exe s:pA6.'simeq <plug>\simeq '
exe s:pA6.'backsimeq <plug>\backsimeq '
exe s:pA6.'cong <plug>\cong '
exe s:pA6.'approx<tab>=~ <plug>\approx '
exe s:pA6.'thickapprox <plug>\thickapprox '
exe s:pA6.'approxeq <plug>\approxeq '
exe s:pA6.'blacktriangleleft <plug>\blacktriangleleft '
exe s:pA6.'vartriangleleft <plug>\vartriangleleft '
exe s:pA6.'trianglelefteq <plug>\trianglelefteq '
exe s:pA6.'blacktriangleright <plug>\blacktriangleright '
exe s:pA6.'vartriangleright <plug>\vartriangleright '
exe s:pA6.'trianglerighteq <plug>\trianglerighteq '
exe s:pA6.'perp <plug>\perp '
exe s:pA6.'asymp <plug>\asymp '
exe s:pA6.'Vvdash <plug>\Vvdash '
exe s:pA6.'propto <plug>\propto '
exe s:pA6.'varpropto <plug>\varpropto '
exe s:pA6.'because <plug>\because '
" }}}
" {{{ nBinaryRel3
let s:pA6a = s:pA."&nBinaryRel3."
exe s:pA6a.'neq <plug>\neq '
exe s:pA6a.'nsim <plug>\nsim '
exe s:pA6a.'ncong <plug>\ncong '
exe s:pA6a.'ntriangleleft <plug>\ntriangleleft '
exe s:pA6a.'ntrianglelefteq <plug>\ntrianglelefteq '
exe s:pA6a.'ntriangleright <plug>\ntriangleright '
exe s:pA6a.'ntrianglerighteq <plug>\ntrianglerighteq '
" }}}
" {{{ BinaryRel4
let s:pA7 = s:pA."&BinaryRel4."
exe s:pA7.'lessgtr <plug>\lessgtr '
exe s:pA7.'gtrless <plug>\gtrless '
exe s:pA7.'lesseqgtr <plug>\lesseqgtr '
exe s:pA7.'gtreqless <plug>\gtreqless '
exe s:pA7.'lesseqqgtr <plug>\lesseqqgtr '
exe s:pA7.'gtreqqless <plug>\gtreqqless '
" }}}
" {{{ BigOp
let s:pA8a = s:pA."&BigOp."
exe s:pA8a.'limits <plug>\limits'
exe s:pA8a.'nolimits <plug>\nolimits'
exe s:pA8a.'displaylimits <plug>\displaylimits'
exe s:pA8a.'-seplimits- :'
exe s:pA8a.'bigcap<Tab>`- <plug>\bigcap'
exe s:pA8a.'bigcup<Tab>`+ <plug>\bigcup'
exe s:pA8a.'bigodot <plug>\bigodot'
exe s:pA8a.'bigoplus <plug>\bigoplus'
exe s:pA8a.'bigotimes <plug>\bigotimes'
exe s:pA8a.'bigsqcup <plug>\bigsqcup'
exe s:pA8a.'biguplus <plug>\biguplus'
exe s:pA8a.'bigvee <plug>\bigvee'
exe s:pA8a.'bigwedge <plug>\bigwedge'
exe s:pA8a.'coprod <plug>\coprod'
exe s:pA8a.'int <plug>\int'
exe s:pA8a.'oint <plug>\oint'
exe s:pA8a.'prod <plug>\prod'
exe s:pA8a.'sum <plug>\sum'
" }}}
" {{{ BinaryOp
let s:pA8 = s:pA."&BinaryOp."
exe s:pA8.'pm <plug>\pm '
exe s:pA8.'mp <plug>\mp '
exe s:pA8.'dotplus <plug>\dotplus '
exe s:pA8.'cdot<Tab>`. <plug>\cdot '
exe s:pA8.'centerdot <plug>\centerdot '
exe s:pA8.'times<Tab>`* <plug>\times '
exe s:pA8.'ltimes <plug>\ltimes '
exe s:pA8.'rtimes <plug>\rtimes '
exe s:pA8.'leftthreetimes <plug>\leftthreetimes '
exe s:pA8.'rightthreetimes <plug>\rightthreetimes '
exe s:pA8.'div <plug>\div '
exe s:pA8.'divideontimes <plug>\divideontimes '
exe s:pA8.'bmod <plug>\bmod '
exe s:pA8.'ast <plug>\ast '
exe s:pA8.'star <plug>\star '
exe s:pA8.'setminus<Tab>`\\ <plug>\setminus '
exe s:pA8.'smallsetminus <plug>\smallsetminus '
exe s:pA8.'diamond <plug>\diamond '
exe s:pA8.'wr <plug>\wr '
exe s:pA8.'intercal <plug>\intercal '
exe s:pA8.'circ<Tab>`@ <plug>\circ '
exe s:pA8.'bigcirc <plug>\bigcirc '
exe s:pA8.'bullet <plug>\bullet '
exe s:pA8.'cap <plug>\cap '
exe s:pA8.'Cap <plug>\Cap '
exe s:pA8.'cup <plug>\cup '
exe s:pA8.'Cup <plug>\Cup '
exe s:pA8.'sqcap <plug>\sqcap '
exe s:pA8.'sqcup <plug>\sqcup'
exe s:pA8.'amalg <plug>\amalg '
exe s:pA8.'uplus <plug>\uplus '
exe s:pA8.'triangleleft <plug>\triangleleft '
exe s:pA8.'triangleright <plug>\triangleright '
exe s:pA8.'bigtriangleup <plug>\bigtriangleup '
exe s:pA8.'bigtriangledown <plug>\bigtriangledown '
exe s:pA8.'vee <plug>\vee '
exe s:pA8.'veebar <plug>\veebar '
exe s:pA8.'curlyvee <plug>\curlyvee '
exe s:pA8.'wedge<Tab>`& <plug>\wedge '
exe s:pA8.'barwedge <plug>\barwedge '
exe s:pA8.'doublebarwedge <plug>\doublebarwedge '
exe s:pA8.'curlywedge <plug>\curlywedge '
exe s:pA8.'oplus <plug>\oplus '
exe s:pA8.'ominus <plug>\ominus '
exe s:pA8.'otimes <plug>\otimes '
exe s:pA8.'oslash <plug>\oslash '
exe s:pA8.'boxplus <plug>\boxplus '
exe s:pA8.'boxminus <plug>\boxminus '
exe s:pA8.'boxtimes <plug>\boxtimes '
exe s:pA8.'boxdot <plug>\boxdot '
exe s:pA8.'odot <plug>\odot '
exe s:pA8.'circledast <plug>\circledast '
exe s:pA8.'circleddash <plug>\circleddash '
exe s:pA8.'circledcirc <plug>\circledcirc '
exe s:pA8.'dagger <plug>\dagger '
exe s:pA8.'ddagger <plug>\ddagger '
exe s:pA8.'lhd <plug>\lhd '
exe s:pA8.'unlhd <plug>\unlhd '
exe s:pA8.'rhd <plug>\rhd '
exe s:pA8.'unrhd <plug>\unrhd '
" }}}
" {{{ Other1
let s:pA9 = s:pA."&Other1."
exe s:pA9.'hat <plug>\hat '
exe s:pA9.'check <plug>\check '
exe s:pA9.'grave <plug>\grave '
exe s:pA9.'acute <plug>\acute '
exe s:pA9.'dot <plug>\dot '
exe s:pA9.'ddot <plug>\ddot '
exe s:pA9.'tilde<Tab>`, <plug>\tilde '
exe s:pA9.'breve <plug>\breve '
exe s:pA9.'bar <plug>\bar '
exe s:pA9.'vec <plug>\vec '
exe s:pA9.'aleph <plug>\aleph '
exe s:pA9.'hbar <plug>\hbar '
exe s:pA9.'imath <plug>\imath '
exe s:pA9.'jmath <plug>\jmath '
exe s:pA9.'ell <plug>\ell '
exe s:pA9.'wp <plug>\wp '
exe s:pA9.'Re <plug>\Re '
exe s:pA9.'Im <plug>\Im '
exe s:pA9.'partial <plug>\partial '
exe s:pA9.'infty<Tab>`8 <plug>\infty '
exe s:pA9.'prime <plug>\prime '
exe s:pA9.'emptyset <plug>\emptyset '
exe s:pA9.'nabla <plug>\nabla '
exe s:pA9.'surd <plug>\surd '
exe s:pA9.'top <plug>\top '
exe s:pA9.'bot <plug>\bot '
exe s:pA9.'angle <plug>\angle '
exe s:pA9.'triangle <plug>\triangle '
exe s:pA9.'backslash <plug>\backslash '
exe s:pA9.'forall <plug>\forall '
exe s:pA9.'exists <plug>\exists '
exe s:pA9.'neg <plug>\neg '
exe s:pA9.'flat <plug>\flat '
exe s:pA9.'natural <plug>\natural '
exe s:pA9.'sharp <plug>\sharp '
exe s:pA9.'clubsuit <plug>\clubsuit '
exe s:pA9.'diamondsuit <plug>\diamondsuit '
exe s:pA9.'heartsuit <plug>\heartsuit '
exe s:pA9.'spadesuit <plug>\spadesuit '
exe s:pA9.'S <plug>\S '
exe s:pA9.'P <plug>\P'
" }}}
" {{{ MathCreating
let s:pA10 = s:pA."&MathCreating."
exe s:pA10.'not <plug>\not'
exe s:pA10.'mkern <plug>\mkern'
exe s:pA10.'mathbin <plug>\mathbin'
exe s:pA10.'mathrel <plug>\mathrel'
exe s:pA10.'stackrel <plug>\stackrel'
exe s:pA10.'mathord <plug>\mathord'
" }}}
" {{{ Styles
let s:pA11 = s:pA."&Styles."
exe s:pA11.'displaystyle <plug>\displaystyle'
exe s:pA11.'textstyle <plug>\textstyle'
exe s:pA11.'scritpstyle <plug>\scritpstyle'
exe s:pA11.'scriptscriptstyle <plug>\scriptscriptstyle'
" }}}
" {{{ MathDiacritics
let s:pA12 = s:pA."&MathDiacritics."
exe s:pA12.'acute{} <plug><C-r>=IMAP_PutTextWithMovement("\\acute{<++>}<++>")<cr>'
exe s:pA12.'bar{}<Tab>`_ <plug><C-r>=IMAP_PutTextWithMovement("\\bar{<++>}<++>")<cr>'
exe s:pA12.'breve{} <plug><C-r>=IMAP_PutTextWithMovement("\\breve{<++>}<++>")<cr>'
exe s:pA12.'check{} <plug><C-r>=IMAP_PutTextWithMovement("\\check{<++>}<++>")<cr>'
exe s:pA12.'ddot{}<Tab>`: <plug><C-r>=IMAP_PutTextWithMovement("\\ddot{<++>}<++>")<cr>'
exe s:pA12.'dot{}<Tab>`; <plug><C-r>=IMAP_PutTextWithMovement("\\dot{<++>}<++>")<cr>'
exe s:pA12.'grave{} <plug><C-r>=IMAP_PutTextWithMovement("\\grave{<++>}<++>")<cr>'
exe s:pA12.'hat{}<Tab>`^ <plug><C-r>=IMAP_PutTextWithMovement("\\hat{<++>}<++>")<cr>'
exe s:pA12.'tilde{}<tab>`~ <plug><C-r>=IMAP_PutTextWithMovement("\\tilde{<++>}<++>")<cr>'
exe s:pA12.'vec{} <plug><C-r>=IMAP_PutTextWithMovement("\\vec{<++>}<++>")<cr>'
exe s:pA12.'widehat{} <plug><C-r>=IMAP_PutTextWithMovement("\\widehat{<++>}<++>")<cr>'
exe s:pA12.'widetilde{} <plug><C-r>=IMAP_PutTextWithMovement("\\widetilde{<++>}<++>")<cr>'
exe s:pA12.'imath <plug><C-r>=IMAP_PutTextWithMovement("\\imath")<cr>'
exe s:pA12.'jmath <plug><C-r>=IMAP_PutTextWithMovement("\\jmath")<cr>'
" }}}
" {{{ OverlineAndCo
let s:pA13 = s:pA."&OverlineAndCo."
exe s:pA13.'overline{} <plug><C-r>=IMAP_PutTextWithMovement("\\overline{}")<cr>'
exe s:pA13.'underline{} <plug><C-r>=IMAP_PutTextWithMovement("\\underline{}")<cr>'
exe s:pA13.'overrightarrow{} <plug><C-r>=IMAP_PutTextWithMovement("\\overrightarrow{}")<cr>'
exe s:pA13.'overleftarrow{} <plug><C-r>=IMAP_PutTextWithMovement("\\overleftarrow{}")<cr>'
exe s:pA13.'overbrace{} <plug><C-r>=IMAP_PutTextWithMovement("\\overbrace{}")<cr>'
exe s:pA13.'underbrace{} <plug><C-r>=IMAP_PutTextWithMovement("\\underbrace{}")<cr>'
" }}}
" {{{ Symbols1
let s:pA14a = s:pA."&Symbols1."
exe s:pA14a.'forall <plug>\forall '
exe s:pA14a.'exists <plug>\exists '
exe s:pA14a.'nexists <plug>\nexists '
exe s:pA14a.'neg <plug>\neg '
exe s:pA14a.'top <plug>\top '
exe s:pA14a.'bot <plug>\bot '
exe s:pA14a.'emptyset <plug>\emptyset '
exe s:pA14a.'varnothing <plug>\varnothing '
exe s:pA14a.'infty <plug>\infty '
exe s:pA14a.'aleph <plug>\aleph '
exe s:pA14a.'beth <plug>\beth '
exe s:pA14a.'gimel <plug>\gimel '
exe s:pA14a.'daleth <plug>\daleth '
exe s:pA14a.'hbar <plug>\hbar '
exe s:pA14a.'hslash <plug>\hslash '
exe s:pA14a.'diagup <plug>\diagup '
exe s:pA14a.'vert <plug>\vert '
exe s:pA14a.'Vert <plug>\Vert '
exe s:pA14a.'backslash <plug>\backslash '
exe s:pA14a.'diagdown <plug>\diagdown '
exe s:pA14a.'Bbbk <plug>\Bbbk '
exe s:pA14a.'P <plug>\P '
exe s:pA14a.'S <plug>\S '
" }}}
" {{{ Symbols2
let s:pA14b = s:pA."&Symbols2."
exe s:pA14b.'# <plug>\# '
exe s:pA14b.'% <plug>\% '
exe s:pA14b.'_ <plug>\_ '
exe s:pA14b.'$ <plug>\$ '
exe s:pA14b.'& <plug>\& '
exe s:pA14b.'imath <plug>\imath '
exe s:pA14b.'jmath <plug>\jmath '
exe s:pA14b.'ell <plug>\ell '
exe s:pA14b.'wp <plug>\wp '
exe s:pA14b.'Re <plug>\Re '
exe s:pA14b.'Im <plug>\Im '
exe s:pA14b.'prime <plug>\prime '
exe s:pA14b.'backprime <plug>\backprime '
exe s:pA14b.'nabla <plug>\nabla '
exe s:pA14b.'surd <plug>\surd '
exe s:pA14b.'flat <plug>\flat '
exe s:pA14b.'sharp <plug>\sharp '
exe s:pA14b.'natural <plug>\natural '
exe s:pA14b.'eth <plug>\eth '
exe s:pA14b.'bigstar <plug>\bigstar '
exe s:pA14b.'circledS <plug>\circledS '
exe s:pA14b.'Finv <plug>\Finv '
exe s:pA14b.'dag <plug>\dag '
exe s:pA14b.'ddag <plug>\ddag '
" }}}
" {{{ Symbols3
let s:pA14c = s:pA."&Symbols3."
exe s:pA14c.'angle <plug>\angle '
exe s:pA14c.'measuredangle <plug>\measuredangle '
exe s:pA14c.'sphericalangle <plug>\sphericalangle '
exe s:pA14c.'spadesuit <plug>\spadesuit '
exe s:pA14c.'heartsuit <plug>\heartsuit '
exe s:pA14c.'diamondsuit <plug>\diamondsuit '
exe s:pA14c.'clubsuit <plug>\clubsuit '
exe s:pA14c.'lozenge <plug>\lozenge '
exe s:pA14c.'blacklozenge <plug>\blacklozenge '
exe s:pA14c.'Diamond <plug>\Diamond '
exe s:pA14c.'triangle <plug>\triangle '
exe s:pA14c.'vartriangle <plug>\vartriangle '
exe s:pA14c.'blacktriangle <plug>\blacktriangle '
exe s:pA14c.'triangledown <plug>\triangledown '
exe s:pA14c.'blacktriangledown <plug>\blacktriangledown '
exe s:pA14c.'Box <plug>\Box '
exe s:pA14c.'square <plug>\square '
exe s:pA14c.'blacksquare <plug>\blacksquare '
exe s:pA14c.'complement <plug>\complement '
exe s:pA14c.'mho <plug>\mho '
exe s:pA14c.'Game <plug>\Game '
exe s:pA14c.'partial<Tab>`6 <plug>\partial '
exe s:pA14c.'smallint <plug>\smallint '
" }}}
" {{{ Logic
let s:pA15 = s:pA."&Logic."
exe s:pA15.'lnot <plug>\lnot '
exe s:pA15.'lor <plug>\lor '
exe s:pA15.'land <plug>\land '
" }}}
" {{{ Limits1
let s:pA16 = s:pA."&Limits1."
exe s:pA16.'left <plug>\left'
exe s:pA16.'right <plug>\right'
exe s:pA16.'-sepbigl- :'
exe s:pA16.'bigl <plug>\bigl'
exe s:pA16.'Bigl <plug>\Bigl'
exe s:pA16.'biggl <plug>\biggl'
exe s:pA16.'Biggl <plug>\Biggl'
exe s:pA16.'-sepbigr- :'
exe s:pA16.'bigr <plug>\bigr'
exe s:pA16.'Bigr <plug>\Bigr'
exe s:pA16.'biggr <plug>\biggr'
exe s:pA16.'Biggr <plug>\Biggr'
exe s:pA16.'-sepbig- :'
exe s:pA16.'big <plug>\big'
exe s:pA16.'bigm <plug>\bigm'
exe s:pA16.'-sepfloor- :'
exe s:pA16.'lfloor <plug>\lfloor '
exe s:pA16.'lceil <plug>\lceil '
exe s:pA16.'rfloor <plug>\rfloor '
exe s:pA16.'rceil <plug>\rceil '
exe s:pA16.'-sepangle- :'
exe s:pA16.'langle <plug>\langle '
exe s:pA16.'rangle <plug>\rangle '
" }}}
" {{{ Limits2
let s:pA16a = s:pA."&Limits2."
exe s:pA16a.'ulcorner <plug>\ulcorner '
exe s:pA16a.'urcorner <plug>\urcorner '
exe s:pA16a.'llcorner <plug>\llcorner '
exe s:pA16a.'rlcorner <plug>\rlcorner '
exe s:pA16a.'-sepcorner- :'
exe s:pA16a.'vert <plug>\vert '
exe s:pA16a.'Vert <plug>\Vert '
exe s:pA16a.'lvert <plug>\lvert '
exe s:pA16a.'lVert <plug>\lVert '
exe s:pA16a.'rvert <plug>\rvert '
exe s:pA16a.'rVert <plug>\rVert '
exe s:pA16a.'uparrow <plug>\uparrow '
exe s:pA16a.'Uparrow <plug>\Uparrow '
exe s:pA16a.'downarrow <plug>\downarrow '
exe s:pA16a.'Downarrow <plug>\Downarrow '
exe s:pA16a.'updownarrow <plug>\updownarrow '
exe s:pA16a.'Updownarrow <plug>\Updownarrow '
exe s:pA16a.'lgroup <plug>\lgroup '
exe s:pA16a.'rgroup <plug>\rgroup '
exe s:pA16a.'lmoustache <plug>\lmoustache '
exe s:pA16a.'rmoustache <plug>\rmoustache '
exe s:pA16a.'arrowvert <plug>\arrowvert '
exe s:pA16a.'Arrowvert <plug>\Arrowvert '
exe s:pA16a.'bracevert <plug>\bracevert '
" }}}
" {{{ Log-likes
let s:pA17 = s:pA."Lo&g-likes."
exe s:pA17.'arccos <plug>\arccos '
exe s:pA17.'arcsin <plug>\arcsin '
exe s:pA17.'arctan <plug>\arctan '
exe s:pA17.'arg <plug>\arg '
exe s:pA17.'cos <plug>\cos '
exe s:pA17.'cosh <plug>\cosh '
exe s:pA17.'cot <plug>\cot '
exe s:pA17.'coth <plug>\coth '
exe s:pA17.'csc <plug>\csc '
exe s:pA17.'deg <plug>\deg '
exe s:pA17.'det <plug>\det '
exe s:pA17.'dim <plug>\dim '
exe s:pA17.'exp <plug>\exp '
exe s:pA17.'gcd <plug>\gcd '
exe s:pA17.'hom <plug>\hom '
exe s:pA17.'inf <plug>\inf '
exe s:pA17.'injlim <plug>\injlim '
exe s:pA17.'ker <plug>\ker '
exe s:pA17.'lg <plug>\lg '
exe s:pA17.'lim <plug>\lim '
exe s:pA17.'liminf <plug>\liminf '
exe s:pA17.'limsup <plug>\limsup '
exe s:pA17.'ln <plug>\ln '
exe s:pA17.'log <plug>\log '
exe s:pA17.'max <plug>\max '
exe s:pA17.'min <plug>\min '
exe s:pA17.'Pr <plug>\Pr '
exe s:pA17.'projlim <plug>\projlim '
exe s:pA17.'sec <plug>\sec '
exe s:pA17.'sin <plug>\sin '
exe s:pA17.'sinh <plug>\sinh '
exe s:pA17.'sup <plug>\sup '
exe s:pA17.'tan <plug>\tan '
exe s:pA17.'tanh <plug>\tanh '
exe s:pA17.'varlimsup <plug>\varlimsup '
exe s:pA17.'varliminf <plug>\varliminf '
exe s:pA17.'varinjlim <plug>\varinjlim '
exe s:pA17.'varprojlim <plug>\varprojlim '
" }}}
" {{{ MathSpacing
let s:pA18 = s:pA."MathSpacing."
exe s:pA18.', <plug>\, '
exe s:pA18.': <plug>\: '
exe s:pA18.'; <plug>\; '
exe s:pA18.'[space] <plug>\ '
exe s:pA18.'quad <plug>\quad '
exe s:pA18.'qquad <plug>\qquad '
exe s:pA18.'! <plug>\! '
exe s:pA18.'thinspace <plug>\thinspace '
exe s:pA18.'medspace <plug>\medspace '
exe s:pA18.'thickspace <plug>\thickspace '
exe s:pA18.'negthinspace <plug>\negthinspace '
exe s:pA18.'negmedspace <plug>\negmedspace '
exe s:pA18.'negthickspace <plug>\negthickspace '
" 1}}}
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4

View File

@ -0,0 +1,17 @@
" ============================================================================
" File: multicompile.vim
" Author: Srinath Avadhanula
" Created: Sat Jul 05 03:00 PM 2003
" Description: compile a .tex file multiple times to get cross references
" right.
" License: Vim Charityware License
" Part of vim-latexSuite: http://vim-latex.sourceforge.net
" CVS: $Id: multicompile.vim 997 2006-03-20 09:45:45Z srinathava $
" ============================================================================
" The contents of this file have been moved to compiler.vim, the file which
" contains all functions relevant to compiling and viewing.
" This file is kept empty on purpose so that it will over-write previous
" versions of multicompile.vim, therby preventing conflicts.
" vim:fdm=marker:nowrap:noet:ff=unix:ts=4:sw=4

View File

@ -0,0 +1,186 @@
#!/usr/bin/python
# Part of Latex-Suite
#
# Copyright: Srinath Avadhanula
# Description:
# This file implements a simple outline creation for latex documents.
import re
import os
import sys
import StringIO
# getFileContents {{{
def getFileContents(argin, ext=''):
if type(argin) is str:
fname = argin + ext
else:
fname = argin.group(3) + ext
# This longish thing is to make sure that all files are converted into
# \n seperated lines.
contents = '\n'.join(open(fname).read().splitlines())
# TODO what are all the ways in which a tex file can include another?
pat = re.compile(r'^\\(@?)(include|input){(.*?)}', re.M)
contents = re.sub(pat, lambda input: getFileContents(input, ext), contents)
return ('%%==== FILENAME: %s' % fname) + '\n' + contents
# }}}
# stripComments {{{
def stripComments(contents):
# remove all comments except those of the form
# %%==== FILENAME: <filename.tex>
uncomm = [re.sub('%(?!==== FILENAME: ).*', '', line) for line in contents.splitlines()]
# also remove all only-whitespace lines.
nonempty = [line for line in uncomm if line.strip()]
return nonempty
# }}}
# addFileNameAndNumber {{{
def addFileNameAndNumber(lines):
filename = ''
retval = ''
for line in lines:
if re.match('%==== FILENAME: ', line):
filename = line.split('%==== FILENAME: ')[1]
else:
retval += '<%s>%s\n' % (filename, line)
return retval
# }}}
# getSectionLabels_Root {{{
def getSectionLabels_Root(lineinfo, section_prefix, label_prefix):
prev_txt = ''
inside_env = 0
prev_env = ''
outstr = StringIO.StringIO('')
pres_depth = len(section_prefix)
#print '+getSectionLabels_Root: lineinfo = [%s]' % lineinfo
for line in lineinfo.splitlines():
if not line:
continue
# throw away leading white-space
m = re.search('<(.*?)>(.*)', line)
fname = m.group(1)
line = m.group(2).lstrip()
# we found a label!
m = re.search(r'\\label{(%s.*?)}' % label_prefix, line)
if m:
# add the current line (except the \label command) to the text
# which will be displayed below this label
prev_txt += re.search(r'(^.*?)\\label{', line).group(1)
# for the figure environment however, just display the caption.
# instead of everything since the \begin command.
if prev_env == 'figure':
cm = re.search(r'\caption(\[.*?\]\s*)?{(.*?)}', prev_txt)
if cm:
prev_txt = cm.group(2)
# print a nice formatted text entry like so
#
# > eqn:label
# : e^{i\pi} + 1 = 0
#
# Use the current "section depth" for the leading indentation.
print >>outstr, '>%s%s\t\t<%s>' % (' '*(2*pres_depth+2),
m.group(1), fname)
print >>outstr, ':%s%s' % (' '*(2*pres_depth+4), prev_txt)
prev_txt = ''
# If we just encoutered the start or end of an environment or a
# label, then do not remember this line.
# NOTE: This assumes that there is no equation text on the same
# line as the \begin or \end command. The text on the same line as
# the \label was already handled.
if re.search(r'\\begin{(equation|eqnarray|align|figure)', line):
prev_txt = ''
prev_env = re.search(r'\\begin{(.*?)}', line).group(1)
inside_env = 1
elif re.search(r'\\label', line):
prev_txt = ''
elif re.search(r'\\end{(equation|eqnarray|align|figure)', line):
inside_env = 0
prev_env = ''
else:
# If we are inside an environment, then the text displayed with
# the label is the complete text within the environment,
# otherwise its just the previous line.
if inside_env:
prev_txt += line
else:
prev_txt = line
return outstr.getvalue()
# }}}
# getSectionLabels {{{
def getSectionLabels(lineinfo,
sectypes=['chapter', 'section', 'subsection', 'subsubsection'],
section_prefix='', label_prefix=''):
if not sectypes:
return getSectionLabels_Root(lineinfo, section_prefix, label_prefix)
##print 'sectypes[0] = %s, section_prefix = [%s], lineinfo = [%s]' % (
## sectypes[0], section_prefix, lineinfo)
sections = re.split(r'(<.*?>\\%s{.*})' % sectypes[0], lineinfo)
# there will 1+2n sections, the first containing the "preamble" and the
# others containing the child sections as paris of [section_name,
# section_text]
rettext = getSectionLabels(sections[0], sectypes[1:], section_prefix, label_prefix)
for i in range(1,len(sections),2):
sec_num = (i+1)/2
section_name = re.search(r'\\%s{(.*?)}' % sectypes[0], sections[i]).group(1)
section_label_text = getSectionLabels(sections[i] + sections[i+1], sectypes[1:],
section_prefix+('%d.' % sec_num), label_prefix)
if section_label_text:
sec_heading = 2*' '*len(section_prefix) + section_prefix
sec_heading += '%d. %s' % (sec_num, section_name)
sec_heading += '<<<%d\n' % (len(section_prefix)/2+1)
rettext += sec_heading + section_label_text
return rettext
# }}}
# main {{{
def main(fname, label_prefix):
[head, tail] = os.path.split(fname)
if head:
os.chdir(head)
[root, ext] = os.path.splitext(tail)
contents = getFileContents(root, ext)
nonempty = stripComments(contents)
lineinfo = addFileNameAndNumber(nonempty)
return getSectionLabels(lineinfo, label_prefix=label_prefix)
# }}}
if __name__ == "__main__":
if len(sys.argv) > 2:
prefix = sys.argv[2]
else:
prefix = ''
print main(sys.argv[1], prefix)
# vim: fdm=marker

View File

@ -0,0 +1,669 @@
"=============================================================================
" File: packages.vim
" Author: Mikolaj Machowski
" Created: Tue Apr 23 06:00 PM 2002 PST
" CVS: $Id: packages.vim 997 2006-03-20 09:45:45Z srinathava $
"
" Description: handling packages from within vim
"=============================================================================
" avoid reinclusion.
if !g:Tex_PackagesMenu || exists('s:doneOnce')
finish
endif
let s:doneOnce = 1
let s:path = expand("<sfile>:p:h")
let s:menu_div = 20
com! -nargs=0 TPackageUpdate :silent! call Tex_pack_updateall(1)
com! -nargs=0 TPackageUpdateAll :silent! call Tex_pack_updateall(1)
" Custom command-line completion of Tcommands is very useful but this feature
" is available only in Vim 6.2 and above. Check number of version and choose
" proper command and function.
if v:version >= 602
com! -complete=custom,Tex_CompletePackageName -nargs=* TPackage let s:retVal = Tex_pack_one(<f-args>) <bar> normal! i<C-r>=s:retVal<CR>
" Tex_CompletePackageName: for completing names in TPackage command {{{
" Description: get list of package names with globpath(), remove full path
" and return list of names separated with newlines.
"
function! Tex_CompletePackageName(A,P,L)
" Get name of packages from all runtimepath directories
let packnames = Tex_FindInRtp('', 'packages')
let packnames = substitute(packnames, '^,', '', 'e')
" Separate names with \n not ,
let packnames = substitute(packnames,',','\n','g')
return packnames
endfunction
" }}}
else
com! -nargs=* TPackage let s:retVal = Tex_pack_one(<f-args>) <bar> normal! i<C-r>=s:retVal<CR>
endif
imap <silent> <plug> <Nop>
nmap <silent> <plug> i
let g:Tex_package_supported = ''
let g:Tex_package_detected = ''
" Remember the defaults because we want g:Tex_PromptedEnvironments to contain
" in addition to the default, \newenvironments, and the \newenvironments might
" change...
let g:Tex_PromptedEnvironmentsDefault = g:Tex_PromptedEnvironments
let g:Tex_PromptedCommandsDefault = g:Tex_PromptedCommands
" Tex_pack_check: creates the package menu and adds to 'dict' setting. {{{
"
function! Tex_pack_check(package)
" Use Tex_FindInRtp() function to get first name from packages list in all
" rtp directories conforming with latex-suite directories hierarchy
" Store names in variables to process functions only once.
let packname = Tex_FindInRtp(a:package, 'packages')
if packname != ''
exe 'runtime! ftplugin/latex-suite/packages/' . a:package
if has("gui_running")
call Tex_pack(a:package)
endif
if g:Tex_package_supported !~ a:package
let g:Tex_package_supported = g:Tex_package_supported.','.a:package
endif
endif
" Return full list of dictionaries (separated with ,) for package in &rtp
call Tex_Debug("Tex_pack_check: searching for ".a:package." in dictionaries/ in &rtp", "pack")
let dictname = Tex_FindInRtp(a:package, 'dictionaries', ':p')
if dictname != ''
exe 'setlocal dict^=' . dictname
call Tex_Debug('Tex_pack_check: setlocal dict^=' . dictname, 'pack')
if g:Tex_package_supported !~ a:package
let g:Tex_package_supported = g:Tex_package_supported.','.a:package
endif
endif
if g:Tex_package_detected !~ '\<'.a:package.'\>'
let g:Tex_package_detected = g:Tex_package_detected.','.a:package
endif
let g:Tex_package_detected = substitute(g:Tex_package_detected, '^,', '', '')
let g:Tex_package_supported = substitute(g:Tex_package_supported, '^,', '', '')
endfunction
" }}}
" Tex_pack_uncheck: removes package from menu and 'dict' settings. {{{
function! Tex_pack_uncheck(package)
if has("gui_running") && Tex_FindInRtp(a:package, 'packages') != ''
exe 'silent! aunmenu '.g:Tex_PackagesMenuLocation.'-sep'.a:package.'-'
exe 'silent! aunmenu '.g:Tex_PackagesMenuLocation.a:package.'\ Options'
exe 'silent! aunmenu '.g:Tex_PackagesMenuLocation.a:package.'\ Commands'
endif
if Tex_FindInRtp(a:package, 'dictionaries') != ''
exe 'setlocal dict-='.Tex_FindInRtp(a:package, 'dictionaries')
endif
endfunction
" }}}
" Tex_pack_updateall: updates the TeX-Packages menu {{{
" Description:
" This function first calls Tex_pack_all to scan for \usepackage's etc if
" necessary. After that, it 'supports' and 'unsupports' packages as needed
" in such a way as to not repeat work.
function! Tex_pack_updateall(force)
call Tex_Debug('+Tex_pack_updateall', 'pack')
" Find out which file we need to scan.
let fname = Tex_GetMainFileName(':p')
" If this is the same as last time, don't repeat.
if !a:force && exists('s:lastScannedFile') &&
\ s:lastScannedFile == fname
return
endif
" Remember which file we scanned for next time.
let s:lastScannedFile = fname
" Remember which packages we detected last time.
if exists('g:Tex_package_detected')
let oldpackages = g:Tex_package_detected
else
let oldpackages = ''
endif
" This sets up a global variable of all detected packages.
let g:Tex_package_detected = ''
" reset the environments and commands.
let g:Tex_PromptedEnvironments = g:Tex_PromptedEnvironmentsDefault
let g:Tex_PromptedCommands = g:Tex_PromptedCommandsDefault
if expand('%:p') != fname
call Tex_Debug(':Tex_pack_updateall: sview '.Tex_EscapeSpaces(fname), 'pack')
exe 'sview '.Tex_EscapeSpaces(fname)
else
call Tex_Debug(':Tex_pack_updateall: split', 'pack')
split
endif
call Tex_ScanForPackages()
q
call Tex_Debug(':Tex_pack_updateall: detected ['.g:Tex_package_detected.'] in first run', 'pack')
" Now for each package find out if this is a custom package and if so,
" scan that as well. We will use the ':find' command in vim to let vim
" search through the file paths for us.
"
" NOTE: This while loop will also take into account packages included
" within packages to any level of recursion as long as
" g:Tex_package_detected is always padded with new package names
" from the end.
"
" First set the &path setting to the user's TEXINPUTS setting.
let _path = &path
let _suffixesadd = &suffixesadd
let &path = '.,'.g:Tex_TEXINPUTS
let &suffixesadd = '.sty,.tex'
let scannedPackages = ''
let i = 1
let packname = Tex_Strntok(g:Tex_package_detected, ',', i)
while packname != ''
call Tex_Debug(':Tex_pack_updateall: scanning package '.packname, 'pack')
" Scan this package only if we have not scanned it before in this
" run.
if scannedPackages =~ '\<'.packname.'\>'
let i = i + 1
call Tex_Debug(':Tex_pack_updateall: '.packname.' already scanned', 'pack')
let packname = Tex_Strntok(g:Tex_package_detected, ',', i)
continue
endif
" Split this window in two. The packages/files being found will open
" in this new window and we also need not bother with files being
" modified etc.
split
call Tex_Debug(':Tex_pack_updateall: silent! find '.Tex_EscapeSpaces(packname).'.sty', 'pack')
let thisbufnum = bufnr('%')
exec 'silent! find '.Tex_EscapeSpaces(packname).'.sty'
call Tex_Debug(':Tex_pack_updateall: present file = '.bufname('%'), 'pack')
" If this file was not found, assume that it means its not a
" custom package and mark it "scanned".
" A package is not found if we stay in the same buffer as before and
" its not the one where we want to go.
if bufnr('%') == thisbufnum && bufnr('%') != bufnr(packname.'.sty')
let scannedPackages = scannedPackages.','.packname
q
call Tex_Debug(':Tex_pack_updateall: '.packname.' not found anywhere', 'pack')
let i = i + 1
let packname = Tex_Strntok(g:Tex_package_detected, ',', i)
continue
endif
" otherwise we are presently editing a custom package, scan it for
" more \usepackage lines from the first line to the last.
let packpath = expand('%:p')
let &complete = &complete.'s'.packpath
call Tex_Debug(':Tex_pack_updateall: found custom package '.packpath, 'pack')
call Tex_ScanForPackages(line('$'), line('$'))
call Tex_Debug(':Tex_pack_updateall: After scanning, g:Tex_package_detected = '.g:Tex_package_detected, 'pack')
let scannedPackages = scannedPackages.','.packname
" Do not use bwipe, but that leads to excessive buffer number
" consumption. Besides, its intuitive for a custom package to remain
" on the buffer list.
q
let i = i + 1
let packname = Tex_Strntok(g:Tex_package_detected, ',', i)
endwhile
let &path = _path
let &suffixesadd = _suffixesadd
" Now only support packages we didn't last time.
" First remove packages which were used last time but are no longer used.
let i = 1
let oldPackName = Tex_Strntok(oldpackages, ',', i)
while oldPackName != ''
if g:Tex_package_detected !~ oldPackName
call Tex_pack_uncheck(oldPackName)
endif
let i = i + 1
let oldPackName = Tex_Strntok(oldpackages, ',', i)
endwhile
" Then support packages which are used this time but weren't used last
" time.
let i = 1
let newPackName = Tex_Strntok(g:Tex_package_detected, ',', i)
while newPackName != ''
if oldpackages !~ newPackName
call Tex_pack_one(newPackName)
endif
let i = i + 1
let newPackName = Tex_Strntok(g:Tex_package_detected, ',', i)
endwhile
" Throw an event that we are done scanning packages. Some packages might
" use this to change behavior based on which options have been used etc.
call Tex_Debug(":Tex_pack_updateall: throwing LatexSuiteScannedPackages event", "pack")
silent! do LatexSuite User LatexSuiteScannedPackages
call Tex_Debug("-Tex_pack_updateall", "pack")
endfunction
" }}}
" Tex_pack_one: supports each package in the argument list.{{{
" Description:
" If no arguments are supplied, then the user is asked to choose from the
" packages found in the packages/ directory
function! Tex_pack_one(...)
if a:0 == 0 || (a:0 > 0 && a:1 == '')
let packlist = Tex_FindInRtp('', 'packages')
let packname = Tex_ChooseFromPrompt(
\ "Choose a package: \n" .
\ Tex_CreatePrompt(packlist, '3', ',') .
\ "\nEnter number or filename :",
\ packlist, ',')
if packname != ''
return Tex_pack_one(packname)
else
return ''
endif
else
" Support the packages supplied. This function can be called with
" multiple arguments in which case, support each of them in turn.
let retVal = ''
let omega = 1
while omega <= a:0
let packname = a:{omega}
if Tex_FindInRtp(packname, 'packages') != ''
call Tex_pack_check(packname)
if exists('g:TeX_package_option_'.packname)
\ && g:TeX_package_option_{packname} != ''
let retVal = retVal.'\usepackage[<++>]{'.packname.'}<++>'
else
let retVal = retVal.'\usepackage{'.packname.'}'."\<CR>"
endif
else
let retVal = retVal.'\usepackage{'.packname.'}'."\<CR>"
endif
let omega = omega + 1
endwhile
return IMAP_PutTextWithMovement(substitute(retVal, "\<CR>$", '', ''), '<+', '+>')
endif
endfunction
" }}}
" Tex_ScanForPackages: scans the current file for \usepackage{} lines {{{
" and if supported, loads the options and commands found in the
" corresponding package file. Also scans for \newenvironment and
" \newcommand lines and adds names to g:Tex_Prompted variables, they can be
" easy available through <F5> and <F7> shortcuts
function! Tex_ScanForPackages(...)
call Tex_Debug("+Tex_ScanForPackages", "pack")
let pos = line('.').' | normal! '.virtcol('.').'|'
" For package files without \begin and \end{document}, we might be told to
" search from beginning to end.
if a:0 < 2
0
let beginline = search('\\begin{document}', 'W')
let endline = search('\\end{document}', 'W')
0
else
let beginline = a:1
let endline = a:2
endif
call Tex_Debug(":Tex_ScanForPackages: Begining scans in [".bufname('%')."], beginline = ".beginline, "pack")
" Scan the file. First open up all the folds, because the command
" /somepattern
" issued in a closed fold _always_ goes to the first match.
let erm = v:errmsg
silent! normal! ggVGzO
let v:errmsg = erm
call Tex_Debug(":Tex_ScanForPackages: beginning scan for \\usepackage lines", "pack")
" The wrap trick enables us to match \usepackage on the first line as
" well.
let wrap = 'w'
while search('^\s*\\usepackage\_.\{-}{\_.\+}', wrap)
let wrap = 'W'
if line('.') > beginline
break
endif
let saveA = @a
" If there are options, then find those.
if getline('.') =~ '\\usepackage\[.\{-}\]'
let options = matchstr(getline('.'), '\\usepackage\[\zs.\{-}\ze\]')
elseif getline('.') =~ '\\usepackage\['
" Entering here means that the user has split the \usepackage
" across newlines. Therefore, use yank.
exec "normal! /{\<CR>\"ayi}"
let options = @a
else
let options = ''
endif
" The following statement puts the stuff between the { }'s of a
" \usepackage{stuff,foo} into @a. Do not use matchstr() and the like
" because we can have things split across lines and such.
exec "normal! /{\<CR>\"ay/}\<CR>"
" now remove all whitespace from @a. We need to remove \n and \r
" because we can encounter stuff like
" \usepackage{pack1,
" newpackonanotherline}
let @a = substitute(@a, "[ \t\n\r]", '', 'g')
" Now we have something like pack1,pack2,pack3 with possibly commas
" and stuff before the first package and after the last package name.
" Remove those.
let @a = substitute(@a, '\(^\W*\|\W*$\)', '', 'g')
" This gets us a string like 'pack1,pack2,pack3'
" TODO: This will contain duplicates if the user has duplicates.
" Should we bother taking care of this?
let g:Tex_package_detected = g:Tex_package_detected.','.@a
" For each package found, form a global variable of the form
" g:Tex_{packagename}_options
" which contains a list of the options.
let j = 1
while Tex_Strntok(@a, ',', j) != ''
let g:Tex_{Tex_Strntok(@a, ',', j)}_options = options
let j = j + 1
endwhile
" Finally convert @a into something like '"pack1","pack2"'
let @a = substitute(@a, '^\|$', '"', 'g')
let @a = substitute(@a, ',', '","', 'g')
call Tex_Debug(":Tex_ScanForPackages: found package(s) [".@a."] on line ".line('.'), "pack")
" restore @a
let @a = saveA
endwhile
call Tex_Debug(":Tex_ScanForPackages: End scan \\usepackage, detected packages = ".g:Tex_package_detected, "pack")
" TODO: This needs to be changed. In the future, we might have
" functionality to remember the fold-state before opening up all the folds
" and then re-creating them. Use mkview.vim.
let erm = v:errmsg
silent! normal! ggVGzC
let v:errmsg = erm
" Because creating list of detected packages gives string
" ',pack1,pack2,pack3' remove leading ,
let g:Tex_package_detected = substitute(g:Tex_package_detected, '^,', '', '')
call Tex_Debug(":Tex_ScanForPackages: Beginning scan for \\newcommand's", "pack")
" Scans whole file (up to \end{document}) for \newcommand and adds this
" commands to g:Tex_PromptedCommands variable, it is easily available
" through <F7>
0
while search('^\s*\\newcommand\*\?{.\{-}}', 'W')
if line('.') > endline
break
endif
let newcommand = matchstr(getline('.'), '\\newcommand\*\?{\\\zs.\{-}\ze}')
let g:Tex_PromptedCommands = g:Tex_PromptedCommands . ',' . newcommand
endwhile
" Scans whole file (up to \end{document}) for \newenvironment and adds this
" environments to g:Tex_PromptedEnvironments variable, it is easily available
" through <F5>
0
call Tex_Debug(":Tex_ScanForPackages: Beginning scan for \\newenvironment's", 'pack')
while search('^\s*\\newenvironment\*\?{.\{-}}', 'W')
call Tex_Debug('found newenvironment on '.line('.'), 'pack')
if line('.') > endline
break
endif
let newenvironment = matchstr(getline('.'), '\\newenvironment\*\?{\zs.\{-}\ze}')
let g:Tex_PromptedEnvironments = g:Tex_PromptedEnvironments . ',' . newenvironment
endwhile
exe pos
" first make a random search so that we push at least one item onto the
" search history. Since vim puts only one item in the history per function
" call, this way we make sure that one and only item is put into the
" search history.
normal! /^<CR>
" now delete it...
call histdel('/', -1)
call Tex_Debug("-Tex_ScanForPackages", "pack")
endfunction
" }}}
" Tex_pack_supp_menu: sets up a menu for package files {{{
" found in the packages directory groups the packages thus found into groups
" of 20...
function! Tex_pack_supp_menu()
let suplist = Tex_FindInRtp('', 'packages')
call Tex_MakeSubmenu(suplist, g:Tex_PackagesMenuLocation.'Supported.',
\ '<plug><C-r>=Tex_pack_one("', '")<CR>')
endfunction
" }}}
" Tex_pack: loads the options (and commands) for the given package {{{
function! Tex_pack(pack)
if exists('g:TeX_package_'.a:pack)
let optionList = g:TeX_package_option_{a:pack}.','
let commandList = g:TeX_package_{a:pack}.','
" Don't create separator if in package file are only Vim commands.
" Rare but possible.
if !(commandList == ',' && optionList == ',')
exec 'amenu '.g:Tex_PackagesMenuLocation.'-sep'.a:pack.'- <Nop>'
endif
if optionList != ''
let mainMenuName = g:Tex_PackagesMenuLocation.a:pack.'\ Options.'
call s:GroupPackageMenuItems(optionList, mainMenuName,
\ '<plug><C-r>=IMAP_PutTextWithMovement("', ',")<CR>')
endif
if commandList != ''
let mainMenuName = g:Tex_PackagesMenuLocation.a:pack.'\ Commands.'
call s:GroupPackageMenuItems(commandList, mainMenuName,
\ '<plug><C-r>=Tex_ProcessPackageCommand("', '")<CR>',
\ '<SID>FilterPackageMenuLHS')
endif
endif
endfunction
" }}}
" ==============================================================================
" Menu Functions
" Creating menu items for the all the package files found in the packages/
" directory as well as creating menus for each supported package found in the
" preamble.
" ==============================================================================
" Tex_MakeSubmenu: makes a submenu given a list of items {{{
" Description:
" This function takes a comma seperated list of menu items and creates a
" 'grouped' menu. i.e, it groups the items into s:menu_div items each and
" puts them in submenus of the given mainMenu.
" Each menu item is linked to the HandlerFunc.
" If an additional argument is supplied, then it is used to filter each of
" the menu items to generate better names for the menu display.
"
function! Tex_MakeSubmenu(menuList, mainMenuName,
\ handlerFuncLHS, handlerFuncRHS, ...)
let extractFunction = (a:0 > 0 ? a:1 : '' )
let menuList = substitute(a:menuList, '[^,]$', ',', '')
let doneMenuSubmenu = 0
while menuList != ''
" Extract upto s:menu_div menus at once.
let menuBunch = matchstr(menuList, '\v(.{-},){,'.s:menu_div.'}')
" The remaining menus go into the list.
let menuList = strpart(menuList, strlen(menuBunch))
let submenu = ''
" If there is something remaining, then we got s:menu_div items.
" therefore put these menu items into a submenu.
if strlen(menuList) || doneMenuSubmenu
exec 'let firstMenu = '.extractFunction."(matchstr(menuBunch, '\\v^.{-}\\ze,'))"
exec 'let lastMenu = '.extractFunction."(matchstr(menuBunch, '\\v[^,]{-}\\ze,$'))"
let submenu = firstMenu.'\ \-\ '.lastMenu.'.'
let doneMenuSubmenu = 1
endif
" Now for each menu create a menu under the submenu
let i = 1
let menuName = Tex_Strntok(menuBunch, ',', i)
while menuName != ''
exec 'let menuItem = '.extractFunction.'(menuName)'
execute 'amenu '.a:mainMenuName.submenu.menuItem
\ ' '.a:handlerFuncLHS.menuName.a:handlerFuncRHS
let i = i + 1
let menuName = Tex_Strntok(menuBunch, ',', i)
endwhile
endwhile
endfunction
" }}}
" GroupPackageMenuItems: uses the sbr: to split menus into groups {{{
" Description:
" This function first splits up the menuList into groups based on the
" special sbr: tag and then calls Tex_MakeSubmenu
"
function! <SID>GroupPackageMenuItems(menuList, menuName,
\ handlerFuncLHS, handlerFuncRHS,...)
if a:0 > 0
let extractFunction = a:1
else
let extractFunction = ''
endif
let menuList = a:menuList
while matchstr(menuList, 'sbr:') != ''
let groupName = matchstr(menuList, '\v^sbr:\zs.{-}\ze,')
let menuList = strpart(menuList, strlen('sbr:'.groupName.','))
if matchstr(menuList, 'sbr:') != ''
let menuGroup = matchstr(menuList, '\v^.{-},\zesbr:')
else
let menuGroup = menuList
endif
call Tex_MakeSubmenu(menuGroup, a:menuName.groupName.'.',
\ a:handlerFuncLHS, a:handlerFuncRHS, extractFunction)
let menuList = strpart(menuList, strlen(menuGroup))
endwhile
call Tex_MakeSubmenu(menuList, a:menuName,
\ a:handlerFuncLHS, a:handlerFuncRHS, extractFunction)
endfunction " }}}
" Definition of what to do for various package commands {{{
let s:CommandSpec_bra = '\<+replace+>{<++>}<++>'
let s:CommandSpec_brs = '\<+replace+><++>'
let s:CommandSpec_brd = '\<+replace+>{<++>}{<++>}<++>'
let s:CommandSpec_env = '\begin{<+replace+>}'."\<CR><++>\<CR>".'\end{<+replace+>}<++>'
let s:CommandSpec_ens = '\begin{<+replace+>}<+extra+>'."\<CR><++>\<CR>".'\end{<+replace+>}<++>'
let s:CommandSpec_eno = '\begin[<++>]{<+replace+>}'."\<CR><++>\<CR>".'\end{<+replace+>}'
let s:CommandSpec_nor = '\<+replace+>'
let s:CommandSpec_noo = '\<+replace+>[<++>]'
let s:CommandSpec_nob = '\<+replace+>[<++>]{<++>}{<++>}<++>'
let s:CommandSpec_spe = '<+replace+>'
let s:CommandSpec_ = '\<+replace+>'
let s:MenuLHS_bra = '\\&<+replace+>{}'
let s:MenuLHS_brs = '\\&<+replace+>{}'
let s:MenuLHS_brd = '\\&<+replace+>{}{}'
let s:MenuLHS_env = '&<+replace+>\ (E)'
let s:MenuLHS_ens = '&<+replace+>\ (E)'
let s:MenuLHS_eno = '&<+replace+>\ (E)'
let s:MenuLHS_nor = '\\&<+replace+>'
let s:MenuLHS_noo = '\\&<+replace+>[]'
let s:MenuLHS_nob = '\\&<+replace+>[]{}{}'
let s:MenuLHS_spe = '&<+replace+>'
let s:MenuLHS_sep = '-sep<+replace+>-'
let s:MenuLHS_ = '\\&<+replace+>'
" }}}
" Tex_ProcessPackageCommand: processes a command from the package menu {{{
" Description:
function! Tex_ProcessPackageCommand(command)
if a:command =~ ':'
let commandType = matchstr(a:command, '^\w\+\ze:')
let commandName = matchstr(a:command, '^\w\+:\zs[^:]\+\ze:\?')
let extrapart = strpart(a:command, strlen(commandType.':'.commandName.':'))
else
let commandType = ''
let commandName = a:command
let extrapart = ''
endif
let command = s:CommandSpec_{commandType}
let command = substitute(command, '<+replace+>', commandName, 'g')
let command = substitute(command, '<+extra+>', extrapart, 'g')
return IMAP_PutTextWithMovement(command)
endfunction
" }}}
" FilterPackageMenuLHS: filters the command description to provide a better menu item {{{
" Description:
function! <SID>FilterPackageMenuLHS(command)
let commandType = matchstr(a:command, '^\w\+\ze:')
if commandType != ''
let commandName = strpart(a:command, strlen(commandType.':'))
else
let commandName = a:command
endif
return substitute(s:MenuLHS_{commandType}, '<+replace+>', commandName, 'g')
endfunction " }}}
if g:Tex_Menus
exe 'amenu '.g:Tex_PackagesMenuLocation.'&UpdatePackage :call Tex_pack(expand("<cword>"))<cr>'
exe 'amenu '.g:Tex_PackagesMenuLocation.'&UpdateAll :call Tex_pack_updateall(1)<cr>'
call Tex_pack_supp_menu()
endif
augroup LatexSuite
au LatexSuite User LatexSuiteFileType
\ call Tex_Debug('packages.vim: Catching LatexSuiteFileType event', 'pack') |
\ call Tex_pack_updateall(0)
augroup END
" vim:fdm=marker:ts=4:sw=4:noet:ff=unix

View File

@ -0,0 +1,315 @@
if exists("SIunits_package_file")
finish
endif
let SIunits_package_file = 1
let g:TeX_package_SIunits =
\'nor:addprefix,'.
\'nor:addunit,'.
\'nor:ampere,'.
\'nor:amperemetresecond,'.
\'nor:amperepermetre,'.
\'nor:amperepermetrenp,'.
\'nor:amperepersquaremetre,'.
\'nor:amperepersquaremetrenp,'.
\'nor:angstrom,'.
\'nor:arad,'.
\'nor:arcminute,'.
\'nor:arcsecond,'.
\'nor:are,'.
\'nor:atomicmass,'.
\'nor:atto,'.
\'nor:attod,'.
\'nor:barn,'.
\'nor:bbar,'.
\'nor:becquerel,'.
\'nor:becquerelbase,'.
\'nor:bel,'.
\'nor:candela,'.
\'nor:candelapersquaremetre,'.
\'nor:candelapersquaremetrenp,'.
\'nor:celsius,'.
\'nor:Celsius,'.
\'nor:celsiusbase,'.
\'nor:centi,'.
\'nor:centid,'.
\'nor:coulomb,'.
\'nor:coulombbase,'.
\'nor:coulombpercubicmetre,'.
\'nor:coulombpercubicmetrenp,'.
\'nor:coulombperkilogram,'.
\'nor:coulombperkilogramnp,'.
\'nor:coulombpermol,'.
\'nor:coulombpermolnp,'.
\'nor:coulombpersquaremetre,'.
\'nor:coulombpersquaremetrenp,'.
\'nor:cubed,'.
\'nor:cubic,'.
\'nor:cubicmetre,'.
\'nor:cubicmetreperkilogram,'.
\'nor:cubicmetrepersecond,'.
\'nor:curie,'.
\'nor:dday,'.
\'nor:deca,'.
\'nor:decad,'.
\'nor:deci,'.
\'nor:decid,'.
\'nor:degree,'.
\'nor:degreecelsius,'.
\'nor:deka,'.
\'nor:dekad,'.
\'nor:derbecquerel,'.
\'nor:dercelsius,'.
\'nor:dercoulomb,'.
\'nor:derfarad,'.
\'nor:dergray,'.
\'nor:derhenry,'.
\'nor:derhertz,'.
\'nor:derjoule,'.
\'nor:derkatal,'.
\'nor:derlumen,'.
\'nor:derlux,'.
\'nor:dernewton,'.
\'nor:derohm,'.
\'nor:derpascal,'.
\'nor:derradian,'.
\'nor:dersiemens,'.
\'nor:dersievert,'.
\'nor:dersteradian,'.
\'nor:dertesla,'.
\'nor:dervolt,'.
\'nor:derwatt,'.
\'nor:derweber,'.
\'nor:electronvolt,'.
\'nor:exa,'.
\'nor:exad,'.
\'nor:farad,'.
\'nor:faradbase,'.
\'nor:faradpermetre,'.
\'nor:faradpermetrenp,'.
\'nor:femto,'.
\'nor:femtod,'.
\'nor:fourth,'.
\'nor:gal,'.
\'nor:giga,'.
\'nor:gigad,'.
\'nor:gram,'.
\'nor:graybase,'.
\'nor:graypersecond,'.
\'nor:graypersecondnp,'.
\'nor:hectare,'.
\'nor:hecto,'.
\'nor:hectod,'.
\'nor:henry,'.
\'nor:henrybase,'.
\'nor:henrypermetre,'.
\'nor:henrypermetrenp,'.
\'nor:hertz,'.
\'nor:hertzbase,'.
\'nor:hour,'.
\'nor:joule,'.
\'nor:joulebase,'.
\'nor:joulepercubicmetre,'.
\'nor:joulepercubicmetrenp,'.
\'nor:jouleperkelvin,'.
\'nor:jouleperkelvinnp,'.
\'nor:jouleperkilogram,'.
\'nor:jouleperkilogramkelvin,'.
\'nor:jouleperkilogramkelvinnp,'.
\'nor:jouleperkilogramnp,'.
\'nor:joulepermole,'.
\'nor:joulepermolekelvin,'.
\'nor:joulepermolekelvinnp,'.
\'nor:joulepermolenp,'.
\'nor:joulepersquaremetre,'.
\'nor:joulepersquaremetrenp,'.
\'nor:joulepertesla,'.
\'nor:jouleperteslanp,'.
\'nor:katal,'.
\'nor:katalbase,'.
\'nor:katalpercubicmetre,'.
\'nor:katalpercubicmetrenp,'.
\'nor:kelvin,'.
\'nor:kilo,'.
\'nor:kilod,'.
\'nor:kilogram,'.
\'nor:kilogrammetrepersecond,'.
\'nor:kilogrammetrepersecondnp,'.
\'nor:kilogrammetrepersquaresecond,'.
\'nor:kilogrammetrepersquaresecondnp,'.
\'nor:kilogrampercubicmetre,'.
\'nor:kilogrampercubicmetrecoulomb,'.
\'nor:kilogrampercubicmetrecoulombnp,'.
\'nor:kilogrampercubicmetrenp,'.
\'nor:kilogramperkilomole,'.
\'nor:kilogramperkilomolenp,'.
\'nor:kilogrampermetre,'.
\'nor:kilogrampermetrenp,'.
\'nor:kilogrampersecond,'.
\'nor:kilogrampersecondcubicmetre,'.
\'nor:kilogrampersecondcubicmetrenp,'.
\'nor:kilogrampersecondnp,'.
\'nor:kilogrampersquaremetre,'.
\'nor:kilogrampersquaremetrenp,'.
\'nor:kilogrampersquaremetresecond,'.
\'nor:kilogrampersquaremetresecondnp,'.
\'nor:kilogramsquaremetre,'.
\'nor:kilogramsquaremetrenp,'.
\'nor:kilogramsquaremetrepersecond,'.
\'nor:kilogramsquaremetrepersecondnp,'.
\'nor:kilowatthour,'.
\'nor:liter,'.
\'nor:litre,'.
\'nor:lumen,'.
\'nor:lumenbase,'.
\'nor:lux,'.
\'nor:luxbase,'.
\'nor:mega,'.
\'nor:megad,'.
\'nor:meter,'.
\'nor:metre,'.
\'nor:metrepersecond,'.
\'nor:metrepersecondnp,'.
\'nor:metrepersquaresecond,'.
\'nor:metrepersquaresecondnp,'.
\'nor:micro,'.
\'nor:microd,'.
\'nor:milli,'.
\'nor:millid,'.
\'nor:minute,'.
\'nor:mole,'.
\'nor:molepercubicmetre,'.
\'nor:molepercubicmetrenp,'.
\'nor:nano,'.
\'nor:nanod,'.
\'nor:neper,'.
\'nor:newton,'.
\'nor:newtonbase,'.
\'nor:newtonmetre,'.
\'nor:newtonpercubicmetre,'.
\'nor:newtonpercubicmetrenp,'.
\'nor:newtonperkilogram,'.
\'nor:newtonperkilogramnp,'.
\'nor:newtonpermetre,'.
\'nor:newtonpermetrenp,'.
\'nor:newtonpersquaremetre,'.
\'nor:newtonpersquaremetrenp,'.
\'nor:NoAMS,'.
\'nor:no@qsk,'.
\'nor:ohm,'.
\'nor:ohmbase,'.
\'nor:ohmmetre,'.
\'nor:one,'.
\'nor:paminute,'.
\'nor:pascal,'.
\'nor:pascalbase,'.
\'nor:pascalsecond,'.
\'nor:pasecond,'.
\'nor:per,'.
\'nor:period@active,'.
\'nor:persquaremetresecond,'.
\'nor:persquaremetresecondnp,'.
\'nor:peta,'.
\'nor:petad,'.
\'nor:pico,'.
\'nor:picod,'.
\'nor:power,'.
\'nor:@qsk,'.
\'nor:quantityskip,'.
\'nor:rad,'.
\'nor:radian,'.
\'nor:radianbase,'.
\'nor:radianpersecond,'.
\'nor:radianpersecondnp,'.
\'nor:radianpersquaresecond,'.
\'nor:radianpersquaresecondnp,'.
\'nor:reciprocal,'.
\'nor:rem,'.
\'nor:roentgen,'.
\'nor:rp,'.
\'nor:rpcubed,'.
\'nor:rpcubic,'.
\'nor:rpcubicmetreperkilogram,'.
\'nor:rpcubicmetrepersecond,'.
\'nor:rperminute,'.
\'nor:rpersecond,'.
\'nor:rpfourth,'.
\'nor:rpsquare,'.
\'nor:rpsquared,'.
\'nor:rpsquaremetreperkilogram,'.
\'nor:second,'.
\'nor:siemens,'.
\'nor:siemensbase,'.
\'nor:sievert,'.
\'nor:sievertbase,'.
\'nor:square,'.
\'nor:squared,'.
\'nor:squaremetre,'.
\'nor:squaremetrepercubicmetre,'.
\'nor:squaremetrepercubicmetrenp,'.
\'nor:squaremetrepercubicsecond,'.
\'nor:squaremetrepercubicsecondnp,'.
\'nor:squaremetreperkilogram,'.
\'nor:squaremetrepernewtonsecond,'.
\'nor:squaremetrepernewtonsecondnp,'.
\'nor:squaremetrepersecond,'.
\'nor:squaremetrepersecondnp,'.
\'nor:squaremetrepersquaresecond,'.
\'nor:squaremetrepersquaresecondnp,'.
\'nor:steradian,'.
\'nor:steradianbase,'.
\'nor:tera,'.
\'nor:terad,'.
\'nor:tesla,'.
\'nor:teslabase,'.
\'nor:ton,'.
\'nor:tonne,'.
\'nor:unit,'.
\'nor:unitskip,'.
\'nor:usk,'.
\'nor:volt,'.
\'nor:voltbase,'.
\'nor:voltpermetre,'.
\'nor:voltpermetrenp,'.
\'nor:watt,'.
\'nor:wattbase,'.
\'nor:wattpercubicmetre,'.
\'nor:wattpercubicmetrenp,'.
\'nor:wattperkilogram,'.
\'nor:wattperkilogramnp,'.
\'nor:wattpermetrekelvin,'.
\'nor:wattpermetrekelvinnp,'.
\'nor:wattpersquaremetre,'.
\'nor:wattpersquaremetrenp,'.
\'nor:wattpersquaremetresteradian,'.
\'nor:wattpersquaremetresteradiannp,'.
\'nor:weber,'.
\'nor:weberbase,'.
\'nor:yocto,'.
\'nor:yoctod,'.
\'nor:yotta,'.
\'nor:yottad,'.
\'nor:zepto,'.
\'nor:zeptod,'.
\'nor:zetta,'.
\'nor:zettad'
let g:TeX_package_option_SIunits =
\'amssymb,'.
\'binary,'.
\'cdot,'.
\'derived,'.
\'derivedinbase,'.
\'Gray,'.
\'mediumqspace,'.
\'mediumspace,'.
\'noams,'.
\'pstricks,'.
\'squaren,'.
\'textstyle,'.
\'thickqspace,'.
\'thickspace,'.
\'thinqspace,'.
\'thinspace'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,28 @@
if exists("accents_package_file")
finish
endif
let accents_package_file = 1
let g:TeX_package_option_accents =
\ 'nonscript,'
\.'single'
let g:TeX_package_accents =
\ 'bra:grave,'
\.'bra:acute,'
\.'bra:check,'
\.'bra:breve,'
\.'bra:bar,'
\.'bra:ring,'
\.'bra:hat,'
\.'bra:dot,'
\.'bra:tilde,'
\.'bra:undertilde,'
\.'bra:ddot,'
\.'bra:dddot,'
\.'bra:ddddot,'
\.'bra:vec,'
\.'brd:accentset,'
\.'brd:underaccent'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("acromake_package_file")
finish
endif
let acromake_package_file = 1
let g:TeX_package_option_acromake = ''
let g:TeX_package_acromake = 'brs:acromake{<++>}{<++>}{<++>}'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("afterpage_package_file")
finish
endif
let afterpage_package_file = 1
let g:TeX_package_option_afterpage = ''
let g:TeX_package_afterpage = 'bra:afterpage'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("alltt_package_file")
finish
endif
let alltt_package_file = 1
let g:TeX_package_option_alltt = ''
let g:TeX_package_alltt = 'env:alltt'
syn region texZone start="\\begin{alltt}" end="\\end{alltt}\|%stopzone\>" fold
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,106 @@
if exists("amsmath_package_file")
finish
endif
let amsmath_package_file = 1
let g:TeX_package_option_amsmath =
\ 'centertags,'
\.'tbtags,'
\.'sumlimits,'
\.'nosumlimits,'
\.'intlimits,'
\.'nointlimits,'
\.'namelimits,'
\.'nonamelimits,'
\.'leqno,'
\.'reqno,'
\.'fleqno'
let g:TeX_package_amsmath =
\ 'sbr:Environments,'
\.'env:equation,'
\.'env:equation*,'
\.'env:align,'
\.'env:align*,'
\.'env:gather,'
\.'env:gather*,'
\.'env:flalign,'
\.'env:flalign*,'
\.'env:multline,'
\.'env:multline*,'
\.'ens:alignat:{<+arg1+>}{<+arg2+>},'
\.'env:alignat,'
\.'ens:alignat*:{<+arg1+>}{<+arg2+>},,'
\.'env:alignat*,'
\.'env:subequations,'
\.'env:subarray,'
\.'env:split,'
\.'env:cases,'
\.'sbr:Matrices,'
\.'env:matrix,'
\.'env:pmatrix,'
\.'env:bmatrix,'
\.'env:Bmatrix,'
\.'env:vmatrix,'
\.'env:Vmatrix,'
\.'env:smallmatrix,'
\.'bra:hdotsfor,'
\.'sbr:Dots,'
\.'dotsc,'
\.'dotsb,'
\.'dotsm,'
\.'dotsi,'
\.'dotso,'
\.'sbr:ItalicGreek,'
\.'nor:varGamma,'
\.'nor:varDelta,'
\.'nor:varTheta,'
\.'nor:varLambda,'
\.'nor:varXi,'
\.'nor:varPi,'
\.'nor:varSigma,'
\.'nor:varUpsilon,'
\.'nor:varPhi,'
\.'nor:varPsi,'
\.'nor:varOmega,'
\.'sbr:Mod,'
\.'nor:mod,'
\.'nor:bmod,'
\.'nor:pmod,'
\.'nor:pod,'
\.'sbr:CreatingSymbols,'
\.'brd:overset,'
\.'brd:underset,'
\.'brd:sideset,'
\.'sbr:Fractions,'
\.'brd:frac,'
\.'brd:dfrac,'
\.'brd:tfrac,'
\.'brd:cfrac,'
\.'brd:binom,'
\.'brd:dbinom,'
\.'brd:tbinom,'
\.'brs:genfrac{<+ldelim+>}{<+rdelim+>}{<+thick+>}{<+style+>}{<+numer+>}{<+denom+>},'
\.'sbr:Commands,'
\.'nob:smash,'
\.'bra:substack,'
\.'bra:tag,'
\.'bra:tag*,'
\.'nor:notag,'
\.'bra:raisetag,'
\.'bra:shoveleft,'
\.'bra:shoveright,'
\.'bra:intertext,'
\.'bra:text,'
\.'nor:displaybreak,'
\.'noo:displaybreak,'
\.'noo:allowdisplaybreaks,'
\.'nor:nobreakdash,'
\.'brs:numberwithin{<+env+>}{<+parent+>},'
\.'bra:leftroot,'
\.'bra:uproot,'
\.'bra:boxed,'
\.'brs:DeclareMathSymbol{<++>}{<++>}{<++>}{<++>},'
\.'bra:eqref'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,21 @@
if exists("amsthm_package_file")
finish
endif
let amsthm_package_file = 1
let TeX_package_option_amsthm = ''
let TeX_package_amsthm =
\ 'env:proof,'
\.'nor:swapnumbers,'
\.'brd:newtheorem,'
\.'brd:newtheorem*,'
\.'nor:theoremstyle{plain},'
\.'nor:theoremstyle{definition},'
\.'nor:theoremstyle{remark},'
\.'nor:newtheoremstyle,'
\.'nor:qedsymbol,'
\.'nor:qed,'
\.'nor:qedhere'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("amsxtra_package_file")
finish
endif
let amsxtra_package_file = 1
let g:TeX_package_option_amsxtra = ''
let g:TeX_package_amsxtra =
\ 'nor:sphat,'
\.'nor:sptilde'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("arabic_package_file")
finish
endif
let arabic_package_file = 1
let g:TeX_package_option_arabic = ''
let g:TeX_package_arabic = 'bra:arabicnumeral'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,17 @@
if exists("array_package_file")
finish
endif
let array_package_file = 1
let g:TeX_package_option_array = ''
let g:TeX_package_array =
\ 'brs:newcolumntype{<+type+>}[<+no+>]{<+preamble+>},'
\.'arraycolsep,'
\.'tabcolsep,'
\.'arrayrulewidth,'
\.'doublerulesep,'
\.'arraystretch,'
\.'extrarowheight'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,98 @@
if exists("babel_package_file")
finish
endif
let babel_package_file = 1
" This package sets some language specific options.
" Since it needs to find out which options the user used with the babel
" package, it needs to wait till latex-suite is done scanning packages. It
" then catches the LatexSuiteScannedPackages event which
" Tex_pack_updateall() throws at which time g:Tex_pack_detected and
" g:Tex_babel_options contain the necessary information.
let g:TeX_package_option_babel =
\ 'afrikaans,'
\.'bahasa,'
\.'basque,'
\.'breton,'
\.'bulgarian,'
\.'catalan,'
\.'croatian,'
\.'chech,'
\.'danish,'
\.'dutch,'
\.'english,USenglish,american,UKenglish,british,canadian,'
\.'esperanto,'
\.'estonian,'
\.'finnish,'
\.'french,francais,canadien,acadian,'
\.'galician,'
\.'austrian,german,germanb,ngerman,naustrian,'
\.'greek,polutonikogreek,'
\.'hebrew,'
\.'magyar,hungarian,'
\.'icelandic,'
\.'irish,'
\.'italian,'
\.'latin,'
\.'lowersorbian,'
\.'samin,'
\.'norsk,nynorsk,'
\.'polish,'
\.'portuges,portuguese,brazilian,brazil,'
\.'romanian,'
\.'russian,'
\.'scottish,'
\.'spanish,'
\.'slovak,'
\.'slovene,'
\.'swedish,'
\.'serbian,'
\.'turkish,'
\.'ukrainian,'
\.'uppersorbian,'
\.'welsh'
let g:TeX_package_babel =
\ 'bra:selectlanguage,'
\.'env:otherlanguage,'
\.'env:otherlanguage*,'
\.'env:hyphenrules,'
\.'brd:foreignlanguage,'
\.'spe:iflanguage{<+name+>}{<+true+>}{<+false+>},'
\.'languagename,'
\.'bra:useshorthands,'
\.'brd:defineshorthand,'
\.'brd:aliasshorthand,'
\.'bra:languageshorthans,'
\.'bra:shorthandon,'
\.'bra:shorthandoff,'
\.'brd:languageattribute'
" vim:ft=vim:ff=unix:
if exists('s:doneOnce')
finish
endif
let s:doneOnce = 1
augroup LatexSuite
au LatexSuite User LatexSuiteScannedPackages
\ call Tex_Debug('babel: catching LatexSuiteScannedPackages event') |
\ call s:SetQuotes()
augroup END
let s:path = expand('<sfile>:p:h')
" SetQuotes: sets quotes for various languages {{{
" Description:
function! <SID>SetQuotes()
if g:Tex_package_detected =~ '\<babel\>'
if g:Tex_babel_options =~ '\<german\>'
exec 'so '.s:path.'/german'
elseif g:Tex_babel_options =~ '\<ngerman\>'
exec 'so '.s:path.'/ngerman'
endif
endif
endfunction " }}}
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,27 @@
if exists("bar_package_file")
finish
endif
let bar_package_file = 1
let g:TeX_package_option_bar = ''
let g:TeX_package_bar =
\ 'env:barenv,'
\.'brs:bar{<+height+>}{<+index+>}[<+desc+>],'
\.'hlineon,'
\.'brs:legend{<+index+>}{<+text+>},'
\.'bra:setdepth,'
\.'bra:sethspace,'
\.'brs:setlinestyle{<+solid-dotted+>},'
\.'brs:setnumberpos{<+empty-axis-down-inside-outside-up+>},'
\.'bra:setprecision,'
\.'bra:setstretch,'
\.'bra:setstyle,'
\.'bra:setwidth,'
\.'brs:setxaxis{<+w1+>}{<+w2+>}{<+step+>},'
\.'brs:setyaxis[<+n+>]{<+w1+>}{<+w2+>}{<+step+>},'
\.'brs:setxname[<+lrbt+>]{<+etiquette+>},'
\.'brs:setyname[<+lrbt+>]{<+etiquette+>},'
\.'brs:setxvaluetyp{<+day-month+>}'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("bm_package_file")
finish
endif
let bm_package_file = 1
let g:TeX_package_option_bm = ''
let g:TeX_package_bm = 'bra:bm'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("bophook_package_file")
finish
endif
let bophook_package_file = 1
let g:TeX_package_option_bophook = ''
let g:TeX_package_bophook =
\ 'bra:AtBeginPage,'
\.'bra:PageLayout'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("boxedminipage_package_file")
finish
endif
let boxedminipage_package_file = 1
let g:TeX_package_option_boxedminipage = ''
let g:TeX_package_boxedminipage = 'ens:boxedminipage:[<+pos+>]{<+size+>}'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,43 @@
if exists("caption2_package_file")
finish
endif
let caption2_package_file = 1
let g:TeX_package_option_caption2 =
\ 'scriptsize,'
\.'footnotesize,'
\.'small,'
\.'normalsize,'
\.'large,'
\.'Large,'
\.'up,'
\.'it,'
\.'sl,'
\.'sc,'
\.'md,'
\.'bf,'
\.'rm,'
\.'sf,'
\.'tt,'
\.'ruled,'
\.'boxed,'
\.'centerlast,'
\.'anne,'
\.'center,'
\.'flushleft,'
\.'flushright,'
\.'oneline,'
\.'nooneline,'
\.'hang,'
\.'isu,'
\.'indent,'
\.'longtable'
let g:TeX_package_caption2 =
\ 'bra:captionsize,'
\.'bra:captionfont,'
\.'bra:captionlabelfont,'
\.'bra:setcaptionmargin,'
\.'bra:setcaptionwidth'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("cases_package_file")
finish
endif
let cases_package_file = 1
let g:TeX_package_option_cases = ''
let g:TeX_package_cases =
\ 'ens:numcases:{<+label+>},'
\.'ens:subnumcases:{<+label+>}'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,20 @@
if exists("ccaption_package_file")
finish
endif
let ccaption_package_file = 1
let g:TeX_package_option_ccaption = ''
let g:TeX_package_ccaption =
\ 'bra:contcaption,'
\.'bra:legend,'
\.'bra:namedlegend,'
\.'abovelegendskip,'
\.'belowlegendskip,'
\.'brd:newfixedcaption,'
\.'brd:renewfixedcaption,'
\.'brd:providefixedcaption,'
\.'brs:newfloatenv[<+counter+>]{<+name+>}{<+ext+>}{<+etiq+>},'
\.'brd:listfloats'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,35 @@
if exists("changebar_package_file")
finish
endif
let changebar_package_file = 1
let g:TeX_package_option_changebar =
\ 'DVItoLN03,'
\.'dvitoln03,'
\.'DVItoPS,'
\.'dvitops,'
\.'DVIps,'
\.'dvips,'
\.'emTeX,'
\.'emtex,'
\.'textures,'
\.'Textures,'
\.'outerbars,'
\.'innerbars,'
\.'leftbars,'
\.'rightbars,'
\.'traceon,'
\.'traceoff'
let g:TeX_package_changebar =
\ 'ens:changebar:[<+thickness+>],'
\.'noo:cbstart,'
\.'cbend,'
\.'cbdelete,'
\.'changebarwidth,'
\.'deletebarwidth,'
\.'changebarsep,'
\.'spe:changebargrey,'
\.'nochangebars'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,24 @@
if exists("chapterbib_package_file")
finish
endif
let chapterbib_package_file = 1
let g:TeX_package_option_chapterbib =
\ 'sectionbib,'
\.'rootbib,'
\.'gather,'
\.'duplicate'
let g:TeX_package_chapterbib =
\ 'env:cbunit,'
\.'brd:sectionbib,'
\.'bra:cbinput,'
\.'sep:redefine,'
\.'bra:citeform,'
\.'bra:citepunct,'
\.'bra:citeleft,'
\.'bra:citeright,'
\.'bra:citemid,'
\.'bra:citedash'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,32 @@
if exists("cite_package_file")
finish
endif
let cite_package_file = 1
let g:TeX_package_option_cite =
\ 'verbose,'
\.'nospace,'
\.'space,'
\.'nosort,'
\.'sort,'
\.'noadjust'
let g:TeX_package_cite =
\ 'bra:cite,'
\.'bra:citen,'
\.'bra:citenum,'
\.'bra:citeonline,'
\.'bra:nocite,'
\.'sep:redefine,'
\.'bra:citeform,'
\.'bra:citepunct,'
\.'bra:citeleft,'
\.'bra:citeright,'
\.'bra:citemid,'
\.'bra:citedash'
syn region texRefZone matchgroup=texStatement start="\\citen\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter
syn region texRefZone matchgroup=texStatement start="\\citenum\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter
syn region texRefZone matchgroup=texStatement start="\\citeonline\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,43 @@
if exists("color_package_file")
finish
endif
let color_package_file = 1
let g:TeX_package_option_color =
\ 'monochrome,'
\.'debugshow,'
\.'dvips,'
\.'xdvi,'
\.'dvipdf,'
\.'pdftex,'
\.'dvipsone,'
\.'dviwindo,'
\.'emtex,'
\.'dviwin,'
\.'oztex,'
\.'textures,'
\.'pctexps,'
\.'pctexwin,'
\.'pctexhp,'
\.'pctex32,'
\.'truetex,'
\.'tcidvi,'
\.'dvipsnames,'
\.'nodvipsnames,'
\.'usenames'
let g:TeX_package_color =
\ 'brs:definecolor{<++>}{<++>}{<++>},'
\.'brs:DefineNamedColor{<++>}{<++>}{<++>}{<++>},'
\.'bra:color,'
\.'nob:color,'
\.'brd:textcolor,'
\.'brs:textcolor[<++>]{<++>}{<++>},'
\.'brd:colorbox,'
\.'brs:colorbox[<++>]{<++>}{<++>},'
\.'brs:fcolorbox{<++>}{<++>}{<++>},'
\.'brs:fcolorbox[<++>]{<++>}{<++>}{<++>},'
\.'brd:pagecolor,'
\.'nob:pagecolor'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("comma_package_file")
finish
endif
let comma_package_file = 1
let g:TeX_package_option_comma = ''
let g:TeX_package_comma =
\ 'bra:commaform,'
\.'bra:commaformtoken'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,36 @@
if exists("deleq_package_file")
finish
endif
let deleq_package_file = 1
let g:TeX_package_option_deleq = ''
let g:TeX_package_deleq =
\.'env:deqn,'
\.'env:ddeqn,'
\.'env:deqarr,'
\.'env:ddeqar,'
\.'env:deqrarr,'
\.'nor:nydeqno,'
\.'nor:heqno,'
\.'bra:reqno,'
\.'bra:rndeqno,'
\.'bra:rdeqno,'
\.'nob:eqreqno,'
\.'nob:deqreqno,'
\.'nob:ddeqreqno,'
\.'bra:arrlabel,'
\.'nor:where,'
\.'bra:remtext,'
\.'nor:nydeleqno,'
\.'nor:deleqno,'
\.'nor:jotbaseline'
if !exists("tex_no_math")
syn region texMathZoneA start="\\begin\s*{\s*deqn\*\s*}" end="\\end\s*{\s*deqn\*\s*}" keepend fold contains=@texMathZoneGroup
syn region texMathZoneB start="\\begin\s*{\s*ddeqn\*\s*}" end="\\end\s*{\s*ddeqn\*\s*}" keepend fold contains=@texMathZoneGroup
syn region texMathZoneC start="\\begin\s*{\s*deqarr\s*}" end="\\end\s*{\s*deqarr\s*}" keepend fold contains=@texMathZoneGroup
syn region texMathZoneD start="\\begin\s*{\s*ddeqar\s*}" end="\\end\s*{\s*ddeqar\s*}" keepend fold contains=@texMathZoneGroup
syn region texMathZoneE start="\\begin\s*{\s*deqrarr\*\s*}" end="\\end\s*{\s*deqrarr\*\s*}" keepend fold contains=@texMathZoneGroup
endif
" vim:ft=vim:ff=unix:noet:ts=4:

View File

@ -0,0 +1,29 @@
if exists("drftcite_package_file")
finish
endif
let drftcite_package_file = 1
let g:TeX_package_option_drftcite =
\ 'verbose,'
\.'nospace,'
\.'space,'
\.'breakcites,'
\.'manualsort,'
\.'tt,'
\.'shownumbers,'
\.'nocitecount'
let g:TeX_package_drftcite =
\ 'bra:cite,'
\.'bra:citen,'
\.'sep:redefine,'
\.'bra:citeform,'
\.'bra:citepunct,'
\.'bra:citeleft,'
\.'bra:citeright,'
\.'bra:citemid,'
\.'bra:citedash'
syn region texRefZone matchgroup=texStatement start="\\citen\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("dropping_package_file")
finish
endif
let dropping_package_file = 1
let g:TeX_package_option_dropping = ''
let g:TeX_package_dropping =
\ 'brs:bigdrop{<+indent+>}{<+big+>}{<+font+>}{<+text+>},'
\.'brs:dropping[<+indent+>]{<+big+>}{<+text+>}'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("enumerate_package_file")
finish
endif
let enumerate_package_file = 1
let g:TeX_package_option_enumerate = ''
let g:TeX_package_enumerate = 'ens:enumerate:[<+prefix+>]'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,19 @@
if exists("eqlist_package_file")
finish
endif
let eqlist_package_file = 1
let g:TeX_package_option_eqlist = ''
let g:TeX_package_eqlist =
\ 'env:eqlist,'
\.'env:eqlist*,'
\.'env:Eqlist,'
\.'env:Eqlist*,'
\.'sep:modificators,'
\.'eqlistinit,'
\.'eqliststarinit,'
\.'eqlistinitpar,'
\.'eqlistlabel'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("eqparbox_package_file")
finish
endif
let eqparbox_package_file = 1
let g:TeX_package_option_eqparbox = ''
let g:TeX_package_eqparbox =
\ 'brs:eqparbox[<+pos+>][<+height+>][<+inner-pos+>]{<+tag+>}{<+text+>},'
\.'bra:eqboxwidth'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("everyshi_package_file")
finish
endif
let everyshi_package_file = 1
let g:TeX_package_option_everyshi = ''
let g:TeX_package_everyshi = 'bra:EveryShipOut'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,55 @@
if exists("exmpl_package_file")
finish
endif
let exmpl_package_file = 1
" Author: Mikolaj Machowski
" Date: 10.04.2002
" Example plugin for packages in latexSuite
"
" This variable creates Options submenu in package menu. Even when no options are
" given for this package it HAS to exist in form
" let TeX_package_option_exmpl = ""
" Options and commands are delimited with comma ,
let g:TeX_package_option_exmpl = "OpcjaA=,OpcjaB,OpcjaC"
" Most command should have some definition before. Package menu system can
" recognize type of command and behave in good manner:
" env: (environment) creates simple environment template
" \begin{command}
" x <- cursor here
" \end{command}
"
" bra: (brackets) useful when inserting brackets commands
" \command{x}<<>> <- cursor at x, and placeholders as in other menu entries
"
" nor: (normal) nor: and pla: are `highlighted' in menu with `''
" \command<Space>
"
" pla: (plain)
" command<Space>
"
" spe: (special)
" command <-literal insertion of command, in future here should go
" commands with special characters
"
" sep: (separator) creates separator. Good for aesthetics and usability :)
"
" Command can be also given with no prefix:. The result is
" \command (as in nor: but without <Space>)
let g:TeX_package_exmpl = "env:AEnvFirst,env:aEnvSec,env:BThi,"
\ . "sep:a,env:zzzz,"
\ . "bra:aBraFirst,bra:bBraSec,bra:cBraThi,"
\ . "sep:b,"
\ . "nor:aNorPri,nor:bNorSec,nor:cNorTer,"
\ . "sep:c,"
\ . "pla:aPla1,pla:bPla2,pla:cPla3,"
\ . "sep:d,"
\ . "spe:aSpe1,spe:bSpe2,spe:cSpe3,"
\ . "sep:e,"
\ . "aNo1,bNo2,cNo3"
" vim:ft=vim

View File

@ -0,0 +1,10 @@
if exists("flafter_package_file")
finish
endif
let flafter_package_file = 1
let g:TeX_package_option_flafter = ''
let g:TeX_package_flafter = 'noo:suppressfloats,noo:suppress'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,16 @@
if exists("float_package_file")
finish
endif
let float_package_file = 1
let g:TeX_package_option_float = ''
let g:TeX_package_float =
\ 'bra:floatstyle,'
\.'brs:newfloat{<++>}{<++>}{<++>}[<++>],'
\.'brd:floatname,'
\.'brd:listof,'
\.'bra:restylefloat,'
\.'brd:floatplacement'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("floatflt_package_file")
finish
endif
let floatflt_package_file = 1
let g:TeX_package_option_floatflt = 'rflt,lflt,vflt'
let g:TeX_package_floatflt =
\ 'ens:floatingfigure:[<+loc+>]{<+spec+>},'
\.'ens:floatingtable:[<+loc+>]{<+spec+>}'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("fn2end_package_file")
finish
endif
let fn2end_package_file = 1
let g:TeX_package_option_fn2end = ''
let g:TeX_package_fn2end = 'makeendnotes,theendnotes'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,21 @@
if exists("footmisc_package_file")
finish
endif
let footmisc_package_file = 1
let g:TeX_package_option_footmisc =
\ 'bottom,'
\.'flushmargin,'
\.'marginal,'
\.'multiple,'
\.'norule,'
\.'para,'
\.'perpage,'
\.'splitrule,'
\.'stable,'
\.'symbol,'
\.'symbol+'
let g:TeX_package_footmisc = ''
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,93 @@
if exists("geometry_package_file")
finish
endif
let geometry_package_file = 1
let g:TeX_package_option_geometry =
\ 'sbr:Boolean,'
\.'verbose,'
\.'landscape,'
\.'portrait,'
\.'twoside,'
\.'includemp,'
\.'reversemp,'
\.'reversemarginpar,'
\.'nohead,'
\.'nofoot,'
\.'noheadfoot,'
\.'dvips,'
\.'pdftex,'
\.'vtex,'
\.'truedimen,'
\.'reset,'
\.'sbr:BooleanDimensions,'
\.'a0paper,'
\.'a1paper,'
\.'a2paper,'
\.'a3paper,'
\.'a4paper,'
\.'a5paper,'
\.'a6paper,'
\.'b0paper,'
\.'b1paper,'
\.'b2paper,'
\.'b3paper,'
\.'b4paper,'
\.'b5paper,'
\.'b6paper,'
\.'letterpaper,'
\.'executivepaper,'
\.'legalpaper,'
\.'sbr:SingleValueOption,'
\.'paper=,'
\.'papername=,'
\.'paperwidth=,'
\.'paperheight=,'
\.'width=,'
\.'totalwidth=,'
\.'height=,'
\.'totalheight=,'
\.'left=,'
\.'lmargin=,'
\.'right=,'
\.'rmargin=,'
\.'top=,'
\.'tmargin=,'
\.'bottom=,'
\.'bmargin=,'
\.'hscale=,'
\.'vscale=,'
\.'textwidth=,'
\.'textheight=,'
\.'marginparwidth=,'
\.'marginpar=,'
\.'marginparsep=,'
\.'headheight=,'
\.'head=,'
\.'headsep=,'
\.'footskip=,'
\.'hoffset=,'
\.'voffset=,'
\.'twosideshift=,'
\.'mag=,'
\.'columnsep=,'
\.'footnotesep=,'
\.'sbr:TwoValueOptions,'
\.'papersize={<++>},'
\.'total={<++>},'
\.'body={<++>},'
\.'text={<++>},'
\.'scale={<++>},'
\.'hmargin={<++>},'
\.'vmargin={<++>},'
\.'margin={<++>},'
\.'offset={<++>},'
\.'sbr:ThreeValueOptions,'
\.'hdivide={<++>},'
\.'vdivide={<++>},'
\.'divide={<++>}'
let g:TeX_package_geometry =
\ 'bra:geometry'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("german_package_file")
finish
endif
let german_package_file = 1
let g:TeX_package_german = ''
let g:TeX_package_option_german = ''
" For now just define the smart quotes.
let b:Tex_SmartQuoteOpen = '"`'
let b:Tex_SmartQuoteClose = "\"'"
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,69 @@
if exists("graphicx_package_file")
finish
endif
let graphicx_package_file = 1
let g:TeX_package_option_graphicx =
\ 'sbr:Drivers,'
\.'xdvi,'
\.'dvipdf,'
\.'dvipdfm,'
\.'pdftex,'
\.'dvipsone,'
\.'dviwindo,'
\.'emtex,'
\.'dviwin,'
\.'oztex,'
\.'textures,'
\.'pctexps,'
\.'pctexwin,'
\.'pctexhp,'
\.'pctex32,'
\.'truetex,'
\.'tcidvi,'
\.'vtex,'
\.'sbr:Rest,'
\.'debugshow,'
\.'draft,'
\.'final,'
\.'hiderotate,'
\.'hiresbb,'
\.'hidescale,'
\.'unknownkeysallowed,'
\.'unknownkeyserror'
let g:TeX_package_graphicx =
\ 'sbr:Includegraphics,'
\.'brs:includegraphics[<++>]{<++>},'
\.'spe:height=,'
\.'spe:width=,'
\.'spe:keepaspectratio=,'
\.'spe:totalheight=,'
\.'spe:angle=,'
\.'spe:scale=,'
\.'spe:origin=,'
\.'spe:clip,'
\.'spe:bb=,'
\.'spe:viewport=,'
\.'spe:trim=,'
\.'spe:draft,'
\.'spe:hiresbb,'
\.'spe:type=,'
\.'spe:ext=,'
\.'spe:read=,'
\.'spe:command=,'
\.'sbr:Rotatebox,'
\.'brs:rotatebox[<++>]{<++>}{<++>},'
\.'spe:origin=,'
\.'spe:x=,'
\.'spe:y=,'
\.'spe:units=,'
\.'sbr:Rest,'
\.'brs:scalebox{<++>}[<++>]{<++>},'
\.'brs:resizebox{<++>}{<++>}{<++>},'
\.'brs:resizebox*{<++>}{<++>}{<++>},'
\.'bra:DeclareGraphicsExtensions,'
\.'brs:DeclareGraphicsRule{<++>}{<++>}{<++>}{<++>},'
\.'bra:graphicspath'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("graphpap_package_file")
finish
endif
let graphpap_package_file = 1
let g:TeX_package_option_graphpap = ''
let g:TeX_package_graphpap = 'brs:graphpaper[<+step+>](<+x1,y1+>)(<+x2,y2+>)'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,18 @@
if exists("harpoon_package_file")
finish
endif
let harpoon_package_file = 1
let g:TeX_package_option_harpoon = ''
let g:TeX_package_harpoon =
\ 'bra:overleftharp,'
\.'bra:overrightharp,'
\.'bra:overleftharpdown,'
\.'bra:overrightharpdown,'
\.'bra:underleftharp,'
\.'bra:underrightharp,'
\.'bra:underleftharpdown,'
\.'bra:underrightharpdown'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,21 @@
if exists("hhline_package_file")
finish
endif
let hhline_package_file = 1
let g:TeX_package_option_hhline = ''
let g:TeX_package_hhline =
\ 'bra:hhline,'
\.'sep:a,'
\.'spe:=,'
\.'spe:-,'
\.'spe:~,'
\."spe:\\\|,"
\.'spe::,'
\.'spe:#,'
\.'spe:t,'
\.'spe:b,'
\.'spe:*'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,13 @@
if exists("histogram_package_file")
finish
endif
let histogram_package_file = 1
let g:TeX_package_option_histogram = ''
let g:TeX_package_histogram =
\ 'histogram,'
\.'noverticallines,'
\.'verticallines'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,167 @@
if exists("hyperref_package_file")
finish
endif
let hyperref_package_file = 1
let g:TeX_package_option_hyperref =
\ '4=,'
\.'a4paper,'
\.'a5paper,'
\.'anchorcolor=,'
\.'b5paper,'
\.'backref=,'
\.'baseurl={<++>},'
\.'bookmarks=,'
\.'bookmarksnumbered=,'
\.'bookmarksopen=,'
\.'bookmarksopenlevel=,'
\.'bookmarkstype=,'
\.'breaklinks=,'
\.'citebordercolor=,'
\.'citecolor=,'
\.'colorlinks=,'
\.'debug=,'
\.'draft,'
\.'dvipdf,'
\.'dvipdfm,'
\.'dvips,'
\.'dvipsone,'
\.'dviwindo,'
\.'executivepaper,'
\.'extension=,'
\.'filebordercolor=,'
\.'filecolor=,'
\.'frenchlinks=,'
\.'hyperfigures=,'
\.'hyperindex=,'
\.'hypertex,'
\.'hypertexnames=,'
\.'implicit=,'
\.'latex2html,'
\.'legalpaper,'
\.'letterpaper,'
\.'linkbordercolor=,'
\.'linkcolor=,'
\.'linktocpage=,'
\.'menubordercolor=,'
\.'menucolor=,'
\.'naturalnames,'
\.'nesting=,'
\.'pageanchor=,'
\.'pagebackref=,'
\.'pagebordercolor=,'
\.'pagecolor=,'
\.'pdfauthor={<++>},'
\.'pdfborder=,'
\.'pdfcenterwindow=,'
\.'pdfcreator={<++>},'
\.'pdffitwindow,'
\.'pdfhighlight=,'
\.'pdfkeywords={<++>},'
\.'pdfmenubar=,'
\.'pdfnewwindow=,'
\.'pdfpagelabels=,'
\.'pdfpagelayout=,'
\.'pdfpagemode=,'
\.'pdfpagescrop=,'
\.'pdfpagetransition=,'
\.'pdfproducer={<++>},'
\.'pdfstartpage={<++>},'
\.'pdfstartview={<++>},'
\.'pdfsubject={<++>},'
\.'pdftex,'
\.'pdftitle={<++>},'
\.'pdftoolbar=,'
\.'pdfusetitle=,'
\.'pdfview,'
\.'pdfwindowui=,'
\.'plainpages=,'
\.'ps2pdf,'
\.'raiselinks=,'
\.'runbordercolor,'
\.'tex4ht,'
\.'textures,'
\.'unicode=,'
\.'urlbordercolor=,'
\.'urlcolor=,'
\.'verbose=,'
\.'vtex'
let g:TeX_package_hyperref =
\ 'sbr:Preamble,'
\.'bra:hypersetup,'
\.'wwwbrowser,'
\.'sbr:Links,'
\.'bra:hyperbaseurl,'
\.'brs:href{<+URL+>}{<+text+>},'
\.'bra:hyperimage,'
\.'brs:hyperdef{<+category+>}{<+name+>}{<+text+>},'
\.'brs:hyperref{<+URL+>}{<+category+>}{<+name+>}{<+text+>},'
\.'brs:hyperlink{<+name+>}{<+text+>},'
\.'brs:hypertarget{<+name+>}{<+text+>},'
\.'bra:url,'
\.'bra:htmladdnormallink,'
\.'brs:Acrobatmenu{<+option+>}{<+tekst+>},'
\.'brs:pdfbookmark[<++>]{<++>}{<++>},'
\.'bra:thispdfpagelabel,'
\.'sbr:Forms,'
\.'env:Form,'
\.'sep:Forms1,'
\.'brs:TextField[<+parameters+>]{<+label+>},'
\.'brs:CheckBox[<+parameters+>]{<+label+>},'
\.'brs:ChoiceMenu[<+parameters+>]{<+label+>}{<+choices+>},'
\.'brs:PushButton[<+parameters+>]{<+label+>},'
\.'brs:Submit[<+parameters+>]{<+label+>},'
\.'brs:Reset[<+parameters+>]{<+label+>},'
\.'sep:Forms2,'
\.'brs:LayoutTextField{<+label+>}{<+field+>},'
\.'brs:LayoutChoiceField{<+label+>}{<+field+>},'
\.'brs:LayoutCheckboxField{<+label+>}{<+field+>},'
\.'sep:Forms3,'
\.'brs:MakeRadioField{<+width+>}{<+height+>},'
\.'brs:MakeCheckField{<+width+>}{<+height+>},'
\.'brs:MakeTextField{<+width+>}{<+height+>},'
\.'brs:MakeChoiceField{<+width+>}{<+height+>},'
\.'brs:MakeButtonField{<+text+>},'
\.'sbr:Parameters,'
\.'spe:accesskey,'
\.'spe:align,'
\.'spe:backgroundcolor,'
\.'spe:bordercolor,'
\.'spe:bordersep,'
\.'spe:borderwidth,'
\.'spe:charsize,'
\.'spe:checked,'
\.'spe:color,'
\.'spe:combo,'
\.'spe:default,'
\.'spe:disabled,'
\.'spe:height,'
\.'spe:hidden,'
\.'spe:maxlen,'
\.'spe:menulength,'
\.'spe:multiline,'
\.'spe:name,'
\.'spe:onblur,'
\.'spe:onchange,'
\.'spe:onclick,'
\.'spe:ondblclick,'
\.'spe:onfocus,'
\.'spe:onkeydown,'
\.'spe:onkeypress,'
\.'spe:onkeyup,'
\.'spe:onmousedown,'
\.'spe:onmousemove,'
\.'spe:onmouseout,'
\.'spe:onmouseover,'
\.'spe:onmouseup,'
\.'spe:onselect,'
\.'spe:password,'
\.'spe:popdown,'
\.'spe:radio,'
\.'spe:readonly,'
\.'spe:tabkey,'
\.'spe:value,'
\.'spe:width'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,21 @@
if exists("ifthen_package_file")
finish
endif
let ifthen_package_file = 1
let g:TeX_package_option_ifthen = ''
let g:TeX_package_ifthen =
\ 'brs:ifthenelse{<++>}{<++>}{<++>},'
\.'brd:equal,'
\.'bra:boolean,'
\.'bra:lengthtest,'
\.'bra:isodd,'
\.'brd:whiledo,'
\.'bra:newboolean,'
\.'brd:setboolean,'
\.'nor:and,'
\.'nor:or,'
\.'nor:not'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,29 @@
if exists("inputenc_package_file")
finish
endif
let inputenc_package_file = 1
let g:TeX_package_option_inputenc =
\ 'ascii,'
\.'latin1,'
\.'latin2,'
\.'latin3,'
\.'latin4,'
\.'latin5,'
\.'latin9,'
\.'decmulti,'
\.'cp850,'
\.'cp852,'
\.'cp437,'
\.'cp437de,'
\.'cp865,'
\.'applemac,'
\.'next,'
\.'ansinew,'
\.'cp1250,'
\.'cp1252'
let g:TeX_package_inputenc =
\ 'bra:inputencoding'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("letterspace_package_file")
finish
endif
let letterspace_package_file = 1
let g:TeX_package_option_letterspace = ''
let g:TeX_package_letterspace = 'nor:letterspace'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,60 @@
if exists("lineno_package_file")
finish
endif
let lineno_package_file = 1
let g:TeX_package_option_lineno =
\ 'left,'
\.'right,'
\.'switch,'
\.'switch*,'
\.'pagewise,'
\.'running,'
\.'modulo,'
\.'mathlines,'
\.'displaymath,'
\.'hyperref'
let g:TeX_package_lineno =
\ 'sbr:Environments,'
\.'env:linenumbers,'
\.'env:linenumbers*,'
\.'env:numquote,'
\.'env:numquote*,'
\.'env:numquotation,'
\.'env:numquotation*,'
\.'env:bframe,'
\.'env:linenomath,'
\.'env:linenomath*,'
\.'bra:linelabel,'
\.'sbr:Commands,'
\.'nor:linenumbers,'
\.'nor:linenumbers*,'
\.'noo:linenumbers,'
\.'nor:nolinenumbers,'
\.'nor:runninglinenumbers,'
\.'nor:runninglinenumbers*,'
\.'noo:runninglinenumbers,'
\.'nor:pagewiselinenumbers,'
\.'nor:resetlinenumber,'
\.'noo:resetlinenumber,'
\.'nor:setrunninglinenumbers,'
\.'nor:setpagewiselinenumbers,'
\.'nor:switchlinenumbers,'
\.'nor:switchlinenumbers*,'
\.'nor:leftlinenumbers,'
\.'nor:leftlinenumbers*,'
\.'nor:rightlinenumbers,'
\.'nor:rightlinenumbers*,'
\.'nor:runningpagewiselinenumbers,'
\.'nor:realpagewiselinenumbers,'
\.'nor:modulolinenumbers,'
\.'noo:modulolinenumbers,'
\.'nor:linenumberdisplaymath,'
\.'nor:nolinenumberdisplaymath,'
\.'nor:thelinenumber,'
\.'nob:linerefp,'
\.'nob:linerefr,'
\.'nob:lineref'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,35 @@
if exists("longtable_package_file")
finish
endif
let longtable_package_file = 1
let g:TeX_package_option_longtable =
\ 'errorshow,'
\.'pausing,'
\.'set,'
\.'final'
let g:TeX_package_longtable =
\ 'sbr:Commands,'
\.'nor:setlongtables,'
\.'bra:LTleft,'
\.'bra:LTright,'
\.'bra:LTpre,'
\.'bra:LTpost,'
\.'bra:LTchunksize,'
\.'bra:LTcapwidth,'
\.'bra:LTcapwidth,'
\.'sbr:Longtable,'
\.'env:longtable,'
\.'sep:lt,'
\.'nor:endhead,'
\.'nor:endfirsthead,'
\.'nor:endfoot,'
\.'nor:endlastfoot,'
\.'nor:kill,'
\.'bra:caption,'
\.'nob:caption,'
\.'bra:caption*,'
\.'nor:newpage'
" vim:ft=vim:ts=4:sw=4:noet:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("lscape_package_file")
finish
endif
let lscape_package_file = 1
let g:TeX_package_option_lscape = ''
let g:TeX_package_lscape = 'env:landscape'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,15 @@
if exists("manyfoot_package_file")
finish
endif
let manyfoot_package_file = 1
let g:TeX_package_option_manyfoot = 'para'
let g:TeX_package_manyfoot =
\ 'bra:newfootnote,bra:newfootnote[para],'
\.'bra:footnoteA,bra:footnoteB,'
\.'bra:FootnoteA,bra:FootnoteB,'
\.'bra:Footnotemark,bra:Footnotetext,'
\.'SplitNote'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,28 @@
if exists("moreverb_package_file")
finish
endif
let moreverb_package_file = 1
let g:TeX_package_option_moreverb = ''
let g:TeX_package_moreverb =
\ 'ens:verbatimwrite:{<++>},'
\.'ens:verbatimtab:[<++>],'
\.'ens:listing:[<+step+>]{<+number+>},'
\.'ens:listing*:[<+step+>]{<+number+>},'
\.'env:boxedverbatim,'
\.'bra:verbatimtabsize,'
\.'bra:listingoffset,'
\.'brs:listinginput[<++>]{<++>}{<++>},'
\.'brs:verbatimtabinput[<++>]{<++>}'
let g:Tex_completion_explorer = g:Tex_completion_explorer.'verbatimtabinput,'
syn region texZone start="\\begin{verbatimwrite}" end="\\end{verbatimwrite}\|%stopzone\>" fold
syn region texZone start="\\begin{verbatimtab}" end="\\end{verbatimtab}\|%stopzone\>" fold
syn region texZone start="\\begin{boxedverbatim}" end="\\end{boxedverbatim}\|%stopzone\>" fold
syn region texZone start="\\begin{listing}" end="\\end{listing}\|%stopzone\>" fold
syn region texZone start="\\begin{listing*}" end="\\end{listing*}\|%stopzone\>" fold
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,21 @@
let g:TeX_package_option_moreverbatim = ''
let g:TeX_package_moreverbatim =
\ 'ens:verbatimwrite:{<++>},'
\.'ens:verbatimtab:[<++>],'
\.'ens:listing:[<+step+>]{<+number+>},'
\.'ens:listing*:[<+step+>]{<+number+>},'
\.'env:boxedverbatim,'
\.'bra:verbatimtabsize,'
\.'bra:listingoffset,'
\.'brs:listinginput[<++>]{<++>}{<++>},'
\.'brs:verbatimtabinput[<++>]{<++>}'
syn region texZone start="\\begin{verbatimwrite}" end="\\end{verbatimwrite}\|%stopzone\>" fold
syn region texZone start="\\begin{verbatimtab}" end="\\end{verbatimtab}\|%stopzone\>" fold
syn region texZone start="\\begin{boxedverbatim}" end="\\end{boxedverbatim}\|%stopzone\>" fold
syn region texZone start="\\begin{listing}" end="\\end{listing}\|%stopzone\>" fold
syn region texZone start="\\begin{listing*}" end="\\end{listing*}\|%stopzone\>" fold
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("multibox_package_file")
finish
endif
let multibox_package_file = 1
let g:TeX_package_option_multibox = ''
let g:TeX_package_multibox = 'multimake,multiframe'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,21 @@
if exists("multicol_package_file")
finish
endif
let multicol_package_file = 1
let g:TeX_package_option_multicol = ''
let g:TeX_package_multicol =
\ 'ens:multicols:{<+cols+>}[<+text+>][<+sep+>],'
\.'columnbreak,'
\.'premulticols,'
\.'postmulticols,'
\.'multicolsep,'
\.'columnsep,'
\.'linewidth,'
\.'columnseprule,'
\.'flushcolumnt,'
\.'raggedcolumns,'
\.'unbalanced'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,26 @@
if exists("newalg_package_file")
finish
endif
let newalg_package_file = 1
let g:TeX_package_option_newalg = ''
let g:TeX_package_newalg =
\ 'ens:algorithm:{<+name+>}{<++>},'
\.'ens:IF:{<+cond+>},'
\.'ens:FOR:{<+loop+>},'
\.'ens:WHILE:{<+cond+>},'
\.'bra:ERROR,'
\.'nor:ELSE,'
\.'nor:RETURN,'
\.'nor:NIL,'
\.'nor:TO,'
\.'bra:CALL,'
\.'bra:text,'
\.'env:REPEAT,'
\.'env:SWITCH,'
\.'nor:=,'
\.'bra:item,'
\.'nor:algkey'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("ngerman_package_file")
finish
endif
let ngerman_package_file = 1
" For now just define the smart quotes.
let b:Tex_SmartQuoteOpen = '"`'
let b:Tex_SmartQuoteClose = "\"'"
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,18 @@
if exists("numprint_package_file")
finish
endif
let numprint_package_file = 1
let g:TeX_package_option_numprint = ''
let g:TeX_package_numprint =
\ 'bra:numprint,'
\.'nob:numprint,'
\.'bra:thousandsep,'
\.'bra:decimalsign,'
\.'bra:productsign,'
\.'bra:unitseparator,'
\.'brd:expnumprint,'
\.'global'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
if exists("oldstyle_package_file")
finish
endif
let oldstyle_package_file = 1
let g:TeX_package_option_oldstyle = ''
let g:TeX_package_oldstyle =
\ 'bra:textos,'
\.'bra:mathos'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,19 @@
if exists("outliner_package_file")
finish
endif
let outliner_package_file = 1
let g:TeX_package_option_outliner = ''
let g:TeX_package_outliner =
\ 'env:Outline,'
\.'bra:Level,'
\.'bra:SetBaseLevel,'
\.'sep:preamble,'
\.'bra:OutlinePageBreaks,'
\.'bra:OutlinePageBreaks,'
\.'bra:OutlineLevelStart,'
\.'bra:OutlineLevelCont,'
\.'bra:OutlineLevelEnd'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,34 @@
if exists("overcite_package_file")
finish
endif
let overcite_package_file = 1
let g:TeX_package_option_overcite =
\ 'verbose,'
\.'ref,'
\.'nospace,'
\.'space,'
\.'nosort,'
\.'sort,'
\.'nomove,'
\.'noadjust'
let g:TeX_package_overcite =
\ 'bra:cite,'
\.'bra:citen,'
\.'bra:citenum,'
\.'bra:citeonline,'
\.'bra:nocite,'
\.'sep:redefine,'
\.'bra:citeform,'
\.'bra:citepunct,'
\.'bra:citeleft,'
\.'bra:citeright,'
\.'bra:citemid,'
\.'bra:citedash'
syn region texRefZone matchgroup=texStatement start="\\citen\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter
syn region texRefZone matchgroup=texStatement start="\\citenum\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter
syn region texRefZone matchgroup=texStatement start="\\citeonline\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,15 @@
if exists("parallel_package_file")
finish
endif
let parallel_package_file = 1
let g:TeX_package_option_parallel = ''
let g:TeX_package_parallel =
\ 'env:Parallel,'
\.'bra:ParallelLText,'
\.'bra:ParallelRText,'
\.'nor:ParallelPar,'
\.'nor:tolerance'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
if exists("plain_package_file")
finish
endif
let plain_package_file = 1
let g:TeX_package_option_plain = ''
let g:TeX_package_plain = 'env:plain'
" vim:ft=vim:ff=unix:

Some files were not shown because too many files have changed in this diff Show More