# Handbok DVI-visare

## Inledning

DVI-visaren är ett insticksprogram för &kviewshell;-programmet som låter &kviewshell; visa &DVI;-filer (`.dvi`), som produceras av typsättningssystemet Tex. DVI-visaren stöder många utökningar av DVI-standarden, till exempel att infoga &PostScript;-grafik och hyperlänkar. Mer detaljer, exempel och alla tekniska specifikationerna finns i filen `KDVI-features.dvi` (klicka här för Tex-källtexten för filen).

För aktuell information, titta på DVI-visarens hemsida.

Tex är ett avancerat typsättningssystem avsett för vetenskaplig, och i synnerhet matematisk typsättning. Mer information om Tex och &DVI; finns på hemsidan för Tex användargrupp eller den tyska German DANTE e.V..

## Starta DVI-visaren

DVI-visaren startas oftast genom att bara klicka på en `.dvi`-fil i filhanteraren. Det finns ett `kdvi`-kommando för bekvämlighetens skull, som anropar &kviewshell; med insticksprogrammet DVI-visaren redan laddat. Visaren kan därför startas med kommandot ``kdvi` `någon_sökväg/artikel.dvi``. Kommandoraderna ``kdvi` `någon_sökväg/artikel`` eller ``kdvi` `någon_sökväg/artikel.`` fungerar också. Om du är ansluten till Internet kan du komma åt filer som finns på andra datorer genom att ange en webbadress som parameter, så här: ``kdvi` `http://någon_sökväg/artikel.dvi``

Om du anger en webbadress om parameter, kan du tala om för DVI-visaren att den ska hoppa direkt till ett visst ställe i &DVI;-filen. Till exempel får ``kdvi` `fil:artikel.dvi#43`` DVI-visaren att öppna sida 43. Om du har inkluderat källfilsinformation, gör ett kommando som ``kdvi` `fil:artikel.dvi#src:143paper.tex`` att DVI-visaren letar efter platsen i DVI-filen som motsvarar rad 43 i Tex-filen `artikel.tex`. Du vill nog sällan använda det här alternativet själv, läs avsnittet om sökning framåt för att lära dig hur man ställer in en editor för att starta DVI-visaren automatiskt.

Glöm inte bort prefixet `file:`, annars får du oväntade resultat. Kommandot ``kdvi` `fil:artikel.dvi#43`` öppnar till exempel sidan 43 i filen `artikel.tex`. Kommandot ``kdvi` `artikel.dvi#43`` försöker öppna filen `artikel.dvi#43`.

Det finns ett annat alternativ som du troligen inte behöver ange själv. Om du skriver ``kdvi` `--unique` `någonsökväg/artikel.dvi``, laddar DVI-visaren filen om det inte finns någon annan instans som kör och redan har laddat filen. Om det finns det, visas den instansen av DVI-visaren överst. Ett kommando som ``kdvi` `--unique` `fil:artikel.dvi#43`` kan användas i skalskript för att få en instans av DVI-visaren som kör att hoppa till sidan 43.

De vanliga väljarna som hanteras av &Qt;- och &kde;-program fungerar också: ``kdvi` `--style` `windows` `--display` `:0` `--geometry` `400x400+0+0` `--caption` `"DVI"``

## Skriva ut &DVI;-filer

DVI-visaren kan skriva ut &DVI;-filer med det vanliga &kde;-utskriftsgränssnittet. Internt använder DVI-visaren programmet `dvips` för att skapa &PostScript;, som sedan skickas vidare till skrivaren. Om du vill skriva ut med DVI-visaren, måste `dvips` vara installerat. Programmet `dvips` använder egna konfigurationsfiler och inställningar, som är bra i de flesta fall. Om du bryr dig om att få bästa möjliga utskriftsresultat, bör du anpassa `dvips` för hand, och försäkra dig om att ställa in det förvalda Metafont-läget som passar bäst ihop med din skrivare. På många system hittar du GNU-texinfo dokumentation för `dvips`, och du kanske också vill leta efter en fil som heter `dvips.dvi` eller något liknande.

## Exportera &DVI;-filer till andra format

Om du vill spara din fil med &PostScript;- eller PDF-format, rekommenderas att du inte använder utskriftsfunktionen och dirigerar om skrivarutmatningen till en fil. Du bör istället använda exportfunktionerna som ger bättre kvalitet på utmatningen, behåller många av de specialfunktioner som DVI-formatet har och ser bättre ut i många visningsprogram, som Adobes Acrobat Reader. Du hittar exportfunktionerna i menyn Arkiv.

### Export till &PostScript;

Som för utskrift, så används det yttre programmet `dvips` för att skapa &PostScript;-filen. Om &DVI;-filen innehåller hyperlänkar, infogas de också i &PostScript;-filen. Om du är expert, och vill skapa utmatning som är optimerad för en viss skrivare, bör du troligtvis starta `dvips` för hand och välja lämpligt Metafont-läge själv.

### Export till PDF

För att skapa PDF-filer med hög kvalitet, översätter DVI-visaren &DVI; till PDF med det yttre programmet `dvipdfm`. Om du arbetar på en dator där en äldre utgåva av typsättningssystemet Tex är installerad, kanske programmet `dvipdfm` inte är installerat. Om så är fallet, måste du använda utskriftsfunktionen för att skapa PDF-utmatning.

Om du tittar på filen som skapats i Adobes Acrobat Reader, kan du mycket väl märka att några av typsnitten ser mycket dåliga ut även om utskriften är bra, och även om dokumentet ser bra ut i ghostview. Det här är ett känt problem med Acrobat Reader och bitmappsteckensnitt. När det här skrivs verkar den enda praktiska sättet att komma runt problemet vara att undvika bitmappade teckensnitt.

## Använda omvänd sökning

Omvänd sökning är en mycket användbar funktion när du själv skriver en text med Tex. Om allt är riktigt inställt, kan du klicka på DVI-visarens fönster med mittenknappen på musen (på vissa system, om du inte har en treknappars mus, kan du använda vänster och höger knapp samtidigt). Därefter öppnas din favoriteditor, laddar Tex-källfilen och hoppar till det riktiga stycket. För att använda omvänd sökning, gör så här:

1. Skapa en &DVI;-fil som innehåller information för omvänd sökning. Det här förklaras i avsnittet Skapa Tex-filer för omvänd sökning nedan. Om du bara vill prova funktionen för omvänd sökning, kan du också använda exempelfilen `KDVI-features.dvi`.

2. Tala om för DVI-visaren vilken editor du vill använda. Välj en editor i dialogrutan Inställningar (dialogrutan kan nås genom att välja Inställningar i menyn DVI-alternativ). Nästa kapitel i den här handboken, Dialogrutan Inställningar/Alternativ för Återgivning, förklarar den här dialogrutan i detalj.

3. Visa editorer måste startas för hand, eller behöver ytterligare inställningar. Du hittar en beskrivning för alla editorer som stöds i avsnittet "Ställa in editorn" nedan.

4. Prova din inställning. Öppna &DVI;-filen med DVI-visaren och använd musens mittenknapp för att klicka i DVI-visaren. Editorn ska dyka upp och visa Tex-filen.

### Skapa Tex-filer för omvänd sökning

Det finns i huvudsak två sätt att skapa &DVI;-filer som innehåller information för omvänd sökning: Du kan antingen använda en Tex/Latex binärfil som automatiskt skapar och infogar den nödvändiga informationen, eller du kan infoga ett extra paket som är skrivet i Tex/Latex.

- En Tex binärfil som automatiskt skapar och infogar den nödvändiga informationen, är definitivt metoden att föredra för att infoga information för omvänd sökning. När det här skrivs, finns en binärfil ännu inte tillgänglig för &UNIX;. Det sägs dock att nästa version av TeTeX Tex-distributionen ska ha inbyggt stöd för omvänd sökning.

- Om du inte har en Tex binärfil som har inbyggd omvänd sökinformation, kopiera filerna `srcltx.sty` och `srctex.sty` till katalogen där din Tex-fil finns (du kan göra detta genom att trycka på &Shift;-tangenten och vänster musknapp medan muspekaren är på en hyperlänk). Om du använder Latex, lägg till raden

          \usepackage[active]{srcltx}

  i inledningen av din Latex-fil. Om du använder enkel Tex, ska raden

          \include{srctex}

  göra susen.

Fastän omvänd sökning är ytterst användbart när du skriver ett dokument själv, kan det vara en god ide att ta bort informationen för omvänd sökning innan &DVI;-filen skickas till någon annan.

### Ställa in editorn

Fastän omvänd sökning i allmänhet fungerar mycket bra med de flesta editorer, kräver vissa av dem en del särskild behandling. Det här avsnittet förklarar hur man ställer in olika editorer.

#### Emacs

Emacs fungerar bra med DVI-visaren. Det verkliga beteendet hos Emacs beror till stor del på inställningen. Som vanligt kan du anpassa Emacs helt och hållet, om du är villig att slåss med Lisp-kod.

DVI-visaren använder programmet `emacsclient` för att fjärrstyra Emacs.

Programmet `emacsclient` kräver att Emacs redan är startat, och att programmet `Emacs-Server` är startat inne i Emacs. Omvänd sökning fungerar inte om du inte har startat både Emacs och `Emacs-Server`.

För att starta `Emacs Server`, kan du göra något av följande:

1. Starta `Emacs-Server` i Emacs, genom att skriva `Mx `server-start``

2. Lägg till raden

           (server-start)

   i din `.emacs`-fil. Starta om Emacs

- Försäkra dig om att Emacs är installerad. Försök att starta `emacs` från kommandoraden.

- DVI-visaren använder kommandot `emacsclient` för att fjärrstyra Emacs. Försäkra dig om att `emacsclient` är tillgänglig på kommandoraden genom att prova kommandot ``emacsclient` `'Namn på en textfil'``. Det här ska öppna ett nytt fönster i Emacs editorn.

- Om `emacsclient` misslyckas med ett felmeddelande som `unable to connect to local`, försäkra dig om att Emacs är startad. Kontrollera dessutom att `Emacs-Server` har startats genom att skriva `Mx `server-start``.

- Om du vill att fönstret automatiskt ska visas överst, lägg till `raise-frame` funktionen i server-switch-hook (skriv `Mx `customize-variable` RET `server-switch-hook`` och skriv in funktionsnamnet i textfältet).

