---
tags:
  - meta
  - tenta
status: granskad
aliases:
  - Tentakonventioner
  - Renskrivningskonventioner för tentor
---
> **Syfte:** kontrakt för hur en tentamen renskrivs till en konceptliknande markdown-fil i `meta/tentor/`. Bygger på [[konventioner|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.

> [!important] 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

```yaml
---
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>
---
```

> [!note] 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

```markdown
> **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
```

> [!tip] 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

> [!important] 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.

```markdown
## 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)*
```

> [!warning] 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

> [!important] 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

> [!warning] 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:

```python
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 $T_1$ och $T_2$, slutande yta för Gauss). De är värdefulla men sitter inklämda mellan andra beräkningar.

> [!tip] 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 [[konventioner#8. Bilder|valvets palett]] (`#fcfaf7` bakgrund, `#2f4858` accent, `#86a59c` skugga, serif-typsnitt, 160 DPI).

### Embed-syntax och bredd

```markdown
![[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.

> [!important] 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

```markdown
**(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

> [!warning] 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

> [!tip] 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

> [!important] 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:

```markdown
> [!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.

```markdown
## 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

> [!important] 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

> [!warning] 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.
