\usepackage{marginnote}
|
\usepackage{qrcode}
|
\newcommand{\marker}[1]{\raisebox{0.3ex}{\marginnote{ #1}}}
|
%\newcommand{\marker}[1]{\normalmarginpar\marginpar{\hskip0.0cm\raisebox{0ex}{#1}}}
|
%\usepackage{titleps}
|
\usepackage{amsmath}%
|
\usepackage{MnSymbol}%
|
\usepackage{wasysym}%
|
\usepackage{a4wide}
|
\usepackage[slovene]{babel}
|
\usepackage[utf8]{inputenc}
|
|
|
\usepackage{upgreek} % Za pokoncne grske crke
|
\usepackage{graphicx}
|
\usepackage{rotating}
|
%\usepackage{a4wide,everyshi,keyval}
|
%\usepackage{textcomp}
|
%\usepackage{calc}
|
%\usepackage{refcount}
|
%\usepackage{xstring}
|
%\usepackage{ragged2e}
|
\usepackage{tikz}
|
\usepackage{ifthen}
|
\usetikzlibrary{calc}
|
|
%ADD PACKAGES HERE
|
|
|
\setlength{\topmargin}{0mm} %-17mm
|
\setlength{\hoffset}{0mm}
|
\setlength{\voffset}{-22mm}
|
\setlength{\headheight}{14mm}
|
\setlength{\headsep}{20mm}
|
\setlength{\footskip}{8mm}
|
\setlength{\oddsidemargin}{-15mm}
|
\setlength{\evensidemargin}{-15mm}
|
\setlength{\marginparwidth}{5mm}
|
\setlength{\textwidth}{190mm}
|
\setlength{\textheight}{232mm}
|
|
%some useful counters
|
\newcounter{problemsetid}
|
\newcounter{pageinproblemset}
|
\newcounter{firstinproblemset}
|
\newcounter{subproblem}
|
|
|
%We are not using newpagestyle from titleps, but we define it here:
|
\newcommand{\newpagestyle}[3]{%
|
\expandafter\newcommand\csname ps@#1\endcsname{\def\@oddhead{#2}\let\@evenhead\@oddhead
|
\def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
|
|
%this creates the qr code and a human name for the header (in first and in all subsequent pages)
|
\newcommand{\idlinewithname}[9]{\vskip3mm
|
\begin{minipage}[c]{0.09\textwidth} %place for QR Code
|
\qrcode[height=1.5cm]{#1,#2,#3,#4,#5}
|
\end{minipage}%
|
\begin{minipage}[c]{0.91\textwidth} %place for name and other info
|
%\settowidth{\namelength}{#6}
|
\hfill{\scriptsize\rm Študent/ka:\hskip3ex} \fbox{\parbox[c][7mm]{50mm}{\vspace{0mm}\hfil\Large{#6}\hfil\\\vspace{0mm}\hfil\small{\studentid}\hfil}}
|
\vskip1.5mm{\scriptsize\rm #7 }
|
\vskip-2mm\rule{\textwidth}{1pt}
|
\end{minipage}
|
\vskip2mm
|
\parbox{\textwidth}{
|
{\bfseries\large #8}\hfill #9}
|
}
|
|
|
%footer
|
\newcommand{\makefooter}[1]{
|
\vskip1mm\rule{\textwidth}{1pt}{
|
\parbox{\textwidth}{
|
\parbox{\textwidth}{\rm #1}\vskip3mm
|
\parbox{\textwidth}{\scriptsize\rm \productname~{\the\year}.~Razvijalci=$\left\{\parbox{9.5mm}{{\tiny{Fo\v{s}nari\v{c}}\\ \vskip-2.5mm{Peni\v{c}}\\ \vskip-3.3mm{Berkopec}}}\right.$\text{ver.}~\productversion%
|
%\hfill\if\thelastintest1{\rm $\star$ $\longleftrightarrow$ $\star$ }\else\fi
|
%\parbox{\textwidth}
|
\setcounter{pageinproblemset}{-\value{firstinproblemset}}
|
\addtocounter{pageinproblemset}{\value{page}}
|
\addtocounter{pageinproblemset}{1}
|
\hfill Podpis: \rule{40mm}{0.2pt}\hskip1cm Stran \thepageinproblemset, pola \theproblemsetid, rok \examid. }
|
}
|
}
|
}
|
|
|
|
|
%a style for first page. Header (see above) and the name of the faculty and the exam.
|
\newpagestyle{firstpagewithname}{%
|
%upper markers
|
\parbox{\textwidth}{
|
\setcounter{firstinproblemset}{\thepage}
|
\stepcounter{problemsetid}
|
\parbox{\textwidth}{\hskip1mm\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}}
|
%the header of the exam
|
|
\idlinewithname{\facultyid}{\examid}{\theproblemsetid}{1}{\studentid}{\studentname}{\facultyname}{\examtitle}{\examdate}
|
}
|
}{\parbox{\textwidth}{\makefooter{\footertext}}}
|
|
\newpagestyle{otherswithname}{%
|
%upper markers
|
\parbox{\textwidth}{
|
\parbox{\textwidth}{\hskip1mm\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}}
|
%the header of the exam
|
%
|
\setcounter{pageinproblemset}{-\value{firstinproblemset}}
|
\addtocounter{pageinproblemset}{\value{page}}
|
\addtocounter{pageinproblemset}{1}
|
|
\idlinewithname{\facultyid}{\examid}{\theproblemsetid}{\thepageinproblemset}{\studentid}{\studentname}{\facultyname}{\ }{\ }
|
}
|
}{\parbox{\textwidth}{\makefooter{\footertext}}}
|
|
|
%OLD STYLE PAGES
|
%this creates the qr code and SID for the header (in first and in all subsequent pages)
|
%
|
%
|
|
\def\xloop<#1#2>{%
|
\ifx\relax#1
|
\else
|
\sevensegnum{#1}\hskip1mm\xloop<#2>% here you can set the distance between the numbers
|
\fi}
|
\def\markletters#1{\xloop<#1\relax>}
|
|
\newcommand{\sid}[1]{
|
\markletters{#1}
|
}
|
|
\newcommand{\idlinewithsid}[8][]{\vskip3mm
|
\begin{minipage}[c]{0.09\textwidth} %place for QR Code
|
\qrcode[height=1.5cm]{#2,#3,#4,#5}
|
\end{minipage}%
|
\begin{minipage}[c]{0.91\textwidth} %place for name and other info
|
\ifx&
|
\phantom{
|
\hfill{\scriptsize\rm Ime in priimek:\hskip3ex \fbox{\parbox[c][7mm]{50mm}{\vspace{0mm}\hspace{50mm}}}\hfill\rm Vpisna \v{s}t.:\hskip3ex\hskip0mm\raisebox{-4mm}{#1}}
|
}
|
\else
|
\hfill{\scriptsize\rm Ime in priimek:\hskip3ex \fbox{\parbox[c][7mm]{50mm}{\vspace{0mm}\hspace{50mm}}}\hfill\rm Vpisna \v{s}t.:\hskip3ex\hskip0mm\raisebox{-4mm}{#1}}
|
\fi
|
\vskip1.5mm{\scriptsize\rm #6 }
|
\vskip-2mm\rule{\textwidth}{1pt}
|
\end{minipage}
|
\vskip2mm
|
\parbox{\textwidth}{
|
{\bfseries\large #7}\hfill #8}
|
}
|
|
\newpagestyle{firstpagewithsid}{%
|
%upper markers
|
\parbox{\textwidth}{
|
\setcounter{firstinproblemset}{\thepage}
|
\stepcounter{problemsetid}
|
\parbox{\textwidth}{\hskip1mm\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}}
|
%the header of the exam
|
|
\idlinewithsid[\sidprefill]{\facultyid}{\examid}{\theproblemsetid}{1}{\facultyname}{\examtitle}{\examdate}
|
}
|
}{\parbox{\textwidth}{\makefooter{\footertext}}}
|
|
\newpagestyle{otherswithsid}{%
|
%upper markers
|
\parbox{\textwidth}{
|
\parbox{\textwidth}{\hskip1mm\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}\parbox[t]{48mm}{$\blacksquare$}}
|
%the header of the exam
|
%
|
\setcounter{pageinproblemset}{-\value{firstinproblemset}}
|
\addtocounter{pageinproblemset}{\value{page}}
|
\addtocounter{pageinproblemset}{1}
|
|
\idlinewithsid{\facultyid}{\examid}{\theproblemsetid}{\thepageinproblemset}{\facultyname}{\ }{\ }
|
}
|
}{\parbox{\textwidth}{\makefooter{\footertext}}}
|
%
|
%
|
%
|
%%%%% END OLD STYLE
|
|
|
\newcommand{\problemtext}[3][]{%
|
\setcounter{subproblem}{0}%
|
\noindent{\hskip1mm\parbox[t]{4mm}{\bfseries\rightline{#2. }}}%
|
\noindent\parbox[t]{0.95\textwidth}{ #3 \ifx& \else $\mathbf{[}$\textbf{#1}$\mathbf{]}$ \fi}%
|
}
|
|
\newcommand{\subproblemtext}[1]{%
|
\addtocounter{subproblem}{1}%
|
\parbox[t]{0.95\textwidth}{\alph{subproblem}) #1}%
|
}
|
|
\newcommand{\answersinline}[4]{\noindent%
|
\parbox[t][][t]{180mm}{
|
\makebox[48mm][l]{\textcircled{\scriptsize{\rm{A}}}\hskip2pt\begin{minipage}[t][][t]{42mm}{{\small\begin{flushleft} #1\end{flushleft}}}\end{minipage}}%
|
\makebox[48mm][l]{\textcircled{\scriptsize{\rm{B}}}\hskip2pt\begin{minipage}[t][][t]{42mm}{{\small\begin{flushleft} #2\end{flushleft}}}\end{minipage}}%
|
\makebox[48mm][l]{\textcircled{\scriptsize{\rm{C}}}\hskip2pt\begin{minipage}[t][][t]{42mm}{{\small\begin{flushleft} #3\end{flushleft}}}\end{minipage}}%
|
\makebox[48mm][l]{\textcircled{\scriptsize{\rm{D}}}\hskip2pt\begin{minipage}[t][][t]{42mm}{{\small\begin{flushleft} #4\end{flushleft}}}\end{minipage}}%
|
\marker{$\blacksquare$}
|
}
|
}
|
|
%Answer multiline template
|
\newcommand{\answersmultiline}[4]{\noindent%
|
\parbox[t][][t]{180mm}{
|
\marker{$\blacktriangledown$}\textcircled{\scriptsize{\rm{A}}}\hskip4pt{\parbox[t][][t]{0.95\textwidth}{\small #1}}%
|
\vskip\multilinesep
|
\marker{$\blacktriangle$}\textcircled{\scriptsize{\rm{B}}}\hskip4pt{\parbox[t][][t]{0.95\textwidth}{\small #2}}%
|
\vskip\multilinesep
|
\marker{$\blacktriangle$}\textcircled{\scriptsize{\rm{C}}}\hskip4pt{\parbox[t][][t]{0.95\textwidth}{\small #3}}%
|
\vskip\multilinesep
|
\marker{$\blacktriangle$}\textcircled{\scriptsize{\rm{D}}}\hskip4pt{\parbox[t][][t]{0.95\textwidth}{\small #4}}%
|
}
|
}
|
|
|
|
|
%%7-segment display
|
%from: http://www.texample.net/tikz/examples/segment-display/
|
\pgfkeys{
|
/sevenseg/.is family, /sevenseg,
|
slant/.estore in = \sevensegSlant, % vertical slant in degrees
|
size/.estore in = \sevensegSize, % length of a segment
|
shrink/.estore in = \sevensegShrink, % avoids overlapping of segments
|
line width/.estore in = \sevensegLinewidth, % thickness of the segments
|
line cap/.estore in = \sevensegLinecap, % end cap style rect, round, butt
|
oncolor/.estore in = \sevensegOncolor, % color of an ON segment
|
offcolor/.estore in = \sevensegOffcolor, % color of an OFF segment
|
}
|
|
\pgfkeys{
|
/sevenseg,
|
default/.style = {slant = 0, size = 0.4cm, shrink = 0.1,
|
line width = 0.9mm, line cap = round,
|
oncolor = black, offcolor = gray!10}
|
}
|
|
%===============================================
|
% a b c d e f g - segment values
|
% \sevenseg[options]{{1,1,1,1,1,1,0,}}
|
%
|
\newcommand{\sevenseg}[2][]% options values
|
{%
|
\pgfkeys{/sevenseg, default, #1}%
|
\def\sevensegarray{#2}%
|
\begin{tikzpicture}%
|
% first define the position of the 6 corner points
|
\path (0,0) ++(0,0) coordinate (P1);
|
\path (0,0) ++(\sevensegSize,0) coordinate (P2);
|
\path (0,0) ++(90-\sevensegSlant:\sevensegSize) coordinate (P3);
|
\path (P2) ++(90-\sevensegSlant:\sevensegSize) coordinate (P4);
|
\path (P3) ++(90-\sevensegSlant:\sevensegSize) coordinate (P5);
|
\path (P4) ++(90-\sevensegSlant:\sevensegSize) coordinate (P6);
|
% then step through the 1/0 values in the segment array
|
\foreach \i in {0,...,6}%
|
{
|
\pgfmathparse{\sevensegarray[\i]}
|
\ifthenelse{\equal{\pgfmathresult}{1}}%
|
{\let\mycolor=\sevensegOncolor}% segment is on
|
{\let\mycolor=\sevensegOffcolor}% segment is off
|
\tikzstyle{segstyle} = [draw=\mycolor, line width = \sevensegLinewidth,
|
line cap = \sevensegLinecap]
|
%-----------------------
|
\ifthenelse{\equal{\i}{0}}{\path[segstyle]
|
(${1-\sevensegShrink}*(P5)+\sevensegShrink*(P6)$)
|
-- ($\sevensegShrink*(P5)+{1-\sevensegShrink}*(P6)$);}{} % a
|
\ifthenelse{\equal{\i}{1}}{\path[segstyle]
|
(${1-\sevensegShrink}*(P6)+\sevensegShrink*(P4)$)
|
-- ($\sevensegShrink*(P6)+{1-\sevensegShrink}*(P4)$);}{} % b
|
\ifthenelse{\equal{\i}{2}}{\path[segstyle]
|
(${1-\sevensegShrink}*(P4)+\sevensegShrink*(P2)$)
|
-- ($\sevensegShrink*(P4)+{1-\sevensegShrink}*(P2)$);}{} % c
|
\ifthenelse{\equal{\i}{3}}{\path[segstyle]
|
(${1-\sevensegShrink}*(P1)+\sevensegShrink*(P2)$)
|
-- ($\sevensegShrink*(P1)+{1-\sevensegShrink}*(P2)$);}{} % d
|
\ifthenelse{\equal{\i}{4}}{\path[segstyle]
|
(${1-\sevensegShrink}*(P1)+\sevensegShrink*(P3)$)
|
-- ($\sevensegShrink*(P1)+{1-\sevensegShrink}*(P3)$);}{} % e
|
\ifthenelse{\equal{\i}{5}}{\path[segstyle]
|
(${1-\sevensegShrink}*(P3)+\sevensegShrink*(P5)$)
|
-- ($\sevensegShrink*(P3)+{1-\sevensegShrink}*(P5)$);}{} % f
|
\ifthenelse{\equal{\i}{6}}{\path[segstyle]
|
(${1-\sevensegShrink}*(P3)+\sevensegShrink*(P4)$)
|
-- ($\sevensegShrink*(P3)+{1-\sevensegShrink}*(P4)$);}{} % g
|
}
|
\end{tikzpicture}%
|
}
|
|
\newcommand{\sevensegnum}[2][]% sample characvters
|
{%
|
\ifthenelse{\equal{#2}{0}}{\sevenseg[#1]{{1,1,1,1,1,1,0,}}}{%
|
\ifthenelse{\equal{#2}{1}}{\sevenseg[#1]{{0,1,1,0,0,0,0,}}}{%
|
\ifthenelse{\equal{#2}{2}}{\sevenseg[#1]{{1,1,0,1,1,0,1,}}}{%
|
\ifthenelse{\equal{#2}{3}}{\sevenseg[#1]{{1,1,1,1,0,0,1,}}}{%
|
\ifthenelse{\equal{#2}{4}}{\sevenseg[#1]{{0,1,1,0,0,1,1,}}}{%
|
\ifthenelse{\equal{#2}{5}}{\sevenseg[#1]{{1,0,1,1,0,1,1,}}}{%
|
\ifthenelse{\equal{#2}{6}}{\sevenseg[#1]{{1,0,1,1,1,1,1,}}}{%
|
\ifthenelse{\equal{#2}{7}}{\sevenseg[#1]{{1,1,1,0,0,0,0,}}}{%
|
\ifthenelse{\equal{#2}{8}}{\sevenseg[#1]{{1,1,1,1,1,1,1,}}}{%
|
\ifthenelse{\equal{#2}{9}}{\sevenseg[#1]{{1,1,1,1,0,1,1,}}}{%
|
\ifthenelse{\equal{#2}{A}}{\sevenseg[#1]{{1,1,1,0,1,1,1,}}}{%
|
\ifthenelse{\equal{#2}{B}}{\sevenseg[#1]{{0,0,1,1,1,1,1,}}}{%
|
\ifthenelse{\equal{#2}{C}}{\sevenseg[#1]{{0,0,0,1,1,0,1,}}}{%
|
\ifthenelse{\equal{#2}{D}}{\sevenseg[#1]{{0,1,1,1,1,0,1,}}}{%
|
\ifthenelse{\equal{#2}{E}}{\sevenseg[#1]{{1,0,0,1,1,1,1,}}}{%
|
\ifthenelse{\equal{#2}{F}}{\sevenseg[#1]{{1,0,0,0,1,1,1,}}}{%
|
\ifthenelse{\equal{#2}{x}}{\sevenseg[#1]{{0,0,0,0,0,0,0,}}}{%
|
{\sevenseg[#1]{{0,0,0,0,0,0,0,}}}}}}}}}}}}}}}}}}}}%
|
}
|