- Om du har ändrat buffern sedan du senast sparade, kommer Emacs fråga dig: `Revert buffer from file ...? (yes or no)`. Du vill troligen alltid svara no här, eftersom "revert" betyder att filen läses från disken igen, och gör att alla ändringar sedan du senast sparade går förlorade!

  Troligen är `gnuclient`s beteende att tyst ladda in den ändrade buffern att föredra. Lägg till följande rader i filen `.emacs` för att härma `gnuclient`s beteende med `emacsclient`:

      	(defadvice server-visit-files (around save-buffers last activate)
      	  "Try to emulate gnuclient behaviour with emacsclient.
      	Works only for visiting one buffer at a time."
      	  (let* ((filen (car (car (ad-get-arg 0))))
      		 (buf (get-file-buffer filen))
      		 (this-buf-modified-p nil))
      	    ;;; the following is copied from server-visit-files, with
      	    ;;; a modification for the `verify-visited-file-modtime' test
      	    (if (and buf (set-buffer buf))
      		(if (file-exists-p filen)
      		    ;;; if the file has changed on disk, reload it
      		    ;;; using `find-file-noselect'
      		    (if (not (verify-visited-file-modtime buf))
      			(progn
      			  (find-file-noselect filen)
      			  ;;; if user answered `no', reset modtime anyway
      			  ;;; so that server-visit-files doesn't realize the
      			  ;;; difference:
      			  (set-visited-file-modtime)))
      		  ;;; if file exists no longer, we let server-visit-files
      		  ;;; deal with that
      		  t)
      	      (setq buf (find-file-noselect filen)))
      	    (setq this-buf-modified-p (buffer-modified-p buf))
      	    (set-buffer buf)
      	    (set-buffer-modified-p nil)
      	    ad-do-it
      	    (set-buffer-modified-p this-buf-modified-p)))

#### &kate;

Tyvärr stöder inte &kde;:s editor &kate; omvänd sökning särskilt bra. Ett klick med musens mittenknapp i &DVI;-filen öppnar alltid en ny instans av &kate;-editorn, även om &kate; redan är startad och även om Tex-filen redan är laddad. Vad värre är, &kate; flyttar inte markören till början av stycket.

#### NEdit

NEdit fungerar i allmänhet mycket bra. Att klicka i &DVI;-filen ska öppna ett nytt fönster. Om Tex-filen redan används i ett annat fönster av NEdit, visar det nyöppnade fönstret en annan vy av buffern. Annars laddas Tex-filen. När fönstret har öppnats, markerar NEdit första raden av det riktiga stycket.

1. Försäkra dig om att NEdit är installerad. Försök att starta `nedit` från kommandoraden.

2. DVI-visaren använder kommandot `ncl` för att fjärrstyra NEdit. Försäkra dig om att `ncl` är tillgängligt på kommandoraden genom att skriva kommandot ``ncl` `-noask``. Det här bör öppna en instans av editorn NEdit. Om `ncl` inte är tillgängligt, kanske du använder en äldre version av NEdit. Om det är fallet, bör du antingen byta till en nyare version, eller så måste du använda alternativet Användardefinierad editor i inställningsdialogrutan.

#### XEmacs

XEmacs fungerar bra med DVI-visaren. Det verkliga beteendet hos XEmacs beror till stor del på inställningen. Som vanligt kan du anpassa XEmacs helt och hållet, om du är villig att slåss med Lisp-kod.

DVI-visaren använder programmet `gnuclient` för att fjärrstyra XEmacs.

Programmet `gnuclient` kräver att XEmacs är startat, och att programmet gnuserv är startat inne i XEmacs. Omvänd sökning fungerar inte om du inte har startat både XEmacs och `gnuserv`.

För att starta `gnuserv`-programmet, kan du göra något av följande:

- Starta `gnuserv` i XEmacs, genom att skriva `Mx `gnuserv-start``

- Lägg till raden

          (gnuserv-start)

  i din `.xemacs` fil. Om du använder en nyare version av XEmacs, är `>.xemacs` en katalog. I detta fallet ska du lägga till raden i filen `.xemacs/init.el`. Starta om XEmacs

Om du inte vill öppna ett nytt fönster för varje anrop till editorn, och vill att fönstret automatiskt ska visas överst, ställ in Gnuserv Frame till Use selected frame, och lägg till raise-frame funktionen i Visit Hook. Skriv `Mx `customize-group` RET `gnuserv`` `M-x customize-group RET gnuserv` för att aktivera inställningarna.

- Försäkra dig om att XEmacs är installerad. Försök att starta `xemacs` från kommandoraden.

- DVI-visaren använder kommandot gnuserv för att fjärrstyra XEmacs. Försäkra dig om att `gnuclient` är tillgänglig på kommandoraden genom att prova kommandot ``gnuclient` `Namn på en textfil``. Det här ska öppna ett nytt fönster i XEmacs editorn.

- Om gnuserv misslyckas med ett felmeddelande som `unable to connect to local`, försäkra dig om att XEmacs är startad. Kontrollera dessutom att gnuserv har startats genom att skriva `Mx `gnuserv-start``.

- Om du inte vill öppna ett nytt fönster för varje anrop till editorn, och vill att fönstret automatiskt ska visas överst, ställ in Gnuserv Frame till Use selected frame, och lägg till raise-frame funktionen i Visit Hook. Skriv `Mx `customize-group` RET `gnuserv`` för att aktivera inställningarna.

#### VIM/GUI

DVI-visaren stöder `vim`, men resultatet är inte särskilt upphetsande. Ett klick med musens mittenknapp i &DVI;-filen öppnar alltid en ny instans av `vim`-editorn, även om `vim` redan är startad och även om Tex-filen redan är laddad.

- Försäkra dig om att VIM/GUI är installerad. Försök att starta `gvim` från kommandoraden.

## Sökning framåt

Funktionen för sökning framåt låter dig hoppa från editorn direkt till motsvarande plats i &DVI;-filen. Eftersom sökning framåt måste stödjas av editorn, fungerar det för närvarande bara med Emacs och XEmacs. Andra editorer läggs förhoppningsvis snart till.

För att använda sökning framåt måste du göra följande:

- Ställa in editorn, det här beskrivs nedan.

- Lägg till källfilsinformation i &DVI;-filen, t.ex. genom att använda paketet `srcltx`. Detta beskrivs i avsnittet "Skapa Tex-filer för omvänd sökning".

- Om du använder Emacs och allt är riktigt inställt, trycker du bara på `&Ctrl;X &Ctrl;J` , för att få DVI-visaren att dyka upp och hoppa till stället i Tex-filen som du för närvarande redigerar.

### Att ställa in editorn för sökning framåt

#### Emacs

För att använda sökning framåt i Emacs, utför följande steg:

- Ladda ner följande Emacs-skript, `kdvi-search.el` (tryck på skifttangenten och vänster musknapp på filnamnet för att ladda ner det) och lagra det på en plats där Emacs kan komma åt det. Vi rekommenderar katalogen `emacs-scripts`.

- Lägg till raderna

      (add-to-list 'load-path (expand-file-name "~/emacs-scripts/"))
      (require 'kdvi-search)
      (add-hook 'LaTeX-mode-hook (lambda () (local-set-key "\C-x\C-j" 'kdvi-jump-to-line)))
      (add-hook 'tex-mode-hook (lambda () (local-set-key "\C-x\C-j" 'kdvi-jump-to-line)))

  i filen `.emacs`. Starta om Emacs.

- Öppna Emacs, ladda en Tex-fil, skapa motsvarande &DVI;-fil, och skriv antingen in kommandot `Mx `kdvi-jump-to-line`` eller tryck på `&Ctrl;X &Ctrl;J` . Det kan hända att Emacs frågar dig efter namnet på en masterfil. Det här är användbart om du använder en Tex-fil som infogar andra filer: Masterfilen är toppnivåfilen som infogar de övriga. Emacs frågar kanske också om namnet på masterfilen ska sparas som en lokal variabel, dvs. som en kommentar sist i filen. Skriv antingen in `ja` eller `nej` för att fortsätta.

- Försäkra dig om att Emacs är installerad. Försök att starta `emacs` från kommandoraden.

- Om Emacs inte lyckas starta DVI-visaren, hittar du utmatningen i buffern kdvi-output.

#### XEmacs

För att ställa in XEmacs, följ stegen ovan för Emacs, men ändra filen `.xemacs` istället för filen `.emacs`. Om du använder en nyare version av XEmacs, kan `.xemacs` vara en katalog. I det fallet, lägg till raderna i filen `.xemacs/init.el`.

## Dialogrutan Inställningar

Dialogrutan Inställningar kan nås genom att välja Inställningar DVI-alternativ i menyn Inställningar.

Dialogrutan består av två flikar, Teckensnitt och Återgivning.

### Alternativ för Teckensnitt

Följande bild visar inställningsdialogrutan i DVI-visaren.

Fliken Teckensnitt Fliken Teckensnitt

Metafont-läge

- De här alternativen anger teckensnitten som DVI-visaren använder för återgivning. Genom att noga anpassa de här inställningarna är det möjligt att förbättra visningen. Om du inte är en expert på `Metafont` och vet vad du gör, är det ingen bra idé att ändra de här alternativen. Du kan vilja titta på avsnittet Vanliga frågor i den här handboken.

  Säkra värden är 1200 dpi / Lexmark för god kvalitet, eller 600 dpi / LaserJet 4 för normal kvalitet och snabbare visning.

Generera saknade teckensnitt

- Markera det här om du vill att DVI-visaren ska anropa programmet `Metafont` ifall det troliga fallet inträffar att DVI-visaren ska visa dokument som har teckensnitt som inte är färdiga. Du vill helt säkert markera det här alternativet.

### Alternativ för Återgivning

Följande bild visar den andra inställningsdialogrutan i DVI-visaren.

Fliken Återgivning Fliken Återgivning

Visa Postscript specialiteter

- Om det här alternativet är markerat, kommer DVI-visaren att visa &PostScript;-grafik som är infogad i &DVI;-filen. Du bör troligen aktivera det här alternativet.

  Om en extern &PostScript;-fil inte hittas, ritar DVI-visaren en röd varningsruta istället. Tyvärr är återgivning av &PostScript;-grafik mycket långsam i den nuvarande versionen av DVI-visaren. Vi kommer att förbättra hastigheten i senare versioner. Om det här alternativet är avstängt, ritar DVI-visaren antingen en grå ruta istället för grafiken, eller så lämnas utrymmet tomt.

  Det finns inget standardiserat sätt att infoga &PostScript;-grafik i en &DVI;-fil. Därför kan det inträffa att DVI-visaren inte kan visa grafik på ett riktigt sätt, även om det fungerar bra med andra program. Äldre versioner av `xdvi` och `dvips` stöder att köra externa kommandon. Det här är en svårartad säkerhetsrisk och är därför avsiktligt inte implementerat i DVI-visaren. Teknisk information om sätt att infoga &PostScript; som stöds, finns i dokumentet `KDVI-features.dvi`.

Visa hyperlänkar

- Markera det här om du vill att DVI-visaren ska visa hyperlänkar. Den passande delen av texten stryks under med blått. Du vill troligen välja det här alternativet.

Editor för omvänd sökning

- Om du avser att använda omvänd sökning, en mycket användbar funktion om du själv skriver Tex-dokument, måste du ange vilken editor som du ska använda, och hur den här editorn kan startas av DVI-visaren. I exemplet som visas, har användaren bestämt sig för editorn NEdit. Om du använder en av de förinställda editorerna från kombinationsrutan Editor, behöver du inte göra någonting mer. Om du vill använda en annan editor, välj Användardefinierad editor i kombinationsrutan Editor och skriv in kommandot som används för att starta din editor. Använd symbolerna %f and %l, som ersätts med namnet på Tex-filen, och raden i Tex-filen.

  Om du använder en editor som inte stöds, skicka oss gärna e-post på kebekus@kde.org, och tala om vilken kommandorad du använder och hur du har ställt in din editor.

## Vanliga frågor

Vad händer när meddelandet `Genererar bitmappteckensnitt` visas av DVI-visaren, och varför tar proceduren så lång tid?

Många av teckensnitten som typiskt används i ett Tex-dokument, måste skapas av Metafont-systemet. Metafont är ett språk som liknar Tex (och ingår i de flesta Tex-utgåvor), som tar en beskrivning av teckensnittets kantlinjer, och skapar en rasterversion (`.pk`-fil) av teckensnittet som kan skickas till en skrivare eller användas i ett förhandsgranskningsprogram som DVI-visaren. Metafont gör alla tänkbara åtgärder för att skapa den bästa möjliga utskriften på skrivaren. Det vet till exempel att en bildpunkt på en bläckstråleskrivare är en cirkelliknade fläck, och att intilliggande bildpunkter brukar flyta ihop. I motsats till detta, är en bildpunkt på en laserskrivare rektangulär, men en isolerad bildpunkt visas ofta inte alls.

Att skapa ett sådant ytterst optimerat bitmappat teckensnitt tar helt naturligt ganska lång tid, särskilt som typiska Tex-dokument använder ett stort antal olika teckensnitt. Vi kan bara be dig om tålamod. För att förbättra saken något, lagrar de flesta Tex-utgåvor `.pk`-filer en begränsat tid, t.ex. 100 dagar. Om du därför visar samma dokument mer än en gång, återanvänds `.pk`-filerna.

Vad är ett Metafont-läge?

För att kunna skapa bitmappade teckensnitt som är optimerade för skrivaren (se svaret på första frågan), levereras Metafont med en databas med skrivartyper, leta efter en fil som heter `modes.mf`. Ett Metafont-läge är bara namnet på en post i databasen. Namnet ljfour hänvisar till exempel till posten i databasen som beskriver en &Hewlett-Packard; LaserJet 4-skrivare. Ett Metafont-läge följs ofta av ett tal, upplösningen. LaserJet kan till exempel skriva ut med både 300 och 600 punkter per tum. Alltså skulle ljfour/600 vara en fullständig beskrivning.

## Tack till och licenser

&kdvi;

DVI-visaren är baserad på det självständiga programmet &kdvi; 0.4.3 av Markku Hihnala. Det programmet är i sin tur baserat på xdvi version 18f, som har många upphovsmän.

Dokumentation är copyright 2001, Stefan Kebekus kebekus@kde.org

Översättning Stefan Asserhäll stefan.asserhall@telia.com

&underGPL; &underFDL;
&documentation.index;