summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ftc-notebook/ftc-notebook.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ftc-notebook/ftc-notebook.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/ftc-notebook/ftc-notebook.sty')
-rw-r--r--macros/latex/contrib/ftc-notebook/ftc-notebook.sty1017
1 files changed, 1017 insertions, 0 deletions
diff --git a/macros/latex/contrib/ftc-notebook/ftc-notebook.sty b/macros/latex/contrib/ftc-notebook/ftc-notebook.sty
new file mode 100644
index 0000000000..eeff04e144
--- /dev/null
+++ b/macros/latex/contrib/ftc-notebook/ftc-notebook.sty
@@ -0,0 +1,1017 @@
+%% ----------------------------------------------------------------
+%% ftc-notebook --- format for an FIRST Tech Challenge (FTC) engineering
+%% notebook with daily entries, team story, bio,
+%% and list of fig/table/tasks
+%% Version: Released 2019/02/16, Version 1.1
+%% Authors: FTC 9773, Team Robocracy
+%% E-mail: ftcrobocracy@gmail.com
+%% ----------------------------------------------------------------
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ftc9773}[2019/02/16 FIRST Tech Challenge (FTC) %
+ package for engineering notebook by Robocracy]
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Package Options
+
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{
+ family=FTC,
+ prefix=FTC@
+}
+\DeclareStringOption [FTC 000] {Num} [FTC 000]
+\DeclareStringOption [Outstanding Team] {Name} [Outstanding Team]
+\DeclareStringOption [logo.jpg] {Logo} [logo.jpg]
+\DeclareStringOption [Engineering Notebook]{Notebook} [Engineering Notebook]
+\DeclareStringOption [Strategy] {KindOne} [Strategy]
+\DeclareStringOption [Design] {KindTwo} [Design]
+\DeclareStringOption [Build] {KindThree}[Build]
+\DeclareStringOption [Math/Physics] {KindFour} [Math/Physics]
+\DeclareStringOption [Software] {KindFive} [Software]
+\DeclareStringOption [Team] {KindSix} [Team]
+\DeclareBoolOption {Grid}
+\DeclareBoolOption {Green}
+\DeclareBoolOption {Orange}
+\DeclareBoolOption {Blue}
+
+\ProcessKeyvalOptions*
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% includes
+
+%% general support
+\RequirePackage{longtable}
+\RequirePackage{datetime}
+\newdateformat{monthyeardate}{ \monthname[\THEMONTH] \THEYEAR }
+\RequirePackage[labelfont=bf, textfont=bf]{caption}
+\RequirePackage{subcaption}
+\RequirePackage{xparse}
+\RequirePackage{float}
+\RequirePackage{needspace}
+\RequirePackage{mathptmx}
+\RequirePackage{anyfontsize}
+\RequirePackage{t1enc}
+\RequirePackage{suffix}
+\RequirePackage[absolute, overlay]{textpos}
+
+%% support for tables
+\RequirePackage{array}
+\RequirePackage{multirow}
+\RequirePackage{tabu}
+\RequirePackage{paralist}
+
+%% capitalization \capitalisewords{Will Get First Letters in Cap}
+\RequirePackage{mfirstuc}
+\MFUnocap{are}
+\MFUnocap{or}
+\MFUnocap{and}
+\MFUnocap{for}
+\MFUnocap{by}
+\MFUnocap{a}
+\MFUnocap{an}
+\MFUnocap{in}
+\MFUnocap{am}
+\MFUnocap{pm}
+\MFUnocap{to}
+\MFUnocap{of}
+
+%% page
+\RequirePackage[letterpaper, portrait, margin=2cm]{geometry}
+\RequirePackage{fancyhdr}
+\pagestyle{fancy}
+\fancyhf{}
+\RequirePackage{titlesec}
+
+%% image
+\RequirePackage{graphicx}
+\graphicspath{{src/images/}}
+
+%% support for color
+\RequirePackage[table,dvipsnames]{xcolor}
+\RequirePackage{colortbl}
+
+%% support for callout (inlined below)
+\RequirePackage{calc}
+\setlength\arrayrulewidth{2pt}
+
+%% for arrays of variables
+\RequirePackage{arrayjobx}
+\RequirePackage{multido}
+
+%% conditional
+\RequirePackage{ifthen}
+
+%% to use apostroph as \textquotesingle
+\RequirePackage{textcomp}
+\RequirePackage[utf8]{inputenx}
+\RequirePackage{newunicodechar}
+
+%% for code listing ( \begin{lstlisting} \end{lstlisting}
+\RequirePackage{listings}
+
+ %% custom list
+\RequirePackage{tocloft}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% start of inlined callout (because package is not aways present)
+%% modified only to "un-package it." It was hardwired for the desired
+%% color scheme, and the arrow was made wider. The original can be found
+%% at CTAN.org
+
+
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+\RequirePackage{xifthen}
+
+\newcommand*{\focol}{white}
+\newcommand*{\bgcol}{black}
+\newcommand*{\arcol}{red}
+
+%% ==================================================================
+
+\newenvironment{annotate}[2]
+{ \begin{tikzpicture}[scale=#2]
+ % Annotate
+ \node (pic) at (0,0) {#1};%
+ \newdimen\xtic
+ \newdimen\ytic
+ \pgfextractx\xtic{\pgfpointanchor{pic}{east}}
+ \pgfmathparse{int(\xtic/1cm)}
+ \pgfmathsetmacro\xtic{\pgfmathresult}
+ \pgfextracty\ytic{\pgfpointanchor{pic}{north}}
+ \pgfmathparse{int(\ytic/1cm)}
+ \pgfmathsetmacro\ytic{\pgfmathresult}
+}%
+{ \end{tikzpicture} }
+
+%% ==================================================================
+
+\newcommand{\helpgrid}[1][\bgcol]{
+ \draw[help lines, color=#1] (pic.south west) grid (pic.north east);%
+ \fill[#1] (0,0) circle (3pt);%
+ \foreach \i in {-\xtic,...,\xtic} {%
+ \node at (\i+0.2,0.2) {\color{#1} \tiny \i};}
+ \foreach \i in {-\ytic,...,\ytic} {%
+ \node at (0.2,\i+0.2) {\color{#1} \tiny \i};}
+}
+
+\newcommand{\callout}[3]{%
+ \node [fill=\bgcol] (text) at (#1) {\scriptsize\color{\focol} #2};
+ \draw [line width=0.9mm,\arcol,->] (text) -- (#3);
+}
+
+\newcommand{\note}[2]{%
+ \node [fill=\bgcol] at (#1) {\scriptsize\color{\focol} #2};
+}
+
+\newcommand{\arrow}[2]{%
+ \draw [\arcol,thick,->] (#1) -- (#2);
+}
+
+%% === EOF ================================================
+%% end of inlined callout
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{hyperref}
+\hypersetup{
+ colorlinks=true,
+ linkcolor=black,
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% customizations arrays
+
+\newarray\@TaskDate
+\@TaskDate(1)={}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% counters (private)
+\newcounter{TaskCounter} \setcounter{TaskCounter}{0}
+\newcounter{TaskSection} \setcounter{TaskSection}{0}
+\newcounter{TaskSubSection}[TaskSection] \setcounter{TaskSubSection}{0}
+\newcounter{TaskSubSubSection}[TaskSubSection] \setcounter{TaskSubSubSection}{0}
+
+\renewcommand{\theTaskSection}{\arabic{TaskSection}}
+\renewcommand{\theTaskSubSection}{\arabic{TaskSection}.{\arabic{TaskSubSection}}}
+
+\newcounter{SigneeCounter}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% new month
+\NewDocumentCommand{\Month}{m m}
+%% 1: month
+%% 2: picture
+{
+ \cleardoublepage
+ \newpage
+ \@TaskDate(1)={#1,}
+ \begin{flushleft}
+ \tabulinesep=1.2mm
+ \begin{tabu}{p{2cm}>{\raggedright\arraybackslash}p{14.7cm}}
+ \multirow{2}{*}{\includegraphics[width=2cm]{\FTC@Logo}}
+ & \textbf{\Large \color{TitleColor} \capitalisewords{#1}} \\
+ & \\ \cline{2-2} \\
+ \end{tabu}
+ \vspace{10mm} \\
+ \end{flushleft}
+ {\centering \includegraphics[width=0.85\textwidth]{#2} \\}
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NewDocumentEnvironment{Meeting}{O{Meeting} m m m m m}
+%% 1: Type Meeting/Pre-Season
+%% 5 2: Title of Meeting
+%% 2 3: Date
+%% 3 4: Time
+%% 4 5: Who participated
+%% 6: Items
+{
+ %% arrays init
+ \newarray\TaskTitle
+ \newarray\TaskLabel
+ \newarray\SigneeName
+ \setcounter{SigneeCounter}{0}
+
+ %% print first table with logo, meeting type, date, Title
+ \clearpage
+ \newpage
+ \@TaskDate(1)={#3, Task \theTaskSection, }
+ \begin{flushleft}
+ \tabulinesep=1.2mm
+ \begin{tabu}{p{2cm}>{\raggedright\arraybackslash}p{14.7cm}}
+ \multirow{3}{*}{\includegraphics[width=2cm]{\FTC@Logo}}
+ & \textbf{\Large \color{TitleColor} \capitalisewords{#1 - #3.}} \\
+ & {\Large \capitalisewords{#2.}} \\
+ & \\ \cline{2-2} \\
+ \end{tabu}
+ \vspace{5mm} \\
+ %% print time and participant
+ {\color{TitleColor} \textbf{Time:}} {\capitalisewords{#4.}} \\
+ {\color{TitleColor} \textbf{Meeting Participants:}} {#5.} \\
+ \vspace{5mm}
+ %% print task box
+ \rowcolors{1}{MainTableCellColor}{MainTableCellColor}
+ \begin{tabu}{|>{\raggedright\arraybackslash}p{1cm}|>{\raggedright\arraybackslash}p{5.5cm}|>%
+ {\raggedright\arraybackslash}p{9.7cm}|}
+ \arrayrulecolor{TitleColor} \hline
+ \cellcolor{MainTableHeaderColor} &
+ \cellcolor{MainTableHeaderColor} \textbf{Task:} &
+ \cellcolor{MainTableHeaderColor} \textbf{Goals and Reflections:} \\ \hline
+ #6
+ \end{tabu}
+ \end{flushleft}
+}
+{
+ \needspace{3cm}
+ \begin{flushleft}
+ \rowcolors{1}{MainTableCellColor}{MainTableCellColor}
+ \tabulinesep=1.2mm
+ \begin{tabu}{|>{\raggedright\arraybackslash}p{12.5cm}>{\raggedright\arraybackslash}p{4cm}|}
+ \arrayrulecolor{TitleColor} \hline
+ \cellcolor{MainTableHeaderColor} \textbf{Signed by: } \ListSignee &%
+ \cellcolor{MainTableHeaderColor} \textbf{Date:} \\ \hline
+ & \\
+ & #3 \\ \hline
+ \end{tabu}
+ \end{flushleft}
+ %% delete array
+ \delarray\TaskTitle
+ \delarray\TaskLabel
+ \delarray\SigneeName
+ \ifnum\value{TaskCounter}=\value{TaskSection} \else
+ \PackageError{Robocracy text}{More Task defined than described}{add text}
+ \fi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% People signing the entry are given in a \Signee{name} command
+\NewDocumentCommand{\Signee}{m}
+%% 1: name of person signing
+{\stepcounter{SigneeCounter}%
+\SigneeName(\theSigneeCounter)={#1}%
+#1%
+}
+
+\NewDocumentCommand{\ListSignee}{}
+{ %
+ \ifnum\theSigneeCounter=0 \else %
+ \multido{\i=1+1}{\theSigneeCounter}{ \SigneeName(\i)}. %
+ \fi %
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Task Info
+\newcommand{\TaskInfo}[3] %
+%% 1: title
+%% 2: reference
+%% 2: reflection
+{
+ \stepcounter{TaskCounter}
+ \TaskTitle(\theTaskCounter)={#1}
+ \TaskLabel(\theTaskCounter)={#2}
+ \cellcolor{MainTableHeaderColor} \textbf{\arabic{TaskCounter}.} & \textbf{#1} & #3. \\ \hline
+}
+
+%% private
+\newcommand{\@TypeColor}[4]
+{%
+ \ifthenelse%
+ {\equal{#1}{#2}}%
+ {\cellcolor{black}\textcolor{NormalTableCellColor}{\textbf{#4}}}%
+ {\ifthenelse%
+ {\equal{#1}{#3}}%
+ {\cellcolor{black}\textcolor{NormalTableCellColor}{\textbf{#4}}}%
+ {#4}%
+ }%
+}%
+
+%% private
+\ExplSyntaxOn
+\DeclareExpandableDocumentCommand{\IfNoValueOrEmptyTF}{mmm}
+{
+ \IfNoValueTF{#1}
+ {#2} %% true
+ {\tl_if_empty:nTF {#1} {#2} {#3}} %% false
+}
+\ExplSyntaxOff
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% task section
+\NewDocumentCommand{\Task}{o m O{-1}}
+%% 1: optional label (dependent on tha task)
+%% 2: kind number: 1 to 6
+%% 3: optional second kind number
+{
+ \par
+ \Needspace{5cm}
+ \bigskip
+ \begin{flushleft}
+ \refstepcounter{TaskSection}
+ \checkTaskLabel(\theTaskSection) %% was not able to use \TaskLabel(\theTaskSection)
+ %% in label directly, works with \check & \cache
+ \label{\cachedata}
+ \rowcolors{1}{NormalTableCellColor}{NormalTableCellColor}
+ \tabulinesep=3mm
+ \begin{tabu}{|>{\centering\arraybackslash}p{2.5cm}|>{\centering\arraybackslash}p{2.5cm}|>%
+ {\centering\arraybackslash}p{2.5cm}|>{\centering\arraybackslash}p{2.5cm}|>%
+ {\centering\arraybackslash}p{2.5cm}|>{\centering\arraybackslash}p{2.5cm}|}
+ \arrayrulecolor{TitleColor} \hline
+ \multicolumn{6}{|l|}{\cellcolor{NormalTableHeaderColor} %
+ \capitalisewords{\textbf{\large Task \theTaskSection: \TaskTitle(\theTaskSection).}}} \\
+ \IfNoValueOrEmptyTF{#1}{}{\multicolumn{6}{|l|}{\cellcolor{NormalTableHeaderColor} %
+ \small Continuing from:#1} \\} \hline
+ \@TypeColor{1}{#2}{#3}{\FTC@KindOne} &
+ \@TypeColor{2}{#2}{#3}{\FTC@KindTwo} &
+ \@TypeColor{3}{#2}{#3}{\FTC@KindThree} &
+ \@TypeColor{4}{#2}{#3}{\FTC@KindFour} &
+ \@TypeColor{5}{#2}{#3}{\FTC@KindFive} &
+ \@TypeColor{6}{#2}{#3}{\FTC@KindSix} \\ \hline
+ \end{tabu}
+ \end{flushleft}
+ \checkTaskTitle(\theTaskSection) %% was not able to use \TaskLabel(\theTaskSection)
+ \mycustomtask{\cachedata} %% for gen task entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Task Section
+\NewDocumentCommand{\@Section}{m}
+ {
+ \Needspace{4cm}
+ \begin{flushleft}
+ {\color{TitleColor} \large \textbf{#1}} \\
+ \end{flushleft}
+ }
+
+\NewDocumentCommand{\Section}{sm}{%
+ \IfBooleanTF#1
+ {%% with star
+ \@Section{#2}
+ } {%% without star
+ \refstepcounter{TaskSubSection}
+ \@Section{\theTaskSubSection: #2}
+ }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Meeting Summary
+\NewDocumentCommand{\MeetingSummary}{}
+ { \Section*{Meeting Summary} }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Task Subsection
+\NewDocumentCommand{\@Subsection}{m}
+{
+ \needspace{3cm} %
+ \begin{flushleft} %
+ { \color{TitleColor} \large \textbf{#1}}
+ \vspace{-2mm}\\
+ \end{flushleft} %
+}
+
+\NewDocumentCommand{\Subsection}{sm}{%
+ \IfBooleanTF#1
+ {%% with star
+ \@Subsection{#2}
+ } {%% without star
+ \refstepcounter{TaskSubSubSection}
+ \@Subsection{\arabic{TaskSection}.%
+ \arabic{TaskSubSection}.\arabic{TaskSubSubSection}: #2}
+ }
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Task Subsection
+\NewDocumentCommand{\Highlight}{m}
+{
+ %\needspace{3cm} %
+ \begin{flushleft} %
+ { \color{TitleColor} \textbf{#1}}
+ \vspace{-2mm}\\
+ \end{flushleft} %
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Enumerate with Title
+\NewDocumentEnvironment{EnumerateWithTitle}{m} %
+{
+ \Subsection*{#1}
+ \begin{enumerate}
+}
+{
+ \end{enumerate}
+}
+
+\NewDocumentEnvironment{ItemizeWithTitle}{m} %
+{
+ \Subsection*{#1}
+ \begin{itemize}
+}
+{
+ \end{itemize}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% pictures
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% private
+\newcommand{\Callout}[3]{\callout{#1}{\large #2}{#3}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Picture (annotated)
+\newcommand{\RawPict}[3]%
+%% 1: image
+%% 2: size in fraction of page width
+%% 3: annotations
+{ %
+ \begin{minipage}{\linewidth}
+ \centering %
+ \begin{annotate}{\includegraphics[width=#2\textwidth]{#1}}{#2} %
+ \ifFTC@Grid
+ \helpgrid
+ \fi
+ %% \callout{x , y of text}{Text}{x, y of arrow}
+ #3
+ \end{annotate}
+ \end{minipage}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Figure with one Pict
+\NewDocumentCommand{\PictFigure}{O{htb} m O{0.9} m m o}%
+%% 1 location (optional, everywhere)
+%% 2 file
+%% 3 size (optional, 90%)
+%% 3 caption
+%% 5 label
+%% 6 annotation (optional)
+{ %
+ \begin{figure}[#1]
+ \centering
+ \RawPict{#2}{#3}{#6}
+ \caption{#4.}
+ \label{#5}
+ \end{figure}
+}
+
+\newlength{\@ExplainedPictFigureTextLength}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Figure with one picture and explanations
+%% private internal command
+\NewDocumentCommand{\RawExplainedPict}{m O{0.6} m o}%
+%% 1 file
+%% 2 size pict (optional, default 0.6, must be < 0.95)
+%% 3 explanation
+%% 4 annotation (annotation)
+{
+ \setlength{\@ExplainedPictFigureTextLength}{0.95\textwidth - #2\textwidth}
+ \centering
+ \begin{minipage}{#2\textwidth}
+ \RawPict{#1}{.9}{#4}
+ \end{minipage}%
+ \begin{minipage}{\@ExplainedPictFigureTextLength}
+ #3
+ \end{minipage}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Figure with one picture and explanations
+\NewDocumentCommand{\ExplainedPictFigure}{O{htb} m O{0.6} m m m o}%
+%% 1 location (optional, everywhere)
+%% 2 file
+%% 3 size pict (optional, default 0.6, must be < 0.95)
+%% 4 caption
+%% 5 label
+%% 6 explanation
+%% 7 annotation (optional)
+{
+ \begin{figure}[#1]
+ \RawExplainedPict{#2}[#3]{#6}[#7]
+ \caption{#4.}
+ \label{#5}
+ \end{figure}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Figure with one picture and explanations
+\NewDocumentCommand{\PictSubfigure}{m O{0.4} m m o}%
+%% 1 file
+%% 2 size pict (optional, default 0.4, must be smaller than 0.95)
+%% 3 caption
+%% 4 label
+%% 5 annotation (optional)
+{
+ \begin{subfigure}{#2\textwidth}
+ \RawPict{#1}{.9}{#5}
+ \caption{#3.}
+ \label{#4}
+ \end{subfigure}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Figure with one picture and explanations
+\NewDocumentCommand{\ExplainedPictSubfigure}{m O{0.6} m m m o}%
+%% 1 file
+%% 2 size pict (optional, default 0.6, must be < 0.95)
+%% 3 caption
+%% 4 label
+%% 5 explanation
+%% 6 annotation (optional)
+{
+ \begin{subfigure}{0.9\textwidth}
+ \RawExplainedPict{#1}[#2]{#5}[#6]
+ \caption{#3.}
+ \label{#4}
+ \end{subfigure}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Figure with Multiple Figures
+\NewDocumentEnvironment{GroupedFigures}{O{htb} m m}%
+%% 1 location (optional, everywhere)
+%% 2 caption
+%% 3 label
+{
+ \begin{figure}[#1]
+ \centering
+}
+{
+ \caption{#2.}
+ \label{#3}
+ \end{figure}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\renewcommand{\arraystretch}{1.5}
+
+%% internal command
+\NewDocumentEnvironment{MyTable}{m m m m m} %
+%% 1: color
+%% 2: table column definition
+%% 3: legend
+%% 4: caption
+%% 5: label
+{
+ \begin{center}
+ \rowcolors{2}{#1}{#1}
+ \begin{longtable}{#2}
+ %
+ \arrayrulecolor{TitleColor}
+ \caption{#4.} \label{#5} \\
+ \hline
+ \rowcolor{NormalTableHeaderColor} #3 \\ \hline
+ \endfirsthead
+ %
+ \arrayrulecolor{TitleColor}
+ \hline
+ \rowcolor{NormalTableHeaderColor} #3 \\ \hline
+ \endhead
+}
+{
+ \\ \hline
+ \end{longtable}
+ \end{center}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% decision
+\NewDocumentEnvironment{RawDecisionTable}{m m m m} %
+%% 1: column format
+%% 2: column titles
+%% 3: caption
+%% 4: label
+{ \begin{MyTable}{NormalTableCellColor}{#1}{#2}{#3}{#4} }
+{ \end{MyTable} }
+
+\NewDocumentEnvironment{DecisionTable}{O{Option} O{Pro} O{Cons} m m} %
+%% 1,2,3: column names (optional: all or none please)
+%% 4: caption
+%% 5: label
+{ \begin{RawDecisionTable}{|p{4cm}|p{6.5cm}|p{6.5cm}|}%
+ {\textbf{#1:} & \textbf{#2:} & \textbf{#3:}}{#4}{#5}
+}
+{ \end{RawDecisionTable} }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% description Table
+\NewDocumentEnvironment{RawDescriptionTable}{m m m m} %
+%% 1: column format
+%% 2: column titeles
+%% 3: caption
+%% 4: label
+{ \begin{MyTable}{White}{#1}{#2}{#3}{#4} }
+{ \end{MyTable} }
+
+%% no star: small + large sized columns
+%% with star: 2 medium sized columns
+\NewDocumentEnvironment{DescriptionTable}{m m m m} %
+%% 1: first col title
+%% 2: second col title
+%% 3: caption
+%% 4: label
+{
+ \begin{RawDescriptionTable}{|p{5cm}|p{12cm}|}%
+ {\textbf{#1} & \textbf{#2}}{#3}{#4}
+}
+{ \end{RawDescriptionTable} }
+
+\NewDocumentEnvironment{DescriptionTable*}{m m m m} %
+%% 1: first col title
+%% 2: second col title
+%% 3: caption
+%% 4: label
+{
+ \begin{RawDescriptionTable}{|p{8.5cm}|p{8.5cm}|}%
+ {\textbf{#1} & \textbf{#2}}{#3}{#4}
+}
+{ \end{RawDescriptionTable} }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% table entries
+\NewDocumentCommand{\TableEntryTextTextText}{m m m}
+%% 1,2,3: text, text, text entries (use in decision table)
+{
+ \begin{minipage}[t]{\linewidth}
+ \vspace{1mm}
+ \raggedright
+ #1
+ \vspace{2mm}
+ \end{minipage}
+ &
+ \begin{minipage}[t]{\linewidth}
+ \vspace{1mm}
+ \raggedright
+ #2
+ \vspace{2mm}
+ \end{minipage}
+ &
+ \begin{minipage}[t]{\linewidth}
+ \vspace{1mm}
+ \raggedright
+ #3
+ \vspace{2mm}
+ \end{minipage}
+}
+
+\NewDocumentCommand{\TableEntryTextItemItem}{m m m}
+%% 1,2,3: text, items, items entries (use in decision table)
+{
+ \TableEntryTextTextText%
+ {#1}
+ {\begin{compactitem} #2 \end{compactitem}}
+ {\begin{compactitem} #3 \end{compactitem}}
+}
+
+\NewDocumentCommand{\TableEntryTextText}{m m}
+%% 1, 2: text, text entries (use in description table)
+{
+ \begin{minipage}[t]{\linewidth}
+ \vspace{1mm}
+ \raggedright
+ #1
+ \vspace{2mm}
+ \end{minipage}
+ &
+ \begin{minipage}[t]{\linewidth}
+ \vspace{1mm}
+ \raggedright
+ #2
+ \vspace{2mm}
+ \end{minipage}
+}
+
+\NewDocumentCommand{\TableEntryTextItem}{m m}
+%% 1,2: items, items entries (use in description table)
+{
+ \TableEntryTextText%
+ {#1}
+ {\begin{compactitem} #2 \end{compactitem}}
+}
+
+\NewDocumentCommand{\TableEntryItemItem}{m m}
+%% 1,2: items, items entries (use in description table)
+{
+ \TableEntryTextText%
+ {\begin{compactitem} #1 \end{compactitem}}
+ {\begin{compactitem} #2 \end{compactitem}}
+}
+
+\NewDocumentCommand{\MyTableKey}{m} {\cellcolor{NormalTableHeaderColor} #1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% bio
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ \NewDocumentEnvironment{Bio}{} %
+{
+ \cleardoublepage
+ \newpage
+
+ \addcontentsline{mcf}{mycustomtask}{Meet the Team}
+ \begin{center}
+ \rowcolors{1}{White}{White}
+ \begin{longtable}{|>{\raggedright\arraybackslash}p{8.5cm}|%
+ >{\raggedright\arraybackslash}p{8.5cm}|}
+ %
+ \arrayrulecolor{TitleColor}
+ \hline
+ \multicolumn{2}{|c|}{\cellcolor{NormalTableHeaderColor} %
+ \textbf{\Large Meet the team}}
+ \\ \hline
+ \endhead
+}
+{
+ \\ \hline
+ \end{longtable}
+ \end{center}
+}
+
+\NewDocumentCommand{\BioEntry}{m m O{Role} m O{Outreach} m m O{0.5} m}
+%% 1, 2 Name, blurb below name
+%% 3, 4 Role (optional), role description
+%% 5, 6 Outreach role (optional), outreach description
+%% 7, 8 pic, (optional) fractional size
+%% 9 full bio
+{
+ \TableEntryTextText{%
+ \begin{center}
+ \RawPict{#7}{#8}{} \\
+ \textbf{#1} \\
+ #2 \vspace{3mm}\\
+ \end{center}
+ \textbf{#3:} #4\vspace{3mm} \\
+ \textbf{#5:} #6
+ } {
+ #9
+ }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% team story
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NewDocumentEnvironment{TeamStory}{O{Our Team Story} m}
+%% 1: Title (default Our Team Story)
+%% 2: Team one-liner description
+{
+ \cleardoublepage
+ \newpage
+
+ \addcontentsline{mcf}{mycustomtask}{#1}
+ \begin{flushleft}
+ \tabulinesep=1.2mm
+ \begin{tabu}{p{3cm}>{\raggedright\arraybackslash}p{13.7cm}}
+ \multirow{2}{*}{\includegraphics[width=3cm]{\FTC@Logo}}
+ & \textbf{ \color{TitleColor} \textit{\fontsize{40}{50}\selectfont #1}} \\
+ & \textbf{\LARGE ``#2''} \\ \cline{2-2} \\
+ \end{tabu}
+ \vspace{10mm} \\
+ \end{flushleft}
+ \begin{Large}
+}{
+ \end{Large}
+}
+
+\NewDocumentCommand{\CoverPage}{m m O{14}}
+%% 1: year
+%% 2: picture
+%% 3: vertical size of picture in cm
+{
+\newpage
+%% text block that overlay info
+\begin{textblock}{10}(2.5, 3.5)%
+ \renewcommand{\arraystretch}{2}%
+ \begin{tabu}{l}
+ \multicolumn{1}{c}{{\Huge \FTC@Num ~}} \\
+ {\fontsize{60}{70}\selectfont \textbf{\textsc{\FTC@Name}}} \\
+ \includegraphics[height=#3cm]{#2} \\
+ \multicolumn{1}{c}{\cellcolor{MainTableCellColor} %
+ \fontsize{30}{40}\selectfont \textbf{\textsc{\FTC@Notebook}}} \\
+ \end{tabu}
+\end{textblock}
+%%background table
+\begin{tabular}[t]{p{9cm}>{\columncolor{MainTableHeaderColor}}p{8cm}}
+ \multirow{3}{*}{\includegraphics[height=4cm]{\FTC@Logo}} & \\
+ & \multicolumn{1}{r}{\cellcolor{MainTableHeaderColor} \textbf{ \Huge #1~}} \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+ & \\
+\end{tabular}
+\newpage
+
+~
+\begin{textblock}{12}(2, 14)%
+ \noindent
+ Document typeset in LaTeX with the \texttt{ftc-notebook} package created %
+ by FTC 9773, Team Robocracy.
+\end{textblock}
+
+\newpage
+
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Misc
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% refs
+\NewDocumentCommand{\TaskRef}{m} {Task~\ref{#1} on page~\pageref{#1}}
+\NewDocumentCommand{\FigureRef}{m} {Figure~\ref{#1} on page~\pageref{#1}}
+\NewDocumentCommand{\TableRef}{m} {Table~\ref{#1} on page~\pageref{#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% list of tasks
+\newcommand{\listexamplename}{Table of Contents}
+\newlistof{mycustomtask}{mcf}{\listexamplename}
+\newcommand{\mycustomtask}[1]
+{%
+ \refstepcounter{mycustomtask}
+ \addcontentsline{mcf}{mycustomtask}
+ {\protect\numberline{\themycustomtask}#1}\par
+}
+
+\NewDocumentCommand{\listoftasks}{}
+{
+ \pagenumbering{roman}
+ \cfoot{\thepage}
+ \listofmycustomtask
+}
+
+\renewcommand\cftmycustomtaskfont{\large}
+\renewcommand\cftfigfont{\large}
+\renewcommand\cfttabfont{\large}
+\renewcommand\cftloftitlefont{\Huge\bfseries}
+\renewcommand\cftlottitlefont{\Huge\bfseries}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% start of doc
+\NewDocumentCommand{\StartNotebook}{}
+{
+ \cfoot{}
+ \lfoot{\FTC@Num, \FTC@Name, \FTC@Notebook.}
+ \rfoot{\@TaskDate(1) Page \thepage.}
+ \pagenumbering{arabic}
+}
+
+\NewDocumentCommand{\ListOfTasks}{}
+{
+ \listoftasks
+ \newpage
+}
+
+\NewDocumentCommand{\ListOfFigures}{}
+{
+ \listoffigures
+ \newpage
+}
+
+\NewDocumentCommand{\ListOfTables}{}
+{
+ \listoftables
+ \newpage
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% defaults
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifFTC@Blue
+ %% title and array rules
+ \definecolor{TitleColor}{rgb}{0.04, 0.32, 0.74}
+ %% main table backgrounds
+ \definecolor{MainTableHeaderColor}{rgb}{0.56, 0.69, 0.99}
+ \definecolor{MainTableCellColor}{rgb}{0.26, 0.47, 0.79}
+ %% normal table backgrounds
+ \definecolor{NormalTableHeaderColor}{rgb}{0.38, 0.60, 0.79}
+ \definecolor{NormalTableCellColor}{rgb}{0.68, 0.87, 0.99}
+ \definecolor{NormalTableCellWhite}{rgb}{1.0, 1.0, 1.0}
+\else
+\ifFTC@Orange
+ %% title and array rules
+ \definecolor{TitleColor}{rgb}{0.71, 0.45, 0.01}
+ %% main table backgrounds
+ \definecolor{MainTableHeaderColor}{rgb}{0.96, 0.80, 0.51}
+ \definecolor{MainTableCellColor}{rgb}{0.99, 0.69, 0.20}
+ %% normal table backgrounds
+ \definecolor{NormalTableHeaderColor}{rgb}{0.98, 0.69, 0.18}
+ \definecolor{NormalTableCellColor}{rgb}{0.99, 0.89, 0.68}
+ \definecolor{NormalTableCellWhite}{rgb}{1.0, 1.0, 1.0}
+\else
+ % default: green
+ %% title and array rules
+ \definecolor{TitleColor}{rgb}{0.65, 0.73, 0.29}
+ %% main table backgrounds
+ \definecolor{MainTableHeaderColor}{rgb}{0.84, 0.96, 0.29}
+ \definecolor{MainTableCellColor}{rgb}{0.70, 0.82, 0.32}
+ %% normal table backgrounds
+ \definecolor{NormalTableHeaderColor}{rgb}{0.84, 0.96, 0.29}
+ \definecolor{NormalTableCellColor}{rgb}{0.94, 0.99, 0.78}
+ \definecolor{NormalTableCellWhite}{rgb}{1.0, 1.0, 1.0}
+\fi
+\fi
+
+%%
+%% Copyright (c) 2019 FTC 9773, Team Robocracy
+%% All rights reserved.
+%%
+%% Developed by FTC 9773 Robocracy team members
+%% Westchester County, NY
+%% 2019
+%%
+%% 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'.
+%%
+%% The Current Maintainer of this work is FTC 9773 Team Robocracy.
+%%
+%% This work consists of the files ftc-notebook.dtx, ftc-notebook.ins,
+%% ftc-notebook.pdf, ftc-notebook.sty, and newmeeting.sh and the derived files
+%%
+%% This package includes the callout.sty package, which was lightly
+%% adapted for our needs. The original copyright of that package is
+%% listed before the callout code. Original version of the callout.sty
+%% is found on ctan.org
+%%
+%%
+%% End of file `ftc-notebook.sty'.