Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Lyx a pevné mezery před předložkami  (Přečteno 1652 krát)

Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Lyx a pevné mezery před předložkami
« kdy: 23 Července 2010, 12:20:26 »
Ahoj, potřeboval bych, aby mi LyX automaticky dával pevnou mezeru před neslabičné předložky (V, S, K, Z). Když se před nimi zlomí řádek, je to typograficky špatně.

Ve Vimu na tuto opravu mám makro, teď ale jde o co nejsnazší tvorbu dokumentů v LaTeXu přijatelnou i pro lidi vybavené jen běžnou znalostí Wordu. Proto volím LyX a proto bych se také rád obešel bez nějakého dodatečného spouštění programů jako je vlnka apod. Nějaký tip (třeba jako automatické opravy v editoru)? Předem díky.
« Poslední změna: 23 Července 2010, 12:22:14 od Filip Dominec »
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Re: Lyx a pevné mezery před předložkami
« Odpověď #1 kdy: 23 Července 2010, 12:26:48 »
Ještě pro zájemce přikládám ten řádek makra pro Vim (soubor ~/.vimrc):
Kód: [Vybrat]
" nahrazeni mezery za bezslabicnymi predlozkami za pevnou mezeru (~)
autocmd BufWrite *.tex :%s/\(\s[vVkKzZsS]\)\ \+/\1\~/ge

Pro další zájemce sem dávám svůj celý konf. soubor:
Kód: [Vybrat]
:syntax enable " zvýraznení syntaxe
:colorscheme moje " vlastni nastaveni barev (v souboru ~/.vim/colors/moje.vim)
:set mouse=a " mys se hodí...
:set mousehide " schová mys behem psani

"Added benefits
no - $
no _ ^
"nastavení rozpoznávání typu souboru
filetype plugin indent on

set guifont=monospace\ 9

inoremap <C-S-space> <C-x><C-o>

if version >= 600 " foldování bloku textu pomocí prikazu zf a zo
 set foldenable
 set foldmethod=marker
 endif

 if has("gui_running")
  " GUI is running or is about to start.
  " Maximize gvim window.
  set lines=199 columns=199
else
  " This is console Vim.
  if exists("+lines")
    set lines=50
  endif
  if exists("+columns")
    set columns=100
  endif
endif

set go-=m go-=T " drsni vimari nepouzivaji menu ani toolbar!

"ruzne
set scrolloff=3
set backspace=indent,eol,start
set ignorecase
set smartcase

" ctrl+space nahrazuje escape  - pohodlnejsi
imap <C-space> 
vmap <C-space> 
" alt+l prejde na konec radku
map <M-l> $
vmap <M-l> $
imap <M-l> <esc>A
" alt+h prejde na zacatek radku
map <M-h> ^
vmap <M-h> ^
imap <M-h> <esc>I

" ruzne zbarveny textový kurzor v prikazovem a vkladacim rezimu:
highlight Cursor   guifg=white  guibg=green
highlight iCursor  guifg=yellow  guibg=red
set guicursor=n-v-c:block-Cursor
set guicursor+=i:ver100-iCursor
set guicursor+=n-v-c:blinkon0-Cursor
set guicursor+=i:blinkwait20-iCursor


set spelllang=cs,en
set spell

"interaktivní vyhledávání
set incsearch

"doplnování pomocí tabulátoru
set wildchar=<Tab>
set wildmenu
set wildmode=longest:full,full

"Pohyb v insert módu
imap <C-h> <Left>
imap <C-j> <Down>
imap <C-k> <Up>
imap <C-l> <Right>
imap § <esc>/[}{]<CR>/[^{}]<CR>i<space>

map <C-tab> :tabnext<CR>
map <C-S-tab> :tabprev<CR>
map <C-M-right> :tabnext<CR>
map <C-M-left> :tabprev<CR>


" pokud zahajujeme novy soubor, pouzit kodovani UTF8
set enc=utf-8

"highlight Folded guibg=blue guifg=yellow
"set foldmethod=syntax

" specialne pro prezentace v LaTeXu/Beameru
autocmd BufNewFile *.beamer.tex 0r ~/.vim/tex-beamer-sablona.tex
autocmd BufNewFile *.bib 0r ~/.vim/bib-sablona.bib

