Rapportmall STIMA Laborationer
Author
Isak Hietala
Last Updated
a year ago
License
LaTeX Project Public License 1.3c
Abstract
Rapportmall (på svenska) för laborationer gjorda vid STIMA, Linköpings universitet.
v2.0
Rapportmall (på svenska) för laborationer gjorda vid STIMA, Linköpings universitet.
v2.0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Rapportmall för laborationsinlämningar som sker vid STIMA
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Anger dokumentklassen
% Inställningen 'openany' används för att tillåta kapitel att börja på en ojämn sida i rapporterna
\documentclass[10pt,swedish, openany]{book}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Laddar in paket som används i dokumentet
\usepackage[]{graphicx}
\usepackage[]{color}
\usepackage{alltt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\setlength{\parskip}{\smallskipamount}
\setlength{\parindent}{0pt}
% Ändrar vilket djup på rubriker som ska numreras
\setcounter{secnumdepth}{3}
% Ändrar vilket djup på rubriker som ska visas i innehållsförteckningen
\setcounter{tocdepth}{3}
% Ändrar sidans marginaler
\usepackage[top=100pt,bottom=100pt,left=68pt,right=66pt]{geometry}
% Paket som skapar dummy-text
\usepackage{lipsum}
% Hindrar LaTeX att fylla ut en sida hela vägen ner till botten
\raggedbottom
% Lägger till både svenska och engelska för användning
\usepackage[swedish, english]{babel}
% Lägger till sidnumreringen på botten av sidan
\usepackage{fancyhdr}
\fancyhf{} % Tar bort alla header/footer standardinställningar från paketet
\fancyfoot[C]{\thepage}
\renewcommand{\headrulewidth}{0pt} % Ändrar (tar bort) linje som separerar header och övrig text på sida
\pagestyle{fancy}
% Ändrar stilen på kapitelrubriker
\usepackage{titlesec}
\titleformat{\chapter}
{\normalfont\LARGE\bfseries}{\thechapter.}{1em}{}
\titlespacing{\chapter}{0pt}{50pt}{2\baselineskip} % Ändrar avstånd från rubrik till brödtext
% Ändrar inställningar för tabeller
\usepackage{float}
\floatstyle{plaintop} % Ändrar att tabellbeskrivningar hamnar ovanför tabellen
\restylefloat{table}
% Lägger till avstånd mellan beskrivning och tabell
\usepackage[tableposition=top]{caption}
% Ändrar inställningar för länkar (referenser)
\usepackage{hyperref}
\hypersetup{hidelinks,
linkcolor = blue} % Ändrar länkarnas färg till blå och tar bort den hemska röda rutan som vanligtvis skapas
% Anger en sökväg till en mapp där flera bilder kan läggas och senare anges med deras namn i rapporten
\graphicspath{ {images/} }
% Ändrar att första delen av rapporten numreras med romerska siffror
\frontmatter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Påbörjar dokumentet
\begin{document}
%%% Väljer svenska som språk för automatiserade rubriker
\selectlanguage{swedish}
%%%%% Lägger till instruktioner till titelsidan
\begin{titlepage}
\clearpage\thispagestyle{empty}
\centering
\vspace{2cm}
% Rubriker
{\large Labbrapport i Statistik \par}
\vspace{4cm}
{\Huge \textbf{Laboration X}} \\
\vspace{1cm}
{\large \textbf{Kurskod} \par}
\vspace{4cm}
{\normalsize Författare1 Namn \\ % \\ anger en radbrytning
Författare2 Namn \par}
\vspace{2cm}
\includegraphics[scale=0.75]{liu_logga.png}
\vspace{2cm}
% Information om kurshållaren
{\normalsize Avdelningen för Statistik och maskininlärning \\
Institutionen för datavetenskap \\
Linköpings universitet \par}
% Datum
{\normalsize 20XX-XX-XX \par}
\vspace{2cm}
\pagebreak
\end{titlepage}
% Lägger till en innehållsförteckning
\tableofcontents{}
% Sidbrytning
\clearpage
% Kommentera bort följande tre rader för att skapa en figur- och tabellförteckning. Behövs ej för laborationsrapporter
% \listoffigures
% \clearpage
% \listoftables
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%% Raderna ovanför denna kommentar bör inte ändras, förutom informationen som ska visas på titelsidan
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Brödtexten (rapporten) startar här
\mainmatter
% Skapar ett nytt kapitel med chapter, delkapitel med section, subsection, subsubsection osv.
\chapter{Introduktion}
Introducera laborationen; de datamaterial som används, målen med uppgifterna och annat förberedande arbete. Detta kan inkludera inläsning av data och paket där all form av output ska vara gömt såvida inget annat anges.
% Början av en R code chunk där förberedande arbete kan göras exempelvis inläsning av paket eller data.
% include = FALSE anger att inget kommer inkluderas i rapporten, men koden kommer köras
<<include = FALSE>>=
require(ggplot2)
@
\chapter{Uppgifter}
% Om * anges efter section/chapter-kommandot skapas en onumrerad rubrik som inte läggs till i innehållsförteckningen
\section*{Uppgift 1}
% För att en onumrerad rubrik ska läggas till i förteckningen används följande kommando
\addcontentsline{toc}{section}{Uppgift 1}
% Skapar ett onumrerat delkapitel och lägger inte till den manuellt i förteckningen
\subsection*{Exempel på hur R används i LaTeX}
Notera att i Overleaf fås ett felaktigt formateringsfel vid användande av \$ i \textit{code chunks}. Det är alltså inga problem fastän det kan tyckas det i dokumentredigeringen. Felet i denna rapport kan ses på rad 193.
\medskip
Först kör jag lite R-kod:
<<echo=TRUE>>=
# Jag har lite kod
require(xtable) # Laddar paketet xtable
data(iris)
mean(iris$Sepal.Length)
x <- 10
x
@
Med hjälp av `echo=FALSE` kan denna kod döljas för att endast få en utskrift, men i laborationsrapporter ska relevant, och kommenterad, kod bifogas i samband med lösningarna.
<<echo=FALSE>>=
# Jag har lite kod
library(xtable)
data(iris)
x <- 10
x
@
% Citeringar görs med kommandot \cite{nyckel} där nyckel är det som identifierar just denna referens i BiBTeX-filen
Jag skriver min rapport om datasetet iris.\cite{anderson1935irises} Självklart använder jag referenser korrekt. Vill jag referera till en viss sida gör jag det i noten. \cite[s. 2-4]{anderson1935irises} Då kommer fortfarande bara en referens att läggas till i litteraturförteckningen.
% Vi behöver inte använda code chunks för att köra R-kod utan kan använda "inline formulas".
Jag har samlat ihop datasetet iris som består av \Sexpr{nrow(iris)} observationer. De första observationerna kan ni se här: \label{min_data} % Kommandot \label{namn} skapar en etikett som senare kan hänvisas vid senare tillfällen på olika sätt
Att visa data direkt från R är ganska fult i dokument.
<<>>=
# Skriv ut data
head(iris)
@
Det är mycket snyggare att använda exempelvis xtable.
<< results='asis'>>=
# Jag har lite kod att köra
print(xtable(head(iris,n=20), caption="En tabell med data."),
include.rownames = FALSE, # Removes the row numbering
table.placement = "H") # Specifies the placement of the table, note that these two commands need to be placed inside the print() and not the xtable()
@
Om jag använder caption=”Rubrik” i funktionen xtable() så genereras en tabellrubrik som används för att skapa en tabellförteckning. Detta kallas floating i LaTeX och görs automatiskt av xtable().
\subsection*{Figurer}
% Här kommer en cross-reference till min tidigare etikett. \pageref anger sidan som etiketten ligger på, och \ref anger kapitel-, figur- eller tabellnumreringen.
Mitt data som ni kan se på sida \pageref{min_data}, har jag använt för att göra den snygga figur \ref{fig:En-figur} som finns på sida \pageref{fig:En-figur}.
% \begin{verbatim} är ett sätt att kunna skriva ut oformaterad text direkt i rapporten. För R-kod rekommenderas det att skapa en code-chunk och använda echo = TRUE istället.
Diagram skapas inte automatiskt i floating enviroment, så det får man göra manuellt i LaTeX med: \begin{verbatim}
\begin{figure}
\centering
\includegraphics{} % R-kod som skapar ett diagram kan ersätta \includegraphics{}
\caption{Caption}
\label{fig:my_label}
\end{figure}
\end{verbatim}
% Skapar ett figurfloat
\begin{figure}[H]
\centering
<< fig.height = 4, fig.width = 7>>=
ggplot(iris) + aes(x = Sepal.Length, y = Sepal.Width) + geom_point() +
theme_bw()
@
\caption{En figur} % Anger figurbeskrivningen
\label{fig:En-figur} % Skapar en etikett som faktiskt redan har hänvisats till.
\end{figure}
\subsection*{Linjär regression}
Jag har gjort massa häftiga analyser som linjär regression med alla \Sexpr{nrow(iris)} observationer:
<< results='asis'>>=
analys <- lm(Sepal.Length ~ Sepal.Width, data = iris)
xtable(analys, caption="Lite regressioner.")
@
Och en ANOVA-analys.
<< results='asis'>>=
print.xtable(xtable(anova(analys), caption = "ANOVA"))
@
Oavsett dyker alla tabeller upp i tabellförteckningen utan problem.
% Ett annat sätt att göra en sidbrytning
\pagebreak
\chapter{Lärdomar, problem, övriga kommentarer}
Under detta kapitel vill jag att ni tar upp de saker som ni lärt er, eventuella problem ni stött på och andra saker (kopplade till kursen) som ni tänkt på under arbetet med laborationen. Dessa tankar kan vara bra att ha när det är dags för att repetera kursen, så ni kommer ihåg saker som ni kanske hade lite problem med och fick göra någon speciallösning på eller liknande.
% Lägger till en bibliografi (referenslista)
\bibliographystyle{plain} % Anger stilen
\bibliography{BiBTeXexempel.bib} % Anger vilken BiBTeX-fil som ska användas
% Lägger till bibliografin i innehållsförteckningen
\addcontentsline{toc}{chapter}{\bibname}
\end{document}