Hi,

with this patch, envmacros.vim allows more customizations.

1.
let g:Tex_EnvLabelprefix_equation = "eq:"
=> labels in equations have the prefix eq:

this works for:
figure,table,theorem,definition,lemma,proposition,corollary,assumption,remark,equation,eqnarray,align,multline


2.
let g:Tex_EnvEndWithCR = 0
=>
completed environments end with:

\end{env-type}
<++>

instead of

\end{env-type}<++>

This saves one CR ;)


3.
let g:Tex_LabelAfterContent = 0
=>
Put the label before the content of an environment, e.g.

\begin{equation}
        \label{eq:<++>}
        <++>
\end{equation}
<++>


Feel free to comment.
--- ./ftplugin/latex-suite/envmacros.vim        2010-12-22 09:59:05.000000000 
+0100
+++ ./ftplugin/latex-suite/envmacros.vim        2011-02-22 13:34:15.000000000 
+0100
@@ -2,7 +2,6 @@
 "           File: envmacros.vim
 "      Author: Mikolaj Machowski
 "     Created: Tue Apr 23 08:00 PM 2002 PST
-"  CVS Header: $Id: envmacros.vim 1101 2010-01-28 23:30:56Z tmaas $
 "  Description: mappings/menus for environments. 
 "=============================================================================
 
@@ -15,15 +14,25 @@
 nmap <silent> <script> <plug> i
 imap <silent> <script> <C-o><plug> <Nop>
 
+if Tex_GetVarValue('Tex_EnvEndWithCR')
+       let s:end_with_cr = "\<CR>"
+else
+       let s:end_with_cr = ""
+end
+
+" The prefix of labels of figures
+let s:labelprefix_figure = Tex_GetVarValue("Tex_EnvLabelprefix_{'figure'}")
+let s:labelprefix_table = Tex_GetVarValue("Tex_EnvLabelprefix_{'table'}")
+
 " Define environments for IMAP evaluation " {{{
-let s:figure =     
"\\begin{figure}[<+htpb+>]\<cr>\\begin{center}\<cr>\\psfig{figure=<+eps 
file+>}\<cr>\\end{center}\<cr>\\caption{<+caption 
text+>}\<cr>\\label{fig:<+label+>}\<cr>\\end{figure}<++>"
-let s:figure_graphicx =    
"\\begin{figure}[<+htpb+>]\<cr>\\begin{center}\<cr>\\includegraphics{<+file+>}\<cr>\\end{center}\<cr>\\caption{<+caption
 text+>}\<cr>\\label{fig:<+label+>}\<cr>\\end{figure}<++>"
-let s:minipage =   
"\\begin{minipage}[<+tb+>]{<+width+>}\<cr><++>\<cr>\\end{minipage}<++>"
-let s:picture =    "\\begin{picture}(<+width+>, 
<+height+>)(<+xoff+>,<+yoff+>)\<cr>\\put(<+xoff+>,<+yoff+>){\\framebox(<++>,<++>){<++>}}\<cr>\\end{picture}<++>"
-let s:list =       "\\begin{list}{<+label+>}{<+spacing+>}\<cr>\\item 
<++>\<cr>\\end{list}<++>"
-let s:table =      
"\\begin{table}\<cr>\\centering\<cr>\\begin{tabular}{<+dimensions+>}\<cr><++>\<cr>\\end{tabular}\<cr>\\caption{<+Caption
 text+>}\<cr>\\label{tab:<+label+>}\<cr>\\end{table}<++>"
+let s:figure =     
"\\begin{figure}[<+htpb+>]\<cr>\\centering\<cr>\\psfig{figure=<+eps 
file+>}\<cr>\\caption{<+caption text+>}\<cr>\\label{" . s:labelprefix_figure . 
"<+label+>}\<cr>\\end{figure}" . s:end_with_cr . "<++>"
+let s:figure_graphicx =    
"\\begin{figure}[<+htpb+>]\<cr>\\centering\<cr>\\includegraphics{<+file+>}\<cr>\\caption{<+caption
 text+>}\<cr>\\label{" . s:labelprefix_figure . "<+label+>}\<cr>\\end{figure}" 
. s:end_with_cr . "<++>"
+let s:minipage =   
"\\begin{minipage}[<+tb+>]{<+width+>}\<cr><++>\<cr>\\end{minipage}" . 
s:end_with_cr . "<++>"
+let s:picture =    "\\begin{picture}(<+width+>, 
<+height+>)(<+xoff+>,<+yoff+>)\<cr>\\put(<+xoff+>,<+yoff+>){\\framebox(<++>,<++>){<++>}}\<cr>\\end{picture}"
 . s:end_with_cr . "<++>"