" automatizace pro soubory v LaTeXu
autocmd BufNewFile *[^r].tex 0r ~/.vim/tex-sablona.tex
autocmd BufEnter *.tex imap <F1> \begin{enumerate}<CR> \item{} <CR> \item{} <CR> \item{}<CR> \end{enumerate}<UP><UP><UP><LEFT><LEFT>
autocmd BufEnter *.tex imap <S-F1> \begin{itemize}<CR> \item{} <CR> \item{} <CR> \item{}<CR> \end{itemize}<UP><UP><UP><LEFT><LEFT>
autocmd BufEnter *.tex imap <C-S-F1> \{}<LEFT><LEFT><LEFT>
autocmd BufEnter *.tex imap <M-S-F1> \begin{}<CR> \end{}<UP><LEFT>
autocmd BufEnter *.tex imap <F2> \section{}<LEFT>
autocmd BufEnter *.tex imap <S-F2> \subsection{}<LEFT>
autocmd BufEnter *.tex imap <C-S-F2> \subsubsection{}<LEFT>
autocmd BufEnter *.tex imap <M-S-F2> \paragraph{}<LEFT>
autocmd BufEnter *.tex imap <F3> \textit{}<LEFT>
autocmd BufEnter *.tex imap <S-F3> \textbf{}<LEFT>
autocmd BufEnter *.tex imap <C-S-F3> \underline{}<LEFT>
autocmd BufEnter *.tex imap <M-S-F3> \texttt{}<LEFT>
autocmd BufEnter *.tex imap <F4>  \begin{table}[ht]   \caption{}  \label{tb:} \centering <CR>\begin{tabular}{lcr}<CR> \toprule<CR> & & \\<CR> \hline<CR> & & \\<CR> & & \\<CR> \bottomrule<CR> \end{tabular} \end{table}<CR>
autocmd BufEnter *.tex imap <S-F4> \begin{figure}[h] \caption{} \label{fg:} \centering <CR><TAB>\includegraphics[width=5cm]{img/.pdf}<CR>\end{figure}<CR>
autocmd BufEnter *.tex imap <C-S-F4> \begin{figure}[ht]<CR> <TAB>\begin{minipage}[b]{0.5\linewidth}<CR> <TAB><TAB>\caption{Průběh  } \label{fg:graf_intef} \centering <CR> <TAB><TAB>\resizebox{90mm}{!}{\input{data/.tex}} <CR> <TAB>\end{minipage}<CR> <TAB>\begin{minipage}[b]{0.5\linewidth}<CR> <TAB><TAB>\caption{Průběh  } \label{fg:graf_} \centering <CR> <TAB><TAB>\resizebox{90mm}{!}{\input{data/.tex}}<CR> <TAB>\end{minipage}<CR> \end{figure}<CR>
autocmd BufEnter *.tex imap <M-S-F4> \ref{}<LEFT>
autocmd BufEnter *.tex imap <F5> $$<LEFT>
autocmd BufEnter *.tex imap <S-F5> \begin{equation}  = \label{eq:}\end{equation}<esc>27hi
autocmd BufEnter *.tex imap <C-S-F5> \begin{equation*}  = \end{equation*}<esc>18hi
autocmd BufEnter *.tex imap <M-S-F5> <CR>\begin{subequations}<CR> \begin{equation} = \label{eq:-a}\end{equation}<CR> \begin{equation} = \label{eq:-b}\end{equation}<CR> \end{subequations}<esc>2ki
autocmd BufEnter *.tex imap <F6> _{}<LEFT>
autocmd BufEnter *.tex imap <S-F6> ^{}<LEFT>
autocmd BufEnter *.tex imap <C-S-F6> \frac{}{}<esc>2hi
autocmd BufEnter *.tex imap <M-S-F6> \left( \right)<esc>5hi
autocmd BufEnter *.tex imap <F7> ^\circ C<LEFT>
autocmd BufEnter *.tex imap <S-F7> \,\pm\,
autocmd BufEnter *.tex imap <C-S-F7> \cdot
autocmd BufEnter *.tex imap <M-S-F7> \quad \Rightarrow \quad
autocmd BufEnter *.tex imap <F8> \sqrt{}<LEFT>
autocmd BufEnter *.tex imap <S-F8> \sqrt[]{}<esc>3hi
autocmd BufEnter *.tex imap <C-S-F8> \int_{}^{} \mbox{d}
autocmd BufEnter *.tex imap <F9> \frac{\partial }{\partial }<esc>12hi
" nahrazeni mezery za bezslabicnymi predlozkami za pevnou mezeru (~)
autocmd BufWrite *.tex :%s/\(\s[vVkKzZsS]\)\ \+/\1\~/ge
" internacionalizace diakritiky v bib souborech
autocmd BufWrite *.bib :%s/\([ěščřžďťňĚŠČŘŽĎŤŇ]\)/{\\v{\1}}/ge
autocmd BufWrite *.bib :%s/\([áéíóúýÁÉÍÓÚÝ]\)/{\\'{\1}}/ge
autocmd BufWrite *.bib :%s/\([ůŮ]\)/{\\o{\1}}/ge
autocmd BufWrite *.bib :%! cstocs utf8 ascii


" automatizace pro soubory HTML
autocmd BufNewFile *.htm* 0r ~/.vim/html-sablona.html
autocmd BufEnter *.htm* imap <F1><ul><CR> <li> </li><CR></ul><UP>
autocmd BufEnter *.htm* imap <S-F1><ol><CR> <li> </li><CR></ol><UP>
autocmd BufEnter *.htm* imap <C-S-F1> <><LEFT>
autocmd BufEnter *.htm* imap <M-S-F1> <><\/><esc>5hi
autocmd BufEnter *.htm* imap <F2> <h1> </h1><esc>5hi
autocmd BufEnter *.htm* imap <S-F2> <h2> </h2><esc>5hi
autocmd BufEnter *.htm* imap <C-S-F2> <h3> </h3><esc>5hi
autocmd BufEnter *.htm* imap <M-S-F2> <p> </p><esc>4hi
autocmd BufEnter *.htm* imap <F3> <i > </i><esc>5hi
autocmd BufEnter *.htm* imap <S-F3>  <b > </b><esc>5hi
autocmd BufEnter *.htm* imap <C-S-F3>  <u > </u><esc>5hi
autocmd BufEnter *.htm* imap <M-S-F3> <pre> </pre> <esc>5hi
autocmd BufEnter *.htm* imap <F4>  <table width="100%" border="0"><CR> <tr><CR>  <td> </td><CR></tr><CR></table><esc>2k5hi
autocmd BufEnter *.htm* imap <S-F4> <img alt="" src=""><LEFT><LEFT>
autocmd BufEnter *.htm* imap <M-S-F4> <a href=""> </a><esc>7hi
autocmd BufEnter *.htm* imap <S-F5> <center></center><esc>9hi
autocmd BufEnter *.htm* imap <F6> <sub><small> </small></sub><esc>15hi
autocmd BufEnter *.htm* imap <S-F6> <sup><small> </small> </sup><esc>15hi

" automatizace pro soubory C / C++
autocmd BufNewFile *.cpp 0r ~/.vim/cpp-sablona.cpp
" fold all functions
autocmd BufEnter *.cpp map <S-F7> :%s/^\([a-z].*\))$/\1) \/\*{{{\*\//g<cr>:%s/^}\s*$/} \/\*}}}\*\//g<cr>ggVGzcgg
autocmd BufEnter *.c map <S-F7> :%s/^\([a-z].*\))$/\1) \/\*{{{\*\//g<cr>:%s/^}\s*$/} \/\*}}}\*\//g<cr>ggVGzcgg
" zap/vyp komentaru
autocmd BufEnter *.cpp map <F3> V:s/^\([ \t]*\)/\1\/\/<CR>gv:s/\/\/\/\///<CR>
autocmd BufEnter *.cpp vmap <F3> :s/^\([ \t]*\)/\1\/\/<CR>gv:s/^\([ \t]*\)\/\/\/\//\1/<CR>
autocmd BufEnter *.c map <F3> V:s/^\([ \t]*\)/\1\/\/<CR>gv:s/\/\/\/\///<CR>
autocmd BufEnter *.c vmap <F3> :s/^\([ \t]*\)/\1\/\/<CR>gv:s/^\([ \t]*\)\/\/\/\//\1/<CR>

" gnuplot help
" loads the teplate
autocmd BufNewFile *.gnuplot 0r ~/.vim/gnuplot-sablona
" inserts the name of the input file (.csv) and output file (.tex)
autocmd BufNewFile *.gnuplot :0!echo 'input_file_name="'`echo "%" | sed s/.gnuplot//g | sed s/^.*[\/\\]//g `'.csv"; output_file_name="'`echo "%" | sed s/.gnuplot//g | sed s/^.*[\/\\]//g `'.tex"';




" | sed s/.gnuplot//g | sed `'
"
":let filenamewoext = expand("%:h") . ".bak"
"autocmd BufNewFile *.gnuplot :0!echo 'data_file_name="expand(%:t:r) .csv"; output_file_name="'`echo "%" | sed s/.gnuplot//g`'.csv"';

Stále však prosím o radu s LyXem.
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

 

Provoz zaštiťuje spolek OpenAlt.