Laboration 10: LaTeX Redovisning Instruktionerna nedan Dessa labbinstruktioner är av den pratiga sorten. Du får ganska detaljerade instruktioner som du får följa steg för steg och där de fåtaliga frågorna mest är för att se att allt har gått som det ska. Genom att utföra instruktionerna nedan producerar du en fil labb10.tex. Skicka in denna till Per senast torsdagen den 7/12. (Obs att det är LaTeXfilen du ska skicka, och inte den resulterande PDFfilen.) Repetitionsuppgifter Dessutom kommer du under veckan att få några repetitionsuppgifter att lösa som syftar tillbaka till tidigare kapitel. För att få repetition på KOM så får du dessa uppgifter i mötet»grundläggande databehandling (kursmöte)«som du ska gå med i, och för att få mer övning på LaTeX så ska dina svar ske som rapporter skrivna i LaTeX. Mer detaljer om detta får du i detta kursmöte. Början I denna labb ska du skapa en LaTeX-fil med diverse innehåll i Emacs. Börja med att öppna en ny fil labb10.tex. AUCTeX: Vi använder ett särskilt paket AUCTeX för att använda LaTeX i Emacs. (Det är annars inte det normala i Emacs, så om du redigerar LaTeX-filer i Emacs på en annan dator kan det bete sig annorlunda.) Emacs känner igen ändelsen.tex så du hamnar i en särskild Emacs-mode för att editera LaTeX. I informationsraden står det PDFLaTeX inom parentesen och du har särskilda menyer, bl. a. en som heter just LaTeX. Kanske står det också Fill i parentesen i informationsraden. Det gör det om du har slagit på Options Word Wrap in Text Modes i menyerna. Gör det nu annars så att texten Fill dyker upp där. Lämpligtvis sparar du sedan denna inställning med Options Save Options. Omgivningen document Varje dokument ska ha en document-omgivning. Med C-c C-e kan man lägga in en omgivning i texten, så tryck C-c C-e. I minibufferten får du en anmodan om att ange environment type och defaultvärdet är document, dvs. det är vad det blir om du bara trycker på RET. Gör så! Huvuduppgiften för C-c C-e är att lägga in \begin{nånting} och \end{nånting}, men beroende vad det är för omgivning det gäller så kan den ordna lite annat åt en också. I detta fall passar den på att lägga in deklarationen om vad det är för dokumentklass. Du har fått en fråga om dokumentklass och defaultvärdet är article. Välj det. Nästa fråga är Options. Svara»a4paper«. Slå på Options Syntax Highlighting så kommer olika delar av filen att visas i olika färger. (Detta innebär ingen skillnad i själva filen. Det är fortfarande vanlig text utan nån information om sådant som färger, utan det är Emacs som tolkar innehållet och därför visar olika delar på olika sätt.) Gissningsvis vill du ha denna inställning i Emacs, så spara detta med Options Save Options. 105
LABORATION 10: LATEX Ett första avsnitt Skriv in \section{röda rummet}, ny rad, och lägg sedan in filen /local/kurs/gdb06/rummet. txt med hjälp av C-x i som lägger in en fil i din buffert. (Själva texten visas med normal svart text. Färguppmärkningen används för kommandon, deras argument och annat speciellt.) Att tillverka och titta på en PDF-fil Spara filen. Nu när du har en liten text, så tillverka en PDF-fil från detta genom att köra LaTeX på filen. Tryck på C-c C-c för att ge ett kommando för texten. Det står default LaTeX. Det blir bra, så tryck på RET. Ganska snart står det LaTeX: successfully formatted 1 page. Ge nu kommandot C-c C-c igen. Eftersom du redan har lyckats generera en PDF-fil så är defaultkommandot nu stället»view«. Det passar bra, så tryck på RET. Du får upp ett långt kommando för att titta på PDF-filen. Detta är så att du ska kunna ändra detta om du vill, men det duger bra som det är, så tryck på RET igen. Du får upp en annat fönster som visar innehållet i din PDF med hjälp av programmet xpdf. Innehållet har inte blivit riktigt bra, men det ska du snart få fixa. Se till att flytta runt dina fönster så att du ser Emacs och xpdf samtidigt, sida vid sida. Huvudet Du har fått problem med åäö. Just ja, i dokumentets huvud, dvs. i delen mellan \documentclass{...} och \begin{document} skulle det vara vissa rader för att tala om teckenkodning och språk och sånt. Lägg in dessa tre rader och TEXa om filen med C-c C-c igen. Att»TEXa«: Med att TEXa en fil menas att omvandla från LaTeX (eller annan TEX) till PDF eller annat format som ger ett färdigt typsatt dokument. Det traditionella sådana formatet att omvandla TEX till hette DVI (DeVice Independent), men i denna labb går ni istället till det annars vanligare formatet PDF. Du behöver inte göra om View-kommandot efter det, utan det räcker med att välja Reload från en poppuppmeny du får fram med höger musknapp i xpdf. Uppgift 10.1 Det finns även ett kortkommando för Reload i xpdf. Vad? (Det står i den menyn.) Den här textfilen använde inte sådana tecken som är speciella i LaTeX, som t. ex. $ eller %, så den gick att stoppa in rakt av. Det finns bara en detalj som inte är helt rätt, och det är att textfilen använder tecknet - både som bindestreck och som längre streck. Se över användningen av tecknet - och ersätt på lämpligt sätt. Lägg även in rader med \author{ditt namn} och \title{labb 10} i huvudet. (Använd ditt namn och inte Strindbergs du kommer snart lägga in mer text i dokumentet.) I Einstein-exemplet anges även datum, men strunta i det. Lägg så in kommandot som lägger in denna titelinformation i dokumentet och kör C-c C-c och LaTeX igen. Uppgift 10.2 Vad hände med datumet nu när du inte angav något datum? Att göra fel Ibland råkar man skriva fel så att det man har skrivit inte är en korrekt LaTeX-fil. Har du inte redan gjort det så kommer du att göra det så småningom, så gör det med flit nu för att se hur man får hjälp med att se var det blev fel. I texten nämns barège-lappar på ett ställe. Du tänker att det är ett svårt ord som kräver en förklaring, så du tänker skriva en förklarande not till det ordet. Du har (felaktigt) fått för dig att man kan skriva sådana med ett kommando \note, så lägg till något i stil med \note{barège är ett slags tunt, glest tyg} direkt efter det svåra ordet. TEXa sedan om filen med C-c C-c. Du får ett meddelande i ekoarean om att det har blivit fel. I ikonraden direkt under menyerna i Emacs har en varningstriangel dykt upp. Tryck på den för att komma till felet. Du får se två emacsfönster samtidigt. Ett med din LaTeX-fil där du hamnar där det är fel. Ett med en beskrivning av felet. Först står där»error:«och ett kort felmeddelande. Sen återges precis den del 106
Hänvisningar där det blev fel och på slutet står en hjälptext om just detta fel. Uppgift 10.3 Hur lyder det där korta felmeddelandet på första raden? Felmeddelandet bör vara rätt begripligt. Så \note var visst fel. Du kommer plötsligt på att visstja, det heter \footnote istället! Ändra till detta men råka göra ett nytt fel. Råka byta ut det { som står direkt efter \footnote mot ett mellanslag och TEXa. Du får då ett nytt fel. Gå till det felet. Uppgift 10.4 Hur lyder detta nya felmeddelande? Rätta detta, TEXa din fil och se på resultatet. Du kommer antagligen att göra flera oavsiktliga fel på egen hand efter detta, men nu vet du hur du då kan få hjälp om var det är fel. Ibland kommer felmeddelandet att vara hjälpsamt. Ibland kommer du antagligen inte att förstå vad felmeddelandet handlar om, men du får i alla fall en vink om ungefär var i filen det blivit fel, vilket kanske är tillräcklig hjälp bara det. Det formella felet blir inte alltid exakt där du har gjort fel. I det senaste exemplet blev t. ex. felmarkeringen vid slutparentesen } när felet egentligen var att du glömt den inledande parentesen en bit tidigare. När det har blivit flera fel så kan du använda feltriangeln för att gå vidare till nästa fel efter att du tittat på (och förhoppningsvis rättat) ett. Men har du fått många fel som du inte förstår så koncentrera dig på att fixa det första och kör sedan om. Kanske är de andra följdfel av det första. I meddelandet i ekoarean när det blir fel står det Use C-c ` to display. Det gör samma sak som den där feltriangeln ger så du kan använda det istället om du vill hålla kvar händerna på tangentbordet. Men observera i så fall att efter C-c är det en grav accent som är besvärlig att skriva. Den ligger på en död tangent med akut och grav accent så den tangenten måste skiftas (så att det blir rätt accent) och sen får man lov att följa efter med mellanslagstangenten för att få ` utan något under. Listor Gör ett nytt avsnitt (section) med titeln»listor«. Där ska texten lyda som i figur 10.3. Använd De Unix-kommandon som är mest inne just nu är 1. ls 2. pwd 3. cut 4. mkdir 5. egrep Här ges exempel på olika fonter. Detta är kursiv Detta är sans serif DETTA ÄR KAPITÄLER Detta är skrivmaskinsstil Figur 10.3: En del av det dokument ni ska skriva. Utseendet kommer inte att bli helt identiskt, för det här kompendiet är inte skrivet med normalfonterna eller normalinställningarna i LaTeX, men det bör bli ganska likt. (Du får dock lista kommandona i en annan ordning eller ta fem helt andra om du har invändningar mot listan.) C-c C-e för att lägga in kommandon för de båda omgivningarna. Om det föreslagna defaultvärdet inte är den omgivning du ska lägga in är det bara att skriva namnet på omgivningen själv. Man kan använda komplettering. Uppgift 10.5 Vilka omgivningar fick du föreslagna som default när du gav kommandot C-c C-e i dessa båda fall? Uppgift 10.6 När man skriver sådana här listor finns det ett kortkommando för att skriva ett nytt item. Hur lyder det? (Det finns med i LaTeX-menyn.) Hänvisningar Hittills har du skrivit in \section själv för hand. Man kan också använda ett kommando för det, vilket har en extra poäng. Ställ dig på rätt plats för nästa avsnitt om du inte redan är där och tryck 107
LABORATION 10: LATEX C-c C-s. Detta lägger in en rubrik. Du får först välja hur hög nivå det ska vara på den. Defaultvärdet section blir bra, så tryck på RET. Därnäst får du skriva titeln på detta avsnitt. Det ska vara»mosebacke«så skriv så och tryck RET. Nu får du en ny fråga: (Optional) What label: sec: på vilken du svarar mosebacke och trycker RET. Om du gjort rätt så har du därmed lagt in \section{mosebacke} \label{sec:mosebacke} i bufferten. Skriv några inspirerade rader om Mosebacke i detta avsnitt eller bara bla bla bla om du inte orkar hitta på nåt bättre. Nu ska du använda denna etikett för att kunna hänvisa till detta avsnitt från en annan plats i texten. Lägg till något i följande stil i slutet av första avsnittet: Läs mer om Mosebacke i avsnitt~\ref{sec:mosebacke} på sidan~\pageref{sec:moseback}. TEXa filen! Nu får du ett nytt meddelande i ekoarean när du kör detta. Uppgift 10.7 Hur lyder detta nya meddelande? LaTeX vet inte exakt vad det ska stå i första avsnittet förrän den redan tittat igenom hela texten, så du behöver TEXa den igen. Tryck därför C-c C-c igen. Emacs vet att du behöver TEXa om filen, så defaultkommadot är LaTeX. Nu ska du få»successfully formatted«igen. Gör Reload i xpdf för att se att hänvisningen blivit som den skulle. Kommandot C-c C-c Nu har du använt kommandot C-c C-c både för att TEXa en fil (LaTeX) och för att titta på resultatet (View). Du har även sett att Emacs ofta vet vilket kommando du nog vill och föreslår LaTeX igen när det behövs. Men det går att ge andra kommandon där också. Tryck C-c C-c och välj kommandot Clean. Det rensar upp en del filer som LaTeX skapar medan det kör med mellanresultat. Då får en fråga om du verkligen vill ta bort dessa filer. (Svara n.) Tabell 10.4: Räkneorden 1 10 på några språk svenska livvi slovakiska ett üksi ena två kaksi dva tre kolme tri fyra ńelli štiri fem viizi pet sex kuuzi šest sju seiččie sedem åtta kaheksa osem nio ükeksä devet tio kümmene decet Uppgift 10.8 Vilka filer undrade Emacs om du ville ta bort? Ett annat kommando som kan ges från C-c C-c är Print för att skriva ut PDF-filen på skrivare. Du får fråga om vilken skrivare och exakt vilket kommando som ska användas för utskriften. Defaultvärdena fungerar bra, så det är bara att trycka på RET. (Detta behöver du inte pröva nu, men kanske vill du det senare.) Tabeller och figurer Som du kan ana när du läser koden för den enkla tabellen på sidan 102 så kan man lätt råka skriva något fel när man ska skriva in en sådan. Här kan man dock få mycket hjälp av Emacs. Skapa ett nytt avsnitt med C-c C-s, detta med titeln»räkneord«. Tryck bara RET på frågan om etikett. Uppgift 10.9 Blev det en tom etikett då, eller ingen alls eller vad hände med etiketten? Du ska nu lägga in en tabell som ska se ut som tabell 10.4. Detta är en omgivning, så använd C-c C-e och svara table. Här kommer Emacs att förstå att du vill ha en tabular inom denna table, så du kommer få flera frågor om båda dessa varpå en korrekt mall kommer i din fil. Första frågan du får är (Optional) Float position: 108
Tabeller och figurer Detta behöver du inte svara på (optional) så tryck bara på RET för att strunta i detta. Nästa fråga är viktigare: Caption: Ge rubriken till denna tabell. (Se tabell 10.4 för vad det ska stå där.) Avsluta med RET. Center? (y or n) Svara y. (Optional) What label: tab: Denna fråga sägs också vara frivillig, men man vill nästan alltid ha en etikett på tabeller så att man kan referera till dem. Observera att namnet bör börja på tab: som redan står där. Ett bra namn skulle kunna vara tab:count så skriv count och tryck på RET. Olika slags objekt får olika etiketter så att de inte blandas ihop. Kanske är sec:count namnet på ett avsnitt och fig:count namnet på en figur. (Optional) Position: Tryck bara RET. Format: Nu är det dags för formatsträngen med l, c och r som talar vad det är för slags kolumner. I tabell 10.2 var det llr, men här ska det vara nåt annat, så svara nåt som stämmer med denna tabell. Nu bör allt vara på plats utom själv innehållet. Fyll i ord och streck för att få samma utseende som tabell 10.4. Använd TAB för att få lagom indrag på de rader du skriver. Se till att få alla accenter rätt med hjälp av tabell 10.3. Ett tecken som»ü«kan du skriva antingen med LaTeX-kommando som \"u eller direkt som ü i filen, men tecken som inte finns i Latin1, vilket t. ex. gäller för»ń«, måste du använda LaTeXkommandon för. Tabellrubrikerna är skrivna med sans serif. Efter hela denna table skriver du en kort text som refererar till tabellen med hjälp av tabell~\ref{tab:count}. TEXa med C-c C-c tills texten är»successfully formatted«igen. Kolla en extra gång att detta funkar innan du lämnar in filen! 109