Syfte: kontrakt för hur en tentamen renskrivs till en konceptliknande markdown-fil i meta/tentor/. Bygger på de allmänna renskrivningskonventionerna — de gäller också här. Detta dokument lägger bara till det som är specifikt för tentor. Förebild: M0068M-2025-05-28 — använd den som mall för struktur, ton och detaljnivå.


1. När och varför

En tenta-md är till för plugg, inte för publicering till någon ny student. Tre saker den ska kunna göra:

  1. Visa hela tentan i läsbar layout, så man kan skriva ut eller skumma den utan att öppna PDF:en.
  2. Erbjuda en kollapsad lösning per uppgift, så läsaren kan försöka själv först och vecka ut facit på begäran.
  3. Länka in i resten av valvet — när man fastnar på en uppgift ska man kunna klicka sig direkt till relevant konceptfil.

AI:ns roll här

Originalet är lärarens handskrivna lösningsförslag i PDF:en. AI:s uppgift är att typsätta den — sätta upp matematiken i LaTeX, förklara stegen i ord, lyfta in callouts och länkar. Det är inte AI:s uppgift att uppfinna alternativa lösningar, lägga till uppgifter eller ändra slutsvar.


2. Filnamn och placering

meta/tentor/
  <kurskod>-<datum>.md            # själva renskrivningen
  tenta<YYMMDD>_losn.pdf           # originalet (rör inte)
  tenta<YYMMDD>_svar.pdf           # kortare facit (om det är vad som finns)
  konventioner-tentor.md           # denna fil
  bilder/...                       # hellre meta/bilder/ (se §6)
  • Format: M0068M-2025-05-28.md. Kurskod versaler, datum ISO (YYYY-MM-DD).
  • PDF:en byter aldrig namn — den är källmaterial.
  • En tenta = en md. Slå inte ihop flera tentor i samma fil.

3. Frontmatter

---
kurs:
  - <kurskod>
tags:
  - tenta
  - <huvudämne>
  - <delämne>
status: utkast
datum: <YYYY-MM-DD>
typ: tenta
examinator: <Förnamn Efternamn>      # om känt
aliases:
  - Tenta <kurskod> <YYYY-MM-DD>
  - <annan naturlig variant>
---

Status

En nyrenskriven tenta är utkast. Höj till granskad först när ägaren själv räknat igenom och stämt av varje uppgift mot PDF-facit. AI:n höjer aldrig statusen ensidigt — samma regel som för konceptfiler.


4. Sidans struktur

> **Kurs:** [[<kurskod>]] — <kursnamn>
> **Datum:** <YYYY-MM-DD>
> **Examinator:** <namn>
> **Källa:** [[<original-pdf>|originaltentamen med lösningsförslag]]
 
> [!abstract] Översikt
> 
> Kort sammanfattning av vad uppgifterna täcker, gärna grupperat per modul. Detta är navigation, inte facit.
 
---
 
## 1. <kort beskrivande titel på uppgift 1>
<problemtext>
<eventuell figur>
*Totalpoäng: <poäng>*
 
> [!note]- Lösning
> 
> <detaljerad lösning>
 
---
 
## 2. <…>

 
## Se även
- länkar till relevanta konceptfiler

