From 09ba3955052486948229a3b60ff26fc3c5ed1af2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 31 Aug 2015 22:43:58 +0000 Subject: xebaposter (31aug15) git-svn-id: svn://tug.org/texlive/trunk@38257 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/xebaposter/README | 25 + .../doc/latex/xebaposter/images/docs-boxshape.pdf | Bin 0 -> 12002 bytes .../latex/xebaposter/images/docs-headerborder.pdf | Bin 0 -> 6050 bytes .../latex/xebaposter/images/docs-headershape.pdf | Bin 0 -> 8472 bytes .../doc/latex/xebaposter/images/fig3.pdf | Bin 0 -> 128455 bytes .../doc/latex/xebaposter/images/fig4.pdf | Bin 0 -> 10658 bytes .../doc/latex/xebaposter/images/fig5.pdf | Bin 0 -> 11325 bytes .../doc/latex/xebaposter/images/fig6.pdf | Bin 0 -> 5862 bytes .../doc/latex/xebaposter/images/logo.png | Bin 0 -> 9330 bytes .../doc/latex/xebaposter/images/shariflogo.png | Bin 0 -> 21735 bytes .../texmf-dist/doc/latex/xebaposter/poster-fa.pdf | Bin 0 -> 221491 bytes .../texmf-dist/doc/latex/xebaposter/poster-fa.tex | 240 +++++ .../doc/latex/xebaposter/xebaposter-doc.pdf | Bin 0 -> 105806 bytes .../doc/latex/xebaposter/xebaposter-doc.tex | 304 ++++++ .../texmf-dist/tex/latex/xebaposter/xebaposter.cls | 1130 ++++++++++++++++++++ 15 files changed, 1699 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/xebaposter/README create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/docs-boxshape.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/docs-headerborder.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/docs-headershape.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/fig3.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/fig4.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/fig5.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/fig6.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/logo.png create mode 100644 Master/texmf-dist/doc/latex/xebaposter/images/shariflogo.png create mode 100644 Master/texmf-dist/doc/latex/xebaposter/poster-fa.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/poster-fa.tex create mode 100644 Master/texmf-dist/doc/latex/xebaposter/xebaposter-doc.pdf create mode 100644 Master/texmf-dist/doc/latex/xebaposter/xebaposter-doc.tex create mode 100644 Master/texmf-dist/tex/latex/xebaposter/xebaposter.cls (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/xebaposter/README b/Master/texmf-dist/doc/latex/xebaposter/README new file mode 100644 index 00000000000..3de34c12312 --- /dev/null +++ b/Master/texmf-dist/doc/latex/xebaposter/README @@ -0,0 +1,25 @@ +_____________________ +The xebaposter class +v2.1 + +The class is designed for making an academic poster. This work is a fork of +baposter by Brian Amberg and Reinhold Kainhofer available at +http://www.brian-amberg.de/uni/poster/. + +The class should be used with bidi and xepersian packages, +because it uses some special environments and commands from these packages. + +For more information, please see the documentation. + +Current version release date: 2015/08/28 +___________________ +Seiied-Mohammad-Javad Razvian +javadr@gmail.com + +Copyright © 2015 +It may be distributed and/or modified under the LaTeX Project Public License, +version 1.3c or higher (your choice). The latest version of +this license is at: http://www.latex-project.org/lppl.txt + +This work is “author-maintained” (as per LPPL maintenance status) +by Seiied-Mohammad-Javad Razavian. diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/docs-boxshape.pdf b/Master/texmf-dist/doc/latex/xebaposter/images/docs-boxshape.pdf new file mode 100644 index 00000000000..c086e2fc702 Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/docs-boxshape.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/docs-headerborder.pdf b/Master/texmf-dist/doc/latex/xebaposter/images/docs-headerborder.pdf new file mode 100644 index 00000000000..d2225878a10 Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/docs-headerborder.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/docs-headershape.pdf b/Master/texmf-dist/doc/latex/xebaposter/images/docs-headershape.pdf new file mode 100644 index 00000000000..cf58cdbe937 Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/docs-headershape.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/fig3.pdf b/Master/texmf-dist/doc/latex/xebaposter/images/fig3.pdf new file mode 100644 index 00000000000..30a883b7a38 Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/fig3.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/fig4.pdf b/Master/texmf-dist/doc/latex/xebaposter/images/fig4.pdf new file mode 100644 index 00000000000..d3f10233ada Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/fig4.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/fig5.pdf b/Master/texmf-dist/doc/latex/xebaposter/images/fig5.pdf new file mode 100644 index 00000000000..324dd181d35 Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/fig5.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/fig6.pdf b/Master/texmf-dist/doc/latex/xebaposter/images/fig6.pdf new file mode 100644 index 00000000000..5c9ab57864d Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/fig6.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/logo.png b/Master/texmf-dist/doc/latex/xebaposter/images/logo.png new file mode 100644 index 00000000000..9dd5d04fbf8 Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/logo.png differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/images/shariflogo.png b/Master/texmf-dist/doc/latex/xebaposter/images/shariflogo.png new file mode 100644 index 00000000000..1f8f80c8273 Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/images/shariflogo.png differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/poster-fa.pdf b/Master/texmf-dist/doc/latex/xebaposter/poster-fa.pdf new file mode 100644 index 00000000000..1f4787f1e8e Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/poster-fa.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/poster-fa.tex b/Master/texmf-dist/doc/latex/xebaposter/poster-fa.tex new file mode 100644 index 00000000000..b2fb43efa2a --- /dev/null +++ b/Master/texmf-dist/doc/latex/xebaposter/poster-fa.tex @@ -0,0 +1,240 @@ +\documentclass[debug,a0paper,portrait]{xebaposter} + +\usepackage{url} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{relsize} % for \smaller +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{xecolor} +\usepackage{wrapfig} +\graphicspath{{images/}} +\usepackage[inline]{enumitem}% for making inline list. +\setlist{noitemsep}% Save space in lists. + + +\usepackage{ptext} +\usepackage{xepersian} +\settextfont{Yas} + +%\usepackage{geometry} +%\geometry{papersize={90cm,170cm},verbose=ture,reset} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%% Some math symbols used in the text + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Format +% \newcommand{\RotUP}[1]{\begin{sideways}#1\end{sideways}} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Multicol Settings + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \setlength{\columnsep}{0.7em} +% \setlength{\columnseprule}{0mm} + +%% Begin of Document +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} +%%% Setting User Defined Background %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%if you want to use your preferred background, you should set background=user in poster settings. +\background{ + \begin{bidi@tikzpicture}[remember picture,overlay]% + \fill [yellow!20] {(current page.south east) rectangle (current page.north west)};% + \draw (current page.center)+(0pt,0pt) node[anchor=center,opacity=.1] + {\includegraphics[width=1.1\textwidth]{shariflogo}}; + \end{bidi@tikzpicture}% +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Here starts the poster +%%--------------------------------------------------------------------------- +%% Format it to your taste with the options +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \definecolor{silver}{cmyk}{0,0,0,0.3} + \definecolor{yellow}{cmyk}{0,0,0.9,0.0} + \definecolor{reddishyellow}{cmyk}{0,0.22,1.0,0.0} + \definecolor{black}{cmyk}{0,0,0.0,1.0} + \definecolor{darkYellow}{cmyk}{0,0,1.0,0.5} + \definecolor{darkSilver}{cmyk}{0,0,0,0.1} + + \definecolor{lightyellow}{cmyk}{0,0,0.3,0.0} + \definecolor{lighteryellow}{cmyk}{0,0,0.1,0.0} + \definecolor{lighteryellow}{cmyk}{0,0,0.1,0.0} + \definecolor{lightestyellow}{cmyk}{0,0,0.05,0.0} + + \begin{poster}% + % Poster Options + { + eyecatcher=true, + % Color style + bgColorOne=lighteryellow, + bgColorTwo=lightestyellow, + borderColor=reddishyellow, + headerColorOne=yellow, + headerColorTwo=reddishyellow, + headerFontColor=cyan, + boxColorOne=lightyellow, + boxColorTwo=lighteryellow, + % Format of textbox + textborder=faded, + % Format of text header + headerborder=closed, + headerheight=0.1\textheight, + headershape=roundedleft, + headershade=plain, +% headerfont=\Large, %Sans Serif + boxshade=plain, + background=user, + linewidth=2pt, + grid=false, + } + % Eye Catcher + { + \includegraphics[height=0.07\textheight]{logo} + } + % Title + {عنوان پوستر عنوان پوستر عنوان پوستر عنوان پوستر عنوان پوستر عنوان پوستر عنوان پوستر +} + % Authors + {\large نام۱ نام خانوادگی۱, نام۳ نام خانوادگی۲, نام۳ نام خانوادگی۳ + \\%[1em] + {\normalsize\texttt{\lr{name1@mail.org, name2@mail.edu, name3@mail.com}}}} + % University logo + { +\begin{tabular}{r} + \includegraphics[height=0.07 \textheight]{shariflogo}\\ +\end{tabular} + } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Now define the boxes that make up the poster +%%%--------------------------------------------------------------------------- +%%% Each box has a name and can be placed absolutely or relatively. +%%% The only inconvenience is that you can only specify a relative position +%%% towards an already declared box. So if you have a box attached to the +%%% bottom, one to the top and a third one which should be inbetween, you +%%% have to specify the top and bottom boxes before you specify the middle +%%% box. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=introduction,column=0,row=0]{\textxecolor{red}{مقدمه}} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +برای تست بسته سعی می‌کنم که یک خط فارسی بنگارم\LTRfootnote{test} تا نتیجه آن را در این پوستر مشاهد کنم\footnote{تست پانویسی}. +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=phase2,column=1,span=1]{فاز دو: پردازش} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{wrapfigure}{r}{.6\textwidth} +%\centering +% \vspace{-10pt} +%{ +\includegraphics[scale=.5]{fig3} +%} +% \vspace{-20pt} +\end{wrapfigure} + +\ptext[2] + +محاسبات لازم: +\begin{align*} +f_1 &= \frac{HXY-HXY1}{max\{HX,HY\}}\\ +f_2 &= \sqrt{1-\exp\{-2(HXY2-HXY)\}} +\end{align*} + +{\scriptsize +\centerline{\begin{minipage}{.95\textwidth} +C(i, j) is an element of GLC matrix and N is number of gray-levels. +\end{minipage}} +\vspace{-.5mm} +$$\begin{array}{l} + +\displaystyle C_x(i) =\sum_{j=1}^N C(i,j), \quad C_y(i)=\sum_{i=1}^N C(i,j)\\ +\displaystyle HXY = -\sum_{i=1}^N\sum_{j=1}^N C(i,j) \log\{C(i,j)\}\\ +\displaystyle HXY1 = -\sum_{i=1}^N\sum_{j=1}^N C(i,j) \log\{C_x(i)\times C_y(j)\}\\ +\displaystyle HXY2 = -\sum_{i=1}^N\sum_{j=1}^N C_x(i)\times C_y(j) \log\{C_x(i)\times C_y(j)\}\\ +\end{array}$$ +} +\end{posterbox} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=phase3,column=2,span=1,row=0]{استخراج ویژگی‌های: دوتایی} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ptext[7] +\centerline{\includegraphics[scale=1.1,height=7cm]{fig4}} +\end{posterbox} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=phase4,column=2,span=1,below=phase3]{جداسازی} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ptext[6] +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=results,column=1,span=2,below=phase2]{نتایج} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{multicols}{2} + \centerline{\includegraphics[scale=.7]{fig6}} + \ptext[2-3] + + \centerline{\includegraphics[scale=.7]{fig5}} +\end{multicols} +\end{posterbox} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=imagedataset,column=0,span=1,below=introduction]{پایگاه داده تصاویر} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{itemize} + \item ۱۱۰ تصویر سالم + \item ۶۶ تصویر ناسالم + \item ۶۰ درصد تصاویر برای آموزش به کار برده شده‌اند و مابقی برای تست درستی الگوریتم. + \item وبسایت \url{http://www.med.harvard.edu/AANLIB/home.html} +\end{itemize} +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=phase1,column=0,span=1,below=imagedataset]{فاز یک{:} پیش‌پردازش} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ptext[12] +\begin{enumerate} + \item پشت زمینه + \item زنگ روشن + \item بخش‌های نامرتبط +\end{enumerate} +\ptext[14] + +برای هر $\lambda \geq 0$ ورودی نیمه‌مثبت $x\in R^m$ صحیح به‌دست می‌آید البته اگر برای $\lambda X$، $\lambda Y$ ($\lambda >0$) آنگاه ($\lambda y$ و $\lambda x$) + +\ptext[16-17] +\end{posterbox} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=adhoc,column=0,span=1,below=phase1]{همینطوری} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\textxecolor{red} +{برای پر کردن فضا استفاده شده است. برای پر کردن فضا استفاده شده است. برای پر کردن فضا استفاده شده است. +برای پر کردن فضا استفاده شده است. برای پر کردن فضا استفاده شده است. برای پر کردن فضا استفاده شده است. +سلام} +\end{posterbox} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=references,column=1,span=2,below=results]{منابع} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \smaller +% \bibliographystyle{ieee} + \renewcommand{\section}[2]{\vskip 0.05em} + \begin{thebibliography}{1}\itemsep=-0.01em + \setlength{\baselineskip}{0.4em} + \bibitem{} + محمود سیستانی, سیدجواد علوی, رضا حسینی + , ''بررسی پوستر در فضای فارسی`` + , کنفرانس سالانه کامپیوتر, صفحات 868--871, بهار ۱۳۹۲. + \end{thebibliography} +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=ack,column=0,span=2,below=references]{قدردانی} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +با تشکر از دکتر \lr{Brian Amberg}؛ این کار فارسی‌سازی پوستری است که توسط ایشان طراحی شده است\footnote{\url{http://www.brian-amberg.de/uni/poster/}}. +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=ack,column=2,span=1,below=references]{خالی} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی +فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی فضای خالی +\end{posterbox}%% +\end{poster} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/xebaposter/xebaposter-doc.pdf b/Master/texmf-dist/doc/latex/xebaposter/xebaposter-doc.pdf new file mode 100644 index 00000000000..cf65f47e6e2 Binary files /dev/null and b/Master/texmf-dist/doc/latex/xebaposter/xebaposter-doc.pdf differ diff --git a/Master/texmf-dist/doc/latex/xebaposter/xebaposter-doc.tex b/Master/texmf-dist/doc/latex/xebaposter/xebaposter-doc.tex new file mode 100644 index 00000000000..7164d84bf7b --- /dev/null +++ b/Master/texmf-dist/doc/latex/xebaposter/xebaposter-doc.tex @@ -0,0 +1,304 @@ +\documentclass[debug,a0paper,portrait]{xebaposter} + +\usepackage{url} +\usepackage{amsmath} +\usepackage{amssymb} +%\usepackage{relsize} +%\usepackage{graphicx} +\usepackage{multicol} +\usepackage{xecolor} +%\usepackage[verbose]{wrapfig} +\graphicspath{{images/}} +\usepackage[inline]{enumitem}% for making inline list. +\setlist{noitemsep}% Save space in lists. + +\usepackage{xepersian} +\settextfont{Yas} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%% Some math symbols used in the text + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Format +% \newcommand{\RotUP}[1]{\begin{sideways}#1\end{sideways}} + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Multicol Settings + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \setlength{\columnsep}{0.7em} +% \setlength{\columnseprule}{0mm} + + +%% Begin of Document +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} +%%% Setting User Defined Background %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%if you want to use your preferred background, you should set background=user in poster settings. +\background{ + \begin{bidi@tikzpicture}[remember picture,overlay,opacity=.3]% + \fill [green!20!yellow] {(current page.south east) rectangle (current page.north west)};% + \draw (current page.north west)+(-2em,2em) node[anchor=north west,opacity=.3] + {\includegraphics[width=1.1\textwidth]{logo}}; + \end{bidi@tikzpicture}% +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Here starts the poster +%%--------------------------------------------------------------------------- +%% Format it to your taste with the options +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \definecolor{silver}{cmyk}{0,0,0,0.3} + \definecolor{yellow}{cmyk}{0,0,0.9,0.0} + \definecolor{reddishyellow}{cmyk}{0,0.22,1.0,0.0} + \definecolor{black}{cmyk}{0,0,0.0,1.0} + \definecolor{darkYellow}{cmyk}{0,0,1.0,0.5} + \definecolor{darkSilver}{cmyk}{0,0,0,0.1} + + \definecolor{lightyellow}{cmyk}{0,0,0.3,0.0} + \definecolor{lighteryellow}{cmyk}{0,0,0.1,0.0} + \definecolor{lighteryellow}{cmyk}{0,0,0.1,0.0} + \definecolor{lightestyellow}{cmyk}{0,0,0.05,0.0} + + \begin{poster}% + % Poster Options + { + eyecatcher=true, + % Color style + bgColorOne=green!40!yellow!30,%lighteryellow, + bgColorTwo=yellow, + borderColor=reddishyellow, + headerColorOne=yellow, + headerColorTwo=reddishyellow, + headerFontColor=cyan, + boxColorOne=lightyellow, + boxColorTwo=lighteryellow, + % Format of textbox + textborder=rounded, + % Format of text header + headerborder=closed, + headerheight=.087\textheight, + headershape=roundedleft, + headershade=plain, +% headerfont=\Large, %Sans Serif + boxshade=plain, + background=plain,% user, + linewidth=2pt, + grid=false, % show a grid mesh on poster, it's useful for debugging. + } + % Eye Catcher + { + \includegraphics[height=0.07\textheight]{logo} + } + % Title + {طراحی پوستری زیبا و در خور با کمک کلاس \lr{xebaposter} (راهنمـــــــــــــــا) +} + % Authors + {\large \lr{Brian Amberg}, \lr{Reinhold Kainhofer}, سیّدمحمّدجواد رضویان + \\%[1em] + {\normalsize\texttt{\lr{javadr@parsilatex.com, reinhold@kainhofer.com, baposter@brian-amberg.de}}}} + % University logo + { +\begin{tabular}{r} + \includegraphics[height=0.07 \textheight]{logo}\\ +\end{tabular} + } +% \end{poster} +% \end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Now define the boxes that make up the poster +%%%--------------------------------------------------------------------------- +%%% Each box has a name and can be placed absolutely or relatively. +%%% The only inconvenience is that you can only specify a relative position +%%% towards an already declared box. So if you have a box attached to the +%%% bottom, one to the top and a third one which should be inbetween, you +%%% have to specify the top and bottom boxes before you specify the middle +%%% box. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=introduction,column=0,row=0,headershape=smallrounded]% +{\textxecolor{red}{مقدمه}} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +همانطوری که می‌دانید یکی از نیازهای جامعه علمی طراحی پوستر است زیرا که در برخی کنفرانس‌ها نویسنده مقاله تنها مجاز به ارائه پوستر +می‌گردد. در این راستا یک بسته بسیار ساده به نام \texttt{a0poster} وجود دارد که در عین سادگی کار با آن، قابلیت‌های زیادی ندارد. +از طرفی دیگر بسته‌های زیبایی برای تولید پوستر توسط افرادی دیگر طراحی شده است +از جمله \texttt{baposter}\footnote{\url{http://www.brian-amberg.de/uni/poster/}} + و \texttt{beamerposter}. +متاسفانه این بسته‌ها با متون راست به چپ، خصوصاً فارسی کار نمی‌کنند. از آنجایی که بسته \texttt{baposter} +بر پایه \texttt{tikz} طراحی شده است و جناب آقای دکتر وفا خیلقی خالق +بسته‌های \texttt{bidi} و \texttt{xepersian} امکان پشتیبانی از متون +راست به چپ را در تصاویر تولیدی بسته \texttt{tikz} فراهم آورده‌اند پس بدین سبب به سراغ این بسته رفته و با تغییراتی در آن، +این بسته را با متون راست به چپ خصوصا فارسی سازگار نموده و نام \texttt{xebaposter} را بر آن برگزیدیم% +\footnote{نگارنده ابتدا نام \lr{baposterRL} را انتخاب کرده بود لکن با پیشنهاد دکتر محمود امین‌طوسی نام فعلی را برگزید.} +--بخوانید زیباپوستر--. +البته ناگفته نماند که پوسترهای تولیدی با بسته \texttt{beamerposter} زیبایی زاید الوصوفی دارند لکن به سبب اینکه بسته‌های +بایدی و زی‌پرشین فعلا از بسته \texttt{beamer} پشتیبانی نمی‌کنند --آنهم به سبب وجود باگ‌هایی در موتور زی‌تک-- امکان +فارسی‌سازی این بسته وجود نداشت پس بدین سبب تنها انتخابمان همان بسته اولیه \texttt{baposter} شد. +متاسفانه به سبب وجود باگ‌\footnote{گزارش شده در \url{http://qa.parsilatex.com/10715} +و \url{http://tex.stackexchange.com/questions/262877}} در موتور زی‌لتک فعلاً ویژگی محوشدگی رنگ را نخواهیم داشت.% +\footnote{برای مشاهده +نمونه‌هایی از این بسته‌ها می‌توانید به \url{http://www.latextemplates.com/cat/conference-posters} مراجعه نمایید.} +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=usage,column=1,span=1,headershape=rounded,textborder=rectangle +,textborder=faded]{نحوه کاربرد} +محیط اصلی پوستر، محیط \texttt{poster} است با ساختاری مانند ذیل: +\begin{latin} +\vspace{-2mm} +\begin{verbatim} +\begin{poster} + { key=value options } + { Eye Catcher, empty + if option eyecatcher=no} + { Poster Title } + { Poster Authors } + { University Logo} + + Definition of the boxes +\end{poster} +\end{verbatim} +\end{latin} +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=classoption,column=2,span=1,headershape=rectangle,textborder=roundedsmall] +{گزینه‌های کلاس} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{itemize} + \item \texttt{portrait/landscape}: طرح‌بندی صفحه + \item \texttt{a0paper, a1paper, a2paper, a3paper, a4paper, archE}: سایز صفحات از پیش تعریف‌شده + \item \texttt{paperwidth=length, paperheight=length}: تنظیم عرض/ارتفاع صفحه. + این گزینه‌ها را بهیچوجه با صفحات از پیش‌تعریف شده بکار نبرید. + \item \texttt{margin=length}: حاشیه صفحه + \item \lr{\texttt{fontscale=real number}}: + \item \texttt{showframe}: نمایش فریم. این گزینه‌ در اشکال‌زدایی بکار می‌آید. +\end{itemize} +\end{posterbox} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=posteroption,column=1,span=2,below=classoption]{گزینه‌های محیط \lr{poster}} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\begin{multicols}{2} +\begin{itemize} + \item \texttt{grid={yes,no}}: .نمایش یک گرید. این گزینه در فاز طرح‌بندی پوستر بکار آید. + \item \texttt{columns=4}: تعداد ستون‌ها. + (در حالت افقی ۴ و در حالت عمودی مقدار پیش‌فرض ۳ است و حداکثر تعداد ستون‌ها ۶ است.) + \item \texttt{colspacing=length}: فاصله بین‌ستون‌های پوستر. + \item \texttt{headerheight=length}: ارتفاع بخش سرآمد پوستر. مقدار پیش‌فرض آن {\verb|0.1\textheight|} است. + \item \lr{\texttt{background=poster background type}}: پشت‌زمینه پوستر را تعیین می‌کند که می‌تواند مقادیر زیر را بگیرد: + \begin{enumerate} + \item \texttt{plain}: رنگ پشت‌زمینه را رنگ \texttt{bgColorOne} می‌گذارد. + \item \texttt{user}: با دستور \verb|\background{...}| پشت‌زمینه مطلوبتان را می‌توانید طراحی نمایید. + \item \texttt{none}: بدون پشت زمینه. + \end{enumerate} + \item \lr{\texttt{bgColorOne=pgf color name}}: رنگ اول پشت‌زمینه. در حالت \texttt{plain} تنها همین رنگ بکار می‌رود. + \item \lr{\texttt{bgColorTwo=pgf color name}}: رنگ دوم پشت‌زمینه. + \item \lr{\texttt{eyecatcher={yes,no}}}: تعیین می‌کند که آیا آی‌کچر در سرآمد پوستر به نمایش درآید یا نه. + این تصویر در سمت راست عنوان قرار خواهد گرفت. +\end{itemize} +%\end{multicols} +\end{posterbox} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=posterboxoption,column=1,span=2,below=posteroption,textborder=none +,headershape=rectangle,headerborder=none,textborder=coils] +{گزینه‌های محیط \lr{posterbox}} + هر جعبه پوستر باید در یک محیط \texttt{posterbox} به صورت زیر تعریف گردد: +\begin{latin} +\vspace{-3mm} +\begin{verbatim} + \begin{posterbox}[ key=value options ]{ PosterBox Title } + Contents + \end{posterbox} +\end{verbatim} +\end{latin} +\begin{itemize} + \item \lr{\texttt{name=box name}}: نام جعبه را مشخص می‌کند. این نام در تعیین موقعیت دیگر جعبه‌ها نسبت به آن بکار آید. + \item \lr{\texttt{column=column number}}: مشخص می‌کند که جعبه در کدام ستون قرار گیرد + --شماره ستون‌ها از صفر شروع می‌شود--. + \item \lr{\texttt{span=column span}}: + مشخص می‌کند که جعبه شامل چند ستون از پوستر خواهد بود --مقدار پیش‌فرض عدد یک است--. + \item \lr{\texttt{borderColor=pgf color name}}: + رنگ مورد استفاده در حاشیه جعبه‌ها. + \item \lr{\texttt{headerColorOne=pgf color}}: + رنگ اول عنوان جعبه. + \item \lr{\texttt{headerColorTwo=pgf color name}}: + رنگ دوم عنوان جعبه. + \item \lr{\texttt{textborder=border type}}: + نوع حاشیه پایین جعبه را تعیین می‌کند که خود شامل انواع زیر است: + + \centerline{\includegraphics[scale=0.7]{docs-boxshape}} + \item \lr{\texttt{headerborder=header border type}}: + آن بخشی از جعبه که پیرامون عنوان قرار می گیرد را تعیین می‌کند: + + \centerline{\includegraphics[scale=0.7]{docs-headerborder}} + \item \lr{\texttt{headershape=header border shape}}: + نوع آرایش عنوان جعبه را مشخص می‌کند: + + \centerline{\includegraphics[scale=0.7]{docs-headershape}} + \item \lr{\texttt{headershade=type of header shading}}: + + \begin{enumerate*}[label=\arabic*)] + \item\texttt{plain} + \item\texttt{shade-lr} + \item\texttt{shade-rl} + \item\texttt{shade-tb} + \item\texttt{shade-tb-inverse} + \end{enumerate*} + + \item \lr{\texttt{boxshade}}: + + \begin{enumerate*}[label=\arabic*)] + \item\texttt{plain} + \item\texttt{shade-lr} + \item\texttt{shade-tb} + \item\texttt{plain} + \item\texttt{none} + \end{enumerate*} + \item \lr{\texttt{headerfont=font definition}}: + دستوری که قبل از حروفچینی عنوان جعبه قرار داده می‌شود. + \item \lr{\texttt{headerFontColor=pgf color name}}: + رنگ قلم عنوان جعبه. + \item \lr{\texttt{linewidth=length}}: + عرض خطوط مورد استفاده در ترسیم پوستر + \item \lr{\texttt{above=box name,below=box name,aligned=box name,bottomaligned=box name}}: + نام جعبه‌ای را مشخص می‌کند که این جعبه باید نسبت به آن ترازبندی شود. +\end{itemize} +\vspace{-2mm} + نکته‌ای که باید در چینش جعبه‌ها در نظر داشته باشید این است که مکان جعبه‌ها می‌توانند به صورت نسبی یا دقیق تعیین شود. + اگر برای مثال جعبه ب قرار است دقیقاً بین جعبه‌های الف و ج قرار گیرد + آنگاه این دو جعبه اخیر حتماً باید پیش از جعبه ب تعریف شوند، در غیر اینصورت سبب تولید خطا می‌گردد. ضمنا می‌توانید بدون + تعیین این پارامترها چینش جعبه‌ها را به صورت خودکار و بهمان ترتیب تعریف به خود بسته واگذار نمایید. +\end{posterbox} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=imagedataset,column=0,span=1,below=introduction,textborder=roundedleft] +{\textxecolor{blue}{اجزاء تشکیل دهنده زیباپوستر}} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +زیباپوستر صفحه پوستر را به دو بخش سرآمد و محتوی تقسیم می‌کند. خود سرآمد نیز از سه بخش آی‌کچر، عنوان و لوگوی موسسه تشکیل +شده است که بهمین ترتیب نمایش داده می‌شود. بخش آی‌کچر اختیاری است و می‌توان با گزینه \texttt{eyecatcher} آن را فعال یا غیرفعال +نمود(\texttt{true,false}). در صورت عدم وجود آی‌کچر، عنوان و نام نویسنده‌(ها) راست چین خواهد شد و در صورت وجود آن به صورت +وسط‌چین در خواهند آمد. + +بخش محتوای پوستر شامل تعدادی جعبه \texttt{tikz} است که حاوی مطالب پوستر خواهند بود. این جعبه‌ها از طریق +محیط \texttt{posterbox} تعریف می‌شوند. تمامی این جعبه‌ها باید درون محیط \lr{poster} تعریف شده باشند. +هر جعبه نیز از دو بخش عنوان و محتوی تشکیل شده است. و نهایتا پشت زمینه پوستر است که در حال حاضر تنها می‌تواند یک رنگ ساده +باشد و یا اصلا چیزی نباشد و یا به اختیار کاربر قرار گیرد تا برای مثال در صورت تمایل یک تصویر پشت زمینه قرار دهد --البته همانطور که +در بالا اشاره گردید برخی قابلیت‌های محیط \lr{tikz} از جمله محوشدگی قابل استفاده نمی‌باشند--. +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=setting,column=0,span=1,below=imagedataset% +,headerFontColor=brown,textborder=roundedright,headershape=roundedright] +{\textxecolor{brown}{تنظیمـــــــــات (عمومی یا محلی؟!)}} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +کاربر می‌توانید تنظیماتی را که برای رنگ و حالت جعبه‌ها تعریف شده است را به کلی یا جزئی تغییر دهد. بدین معنی که برای یکبار همان +ابتدای تعریف محیط \lr{poster} که این تنظیمات تعریف می‌شوند بر تمامی جعبه‌ها قابل اعمال هستند لکن این امکان نیز وجود دارد +که هر جعبه را به طور خاص شخصی‌سازی نمود. در این پوستر سعی شده تا با اتخاذ +شخصی‌سازی هر جعبه گزینه‌های مختلف موجود تا آنجا که ممکن است نشان داده شود. +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{posterbox}[name=ack,column=0,span=1,below=setting,textborder=faded, +,textborder=triangles]{قدردانی} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +با تشکر از دکتر \lr{Brian} خالق کلاس پوستر و تشکر ویژه از جناب آقای دکتر وفا خیلقی بخاطر زحماتی که برای فارسی‌نویسی در +محیط زی‌لاتک انجام‌ داده‌اند و دکتر محمود امین‌طوسی به سبب پیشنهاد نام زیباپوستر و گروه پارسی‌لاتک برای تست این کلاس. +\end{posterbox} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{poster} +\end{document} diff --git a/Master/texmf-dist/tex/latex/xebaposter/xebaposter.cls b/Master/texmf-dist/tex/latex/xebaposter/xebaposter.cls new file mode 100644 index 00000000000..6b0e4ef08f5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/xebaposter/xebaposter.cls @@ -0,0 +1,1130 @@ +%% +%% This is file `xebaposter.cls' +%% +%%% Copyright © 2015 by Seiied-Mohammad-Javad Razavian +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% This work is “author-maintained” (as per LPPL maintenance status) +%% by Seiied-Mohammad-Javad Razavian. +%% The Current Maintainer of this work is Seiied-Mohammad-Javad Razavian +%% +%% A relatively comfortable latex class to produce posters with a grid based +%% layout. It comes with a number of combinable styles and is (maybe only for +%% the writer) easy to extend, as all the graphics is based on pgf. +%% +%% +%% Copyright (C) 2007-2011 Brian Amberg +%% Copyright (C) 2011 Reinhold Kainhofer +%% Copyright (C) 2015 Seiied-Mohammad-Javad Razavian +%% +%% 28. August 2015: +%% - A bidi@tikzpicture is used instead of tikzpicture because it causes some unwanted extra spaces in the poster. +%% 21. August 2015: +%% - The xebaposter is named after changing the baposter style to adapt with right to left text like persian. +%% 29. September 2011: +%% - Finally fixed confusion with paper size handling and landscape. This required seperate handling of papersizes +%% known to the geometry package and other packages. +%% 26. September 2011: +%% - Reverted drawing of faded borders to manual method, as the current result does not work with evince, +%% and produced spurious colored boxes with okular and acroread. +%% - Added one more example due to popular request +%% 16. September 2011: +%% - Removed nag package, such that it compiles on older systems +%% - Added more examples +%% 15. September 2011: +%% - Merged fork by (rk) back into mainline, essentially taking over all the great improvements that Reinhold Kainhofer coded. +%% We call this version 2, as it breaks the interface in some small points. Essentially watch out for this: +%% - no/yes keys are now false/true +%% - the shade-lr etc. keys have the hypen removed, and are now called shadelr etc. +% - Added more examples, which are all adapted to work with the current version +%% 27. August 2011 (rk): +%% - Completely factored out all drawing commands to handler functions, assigned via choice keys +%% - Added cornerradius, boxheaderheight, boxpadding options +%% - Added missing roundedright +%% 26. August 2011 (rk): +%% - Turned headerbox cmd into posterbox environment (allows verbatim) +%% - pass several options to packages +%% - added debug cls option to reduce default output +%% - rewrote several loops and ifthenelse +%% - Use boolean and choice keys for all options +%% - Changed all choice options to set a global function to +%% \baposter@OPTION@OPTIONVALUE, which are a functions that execute the +%% option's setting (drawing routine, color setting for tikz, etc.) +%% - Add a5paper +%% 07. April 2011: Fixed paper size handling +%% - Fixed Paper Size handling, you can now specify all page sizes using paperwidth=, paperheight= class options. +%% - Added rudimentary documentation of the available keys. +%% 11. December 2010: Fixed "Empty Second Page" bug +%% - A second empty page was introduced when a document ended with +%% \end{poster} +%% \end{document} +%% This was fixed thanks to a suggestion by Martin Aulbach +%% - Added +%% \thispagestyle{empty}%% to suppress page numbers, which became visible when the margins are large. +%% The underlying problem of page-size handling has not yet been solved. +%% 30. September 2010: Border Bugfixes +%% - Correct background color with textborder=rounded-small, Thanks to Ke Chen for the bugreport and patch +%% - Correctly draw rectangular text boxes, Thanks to abenkst for the bugreport and fix +%% 10. June 2010: Added option to set the number of columns +%% - added a class option to set the number of columns +%% - columns=5: sets the number of columns to 5, possible values are 1..6, default is 3 in portrait and 4 in landscape format +%% 29. April 2009: Incorporated Patches by Arne Henningsen +%% - added some class options +%% - a4shrink: shrink the paper to A4 size (for printing drafts or handouts) +%% - movebody=Xpt: move the text/poster body Xpt to the right +%% (or to the left if Xpt is negative), +%% e.g. for manually centering the poster on the page +%% - showframe: use the "showframe" option of the "geometry" package +%% - a0paper (default): set paper size to A0 +%% - archE: set paper size to Arch E +%% - setting "background" can be "none" now (otherwise the "showframe" +%% option has no effect) +%% - the page number has been removed (it was mostly not visible before) +%% - the "margin=" option works now +%% 04. December 2008 +%% - Mainly an update to the landscape example +%% 14. November 2008 +%% - Actually center the title when eyecatcher is used. +%% 04. November 2008 +%% - Fixed bug with eyecatcher not working. +%% 26. June 2008 +%% - Fixed bug with plain background mode. +%% 14. June 2008 +%% - Support for portrait/landscape switching. +%% - Some smaller bugfixes. +%% 01. June 2007 +%% - First version released. +%% +%% Use this class with xelatex +%% +%% I have confirmed that this package works with +%% - texlive 2015 +%% +%% +%% TODO: +%% -) Rename backgrounds back to shaded-tb shade-lr +%% -) Rename textborder back to rounded-small (consistent naming needed!) +%% -) Rename headershade back to shade-lr, shade-tb, shade-tb-inverse +%% -) Rename headershape back to small-rounded +%% -) Option value consistency (small-rounded vs. rounded-small; missing ones) +%% -) Rename \xebaposterHeaderSetShade, \xebaposterHeaderDrawText to include @ and verb +%% +%% +%% Licence: GPL +\ProvidesClass{xebaposter}[2015/08/28 v2.1 xebaposter class] +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\LoadClass{article} +\typeout{baposter: Brian Amberg, 2007, 2008, 2009, 2010, 2011 | http://www.brian-amberg.de/uni/poster/} +\typeout{baposter: Reinhold Kainhofer, 2011 | http://reinhold.kainhofer.com/} +\typeout{xebaposter: Seiied-Mohammad-Javad Razavian, 2015} +% +%% Define lengths only once on inclusion, such that we can make multiple posters +\newlength{\xebaposter@basepaperwidth}% +\newlength{\xebaposter@basepaperheight}% +\newlength{\xebaposter@basemargin}% +\newlength{\xebaposter@finalpaperwidth}% +\newlength{\xebaposter@finalpaperheight}% +\newlength{\xebaposter@finalmargin}% +\newlength{\headerheight}% +\newlength{\colwidth}% +\newlength{\colheight}% +\newlength{\xebaposter@@colspacing}% +\newlength{\xebaposter@box@@cornerradius}% +\newlength{\xebaposter@box@@boxheaderheight}% +\newlength{\xebaposter@box@@boxpadding}% +\newlength{\boxstartx}% +\newlength{\boxstarty}% +\newlength{\boxwidth}% +\newlength{\boxheight}% +\newlength{\xebaposter@titleimage@left@width}% +\newlength{\xebaposter@titleimage@right@width}% +\newlength{\xebaposter@titleimage@textwidth}% +\newbox\xebaposter@box@content% +\newbox\xebaposter@titleimage@left% +\newbox\xebaposter@titleimage@title% +\newbox\xebaposter@titleimage@right% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Packages +%------------------------------------------------------------------------------- +% The only ``weird'' dependency of this package is pgf. All the rest should be +% installed on any decent system. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\typeout{Use Packages}% +\RequirePackage{xkeyval}% +\RequirePackage{calc}% +\RequirePackage[cmyk]{xcolor}% +\RequirePackage{tikz}% +\RequirePackage{pgf}% +\RequirePackage{ifthen}% +\RequirePackage[T1]{fontenc}% +%\RequirePackage[l2tabu, orthodox]{nag}% +\usetikzlibrary{decorations}% +\usetikzlibrary{fadings}% +\usetikzlibrary{snakes}% +\usetikzlibrary{calc}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Choose a smaller value for larger fonts +\newcommand{\xebaposter@fontscale}{0.292}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Zoom +%------------------------------------------------------------------------------- +% We scale the page from fontscale * papersize up to papersize +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +%% Paper sizes +\newif\if@landscape% +\newif\if@geometryKnowsThisSize% +\DeclareOptionX{landscape}{\@landscapetrue}% +\DeclareOptionX{portrait}{}% +% +\newcommand{\xebaposter@setfinalpapersize}[2]{% +\if@geometryKnowsThisSize + \setlength{\xebaposter@finalpaperwidth}{#1}% + \setlength{\xebaposter@finalpaperheight}{#2}% +\else +\if@landscape +% Transpose length, if geometry does not handle the papersize based on the key + \setlength{\xebaposter@finalpaperwidth}{#2}% + \setlength{\xebaposter@finalpaperheight}{#1}% +\else + \setlength{\xebaposter@finalpaperwidth}{#1}% + \setlength{\xebaposter@finalpaperheight}{#2}% +\fi +\fi +} +% +% Default paperwidth and paperheight = a0paper +\DeclareOptionX{paperwidth}[841mm]{\setlength{\xebaposter@finalpaperwidth}{#1}}% +\DeclareOptionX{paperheight}[1189mm]{\setlength{\xebaposter@finalpaperheight}{#1}}% +\DeclareOptionX{archA} { \xebaposter@setfinalpapersize{9in}{12in}}% +\DeclareOptionX{archB} { \xebaposter@setfinalpapersize{12in}{18in}}% +\DeclareOptionX{archC} { \xebaposter@setfinalpapersize{18in}{24in}}% +\DeclareOptionX{archD} { \xebaposter@setfinalpapersize{24in}{36in}}% +\DeclareOptionX{archE} { \xebaposter@setfinalpapersize{36in}{48in}}% +\DeclareOptionX{archE1} { \xebaposter@setfinalpapersize{30in}{42in}}% +\DeclareOptionX{archE2} { \xebaposter@setfinalpapersize{26in}{38in}}% +\DeclareOptionX{archE3} { \xebaposter@setfinalpapersize{27in}{39in}}% +\DeclareOptionX{a0paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{841mm}{1189mm}}%g +\DeclareOptionX{a1paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{594mm}{841mm}}%g +\DeclareOptionX{a2paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{420mm}{594mm}}%g +\DeclareOptionX{a3paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{297mm}{420mm}}%g +\DeclareOptionX{a4paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{210mm}{297mm}}%g +\DeclareOptionX{a5paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{148mm}{210mm}}%g +\DeclareOptionX{a6paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{105mm}{148mm}}%g +\DeclareOptionX{b0paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{1000mm}{1414mm}}%g +\DeclareOptionX{b1paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{707mm}{1000mm}}%g +\DeclareOptionX{b2paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{500mm}{707mm}}%g +\DeclareOptionX{b3paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{353mm}{500mm}}%g +\DeclareOptionX{b4paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{250mm}{353mm}}%g +\DeclareOptionX{b5paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{176mm}{250mm}}%g +\DeclareOptionX{b6paper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{125mm}{176mm}}%g +\DeclareOptionX{ansiapaper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{8.5in}{11in}}% +\DeclareOptionX{ansibpaper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{11in}{17in}}% +\DeclareOptionX{ansicpaper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{17in}{22in}}% +\DeclareOptionX{ansidpaper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{22in}{34in}}% +\DeclareOptionX{ansiepaper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{34in}{44in}}% +\DeclareOptionX{letterpaper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{8.5in}{11in}}% +\DeclareOptionX{legalpaper} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{8.5in}{14in}}% +\DeclareOptionX{executivepaper}{\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{7.25in}{10.5in}}% +\DeclareOptionX{screen} {\@geometryKnowsThisSizetrue\xebaposter@setfinalpapersize{225mm}{180mm}}%g +% +% Margin +\setlength{\xebaposter@finalmargin}{1.5cm}% +\DeclareOptionX{fontscale}[0.292]{\renewcommand{\xebaposter@fontscale}{#1}}% +\DeclareOptionX{margin} [1.5cm]{\setlength{\xebaposter@finalmargin}{#1}}% +% +% move text/poster body to the right (or to the left if negative) +\newlength{\xebaposter@movebody}% +\setlength{\xebaposter@movebody}{0cm}% +\DeclareOptionX{movebody}[0cm]{\setlength{\xebaposter@movebody}{#1}}% +% +% +\newif\if@debug% +\DeclareOptionX{debug}{\@debugtrue}% +%% Will be passed on to other packages (xcolor and geometry), still we don't want unused warnings +\DeclareOptionX{table}{}% +\DeclareOptionX{showframe}{}% +% +\ProcessOptionsX% +% +\if@debug +\newcommand{\debug}[1]{\typeout{#1}}% +\else +\newcommand{\debug}[1]{}% +\fi +% +% +% +\setlength{\xebaposter@basepaperwidth} {\xebaposter@fontscale\xebaposter@finalpaperwidth }% +\setlength{\xebaposter@basepaperheight}{\xebaposter@fontscale\xebaposter@finalpaperheight}% +\setlength{\xebaposter@basemargin} {\xebaposter@fontscale\xebaposter@finalmargin}% +\newlength{\xebaposter@basemarginright}% +\setlength{\xebaposter@basemarginright}{\xebaposter@basemargin}% +\addtolength{\xebaposter@basemarginright}{-\xebaposter@fontscale\xebaposter@movebody}% +\newlength{\xebaposter@basemarginleft}% +\setlength{\xebaposter@basemarginleft}{\xebaposter@basemargin}% +\addtolength{\xebaposter@basemarginleft}{\xebaposter@fontscale\xebaposter@movebody}% +% +\typeout{Paperwidth=\the\xebaposter@finalpaperwidth}% +\typeout{Paperheight=\the\xebaposter@finalpaperheight}% +\typeout{BasePaperwidth=\the\xebaposter@basepaperwidth}% +\typeout{BasePaperheight=\the\xebaposter@basepaperheight}% +\usepackage[ + paperwidth=\xebaposter@basepaperwidth,% + paperheight=\xebaposter@basepaperheight,% + tmargin=\xebaposter@basemargin,% + bmargin=\xebaposter@basemargin,% + lmargin=\xebaposter@basemarginleft,% + rmargin=\xebaposter@basemarginright,% + ]{geometry}% +% +\usepackage{pgfpages}% +\if@landscape +\if@geometryKnowsThisSize +\pgfpagesuselayout{resize to}[physical paper width=\xebaposter@finalpaperheight,physical paper height=\xebaposter@finalpaperwidth]% +\else +\pgfpagesuselayout{resize to}[physical paper width=\xebaposter@finalpaperwidth,physical paper height=\xebaposter@finalpaperheight]% +\fi +\else +\pgfpagesuselayout{resize to}[physical paper width=\xebaposter@finalpaperwidth,physical paper height=\xebaposter@finalpaperheight]% +\fi +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Default functions for borders/backgrounds +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +%% These functions will all be redefined from the actual option values. In +%% particular, they will be set to \xebaposter@optionname@optionvalue, which +%% should do the actual work / setting for that particular optionvalue. +% +\newcommand{\xebaposterPosterDrawBackground}[2]{} % Draw poster background +% +\newcommand{\xebaposterBoxGetShape}{} % Returns path of text box shape +\newcommand{\xebaposterBoxDrawBackground}[2]{} % Draw bg of boxes +\newcommand{\xebaposterBoxDrawBorder}[1]{} % Draw border of individual boxes +% +\newcommand{\xebaposterHeaderGetShape}{} % Returns path of text box shape +\newcommand{\xebaposterHeaderSetShade}[3]{} % Set bg style for box headers +\newcommand{\xebaposterHeaderDrawBackground}[3]{} % Draw background of box header +\newcommand{\xebaposterHeaderDrawBorder}[1]{} % Draw border of box header +\newcommand{\xebaposterHeaderDrawText}[1]{} % Draw text inside box header +% +\newcommand{\@@previousbox}{notset} % stores the previously processed box for below=auto +% +% Function to set a user-defined background +\newcommand{\xebaposter@backgroundCmd}{\error{No background command defined. Use \background{...} to define background}}% +\newcommand{\background}[1]{\renewcommand{\xebaposter@backgroundCmd}{#1}}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Handle poster and box options +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\debug{Handling keys}% +% +%% +%% POSTER OPTIONS +%% +%% Store all poster options in variables of the form \xebaposter@option +%% choose-keys also store the index in \xebaposter@optionnr +%% choose-keys typically also assign a function +\definecolor{xebaposter@silver}{cmyk}{0,0,0,0.7}% +\define@boolkey[ba]{poster}[xebaposter@]{grid} [false] {}% +\define@boolkey[ba]{poster}[xebaposter@]{eyecatcher} [true] {}% +\define@cmdkey [ba]{poster}[xebaposter@]{headerheight} [0.1\textheight]{}% +\define@cmdkey [ba]{poster}[xebaposter@]{columns} [{}] {}% +\define@cmdkey [ba]{poster}[xebaposter@]{colspacing} [1em] {}% +\define@cmdkey [ba]{poster}[xebaposter@]{bgColorOne} [xebaposter@silver]{}% +\define@cmdkey [ba]{poster}[xebaposter@]{bgColorTwo} [green] {}% +% +% background can be one of: shadeLR, shadeTB, plain, user, none +\define@choicekey*+[ba]{poster}{background}% + [\xebaposter@background\xebaposter@backgroundnr]% + {shadeLR, shadeTB, plain, user, none} [plain] {% + \debug{Poster background: \xebaposter@background}% + \renewcommand{\xebaposterPosterDrawBackground}[2]{% + \csname xebaposter@background@\xebaposter@background\endcsname{##1}{##2}}% +}{% + \PackageWarning{xebaposter}{Unknown background `\xebaposter@background' (use + shadeLR, shadeTB, plain, none, or user). If user is used, you also + have to define \background{...}.}% + \renewcommand{\xebaposterPosterDrawBackground}[2]{\xebaposter@background@none{##1}{##2}} +}% +% +% +%% +%% BOX OPTIONS +%% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{cornerradius} [1em] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{boxheaderheight} [2em] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{boxpadding} [0.5em] {}% +% +% +% textborder can be one of: none, bars, coils, triangles, rectangle, rounded, +% roundedleft, roundedsmall, faded; UNIMPLEMENTED: roundedright +\edef\xebaposter@box@textborder@validvalues{none,bars,coils,triangles,rectangle,rounded,roundedleft,roundedsmall,faded}% +\define@choicekey*+[ba]{posterbox}{textborder}% + [\xebaposter@box@textborder\xebaposter@box@textbordernr]% + {none,bars,coils,triangles,rectangle,rounded,roundedleft,roundedright,roundedsmall,faded} [rectangle] {% + \debug{Text border: \xebaposter@box@textborder}% + \renewcommand{\xebaposterBoxGetShape}{% + \csname xebaposter@box@boxshape@\xebaposter@box@textborder\endcsname}% + \renewcommand{\xebaposterBoxDrawBorder}[1]{% + \csname xebaposter@box@drawborder@\xebaposter@box@textborder\endcsname{##1}}% +}{% + \PackageWarning{xebaposter}{Unknown text-border style `\xebaposter@box@textborder'. + Edit your file to choose a valid option (\xebaposter@box@textborder@validvalues).}% + \renewcommand{\xebaposterBoxGetShape}{\xebaposter@boxshape@rectangle}% + \renewcommand{\xebaposterBoxDrawBorder}[1]{\xebaposter@drawborder@rectangle{##1}}% +}% +% +% boxshade can be one of: shadeLR, shadeTB, plain, none +\define@choicekey*+[ba]{posterbox}{boxshade}% + [\xebaposter@box@boxshade\xebaposter@box@boxshadenr]% + {shadelr,shaderl,shadetb,plain,none} [none] {% + \debug{Box shade: \xebaposter@box@boxshade}% + \renewcommand{\xebaposterBoxDrawBackground}[2]{% + \csname xebaposter@box@drawbackground@\xebaposter@box@boxshade\endcsname{##1}{##2}}% +}{% + \PackageWarning{xebaposter}{Unknown boxshade style `\xebaposter@boxshade'. + Edit your file to choose a valid option.}% + \renewcommand{\xebaposterBoxDrawBackground}[2]{\xebaposter@box@drawbackground@none{##1}{##2}}% +}% +% +% headershade can be one of: shade-lr,shade-rl, shade-tb, shade-tb-inverse, plain +\define@choicekey*+[ba]{posterbox}{headershade}% + [\xebaposter@box@headershade\xebaposter@box@headershadenr]% + {shadelr,shaderl, shadetb, shadetbinverse, plain} [shadelr] {% + \debug{Header shade: \xebaposter@box@headershade}% + \renewcommand{\xebaposterHeaderSetShade}[3]{% + \csname xebaposter@box@headershade@\xebaposter@box@headershade\endcsname{##1}{##2}{##3}} +}{% + \PackageWarning{xebaposter}{Unknown headershade style `\xebaposter@box@headershade'. + Edit your file to choose a valid option.}% + \renewcommand{\xebaposterHeaderSetShade}[3]{\xebaposter@box@headershade@none{##1}{##2}{##3}}% +}% +% +% headershape can be one of: rectangle, rounded, smallrounded, roundedleft, roundedright +\define@choicekey*+[ba]{posterbox}{headershape}% + [\xebaposter@box@headershape\xebaposter@box@headershapenr]% + {rectangle,rounded,smallrounded,roundedleft,roundedright} [roundedright] {% + \debug{Header shape: \xebaposter@box@headershape}% + \renewcommand{\xebaposterHeaderGetShape}{% + \csname xebaposter@box@headershape@\xebaposter@box@headershape\endcsname}% + \renewcommand{\xebaposterHeaderDrawText}[1]{% + \csname xebaposter@box@headerdrawtext@\xebaposter@box@headershape\endcsname{##1}}% + \renewcommand{\xebaposterHeaderDrawBorder}[1]{% + \csname xebaposter@box@headerdrawborder@\xebaposter@box@headershape\endcsname{##1}}% +}{% + \PackageWarning{xebaposter}{Unknown headershape style `\xebaposter@headershape'. + Edit your file to choose a valid option.}% + \renewcommand{\xebaposterHeaderGetShape}{\xebaposter@box@headershape@rectangle}% + \renewcommand{\xebaposterHeaderDrawText}[1]{\xebaposter@box@headerdrawtext@rectangle{##1}}% + \renewcommand{\xebaposterHeaderDrawBorder}[1]{\xebaposter@box@headerdrawborder@rectangle{##1}}% +}% +% +% headerborder can be one of: open, closed, none +\define@choicekey*+[ba]{posterbox}{headerborder}% + [\xebaposter@box@headerborder\xebaposter@box@headerbordernr]% + {open,closed,none} [open] {% + \debug{Header border: \xebaposter@box@headerborder}% +% \renewcommand{\xebaposterHeaderBorder}{ +% \csname xebaposter@headerborder@\xebaposter@box@headerborder\endcsname} +}{% + \PackageWarning{xebaposter}{Unknown headerborder style `\xebaposter@headerborder'. + Edit your file to choose a valid option.}% +% \renewcommand{\xebaposterHeaderBorder}{\xebaposter@box@headerborder@rectangle} +}% +% +% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{borderColor} [yellow] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{headerColorOne} [red] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{headerColorTwo} [brown] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{headerFontColor} [black] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{boxColorOne} [magenta] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{boxColorTwo} [cyan] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{headerfont} [\scshape\Large] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{textfont} [{}] {}% +% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{linewidth} [2pt] {}% +% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{below} [notset]{}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{above} [notset]{}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{aligned}[notset]{}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{bottomaligned}[notset]{}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{column} [0] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{row} [0] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{span} [1] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{height} [auto] {}% +\define@cmdkey[ba]{posterbox}[xebaposter@box@]{name} [noname]{}% +% +% Set some default values, the poster and posterbox environments can override: +\setkeys[ba]{poster}{% + % Debug grid + grid=false,% + % Is there an eyecatcher image + eyecatcher=true,% + columns={},% + % Colours + bgColorOne=xebaposter@silver,% + bgColorTwo=green,% + % + colspacing=1em,% + headerheight=0.1\textheight,% + background=shadeLR,% +}{}% +\setkeys[ba]{posterbox}{% + % Position + column=0,row=0,span=1,% + below=notset,above=notset,% + bottomaligned=notset,% + aligned=notset,% + height=auto,% + % Name + name=noname,% + % Box design: border: + linewidth=2pt,% + borderColor=yellow,% + cornerradius=1em,% + % text box: + textfont={},% + boxshade=plain,% + boxColorOne=magenta,% + boxColorTwo=cyan,% + textborder=faded,% + boxpadding=0.5em,% + % header + headerfont=\scshape\Large,% or headerfont=\color{white}\textsf\textbf + headerFontColor=black,% + headerColorOne=red,% + headerColorTwo=brown,% + headershape=rectangle,% + headershade=shadeLR,% + headerborder=none,% + boxheaderheight=2em,% +}{}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Background options and functions (one function for each possible value) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\newcommand{\xebaposter@background@shaderl}[2]{% + \debug{xebaposter: Using shade right left background.}% + {\setLTR\begin{bidi@tikzpicture}[remember picture,overlay]% + \shade [shading=axis,left color=#1,right color=#2] (current page.north east)% + rectangle(current page.south west);% + \end{bidi@tikzpicture}}% +}% +\newcommand{\xebaposter@background@shadelr}[2]{% + \debug{xebaposter: Using shade left right background.}% + {\setLTR\begin{bidi@tikzpicture}[remember picture,overlay]% + \shade [shading=axis,left color=#1,right color=#2] (current page.north west)% + rectangle(current page.south east);% + \end{bidi@tikzpicture}}% +}% +\newcommand{\xebaposter@background@shadetb}[2]{% + \debug{xebaposter: Using shade top to bottom background.}% + {\setLTR\begin{bidi@tikzpicture}[remember picture,overlay]% + \shade [shading=axis,top color=#1,bottom color=#2] (current page.north west)% + rectangle(current page.south east);% + \end{bidi@tikzpicture}}% +}% +\newcommand{\xebaposter@background@plain}[2]{% + \debug{xebaposter: Using plain background.}% + {\setLTR\begin{bidi@tikzpicture}[remember picture,overlay]% + \fill [#1] {(current page.north west) rectangle (current page.south east)};% + \end{bidi@tikzpicture}}% +}% +\newcommand{\xebaposter@background@user}[2]{% + \debug{xebaposter: Using user background.}% + {\setLTR\xebaposter@backgroundCmd}% +}% +\newcommand{\xebaposter@background@none}[2]{% + \debug{xebaposter: Using no background.}% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Return shape path of text box (depending on the box shape) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\newcommand{\xebaposter@box@boxshape@none}{\xebaposter@box@boxshape@rectangle}% +\newcommand{\xebaposter@box@boxshape@bars}{% + (\xebaposter@box@name tnw) -- (\xebaposter@box@name sw) % + (\xebaposter@box@name se) -- (\xebaposter@box@name tne)% +}% +\newcommand{\xebaposter@box@boxshape@coils}{\xebaposter@box@boxshape@bars}% +\newcommand{\xebaposter@box@boxshape@triangles}{\xebaposter@box@boxshape@bars}% +\newcommand{\xebaposter@box@boxshape@rectangle}{% + (\xebaposter@box@name tnw) -- (\xebaposter@box@name sw) -- % + (\xebaposter@box@name se) -- (\xebaposter@box@name tne)% +}% +\newcommand{\xebaposter@box@boxshape@faded}{% + (\xebaposter@box@name tnw) -- (\xebaposter@box@name sw) % + (\xebaposter@box@name tne) -- (\xebaposter@box@name se)% + }% +\newcommand{\xebaposter@box@boxshape@rounded}{% + [rc] \xebaposter@box@boxshape@rectangle% +}% +\newcommand{\xebaposter@box@boxshape@roundedsmall}{% + [src] \xebaposter@box@boxshape@rectangle% +}% +\newcommand{\xebaposter@box@boxshape@roundedleft}{% + (\xebaposter@box@name tnw) {[rc]-- (\xebaposter@box@name sw)} -- % + (\xebaposter@box@name se) -- (\xebaposter@box@name tne)% +}% +\newcommand{\xebaposter@box@boxshape@roundedright}{% + (\xebaposter@box@name tnw) -- (\xebaposter@box@name sw) {[rc]-- % + (\xebaposter@box@name se)} -- (\xebaposter@box@name tne)% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Draw box background (one function for each possible value) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% These functions take no arguments +\newcommand{\xebaposter@box@drawbackground@none}[2]{% + \tikzstyle{box colors}=[]% +}% +\newcommand{\xebaposter@box@drawbackground@plain}[2]{% + \tikzstyle{box colors}=[fill=#1]% + \fill[box colors] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawbackground@shadelr}[2]{% + \tikzstyle{box colors}=[shading=axis, left color=#1, right color=#2]% + \fill[box colors] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawbackground@shadetb}[2]{% + \tikzstyle{box colors}=[shading=axis, top color=#1, bottom color=#2]% + \fill[box colors] \xebaposterBoxGetShape;% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Draw box border +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% These functions take two arguments: borderColor +\newcommand{\xebaposter@box@drawborder@none}[1]{}% +\newcommand{\xebaposter@box@drawborder@bars}[1]{% + \draw[color=#1] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawborder@coils}[1]{% + \draw[color=#1,segment amplitude=0.35em,segment length=0.4em,snake=coil] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawborder@triangles}[1]{% + \draw[color=#1,segment amplitude=0.2em,segment length=0.4em,snake=triangles] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawborder@rectangle}[1]{% + \draw[color=#1] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawborder@rounded}[1]{% + \draw[color=#1] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawborder@roundedleft}[1]{% + \draw[color=#1] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawborder@roundedright}[1]{% + \draw[color=#1] \xebaposterBoxGetShape;% +}% +\newcommand{\xebaposter@box@drawborder@faded}[1]{% + % This is the right way to do it, but it does not work with evince, and has problems during printing, so instead we do + %\draw[color=#1,path fading=south] \xebaposterBoxGetShape;% + % this + \foreach \x in {0,1,...,90} \draw[color=#1!\x] ($(\xebaposter@box@name tnw)!{(100-\x)/100}!(\xebaposter@box@name sw)$) -- ($(\xebaposter@box@name tnw)!{(100-(\x+10))/100}!(\xebaposter@box@name sw)$);% + \foreach \x in {0,1,...,90} \draw[color=#1!\x] ($(\xebaposter@box@name tne)!{(100-\x)/100}!(\xebaposter@box@name se)$) -- ($(\xebaposter@box@name tne)!{(100-(\x+10))/100}!(\xebaposter@box@name se)$);% +}% +\newcommand{\xebaposter@box@drawborder@roundedsmall}[1]{% + \draw[color=#1] \xebaposterBoxGetShape;% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Return shape path of text box (depending on the box shape) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% These functions take no arguments +% TODO: For headerborder==none, use (\xebaposter@box@name outer tnw) instead! +\newcommand{\xebaposter@box@headershape@rectangle}{% + (\xebaposter@box@name tnw) -- (\xebaposter@box@name nw) -- % + (\xebaposter@box@name ne) -- (\xebaposter@box@name tne)% +}% +\newcommand{\xebaposter@box@headershape@smallrounded}{% + (\xebaposter@box@name tnw) {[src] -- (\xebaposter@box@name nw) -- % + (\xebaposter@box@name ne)} -- (\xebaposter@box@name tne)% +}% +\newcommand{\xebaposter@box@headershape@roundedright}{% + (\xebaposter@box@name tnw) -- (\xebaposter@box@name nw) {[rc] -- % + (\xebaposter@box@name ne)} -- (\xebaposter@box@name tne)% +}% +\newcommand{\xebaposter@box@headershape@roundedleft}{% + (\xebaposter@box@name tnw) {[rc]-- (\xebaposter@box@name nw)} -- % + (\xebaposter@box@name ne) -- (\xebaposter@box@name tne)% +}% +\newcommand{\xebaposter@box@headershape@rounded}{% + (\xebaposter@box@name tnw) {[rc] -- (\xebaposter@box@name nw) -- % + (\xebaposter@box@name ne) } -- (\xebaposter@box@name tne)% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Header text drawing (one function for each possible value of headershape) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% These functions take one argument: the header text +\newcommand{\xebaposter@box@headerdrawtext@rectangle}[1]{% + \path (\xebaposter@box@name ne) +(0em,-0.5\xebaposter@box@@boxheaderheight) node[anchor=east,inner sep=0.4em] {#1};% +}% +\newcommand{\xebaposter@box@headerdrawtext@smallrounded}[1]{% + \path (\xebaposter@box@name nw) +(0.5\boxwidth,-0.5\xebaposter@box@@boxheaderheight) node[anchor=center] {#1};% +}% +\newcommand{\xebaposter@box@headerdrawtext@roundedright}[1]{% + \path (\xebaposter@box@name ne) +(0em,-0.5\xebaposter@box@@boxheaderheight)% + node[anchor=east,inner sep=0.4em,text depth=0.4em] {#1};% +}% +\newcommand{\xebaposter@box@headerdrawtext@roundedleft}[1]{% + \path (\xebaposter@box@name ne) +(0em,-0.5\xebaposter@box@@boxheaderheight)% + node[anchor=east,inner sep=0.4em] {#1}; +}% +\newcommand{\xebaposter@box@headerdrawtext@rounded}[1]{% + \path (\xebaposter@box@name nw) +(0.5\boxwidth,-0.5\xebaposter@box@@boxheaderheight) node[anchor=center] {#1};% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Header shade options and functions (one function for each possible value) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% These functions take two arguments: headerColorOne, headerColorTwo and borderColor +\newcommand{\xebaposter@box@headershade@shadelr}[3]{% + \debug{Header-Shade: Shade Left - Right}% + \tikzstyle{header colors}=[% + color=#3,% + shading=axis,% + left color=#1,% + right color=#2% + ]% +}% +\newcommand{\xebaposter@box@headershade@shaderl}[3]{% + \debug{Header-Shade: Shade Right - Left}% + \tikzstyle{header colors}=[% + color=#3,% + shading=axis,% + left color=#2,% + right color=#1% + ]% +}% +\newcommand{\xebaposter@box@headershade@shadetb}[3]{% + \debug{Header-Shade: Shade Top - Bottom}% + \tikzstyle{header colors}=[% + color=#3,% + shading=axis,% + top color=#1,% + bottom color=#2% + ]% +}% +\newcommand{\xebaposter@box@headershade@shadetbinverse}[3]{% + \debug{Header-Shade: Shade Top - Bottom - Inverse }% + \tikzstyle{header colors}=[% + top color=#1!75!#2,% + bottom color=#2!100!#1,% + shading angle=20% + ]% + \colorlet{xebaposterHeaderFontColor}{white}% +}% +\newcommand{\xebaposter@box@headershade@plain}[3]{% + \debug{Header-Shade: Plain}% + \tikzstyle{header colors}=[% + color=#3,% + fill=#1% + ]% +}% +\newcommand{\xebaposter@box@headershade@none}[3]{% + \debug{Header-Shade: none}% + \tikzstyle{header colors}=[]% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% The main poster environment +%%% \begin{xebaposter}{settings}{Eye Catcher}{Title}{Author}{University Logo} +%%%----------------------------------------------------------------------------- +%%% The settings are +%%% - grid=true,[false]:Show grid to help with alignment +%%% - colspacing=0.7em: Column spacing +%%% - columns=4: number of columns (default 4 in landscape and 3 in portrait format) (maximum number is 6) +%%% - color=[orange]: xcolor color definition used as the main color of the poster +%%% - colortwo=[white]: The other color for gradient based layouts +%%% - textborder=none,bars,coils,triangles,rectangle,rounded,roundedsmall,roundedleft,roundedright,[faded] +%%% The style of the box around the text area +%%% - headerborder=none,closed,open +%%% No extra border around box header, full border around box header or border that is open below. +%%% - headershape=rectangle,rounded,roundedleft,roundedright +%%% Shape of the box-header region +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newenvironment{poster}[5]{% BEGIN poster begin + \thispagestyle{empty}% Suppress Page Number + \debug{Poster Starts}% + % This setkeys call parses all provided options and depending on the option + % value, assigns different handler functions to the \xebaposter(Box|Header)* + % functions. Once that is done, we don't have to care about particular + % values for border, shading, etc. All we have to do is call the + % handler functions and let them do their job. + % This also allows the user to override the poster-wide defaults on a per-box + % basis. + \setkeys[ba]{posterbox,poster}{#1}% +% + % TODO: Move all those assignments to the key macros! + % Parse Keys% + \colorlet{bgColorOne}{\xebaposter@bgColorOne}% + \colorlet{bgColorTwo}{\xebaposter@bgColorTwo}% +% + %% Boxes% + \setlength{\headerheight}{\xebaposter@headerheight}% + \setlength{\colheight}{\textheight-\xebaposter@headerheight}% + \renewcommand{\@@previousbox}{notset}% +% + \debug{Format}% + % Set default for columns if unset (4 for landscape, 3 for portrait) + \ifthenelse{\equal{\xebaposter@columns}{}}{% + \renewcommand{\xebaposter@columns}{\if@landscape4\else3\fi}% + }{}% +% + \debug{Columns: \xebaposter@columns}% + \setlength{\xebaposter@@colspacing}{\xebaposter@colspacing}% + \setlength{\colwidth}{\textwidth}% + \addtolength{\colwidth}{\xebaposter@@colspacing*(1-\xebaposter@columns)}% + \ifcase\xebaposter@columns\relax% + \error{You need to have at least one column!}% + \or % 1 + \setlength{\colwidth}{\colwidth}% + \or % 2 + \setlength{\colwidth}{0.5\colwidth}% + \or % 3 + \setlength{\colwidth}{0.3333333333333\colwidth}% + \or % 4 + \setlength{\colwidth}{0.25\colwidth}% + \or % 5 + \setlength{\colwidth}{0.2\colwidth}% + \or % 6 + \setlength{\colwidth}{0.16666666666\colwidth}% + \else % >6 + \error{You do not want so many columns}% + \fi% +% + \newcommand{\xebaposter@reference}{north west}% +% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % A box with a header and some content. The basic unit of the poster% + %---------------------------------------------------------------------------% + % Each box has a name and can be placed absolutely or relatively.% + % The only inconvenience is that you can only specify a relative position % + % towards an already declared box. So if you have a box attached to the % + % bottom, one to the top and a third one which should be inbetween, you % + % have to specify the top and bottom boxes before you specify the middle % + % box.% + %% + % below= name of other node% + % above= name of other node% + % aligned=name of other node% + % bottomaligned=name of other node% + % column= [0] % + % row= [0] % + % span= [1] % + % height= ,[auto]% + % name= [noname]% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% + % Backward-compatibility definition (\headerbox command uses posterbox env): + \newcommand{\headerbox}[3]{% + \begin{posterbox}[##2]{##1}% + ##3% + \end{posterbox}% + }% +% + \newenvironment{posterbox}[2][]{% + \debug{Poster box options: ##1}% + % Override the poster-wide defaults on a per-box basis + \setkeys[ba]{posterbox}{##1}% +% + \def\xebaposter@box@title{\rl{##2}}% +% + \colorlet{borderColor}{\xebaposter@box@borderColor}% + \colorlet{headerColorOne}{\xebaposter@box@headerColorOne}% + \colorlet{headerColorTwo}{\xebaposter@box@headerColorTwo}% + \colorlet{headerFontColor}{\xebaposter@box@headerFontColor}% + \colorlet{boxColorOne}{\xebaposter@box@boxColorOne}% + \colorlet{boxColorTwo}{\xebaposter@box@boxColorTwo}% +% + \setlength{\xebaposter@box@@cornerradius}{\xebaposter@box@cornerradius}% + \setlength{\xebaposter@box@@boxheaderheight}{\xebaposter@box@boxheaderheight}% + \setlength{\xebaposter@box@@boxpadding}{\xebaposter@box@boxpadding}% +% +% + %% The columns is always given absolute + % boxstartx = column * colwidth + column * colspacing +% \setlength{\boxstartx}{(\colwidth+\xebaposter@@colspacing)*\xebaposter@box@column}% + % boxstartx = (columns-column-span) * colwidth + (columns-column-span) * colspacing +% \setlength{\boxstartx}{(\xebaposter@columns+-\xebaposter@box@column+-\xebaposter@box@span)*\colwidth+(\xebaposter@columns+-\xebaposter@box@column+-\xebaposter@box@span)*\xebaposter@@colspacing}%by smjr + \setlength{\boxstartx}{\xebaposter@columns\colwidth}% by smjr + \addtolength{\boxstartx}{-\xebaposter@box@column\colwidth}% by smjr + \addtolength{\boxstartx}{-\xebaposter@box@span\colwidth}% by smjr + \addtolength{\boxstartx}{\xebaposter@columns\xebaposter@@colspacing}% by smjr + \addtolength{\boxstartx}{-\xebaposter@box@column\xebaposter@@colspacing}% by smjr + \addtolength{\boxstartx}{-\xebaposter@box@span\xebaposter@@colspacing}% by smjr +% + %% The width is gvien absolute + % Box Width = span * colwidth + (span-1) * colspacing + \setlength{\boxwidth}{\xebaposter@box@span\colwidth} % + \addtolength{\boxwidth}{\xebaposter@@colspacing*(\xebaposter@box@span-1)}% +% + %% Measure the content of the box% + \setbox\xebaposter@box@content=\hbox\bgroup% + \begin{pgfinterruptpicture}% + \begin{minipage}[t]{\boxwidth-\xebaposter@box@@boxpadding*2} + \persian% + \xebaposter@box@textfont\bgroup% + }% End of posterbox preamble + %%% HERE COME THE ACTUAL CONTENTS OF THE POSTERBOX ENVIRONMENT + {% posterbox handling after contents (i.e. drawing everything) + \egroup% + \end{minipage}% + \end{pgfinterruptpicture}% + \egroup% + \setlength{\boxheight}{\ht\xebaposter@box@content}% + \addtolength{\boxheight}{\dp\xebaposter@box@content}% + \addtolength{\boxheight}{\xebaposter@box@@boxheaderheight} % Header% + \addtolength{\boxheight}{2\xebaposter@box@@boxpadding} % Inner Sep +% + \ifthenelse{\equal{\xebaposter@box@height}{bottom}}{% + }{\ifthenelse{\equal{\xebaposter@box@height}{auto}}{% + }{ % Neither auto nor bottom% + \setlength{\boxheight}{\xebaposter@box@height\colheight}% + }}% +% + %% Determine the box position% + \debug{Setting Coordinates}% + \debug{Upper Right}% + \debug{\xebaposter@box@name}% +% + %%% Upper Right Corner% + % if below=auto, set it to the previous box + % TODO: We should generalize this to the previous box of the used column, + % currently we use the previous box, which might be in a different column + \ifthenelse{\equal{\xebaposter@box@below}{auto}}{% + \edef\xebaposter@box@below{\@@previousbox}% + \debug{Box \xebaposter@box@name has below=auto, placing it below box \xebaposter@box@below.}% + }{}% + \xdef\@@previousbox{\xebaposter@box@name}% +% + \ifthenelse{\not\equal{\xebaposter@box@below}{notset} }{% + %% Below% + \debug{Below}% + \path[shape=coordinate] (\boxstartx,0pt |- \xebaposter@box@below se) ++(0pt,-\xebaposter@@colspacing) coordinate(\xebaposter@box@name nw);% + }{% + \ifthenelse{\not\equal{\xebaposter@box@aligned}{notset} }{% + %% Aligned% + \debug{Aligned: \xebaposter@box@aligned}% + \path[shape=coordinate] (\boxstartx,0pt |- \xebaposter@box@aligned nw) coordinate(\xebaposter@box@name nw);% + }{% + %% Fixed% + \debug{Fixed}% + \setlength{\boxstarty}{\xebaposter@box@row\colheight}% + \path[shape=coordinate] (\boxstartx,\colheight-\boxstarty) coordinate(\xebaposter@box@name nw);% + }}% +% + %% Lower Left Corner% + \debug{Lower Left}% + \ifthenelse{\equal{\xebaposter@box@above}{bottom}}{% + %% Above = Bottom% + \debug{Above bottom}% + \ifthenelse{\equal{\xebaposter@box@below}{notset} \and \equal{\xebaposter@box@aligned}{notset}}{% + \path[shape=coordinate] (\boxstartx,\boxheight) coordinate(\xebaposter@box@name nw);% + }{}% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\xebaposter@box@name se);% + }{\ifthenelse{\not \equal{\xebaposter@box@bottomaligned}{notset}}{% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \xebaposter@box@bottomaligned se) coordinate(\xebaposter@box@name se);% + }{{\ifthenelse{\not \equal{\xebaposter@box@above}{notset}}{% + %% Above = Node% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \xebaposter@box@above nw) +(0pt,\xebaposter@@colspacing) coordinate(\xebaposter@box@name se);% + }{% + %% Above = notset% + \debug{Above=not set}% + \ifthenelse{\equal{\xebaposter@box@height}{bottom}}{% + %% height=bottom% + \debug{height=bottom}% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\xebaposter@box@name se);% + }{ %% height=auto or fixed% + \debug{height=auto or fixed}% + \path[shape=coordinate] (\xebaposter@box@name nw) ++(\boxwidth,-\boxheight) coordinate(\xebaposter@box@name se);% + }}}}}% +% + % + % Set coordinates relative to nw,se% + \debug{Fixing Coordinates}% + \path[shape=coordinate]% + (\xebaposter@box@name nw) +(0pt,-\xebaposter@box@@boxheaderheight) coordinate(\xebaposter@box@name tnw)% + (\xebaposter@box@name nw |- \xebaposter@box@name se) coordinate(\xebaposter@box@name sw)% + (\xebaposter@box@name se |- \xebaposter@box@name nw) coordinate(\xebaposter@box@name ne)% + (\xebaposter@box@name ne) +(0pt,-\xebaposter@box@@boxheaderheight) coordinate(\xebaposter@box@name tne)% +% + (\xebaposter@box@name nw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer nw)% + (\xebaposter@box@name tnw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer tnw)% + (\xebaposter@box@name sw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer sw)% +% + (\xebaposter@box@name ne) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer ne)% + (\xebaposter@box@name tne) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer tne)% + (\xebaposter@box@name se) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer se);% +% + %% Setting the bg colors of the box header + \xebaposterHeaderSetShade{headerColorOne}{headerColorTwo}{borderColor}% +% + \tikzstyle{rc}=[rounded corners=\xebaposter@box@@cornerradius];% + \tikzstyle{src}=[rounded corners=0.5em];% +% + + %% Now that everything is set up, draw the actual box, with bg and header + \begin{scope}[line width=\xebaposter@box@linewidth]% + %% Header% + \debug{Header}% + \debug{Header-Shape: \xebaposter@box@headershape, header-border: \xebaposter@box@headerborder (\xebaposter@box@headerbordernr)}% + % TODO: Also turn this last ifcase construct into a handler function + % We only need to determine (fill|shade)(draw|)... + \xebaposterHeaderDrawBackground{bgColorOne}{bgColorTwo}{borderColor} + \xebaposterHeaderDrawBorder{borderColor} + \ifcase\xebaposter@box@headerbordernr\relax% + % open + \ifthenelse{\equal{\xebaposter@box@headershade}{plain}}{% + \filldraw [style=header colors] \xebaposterHeaderGetShape;% + }{% + \shadedraw [style=header colors] \xebaposterHeaderGetShape;% + }% + \or + % closed + \ifthenelse{\equal{\xebaposter@box@headershade}{plain}}{% + \filldraw [style=header colors] \xebaposterHeaderGetShape -- cycle;% + }{% + \shadedraw [style=header colors] \xebaposterHeaderGetShape -- cycle;% + }% + \or + % none + \ifthenelse{\equal{\xebaposter@box@headershade}{plain}}{% + \fill [style=header colors] \xebaposterHeaderGetShape;% + }{% + \shade [style=header colors] \xebaposterHeaderGetShape;% + }% + \fi + % + %% Draw the text inside the box header: + %%% %%% %%% %%% %%% buggy part because of color!! %%% %%% %%% %%% %%% %%% + \xebaposterHeaderDrawText{\hbox{{\color{headerFontColor}\xebaposter@box@headerfont% + {\xebaposter@box@title}}}};% + % + %% Text borders (border around boxes) + \debug{Poster boxes}% + % First set box shade + \xebaposterBoxDrawBackground{boxColorOne}{boxColorTwo}% + \xebaposterBoxDrawBorder{borderColor}% + %% + %% Text Box% + \debug{Drawing Text}% + \path (\xebaposter@box@name tnw) node(text) [anchor=north west,% + outer sep=-0.000em,text width=\boxwidth-2\xebaposter@box@@boxpadding,inner sep=\xebaposter@box@@boxpadding,% + text justified] {{\usebox{\xebaposter@box@content}}};% + \end{scope}% + % + % Finally store the box name as the previous box for the next call +% \xdef\@@previousbox{\xebaposter@box@name}% + }% END of posterbox definition +% + %% Poster Background% + \xebaposterPosterDrawBackground{bgColorOne}{bgColorTwo}% + %% Poster header/title + \hspace{-1.5em}% + \bgroup\setLTR + \begin{bidi@tikzpicture}[inner sep=0pt,outer sep=0pt,line width=0.05em,align=right]% + \useasboundingbox (0em,0em) rectangle(\textwidth,\textheight);% + \path[shape=coordinate]% + (0pt,\colheight) coordinate(north west) (\textwidth,\colheight) coordinate(north east)% + (0pt,0pt) coordinate(south west) (\textwidth,0pt) coordinate(south east);% +% + \ifxebaposter@eyecatcher% Has eye catcher + \debug{Eyecatcher found!}% + \setbox\xebaposter@titleimage@left=\hbox{#2}% + \else% Has no eye catcher% + \setbox\xebaposter@titleimage@left=\hbox{}% + \fi% + \setlength{\xebaposter@titleimage@left@width}{\wd\xebaposter@titleimage@left}% + \setbox\xebaposter@titleimage@right=\hbox{#5}% + \setlength{\xebaposter@titleimage@right@width}{\wd\xebaposter@titleimage@right}% + \setlength{\xebaposter@titleimage@textwidth}{\textwidth}% + \addtolength{\xebaposter@titleimage@textwidth}{-\xebaposter@titleimage@left@width}% + \addtolength{\xebaposter@titleimage@textwidth}{-\xebaposter@titleimage@right@width}% +% + \debug{#3}% + % + % + % % Draw Header% + \draw (north west) +(0em,1em+0.5\headerheight) node(image)[anchor=west] { {\usebox{\xebaposter@titleimage@right }} };% + \draw (north east) +(0em,1em+0.5\headerheight) node(logo) [anchor=east] { {\usebox{\xebaposter@titleimage@left}} };% + % + \ifxebaposter@eyecatcher% Has eye catcher% + \draw (image.east) node(title)[anchor=west,text width=\xebaposter@titleimage@textwidth]{% + \begin{minipage}{\xebaposter@titleimage@textwidth}% + \begin{center}% + \textbf{\Huge \rl{#3}}\\% + {\Large \rl{#4}}% + \end{center}% + \end{minipage}% + };% + \else% Has no eye catcher + \draw (image.east) node(title)[anchor=west] { {\begin{minipage}{\xebaposter@titleimage@textwidth}\persian{\bfseries\Huge\rl{#3}}\\{\Large\rl{#4}}\end{minipage}} };% + \fi + }% END poster begin +% The body + {% BEGIN poster end + % The end, draw gridlines if neccesary + \ifxebaposter@grid + \newdimen{\gridpos}% + \pgfmathsetmacro{\z}{\xebaposter@columns-1}% + \foreach \y in {0,...,\z}% + {% + \setlength{\gridpos}{\y\colwidth+\y\xebaposter@@colspacing}% + \draw[draw=green,draw opacity=0.7] (\gridpos,0pt) -- (\gridpos,\colheight)% + (\gridpos+\colwidth,0pt) -- (\gridpos+\colwidth,\colheight);% + }% + % Horizontal lines, every 0.1: + %% Explicitly list all percentages, because with {0.0, 0.1, ..., 1.0} we + %% get rounding errors in the displayed numbers! + \foreach \y in {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}% + \draw[draw=green,draw opacity=0.7] (0pt,\colheight-\y\colheight) --% + (\textwidth,\colheight-\y\colheight) node[anchor=west] {\y};% + \fi% + \end{bidi@tikzpicture}% + \egroup +% \xkvview{} + \par + }% END poster end -- cgit v1.2.3