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