+let s:list =       "\\begin{list}{<+label+>}{<+spacing+>}\<cr>\\item 
<++>\<cr>\\end{list}" . s:end_with_cr . "<++>"
+let s:table =      
"\\begin{table}\<cr>\\centering\<cr>\\begin{tabular}{<+dimensions+>}\<cr><++>\<cr>\\end{tabular}\<cr>\\caption{<+Caption
 text+>}\<cr>\\label{" . s:labelprefix_table . "<+label+>}\<cr>\\end{table}" . 
s:end_with_cr . "<++>"
 let s:array =      
"\\left<++>\<cr>\\begin{array}{<+dimension+>}\<cr><+elements+>\<cr>\\end{array}\<cr>\\right<++>"
-let s:description 
="\\begin{description}\<cr>\\item[<+label+>]<++>\<cr>\\end{description}<++>"
+let s:description 
="\\begin{description}\<cr>\\item[<+label+>]<++>\<cr>\\end{description}" . 
s:end_with_cr . "<++>"
 let s:document =   
"\\documentclass[<+options+>]{<+class+>}\<cr>\<cr>\\begin{document}\<cr><++>\<cr>\\end{document}"
 let s:tabular = 
"\\begin{tabular}[<+hbtp+>]{<+format+>}\<cr><++>\<cr>\\end{tabular}"
 let s:tabular_star = 
"\\begin{tabular*}[<+hbtp+>]{<+format+>}\<cr><++>\<cr>\\end{tabular*}"
@@ -135,14 +144,14 @@
 
        if g:Tex_SectionMaps && !exists('s:doneOnce')
                exe 'vnoremap '.vlhs.' '.vrhs
-               call IMAP (a:lhs, "\\".a:name.'{<++>}<++>', 'tex')
+               call IMAP (a:lhs, "\\".a:name.'{<++>}' . s:end_with_cr . 
'<++>', 'tex')
        endif
 
        if g:Tex_Menus && g:Tex_SectionMenus
                let location = 
g:Tex_EnvMenuLocation.'Sections.'.a:name.'<tab>'.a:lhs.'\ ('.vlhs.')'
                let advlocation = 
g:Tex_EnvMenuLocation.'Sections.Advanced.'.a:name
 
-               let irhs = 
"\<C-r>=IMAP_PutTextWithMovement('\\".a:name."{<++>}<++>')\<CR>"
+               let irhs = 
"\<C-r>=IMAP_PutTextWithMovement('\\".a:name."{<++>}" . s:end_with_cr . 
"<++>')\<CR>"
 
                let advirhs = "\<C-r>=Tex_InsSecAdv('".a:name."')\<CR>"
                let advvrhs = "\<C-\\>\<C-N>:call 
Tex_VisSecAdv('".a:name."')\<CR>"
@@ -224,7 +233,10 @@
 call s:Tex_EnvMacros('EEA', '&Math.', 'eqnarray')
 call s:Tex_EnvMacros('',    '&Math.', 'eqnarray*')
 call s:Tex_EnvMacros('EEQ', '&Math.', 'equation')
+call s:Tex_EnvMacros('EQS', '&Math.', 'equation*')
 call s:Tex_EnvMacros('EMA', '&Math.', 'math')
+call s:Tex_EnvMacros('EAL', '&Math.', 'align')
+call s:Tex_EnvMacros('EAS', '&Math.', 'align*')
 " }}}
 " Structure {{{
 call s:Tex_SpecialMacros('EAR', 'Math.', 'array', s:array)
@@ -284,7 +296,7 @@
 " 
============================================================================== 
 " Tex_itemize: {{{
 function! Tex_itemize(env)
-       return IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr>\\item 
<++>\<cr>\\end{".a:env."}<++>")
+       return IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr>\\item 
<++>\<cr>\\end{".a:env."}" . s:end_with_cr . "<++>")
 endfunction
 " }}} 
 " Tex_description: {{{
@@ -294,7 +306,7 @@
                if itlabel != ''
                        let itlabel = '['.itlabel.']'
                endif
-               return 
IMAP_PutTextWithMovement("\\begin{description}\<cr>\\item".itlabel." 
<++>\<cr>\\end{description}<++>")
+               return 
IMAP_PutTextWithMovement("\\begin{description}\<cr>\\item".itlabel." 
<++>\<cr>\\end{description}" . s:end_with_cr . "<++>")
        else
                return IMAP_PutTextWithMovement(s:description)
        endif
@@ -323,22 +335,16 @@
                        let caption = '\caption{'.caption."}\<cr>"
                endif
                if label != ''
-                       let label = '\label{fig:'.label."}\<cr>"
-               endif
-               if center == 'y'
-                 let centr = '\begin{center}' . "\<cr>"
-                 let centr = centr . pic 
-                 let centr = centr . caption
-                 let centr = centr . label
-                 let centr = centr . '\end{center}' . "\<cr>"
-               else
-                 let centr = pic
-                 let centr = centr . caption
-                 let centr = centr . label
+                       let label = '\label{' . s:labelprefix_figure . label . 
"}\<cr>"
                endif
+               if center == 'y' || center == ''
+                       let centr = '\centering' . "\<cr>"
+               else
+                       let centr = ''
+               end
                let figure = '\begin{'.a:env.'}'.flto
-               let figure = figure . centr
-               let figure = figure . '\end{'.a:env.'}'
+               let figure = figure . centr . pic . caption . label
+               let figure = figure . '\end{'.a:env.'}' . s:end_with_cr
                return IMAP_PutTextWithMovement(figure)
        else
                if g:Tex_package_detected =~ '\<graphicx\>'
@@ -363,7 +369,7 @@
                endif
                let ret='\begin{table}'.flto
                if center == 'y'
-                       let ret=ret."\\begin{center}\<cr>"
+                       let ret=ret."\\centering\<cr>"
                endif
                let foo = '\begin{tabular}'
                let pos = input('(Optional) Position (t b)? ')
@@ -376,17 +382,14 @@
                if format == ''
                        let format = '<++>'
                endif
-               let ret = 
ret.foo.'{'.format."}\<cr><++>\<cr>\\end{tabular}<++>\<cr>"
-               if center == 'y'
-                       let ret=ret."\\end{center}\<cr>"
-               endif
+               let ret = ret.foo.'{'.format."}\<cr><++>\<cr>\\end{tabular}" . 
s:end_with_cr . "<++>"
                if caption != ''
                        let ret=ret.'\caption{'.caption."}\<cr>"
                endif
                if label != ''
-                       let ret=ret.'\label{tab:'.label."}\<cr>"
+                       let ret=ret.'\label{' s:labelprefix_table . 
label."}\<cr>"
                endif
-               let ret=ret.'\end{table}<++>'
+               let ret=ret."\\end{table}" . s:end_with_cr . "<++>"
                return IMAP_PutTextWithMovement(ret)
        else
                return IMAP_PutTextWithMovement(s:table)
@@ -404,9 +407,9 @@
                if format != ''
                  let format = '{'.format.'}'
                endif
-               return 
IMAP_PutTextWithMovement('\begin{'.a:env.'}'.pos.format."\<cr> 
\<cr>\\end{".a:env.'}<++>')
+               return 
IMAP_PutTextWithMovement('\begin{'.a:env.'}'.pos.format."\<cr> 
\<cr>\\end{".a:env.'}' . s:end_with_cr . '<++>')
        else
-               return 
IMAP_PutTextWithMovement('\begin{'.a:env.'}[<+position+>]{<+format+>}'."\<cr><++>\<cr>\\end{".a:env.'}<++>')
+               return 
IMAP_PutTextWithMovement('\begin{'.a:env.'}[<+position+>]{<+format+>}'."\<cr><++>\<cr>\\end{".a:env.'}'
 . s:end_with_cr . '<++>')
        endif
 endfunction
 " }}} 
@@ -425,12 +428,18 @@
                endif
        else
                if a:env !~ '\*'
-                       let arrlabel = "\\label{<++>}\<cr>"
+                       let labelprefix = 
Tex_GetVarValue("Tex_EnvLabelprefix_{'".a:env."'}")
+                       let arrlabel = "\\label{".labelprefix."<+label+>}\<cr>"
                else
                        let arrlabel = ""
                endif
+               if Tex_GetVarValue("Tex_LabelAfterContent")
+                       let content = "<+content+>\<cr>" . arrlabel
+               else
+                       let content = arrlabel . "<+content+>\<cr>"
+               end
        endif
-       return 
IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr><++>\<cr>".arrlabel."\\end{".a:env."}<++>")
+       return 
IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr>".content."\\end{".a:env."}" . 
s:end_with_cr . "<++>")
 endfunction
 " }}} 
 " Tex_list: {{{
@@ -446,7 +455,7 @@
                else
                        let label = ''
                endif
-               return 
IMAP_PutTextWithMovement('\begin{list}'.label."\<cr>\\item 
\<cr>\\end{list}<++>")
+               return 
IMAP_PutTextWithMovement('\begin{list}'.label."\<cr>\\item \<cr>\\end{list}" . 
s:end_with_cr . "<++>")
        else
                return IMAP_PutTextWithMovement(s:list)
        endif
@@ -480,7 +489,7 @@
                else
                        let  foo = foo.'['.pos.']{'.width.'}'
                endif
-               return 
IMAP_PutTextWithMovement(foo."\<cr><++>\<cr>\\end{minipage}<++>")
+               return 
IMAP_PutTextWithMovement(foo."\<cr><++>\<cr>\\end{minipage}" . s:end_with_cr . 
"<++>")
        else
                return IMAP_PutTextWithMovement(s:minipage)
        endif
@@ -499,13 +508,13 @@
                        let bar = bar.'['.biblabel.']'
                endif
                let bar = bar.'{'.key.'}'
-               return 
IMAP_PutTextWithMovement('\begin{thebibliography}'.foo."\<cr>".bar." 
\<cr>\\end{thebibliography}<++>\<Up>")
+               return 
IMAP_PutTextWithMovement('\begin{thebibliography}'.foo."\<cr>".bar." 
\<cr>\\end{thebibliography}" . s:end_with_cr . "<++>\<Up>")
        else
                return IMAP_PutTextWithMovement(
                        \ "\\begin{thebibliography}\<CR>".
                        \ "\\bibitem[<+biblabel+>]{<+bibkey+>} <++>\<CR>".
                        \ "<++>\<CR>".
-                       \ "\\end{thebibliography}<++>")
+                       \ "\\end{thebibliography}" . s:end_with_cr . "<++>")
        endif
 endfunction
 " }}} 
@@ -571,7 +580,7 @@
                        return IMAP_PutTextWithMovement(b:Tex_Env_{a:env})
                elseif exists("g:Tex_Env_{'".a:env."'}")
                        return IMAP_PutTextWithMovement(g:Tex_Env_{a:env})
-               elseif a:env =~ 
'equation*\|eqnarray*\|theorem\|lemma\|equation\|eqnarray\|align\*\|align\>\|multline'
+               elseif a:env =~ 
'theorem\|definition\|lemma\|proposition\|corollary\|assumption\|remark\|equation\|eqnarray\|align\*\|align\>\|multline'
                        let g:aa = a:env
                        return Tex_eqnarray(a:env)
                elseif a:env =~ "enumerate\\|itemize\\|theindex\\|trivlist"
@@ -585,7 +594,7 @@
                elseif a:env == '$$'
                        return IMAP_PutTextWithMovement('$$<++>$$')
                elseif a:env == '\['
-                       return 
IMAP_PutTextWithMovement("\\[\<CR><++>\<CR>\\]<++>")
+                       return IMAP_PutTextWithMovement("\\[\<CR><++>\<CR>\\]" 
. s:end_with_cr . "<++>")
                else
                        " Look in supported packages if exists template for 
environment
                        " given in the line
@@ -609,7 +618,7 @@
                endif
                " If nothing before us managed to create an environment, then 
just
                " create a bare-bones environment from the name.
-               return 
IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr><++>\<cr>\\end{".a:env."}<++>")
+               return 
IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr><++>\<cr>\\end{".a:env."}" . 
s:end_with_cr . "<++>")
        endif
 endfunction " }}}
 " Mapping the <F5> key to insert/prompt for an environment/package {{{
@@ -712,7 +721,7 @@
        "
        function! Tex_ChangeEnvironments() 
 
-               let env_line = searchpair('$$\|\\[\|begin{', '', 
'$$\|\\]\|end{', "bn")
+               let env_line = searchpair('\$\$\|\\\[\|begin{', '', 
'\$\$\|\\\]\|end{', "bn")
 
                if env_line != 0
                        if getline(env_line) !~ 'begin{'
--- ./ftplugin/latex-suite/texrc        2010-12-22 09:59:05.000000000 +0100
+++ ./ftplugin/latex-suite/texrc        2011-02-22 13:35:25.000000000 +0100
@@ -379,6 +379,14 @@
 TexLet g:Tex_EnvironmentMaps  = 1
 TexLet g:Tex_EnvironmentMenus = 1
 
+" Should a environment mapping end with a carriage return?
+TexLet g:Tex_EnvEndWithCR = 0
+" Should the label placed before or after the content?
+TexLet g:Tex_LabelAfterContent = 1
+
+" Set up standard prefixes
+TexLet g:Tex_EnvLabelprefix_table = "tab:"
+TexLet g:Tex_EnvLabelprefix_figure = "fig:"
 
 " }}}
 " Font Macros: {{{
------------------------------------------------------------------------------
Index, Search & Analyze Logs and other IT data in Real-Time with Splunk 
Collect, index and harness all the fast moving IT data generated by your 
applications, servers and devices whether physical, virtual or in the cloud.
Deliver compliance at lower cost and gain new business insights. 
Free Software Download: http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
Vim-latex-devel mailing list
Vim-latex-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vim-latex-devel

Reply via email to