aboutsummaryrefslogtreecommitdiff
path: root/dot_vim/ftplugin/latex-suite/packages/polski
blob: e2c4efea9d9711d1f7320e0af25cef2573a4f175 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
" 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¶li chcesz go uzywac w MS-Windows musisz
" go przekonwertowac na cp-1250. 
"
" Plik ten jest czê¶ci± vim-latexSuite, ale:
" Nie u¿ywaj±cy vim-latexSuite (http://vim-latex.sourceforge.net) mog± wyci±æ
" oznaczon± czê¶æ. Reszta mo¿e byæ 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.

if exists("acromake_package_file")
	finish
endif
let acromake_package_file = 1

" --------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¶li nie
" u¿ywasz (albo go ¶ci±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³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³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\+\.\|¶w\.\|dr\)$'
			return '~'
		" Wstaw tylde miedzy rokiem, wiekiem, a odpowiednim skrotem
		elseif strpart(getline('.'), col('.') - 8, 7) =~? '[0-9IVXLCM]\s\+\(r\|w\)\.[^a-z±æê³ñ󶿼]\{-}$'
			s/[0-9IVXLCM]\zs\s\+\ze\(w\|r\)\.[^a-z±æê³ñ󶿼]\{-}\%#/\~/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±æê³ñ󶿼]\{-}$'
			s/\(\d\|mln\|mld\|tys\.\)\zs\s\+\ze\(z³\|gr\|ha\|m\|t\|mies\|godz\|min\|sek\|cm\|km\|mln\|mld\|tys\.\)[^a-z±æê³ñ󶿼]\{-}\%#/\~/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±æê³ñ󶿼]-[a-z±æê³ñ󶿼]\{-}[^a-z±æê³ñ󶿼]\{-}$'
			s/[a-z±æê³ñ󶿼]\zs-\ze[a-z±æê³ñ󶿼]\{-}[^a-z±æê³ñ󶿼]\{-}\%#/\\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: