[Tex-nl] Hoe een .dtx bestand te herformatteren (in vi)

Wybo Dekker wybodekker at xs4all.nl
Sat Sep 10 22:09:22 CEST 2011


On 09/10/2011 04:03 PM, Pander wrote:
> Hoi allemaal,
> 
> Hoe kan ik (een deel van) een .dtx bestand herformatteren? Een enkele
> regel zoals
> 
> \newcommand\lipsum at xxii{Etiam suscipit aliquam arcu. Aliquam sit amet
> est ac purus bibendum congue. Sed in eros. Morbi non orci.
> Pellentesque mattis lacinia elit. Fusce molestie velit in ligula.
> Nullam et orci vitae nibh vulputate auctor. Aliquam eget purus. Nulla
> auctor wisi sed ipsum. Morbi porttitor tellus ac enim. Fusce ornare.
> Proin ipsum enim, tincidunt in, ornare venenatis, molestie a, augue.
> Donec vel pede in lacus sagittis porta. Sed hendrerit ipsum quis
> nisl.  Suspendisse quis massa ac nibh pretium cursus. Sed sodales. Nam
> eu neque quis pede dignissim ornare. Maecenas eu purus ac urna
> tincidunt congue.\lips at par}
> 
> zal er daarna zo uit moeten zien in meerdere regels:
> 
> \newcommand\lipsum at xxii{Etiam suscipit aliquam arcu. Aliquam sit amet
>   est ac purus bibendum congue. Sed in eros. Morbi non orci.
>   Pellentesque mattis lacinia elit. Fusce molestie velit in ligula.
>   Nullam et orci vitae nibh vulputate auctor. Aliquam eget purus.
>   Nulla auctor wisi sed ipsum. Morbi porttitor tellus ac enim. Fusce
>   ornare. Proin ipsum enim, tincidunt in, ornare venenatis, molestie
>   a, augue. Donec vel pede in lacus sagittis porta. Sed hendrerit
>   ipsum quis nisl.  Suspendisse quis massa ac nibh pretium cursus. Sed
>   sodales. Nam eu neque quis pede dignissim ornare. Maecenas eu purus
>   ac urna tincidunt congue.\lips at par}
> Wat voor vi commande kan ik daarvoor gebruiken?

Daarvoor gebruik de Perl-module Autoformat (die je dus waarschijnlijk
eerst moet installeren via vier commandoregels in mijn .vimrc:

" F12 autoformat one paragraph
map <F12> V}k:!perl -MEnv -MText::Autoformat -MTerm::ReadKey -e
'autoformat {right=>$VICOLS, all=>1}'^M}^M
map! <F12> ^[V}k:!perl -MEnv -MText::Autoformat -MTerm::ReadKey -e
'autoformat {right=>$VICOLS,all=>1}'^M}i^M

" F12 autoformat one paragraph
map <F12> V}k:!perl -MEnv -MText::Autoformat -MTerm::ReadKey -e
'autoformat {right=>$VICOLS,all=>1}'}
map! <F12> V}k:!perl -MEnv -MText::Autoformat -MTerm::ReadKey -e
'autoformat {right=>$VICOLS,all=>1}'}i

" shift-F12 autoformat all following paragraphs
map <S-F12> !G perl -MEnv -MText::Autoformat -MTerm::ReadKey -e
'autoformat {right=>$VICOLS,all=>1}'
map! <S-F12> !G perl -MEnv -MText::Autoformat -MTerm::ReadKey -e
'autoformat {right=>$VICOLS,all=>1}'i

Met F12 formatteer je zo een paragraaf (dus tot en met de eerste lege
regel). Heeft veel mogelijkheden, zoals instelling van de breedte via de
environment variable VICOLS, houdt ook rekening met genummerde of
gesterde lijsten.
shift-F12 doet hetzelfde, maar dan voor alle paragrafen in je document

> 
> Een gerelateerde vraag is de volgende. Hoe kan ik hier letters zoals ë
> gebruiken? Moet ik dan \"e of \"{e} invoeren? Anders krijg ik namelijk
> foutmeldingen over T1 encoding.

zie antwoord van PvO.
Voor de invoering in vi: hangt van je OS af.
Ik draai Ubuntu en zet de compose-key met
System->Preferences->Keyboard->Layouts
Daar voeg ik dan twee keyboards toe, een met en een zonder dead keys en
in die laatste stel ik een compose key in (bv de menu key).
In het eerste geval type ik "e om een ë te krijgen, in het andere geval
(je kunt switchen tussen die twee keyboards) typ  ik Menu " e
Ik gebruik meestal het keyboard zonder dead keys omdat ik veel
programmeer en dus vaak ' en " en : en ^ en dergelijke als losse
karakters nodig heb. Maar als ik dan eens een Franse tekst moet typen,
dan schakel ik tijdelijk over op het keyboard met dead keys.

-- 
Wybo



More information about the TeX-NL mailing list