Riktlinjer för rubrikerna

  • Numrera uppgifterna (## 1., ## 2., …) precis som för konceptfilers huvudsektioner.
  • Lägg till en kort beskrivande titel efter numret (## 1. Tangentplan och tangentvektor). Bara “Uppgift 1” är otillräckligt — titeln gör innehållsförteckningen användbar.
  • --- mellan uppgifter, inte före ## Se även.

5. Lösning som kollapsbar callout

Kärnregeln

Problemtexten står direkt i sektionen — synligt. Lösningen ligger i en kollapsad callout > [!note]- Lösning. Detta är hela poängen med formatet: läsaren ska kunna skanna sidan och försöka själv innan facit veckas ut.

Bindestrecket efter ] är obligatoriskt — det är vad som gör callouten kollapsad som standard.

## 4. Dubbelintegraler över ett triangulärt område
 
![[tenta250528-uppgift4-triangel.png|460]]
 
Låt $T$ beteckna det triangulära område … *(problemtext)*
 
*Totalpoäng: 5*
 
> [!note]- Lösning
> 
> *(detaljerad lösning)*

Skillnad mot konceptfiler

I konceptfiler ligger exempel i [!example]- med Lösning som nästlad [!note]-. I en tenta finns ingen mening med ett ytterligare lager — uppgiften är sektionen. Använd alltså bara den ena callouten, för lösningen.


6. Bilder

Två sorters bilder i en tenta

  1. Problembild (figur som hör till uppgiftstexten i originalet). Extrahera ur PDF:en. Visa direkt under sektionsrubriken, före problemtexten.
  2. Lösningsbild (figur som klargör lösningen — t.ex. uppdelning av integrationsområde, inneslutande yta). Lägg in inne i [!note]- Lösning-callouten där den behövs.

Filnaming och placering

Bilder läggs i meta/bilder/ (samma katalog som alla andra valvbilder — Quartz hittar dem därifrån via ![[…]]).

Naming för tentabilder:

tenta<YYMMDD>-uppgift<N>-<kort-beskrivning>.png

Exempel:

tenta250528-uppgift4-triangel.png
tenta250528-uppgift7-halvsfar.png
tenta250528-uppgift7-slutning.png

<kort-beskrivning> är svenska, små bokstäver, bindestreck. Det gör det lätt att hitta alla bilder från en tenta i meta/bilder/ med en filtrering.

Hur bilder extraheras ur PDF

Använd pymupdf (fitz) — inte skärmdumpar

Skärmdumpar blir suddiga och tappar transparent bakgrund. pymupdf rendrar PDF-sidan vektoriskt och sparar exakt det område du vill ha.

Mall:

import fitz, os
src = "/home/pelle/quartz/content/meta/tentor/tenta250528_losn.pdf"
out = "/home/pelle/quartz/content/meta/bilder"
doc = fitz.open(src)
 
# (sidindex 0-baserat, filnamn, top, bottom, left, right) som fraktion av sidan
specs = [
    (1, "tenta250528-uppgift4-triangel.png", 0.10, 0.40, 0.14, 0.86),
    (2, "tenta250528-uppgift5-talt.png",     0.10, 0.40, 0.14, 0.86),
]
 
for idx, name, t, b, l, r in specs:
    page = doc[idx]
    R = page.rect
    crop = fitz.Rect(R.x0 + l*R.width, R.y0 + t*R.height,
                     R.x0 + r*R.width, R.y0 + b*R.height)
    pix = page.get_pixmap(matrix=fitz.Matrix(2.5, 2.5), clip=crop)
    pix.save(os.path.join(out, name))
  • Skala 2.5× ger tillräcklig upplösning för Quartz utan att filerna blir gigantiska.
  • Justera fraktionerna tills rubrikraden (“Uppgift N”) och brödtexten är borta — bara figurboxen kvar.

När man ska generera egna matplotlib-bilder

Lärarens handskrivna lösningar har ibland små skisser (t.ex. uppdelning av integrationsområde i och , slutande yta för Gauss). De är värdefulla men sitter inklämda mellan andra beräkningar.

Tröskel för egen figur

Generera en ren matplotlib-figur bara om geometrin är central för lösningen och svår att se i text. Annars: hänvisa till lärarens skiss i prosa och låt det vara. Spamma inte figurer.

Om du genererar — följ valvets palett (#fcfaf7 bakgrund, #2f4858 accent, #86a59c skugga, serif-typsnitt, 160 DPI).

Embed-syntax och bredd

![[tenta250528-uppgift4-triangel.png|460]]
  • 460 är bra för en vanlig problemfigur i löpande text på sidan.
  • 360–420 för småfigurer inne i en lösningscallout.
  • Quartz skalar ändå — siffran är riktvärde.

7. Lösningens detaljnivå

Detta är det enda stället där en tenta-md skiljer sig radikalt från en konceptfil: lösningen ska vara utförlig, inte komprimerad.

Tre saker måste finnas i varje lösning

  1. Vilken sats/metod används? En mening i början — “Vi använder Gauss sats”, “Detta är ett Lagrange-problem”, “Bivillkoret är kompakt så Weierstrass garanterar extremvärden”.
  2. Varje algebraiskt steg är skrivet ut. Inte “förenkla” utan den faktiska förenklingen. Studenten som plöjer en gammal tenta ska inte behöva fylla i mellansteg.
  3. \boxed{} runt slutsvaret. Ett per delfråga. Visuellt ankare när läsaren skummar.

Mall för en delfråga

**(a)** *(kort sammanfattning av angreppssättet, 1 mening)*
 
*(räkning, steg för steg, med löpande prosa mellan stegen)*
 
$$
\boxed{\;<slutsvar>\;}
$$

Vad lösningen inte ska innehålla

Begränsa AI:s frihet

  • Inte alternativa lösningsmetoder om de inte fanns i originalet. Lägg en > [!tip] med en mening om hur t.ex. Lagrange skulle ge samma sak — inte en hel andra lösning.
  • Inte rekonstruktion av sätt som kanske skulle fungera. Om lärarens lösning är direktberäkning, presentera direktberäkningen.
  • Inte rättningsanvisningar eller poängbedömningar (“man får 2 p för detta steg”). Ointressant för läsaren.
  • Inte uppfunna kontroller (“låt oss verifiera genom…”) om de inte fanns och inte uppenbart hjälper.

Tillägg som faktiskt hjälper

Två tillägg som höjer kvaliteten

  • > [!tip] Rimlighetskoll efter ett numeriskt slutsvar — gränsfall, dimensions- eller storleksuppskattning.
  • > [!tip] Igenkänningstrick när uppgiftens svårighet låg i att se en sats — t.ex. att en täljare är derivatan av en nämnares logaritm.

8. Länkning

Förstanämnande-regeln gäller

Länka relevanta konceptfiler bara första gången de dyker upp i tentan. Om uppgift 4 och uppgift 5 båda nämner Dubbelintegraler, länka bara i uppgift 4.

Sektionen ## Se även får upprepa länkar — det är navigation.

Vad som ska länkas:

  • Den centrala satsen / metoden som löser uppgiften.
  • Underliggande begrepp som dyker upp (t.ex. “konservativt fält” → Vektorfält).
  • Närbesläktade tekniker som nämns i en [!tip] (t.ex. Lagranges multiplikatormetod som alternativ).

Vad som inte ska länkas:

  • Generiska ord (funktion, integral, område, parametrisering).
  • Sig själv — den här filen länkar inte till sig själv.
  • Inuti $...$ eller $$...$$. Inte heller i frontmatter eller rubriker.

9. Översikt-callouten

> [!abstract] Översikt ligger högst upp och är en tabell över innehållet, inte en sammanfattning av lösningarna. Den ska kunna besvara frågan “vilka uppgifter testar område X?” på en sekund.

Mall:

> [!abstract] Översikt
> 
> Sju uppgifter som täcker hela kursen: tangentplan och kryssprodukt (1),
> kritiska punkter och Hessian (2), Lagrange via parametrisering (3),
> dubbelintegral över ett delat triangulärt område (4), volym genom skivning (5),
> kurvintegraler — direkt och via potential (6), och flöde genom halvsfär via Gauss (7).
> Räknat efter modul: M1·1 — M2·2 — M3·2 — M4·1 — M5·1.

Modulräkningen (sista raden) finns för att se hur viktningen ligger jämfört med kursplanens moduler. Hoppa över raden för kurser som inte är modulindelade.


10. ## Se även

3–8 wikilänkar. Här återupprepar vi alla viktiga konceptfiler från brödtexten — det är OK och förväntat.

## Se även
 
- [[<kurskod>]] — kursfilen
- [[<konceptfil 1>]] — uppgift N
- [[<konceptfil 2>]] — uppgift M

Kommentaren efter bindestrecket (“uppgift N”) gör att läsaren ser varför länken finns där.


11. Steg för steg — när du sätter dig med en ny tenta

Renskrivningsrutinen för tentor

  1. Öppna PDF:en. Räkna antalet uppgifter och dela upp i moduler — det blir grunden för Översikt-callouten.
  2. Extrahera problembilder ur PDF:en med pymupdf-skriptet i §6. Spara i meta/bilder/.
  3. Skapa filen meta/tentor/<kurskod>-<datum>.md med frontmatter och header-callout enligt §3 och §4.
  4. Skriv en uppgift i taget. Problemtext först (verbatim från PDF, kursivera lokala definitioner om de finns), sedan figur, sedan [!note]- Lösning.
  5. I varje lösning: börja med en mening som identifierar metoden, gå igenom stegen, \boxed{} slutsvaret. Lägg eventuella [!tip]-callouts på slutet av lösningen.
  6. Förstanämnande-länka medan du skriver. Slå inte upp länkar i efterhand — det är då man dubbel-länkar.
  7. Översikt-callouten skrivs sist. När man har sett alla uppgifter är det lättare att sammanfatta.
  8. ## Se även med kursfilen och uppgift-relaterade konceptlänkar.
  9. Lämna status: utkast. Ägaren räknar igenom och höjer status manuellt.

12. Vad som ALDRIG ska göras

Hårda gränser för tentor

  • Ändra inte slutsvar. Om lärarens svar verkar fel — skriv > [!warning] Möjlig felräkning och lämna originalet kvar. Ändra inte.
  • Hitta inte på uppgifter. Om PDF:en bara har 5 uppgifter, har den 5 uppgifter — det finns ingen “uppgift 6”.
  • Slå inte ihop delfrågor. Om uppgiften är (a)–(c) ska lösningen också vara (a)–(c).
  • Markera inte som granskad ensidigt. Detsamma som för konceptfiler.
  • Pusha inte utan att bli tillsagd.

Se även

  • konventioner — de allmänna renskrivningskonventionerna. Vinner vid konflikt med detaljerna här.
  • index — arbetsflödet i sin helhet.
  • M0068M-2025-05-28 — referenstenta, mall för struktur och ton.