initial commit
This commit is contained in:
commit
d6d51e218f
BIN
Bungee-Regular.ttf
Normal file
BIN
Bungee-Regular.ttf
Normal file
Binary file not shown.
BIN
background.pdf
Normal file
BIN
background.pdf
Normal file
Binary file not shown.
BIN
background_v1.pdf
Normal file
BIN
background_v1.pdf
Normal file
Binary file not shown.
197
kifschild.cls
Normal file
197
kifschild.cls
Normal file
|
@ -0,0 +1,197 @@
|
|||
%vim:ft=tex
|
||||
\ProvidesClass{kifschild}[2019/06/09 Poster auf der KIF]
|
||||
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
|
||||
\ProcessOptions\relax
|
||||
\LoadClass{scrartcl}
|
||||
|
||||
% packages
|
||||
\usepackage[landscape, left=.0cm, bottom=0.3cm, top=.3cm, right=1.25cm]{geometry}
|
||||
\usepackage{qrcode}
|
||||
\usepackage{xcolor}
|
||||
\definecolor{kifgray}{HTML}{595959}
|
||||
\usepackage{montserrat}
|
||||
% \usepackage{raleway}
|
||||
\usepackage{fontspec}
|
||||
\setmainfont[Color=kifgray]{[Bungee-Regular.ttf]}
|
||||
%\setmainfont{Montserrat}
|
||||
% \setmainfont{Raleway}
|
||||
|
||||
\usepackage{background}
|
||||
\backgroundsetup{scale = 1.0, angle = 0, opacity = 1.0,%
|
||||
contents = {\includegraphics[width = \paperwidth, height = \paperheight,
|
||||
keepaspectratio] {background}}}%
|
||||
|
||||
% fitbox stuff
|
||||
\usepackage{environ}% http://ctan.org/pkg/environ
|
||||
\newdimen\fontdim%
|
||||
\newdimen\upperfontdim%
|
||||
\newdimen\lowerfontdim%
|
||||
\newif\ifmoreiterations%
|
||||
\fontdim12pt
|
||||
|
||||
\newbox\trialbox%
|
||||
\newbox\linebox%
|
||||
\global\newcount\maxbad%
|
||||
\newcount\linebad%
|
||||
\newcount\currenthbadness%
|
||||
|
||||
|
||||
\makeatletter
|
||||
\NewEnviron{fitbox}[2]{% \begin{fitbox}{<width>}{<height>} stuff \end{fitbox}
|
||||
% Store environment body
|
||||
\def\stuff{%
|
||||
\BODY%
|
||||
}%
|
||||
% prepare badness box
|
||||
\def\badnessbox{%
|
||||
\global\maxbad=0\relax%
|
||||
\currenthbadness=\hbadness% save old \hbadness
|
||||
\hbadness=10000000\relax% make sure, TeX reports overfull boxes
|
||||
\message{Starting measureline recursion with width #1^^J}%
|
||||
\setbox\trialbox=\vbox{%
|
||||
\hsize#1\relax%
|
||||
\fontsize{\fontdim}{1.2\fontdim}%
|
||||
\selectfont%
|
||||
\stuff\par%
|
||||
\measurelines% start recursion
|
||||
}%
|
||||
% \noindent\usebox\trialbox\par
|
||||
\hbadness=\currenthbadness% restore old \hbadness
|
||||
}
|
||||
% prepare recursion to measure line badness
|
||||
\def\measurelines{%
|
||||
\message{Iteration of measurelines^^J}%
|
||||
\begingroup%
|
||||
\setbox\linebox=\lastbox% get the last line
|
||||
\setbox0=\hbox%
|
||||
to \hsize{\unhcopy\linebox}% put the last line into box0 to provoke badness calculation
|
||||
\linebad=\the\badness\relax% \badness now reflects the last typeset box, i.e. box0
|
||||
\message{Badness: \the\badness\space\the\linebad\space with max \the\maxbad\space at Fontsize: \the\fontdim\space^^J}%
|
||||
\ifnum\linebad>\maxbad% store the maximum badness
|
||||
\global\maxbad=\linebad% Uncomment this line to ignore overfull hboxes!
|
||||
\fi%
|
||||
\ifvoid% end of recursion
|
||||
\linebox%
|
||||
\else%
|
||||
\unskip\unpenalty\measurelines% do the recursion
|
||||
\ifhmode%
|
||||
\newline%
|
||||
\fi%
|
||||
\noindent\box\linebox% do the output
|
||||
\fi%
|
||||
\endgroup%
|
||||
}%
|
||||
% Prepare measurement box
|
||||
\def\buildbox{%
|
||||
\badnessbox% measure badness
|
||||
\setbox0\vbox{% measure height
|
||||
\hbox{%
|
||||
\fontsize{\fontdim}{1.2\fontdim}%
|
||||
\selectfont%
|
||||
\minipage{#1}%
|
||||
\vbox{%
|
||||
\stuff\par%
|
||||
}%
|
||||
\endminipage%
|
||||
}%
|
||||
}%
|
||||
\message{Measured badness: \the\maxbad\space at Fontsize: \the\fontdim\space^^J}%
|
||||
\dimen@\ht0
|
||||
\advance\dimen@\dp0
|
||||
\message{Measured box height: \the\dimen@\space^^J}%
|
||||
}%
|
||||
\def\shrinkheight{%
|
||||
\loop%
|
||||
\fontdim.5\fontdim% Reduce font size by half
|
||||
\buildbox%
|
||||
\message{Shrinking, new box height: \the\dimen@\space at Fontsize: \the\fontdim\space^^J}%
|
||||
\ifdim\dimen@>#2 \repeat%
|
||||
\lowerfontdim\fontdim%
|
||||
\upperfontdim2\fontdim%
|
||||
\fontdim1.5\fontdim%
|
||||
}%
|
||||
\def\shrinkwidth{%
|
||||
\loop%
|
||||
\fontdim.5\fontdim% Reduce font size by half
|
||||
\buildbox%
|
||||
\ifnum\maxbad>10000 \repeat%
|
||||
\lowerfontdim\fontdim%
|
||||
\upperfontdim2\fontdim%
|
||||
\fontdim1.5\fontdim%
|
||||
}%
|
||||
\def\growheight{%
|
||||
\loop%
|
||||
\fontdim2\fontdim% Double font size
|
||||
\buildbox%
|
||||
\message{Growing, new box height: \the\dimen@\space at Fontsize: \the\fontdim\space^^J}%
|
||||
\ifdim\dimen@<#2 \repeat%
|
||||
\upperfontdim\fontdim%
|
||||
\lowerfontdim.5\fontdim%
|
||||
\fontdim.75\fontdim%
|
||||
}%
|
||||
\buildbox%
|
||||
% Compute upper and lower bounds
|
||||
\ifdim\dimen@>#2
|
||||
\message{Need to shrink box height: \the\dimen@\space^^J}%
|
||||
\shrinkheight%
|
||||
\else
|
||||
\message{Need to grow box height: \the\dimen@\space to target: #2^^J}%
|
||||
\growheight%
|
||||
\fi
|
||||
\message{Max font: \the\upperfontdim\space^^J}%
|
||||
\message{Min font: \the\lowerfontdim\space^^J}%
|
||||
% Potentially further reduce bounds for overfull box
|
||||
\ifnum\maxbad>10000
|
||||
\shrinkwidth%
|
||||
\fi
|
||||
\message{Max font adjusted: \the\upperfontdim\space^^J}%
|
||||
\message{Min font adjusted: \the\lowerfontdim\space^^J}%
|
||||
% Now try to find the optimum height and width
|
||||
\loop%
|
||||
\buildbox%
|
||||
\message{Height: \the\dimen@\space^^J}%
|
||||
\ifdim\dimen@>#2
|
||||
\moreiterationstrue%
|
||||
\upperfontdim\fontdim%
|
||||
\advance\fontdim\lowerfontdim%
|
||||
\fontdim.5\fontdim%
|
||||
\else
|
||||
\ifnum\maxbad>10000
|
||||
\moreiterationstrue%
|
||||
\upperfontdim\fontdim%
|
||||
\advance\fontdim\lowerfontdim%
|
||||
\fontdim.5\fontdim%
|
||||
\else
|
||||
\advance\dimen@-#2
|
||||
\ifdim\dimen@<10pt
|
||||
\lowerfontdim\fontdim%
|
||||
\advance\fontdim\upperfontdim%
|
||||
\fontdim.5\fontdim%
|
||||
\dimen@\upperfontdim%
|
||||
\advance\dimen@-\lowerfontdim%
|
||||
\ifdim\dimen@<.2pt
|
||||
\moreiterationsfalse%
|
||||
\else
|
||||
\moreiterationstrue%
|
||||
\fi
|
||||
\else
|
||||
\moreiterationsfalse%
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\ifmoreiterations\repeat%
|
||||
\message{Selected font: \the\fontdim\space^^J}%
|
||||
\vbox%
|
||||
to #2{\box0\hbox{}}% Typeset content
|
||||
}%
|
||||
\makeatother
|
||||
|
||||
\usepackage[hidelinks]{hyperref}
|
||||
|
||||
|
||||
|
||||
|
||||
% pagestyle
|
||||
\pagestyle{empty}
|
||||
|
||||
|
34
kifschild.tex
Normal file
34
kifschild.tex
Normal file
|
@ -0,0 +1,34 @@
|
|||
\documentclass{kifschild}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{minipage}[b][\textheight][b]{.25\textwidth}%
|
||||
\centering
|
||||
% pictogram
|
||||
%\includegraphics[width=\textwidth, keepaspectratio]{charlie.jpg}%
|
||||
|
||||
% qrcode
|
||||
\qrcode[height=.95\textwidth]{https://m.dvb.de}
|
||||
\begin{fitbox}{.95\textwidth}{1cm}
|
||||
\url{https://m.dvb.de}
|
||||
\end{fitbox}
|
||||
\end{minipage}
|
||||
%
|
||||
\hspace{.05\textwidth}
|
||||
%
|
||||
\begin{minipage}[b][\textheight][c]{.65\textwidth}
|
||||
|
||||
\begin{fitbox}{\textwidth}{.5\textheight} % adjust textheight here if too big
|
||||
\centering
|
||||
NP
|
||||
\end{fitbox}
|
||||
|
||||
\vspace{2cm}
|
||||
\begin{fitbox}{\textwidth}{.22\textheight}
|
||||
\centering
|
||||
Unisex-Toilette\\
|
||||
(nicht pissoiriert)
|
||||
\end{fitbox}
|
||||
\end{minipage}
|
||||
|
||||
\end{document}
|
Loading…
Reference in a new issue