Zbirka nalog se generira iz sledečih datotek:
or-zbirka.tex
: glavna datoteka zbirketest.tex.template
:
predloga za testiranjereference.bib
: bibliografija v obliki BibTeXslovene.bdf
: slovenski prevodi za babelbib
omrezja.sty
:
knjižnica za risanje omrežij
(potrebna je ročna nastavitev)tex/
: pomožne datoteke (uvoz paketov, definicije funkcij)naloge/
: datoteke z nalogamislike/
: datoteke s slikamipgf/
: mapa za prevedene slikeV mapi naloge/
se nahajajo naloge, vsaka v svoji datoteki.
Vsaka naloga ima sledečo strukturo:
\begin{naloga}[Naslov]{Avtor}{Vir}
\begin{vprasanje}
Besedilo naloge
\end{vprasanje}
\begin{odgovor}
Besedilo rešitve
\end{odgovor}
\end{naloga}
Ime datoteke z nalogo (brez končnice .tex
) je tudi ime,
s katerim je mogoče sklicevanje na nalogo
ter njeno rešitev, slike in tabele.
Razporeditev nalog po poglavjih je določena z datotekami v mapi tex/
(datoteka tex/seznam.tex
določa poglavja).
Kot je razvidno iz zgornjega primera, je naslov pri nalogi neobvezen in se ga lahko izpusti.
V mapi slike/
so zbrane slike,
večinoma opisane v jeziku PGF/TikZ.
V večini primerov je ime datoteke s sliko (brez končnice .tikz
)
enako imenu naloge, ki ji pripada.
V primeru, ko nalogi pripada več slik, je ime lahko tudi drugačno,
a naj se začne z imenom naloge
(npr. če ima naloga
eno sliko v vprašanju in drugo v rešitvi,
je lahko druga v datoteki slike/naloga-resitev.tikz
).
Sliko v nalogo vključimo tako:
\begin{slika}[postavitev]
\pgfslika[slika]
\podnaslov[sklic]{Opis slike}
\end{slika}
Okolje slika
ima neobvezen argument za postavitev -
gre za neobvezen parameter k LaTeXovemu okolju figure
s privzeto vrednostjo t!
(tj., slika se postavi na vrh strani).
Ukaz \pgfslika
vključi sliko v datoteki .tikz
z imenom,
podanim z neobveznim argumentom
(oziroma ustrezno prevedeno sliko v mapi pgf/
).
S tem imenom se je mogoče sklicevati na sliko.
Če ime ni podano, se uporabi ime trenutne naloge.
Namesto ukaza \pgfslika
se lahko slika vključi tudi na druge načine,
npr. z \includegraphics
.
Če je slika preširoka, se lahko uporabi \makebox
za ustrezno postavitev.
Ukaz \podnaslov
vstavi napis pod sliko v obliki
Opis slike
za nalogo sklic
.
Če neobvezni sklic ni podan,
se izpiše sklic na trenutno nalogo oziroma rešitev.
Namesto ukaza \podnaslov
se lahko uporabi
tudi LaTeXov ukaz \caption
,
s katerim lahko nastavimo poljuben napis.
V primerih, ko želimo imeti več variant iste slike
(npr. graf v besedilu naloge in njegova dopolnitev v rešitvi),
je mogoče osnovno sliko imeti v svoji datoteki,
ki naj pa vsebuje besedo osnova
(npr. slike/naloga-osnova.tikz
).
Tako datoteko se lahko vključi z ukazom \input
.
V primeru dodajanja take datoteke
je potrebno še posodobiti Makefile
,
da se zabeleži ustrezna odvisnost med datotekami.
Podobno kot slike je mogoče dodati tudi tabele, na katere je možno sklicevanje, npr.
\begin{tabela}[postavitev]
\begin{tabular}{c|cc}
...
\end{tabular}
\podnaslov[sklic]{Opis tabele}
\end{tabela}
Okolje tabela
deluje podobno kot okolje slika
-
neobvezni argument za postavitev (s privzeto vrednostjo t!
)
se poda k LaTeXovemu okolju table
.
Na tabelo se sklicujemo z imenom trenutne naloge,
lahko pa znotraj okolja tabela
z ukazom \setlabel
nastavimo tudi drugačno oznako.
Za sklicevanje so na voljo naslednji ukazi:
\nal[oznaka]
- naloga s podano oznako,\res[oznaka]
- rešitev naloge s podano oznako,\fig[oznaka]
- slika s podano oznako, in\tab[oznaka]
- tabela s podano oznako.Pri vseh zgornjih funkcijah je oznaka neobvezen argument - če ni podana, se uporabi ime trenutne naloge. Slike in tabele imajo lahko iste oznake kot naloge (pravzaprav je tako privzeto).
Zgornji ukazi uporabljajo funkcijo \xspace
,
ki poskusi poskrbeti za ustrezno vstavljanje presledka po sklicu.
Ker se pa včasih vstavi presledek, ko ta ni zaželen,
lahko za sklic postavimo še {}
,
da se presledek ne izpiše
(npr. \nal{}(a)
za sklic na točko (a) trenutne naloge).
Tukaj je še nekaj napotkov za pisanje rešitev.
.
).
Za ločilo tisočic se uporablja kratek presledek
(\,
v matematičnem načinu).algorithmic
.
{\sl ...}
).{\sc ...}
)
z velikimi začetnicami besed (CamelCase).
Pri podajanju imena funkcije v \Function
uporaba \sc
ni potrebna.\operatorname{...}
.\True
in \False
.\Null
,
za funkcijo, ki ne naredi ničesar, pa \NOp
.\length
, \isEmpty
, \append
, \pop
, \push
, \reverse
.\Adj
(npr. \Adj(G, u)
za sosede vozlišča u v grafu G).Zaradi velike količine slik je prevajanje zbirke dolgotrajen proces
(možno ga je sicer skrajšati s predhodnim prevajanjem slik,
glej pgf/README.md
).
V ta namen je v repozitoriju datoteka
test.tex.template
,
ki služi kot predloga za testiranje posamezne naloge.
Te datoteke ne spreminjamo, pač pa jo lahko skopiramo v test.tex
(vnos v .gitignore
bo preprečil njeno dodajanje na git)
in tam popravimo definicijo ukaza \testnaNaloga
na ime želene naloge:
\newcommand{\testnaNaloga}{naloga}
Pri prevajanju s pdflatex
bo v test.pdf
prikazana samo izbrana naloga skupaj s svojo rešitvijo.