0,0 → 1,772 |
% ctustyle.ex -- the template for typesetting theses at CTU in Prague |
% -------------------------------------------------------------------- |
% Petr Olsak Jan. 2013 |
|
\def\ctustyleversion{beta(q) Mar.2014} |
|
\message{CTUstyle: Thesis at Czech Technical University in Prague, |
v. <\ctustyleversion>} |
|
%%% Testing versions of csplain / opmac |
|
\def\ctustyleERR#1{\message{ERROR -- #1.}\expandafter\end} |
|
\ifx\chyph\undefined |
\expandafter\ifx \csname @@end\endcsname \relax \else % LaTeX's \end |
\expandafter \let\expandafter \end \csname @@end\endcsname \fi |
\ctustyleERR {csplain isn't detected, use ``pdfcsplain \jobname'' command}% |
\fi |
|
\ifx\pdfoutput\undefined |
\ctustyleERR {pdfTeX isn't detected, use ``pdfcsplain \jobname'' command}% |
\fi |
\pdfoutput=1 |
|
\def\tmp#1#2\end{\if$#2$\else |
\ctustyleERR {csplain doesn't read UTF-8 encoding, may be it is an old version}\fi}% |
\tmp č\end |
|
\newread\testinput |
\def\testfile#1#2{\openin\testinput=#1 |
\ifeof\testinput \ctustyleERR {#1 not found, install it from #2}\fi |
\closein\testinput |
} |
\testfile{opmac.tex}{petr.olsak.net/opmac.html} |
\testfile{ams-math.tex}{petr.olsak.net/opmac.html} |
\testfile{lmfonts.tex}{petr.olsak.net/csplain.html} |
|
\def\totlist{} \def\toflist{} |
|
\def\Xtab#1#2#3{\addto\totlist{\totline{#1}{#2}{#3}}} |
\def\Xfig#1#2#3{\addto\toflist{\tofline{#1}{#2}{#3}}} |
|
\input opmac |
|
\ifx\remskip\undefined |
\ctustyleERR {OPmac older than Jun. 2013. Upgrade from petr.olsak.net/opmac.html}% |
\fi |
|
%%% Declaration commands: |
|
\newtoks\faculty |
\newtoks\department |
\newtoks\title |
\newtoks\subtitle |
\newtoks\author |
\newtoks\supervisor \let\supervisors=\supervisor |
\newtoks\date |
\newtoks\studyinfo |
\newtoks\authorinfo |
\newtoks\workinfo |
\newtoks\workname |
\newtoks\pagetwo |
\newtoks\titleEN \newtoks\titleCZ \newtoks\titleSK |
\newtoks\subtitleEN \newtoks\subtitleCZ \newtoks\subtitleSK |
\newtoks\abstractEN \newtoks\abstractCZ \newtoks\abstractSK |
\newtoks\keywordsEN \newtoks\keywordsCZ \newtoks\keywordsSK |
\newtoks\thanks |
\newtoks\declaration |
\newtoks\specification |
|
%%% Mandatory declaration commands |
|
\def\mandatorydecl#1{\if&\the#1&% |
\ctustyleERR {the mandatory item \string#1 is undeclared or empty}% |
\fi |
} |
\def\makefront{% |
\ifx\mainlanguage\undefined |
\ctustyleERR {The \string\worktype[<type>/<lang>] command |
is missing before \string\makefront}\fi |
\everypar={} |
\mandatorydecl\faculty |
\mandatorydecl\title |
\mandatorydecl\author |
\mandatorydecl\date |
\ifnum\worktypenum>0 |
\mandatorydecl\abstractEN |
\def\tmp{EN}\ifx\mainlanguage\tmp |
\if&\the\abstractSK&\mandatorydecl\abstractCZ \fi |
\fi |
\def\tmp{CZ}\ifx\mainlanguage\tmp \mandatorydecl\abstractCZ \abstractSK={} \fi |
\def\tmp{SK}\ifx\mainlanguage\tmp \mandatorydecl\abstractSK \abstractCZ={} \fi |
\mandatorydecl\declaration |
\else \mandatorydecl\workname |
\fi |
\edef\tmpa{:F1:F2:F3:F4:F5:F6:F7:F8:MUVS:} |
\edef\tmpb{\noexpand\isinlist\noexpand\tmpa{:\the\faculty:}}\tmpb |
\iftrue \else |
\ctustyleERR {The \noexpand\faculty {\the\faculty} |
is not in the list F1, F2, ..., F8, MUVS}% |
\fi |
} |
|
\everypar={\normaltypingdenied} |
|
\def\normaltypingdenied{% |
\ctustyleERR{Text outside parameters on line \the\inputlineno. |
Use \noexpand\makefront first}\relax} |
|
|
%%% Automatically generated multilingual texts: |
|
\def\slet#1#2{\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname} |
\def\mtdef#1#2#3#4{\sdef{mt:#1:en}{#2} \sdef{mt:#1:\czs}{#3} |
\if$#4$\slet{mt:#1:sk}{mt:#1:\czs} |
\else \sdef{mt:#1:sk}{#4} |
\fi |
} |
\edef\czs{\csname lan:5\endcsname} % cz (old) or cs (new) |
|
\mtdef {ctu} {Czech\nl Technical\nl University\nl in Prague} |
{České\nl vysoké\nl učení technické\nl v Praze} {} |
% The name of University/Faculty is in Czech even if the document is in Slovak |
\mtdef {F1} {Faculty of Civil Engineering} |
{Fakulta stavební} {} |
\mtdef {F2} {Faculty of Mechanical Engineering} |
{Fakulta strojní} {} |
\mtdef {F3} {Faculty of Electrical Engineering} |
{Fakulta elektrotechnická} {} |
\mtdef {F4} {Faculty of Nuclear Sciences and Physical Engineering} |
{Fakulta jaderná a fyzikálně inženýrská} {} |
\mtdef {F5} {Faculty of Architecture} |
{Fakulta architektury} {} |
\mtdef {F6} {Faculty of Transportation Sciences} |
{Fakulta dopravní} {} |
\mtdef {F7} {Faculty of Biomedical Engineering} |
{Fakulta biomedicínského inženýrství} {} |
\mtdef {F8} {Faculty of Information Technology} |
{Fakulta informačních technologií} {} |
\mtdef {MUVS} {Masaryk Institute of Advanced Studies} |
{Masarykův ústav vyšších studií} {} |
|
\mtdef {abstract} {Abstract} {Abstrakt} {} |
\mtdef {thanks} {Acknowledgement} {Poděkování} {Poďakovanie} |
\mtdef {thanks0} {Acknowledgement} {Podekovani} {Podakovanie} |
\mtdef {declaration} {Declaration} {Prohlášení} {Prehlásenie} |
\mtdef {declaration0} {Declaration} {Prohlaseni} {Prehlasenie} |
\mtdef {keywords} {Keywords} {Klíčová slova} {Kľúčové slová} |
\mtdef {trans} {Title translation} {Překlad titulu} {Preklad titulu} |
\mtdef {title0} {TITLE} {TITUL} {} |
\mtdef {contents} {Contents} {Obsah} {} |
\mtdef {tables} {Tables} {Tabulky} {Tabuľky} |
\mtdef {figures} {Figures} {Obrázky} {} |
\mtdef {figures0} {Figures} {Obrazky} {} |
\mtdef {supervisor} {Supervisor} {Vedoucí práce} {Vedúci práce} |
\mtdef {supervisorD} {Supervisor} {Školitel} {Školiteľ} |
\mtdef {bibliography} {References} {Literatura} {Literatúra} |
\mtdef {appendix} {Appendix} {Příloha} {Príloha} |
\mtdef {specifi} {Specification} {Zadání} {Zadanie} |
\mtdef {specifi0} {Specification} {Zadani} {Zadanie} |
|
\mtdef {B} {Bachelor's thesis} {Bakalářská práce} {Bakalárska práca} |
\mtdef {M} {Master's thesis} {Diplomová práce} {Diplomová práca} |
\mtdef {D} {Ph.D. thesis} {Dizertační práce} {Dizertačná práca} |
|
\def\keepacc#1{\slet{mt:#10:sk}{mt:#1:sk}\slet{mt:#10:\czs}{mt:#1:\czs}} |
\def\keepaccents{\keepacc{thanks}% |
\keepacc{declaration}\keepacc{figures}\keepacc{specifi}} |
|
|
%%% Worktype |
|
\def\worktype[#1/#2]{% |
\isdefined{wt:#1}\iftrue \csname wt:#1\endcsname \relax |
\else \ctustyleERR {Unknown \noexpand\worktype parameter}\fi |
\isdefined{wl:#2}\iftrue \csname wl:#2\endcsname \relax |
\else \ctustyleERR {Unknown \noexpand\worktype parameter}\fi |
} |
\sdef{wt:O}{\chardef\worktypenum=0} |
\sdef{wt:B}{\chardef\worktypenum=1} |
\sdef{wt:M}{\chardef\worktypenum=2} |
\sdef{wt:D}{\chardef\worktypenum=3} |
|
\sdef{wl:EN}{\def\mainlanguage{EN}\ehyph} |
\sdef{wl:CZ}{\def\mainlanguage{CZ}\chyph} |
\sdef{wl:SK}{\def\mainlanguage{SK}\shyph} |
|
%%% Fonts |
|
\input lmfonts |
\ifx\font\corkencoded \def\tmp{ec}\else\def\tmp{cs}\fi |
|
\let\serifbf=\tenbf \let\serifbi=\tenbi |
\font\tenbf=\tmp-lmssbx10 |
\font\tenbi=\tmp-lmssbo10 |
\font\tenss=\tmp-lmss10 |
\font\tenssi=\tmp-lmsso10 |
\regfont\tenss \regfont\tenssi |
\def\ss{\tenss} \def\ssi{\tenssi} |
|
%%% Characters |
|
\ifx\font\corkencoded |
\chardef\endash="15 |
\chardef\emdash="16 |
\else |
\chardef\endash="7B |
\chardef\emdash="7C |
\fi |
|
\ifx\mubyte\undefined \else |
\mubyte \endash ^^e2^^80^^93\endmubyte % en dash |
\mubyte \emdash ^^e2^^80^^94\endmubyte % em dash |
\fi |
|
|
%%% Colors |
|
\def\Blue{\setcmykcolor{1 .43 0 0}} |
\def\liBlue{\setcmykcolor{.2 .08 0 0}} |
\def\liGrey{\setcmykcolor{0 0 0 0.13}} |
\let\nBlue=\Blue |
|
\def\blackwhite{\let\Blue=\Grey \let\nBlue=\Black \let\Red=\Grey \let\liBlue=\liGrey} |
\let\trysavetoner=\relax |
|
\def\savetoner{\def\trysavetoner{% |
\ifx\drafttext\empty |
\message{WARNING: final (not \string\draft) version, |
\noexpand\savetoner ignored} |
\else |
\let\liBlue=\White |
\fi |
}} |
|
\hyperlinks{\Black}{\Black} |
\def\tocborder{1 .8 0} |
\let\pgborder\tocborder |
\let\citeborder\tocborder |
\let\refborder\tocborder |
\let\urlborder\tocborder |
|
\ifx\localcolor\undefined \let\locc=\relax \else \let\locc=\localcolor \fi |
|
|
%%% Typesetting area |
|
\margins/2 a4 (32,32,30,30)mm |
\typosize[11/13.6] |
\parindent=4.1mm \iindent=\parindent |
|
\emergencystretch=2em |
|
\def\makeheadline{\vbox to0pt{\vskip-34pt |
\line{\vbox to10pt{}\the\headline}\vss}\nointerlineskip} |
\def\makefootline{\baselineskip=34pt \lineskiplimit=0pt \line{\the\footline}} |
|
|
%%% Draft |
|
{\tt\thefontsize[10] \global\let\ttt=\thefont} |
|
\def\drafttext{} |
\def\draft{\let\destbox=\draftdestbox |
\def\drafttext{\vbox to0pt{\vss \llap{ |
\Grey \bf\thefontsize[11] Draft: \the\day. \the\month. |
\the\year\Black}}}} |
|
\def\linespacing=#1#2 {\def\thelinespacing{#1#2}} |
\linespacing=1 |
|
\def\setlinespacing{% |
\ifdim\thelinespacing pt=1pt \else |
\ifx\drafttext\empty |
\message{WARNING: final (not \string\draft) version, |
\noexpand\linespacing ignored} |
\else |
\baselineskip=\thelinespacing\baselineskip |
\fi |
\fi |
} |
\def\draftdestbox[#1#2:#3]{\vbox to0pt{\kern-\destheight |
\pdfdest name{#1#2:#3} xyz\relax |
\if#1r\kern-3pt\llap{\locc\Red\ttt[#3]}\vss |
\else \if#1c\vss\llap{\locc\Red\ttt[\tmpb] }\kern-\prevdepth |
\else \vss \fi\fi}} |
|
%%% PDF info data |
|
\def\pdfinfodata{% |
{\def\TeX{TeX}\def\nl{ }% |
\ifx\pdfunidef\undefined |
\edef\tmp{/Author(\the\author) |
/CreationDate(\the\date) |
/Creator(TeX + CTUstyle) |
/Title(\the\title) |
/Subject(\ifcase\worktypenum |
\the\workname \or \mtext{B}\or \mtext{M}\or \mtext{D}\fi) |
/Keywords(\the\keywordsEN)} |
\edef\toasciidata{\toasciidata}\expandafter \setlccodes \toasciidata{}{}% |
\lowercase\expandafter{\expandafter\def\expandafter\tmp\expandafter{\tmp}}% |
\else |
\pdfunidef\tmpb{\the\author}\edef\tmp{/Author(\tmpb) /CreationDate(\the\date) }% |
\pdfunidef\tmpb{\the\title}% |
\edef\tmp{\tmp /Creator(TeX + CTUstyle) /Title(\tmpb) }% |
\pdfunidef\tmpb{\ifcase\worktypenum |
\the\workname \or \mtext{B}\or \mtext{M}\or \mtext{D}\fi}% |
\edef\tmp{\tmp /Subject(\tmpb) /Keywords(\the\keywordsEN)}% |
\fi |
\pdfinfo{\tmp}} |
\ifx\pdfunidef\undefined\else \keepaccents |
\let\insertoutlineI=\insertoutline |
\def\insertoutline##1{\pdfunidef\tmp{##1}\insertoutlineI{\tmp}} |
\fi |
} |
\addto\makefront{\pdfinfodata} |
|
%%% Title page |
|
\def\titlepage{ |
\insertoutline{\mtext{title0}} |
\line{\locc \let\longlocalcolor=\localcolor |
\Blue \vrule height 230mm width 4mm \Black \hss |
\vbox to230mm{\advance\hsize by-8mm \parindent=0pt |
\kern.3pt |
\leavevmode \strut\bf \ifcase\worktypenum |
\the\workname \or \mtext{B}\or \mtext{M}\or \mtext{D}\fi |
\vskip5mm \picw=3cm \def\picdir{}% |
\line{\inspic{ctulogo.pdf} \hss |
\vbox{\advance\hsize by-34mm |
\baselineskip=17pt\bf\thefontsize[15] |
\Blue \mtext{ctu}\par |
\kern.5pt}} |
\vskip8mm |
\line{\hbox{\bf\thefontsize[32] \printfaculty}\hss |
\vbox{\advance\hsize by-34mm |
\Black \mtext{\the\faculty}\par |
\the\department}} |
\vskip35mm |
\rightskip=0pt plus1fil |
{\typosize[25/30]\bf \nBlue \the\title \par} |
\if&\the\subtitle&\else \smallskip \fi |
{\typosize[15/25]\bf \nBlue \the\subtitle \par} |
\vskip15mm |
{\bf\thefontsize[15]\Black \the\author \par} |
\the\studyinfo \par |
\the\authorinfo \par |
\vss |
\the\date\par |
\the\workinfo\par |
\if$\the\supervisor$\else |
\ifnum\worktypenum=3 \mtext{supervisorD}% |
\else \mtext{supervisor}\fi: \the\supervisor\par\fi |
\kern-\prevdepth \kern1pt |
}}} |
\addto\makefront{% |
\bgroup \hbadness=4000 |
\pageno=-1 \def\advancepageno{\global\advance\pageno by-1 } |
\footline={\hss\drafttext} \titlepage \vfil\break |
} |
\def\printfaculty{\edef\tmpa{\the\faculty}\def\tmpb{MUVS}% |
\ifx\tmpa\tmpb \thefontsize[28] MÚVS\else \the\faculty \fi} |
|
%%% Page Two |
|
\def\printpagetwo{\null\vskip0pt plus1fil {\parindent=0pt \the\pagetwo\endgraf}} |
\addto\makefront{\printpagetwo \endgraf\break} |
|
%%% Specification page |
|
\def\specifipage{\if&\the\specification&\else |
\insertoutline{\mtext{specifi0}} |
\the\expandafter\specification\space \nextoddpage \fi} |
\addto\makefront{\specifipage} |
|
%%% Common front page |
|
\newbox\leftbox \newbox\rightbox |
\newdimen\frontht \frontht=220mm |
|
\def\sethsizefront{\advance\hsize by-12mm \divide\hsize by2 |
\emergencystretch=2em \righthyphenmin=2 \hbadness=5000 \penalty0 } |
|
\def\frontpage [#1/#2]{ |
\hrule height0pt \vskip0pt plus 1filll |
\line{\locc\bf\thefontsize[19] |
\Blue\hss\llap{#1} |
\def\tmp{}\if$#1$\else\def\tmp{/}\fi \if$#2$\else\def\tmp{/}\fi |
\hbox to10mm{\hss\tmp\hss}\rlap{#2}\Black\hss} |
\nobreak\medskip |
\line{\locc\sethsizefront |
\vtop{\hrule width\hsize height0pt \unvbox\leftbox}\hss |
\Blue\vrule height-2pt depth\frontht width4mm\Black\hss |
\vtop{\hrule width\hsize height0pt \unvbox\rightbox}} |
} |
|
|
%%% Declaration page |
|
\splittopskip=12pt plus20pt |
|
\def\prepbox#1{\setbox0=\vsplit #1to0pt \relax} |
|
\def\declpage{ |
\setbox\leftbox=\vbox{\sethsizefront \leavevmode\the\thanks} |
\prepbox\leftbox |
\setbox\rightbox=\vbox{\sethsizefront \leavevmode\the\declaration} |
\prepbox\rightbox |
\ifvoid\leftbox \ifvoid\rightbox \let\declpage=\relax \fi\fi |
\ifx\declpage\relax \else |
\insertoutline{\if&\the\thanks&\else\mtext{thanks0}\fi/\mtext{declaration0}} |
\frontpage[\if&\the\thanks&\else\mtext{thanks}\fi/\mtext{declaration}] |
\fi |
} |
\addto\makefront{% |
\footline={\hss\tenss\thefontsize[11]\romannumeral-\pageno\hss\drafttext} |
\declpage \vfil\break |
} |
\def\signature {\vskip2cm \indent\tocdotfill\null} |
\def\tocdotfill{\leaders\hbox to.4em{\hss.\hss}\hskip 1em plus1fill\relax} |
|
|
%%% Abstract page |
|
\def\abstractpage{ |
\chardef\orilang=\language |
\setbox\leftbox=\vbox{\sethsizefront \def\message##1{}\leavevmode |
\if&\the\abstractCZ&\shyph \the\abstractSK \par |
\let\keywords=\keywordsSK |
\let\titleL=\titleSK |
\let\subtitleL=\subtitleSK |
\else \chyph \the\abstractCZ \par |
\let\keywords=\keywordsCZ |
\let\titleL=\titleCZ |
\let\subtitleL=\subtitleCZ |
\fi |
\if&\the\keywords&\else{\bf\mtext{keywords}:} \the\keywords\par\fi |
\ifnum\orilang=\language \else |
\if&\the\titleL&\else{\bf\mtext{trans}:} \the\titleL |
\if&\the\subtitleL&\else \space(\the\subtitleL)\fi\fi\fi} |
\setbox\rightbox=\vbox{\sethsizefront \def\message##1{}\leavevmode |
\ehyph \the\abstractEN \par |
\if&\the\keywordsEN&\else{\bf\mtext{keywords}:} \the\keywordsEN\par\fi |
\ifnum\orilang=\language \else |
\if&\the\titleEN&\else{\bf\mtext{trans}:} \the\titleEN |
\if&\the\subtitleEN&\else \space(\the\subtitleEN)\fi\fi\fi} |
\prepbox\leftbox \prepbox\rightbox |
\ifvoid\leftbox \ifvoid\rightbox \let\abstractpage=\relax \fi\fi |
\ifx\abstractpage\relax \else |
\insertoutline{Abstrakt/Abstract} |
\frontpage[Abstrakt/Abstract] |
\fi |
} |
\addto\makefront{% |
\abstractpage \vfil\break |
} |
|
%%% Contents |
|
\newbox\tocbox |
|
|
\def\toclinehook{\advance\rightskip by0pt plus1em} |
|
\def\tocpages{ |
\setbox\tocbox=\vbox{\sethsizefront \iindent=4.7mm \maketoc\vfil} |
\prepbox\tocbox |
\setbox\rightbox=\vsplit\tocbox to\frontht |
\ifvoid\tocbox |
\insertoutline{/\mtext{contents}} |
\frontpage[/\mtext{contents}] |
\else |
\setbox\leftbox=\box\rightbox |
\setbox\rightbox=\vsplit\tocbox to\frontht |
\insertoutline{\mtext{contents}/} |
\frontpage[\mtext{contents}/] |
\fi |
\loop \ifvoid\tocbox \let\tmp=\relax |
\else \vfil\break |
\setbox\leftbox=\vsplit\tocbox to\frontht |
\setbox\rightbox=\vsplit\tocbox to\frontht |
\frontpage[/]\let\tmp=\do |
\fi |
\ifx\tmp\do \repeat |
} |
\addto\makefront{% |
\tocpages \vfil\break |
} |
|
%%% Tables / Figures |
|
\newbox\tofbox \newbox\totbox |
|
\def\tofpages{ |
\setbox\tofbox=\vbox{\sethsizefront \iindent=9mm \toflist\vfil} |
\setbox\totbox=\vbox{\sethsizefront \iindent=9mm \totlist\vfil} |
\prepbox\tofbox \prepbox\totbox |
\let\tmp=\do |
\ifvoid\tofbox \ifvoid\totbox \let\tmp=\relax \fi\fi |
\ifx\tmp\do |
\insertoutline{\ifvoid\totbox\else \mtext{tables}\fi/% |
\ifvoid\tofbox\else \mtext{figures0}\fi} |
\setbox\leftbox=\vsplit\totbox to\frontht |
\setbox\rightbox=\vsplit\tofbox to\frontht |
\frontpage[\ifdim\wd\leftbox=0pt \else\mtext{tables}\fi/% |
\ifdim\wd\rightbox=0pt \else\mtext{figures}\fi] |
\loop \let\tmp=\relax |
\ifvoid\totbox \else \setbox\leftbox=\vsplit\totbox to\frontht |
\let\tmp=\do \fi |
\ifvoid\tofbox \else \setbox\rightbox=\vsplit\tofbox to\frontht |
\let\tmp=\do \fi |
\ifx\tmp\do \vfil\break \frontpage[/] \repeat |
\fi |
} |
\addto\makefront{% |
\tofpages \vfil\break |
} |
|
%%% Typessetting of the document: |
|
\addto\makefront{% |
\footline={\hss\drafttext} |
\ifodd\pageno\else \null\vfil\break \fi |
\pageno=-\pageno \advance\pageno by-1 % page ranges (roman/decimal numeral) |
\pdfcatalog{/PageLabels<</Nums[0<</S/r>>\the\pageno<</S/D>>]>>} |
\egroup |
\setlinespacing |
\trysavetoner |
\pageno=1 \def\advancepageno{\global\advance\pageno by1 } |
\footline={\hss\tenss\thefontsize[11]\the\pageno\hss\drafttext} |
\outlines{0}\pdfcatalog{/PageMode /UseOutlines} |
} |
|
%%% Chapter, section |
|
\def\printchap#1{\vfil\supereject \vglue1cm |
\headline={\hfil\nextheadline}\xdef\headchap{\ifnonum\else\thechapnum.\ \fi#1}\mark{} |
\line{\locc\Blue\vrule height 11mm width4mm |
\hss\vtop{\advance\hsize by-8mm |
\chapfont \noindent |
\Black \ifnonum\else\mtext{chap} \fi |
{\bf\thefontsize[30]\dotocnum{\thechapnum}}\par\nobreak |
\noindent\nBlue #1\strut\nbpar}}% |
\nobreak\bigskip |
\firstnoindent |
} |
\def\printsec#1{\removelastskip |
\ifnum \lastpenalty<1000 \goodbreak \fi \bigskip\medskip |
\line{\locc\Blue\vrule height 6mm width4mm depth1mm |
\hss\vtop{\locc\advance\hsize by-8mm |
\secfont \noindent \Black\dotocnum{\thesecnum\quad}% |
\nBlue#1\strut\nbpar}}% |
\insertmark{#1}% |
\nobreak\medskip |
\firstnoindent |
} |
\def\printsecc#1{\removelastskip |
\ifnum \lastpenalty<1000 \goodbreak \fi \smallskip\medskip |
\line{\locc\Blue\vrule height 3.5mm width4mm\Black |
\hss\vtop{\locc\advance\hsize by-8mm |
\seccfont \noindent \dotocnum{\theseccnum\quad}% |
\nBlue#1\strut\nbpar\kern-4.5pt}}% |
\nobreak\smallskip\kern2pt |
\firstnoindent |
} |
\def\sechook#1\relax{\seccnum=0 \relax} |
|
\def\nextheadline{\global\headline={\printheadline}} |
|
\def\printheadline{\locc\tenssi\thefontsize[10]\ifodd\pageno |
\hskip-3.7cm\tecky\if&\firstmark&\else\ \fi\locpgcolor\Grey\firstmark\Black |
\else\locpgcolor\Grey\headchap\ \tecky\hskip-3.7cm\fi} |
|
\def\onesideprinting{\def\printheadline{\locc\tenssi\thefontsize[10] |
\locpgcolor\Grey\expandafter\ignoretospace\headchap\ \tecky |
\if&\firstmark&\else\ \fi\locpgcolor\Grey\firstmark\Black} |
\def\nextoddpage{\vfil\supereject}\shiftoffset=0pt |
} |
\def\ignoretospace#1\ {} |
|
\bf\thefontsize[25]\let\bigdotfont=\thefont \rm |
\def\tecky{\locc\liBlue\xleaders\hbox to10.5pt{\bf\bigdotfont\hss.\hss}\hfil\Black} |
|
%%% Appendicies |
|
\newcount\appnum |
\def\appletter{\ifcase\appnum ?\or A\or B\or C\or D\or E\or F\or G\or H\or |
I\or J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or |
W\or X\or Y\or Z\else ?\fi} |
|
\def\app#1\par{\global\advance\appnum by1 |
\ifx\chap\nochap \else \nextoddpage \global\let\chap=\nochap \fi |
\secnum=0 \seccnum=0 \relax |
\edef\theappnum{\appletter}\let\thechapnum=\theappnum \let\thetocnum=\theappnum |
\gdef\sechook ##1\def{\global\seccnum=0 |
\edef\thesecnum{\theappnum.\the\secnum}\let\thetocnum=\thesecnum |
\def}% |
\gdef\secchook ##1\def{% |
\edef\theseccnum{\theappnum.\the\secnum.\the\seccnum}\let\thetocnum=\thes |
\def}% |
\def\dotocnumafter{\wcontents\Xchap{#1}}% |
\printapp{#1\unskip}\mark{}% |
\nobreak |
} |
\def\nochap#1\par{\message{CTUstyle WARNING: \noexpand\chap inside |
Appendices is ignored.}} |
|
\def\printapp#1{\vfil\supereject \vglue1cm |
\headline={\hfil\nextheadline}\xdef\headchap{\theappnum\ #1}\mark{} |
\line{\locc\Blue\vrule height 11mm width4mm\Black |
\hss\vtop{\locc\advance\hsize by-8mm |
\chapfont \noindent |
\mtext{appendix} {\bf\thefontsize[30]\dotocnum{\theappnum}}\par\nobreak |
\noindent\nBlue #1\strut\nbpar}}% |
\nobreak\bigskip |
\firstnoindent |
} |
|
\def\bibchap{\nonum \chap \mtext{bibliography}\par} |
|
|
%%% Captions |
|
\def\thetnum{\thechapnum.\the\tnum} |
\def\athetnum{.} |
\def\thefnum{\thechapnum.\the\fnum} |
\def\athefnum{.} |
\def\captionhook#1{\typosize[10/12]% |
\ifx\clabeltext\undefined \else |
\ifx#1t\edef\tmp{\noexpand\wref\noexpand\Xtab |
{{\lastlabel}{\thetnum}{\clabeltext}}}\tmp |
\else \edef\tmp{\noexpand\wref\noexpand\Xfig |
{{\lastlabel}{\thefnum}{\clabeltext}}}\tmp |
\fi\fi |
\global\let\clabeltext=\undefined |
} |
\def\printcaption#1#2{{\bf#1 #2.}\enspace} |
|
\def\clabel[#1]#2{\gdef\clabeltext{#2}\label[#1]} |
|
\def\tofline#1#2#3{{\leftskip=\iindent \rightskip=\iindent plus1em |
\noindent\llap{\bf\ref[#1].\enspace}% |
{#3\unskip}\nobreak\tocdotfill\pgref[#1]\nobreak\hskip-\iindent\null\par}} |
\let\totline=\tofline |
|
%%% Numbered paragraphs |
|
\newcount\numA \newcount\numB \newcount\numC \newcount\numD \newcount\numE |
|
\def\chaphook#1\relax{\numA=0 \numB=0 \numC=0 \numD=0 \numE=0 |
\secnum=0 \seccnum=0 \tnum=0 \fnum=0 \dnum=0 \relax} |
|
\def\numberedpar#1#2{\par \global\advance\csname num#1\endcsname by1 |
\noindent\wlabel{\thechapnum.\the\csname num#1\endcsname}% |
{\bf#2 \thechapnum.\the\csname num#1\endcsname.}\space} |
|
%%% Blue verbatim |
|
\ttindent=\parindent |
|
{\tenss \thefontscale[700] \global\let\sevenss=\thefont} |
|
\def\tthook{\parskip=0pt \typosize[10.5/13.6]} |
|
\def\begtt{\ttskip\bgroup \wipeepar |
\setverb \adef{ }{ }% |
\ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi |
\parindent=\ttindent |
\tthook\relax |
\everypar={\rlap{\locc\liBlue |
\hskip-\ttindent \vrule width\hsize \strut}% |
\ifnum\ttline<0 \else \global\advance\ttline by1 |
\llap{\locc\Blue\sevenss\the\ttline\kern.5em\indent}\fi \kern2pt\Black} |
\def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\vskip-1pt\leavevmode\fi ##1} |
\obeylines \startverb |
} |
|
\def\viprintline{\vskip-1pt\indent |
\rlap{\locc\liBlue \hskip-\ttindent \vrule width\hsize \strut}% |
\ifnum \ttline<-1 \else |
\llap{\locc\Blue\sevenrm\ifnum\ttline<0 \the\viline \else |
\global\advance\ttline by1 \the\ttline \fi \kern.5em\indent}\kern2pt |
\fi |
\Black \tmp\par % print the line from \tmp |
} |
|
|
%%% Blue centered tables |
|
\def\ctable#1#2{ |
\centerline{\setbox0=\table{#1}{#2}% |
\rlap{\locc\liBlue \tmpdim=\ht0 \advance\tmpdim by3pt |
\vrule width\wd0 height\tmpdim depth5pt\Black}\box0}\nobreak\medskip |
} |
\def\tabiteml{\indent}\def\tabitemr{\indent} |
|
\def\cinspic#1 {\centerline{\inspic #1 }\nobreak\medskip} |
\let\oriendinsert=\endinsert |
\def\endinsert{\par\oriendinsert} |
|
%%% Items |
|
\def\normalitem{\locc\Blue{\bf\thefontsize[35].\kern-4pt}\Black\enspace} |
\sdef{item:x}{\raise.4ex\hbox{\locc\Blue\bf\thefontsize[17].\Black} } |
\sdef{item:n}{\the\itemnum.\kern.25em } |
|
%%% BibItems |
|
\let\oriurl=\url |
|
\def\bibtexhook{% |
\parindent=2\iindent |
\def\url##1{\unskip\hfil\break %{\rm\thefontsize[8]URL}: |
{\typosize[10/]\nobreak\space\oriurl{##1}}} |
} |
\def\bib[#1]{\par \ifnum\bibnum>0 \bibskip \fi |
\advance\bibnum by1 |
\wbib{#1}{\the\bibnum}% |
\hangindent=2\iindent |
\noindent \dest[cite:\the\bibnum]{1.2em}% |
\indent \llap{[\the\bibnum] }\ignorespaces |
} |
|
|
%%% Last thinks: |
|
\def\abbrv[#1]{\par \noindent\llap{#1\quad}\ignorespaces} |
|
\def\urlnote#1{\fnote{\url{#1}}} |
\def\nextoddpage{\vfil\supereject |
\ifodd\pageno \else \shipout\null \advancepageno \fi} |
|
\addto\runningfnotes{\addto\chaphook{\global\fnotenum=0}} |
|
\shortcitations |
\def\dprime{"} |
\activettchar" |
|
\endinput |
|
%%% Versions: |
|
beta(a) Jan.2013 First version released |
beta(b) Jan.2013 - 1 mm corrected in title page |
- Dodatok -> Priloha (Slovak phrase) |
- liBlue is somewhat lighter (0.3 -> 0.2) |
- \blackwhite and \savetonner introduced |
- \headline, \footline shifted |
- empty \thanks corrected |
- \nextoddpage, \urlnote introduced |
beta(c) Jan.2013 - new internal color macros |
beta(d) Feb.2013 - skolitel/vedouci-prace set off |
beta(e) Feb.2013 - \bibchap introduced, more space below \headline |
beta(f) Feb.2013 - \numberedpar introduced |
beta(g) Mar.2013 - \pagetwo added |
beta(h) Mar.2013 - \ifnum\lastpenalty added |
beta(i) May 2013 - \Black title in \blackwhite version |
- pagenumbers are now shown in right type in Acroread |
- pdfinfo introduced |
beta(j) May 2013 - \input pdfuni gives accented PDFoutlines + pdfinfo |
beta(k) Jul.2013 - Correction for OPmac version Jul 2013 |
- \blackwhite mode: titles in Black |
- \specification introduced |
beta(l) Jul.2013 - \splittopskip-12pt plus20pt in order to avoid underfull |
beta(m) Sep.2013 - \tofline: \rightskip=1\iindent |
- \margins centered |
beta(n) Oct.2013 - \savetonner -> \savetoner |
- \onesideprinting introduced |
beta(o) Nov.2013 - multilanguage: cz -> cz (accepts both variants) |
beta(p) Dec.2013 - \mtext in \bibchap added (bug correction) |
- \supereject in \chap, \app, \nextoddpage (bug correction) |
beta(q) Mar.2014 - \declaration+abstracts are optional if \worktype[O/*] |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |