1
0
mirror of https://github.com/amix/vimrc synced 2025-07-10 11:44:59 +08:00

rename vim_plugins_src to vim_plugin_candinates_src and used as an plugin candinate dir

This commit is contained in:
hustcalm
2012-10-29 18:20:36 +08:00
parent b27590fbb4
commit b64930e3e7
486 changed files with 0 additions and 0 deletions

View File

@ -0,0 +1,285 @@
" 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,v 1.6 2003/07/24 02:52:35 srinathava Exp $
" 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 <20> 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.'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()
" 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| sufffers 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 sytax: >
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 hoders.
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*\\*.*',"",""),'^--','--\ \ \ \ ','')
================================================================================

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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,v 1.1 2003/06/15 08:09:28 srinathava Exp $
" 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,229 @@
After 6 Jun 2003
10 Aug 2003
Changes
* texrc, compiler.vim:
Make g:Tex_IgnoredWarnings use "\n" as the pattern seperator instead
of the inverted exclamation mark to avoid i18n issues. (Pan Shizhu,
SA)
* main.vim:
Use :runtime instead of :source in order to avoid problems when
latex-suite is installed in places other than ~/vimfiles or ~/.vim.
(Chris Greenwood, SA)
Bugfixes
* texproject.vim, main.vim:
Escape ' ' in a couple of places when defining filenames and dirnames
in order to avoid problems while issuing :cd etc. (Diego Carafini)
* texmenuconf.vim:
A couple of bug-fixes in the main latex-suite menu (SA)
* latex-suite.txt:
Fixed documentation about folding (SA)
17 Jul 2003
Features
* packages.vim:
Add custom completion to TPackage command.
It works only for Vim 6.2 or later. (MM)
Changes
* main.vim:
make Tex_GetMainFile() recursively search upwards for a *.latexmain
file. (SA)
* texmenuconf.vim:
Peter Heslin (maintaining the cream port of latex-suite says that the
Windows menu from cream appears in the middle of the latex-suite
menus). A new variable g:Tex_MainMenuLocation is used to find the
location of the latex-suite menus. (SA)
* packages/polski:
Update to cover version 1.3 of package. (MM)
Bugfixes
* main.vim:
Bug: If g:Tex_SmartQuoteOpen/Close contain the '~' character (french quotes
are "<22>~" and "~<7E>", then we get an error in quotations (Mathieu
CLABAUT).
Solution: escape ~ in the search() function (Mathieu CLABAUT).
* compiler.vim:
Bug: Sometimes moving up and down in the error list window causes a regexp
error.
Solution: properly escape backslashes in the regexp. (SA)
28 Jun 2003
Features
* latex-suite.txt:
vastly improved the latex-suite documentation. Now all documentation
is first written in docbook xml and then converted into html and
vim-help using saxon and db2vim respectively.
* bib_latexSuite.vim:
A new ftplugin file to trigger the bibtex mappings. (SA)
Changes
* compiler.vim:
change the behavior of the part compilation and viewing as documented.
Remove the "part view" feature because it does not make sense. (SA)
* packages.vim:
change the behavior of finding custom packages. Use vim's native :find
command instead of some complicated parsing of $TEXINPUTS. Introduce a
new g:Tex_TEXINPUTS variable which should be set in the same format as
vim's 'path' setting. (SA)
* texviewer.vim:
Change the way <F9> works for \cite completion. Change the way
g:Tex_BIBINPUTS variable has to be set. The new \cite completion
method is described in detail in the manual.
* envmacros.vim:
changed ETR to insert a more complete template using Tex_SpecialMacros
(Mathieu CLABAUT)
Bugfixes
* packages.vim:
Bug: When a \usepackage{} line is inside a fold, then we go into an
infinite loop. (Lin-bo Zhang)
Solution: A temporary hack of first opening up all folds before scanning
and then closing them. This needs to be robustified in the future
using mkview.vim (SA)
* envmacros.vim:
Bug: <F5> did not work for inserting environments which latex-suite
does not recognize. (bug introduced in version 1.32)
Solution: make <F5> insert at least a minimal environment template if
all other methods fail. (SA)
* texviewer.vim:
Bug: Pressing <F9> at the end of a line like
This is a \ref{eqn:something} and this is a comp
would cause errors.
Why: The substitute() command returns the original string if the pattern
does not match causing us to wrongly infer a match.
Fix: Therefore first check if there is a match.
Bug: Once we complete an equation, we can never complete a word.
Why: s:type is never unlet
Fix: unlet! s:type if there is no match on current line to any known
command.
Bug: Pressing <CR> during word completion does not take us to the location
of the match, as claimed.
Why: <CR> does "cc <num> | pclose! | cclose!". Because the preview window
with the match is open, therefore cc will take us to the match in
the preview window, after which pclose closes it up!
Fix: Do 'pclose! cc <num> | cclose' instead...
* compiler.vim:
Bug: If we used :TTarget ps, then the compiler would be called as:
dvips -o file.tex.ps file.tex.dvi
instead of
dvips -o file.ps file.dvi
Why: In a recent change, we made RunLaTeX() use filenames with extension.
However, some compilation rules might require filenames w/o extensions
(such as Tex_CompileRule_ps which is 'dvips -o $*.ps $*.dvi')
Fix: Try to guess if the &makeprg requires files w/o extensions by seeing
if it matches '\$\*\.\w\+'. If so, use file-name w/o extension.
Otherwise, retain extension in 'make '.fname
* imaps.vim:
Bug: IMAP_Jumpfunc() and VEnclose() do not work with &selection =
'exclusive' (Jannie Hofmeyr, Pierre Antoine Champin)
Fix: Select one more character in 'exclusive' mode. (suggested by Pierre
Antoine Champin).
* texviewer.vim:
Bug: On windows gvim +cygwin, \cite completion does not work when the bib
file is in a completeley different location.
Cause: gvim calls grep as "grep -nH @.*{ /path/to/file"
which does not work because grep thinks / corresponds to something
like c:/cygwin, so it looks for the file in the wrong place.
Fix: Always lcd to the current directory of the bib file being searched.
This avoids any path issues.
13 Jun 2003
Features
* remoteOpen.vim:
Add a command :RemoteOpen which is to be used in applications such as
YAP to make vim use the same session to open files. (SA)
Bugfixes
* texviewer.vim:
Problem: <F9> did not work in standard vim + cygwin combination.
Solution: Use single quotes instead of double-quotes when issuing
shell commands. (SA)
* texviewer.vim:
Problem: <F9> did not work for \includegraphics[0.8\columnwidth]{}
because it would confuse \columnwidth for a command instead
of an option.
Solution: improve regexp for extracting command from a line. (SA)
* envmacros.vim:
Problem: the maps in envmacros.vim got applied only to the first file
which latex-suite sees.
Solution: fix a typo in the autocommand line. (SA)
* compiler.vim,wizardfuncs.vim:
Problem: the log preview window did not appear during part
compilation.
Solution: rearranged code in the files so the main filename was
defined even for part compilation. (SA)
* texviewer.vim:
Problem: <F9> only works for the first file.
Solution: call the function to set the maps every time. (SA)
* compiler.vim:
Problem: sometimes, <F9> would try to search for completions in /*.tex
and would therefore fail.
Solution: use expand('%:p:h') instead of expand('%;h') to calculate
directory because the latter can sometimes evaluate to ''. (SA)
* texviewer.vim:
Problem: 'scrolloff' remains at 1000 even after <F9> returns (Jakub
Turski)
Solution: reset 'scrolloff' before quitting any of the windows created
during searching.
* packages.vim:
Problem: A spurious '{' is sometimes inserted into the search history.
... (A. S. Budden, Mpiktas)
Solution: call histdel once at the end of Tex_pack_all.
After 8 May 2003
Features
* texviewer.vim:
Look for bibfiles in $BIBINPUTS env variable (Soren Debois)
* envmacros.vim:
Check in package variables for templates for environments inserted
from line with <F5> (MM)
* packages/amsmath:
Templates for alignat and alignat* envs in amsmath package file (MM)
* compiler.vim:
Added support for regular viewing and forward searching for kdvi (KDE
viewer of .dvi files) (MM)
* compiler.vim:
Show default target enclosed in [] after calling :TTarget, :TCTarget
or :TVTarget. Allow no argument for :TTarget.
* mathmacros.vim, main.vim, texrc, latex-suite.txt:
Added utf-8 menus for math (MM)
* ChangeLog:
Add ChangeLog file in ftplugin/latex-suite directory (MM)
* wizardfuncs.vim, latex-suite.txt:
Tshortcuts - new command show various shortcuts (MM, SA)
* latex-suite.txt:
More cross-references with main Vim help, corrected mispells (MM)
* texmenuconf.vim:
Show value of <mapleader> in General menu instead of hardcoded \ (it
caused confusion) (MM, SA)
* texmenuconf.vim, mathmacros.vim:
Add accels for for Suite, Elements end Environments menus.
Changed accel in Math (Animesh Nerurkar)
Bugfixes
* compiler.vim:
Problem: Compile file with current file expansion, not always .tex
file (Animesh N Nerurkar)
Solution: When looking for file to compile don't remove extension (if
*.latexmain doesn't exist) (MM)
* texviewer.vim:
Problem: :TLook doesn't work (Animesh N Nerurkar)
Solution: Check if s:type exists in UpdateViewerWindow (MM)
* compiler.vim:
Problem: Text is messed after calling external command in terminal
version of Vim (Jess Thrysoee)
Solution: Add redraw! after calling compilers and viewers (partial
implementation of JT patch, MM)
* texrc:
Problem: Compiling pdf didn't succed because of double file extension,
eg. myfile.tex.tex (Animesh N Nerurkar)
Solution: Remove hardcoded .tex in CompilerRule_pdf. NOTE: Update of
personal texrc is required! (Animesh N Nerurkar)
vim: et:sts=4:tw=78

View File

@ -0,0 +1,246 @@
"=============================================================================
" File: bibtex.vim
" Function: BibT
" Author: Alan G Isaac <aisaac@american.edu>
" modified by Srinath Avadhanula <srinath AT fastmail DOT fm>
" for latex-suite.
" License: Vim Charityware license.
" CVS: $Id: bibtex.vim,v 1.5 2003/06/15 08:23:14 srinathava Exp $
"=============================================================================
" 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
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,586 @@
"=============================================================================
" 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,v 1.47 2003/09/07 17:22:09 srinathava Exp $
"=============================================================================
" SetTeXCompilerTarget: sets the 'target' for the next call to RunLaTeX() {{{
function! SetTeXCompilerTarget(type, target)
if a:target == ''
if g:Tex_DefaultTargetFormat == 'dvi'
let target = input('Enter the target ([dvi]/ps/pdf/...) for '.a:type.'r: ')
elseif g:Tex_DefaultTargetFormat == 'ps'
let target = input('Enter the target (dvi/[ps]/pdf/...) for '.a:type.'r: ')
elseif g:Tex_DefaultTargetFormat =~ 'pdf'
let target = input('Enter the target (dvi/ps/[pdf]/...) for '.a:type.'r: ')
else
let target = input('Enter the target (dvi/ps/pdf/['.g:Tex_DefaultTargetFormat.']) for '.a:type.'r: ')
endif
else
let target = a:target
endif
if target == ''
let target = 'dvi'
endif
if exists('g:Tex_'.a:type.'Rule_'.target)
if a:type == 'Compile'
let &l:makeprg = escape(g:Tex_CompileRule_{target}, g:Tex_EscapeChars)
elseif a:type == 'View'
exec 'let s:viewer = g:Tex_'.a:type.'Rule_'.target
endif
let s:target = target
else
let curd = getcwd()
exe 'cd '.expand('%:p:h')
if glob('makefile*') == '' && glob('Makefile*') == ''
if has('gui_running')
call confirm(
\'No '.a:type.' rule defined for target '.target."\n".
\'Please specify a rule in texrc.vim'."\n".
\' :help Tex_CompileRule_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 texrc.vim'."\n".
\' :help Tex_ViewRule_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
if g:Tex_DefaultTargetFormat == 'dvi'
let target = input('Enter the target for compiler and viewer ([dvi]/ps/pdf/...): ')
elseif g:Tex_DefaultTargetFormat == 'ps'
let target = input('Enter the target for compiler and viewer (dvi/[ps]/pdf/...): ')
elseif g:Tex_DefaultTargetFormat =~ 'pdf'
let target = input('Enter the target for compiler and viewer (dvi/ps/[pdf]/...): ')
else
let target = input('Enter the target for compiler and viewer (dvi/ps/pdf/['.g:Tex_DefaultTargetFormat.']): ')
endif
else
let target = a:1
endif
if target == ''
let target = 'dvi'
endif
call SetTeXCompilerTarget('Compile', target)
call SetTeXCompilerTarget('View', target)
endfunction
com! -nargs=1 TCTarget :call SetTeXCompilerTarget('Compile', <f-args>)
com! -nargs=1 TVTarget :call 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 RunLaTeX from a non-tex file"
return
end
" close any preview windows left open.
pclose!
" Logic to choose how to compile:
" if b:fragmentFile exists, then this is a fragment
" therefore, just compile this file
" else
" if makefile or Makefile exists, then use that
" elseif *.latexmain exists
" use that
" else use current file
"
" if mainfname exists, then it means it was supplied to RunLaTeX().
" Extract the complete file name including the extension.
let mainfname = Tex_GetMainFileName(':r')
call Tex_Debug('Tex_CompileLatex: getting mainfname = ['.mainfname.'] from Tex_GetMainFileName', 'comp')
if exists('b:fragmentFile') || mainfname == ''
let mainfname = escape(expand('%:t'), ' ')
endif
" 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 g:Tex_UseMakefile && (glob('makefile') != '' || glob('Makefile') != '')
let _makeprg = &l:makeprg
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!
endfunction " }}}
" Tex_SetupErrorWindow: sets up the cwindow and preview of the .log file {{{
" Description:
function! Tex_SetupErrorWindow()
let mainfname = Tex_GetMainFileName(':r')
if exists('b:fragmentFile') || mainfname == ''
let mainfname = expand('%:t')
endif
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('mfnlog = '.mfnlog, 'comp')
" if we moved to a different window, then it means we had some errors.
if winnum != winnr()
call UpdatePreviewWindow(mfnlog)
exe 'nnoremap <buffer> <silent> j j:call UpdatePreviewWindow("'.mfnlog.'")<CR>'
exe 'nnoremap <buffer> <silent> k k:call UpdatePreviewWindow("'.mfnlog.'")<CR>'
exe 'nnoremap <buffer> <silent> <up> <up>:call UpdatePreviewWindow("'.mfnlog.'")<CR>'
exe 'nnoremap <buffer> <silent> <down> <down>:call UpdatePreviewWindow("'.mfnlog.'")<CR>'
exe 'nnoremap <buffer> <silent> <enter> :call GotoErrorLocation("'.mfnlog.'")<CR>'
setlocal nowrap
" resize the window to just fit in with the number of lines.
exec ( line('$') < 4 ? line('$') : 4 ).' wincmd _'
call GotoErrorLocation(mfnlog)
endif
endfunction " }}}
" 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
" RunLaTeX() is called.
function! RunLaTeX()
call Tex_Debug('getting to RunLaTeX, b:fragmentFile = '.exists('b:fragmentFile'), 'comp')
let dir = expand("%:p:h").'/'
let curd = getcwd()
exec 'cd '.expand("%:p:h")
" first get the dependency chain of this format.
let dependency = s:target
if exists('g:Tex_FormatDependency_'.s:target)
if g:Tex_FormatDependency_{s:target} !~ ','.s:target.'$'
let dependency = g:Tex_FormatDependency_{s:target}.','.s:target
else
let dependency = g:Tex_FormatDependency_{s:target}
endif
endif
call Tex_Debug('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 SetTeXCompilerTarget('Compile', s:target)
call Tex_Debug('setting target to '.s:target, 'comp')
if g:Tex_MultipleCompileFormats =~ '\<'.s:target.'\>'
call Tex_CompileMultipleTimes()
else
call Tex_CompileLatex()
endif
let i = i + 1
endwhile
call Tex_SetupErrorWindow()
exec 'cd '.curd
endfunction
" }}}
" 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
" RunLaTeX() to see how to set this information.
" If ViewLaTeX was called with argument "part" show file which name is stored
" in g:tfile variable. If g:tfile doesnt exist, no problem. Function is called
" as silent.
function! ViewLaTeX()
if &ft != 'tex'
echo "calling ViewLaTeX from a non-tex file"
return
end
let dir = expand("%:p:h").'/'
let curd = getcwd()
exec 'cd '.expand("%:p:h")
" 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 Tex_GetMainFileName() != '' && !exists('b:fragmentFile')
let mainfname = Tex_GetMainFileName()
else
let mainfname = expand("%:p:t:r")
endif
if 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.
exec '!start' s:viewer mainfname . '.' . s:target
elseif has('macunix')
if strlen(s:viewer)
let s:viewer = '-a ' . s:viewer
endif
execute '!open' s:viewer mainfname . '.' . 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 exists('g:Tex_UseEditorSettingInDVIViewer') &&
\ g:Tex_UseEditorSettingInDVIViewer == 1 &&
\ exists('v:servername') &&
\ (s:viewer == "xdvi" || s:viewer == "xdvik")
exec '!'.s:viewer.' -editor "gvim --servername '.v:servername.' --remote-silent +\%l \%f" '.mainfname.'.dvi &'
elseif exists('g:Tex_UseEditorSettingInDVIViewer') &&
\ g:Tex_UseEditorSettingInDVIViewer == 1 &&
\ s:viewer == "kdvi"
exec '!kdvi --unique '.mainfname.'.dvi &'
else
exec '!'.s:viewer.' '.mainfname.'.dvi &'
endif
redraw!
else
exec '!'.s:viewer.' '.mainfname.'.'.s:target.' &'
redraw!
endif
end
exec '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 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 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.
if !exists('g:Tex_ViewRule_dvi')
return
endif
let viewer = g:Tex_ViewRule_dvi
let dir = expand("%:p:h").'/'
let curd = getcwd()
exec 'cd '.expand("%:p:h")
if Tex_GetMainFileName() != ''
let mainfname = Tex_GetMainFileName()
else
let mainfname = expand("%:p:t:r")
endif
" 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')
exec '!start '.viewer.' -s '.line('.').expand('%:p:t').' '.mainfname
else
if exists('g:Tex_UseEditorSettingInDVIViewer') &&
\ g:Tex_UseEditorSettingInDVIViewer == 1 &&
\ exists('v:servername') &&
\ (viewer == "xdvi" || viewer == "xdvik")
exec '!'.viewer.' -name xdvi -sourceposition '.line('.').expand('%').' -editor "gvim --servername '.v:servername.' --remote-silent +\%l \%f" '.mainfname.'.dvi &'
elseif exists('g:Tex_UseEditorSettingInDVIViewer') &&
\ g:Tex_UseEditorSettingInDVIViewer == 1 &&
\ viewer == "kdvi"
exec '!kdvi --unique file:'.mainfname.'.dvi\#src:'.line('.').Tex_GetMainFileName(":p:t:r").' &'
else
exec '!'.viewer.' -name xdvi -sourceposition '.line('.').expand('%').' '.mainfname.'.dvi &'
endif
redraw!
end
exec 'cd '.curd
endfunction
" }}}
" 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 RunLaTeX() to
" compile it.
function! Tex_PartCompile() range
call Tex_Debug('getting to Tex_PartCompile', 'comp')
" Save position
let pos = line('.').' | normal! '.virtcol('.').'|'
" Create temporary file and save its name into global variable to use in
" compiler.vim
let tmpfile = tempname().'.tex'
" If mainfile exists open it in tiny window and extract preamble there,
" otherwise do it from current file
let mainfile = Tex_GetMainFileName(":p:r")
if mainfile != ''
exe 'bot 1 split '.mainfile
exe '1,/\s*\\begin{document}/w '.tmpfile
wincmd q
else
exe '1,/\s*\\begin{document}/w '.tmpfile
endif
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 RunLaTeX()
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.
" ==============================================================================
" 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! PositionPreviewWindow(filename)
if getline('.') !~ '|\d\+ \(error\|warning\)|'
if !search('|\d\+ \(error\|warning\)|')
echomsg "not finding error pattern anywhere in quickfix window :".bufname(bufnr('%'))
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 " }}}
" 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! UpdatePreviewWindow(filename)
call PositionPreviewWindow(a:filename)
if &previewwindow
6 wincmd _
wincmd p
endif
endfunction " }}}
" 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! 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 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
endfunction " }}}
" SetCompilerMaps: sets maps for compiling/viewing/searching {{{
" Description:
function! <SID>SetCompilerMaps()
if exists('b:Tex_doneCompilerMaps')
return
endif
nnoremap <buffer> <Leader>ll :call RunLaTeX()<cr>
vnoremap <buffer> <Leader>ll :call Tex_PartCompile()<cr>
nnoremap <buffer> <Leader>lv :call ViewLaTeX()<cr>
nnoremap <buffer> <Leader>ls :call Tex_ForwardSearchLaTeX()<cr>
endif
endfunction
" }}}
augroup LatexSuite
au LatexSuite User LatexSuiteFileType
\ call Tex_Debug('compiler.vim: Catching LatexSuiteFileType event') |
\ call <SID>SetCompilerMaps()
augroup END
command! -nargs=0 -range=% TPartCompile :<line1>, <line2> silent! call Tex_PartCompile()
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4

View File

@ -0,0 +1,155 @@
"=============================================================================
" File: custommacros.vim
" Author: Mikolaj Machowski
" CVS: $Id: custommacros.vim,v 1.14.4.1 2003/11/07 06:37:12 srinathava Exp $
"
" Description: functions for processing custom macros in the
" latex-suite/macros directory
"=============================================================================
let s:path = expand('<sfile>:p:h')
" Tex_SetCustomMacrosMenu: sets up the menu for Macros {{{
function! Tex_SetCustomMacrosMenu()
let flist = glob(s:path."/macros/*")
exe 'amenu '.g:Tex_MacrosMenuLocation.'&New :call Tex_NewMacro()<CR>'
exe 'amenu '.g:Tex_MacrosMenuLocation.'&Redraw :call Tex_RedrawMacro()<CR>'
let i = 1
while 1
let fname = Tex_Strntok(flist, "\n", i)
if fname == ''
break
endif
let fnameshort = fnamemodify(fname, ':p:t:r')
exe "amenu ".g:Tex_MacrosMenuLocation."&Delete.&".i.":<tab>".fnameshort." :call Tex_DeleteMacro('".fnameshort."')<CR>"
exe "amenu ".g:Tex_MacrosMenuLocation."&Edit.&".i.":<tab>".fnameshort." :call Tex_EditMacro('".fnameshort."')<CR>"
exe "imenu ".g:Tex_MacrosMenuLocation."&".i.":<tab>".fnameshort." <C-r>=Tex_ReadMacro('".fnameshort."')<CR>"
exe "nmenu ".g:Tex_MacrosMenuLocation."&".i.":<tab>".fnameshort." i<C-r>=Tex_ReadMacro('".fnameshort."')<CR>"
let i = i + 1
endwhile
endfunction
if g:Tex_Menus
call Tex_SetCustomMacrosMenu()
endif
" }}}
" Tex_NewMacro: opens new file in macros directory {{{
function! Tex_NewMacro()
exe "cd ".s:path."/macros"
new
set filetype=tex
endfunction
" }}}
" Tex_RedrawMacro: refreshes macro menu {{{
function! Tex_RedrawMacro()
aunmenu TeX-Suite.Macros
call Tex_SetCustomMacrosMenu()
endfunction
" }}}
" Tex_ChooseMacro: choose a macro file {{{
" Description:
function! Tex_ChooseMacro(ask)
let pwd = getcwd()
exe 'cd '.s:path.'/macros'
let filename = Tex_ChooseFromPrompt(
\ a:ask."\n" .
\ Tex_CreatePrompt(glob('*'), 2, "\n") .
\ "\nEnter number or filename :",
\ glob('*'), "\n")
exe 'cd '.pwd
return filename
endfunction " }}}
" Tex_DeleteMacro: deletes macro file {{{
function! Tex_DeleteMacro(...)
if a:0 > 0
let filename = a:1
else
let pwd = getcwd()
exe 'cd '.s:path.'/macros'
let filename = Tex_ChooseMacro('Choose a macro file for deletion :')
exe 'cd '.pwd
endif
let ch = confirm('Really delete '.filename.' ?',
\"Yes\nNo", 2)
if ch == 1
call delete(s:path.'/macros/'.filename)
endif
call Tex_RedrawMacro()
endfunction
" }}}
" Tex_EditMacro: edits macro file {{{
function! Tex_EditMacro(...)
if a:0 > 0
let filename = a:1
else
let pwd = getcwd()
exe 'cd '.s:path.'/macros'
let filename = Tex_ChooseMacro('Choose a macro file for insertion:')
exe 'cd '.pwd
endif
exe "split ".s:path."/macros/".filename
exe "lcd ".s:path."/macros/"
set filetype=tex
endfunction
" }}}
" Tex_ReadMacro: reads in a macro from a macro file. {{{
" allowing for placement via placeholders.
function! Tex_ReadMacro(...)
if a:0 > 0
let filename = a:1
else
let pwd = getcwd()
exe 'cd '.s:path.'/macros'
let filename = Tex_ChooseMacro('Choose a macro file for insertion:')
exe 'cd '.pwd
if filename == ''
return ''
endif
endif
let fname = s:path.'/macros/'.filename
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=? TMacro :let s:retVal = Tex_ReadMacro(<f-args>) <bar> exec "normal! i\<C-r>=s:retVal<CR>\<right>" <bar> startinsert
com! -nargs=0 TMacroNew :call Tex_NewMacro()
com! -nargs=? TMacroEdit :call Tex_EditMacro(<f-args>)
com! -nargs=? TMacroDelete :call Tex_DeleteMacro(<f-args>)
" }}}
" 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,324 @@
"=============================================================================
" File: folding.vim
" Author: Srinath Avadhanula
" Version: $Id: folding.vim,v 1.12.2.1 2003/11/25 20:34:54 srinathava Exp $
" 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') |
\ call s:SetFoldOptions()
augroup END
" SetFoldOptions: sets maps for every buffer {{{
" Description:
function! <SID>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
if g:Tex_Folding && !hasmapto('<Plug>Tex_RefreshFolds')
nmap <silent> <buffer> <Leader>rf <Plug>Tex_RefreshFolds
endif
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
" 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.
"
"
" }}}
" ========================================================================
" {{{ footnote
call AddSyntaxFoldItem (
\ '^\s*\\footnote{',
\ '^\s*}',
\ 0,
\ 0
\ )
" }}}
" {{{ intertext
call AddSyntaxFoldItem (
\ '^\s*\\intertext{',
\ '^\s*}',
\ 0,
\ 0
\ )
" }}}
" {{{ abstract
call AddSyntaxFoldItem (
\ '^\s*\\begin{abstract}',
\ '^\s*\\end{abstract}',
\ 0,
\ 0
\ )
" }}}
" {{{ keywords
call AddSyntaxFoldItem (
\ '^\s*\\begin{keywords}',
\ '^\s*\\end{keywords}',
\ 0,
\ 0
\ )
" }}}
" {{{ thebibliography
call AddSyntaxFoldItem (
\ '^\s*\\begin{thebibliography}',
\ '^\s*\\end{thebibliography}',
\ 0,
\ 0
\ )
" }}}
" {{{ table
call AddSyntaxFoldItem (
\ '^\s*\\begin{table}',
\ '^\s*\\end{table}',
\ 0,
\ 0
\ )
" }}}
" {{{ figure
call AddSyntaxFoldItem (
\ '^\s*\\begin{figure',
\ '^\s*\\end{figure}',
\ 0,
\ 0
\ )
" }}}
" {{{ align/alignat
call AddSyntaxFoldItem (
\ '^\s*\\begin{align',
\ '^\s*\\end{align',
\ 0,
\ 0
\ )
" }}}
" {{{ gather
call AddSyntaxFoldItem (
\ '^\s*\\begin{gather',
\ '^\s*\\end{gather',
\ 0,
\ 0
\ )
" }}}
" {{{ equation/eqnarray
call AddSyntaxFoldItem (
\ '^\s*\\begin{eq',
\ '^\s*\\end{eq',
\ 0,
\ 0
\ )
" }}}
" {{{ items
call AddSyntaxFoldItem (
\ '^\s*\\item',
\ '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}',
\ 0,
\ -1,
\ '^\s*\\begin{\(enumerate\|itemize\|description\)}',
\ '^\s*\\end{\(enumerate\|itemize\|description\)}'
\ )
" }}}
" {{{ subsubsection
call AddSyntaxFoldItem (
\ '^\s*\\subsubsection\W',
\ '^\s*\\appendix\W\|^\s*\\subsubsection\W\|^\s*\\subsection\W\|^\s*\\section\W\|^\s*%%fakesection\|^\s*\\chapter\W\|^\s*\\begin{slide\|^\s*\\end{document',
\ 0,
\ -1,
\ )
" }}}
" {{{ subsection
call AddSyntaxFoldItem (
\ '^\s*\\subsection\W',
\ '^\s*\\appendix\W\|^\s*\\subsection\W\|^\s*\\section\W\|^\s*%%fakesection\|^\s*\\bibliography\|^\s*\\chapter\W\|^\s*\\begin{slide\|^\s*\\begin{thebibliography\|^\s*\\end{document',
\ 0,
\ -1,
\ )
" }}}
" {{{ section
call AddSyntaxFoldItem (
\ '^\s*\\section\W',
\ '^\s*\\appendix\W\|^\s*\\section\W\|^\s*\\bibliography\|^\s*%%fakesection\|^\s*\\chapter\W\|^\s*\\begin{slide\|^\s*\\begin{thebibliography\|^\s*\\end{document',
\ 0,
\ -1,
\ )
" }}}
" {{{ fakesection (for forcing a fold item manually)
call AddSyntaxFoldItem (
\ '^\s*%%fakesection',
\ '^\s*\\appendix\W\|^\s*\\section\W\|^\s*%%fakesection\|^\s*\\bibliography\|^\s*\\chapter\W\|^\s*\\begin{slide\|^\s*\\begin{thebibliography\|^\s*\\end{document',
\ 0,
\ -1,
\ )
" }}}
" {{{ chapter
call AddSyntaxFoldItem(
\ '^\s*\\chapter\W',
\ '^\s*\\appendix\W\|^\s*\\chapter\W\|^\s*\\bibliography\|^\s*\\begin{slide\|^\s*\\begin{thebibliography\|^\s*\\end{document',
\ 0,
\ -1
\ )
" }}}
" {{{ slide
call AddSyntaxFoldItem (
\ '^\s*\\begin{slide',
\ '^\s*\\appendix\W\|^\s*\\chapter\W\|^\s*\\end{slide\|^\s*\\end{document',
\ 0,
\ 0
\ )
" }}}
call MakeSyntaxFolds(a:force)
normal! zv
endfunction
" }}}
" TexFoldTextFunction: create fold text for folds {{{
function! TexFoldTextFunction()
if getline(v:foldstart) =~ '^\s*\\begin{'
let header = matchstr(getline(v:foldstart), '^\s*\\begin{\zs\(figure\|sidewaysfigure\|table\|equation\|eqnarray\|gather\|align\|abstract\|keywords\|thebibliography\)[^}]*\ze}')
let caption = ''
let label = ''
let i = v:foldstart
while i <= v:foldend
if getline(i) =~ '\\caption'
let caption = matchstr(getline(i), '\\caption{\zs.*')
let caption = substitute(caption, '\zs}[^}]*$', '', '')
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 retText
else
return 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}<++>

View File

@ -0,0 +1,663 @@
" LaTeX filetype
" Language: LaTeX (ft=tex)
" Maintainer: Srinath Avadhanula
" Email: srinath@fastmail.fm
" CVS: $Id: main.vim,v 1.47 2003/09/13 07:03:13 srinathava Exp $
" URL:
" line continuation used here.
let s:save_cpo = &cpo
set cpo&vim
" avoiding re-inclusion {{{
" the avoiding re-inclusion statement is not provided here because the files
" which call this file should in the normal course of events handle the
" re-inclusion stuff.
" we definitely dont want to run through the entire file each and every time.
" only once to define the functions. for successive latex files, just set up
" the folding and mappings and quit.
if exists('s:doneFunctionDefinitions') && !exists('b:forceRedoLocalTex')
call s:SetTeXOptions()
finish
endif
let s:doneFunctionDefinitions = 1
" get the place where this plugin resides for setting cpt and dict options.
" these lines need to be outside the function.
let s:path = expand('<sfile>:p:h')
" set up personal defaults.
runtime ftplugin/tex/texrc
" set up global defaults.
exe "so ".s:path.'/texrc'
" }}}
nmap <silent> <script> <plug> i
imap <silent> <script> <C-o><plug> <Nop>
" ==============================================================================
" mappings
" ==============================================================================
" {{{
" calculate the mapleader character.
let s:ml = exists('g:mapleader') ? g:mapleader : '\'
if !exists('s:doneMappings')
let s:doneMappings = 1
" short forms for latex formatting and math elements. {{{
" taken from auctex.vim or miktexmacros.vim
call IMAP ('__', '_{<++>}<++>', "tex")
call IMAP ('()', '(<++>)<++>', "tex")
call IMAP ('[]', '[<++>]<++>', "tex")
call IMAP ('{}', '{<++>}<++>', "tex")
call IMAP ('^^', '^{<++>}<++>', "tex")
call IMAP ('$$', '$<++>$<++>', "tex")
call IMAP ('==', '&=& ', "tex")
call IMAP ('~~', '&\approx& ', "tex")
call IMAP ('=~', '\approx', "tex")
call IMAP ('::', '\dots', "tex")
call IMAP ('((', '\left( <++> \right)<++>', "tex")
call IMAP ('[[', '\left[ <++> \right]<++>', "tex")
call IMAP ('{{', '\left\{ <++> \right\}<++>', "tex")
call IMAP (g:Tex_Leader.'^', '\hat{<++>}<++>', "tex")
call IMAP (g:Tex_Leader.'_', '\bar{<++>}<++>', "tex")
call IMAP (g:Tex_Leader.'6', '\partial', "tex")
call IMAP (g:Tex_Leader.'8', '\infty', "tex")
call IMAP (g:Tex_Leader.'/', '\frac{<++>}{<++>}<++>', "tex")
call IMAP (g:Tex_Leader.'%', '\frac{<++>}{<++>}<++>', "tex")
call IMAP (g:Tex_Leader.'@', '\circ', "tex")
call IMAP (g:Tex_Leader.'0', '^\circ', "tex")
call IMAP (g:Tex_Leader.'=', '\equiv', "tex")
call IMAP (g:Tex_Leader."\\",'\setminus', "tex")
call IMAP (g:Tex_Leader.'.', '\cdot', "tex")
call IMAP (g:Tex_Leader.'*', '\times', "tex")
call IMAP (g:Tex_Leader.'&', '\wedge', "tex")
call IMAP (g:Tex_Leader.'-', '\bigcap', "tex")
call IMAP (g:Tex_Leader.'+', '\bigcup', "tex")
call IMAP (g:Tex_Leader.'M', '\sum_{<++>}^{<++>}<++>', 'tex')
call IMAP (g:Tex_Leader.'S', '\sum_{<++>}^{<++>}<++>', 'tex')
call IMAP (g:Tex_Leader.'(', '\subset', "tex")
call IMAP (g:Tex_Leader.')', '\supset', "tex")
call IMAP (g:Tex_Leader.'<', '\le', "tex")
call IMAP (g:Tex_Leader.'>', '\ge', "tex")
call IMAP (g:Tex_Leader.',', '\nonumber', "tex")
call IMAP (g:Tex_Leader.'~', '\tilde{<++>}<++>', "tex")
call IMAP (g:Tex_Leader.';', '\dot{<++>}<++>', "tex")
call IMAP (g:Tex_Leader.':', '\ddot{<++>}<++>', "tex")
call IMAP (g:Tex_Leader.'2', '\sqrt{<++>}<++>', "tex")
call IMAP (g:Tex_Leader.'|', '\Big|', "tex")
call IMAP (g:Tex_Leader.'I', "\\int_{<++>}^{<++>}<++>", 'tex')
" }}}
" Greek Letters {{{
call IMAP(g:Tex_Leader.'a', '\alpha', 'tex')
call IMAP(g:Tex_Leader.'b', '\beta', 'tex')
call IMAP(g:Tex_Leader.'c', '\chi', 'tex')
call IMAP(g:Tex_Leader.'d', '\delta', 'tex')
call IMAP(g:Tex_Leader.'e', '\varepsilon', 'tex')
call IMAP(g:Tex_Leader.'f', '\varphi', 'tex')
call IMAP(g:Tex_Leader.'g', '\gamma', 'tex')
call IMAP(g:Tex_Leader.'h', '\eta', 'tex')
call IMAP(g:Tex_Leader.'k', '\kappa', 'tex')
call IMAP(g:Tex_Leader.'l', '\lambda', 'tex')
call IMAP(g:Tex_Leader.'m', '\mu', 'tex')
call IMAP(g:Tex_Leader.'n', '\nu', 'tex')
call IMAP(g:Tex_Leader.'p', '\pi', 'tex')
call IMAP(g:Tex_Leader.'q', '\theta', 'tex')
call IMAP(g:Tex_Leader.'r', '\rho', 'tex')
call IMAP(g:Tex_Leader.'s', '\sigma', 'tex')
call IMAP(g:Tex_Leader.'t', '\tau', 'tex')
call IMAP(g:Tex_Leader.'u', '\upsilon', 'tex')
call IMAP(g:Tex_Leader.'v', '\varsigma', 'tex')
call IMAP(g:Tex_Leader.'w', '\omega', 'tex')
call IMAP(g:Tex_Leader.'w', '\wedge', 'tex') " AUCTEX style
call IMAP(g:Tex_Leader.'x', '\xi', 'tex')
call IMAP(g:Tex_Leader.'y', '\psi', 'tex')
call IMAP(g:Tex_Leader.'z', '\zeta', 'tex')
" not all capital greek letters exist in LaTeX!
" reference: http://www.giss.nasa.gov/latex/ltx-405.html
call IMAP(g:Tex_Leader.'D', '\Delta', 'tex')
call IMAP(g:Tex_Leader.'F', '\Phi', 'tex')
call IMAP(g:Tex_Leader.'G', '\Gamma', 'tex')
call IMAP(g:Tex_Leader.'Q', '\Theta', 'tex')
call IMAP(g:Tex_Leader.'L', '\Lambda', 'tex')
call IMAP(g:Tex_Leader.'X', '\Xi', 'tex')
call IMAP(g:Tex_Leader.'Y', '\Psi', 'tex')
call IMAP(g:Tex_Leader.'S', '\Sigma', 'tex')
call IMAP(g:Tex_Leader.'U', '\Upsilon', 'tex')
call IMAP(g:Tex_Leader.'W', '\Omega', 'tex')
" }}}
" ProtectLetters: sets up indentity maps for things like ``a {{{
" " Description: If we simply do
" call IMAP('`a', '\alpha', 'tex')
" then we will never be able to type 'a' after a tex-quotation. Since
" IMAP() always uses the longest map ending in the letter, this problem
" can be avoided by creating a fake map for ``a -> ``a.
" This function sets up fake maps of the following forms:
" ``[aA] -> ``[aA] (for writing in quotations)
" \`[aA] -> \`[aA] (for writing diacritics)
" "`[aA] -> "`[aA] (for writing german quotations)
" It does this for all printable lower ascii characters just to make sure
" we dont let anything slip by.
function! s:ProtectLetters(first, last)
let i = a:first
while i <= a:last
if nr2char(i) =~ '[[:print:]]'
call IMAP('``'.nr2char(i), '``'.nr2char(i), 'tex')
call IMAP('\`'.nr2char(i), '\`'.nr2char(i), 'tex')
call IMAP('"`'.nr2char(i), '"`'.nr2char(i), 'tex')
endif
let i = i + 1
endwhile
endfunction
call s:ProtectLetters(32, 127)
" }}}
" vmaps: enclose selected region in brackets, environments {{{
" The action changes depending on whether the selection is character-wise
" or line wise. for example, selecting linewise and pressing \v will
" result in the region being enclosed in \begin{verbatim}, \end{verbatim},
" whereas in characterise visual mode, the thingie is enclosed in \verb|
" and |.
exec 'vnoremap <silent> '.g:Tex_Leader."( \<C-\\>\<C-N>:call VEnclose('\\left( ', ' \\right)', '\\left(', '\\right)')\<CR>"
exec 'vnoremap <silent> '.g:Tex_Leader."[ \<C-\\>\<C-N>:call VEnclose('\\left[ ', ' \\right]', '\\left[', '\\right]')\<CR>"
exec 'vnoremap <silent> '.g:Tex_Leader."{ \<C-\\>\<C-N>:call VEnclose('\\left\\{ ', ' \\right\\}', '\\left\\{', '\\right\\}')\<CR>"
exec 'vnoremap <silent> '.g:Tex_Leader."$ \<C-\\>\<C-N>:call VEnclose('$', '$', '\\[', '\\]')\<CR>"
" }}}
end
" }}}
" ==============================================================================
" Smart key-mappings
" ==============================================================================
" TexQuotes: inserts `` or '' instead of " {{{
if g:Tex_SmartKeyQuote
" TexQuotes: inserts `` or '' instead of "
" Taken from texmacro.vim by Benji Fisher <benji@e-math.AMS.org>
" TODO: Deal with nested quotes.
" The :imap that calls this function should insert a ", move the cursor to
" the left of that character, then call this with <C-R>= .
function! s:TexQuotes()
let l = line(".")
let c = col(".")
let restore_cursor = l . "G" . virtcol(".") . "|"
normal! H
let restore_cursor = "normal!" . line(".") . "Gzt" . restore_cursor
execute restore_cursor
" In math mode, or when preceded by a \, just move the cursor past the
" already-inserted " character.
if synIDattr(synID(l, c, 1), "name") =~ "^texMath"
\ || (c > 1 && getline(l)[c-2] == '\')
return "\<Right>"
endif
" Find the appropriate open-quote and close-quote strings.
if exists("b:Tex_SmartQuoteOpen")
let open = b:Tex_SmartQuoteOpen
elseif exists("g:Tex_SmartQuoteOpen")
let open = g:Tex_SmartQuoteOpen
else
let open = "``"
endif
if exists("b:Tex_SmartQuoteClose")
let close = b:Tex_SmartQuoteClose
elseif exists("g:Tex_SmartQuoteClose")
let close = g:Tex_SmartQuoteClose
else
let close = "''"
endif
let boundary = '\|'
" This code seems to be obsolete, since this script variable is never
" set. The idea is that some languages use ",," as an open- or
" close-quote string, and we want to avoid confusing ordinary ","
" with a quote boundary.
if exists("s:TeX_strictquote")
if( s:TeX_strictquote == "open" || s:TeX_strictquote == "both" )
let boundary = '\<' . boundary
endif
if( s:TeX_strictquote == "close" || s:TeX_strictquote == "both" )
let boundary = boundary . '\>'
endif
endif
" Eventually return q; set it to the default value now.
let q = open
while 1 " Look for preceding quote (open or close), ignoring
" math mode and '\"' .
call search(escape(open . boundary . close . '\|^$\|"', "~"), "bw")
if synIDattr(synID(line("."), col("."), 1), "name") !~ "^texMath"
\ && (col(".") == 1 || getline(".")[col(".")-2] != '\')
break
endif
endwhile
" Now, test whether we actually found a _preceding_ quote; if so, is it
" an open quote?
if ( line(".") < l || line(".") == l && col(".") < c )
if strpart(getline("."), col(".")-1) =~
\ '\V\^' . escape(open, '\')
if line(".") == l && col(".") + strlen(open) == c
" Insert "<++>''<++>" instead of just "''".
let q = IMAP_PutTextWithMovement("<++>".close."<++>")
else
let q = close
endif
endif
endif
" Return to line l, column c:
execute restore_cursor
" Start with <Del> to remove the " put in by the :imap .
return "\<Del>" . q
endfunction
endif
" }}}
" SmartBS: smart backspacing {{{
if g:Tex_SmartKeyBS
" SmartBS: smart backspacing
" SmartBS lets you treat diacritic characters (those \'{a} thingies) as a
" single character. This is useful for example in the following situation:
"
" \v{s}\v{t}astn\'{y} ('happy' in Slovak language :-) )
" If you will delete this normally (without using smartBS() function), you
" must press <BS> about 19x. With function smartBS() you must press <BS> only
" 7x. Strings like "\v{s}", "\'{y}" are considered like one character and are
" deleted with one <BS>.
"
let s:smartBS_pat = '\(' .
\ "\\\\[\"^'=v]{\\S}" . '\|' .
\ "\\\\[\"^'=]\\S" . '\|' .
\ '\\v \S' . '\|' .
\ "\\\\[\"^'=v]{\\\\[iI]}" . '\|' .
\ '\\v \\[iI]' . '\|' .
\ '\\q \S' . '\|' .
\ '\\-' .
\ '\)' . "$"
fun! s:SmartBS_pat()
return s:smartBS_pat
endfun
" This function comes from Benji Fisher <benji@e-math.AMS.org>
" http://vim.sourceforge.net/scripts/download.php?src_id=409
" (modified/patched by Lubomir Host 'rajo' <host8 AT keplerDOTfmphDOTuniba.sk>)
function! s:SmartBS(pat)
let init = strpart(getline("."), 0, col(".")-1)
let matchtxt = matchstr(init, a:pat)
if matchtxt != ''
let bstxt = substitute(matchtxt, '.', "\<bs>", 'g')
return bstxt
else
return "\<bs>"
endif
endfun
endif " }}}
" SmartDots: inserts \cdots instead of ... in math mode otherwise \ldots {{{
" if amsmath package is detected then just use \dots and let amsmath take care
" of it.
if g:Tex_SmartKeyDot
function! <SID>SmartDots()
if strpart(getline('.'), col('.')-3, 2) == '..' &&
\ g:Tex_package_detected =~ '\<amsmath\>'
return "\<bs>\<bs>\\dots"
elseif synIDattr(synID(line('.'),col('.')-1,0),"name") =~ '^texMath'
\&& strpart(getline('.'), col('.')-3, 2) == '..'
return "\<bs>\<bs>\\cdots"
elseif strpart(getline('.'), col('.')-3, 2) == '..'
return "\<bs>\<bs>\\ldots"
else
return '.'
endif
endfunction
endif
" }}}
" ==============================================================================
" Helper Functions
" ==============================================================================
" Tex_ShowVariableValue: debugging help {{{
" provides a way to examine script local variables from outside the script.
" very handy for debugging.
function! Tex_ShowVariableValue(...)
let i = 1
while i <= a:0
exe 'let arg = a:'.i
if exists('s:'.arg) ||
\ exists('*s:'.arg)
exe 'let val = s:'.arg
echomsg 's:'.arg.' = '.val
end
let i = i + 1
endwhile
endfunction
" }}}
" Tex_Strntok: extract the n^th token from a list {{{
" example: Strntok('1,23,3', ',', 2) = 23
fun! Tex_Strntok(s, tok, n)
return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}')
endfun
" }}}
" Tex_CreatePrompt: creates a prompt string {{{
" Description:
" Arguments:
" promptList: This is a string of the form:
" 'item1,item2,item3,item4'
" cols: the number of columns in the resultant prompt
" sep: the list seperator token
"
" Example:
" Tex_CreatePrompt('item1,item2,item3,item4', 2, ',')
" returns
" "(1) item1\t(2)item2\n(3)item3\t(4)item4"
"
" This string can be used in the input() function.
function! Tex_CreatePrompt(promptList, cols, sep)
let g:listSep = a:sep
let num_common = GetListCount(a:promptList)
let i = 1
let promptStr = ""
while i <= num_common
let j = 0
while j < a:cols && i + j <= num_common
let com = Tex_Strntok(a:promptList, a:sep, i+j)
let promptStr = promptStr.'('.(i+j).') '.
\ com."\t".( strlen(com) < 4 ? "\t" : '' )
let j = j + 1
endwhile
let promptStr = promptStr."\n"
let i = i + a:cols
endwhile
return promptStr
endfunction
" }}}
" Tex_CleanSearchHistory: removes last search item from search history {{{
" Description: This function needs to be globally visible because its
" called from outside the script during expansion.
function! Tex_CleanSearchHistory()
call histdel("/", -1)
let @/ = histget("/", -1)
endfunction
nmap <silent> <script> <plug>cleanHistory :call Tex_CleanSearchHistory()<CR>
" }}}
" Tex_GetVarValue: gets the value of the variable {{{
" Description:
" See if a window-local, buffer-local or global variable with the given name
" exists and if so, returns the corresponding value. Otherwise return the
" provided default value.
function! Tex_GetVarValue(varname, default)
if exists('w:'.a:varname)
return w:{a:varname}
elseif exists('b:'.a:varname)
return b:{a:varname}
elseif exists('g:'.a:varname)
return g:{a:varname}
else
return a:default
endif
endfunction " }}}
" Tex_GetMainFileName: gets the name (without extension) of the main file being compiled. {{{
" Description: returns '' if .latexmain doesnt exist.
" i.e if main.tex.latexmain exists, then returns:
" d:/path/to/main
" if a:1 is supplied, then it is used to modify the *.latexmain
" file instead of using ':p:r:r'.
function! Tex_GetMainFileName(...)
if a:0 > 0
let modifier = a:1
else
let modifier = ':p:r:r'
endif
" If the user wants to use his own way to specify the main file name, then
" use it straight away.
if Tex_GetVarValue('Tex_MainFileExpression', '') != ''
exec 'let retval = '.Tex_GetVarValue('Tex_MainFileExpression', '')
return retval
endif
let curd = getcwd()
let dirmodifier = '%:p:h'
let dirLast = expand(dirmodifier)
" escape spaces whenever we use cd (diego Caraffini)
exe 'cd '.escape(dirLast, ' ')
" move up the directory tree until we find a .latexmain file.
" TODO: Should we be doing this recursion by default, or should there be a
" setting?
while glob('*.latexmain') == ''
let dirmodifier = dirmodifier.':h'
" break from the loop if we cannot go up any further.
if expand(dirmodifier) == dirLast
break
endif
let dirLast = expand(dirmodifier)
exec 'cd '.escape(dirLast, ' ')
endwhile
let lheadfile = glob('*.latexmain')
if lheadfile != ''
let lheadfile = fnamemodify(lheadfile, modifier)
endif
exe 'cd '.escape(curd, ' ')
return escape(lheadfile, ' ')
endfunction
" }}}
" Tex_ChooseFromPrompt: process a user input to a prompt string {{{
" " Description:
function! Tex_ChooseFromPrompt(dialog, list, sep)
let inp = input(a:dialog)
if inp =~ '\d\+'
return Tex_Strntok(a:list, a:sep, inp)
else
return inp
endif
endfunction " }}}
" Tex_ChooseFile: produces a file list and prompts for choice {{{
" Description:
function! Tex_ChooseFile(dialog)
let files = glob('*')
if files == ''
return ''
endif
let s:incnum = 0
echo a:dialog
let filenames = substitute(files, "\\v(^|\n)", "\\=submatch(0).Tex_IncrementNumber(1).' : '", 'g')
echo filenames
let choice = input('Enter Choice : ')
let g:choice = choice
if choice == ''
return ''
endif
if choice =~ '^\s*\d\+\s*$'
let retval = Tex_Strntok(files, "\n", choice)
else
let filescomma = substitute(files, "\n", ",", "g")
let retval = GetListMatchItem(filescomma, choice)
endif
if retval == ''
return ''
endif
return retval
endfunction
" }}}
" Tex_IncrementNumber: returns an incremented number each time {{{
" Description:
let s:incnum = 0
function! Tex_IncrementNumber(increm)
let s:incnum = s:incnum + a:increm
return s:incnum
endfunction
" }}}
" Tex_ResetIncrementNumber: increments s:incnum to zero {{{
" Description:
function! Tex_ResetIncrementNumber(val)
let s:incnum = a:val
endfunction " }}}
" Tex_EscapeForGrep: escapes \ and " the correct number of times {{{
" Description: This command escapes the backslash and double quotes in a
" search pattern the correct number of times so it can be used in the :grep
" command. This command is meant to be used as:
" exec "silent! grep '".Tex_EscapeForGrep(pattern)."' file"
" NOTE: The pattern in the grep command should _always_ be enclosed in
" single quotes (not double quotes) for robust performance.
function! Tex_EscapeForGrep(string)
" This first escaping is so that grep gets a string like '\\bibitem' when
" we want to search for a string like '\bibitem'.
let retVal = escape(a:string, "\\")
" The next escape is because when the shellxquote is ", then the grep
" commad is usually called as bash -c "grep pattern filename" which means
" that we need to escape backslashes (because they get halved) and also
" double quotes.
if &shellxquote == '"'
let retVal = escape(retVal, "\"\\")
endif
return retVal
endfunction " }}}
" Functions for debugging {{{
" Tex_Debug: appends the argument into s:debugString {{{
" Description:
"
" Do not want a memory leak! Set this to zero so that latex-suite always
" starts out in a non-debugging mode.
if !exists('g:Tex_Debug')
let g:Tex_Debug = 0
endif
function! Tex_Debug(str, ...)
if !g:Tex_Debug
return
endif
if a:0 > 0
let pattern = a:1
else
let pattern = ''
endif
if !exists('s:debugString_'.pattern)
let s:debugString_{pattern} = ''
endif
let s:debugString_{pattern} = s:debugString_{pattern}.a:str."\n"
let s:debugString_ = s:debugString_.pattern.' : '.a:str."\n"
endfunction " }}}
" Tex_PrintDebug: prings s:debugString {{{
" Description:
"
function! Tex_PrintDebug(...)
if a:0 > 0
let pattern = a:1
else
let pattern = ''
endif
if exists('s:debugString_'.pattern)
echo s:debugString_{pattern}
endif
endfunction " }}}
" Tex_ClearDebug: clears the s:debugString string {{{
" Description:
"
function! Tex_ClearDebug(...)
if a:0 > 0
let pattern = a:1
else
let pattern = ''
endif
if exists('s:debugString_'.pattern)
let s:debugString_{pattern} = ''
endif
endfunction " }}}
" }}}
" source texproject.vim before other files
exe 'source '.s:path.'/texproject.vim'
" source all the relevant files.
exe 'source '.s:path.'/texmenuconf.vim'
exe 'source '.s:path.'/envmacros.vim'
exe 'source '.s:path.'/elementmacros.vim'
" source utf-8 or plain math menus
if exists("g:Tex_UseUtfMenus") && g:Tex_UseUtfMenus != 0 && has("gui_running")
exe 'source '.s:path.'/mathmacros-utf.vim'
else
exe 'source '.s:path.'/mathmacros.vim'
endif
exe 'source '.s:path.'/multicompile.vim'
exe 'source '.s:path.'/compiler.vim'
exe 'source '.s:path.'/folding.vim'
exe 'source '.s:path.'/templates.vim'
exe 'source '.s:path.'/custommacros.vim'
exe 'source '.s:path.'/bibtex.vim'
if g:Tex_Diacritics != 0
exe 'source '.s:path.'/diacritics.vim'
endif
" ==============================================================================
" Finally set up the folding, options, mappings and quit.
" ==============================================================================
" SetTeXOptions: sets options/mappings for this file. {{{
function! <SID>SetTeXOptions()
" Avoid reinclusion.
if exists('b:doneSetTeXOptions')
return
endif
let b:doneSetTeXOptions = 1
exe 'setlocal dict+='.s:path.'/dictionaries/dictionary'
call Tex_Debug('SetTeXOptions: sourcing maps')
" smart functions
if g:Tex_SmartKeyQuote
inoremap <buffer> <silent> " "<Left><C-R>=<SID>TexQuotes()<CR>
endif
if g:Tex_SmartKeyBS
inoremap <buffer> <silent> <BS> <C-R>=<SID>SmartBS(<SID>SmartBS_pat())<CR>
endif
if g:Tex_SmartKeyDot
inoremap <buffer> <silent> . <C-R>=<SID>SmartDots()<CR>
endif
" This line seems to be necessary to source our compiler/tex.vim file.
" The docs are unclear why this needs to be done even though this file is
" the first compiler plugin in 'runtimepath'.
runtime compiler/tex.vim
endfunction
augroup LatexSuite
au LatexSuite User LatexSuiteFileType
\ call Tex_Debug('main.vim: Catching LatexSuiteFileType event') |
\ call <SID>SetTeXOptions()
augroup END
" }}}
" This variable has to be set before sourcing package files to add names of
" commands to completion
let g:Tex_completion_explorer = ','
" Mappings defined in package files will overwrite all other
exe 'source '.s:path.'/packages.vim'
let &cpo = s:save_cpo
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:nowrap

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<62> 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,232 @@
" ============================================================================
" File: latexm.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,v 1.7 2003/09/03 07:19:13 srinathava Exp $
" ============================================================================
" Tex_CompileMultipleTimes: The main function {{{
" Description: compiles a file multiple times to get cross-references right.
function! Tex_CompileMultipleTimes()
let mainFileName_root = Tex_GetMainFileName(':p:t:r:r')
if mainFileName_root == ''
let mainFileName_root = expand("%:p:t:r")
endif
" First ignore undefined references and the
" "rerun to get cross-references right" message from
" the compiler output.
let origlevel = g:Tex_IgnoreLevel
let origpats = g: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 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)
" first run latex.
echomsg "latex run number : ".(runCount+1)
silent! call Tex_CompileLatex()
" If there are errors in any latex compilation step, immediately
" return.
let _a = @a
redir @a | silent! clist | redir END
let errlist = @a
let @a = _a
if errlist =~ '\d\+\s\f\+:\d\+\serror'
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='makeindex $*.idx'
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 bibtex..."
let temp_mp = &mp | let &mp='bibtex'
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...'
let needToRerun = 1
endif
endif
" check if latex asks us to rerun
if Tex_IsPresentInFile('Rerun to get cross-references right', mainFileName_root.'.log')
echomsg "Need to rerun to get cross-references right..."
let needToRerun = 1
endif
let runCount = runCount + 1
endwhile
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'
endfunction " }}}
" Various helper functions used by Tex_CompileMultipleTimes(). These functions
" use python where available (and allowed) otherwise do it in native vim at
" the cost of some slowdown and a new temporary buffer being added to the
" buffer list.
" Tex_GotoTempFile: open a temp file. reuse from next time on {{{
function! Tex_GotoTempFile()
if !exists('s:tempFileName')
let s:tempFileName = tempname()
endif
exec 'silent! split '.s:tempFileName
endfunction " }}}
" Tex_IsPresentInFile: finds if a string str, is present in filename {{{
if has('python') && g:Tex_UsePython
function! Tex_IsPresentInFile(regexp, filename)
exec 'python isPresentInFile(r"'.a:regexp.'", r"'.a:filename.'")'
return retval
endfunction
else
function! Tex_IsPresentInFile(regexp, filename)
call Tex_GotoTempFile()
silent! 1,$ d _
let _report = &report
let _sc = &sc
set report=9999999 nosc
exec 'silent! 0r! '.g:Tex_CatCmd.' '.a:filename
set nomod
let &report = _report
let &sc = _sc
if search(a:regexp, 'w')
let retval = 1
else
let retval = 0
endif
silent! bd
return retval
endfunction
endif " }}}
" Tex_CatFile: returns the contents of a file in a <NL> seperated string {{{
if has('python') && g:Tex_UsePython
function! Tex_CatFile(filename)
" catFile assigns a value to retval
exec 'python catFile("'.a:filename.'")'
return retval
endfunction
else
function! Tex_CatFile(filename)
if glob(a:filename) == ''
return ''
endif
call Tex_GotoTempFile()
silent! 1,$ d _
let _report = &report
let _sc = &sc
set report=9999999 nosc
exec 'silent! 0r! '.g:Tex_CatCmd.' '.a:filename
set nomod
let _a = @a
silent! normal! ggVG"ay
let retval = @a
let @a = _a
silent! bd
let &report = _report
let &sc = _sc
return retval
endfunction
endif
" }}}
" Define the functions in python if available.
if !has('python') || !g:Tex_UsePython
finish
endif
python <<EOF
import string, vim, re
# catFile: assigns a local variable retval to the contents of a file {{{
def catFile(filename):
try:
file = open(filename)
lines = ''.join(file.readlines())
file.close()
except:
lines = ''
# escape double quotes and backslashes before quoting the string so
# everything passes throught.
vim.command("""let retval = "%s" """ % re.sub(r'"|\\', r'\\\g<0>', lines))
return lines
# }}}
# isPresentInFile: check if regexp is present in the file {{{
def isPresentInFile(regexp, filename):
try:
fp = open(filename)
fcontents = string.join(fp.readlines(), '')
fp.close()
if re.search(regexp, fcontents):
vim.command('let retval = 1')
return 1
else:
vim.command('let retval = 0')
return None
except:
vim.command('let retval = 0')
return None
# }}}
EOF
" vim:fdm=marker:nowrap:noet:ff=unix:ts=4:sw=4

View File

@ -0,0 +1,663 @@
"=============================================================================
" File: packages.vim
" Author: Mikolaj Machowski
" Created: Tue Apr 23 06:00 PM 2002 PST
" CVS: $Id: packages.vim,v 1.39 2003/08/04 20:18:53 mikmach Exp $
"
" 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)
let packnames = globpath(s:path.'/packages','*')
let packnames = substitute(packnames,'\n',',','g')
let packnames = substitute(packnames,'^\|,[^,]*/',',','g')
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)
if filereadable(s:path.'/packages/'.a:package)
exe 'source ' . s:path . '/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
if filereadable(s:path.'/dictionaries/'.a:package)
exe 'setlocal dict+='.s:path.'/dictionaries/'.a:package
if filereadable(s:path.'/dictionaries/'.a:package) && 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") && filereadable(s:path.'/packages/'.a:package)
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 filereadable(s:path.'/dictionaries/'.a:package)
exe 'setlocal dict-='.s:path.'/dictionaries/'.a:package
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.
if Tex_GetMainFileName() != ''
let fname = Tex_GetMainFileName(':p:r')
else
let fname = expand('%:p')
endif
" 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
call Tex_ScanForPackages(fname)
call Tex_Debug('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 ':wincmd f' command in vim to let vim
" search for the file paths for us. We open up a new file, write down the
" name of each package and ask vim to open it for us using the 'gf'
" command.
"
" 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('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(packname.' already scanned', 'pack')
let packname = Tex_Strntok(g:Tex_package_detected, ',', i)
continue
endif
split
call Tex_Debug('silent! find '.packname.'.sty', 'pack')
let thisbufnum = bufnr('%')
exec 'silent! find '.packname.'.sty'
call Tex_Debug('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(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('found custom package '.packpath, 'pack')
call Tex_ScanForPackages(packpath, line('$'), line('$'))
call Tex_Debug('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.
silent! do LatexSuite User LatexSuiteScannedPackages
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 pwd = getcwd()
exe 'cd '.s:path.'/packages'
let packname = Tex_ChooseFromPrompt(
\ "Choose a package: \n" .
\ Tex_CreatePrompt(glob('*'), 3, "\n") .
\ "\nEnter number or filename :",
\ glob('*'), "\n")
exe 'cd '.pwd
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 filereadable(s:path.'/packages/'.packname)
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(fname, ...)
let pos = line('.').' | normal! '.virtcol('.').'|'
let currfile = expand('%:p')
call Tex_Debug('currfile = '.currfile.', a:fname = '.a:fname, 'pack')
let toquit = 0
if a:fname != currfile
call Tex_Debug('splitting file', 'pack')
exe 'split '.a:fname
let toquit = 1
endif
" 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('beginline = '.beginline.', endline = '.endline, '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
" 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'
call Tex_Debug('finding package on '.line('.'), 'pack')
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')
" restore @a
let @a = saveA
endwhile
" 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, '^,', '', '')
" 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('looking for newenvironments in '.bufname('%'), '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
if toquit
q
endif
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)
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 pwd = getcwd()
exec 'cd '.s:path.'/packages'
let suplist = glob("*")
exec 'cd '.pwd
let suplist = substitute(suplist, "\n", ',', 'g').','
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') |
\ call Tex_pack_updateall(0)
augroup END
" vim:fdm=marker:ts=4:sw=4:noet:ff=unix

View File

@ -0,0 +1,310 @@
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,23 @@
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,5 @@
let g:TeX_package_option_acromake = ''
let g:TeX_package_acromake = 'brs:acromake{<++>}{<++>}{<++>}'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,5 @@
let g:TeX_package_option_afterpage = ''
let g:TeX_package_afterpage = 'bra:afterpage'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,7 @@
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,101 @@
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,16 @@
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,7 @@
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,5 @@
let g:TeX_package_option_arabic = ''
let g:TeX_package_arabic = 'bra:arabicnumeral'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,12 @@
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,93 @@
" 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,22 @@
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,5 @@
let g:TeX_package_option_bm = ''
let g:TeX_package_bm = 'bra:bm'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,7 @@
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,5 @@
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,38 @@
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,7 @@
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,15 @@
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,30 @@
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,19 @@
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,27 @@
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,38 @@
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,7 @@
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,31 @@
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,24 @@
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,7 @@
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,5 @@
let g:TeX_package_option_enumerate = ''
let g:TeX_package_enumerate = 'ens:enumerate:[<+prefix+>]'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,14 @@
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,7 @@
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,5 @@
let g:TeX_package_option_everyshi = ''
let g:TeX_package_everyshi = 'bra:EveryShipOut'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,50 @@
" 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,5 @@
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,11 @@
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,7 @@
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,5 @@
let g:TeX_package_option_fn2end = ''
let g:TeX_package_fn2end = 'makeendnotes,theendnotes'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,16 @@
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,88 @@
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,7 @@
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,64 @@
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,5 @@
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,13 @@
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,16 @@
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,8 @@
let g:TeX_package_option_histogram = ''
let g:TeX_package_histogram =
\ 'histogram,'
\.'noverticallines,'
\.'verticallines'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,162 @@
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,16 @@
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,24 @@
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,5 @@
let g:TeX_package_option_letterspace = ''
let g:TeX_package_letterspace = 'nor:letterspace'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,55 @@
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,30 @@
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,5 @@
let g:TeX_package_option_lscape = ''
let g:TeX_package_lscape = 'env:landscape'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,10 @@
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,23 @@
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,5 @@
let g:TeX_package_option_multibox = ''
let g:TeX_package_multibox = 'multimake,multiframe'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,16 @@
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,21 @@
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,5 @@
" 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,13 @@
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,7 @@
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,14 @@
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,29 @@
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,10 @@
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,5 @@
let g:TeX_package_option_plain = ''
let g:TeX_package_plain = 'env:plain'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,11 @@
let g:TeX_package_option_plates = 'figures,onefloatperpage,memoir'
let g:TeX_package_plates =
\ 'env:plate,'
\.'listofplates,'
\.'ProcessPlates,'
\.'bra:setplatename,'
\.'bra:setplatename,'
\.'bra:atBeginPlates'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,160 @@
" Author: Mikolaj Machowski <mikmach@wp.pl>
" (c) Copyright by Mikolaj Machowski 2002-2003
" License: Vim Charityware
" Version: 1.6
"
" Plik jest w kodowaniu iso-8859-2. Je<4A>li chcesz go uzywac w MS-Windows musisz
" go przekonwertowac na cp-1250.
"
" Plik ten jest cz<63><7A>ci<63> vim-latexSuite, ale:
" Nie u<>ywaj<61>cy vim-latexSuite (http://vim-latex.sourceforge.net) mog<6F> wyci<63><69>
" oznaczon<6F> cz<63><7A><EFBFBD>. Reszta mo<6D>e by<62> kopiowana jako osobny plik pod warunkiem
" niezmieniania tej notki i informacji o prawach autorskich.
"
" This file is in iso-8859-2 encoding. If you want to use it in MS-Windows you
" have to convert it to cp-1250.
"
" This file is part of vim-latexSuite but:
" Those who do not use vim-latexSuite (http://vim-latex.sourceforge.net) can
" cut off marked part. Rest of the file can be copied as separate file under
" condition of leaving this notice and information about copyrights unchanged.
" --------8<-------------
" Czesc odpowiedzialna za menu
let g:TeX_package_option_polski =
\'OT1,OT4,T1,QX,plmath,nomathsymbols,MeX,prefixingverb,noprefixingverb'
let g:TeX_package_polski =
\'sbr:Dywiz&Ska,'.
\'nor:dywiz,'.
\'nor:ppauza,'.
\'nor:pauza,'.
\'nor:prefixing,'.
\'nor:nonprefixing,'.
\'nor:PLdateending,'.
\'sbr:Matematyka,'.
\'nor:arccos,'.
\'nor:arcctan,'.
\'nor:arcsin,'.
\'nor:arctan,'.
\'nor:cot,'.
\'nor:ctanh,'.
\'nor:tan,'.
\'nor:tanh,'.
\'bra:arc,'.
\'nor:ctg,'.
\'nor:ctgh,'.
\'nor:tg,'.
\'nor:tgh,'.
\'nor:nwd'
" To wymaga calego pakietu vim-latexSuite - zakomentuj lub wytnij je<6A>li nie
" u<>ywasz (albo go <20>ci<63>gnij z http://vim-latex.sf.net)
function! TPackagePolskiTylda()
call IMAP (" ---", "~---", "tex")
endfunction
call TPackagePolskiTylda()
" --------8<-------------
" Polskie znaki cudzyslowow
TexLet g:Tex_SmartQuoteOpen = ",,"
TexLet g:Tex_SmartQuoteClose = "''"
" Zmodyfikowana i rozwinieta funkcja Andrzeja Ostruszki
" Z dodatkiem od Benjiego Fishera (sprawdzanie sk<73>adni)
"
" Spacja
inoremap <buffer> <silent> <Space> <C-R>=<SID>Tex_polish_space()<CR>
inoremap <buffer> <silent> <CR> <C-R>=<SID>Tex_polish_space()<CR><BS><CR>
" Wymuszenie tyldy
inoremap <buffer> <silent> <S-Space> ~
" Wymuszenie zwyklej spacji
inoremap <buffer> <silent> <C-Space> <Space>
" Latwe przelaczanie sie miedzy magiczna spacja a zwykla
inoremap <buffer> <silent> <F8> <C-R>=<SID>TogglePolishSpace()<CR>
function! s:TogglePolishSpace()
if !exists("b:polishspace")
iunmap <buffer> <Space>
iunmap <buffer> <CR>
let b:polishspace = 1
return ''
else
inoremap <buffer> <silent> <Space> <C-R>=<SID>Tex_polish_space()<CR>
inoremap <buffer> <silent> <CR> <C-R>=<SID>Tex_polish_space()<CR><BS><CR>
unlet b:polishspace
return ''
endif
endfunction
function! s:Tex_polish_space()
"Nic magicznego w matematyce
if synIDattr(synID(line('.'),col('.')-1,0),"name") =~ '^texMath\|^texZone\^texRefZone'
return ' '
else
let s:col = col('.')
let s:linelength = strlen(getline('.')) + 1
" Wstaw tylde po spojnikach
if strpart(getline('.'), col('.') - 3, 2) =~? '^[[:space:]~(\[{]\?[aiouwz]$'
return '~'
" Wstaw tylde po inicjalach - konkretnie po pojedynczych wielkich
" literach i kropce. Obs<62>uguje poprawnie wiekszosc sytuacji.
elseif strpart(getline('.'), col('.') - 4, 3) =~? '^[[:space:]~(\[{]\?\u\.$'
return '~'
" Wstaw tylde po tytulach, skrotach bibliograficznych, podpisach
elseif strpart(getline('.'), col('.') - 9, 8) =~? '\(\s\|^\|\~\)\(str\.\|ryc\.\|rys\.\|tab\.\|art\.\|vol\.\|nr\|tabl\.\|rozdz\.\|ss\.\|s\.\|t\.\|z\.\|sir\|prof\.\|hab\.\|red\.\|min\.\|gen\.\|kpt\.\|przew\.\|p<>k\|mjr\|mgr\|bp\|ks\.\|o\+\.\|<7C>w\.\|dr\)$'
return '~'
" Wstaw tylde miedzy rokiem, wiekiem, a odpowiednim skrotem
elseif strpart(getline('.'), col('.') - 8, 7) =~? '[0-9IVXLCM]\s\+\(r\|w\)\.[^a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\{-}$'
s/[0-9IVXLCM]\zs\s\+\ze\(w\|r\)\.[^a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\{-}\%#/\~/ei
exe 'normal '.s:col.'|'
if s:col == s:linelength
startinsert!
else
startinsert
endif
return ' '
" Wstaw tylde miedzy liczba a miara, itd.
elseif strpart(getline('.'), col('.') - 10, 9) =~? '\(\d\|mln\|mld\|tys\.\)\s\+\(z<>\|gr\|ha\|t\|mies\|godz\|min\|sek\|cm\|km\|mln\|mld\|tys\.\)[^a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\{-}$'
s/\(\d\|mln\|mld\|tys\.\)\zs\s\+\ze\(z<>\|gr\|ha\|m\|t\|mies\|godz\|min\|sek\|cm\|km\|mln\|mld\|tys\.\)[^a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\{-}\%#/\~/ei
exe 'normal '.s:col.'|'
if s:col == s:linelength
startinsert!
else
startinsert
endif
return ' '
" Rozwin myslnik w zbitkach w '\dywiz ':
" bialo-czerwony -> bialo\dywiz czerwony
elseif strpart(getline('.'), col('.') - 20, 19) =~? '[a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]-[a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\{-}[^a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\{-}$'
s/[a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\zs-\ze[a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\{-}[^a-z<><7A><EFBFBD><EFBFBD><EFBFBD>󶿼]\{-}\%#/\\dywiz /ei
let colb = s:col + 6
exe 'normal '.colb.'|'
if s:col == s:linelength
startinsert!
else
startinsert
endif
return ' '
" Rozwin '--' miedzy liczbami w '\ppauza ':
" 39--45 -> 39\ppauza 45
elseif strpart(getline('.'), col('.') - 10, 9) =~? '[0-9IVXLCM]--[0-9IVXLCM]\{-}[^0-9IVXLCM]\{-}$'
s/[0-9IVXLCM]\zs--\ze[0-9IVXLCM]\{-}[^0-9IVXLCM]\{-}\%#/\\ppauza /ei
let colb = s:col + 6
exe 'normal '.colb.'|'
if s:col == s:linelength
startinsert!
else
startinsert
endif
return ' '
endif
" Tu koncz komentowanie ostatniej sekcji
endif
return " "
endfunction
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,22 @@
let g:TeX_package_option_psgo = ''
let g:TeX_package_psgo =
\ 'env:psgogoard,'
\.'env:psgoboard*,'
\.'brs:stone{<+color+>}{<+letter+>}{<+number+>},'
\.'brs:stone[<+marker+>]{<+color+>}{<+letter+>}{<+number+>},'
\.'brs:move{<+letter+>}{<+number+>},'
\.'brs:move*{<+letter+>}{<+number+>},'
\.'brs:goline{<+letter1+>}{<+number1+>}{<+letter2+>}{<+number2+>},'
\.'brs:goarrow{<+letter1+>}{<+number1+>}{<+letter2+>}{<+number2+>},'
\.'sbr:Markers,'
\.'brs:markpos{<+marker+>}{<+letter+>}{<+number+>},'
\.'markma,'
\.'marktr,'
\.'markcr,'
\.'marksq,'
\.'bra:marklb,'
\.'marksl,'
\.'markdd'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,15 @@
let g:TeX_package_option_schedule = ''
let g:TeX_package_schedule =
\ 'ens:schedule:[<+title+>],'
\.'bra:CellHeight,'
\.'bra:CellWidth,'
\.'bra:TimeRange,'
\.'bra:SubUnits,'
\.'bra:BeginOn,'
\.'bra:TextSize,'
\.'nor:FiveDay,'
\.'nor:SevenDay,'
\.'brs:NewAppointment{<+name+>}{<+bg+>}{<+fg+>}'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,7 @@
let g:TeX_package_option_textfit = ''
let g:TeX_package_textfit =
\ 'brd:scaletowidth,'
\.'brd:scaletoheight'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,5 @@
let g:TeX_package_option_times = ''
let g:TeX_package_times = ''
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,359 @@
let g:TeX_package_option_tipa =
\ 'T1,'
\.'noenc,'
\.'tone,'
\.'extra,'
\.'safe'
let g:TeX_package_tipa =
\ 'sbr:Common,'
\.'bra:textipa,'
\.'env:IPA,'
\.'tipaencoding,'
\.'bra:super,'
\.'nor:ipabar,'
\.'brd:tipalowaraccent,'
\.'brd:tipaupperaccent,'
\.'brd:tipaLowaraccent,'
\.'brd:tipaUpperaccent,'
\.'brd:ipaclap,'
\.'sbr:VowelsandConsonants,'
\.'nor:textturna,'
\.'nor:textrhooka,'
\.'nor:textlhookfour,'
\.'nor:textscripta,'
\.'nor:textturnscripta,'
\.'nor:textinvscripta,'
\.'ae,'
\.'nor:textaolig,'
\.'nor:textsca,'
\.'nor:textinvsca,'
\.'nor:textscaolig,'
\.'nor:textturnv,'
\.'nor:textsoftsign,'
\.'nor:texthardsign,'
\.'nor:texthtb,'
\.'nor:textscb,'
\.'nor:textcrb,'
\.'nor:textbarb,'
\.'nor:textbeta,'
\.'nor:textbarc,'
\.'nor:texthtc,'
\.'bra:v,'
\.'bra:c,'
\.'nor:textctc,'
\.'nor:textstretchc,'
\.'nor:textstretchcvar,'
\.'nor:textctstretchc,'
\.'nor:textctstretchcvar,'
\.'nor:textcrd,'
\.'nor:textbard,'
\.'nor:texthtd,'
\.'nor:textrtaild,'
\.'nor:texthtrtaild,'
\.'nor:textctd,'
\.'nor:textfrhookd,'
\.'nor:textfrhookdvar,'
\.'nor:textdblig,'
\.'nor:textdzlig,'
\.'nor:textdctzlig,'
\.'nor:textdyoghlig,'
\.'nor:textctdctzlig,'
\.'nor:textscdelta,'
\.'nor:dh,'
\.'nor:textrhooke,'
\.'nor:textschwa,'
\.'nor:textrhookschwa,'
\.'nor:textreve,'
\.'nor:textsce,'
\.'nor:textepsilon,'
\.'nor:textrhookepsilon,'
\.'nor:textcloseepsilon,'
\.'nor:textrevepsilon,'
\.'nor:textrhookrevepsilon,'
\.'nor:textcloserevepsilon,'
\.'nor:textscf,'
\.'nor:textscriptg,'
\.'nor:textbarg,'
\.'nor:textcrg,'
\.'nor:texthtg,'
\.'nor:textg,'
\.'nor:textscg,'
\.'nor:texthtscg,'
\.'nor:textgamma,'
\.'nor:textgrgamma,'
\.'nor:textfrtailgamma,'
\.'nor:textbktailgamma,'
\.'nor:textbabygamma,'
\.'nor:textramshorns,'
\.'nor:texthvlig,'
\.'nor:textcrh,'
\.'nor:texthth,'
\.'nor:textrtailhth,'
\.'nor:textheng,'
\.'nor:texththeng,'
\.'nor:textturnh,'
\.'nor:textsch,'
\.'nor:i,'
\.'nor:textbari,'
\.'nor:textiota,'
\.'nor:textlhti,'
\.'nor:textlhtlongi,'
\.'nor:textvibyi,'
\.'nor:textraisevibyi,'
\.'nor:textsci,'
\.'nor:j,'
\.'nor:textctj,'
\.'nor:textctjvar,'
\.'nor:textscj,'
\.'bra:v,'
\.'nor:textbardotlessj,'
\.'nor:textObardotlessj,'
\.'nor:texthtbardotlessj,'
\.'nor:texthtbardotlessjvar,'
\.'nor:texthtk,'
\.'nor:textturnk,'
\.'nor:textsck,'
\.'nor:textturnsck,'
\.'nor:textltilde,'
\.'nor:textbarl,'
\.'nor:textbeltl,'
\.'nor:textrtaill,'
\.'nor:textlyoghlig,'
\.'nor:textOlyoghlig,'
\.'nor:textscl,'
\.'nor:textrevscl,'
\.'nor:textlambda,'
\.'nor:textcrlambda,'
\.'nor:textltailm,'
\.'nor:textturnm,'
\.'nor:textturnmrleg,'
\.'nor:texthmlig,'
\.'nor:textscm,'
\.'nor:textnrleg,'
\.'~,'
\.'nor:textltailn,'
\.'nor:textfrbarn,'
\.'nor:ng,'
\.'nor:textrtailn,'
\.'nor:textctn,'
\.'nor:textnrleg,'
\.'nor:textscn,'
\.'nor:textbullseye,'
\.'nor:textObullseye,'
\.'nor:textbaro,'
\.'nor:o,'
\.'nor:textfemale,'
\.'nor:textuncrfemale,'
\.'nor:oe,'
\.'nor:textscoelig,'
\.'nor:textopeno,'
\.'nor:textrhookopeno,'
\.'nor:textturncelig,'
\.'nor:textomega,'
\.'nor:textinvomega,'
\.'nor:textscomega,'
\.'nor:textcloseomega,'
\.'nor:textlhookp,'
\.'nor:textscp,'
\.'nor:textwynn,'
\.'nor:textthorn,'
\.'nor:textthornvari,'
\.'nor:textthornvarii,'
\.'nor:textthornvariii,'
\.'nor:textthornvariv,'
\.'nor:texthtp,'
\.'nor:textphi,'
\.'nor:texthtq,'
\.'nor:textqplig,'
\.'nor:textscq,'
\.'nor:textfishhookr,'
\.'nor:textlonglegr,'
\.'nor:textrtailr,'
\.'nor:textturnr,'
\.'nor:textturnrrtail,'
\.'nor:textturnlonglegr,'
\.'nor:textscr,'
\.'nor:textinvscr,'
\.'nor:textrevscr,'
\.'bra:v,'
\.'nor:textrtails,'
\.'nor:textesh,'
\.'nor:textdoublebaresh,'
\.'nor:textctesh,'
\.'nor:textlooptoprevesh,'
\.'nor:texthtt,'
\.'nor:textlhookt,'
\.'nor:textrtailt,'
\.'nor:textfrhookt,'
\.'nor:textctturnt,'
\.'nor:texttctclig,'
\.'nor:texttslig,'
\.'nor:textteshlig,'
\.'nor:textturnt,'
\.'nor:textctt,'
\.'nor:textcttctclig,'
\.'nor:texttheta,'
\.'nor:textbaru,'
\.'nor:textupsilon,'
\.'nor:textscu,'
\.'nor:textturnscu,'
\.'nor:textscriptv,'
\.'nor:textturnw,'
\.'nor:textchi,'
\.'nor:textturny,'
\.'nor:textscy,'
\.'nor:textlhtlongy,'
\.'nor:textvibyy,'
\.'nor:textcommatailz,'
\.'bra:v,'
\.'nor:textctz,'
\.'nor:textrtailz,'
\.'nor:textcrtwo,'
\.'nor:textturntwo,'
\.'nor:textyogh,'
\.'nor:textbenttailyogh,'
\.'nor:textrevyogh,'
\.'nor:textctyogh,'
\.'nor:textturnthree,'
\.'nor:textglotstop,'
\.'nor:textraiseglotstop,'
\.'nor:textbarglotstop,'
\.'nor:textinvglotstop,'
\.'nor:textcrinvglotstop,'
\.'nor:textctinvglotstop,'
\.'nor:textrevglotstop,'
\.'nor:textturnglotstop,'
\.'nor:textbarrevglotstop,'
\.'nor:textpipe,'
\.'nor:textpipevar,'
\.'nor:textdoublebarpipe,'
\.'nor:textdoublebarpipevar,'
\.'nor:textdoublepipevar,'
\.'nor:textdoublepipe,'
\.'nor:textdoublebarslash,'
\.'sbr:Suprasegmentals,'
\.'nor:textprimstress,'
\.'nor:textsecstress,'
\.'nor:textlengthmark,'
\.'nor:texthalflength,'
\.'nor:textvertline,'
\.'nor:textdoublevertline,'
\.'bra:textbottomtiebar,'
\.'nor:textdownstep,'
\.'nor:textupstep,'
\.'nor:textglobfall,'
\.'nor:textglobrise,'
\.'nor:textspleftarrow,'
\.'nor:textdownfullarrow,'
\.'nor:textupfullarrow,'
\.'nor:textsubrightarrow,'
\.'nor:textsubdoublearrow,'
\.'sbr:AccentsandDiacritics,'
\.'`,'
\."',"
\.'^,'
\.'~,'
\.'",'
\.'bra:H,'
\.'bra:r,'
\.'bra:v,'
\.'bra:u,'
\.'=,'
\.'.,'
\.'bra:c,'
\.'bra:textpolhook,'
\.'nor:textrevpolhook{o,'
\.'bra:textdoublegrave,'
\.'bra:textsubgrave,'
\.'bra:textsubacute,'
\.'bra:textsubcircum,'
\.'bra:textroundcap,'
\.'bra:textacutemacron,'
\.'bra:textgravemacron,'
\.'bra:textvbaraccent,'
\.'bra:textdoublevbaraccent,'
\.'bra:textgravedot,'
\.'bra:textdotacute,'
\.'bra:textcircumdot,'
\.'bra:texttildedot,'
\.'bra:textbrevemacron,'
\.'bra:textringmacron,'
\.'bra:textacutewedge,'
\.'bra:textdotbreve,'
\.'bra:textsubbridge,'
\.'bra:textinvsubbridge,'
\.'sbr:SubscriptSquare,'
\.'bra:textsubrhalfring,'
\.'bra:textsublhalfring,'
\.'bra:textsubw,'
\.'bra:textoverw,'
\.'bra:textseagull,'
\.'bra:textovercross,'
\.'bra:textsubplus,'
\.'bra:textraising,'
\.'bra:textlowering,'
\.'bra:textadvancing,'
\.'bra:textretracting,'
\.'bra:textsubtilde,'
\.'bra:textsubumlaut,'
\.'bra:textsubring,'
\.'bra:textsubwedge,'
\.'bra:textsubbar,'
\.'bra:textsubdot,'
\.'bra:textsubarch,'
\.'bra:textsyllabic,'
\.'bra:textsuperimposetilde,'
\.'nor:textcorner,'
\.'nor:textopencorner,'
\.'nor:textrhoticity,'
\.'nor:textceltpal,'
\.'nor:textlptr,'
\.'nor:textrptr,'
\.'nor:textrectangle,'
\.'nor:textretractingvar,'
\.'bra:texttoptiebar,'
\.'nor:textrevapostrophe,'
\.'nor:texthooktop,'
\.'nor:textrthook,'
\.'nor:textrthooklong,'
\.'nor:textpalhook,'
\.'nor:textpalhooklong,'
\.'nor:textpalhookvar,'
\.'bra:textsuperscript,'
\.'sbr:ToneLetters,'
\.'bra:tone,'
\.'bra:stone,'
\.'bra:rtone,'
\.'nor:tone{55},'
\.'nor:tone{44},'
\.'nor:tone{33},'
\.'nor:tone{22},'
\.'nor:tone{11},'
\.'nor:tone{51},'
\.'nor:tone{15},'
\.'nor:tone{45},'
\.'nor:tone{12},'
\.'nor:tone{454},'
\.'sbr:DiacriticsExtIPA,'
\.'bra:spreadlips,'
\.'bra:overbridge,'
\.'bra:bibridge,'
\.'bra:subdoublebar,'
\.'bra:subdoublevert,'
\.'bra:subcorner,'
\.'bra:whistle,'
\.'bra:sliding,'
\.'bra:crtilde,'
\.'bra:dottedtilde,'
\.'bra:doubletilde,'
\.'bra:partvoiceless,'
\.'bra:inipartvoiceless,'
\.'bra:finpartvoiceless,'
\.'bra:partvoice,'
\.'bra:inipartvoice,'
\.'bra:finpartvoice,'
\.'bra:sublptr,'
\.'bra:subrptr'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,16 @@
let g:TeX_package_option_ulem =
\ 'normalem,'
\.'ULforem,'
\.'normalbf,'
\.'UWforbf'
let g:TeX_package_ulem =
\ 'bra:uwave,'
\.'bra:uline,'
\.'bra:uuline,'
\.'bra:sout,'
\.'bra:xout,'
\.'ULthickness,'
\.'ULdepth'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,16 @@
let g:TeX_package_option_url =
\ 'hyphens,'
\.'obeyspaces,'
\.'spaces,'
\.'T1'
let g:TeX_package_url =
\ 'bra:urlstyle,'
\.'bra:url,'
\.'bra:path,'
\.'bra:urldef'
syn region texZone start="\\url\z([^ \ta-zA-Z]\)" end="\z1\|%stopzone\>"
syn region texZone start="\\path\z([^ \ta-zA-Z]\)" end="\z1\|%stopzone\>"
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,13 @@
let g:TeX_package_option_verbatim = ''
let g:TeX_package_verbatim =
\ 'env:comment,'
\.'env:verbatim,'
\.'env:verbatim*,'
\.'bra:verbatiminput,'
\.'bra:verbatiminput'
syn region texZone start="\\begin{comment}" end="\\end{comment}\|%stopzone\>" fold
syn region texZone start="\\begin{verbatim}" end="\\end{verbatim}\|%stopzone\>" fold
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,7 @@
let g:TeX_package_option_version = ''
let g:TeX_package_version =
\ 'bra:includeversion,'
\.'bra:excludeversion'
" vim:ft=vim:ff=unix:

View File

@ -0,0 +1,11 @@
" Project name
" let g:projName = ''
"
" Project files
" let g:projFiles = ''
" Vim settings/maps/abbrs specific for this project
" Modeline for this file
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:ft=vim

View File

@ -0,0 +1,119 @@
"=============================================================================
" File: templates.vim
" Author: Gergely Kontra
" (minor modifications by Srinath Avadhanula)
" Version: 1.0
" Created: Tue Apr 23 05:00 PM 2002 PST
"
" Description: functions for handling templates in latex-suite/templates
" directory.
"=============================================================================
let s:path = expand("<sfile>:p:h")
" SetTemplateMenu: sets up the menu for templates {{{
function! <SID>SetTemplateMenu()
let flist = glob(s:path."/templates/*")
let i = 1
while 1
let fname = Tex_Strntok(flist, "\n", i)
if fname == ''
break
endif
let fnameshort = fnamemodify(fname, ':p:t:r')
if fnameshort == ''
let i = i + 1
continue
endif
exe "amenu ".g:Tex_TemplatesMenuLocation."&".i.":<Tab>".fnameshort." ".
\":call <SID>ReadTemplate('".fnameshort."')<CR>".
\":call <SID>ProcessTemplate()<CR>:0<CR>".
\"i<C-r>=IMAP_Jumpfunc('', 1)<CR>"
let i = i + 1
endwhile
endfunction
if g:Tex_Menus
call <SID>SetTemplateMenu()
endif
" }}}
" ReadTemplate: reads in the template file from the template directory. {{{
function! <SID>ReadTemplate(...)
if a:0 > 0
let filename = a:1.'.*'
else
let pwd = getcwd()
exe 'cd '.s:path.'/templates'
let filename =
\ Tex_ChooseFromPrompt("Choose a template file:\n" .
\ Tex_CreatePrompt(glob('*'), 2, "\n") .
\ "\nEnter number or name of file :",
\ glob('*'), "\n")
exe 'cd '.pwd
endif
let fname = glob(s:path."/templates/".filename)
silent! exe "0read ".fname
" The first line of the file contains the specifications of what the
" placeholder characters and the other special characters are.
let pattern = '\v(\S+)\t(\S+)\t(\S+)\t(\S+)'
let s:phsTemp = substitute(getline(1), pattern, '\1', '')
let s:pheTemp = substitute(getline(1), pattern, '\2', '')
let s:exeTemp = substitute(getline(1), pattern, '\3', '')
let s:comTemp = substitute(getline(1), pattern, '\4', '')
call Tex_Debug('phs = '.s:phsTemp.', phe = '.s:pheTemp.', exe = '.s:exeTemp.', com = '.s:comTemp)
" delete the first line into ze blackhole.
0 d _
call Tex_pack_updateall(1)
endfunction
" }}}
" ProcessTemplate: processes the special characters in template file. {{{
" This implementation follows from Gergely Kontra's
" mu-template.vim
" http://vim.sourceforge.net/scripts/script.php?script_id=222
function! <SID>ProcessTemplate()
if exists('s:phsTemp') && s:phsTemp != ''
exec 'silent! %s/^'.s:comTemp.'\(\_.\{-}\)'.s:comTemp.'$/\=<SID>Compute(submatch(1))/ge'
exec 'silent! %s/'.s:exeTemp.'\(.\{-}\)'.s:exeTemp.'/\=<SID>Exec(submatch(1))/ge'
exec 'silent! g/'.s:comTemp.s:comTemp.'/d'
let phsUser = IMAP_GetPlaceHolderStart()
let pheUser = IMAP_GetPlaceHolderEnd()
exec 'silent! %s/'.s:phsTemp.'\(.\{-}\)'.s:pheTemp.'/'.phsUser.'\1'.pheUser.'/ge'
" A function only puts one item into the search history...
call Tex_CleanSearchHistory()
endif
endfunction
function! <SID>Exec(what)
exec 'return '.a:what
endfunction
" Back-Door to trojans !!!
function! <SID>Compute(what)
exe a:what
if exists('s:comTemp')
return s:comTemp.s:comTemp
else
return ''
endif
endfunction
" }}}
com! -nargs=? TTemplate :call <SID>ReadTemplate(<f-args>)
\| :call <SID>ProcessTemplate()
\| :0
\| :exec "normal! i\<C-r>=IMAP_Jumpfunc('', 1)\<CR>"
\| :startinsert
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4

View File

@ -0,0 +1,146 @@
<+ +> !comp! !exe!
%% Based on <bare_jrnl.tex> in the ieee package available from CTAN,
%% I have changed the options so that most useful ones are clubbed together,
%% Have a look at <bare_jrnl.tex> to understand the function of each package.
%% This code is offered as-is - no warranty - user assumes all risk.
%% Free to use, distribute and modify.
% *** Authors should verify (and, if needed, correct) their LaTeX system ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. IEEE's font choices can trigger bugs that do ***
% *** not appear when using other class files. ***
% Testflow can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/testflow
% File: !comp!expand("%:p:t")!comp!
% Created: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp!
% Last Change: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp!
%
\documentclass[journal]{IEEEtran}
\begin{document}
\usepackage{cite, graphicx, subfigure, amsmath}
\interdisplaylinepenalty=2500
% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex). ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% correct bad hyphenation here
\hyphenation{<+op-tical net-works semi-conduc-tor+>}
\begin{document}
%
% paper title
\title{<+Skeleton of IEEEtran.cls for Journals in VIM-Latex+>}
%
%
% author names and IEEE memberships
% note positions of commas and nonbreaking spaces ( ~ ) LaTeX will not break
% a structure at a ~ so this keeps an author's name from being broken across
% two lines.
% use \thanks{} to gain access to the first footnote area
% a separate \thanks must be used for each paragraph as LaTeX2e's \thanks
% was not built to handle multiple paragraphs
\author{<+Sumit Bhardwaj+>~\IEEEmembership{<+Student~Member,~IEEE,+>}
<+John~Doe+>,~\IEEEmembership{<+Fellow,~OSA,+>}
<+and~Jane~Doe,+>~\IEEEmembership{<+Life~Fellow,~IEEE+>}% <-this % stops a space
\thanks{<+Manuscript received January 20, 2002; revised August 13, 2002.
This work was supported by the IEEE.+>}% <-this % stops a space
\thanks{<+S. Bhardwaj is with the Indian Institute of Technology, Delhi.+>}}
%
% The paper headers
\markboth{<+Journal of VIM-\LaTeX\ Class Files,~Vol.~1, No.~8,~August~2002+>}{
<+Bhardwaj \MakeLowercase{\textit{et al.}+>}: <+Skeleton of IEEEtran.cls for Journals in VIM-Latex+>}
% The only time the second header will appear is for the odd numbered pages
% after the title page when using the twoside option.
% If you want to put a publisher's ID mark on the page
% (can leave text blank if you just want to see how the
% text height on the first page will be reduced by IEEE)
%\pubid{0000--0000/00\$00.00~\copyright~2002 IEEE}
% use only for invited papers
%\specialpapernotice{(Invited Paper)}
% make the title area
\maketitle
\begin{abstract}
<+The abstract goes here.+>
\end{abstract}
\begin{keywords}
<+IEEEtran, journal, \LaTeX, paper, template, VIM, VIM-\LaTeX+>.
\end{keywords}
\section{Introduction}
\PARstart{<+T+>}{<+his+>} <+demo file is intended to serve as a ``starter file"
for IEEE journal papers produced under \LaTeX\ using IEEEtran.cls version
1.6 and later.+>
% You must have at least 2 lines in the paragraph with the drop letter
% (should never be an issue)
<+May all your publication endeavors be successful.+>
% needed in second column of first page if using \pubid
%\pubidadjcol
% trigger a \newpage just before the given reference
% number - used to balance the columns on the last page
% adjust value as needed - may need to be readjusted if
% the document is modified later
%\IEEEtriggeratref{8}
% The "triggered" command can be changed if desired:
%\IEEEtriggercmd{\enlargethispage{-5in}}
% references section
%\bibliographystyle{IEEEtran.bst}
%\bibliography{IEEEabrv,../bib/paper}
\begin{thebibliography}{1}
\bibitem{IEEEhowto:kopka}
H.~Kopka and P.~W. Daly, \emph{A Guide to {\LaTeX}}, 3rd~ed.\hskip 1em plus
0.5em minus 0.4em\relax Harlow, England: Addison-Wesley, 1999.
\end{thebibliography}
% biography section
%
\begin{biography}{Sumit Bhardwaj}
Biography text here.
\end{biography}
% if you will not have a photo
\begin{biographynophoto}{John Doe}
Biography text here.
\end{biographynophoto}
% insert where needed to balance the two columns on the last page
%\newpage
\begin{biographynophoto}{Jane Doe}
Biography text here.
\end{biographynophoto}
% You can push biographies down or up by placing
% a \vfill before or after them. The appropriate
% use of \vfill depends on what kind of text is
% on the last page and whether or not the columns
% are being equalized.
%\vfill
% Can be used to pull up biographies so that the bottom of the last one
% is flush with the other column.
%\enlargethispage{-5in}
\end{document}

View File

@ -0,0 +1,9 @@
<+ +> !comp! !exe!
% File: !comp!expand("%:p:t")!comp!
% Created: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp!
% Last Change: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp!
%
\documentclass[a4paper]{article}
\begin{document}
<++>
\end{document}

View File

@ -0,0 +1,9 @@
<+ +> !comp! !exe!
% File: !comp!expand("%")!comp!
% Created: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp!
% Last Change: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp!
%
\documentclass[a4paper]{report}
\begin{document}
<++>
\end{document}

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