diff options
author | Karl Berry <karl@freefriends.org> | 2022-09-05 20:16:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-09-05 20:16:23 +0000 |
commit | 75cb4064ebd17db6be2bd5343f5a5e75b4e2f34c (patch) | |
tree | b51fe182147134782a0677b5fddad6e4ae64df6e /Master/texmf-dist/tex/latex/ufrgscca | |
parent | 170e98e721ccf5f375e5751c6686baf8caca7793 (diff) |
ufrgscca (5sep22)
git-svn-id: svn://tug.org/texlive/trunk@64302 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ufrgscca')
20 files changed, 5218 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty new file mode 100644 index 00000000000..f3cc97e63a5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty @@ -0,0 +1,494 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-abnt} +\def\tc@tmp@altpackname{ufrgsccaabnt} +\def\tc@tmp@packdesc{UFRGS/CCA ABNT layout} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\def\tc@tocdepth{3} % Table of Contents depth +\def\tc@secdepth{4} % Sectioning numbers depth (3 -> subsubsection) + +\DeclareKeys[ufrgscca-abnt]{ + strict-abnt.usage = load, + strict-abnt.if = tcif@strictabnt, + + chapternopagenum.usage = load, + chapternopagenum.if = tcif@chapternopagenum, + + english.usage = load, + english.if = tcif@english, + relnum.usage = load, + relnum.if = tcif@relnum, + repeatfields.usage = load, + repeatfields.if = tcif@repeatfields, + + showframes.usage = load, + showframes.if = tcif@showframes, + showlabels.usage = load, + showlabels.if = tcif@showlabels, + + tocdepth.usage = load, + tocdepth.store = \tc@tocdepth, + secdepth.usage = load, + secdepth.store = \tc@secdepth, + + nomicrotype.usage = load, + nomicrotype.if = tcif@nomicrotype, + + + dctools.usage = load, + dctools.if = tcif@dctools, +} + +\ProcessKeyOptions[ufrgscca-abnt]\relax + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% +\RequirePackage[english,brazilian]{babel}% +\RequirePackage{csquotes}% + +\iftcif@strictabnt + \RequirePackage[a4paper,inner=2cm,outer=3cm,top=3cm,bottom=2cm,twoside]{geometry} +\else + \iftcif@dctools + \RequirePackage[a4paper,margin=5cm,right=2cm,marginparwidth=4.5cm,asymmetric,top=2.5cm,bottom=1.5cm]{geometry} + \else + \RequirePackage[a4paper,inner=2.5cm,outer=2.5cm,top=3cm,bottom=2cm,twoside]{geometry} + \fi +\fi + +\RequirePackage[toc,page,title]{appendix} +\RequirePackage[pagestyles,clearempty]{titlesec} +\RequirePackage{titletoc} +\RequirePackage[inline]{enumitem} + +\RequirePackage{chngcntr} + +\def\tc@captionwidth{0.75\textwidth} +\def\tc@notewidth{0.635\textwidth} %% 0.84666667\tc@captionwidth +\RequirePackage[position=above,font=small,labelfont=bf,textfont=md,textfont+=sl,width=\tc@captionwidth]{caption}% +%%% +%%% commands for 'floats' +%%% +% +\NewDocumentCommand{\sourcecitation}{m}{{\small{\sourcename\ #1}}}% +% +\newlength{\noteindent}%%auxiliary length +\NewDocumentCommand{\note}{O{}+m}{{\footnotesize\settowidth{\noteindent}{\notename#1:}\addtolength{\noteindent}{3pt}\begin{center}\begin{minipage}{\tc@notewidth}{\parindent=-\the\noteindent\notename#1:\hspace{2.9pt}#2}\end{minipage}\end{center}}}%% +% +% + + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{array} +\RequirePackage{nicematrix} +\NiceMatrixOptions{cell-space-limits = 1pt} + +\newcolumntype{P}[1]{>{\raggedleft\arraybackslash}p{#1}} +\newcolumntype{B}[1]{>{\raggedleft\arraybackslash\bfseries}p{#1}} +\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} +\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} +\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} +\newcolumntype{J}[1]{>{\arraybackslash}p{#1}} + + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% +\WarningFilter{biblatex}{File 'brazilian-abnt-abnt.lbx'}% +\WarningFilter{biblatex}{Conflicting options}% +\iftcif@repeatfields% + \RequirePackage[backend=biber,style=abnt,pretty,giveninits,extrayear,repeatfields]{biblatex}% +\else% + \RequirePackage[backend=biber,style=abnt,pretty,giveninits,extrayear]{biblatex}% +\fi% +%% +%%% +%%% Language selection {package babel} +%%% +\iftcif@english%% + \selectlanguage{english}% + \AtBeginDocument{\selectlanguage{english}}% +\else + \selectlanguage{brazilian}% + \AtBeginDocument{\selectlanguage{brazilian}}% +\fi% + + +%%% +%%% typeset adjusting {package microtype} +%%% +\iftcif@nomicrotype\else\RequirePackage[tracking,kerning,spacing,babel]{microtype}\fi% +% +% pdftex native protruding +% +\pdfprotrudechars=2 +\pdfadjustspacing=2 + +%%% +%%% \so \ul command {package soul}... contour is just to make a fancy underline +%%% +\RequirePackage{contour} +\RequirePackage{soul} + + +\iftcif@showframes% + \RequirePackage{showframe}%% +\fi +%% +\iftcif@showlabels% + \RequirePackage{showlabels}%% + \showlabels{cite}%% + \showlabels{textcite}%% + \RenewDocumentCommand{\showlabelfont}{}{\tiny\ttfamily\color{blue}}%% +\fi%% + + +%%% +%%% ToC and Headings format. {package titlesec/titletoc/titleps} +%%% + +\setcounter{tocdepth}{\tc@tocdepth} % Table of Contents depth +\setcounter{secnumdepth}{\tc@secdepth} % Sectioning numbers depth (3 -> subsubsection) + +\NewDocumentEnvironment{tocless}{}% + {\setcounter{secnumdepth}{-1}\addtocontents{toc}{\protect\setcounter{tocdepth}{-1}\ignorespaces}}% + {\setcounter{secnumdepth}{\tc@secdepth}\addtocontents{toc}{\protect\setcounter{tocdepth}{\tc@tocdepth}\ignorespaces}}% +\def\notoc#1#2{\begin{tocless}#1{#2}\end{tocless}} + +\NewDocumentEnvironment{numberless}{}{\setcounter{secnumdepth}{-1}}{\setcounter{secnumdepth}{\tc@secdepth}} +\def\nonum#1#2{\begin{numberless}#1{#2}\end{numberless}} + + + +%%% +%%% ToC definitions {package titletoc} +%%% +\def\tc@lblmargin{22mm} +\contentsmargin{2.2em} +\def\tc@dotspacing{0.5pc} +\titlecontents{chapter}[\tc@lblmargin]{\vspace{3mm}\normalfont\scshape\selectfont}{\contentslabel{\tc@lblmargin}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\normalsize\normalfont\contentspage} +\titlecontents{section}[\tc@lblmargin]{\vspace{1mm}}{\contentslabel{\tc@lblmargin}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\contentspage} + +\dottedcontents{subsection}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} + +\dottedcontents{subsubsection}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} + +\dottedcontents{figure}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} +\dottedcontents{table}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} + +\RenewDocumentEnvironment{appendix}{O{\defappendixpagename}O{\defappendixname}}{% + \titleformat{\chapter}{\bfseries\Large\sffamily}{#2 \thechapter\hspace{1.5ex}-}{2ex}{\MakeUppercase}% + \titlecontents{chapter}[\tc@lblmargin]{\vspace{3mm}\sc}{\hspace{-\tc@lblmargin}{#2~\thecontentslabel\ -\enspace}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\normalsize\normalfont\contentspage} + \def\appendixname{#2}% + \def\appendixpagename{#1}% + \def\appendixtocname{#1}% + \begin{appendices}% + \let\tc@appendixautorefname@tmp\appendixautorefname + \def\appendixautorefname{#2} + }% + {\let\appendixautorefname\tc@appendixautorefname@tmp\end{appendices}} + +\NewDocumentEnvironment{annex}{O{\defannexpagename}O{\defannexname}}{\begin{appendix}[#1][#2]}{\end{appendix}} + +%%% +%%% Headings definitions {package titlesec} +%%% +%\RenewDocumentCommand{\thechapter}{}{\arabic{chapter}} +\titleformat{\chapter}{\sffamily\bfseries\selectfont\Large}{\thechapter}{2ex}{\MakeUppercase} +\titleformat{name=\chapter,numberless}{\sffamily\bfseries\selectfont\Large\center}{}{0pt}{\MakeUppercase} +\titlespacing{\chapter}{0pt}{\tc@chapbefore}{\tc@chapafter} + +%\def\tc@chapbefore{18pt plus 3pt minus 6pt} +%\def\tc@chapafter{9pt plus 3pt minus 3pt} +%\def\tc@secbefore{12pt plus 6pt minus 3pt} +%\def\tc@secafter{6pt plus 2pt minus 2pt} + +\def\tc@chapbefore{70pt plus 12pt minus 8pt} +\def\tc@chapafter{36pt plus 8pt minus 8pt} +\def\tc@secbefore{27pt plus 6pt minus 6pt} +\def\tc@secafter{18pt plus 4pt minus 4pt} + +\titleformat{\section}[hang]{\normalfont\scshape\selectfont\large}{\thesection}{.5em}{} +\titlespacing{\section}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{name=\section,numberless}[hang]{\normalfont\large\bfseries\scshape\selectfont\center}{}{0pt}{} +\titlespacing{name=\section,numberless}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{\subsection}[hang]{\normalfont\sffamily\bfseries\slshape\selectfont}{\thesubsection}{.5em}{} +\titlespacing{\subsection}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{\subsubsection}[hang]{\normalfont\sffamily\slshape\selectfont}{\thesubsubsection}{.5em}{} +\titlespacing{\subsubsection}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{\paragraph}[hang]{\normalfont\sffamily\selectfont}{\theparagraph}{.5em}{\tightul} +\titlespacing{\paragraph}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{\subparagraph}[hang]{\normalfont\sffamily\selectfont}{\thesubparagraph}{.5em}{\tightul} +\titlespacing{\subparagraph}{0pt}{\tc@secbefore}{\tc@secafter} + +%%% +%%% Relative/Absolute counters... {package chngcntr} +%%% +\iftcif@dctools +\else +\iftcif@relnum% + \counterwithin{figure}{chapter}% + \counterwithin{table}{chapter}% +\else% + \counterwithout{figure}{chapter}% + \counterwithout{table}{chapter}% +\fi +\fi +%%% +%%% Page Heading format {titlesec/titleps} +%%% +\renewpagestyle{plain}{\sethead[\ifthechapter{\sffamily\thepage}{}][][]{}{}{\ifthechapter{\sffamily\thepage}{}}} +\newpagestyle{main}{\sethead[\ifthechapter{\sffamily\thepage}{}][][]{}{}{\ifthechapter{\sffamily\thepage}{}}} +\newpagestyle{bibliography}{\sethead[\sffamily\thepage][][]{}{}{\sffamily\thepage}} +\pagestyle{main} + +\iftcif@chapternopagenum\renewpagestyle{plain}{\sethead[][][]{}{}{}}\fi + +\let\tc@temp@printbibliography\printbibliography + +\defbibheading{bibliography}[\refname]{\nonum\chapter{#1}\pagestyle{bibliography}} + +\let\tc@temp@listoffigures\listoffigures +\def\listoffigures{\tc@temp@listoffigures\addcontentsline{toc}{chapter}{\MakeUppercase\listfigurename}} +%% +\let\tc@temp@listoftables\listoftables +\def\listoftables{\tc@temp@listoftables\addcontentsline{toc}{chapter}{\MakeUppercase\listtablename}} +%% + + +\newlength{\tc@lblwidth} +\NewDocumentCommand{\NewChapListEnv}{mm}{ + \NewDocumentEnvironment{#1}{O{}m}{% + \settowidth{\tc@lblwidth}{##2***}% + \nonum\chapter{\MakeUppercase{#2}}% + \begin{description}[tcc,noindent,leftmargin=\tc@lblwidth,labelwidth=!,##1]% + }{\end{description}} +} + +\NewChapListEnv{listofabbrv}{\listabbrvname} +\NewChapListEnv{listofsymbols}{\listsymbolname} + + +%%% +%%% lists formating {package enumitem} +%%% + +\def\tc@enumbase{6mm} +\def\tc@enummarging{12mm} +\def\tc@enummargingB{18mm} +\def\tc@enumlabelsep{2.5mm} +\setlength{\parindent}{\tc@enummarging} + +\SetEnumitemValue{label}{arabic}{\arabic*.} +\SetEnumitemValue{label}{roman}{\roman*.} +\SetEnumitemValue{label}{alpha}{\alph*.} +\SetEnumitemValue{label}{bullet}{\hfill\textopenbullet} + +\SetEnumitemKey{ppc}{leftmargin=\tc@enummarging,labelindent=\tc@enumbase,labelsep=\tc@enumlabelsep,labelwidth=!,style=nextline} +\SetEnumitemKey{tcc}{leftmargin=\tc@enummarging,labelindent=\tc@enumbase,labelsep=\tc@enumlabelsep,labelwidth=!,style=nextline} +% +\SetEnumitemKey{parindent}{leftmargin=\tc@enummargingB,labelindent=\tc@enummarging,labelwidth=!} +\SetEnumitemKey{noindent}{labelindent=0pt,labelwidth=!} +\SetEnumitemKey{tight}{leftmargin=0pt,listparindent=5mm,labelwidth=5mm} +% +\SetEnumitemKey{miditemsep}{parsep=0ex,itemsep=0.4ex} + +%\SetEnumitemKey{ppctight}{leftmargin=0pt,listparindent=5mm,labelwidth=5mm} + + +\SetEnumitemKey{arabic}{label=\arabic*.} +\SetEnumitemKey{arabic)}{label=\arabic*)} +\SetEnumitemKey{(arabic)}{label=(\arabic*)} +\SetEnumitemKey{arabic*}{label*=\arabic*.} +\SetEnumitemKey{arabic*)}{label*=\arabic*)} +\SetEnumitemKey{roman}{label=\roman*.} +\SetEnumitemKey{roman)}{label=\roman*)} +\SetEnumitemKey{(roman)}{label=(\roman*)} +\SetEnumitemKey{roman*}{label*=\roman*.} +\SetEnumitemKey{roman*)}{label*=\roman*)} +\SetEnumitemKey{Roman}{label=\Roman*.} +\SetEnumitemKey{Roman)}{label=\Roman*)} +\SetEnumitemKey{(Roman)}{label=(\Roman*)} +\SetEnumitemKey{Roman*}{label*=\Roman*.} +\SetEnumitemKey{Roman*)}{label*=\Roman*)} +\SetEnumitemKey{alpha}{label=\alph*.} +\SetEnumitemKey{alpha)}{label=\alph*)} +\SetEnumitemKey{(alpha)}{label=(\alph*)} +\SetEnumitemKey{alpha*}{label*=\alph*.} +\SetEnumitemKey{alpha*)}{label*=\alph*)} +\SetEnumitemKey{Alpha}{label=\Alph*.} +\SetEnumitemKey{Alpha)}{label=\Alph*)} +\SetEnumitemKey{(Alpha)}{label=(\Alph*)} +\SetEnumitemKey{Alpha*}{label*=\Alph*.} +\SetEnumitemKey{Alpha*)}{label*=\Alph*)} +\SetEnumitemKey{bullet}{label=\hfill\textopenbullet} + +%%% +%%% tight underline {packages soul, countour} +%%% +\contourlength{0.17ex}% +\contournumber{96}% + +\NewDocumentCommand{\tightul}{m}{% + \setul{0.355ex}{0.075ex}% + \ul{{\phantom{{#1}}}}% + \llap{\contour{white}{#1}}% +} + +%%% +%%% keyword command definition (for abstract) +%%% +\newcounter{tc@kwcounter}% +\NewDocumentCommand{\keyword}{m}{%% + \stepcounter{tc@kwcounter}%% + \expandafter\gdef\csname keyw\alph{tc@kwcounter}\endcsname{#1}%% +}% +\NewDocumentCommand{\tcabnt@abstractkw}{}{%% + \@ifundefined{keywa}{}{\expandafter\MakeUppercase\keywa}%% + \@ifundefined{keywb}{}{, \keywb}%% + \@ifundefined{keywc}{}{, \keywc}%% + \@ifundefined{keywd}{}{, \keywd}% + \@ifundefined{keywe}{}{, \keywe}% + \@ifundefined{keywf}{}{, \keywf}% + \@ifundefined{keywg}{}{, \keywg}% + \@ifundefined{keywh}{}{, \keywh}% + \@ifundefined{keywi}{}{, \keywi}% + \@ifundefined{keywj}{}{, \keywj}% +}% + +\let\tc@org@abstract\abstract +\let\tc@org@endabstract\endabstract + +\RenewDocumentEnvironment{abstract}{}{%% + \notoc\chapter{\abstractname}% +}{%% + \par\vspace{2ex} %\vfill% + \noindent\textbf{\keywordsname:} \tcabnt@abstractkw.% +}% + +\NewDocumentEnvironment{otherabstract}{O{english}m}{%% + \gdef\tc@otherkeywords{#2}%% + \begin{otherlanguage}{#1}% + \notoc\chapter{\abstractname}% +}{% + \par\vspace{2ex} %\vfill% + \noindent\textbf{\keywordsname:} \tc@otherkeywords.% + \end{otherlanguage}% +}% + + + +%==============================================================================% +% date redefinition (separated month and year) +%==============================================================================% +\RenewDocumentCommand{\date}{O{\number\day}mm}{% + \gdef\tc@publmonth{#2}% + \gdef\tc@publyear{#3}% + \gdef\tc@publday{\ifnum #1<10 0\fi #1}% +}% +\date{\monthname}{\number\year}% + +%for english% +\@namedef{captionsenglish}{%% + \input{ufrgscca-en-base.def}%% +}% +\@namedef{dateenglish}{%% + \def\today{\monthname\space\number\day,\space\number\year}%% + \def\monthname{%% + \ifcase\month\or%% + January\or February\or March\or April\or%% + May\or June\or July\or August\or September\or%% + October\or November\or December%% + \fi%% + }%% + \def\tc@date{\tc@publmonth~\tc@publyear}%% +}% +% +%para portugues% +\@namedef{captionsbrazilian}{%% + \input{ufrgscca-ptBR-base.def}%% +}% +\@namedef{datebrazilian}{%% + \def\today{\number\day\space de\space\monthname\space de\space\number\year}%% + \def\monthname{%% + \ifcase\month\or%% + Janeiro\or Fevereiro\or Março\or Abril\or%% + Maio\or Junho\or Julho\or Agosto\or Setembro\or%% + Outubro\or Novembro\or Dezembro%% + \fi%% + }%% + \def\tc@date{\tc@publmonth\ de~\tc@publyear}%% +}% +% +% +% Mainly for 'cover pages' +\def\tc@pagebreak{\if@openright\cleardoublepage\else\clearpage\fi} + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty new file mode 100644 index 00000000000..fc83276076b --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty @@ -0,0 +1,1006 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-coord} +\def\tc@tmp@altpackname{ufrgsccacoord} + \def\tc@tmp@packdesc{UFRGS/CCA coord commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} + \let\@exp\expandafter + \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\newif\iftcif@coord@emptyforms\tcif@coord@emptyformsfalse +\DeclareKeys[ufrgscca-coord]{ + calendar.usage = general, + calendar.if = tcif@coord@calendar, + checklist.usage = general, + checklist.if = tcif@coord@checklist, + report.usage = general, + report.if = tcif@coord@report, + boards.usage = general, + boards.if = tcif@coord@boards, + boarddates.usage = general, + boarddates.if = tcif@coord@boarddates, + studentlist.usage = general, + studentlist.if = tcif@coord@studentlist, + revforms.usage = general, + revforms.if = tcif@coord@forms@revforms, + referral.usage = general, + referral.if = tcif@coord@forms@referral, + cocertificate.usage = general, + cocertificate.if = tcif@coord@forms@cocertificate, +} +\ProcessKeyOptions[ufrgscca-coord]\relax +\NewDocumentCommand{\setreports}{m}{\SetKeys[ufrgscca-coord]{#1}} + +\def\c@one#1:#2:{\csname #1\endcsname} +\def\c@two#1:#2:{\csname #1\endcsname[newpage]} +\def\tccoord@split#1:#2:#3#4#5,{#4#1:#2:} +\NewDocumentCommand{\tccoord@student@exec}{m}{\tccoord@split#1::\c@two\c@one\empty,} + +\RequirePackage{longtable} +\RequirePackage{ufrgscca-forms} +\RequirePackage{ufrgscca-gen} +\RequirePackage{ufrgscca-core} + +%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% +\cmdfactory<coord>{boardstitle} +\cmdfactory<coord>{boardsworklabel} +\cmdfactory<coord>{TCCgradesNlabel,TCCgradesClabel}% + +\cmdfactory<coord>{calendartitle,tcccalendardesc}% +\cmdfactory<coord>{tccreporttitle,tccreportopening,tccreportdesc,tccreportabsents,tccreportdismiss}% +\cmdfactory<coord>{tccreferralopening,referralfailed,referralapproved,referralfailFF} +\cmdfactory<coord>{referralexamapprovedtext,referralexamfailtext,referralfatetext}% +\cmdfactory<coord>{boardlabel,cocertificatetitle,cocertificateopenning,cocertificatetext}% +\cmdfactory<coord>{TCCperiod,boardstitleB,boardsOBS}% +\cmdfactory<coord>{studentlistformtitle,studentlistactivity,studentlistdate}% + + + +%%% this should go to ufrgscca-coord !!!! +\NewDocumentCommand{\TCCgrades}{mmmmm}{% + \gdef\tc@TCCgradeA{#1}% + \gdef\tc@TCCgradeB{#2}% + \gdef\tc@TCCgradeC{#3}% + \gdef\tc@TCCgradeD{#4}% + \gdef\tc@TCCgradeFF{#5}% +}% +% +%%% this should go to ufrgscca-coord !!!! +\NewDocumentCommand{\TCCgradesN}{mmm}{% + \gdef\tc@TCCgradeAN{#1}% + \gdef\tc@TCCgradeBN{#2}% + \gdef\tc@TCCgradeCN{#3}% +}% + + +%%%%%%%%% +%%%%%%%%% ufrgscca-coord !!! +%%%%%%%%% +\NewDocumentCommand{\tccoord@studentExam}{m}{% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}Exam\endcsname{#1}% +}% + \NewDocumentCommand{\tccoord@studentFF}{}{% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}FF\endcsname{1}% + \gdef\tc@TCCff@flag{1}% +}% +\NewDocumentCommand{\tccoord@studentDismiss}{}{% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}Dismiss\endcsname{1}% + \gdef\tc@TCCdismiss@flag{1}% +}% +\NewDocumentCommand{\studentFate}{O{}}{%% + \ifthenelse{\equal{#1}{C}}{%% + \tccoord@studentExam{C}%% + }{%% + \ifthenelse{\equal{#1}{D}}{%% + \tccoord@studentExam{D}%% + }{%% + \ifthenelse{\equal{#1}{FF}}{%% + \tccoord@studentFF%% + }{%% + \ifthenelse{\equal{#1}{Dismiss}}{%% + \tccoord@studentDismiss%% + }{%% + }%% + }%% + }%% + }%% +}%% +% +% +\NewDocumentCommand{\studenttimeslot}{O{}mm}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}date\endcsname{#2}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}time\endcsname{#3}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}local\endcsname{#1}% +}% +\let\timeslot\studenttimeslot% +% +\NewDocumentCommand{\tccdate}{mm}{%% + \expandafter\gdef\csname date:#1\endcsname{#2}% +}% +% + +%%%%%%%%% +%%%%%%%%% ufrgscca-coord !?!! +%%%%%%%%% +\NewDocumentCommand{\studentTCCtitle}{m}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}title\endcsname{#1}% +}% +\let\TCCtitle\studentTCCtitle% +% +%%%%%%%%% +%%%%%%%%% ufrgscca-coord !!! +%%%%%%%%% +\NewDocumentCommand{\studentremark}{m}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}remark\endcsname{#1}% +}% +% + + + +% +\NewDocumentCommand{\tccoord@checklist}{m}{\expandafter\gdef\csname tc@student\Alph{tc@studentcount}:#1\endcsname{}}% +\NewDocumentCommand{\checklist}{m}{\forcsvlist{\tccoord@checklist}{#1}}% +% +\NewDocumentCommand{\addtostudent}{mm}{\@ifundefined{#1}{}{\csappto{#1.hook}{#2}}} +% +\NewDocumentCommand{\checkedbox}{}{\ooalign{$\square$\cr\hidewidth\raise.3ex\hbox{$\checkmark\mkern-7mu$}\hidewidth\cr}}% +\NewDocumentCommand{\uncheckedbox}{}{$\square$}% +\NewDocumentCommand{\tccoord@@check}{mm}{\@ifundefined{tc@student#1:#2}{\uncheckedbox}{\checkedbox}}% +\NewDocumentCommand{\tccoord@check}{mm}{\@ifundefined{#2}{}{\tccoord@@check{#1}{\csname #2\endcsname} \csname @\csname #2\endcsname\endcsname}}% +\NewDocumentCommand{\checkdef}{mmm}{\expandafter\gdef\csname #1\endcsname{#2}\expandafter\gdef\csname @#2\endcsname{#3}}% +%\chekmark% + +%%%%% +%%%%% ufrgscca-coord !!!! +%%%%% +\NewDocumentCommand{\tccoord@studentboardsnewpage}{}{% %%% see ufrgscca-core for counters... + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}BoardsNP\endcsname{1}% +}% + +\NewDocumentCommand{\NewStudent}{m+m}{%% + \expandafter\NewDocumentCommand\csname #1\endcsname{O{}}{%% + #2% + \csname #1.hook\endcsname + \@ifundefined{tccoord@studentboards##1}{}{\csname tccoord@studentboards##1\endcsname}%% + \iftcif@coord@forms@revforms + \tcforms@examinersForms + \fi + \iftcif@coord@forms@referral + \tccoord@TCCreferralletter + \fi + \iftcif@coord@forms@cocertificate + \tccoord@TCCcocertificateletter + \fi + + \@defaultboard% + }%% + \expandafter\NewDocumentCommand\csname #1.hook\endcsname{}{} +}% + + + +\NewDocumentCommand{\@distinctboard}{}{\def\tc@nBoard{}}% +\NewDocumentCommand{\@defaultboard}{}{\let\tc@nBoard\undefined}% +% +% +\newcounter{tc@calendareventcount}% +\NewDocumentCommand{\tcccalendarevent}{mm}{%% + \stepcounter{tc@calendareventcount}%% + \expandafter\gdef\csname tc@tcccalendarevent\Alph{tc@calendareventcount}week\endcsname{#1}%% + \expandafter\gdef\csname tc@tcccalendarevent\Alph{tc@calendareventcount}desc\endcsname{#2}%% +}% +\NewDocumentCommand{\tcccalendarhead}{mmm}{\gdef\tc@tcccalendarhead{#1 & #2 & #3\\}}% +% +\newcounter{tc@calendareventdatecount}% +\NewDocumentCommand{\tcccalendareventdate}{m}{%% + \stepcounter{tc@calendareventdatecount}%% + \expandafter\gdef\csname tc@tcccalendarevent\Alph{tc@calendareventdatecount}date\endcsname{#1}%% +}% +% + + +% +\NewDocumentCommand{\examinergrades}{mmm}{%% + \expandafter\def\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}pointA\endcsname{#1}%% + \expandafter\def\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}pointB\endcsname{#2}%% + \expandafter\def\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}pointC\endcsname{#3}%% + \ifthenelse{\equal{#1}{}}{%% + \expandafter\def\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}grade\endcsname{0}% + }{%% + \expandafter\edef\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}grade\endcsname{\fpeval{round((\tc@TCCpointAweight * #1 + \tc@TCCpointBweight * #2 + \tc@TCCpointCweight * #3),2,1)} }% + }% + }% + + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC calendar% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@calendartab{11.5cm}% +\NewDocumentCommand{\tccoord@TCCcalendarline}{m}{\@ifundefined{tc@tcccalendarevent#1week}{}{\textbf{\csname tc@tcccalendarevent#1date\endcsname} & \csname tc@tcccalendarevent#1week\endcsname & \csname tc@tcccalendarevent#1desc\endcsname\\\hline}}% +%%% +%% +%%% +\NewDocumentCommand{\tccoord@TCCcalendar}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@calendartitle}% +% + { \footnotesize% + \begin{center} +% + \resizebox{\textwidth}{!}{%% + \begin{tabular}{ccp{\tc@calendartab}}% + \tc@tcccalendarhead\hline% + \tccoord@TCCcalendarline{A}% + \tccoord@TCCcalendarline{B}% + \tccoord@TCCcalendarline{C}% + \tccoord@TCCcalendarline{D}% + \tccoord@TCCcalendarline{E}% + \tccoord@TCCcalendarline{F}% + \tccoord@TCCcalendarline{G}% + \tccoord@TCCcalendarline{H}% + \tccoord@TCCcalendarline{I}% + \tccoord@TCCcalendarline{J}% + \tccoord@TCCcalendarline{K}% + \tccoord@TCCcalendarline{L}% + \tccoord@TCCcalendarline{M}% + \tccoord@TCCcalendarline{N}% + \tccoord@TCCcalendarline{O}% + \end{tabular}} +% + \end{center}% + %\if@lmodern + \tiny + %\fi + \tcdef@coord@tcccalendardesc% + }% + \vfill% +% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% Student list form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@stlistrule{65mm}% +\def\tc@stlisttab{70mm}% +%%% +%% +%%% +\NewDocumentCommand{\tccoord@studentlistrow}{m}{%% + \@ifundefined{tc@student#1}{\rule{\tc@stlistrule}{.1pt}}{\csname tc@student#1\endcsname}\hrulefill & \rule{\tc@stlistrule}{.1pt}\\% +}% +% +\NewDocumentCommand{\tccoord@studentlistform}{}{% + \stepcounter{tc@studentcount}% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@studentlistformtitle}% + \vspace{20mm}% +% + {\small% + \begin{tabular}{p{\tc@stlisttab}@{ }p{\tc@stlisttab}}% + \tcdef@forms@formsstudentlabelgen & \tcdef@forms@studentsignaturegen\\\hline\\[2mm]% + +% + \tccoord@studentlistrow{A} +% + \tccoord@studentlistrow{B}% + \tccoord@studentlistrow{C}% + \tccoord@studentlistrow{D}% + \tccoord@studentlistrow{E}% +% + \tccoord@studentlistrow{F}% + \tccoord@studentlistrow{G}% + \tccoord@studentlistrow{H}% + \tccoord@studentlistrow{I}% + \tccoord@studentlistrow{J}% +% + \tccoord@studentlistrow{K}% + \tccoord@studentlistrow{L}% + \tccoord@studentlistrow{M}% + \tccoord@studentlistrow{N}% + \tccoord@studentlistrow{O}% +% + \tccoord@studentlistrow{P}% + \tccoord@studentlistrow{Q}% + \tccoord@studentlistrow{R}% + \tccoord@studentlistrow{S}% + \tccoord@studentlistrow{T}% +% + \tccoord@studentlistrow{U}% + \tccoord@studentlistrow{V}% + \tccoord@studentlistrow{W}% + \tccoord@studentlistrow{X}% + \tccoord@studentlistrow{Y}% + \end{tabular}}% + \vfill% +% + \pagebreak% +}% +% +%%% +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student info row (for reports and referral letters)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@BoardTabA{38mm}% +\def\tc@BoardTabB{38mm}% +\def\tc@BoardTabC{60mm}% +\def\tc@BoardTabD{13mm}% +%%% +%% +%%% +\NewDocumentCommand{\tccoord@studentboardrow}{m}{%% + \@ifundefined{tc@student#1}{}{% + \@ifundefined{tc@student#1Dismiss}{%% + \@ifundefined{tc@student#1FF}{%% + \@ifundefined{tc@student#1time}{}{%% + \multirow{4}{\tc@BoardTabA}{\textbf{\csname tc@student#1\endcsname}} & \multirow{4}{\tc@BoardTabB}{{\csname tc@student#1@advisor\endcsname}} & \csname tc@student#1@examinerA\endcsname & \multirow{5}{\tc@BoardTabD}{\iftcif@coord@boarddates\else\csname tc@student#1date\endcsname\\\fi + \csname tc@student#1time\endcsname\\[1mm]\csname tc@student#1local\endcsname + }\\*% + & & \csname tc@student#1@examinerB\endcsname & \\*% + & & \csname tc@student#1@examinerC\endcsname & \\*% + & & (\csname tc@student#1@altexaminerA\endcsname\ ) & \\*% + \multicolumn{3}{l}{\textsc{\tcdef@coord@boardsworklabel:} \begin{minipage}{0.90\textwidth}\textit{\csname tc@student#1title\endcsname}\end{minipage}} & \\[2mm]\hline% + }% + }{}% + }{}% + }% +}% +% +\NewDocumentCommand{\tccoord@testdaterow}{mm}{%% +% \@ifundefined{tcif@coord@boarddates}{}{%% + \iftcif@coord@boarddates% + \@ifundefined{tc@student#2}{}{%% + \@ifundefined{tc@student#2Dismiss}{%% + \@ifundefined{tc@student#2FF}{%% + \@ifundefined{tc@student#2BoardsNP}{%% + \tccoord@@testdaterow{\csname tc@student#1date\endcsname}{\csname tc@student#2date\endcsname}%% + }{\kill\pagebreak\tccoord@daterow{#2}}%% + }{}%% + }{}%% + }%% + \fi + %}%%@boarddates +}%% +% +\NewDocumentCommand{\tccoord@@testdaterow}{mm}{\ifthenelse{\equal{#1}{#2}}{\\[-4.35mm]\hline\\[-4mm]}{\tccoord@@daterow{#2}}}% +\NewDocumentCommand{\tccoord@daterow}{m}{\gdef\tc@date{\csname tc@student#1date\endcsname}\tccoord@@daterow{\tc@date}}% +\NewDocumentCommand{\tccoord@@daterow}{m}{& & \multicolumn{2}{r}{\textsc{\textbf{\csname date:#1\endcsname\ --- #1}}} \\*% + \textsc{\tcdef@forms@formsstudentlabelgen} & \textsc{\tcdef@forms@formsadvisorlabelgen} & \textsc{\tcdef@forms@formsboardtitle} & \textsc{\tcdef@forms@formstimelabel}\\*\hline}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Boards announce table% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@TCCboards}{}{% + \stepcounter{tc@studentcount}% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@TCCperiod}% +% + {%% + \footnotesize\gdef\tc@date{\csname tc@studentAdate\endcsname}% + \setlength\LTleft{-8mm} \begin{center}% + {%% + \begin{longtable}{p{\tc@BoardTabA}p{\tc@BoardTabB}p{\tc@BoardTabC}p{\tc@BoardTabD}}% + \multicolumn{4}{c}{\textbf{\textsc{\tcdef@coord@boardstitle}}}\\\hline% + \iftcif@coord@boarddates\else\textsc{\tcdef@forms@formsstudentlabelgen} & \textsc{\tcdef@forms@formsadvisorlabelgen} & \textsc{\tcdef@forms@formsboardtitle} & \textsc{\tcdef@forms@formstimelabel}\\\hline\fi% + \endhead% + \tccoord@testdaterow{T}{A}% + \tccoord@studentboardrow{A} \tccoord@testdaterow{A}{B}% + \tccoord@studentboardrow{B} \tccoord@testdaterow{B}{C}% + \tccoord@studentboardrow{C} \tccoord@testdaterow{C}{D}% + \tccoord@studentboardrow{D} \tccoord@testdaterow{D}{E}% + \tccoord@studentboardrow{E} \tccoord@testdaterow{E}{F}% +% + \tccoord@studentboardrow{F} \tccoord@testdaterow{F}{G}% + \tccoord@studentboardrow{G} \tccoord@testdaterow{G}{H}% + \tccoord@studentboardrow{H} \tccoord@testdaterow{H}{I}% + \tccoord@studentboardrow{I} \tccoord@testdaterow{I}{J}% + \tccoord@studentboardrow{J} \tccoord@testdaterow{J}{K}% +% + \tccoord@studentboardrow{K} \tccoord@testdaterow{K}{L}% + \tccoord@studentboardrow{L} \tccoord@testdaterow{L}{M}% + \tccoord@studentboardrow{M} \tccoord@testdaterow{M}{N}% + \tccoord@studentboardrow{N} \tccoord@testdaterow{N}{O}% + \tccoord@studentboardrow{O} \tccoord@testdaterow{O}{P}% +% + \tccoord@studentboardrow{P} \tccoord@testdaterow{P}{Q}% + \tccoord@studentboardrow{Q} \tccoord@testdaterow{Q}{R}% + \tccoord@studentboardrow{R} \tccoord@testdaterow{R}{S}% + \tccoord@studentboardrow{S} \tccoord@testdaterow{S}{T}% + \tccoord@studentboardrow{T}% +% + \end{longtable}% + }% + \end{center}% + {\bf \tcdef@coord@boardsOBS}% + }% + \vfill% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% \tccoord@fate => A,B,C,D as a function of student grade% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@fate}{m}{% + \ifthenelse{1 = \fpeval{#1 < \tc@TCCgradeCN}}% + {\tc@TCCgradeD}% + { + \ifthenelse{1 = \fpeval{#1 < \tc@TCCgradeBN}}% + {\tc@TCCgradeC}% + { + \ifthenelse{1 = \fpeval{#1 < \tc@TCCgradeAN}}% + {\tc@TCCgradeB}% + {\tc@TCCgradeA}% + }% + }% +} +\NewDocumentCommand{\tccoord@@fate}{m}{\tccoord@fate{\csname tc@student#1Temp\endcsname}}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% \tc@student grade => average of the 3 examiners grade% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentgrade}{m}{%% + \@ifundefined{tc@student#1}{}{% + \expandafter\edef\csname tc@student#1Temp\endcsname{%% +\fpeval{round((\csname tc@student#1@examinerAgrade\endcsname + \csname tc@student#1@examinerBgrade\endcsname + \csname tc@student#1@examinerCgrade\endcsname)/3,2,1)}% + }% + }% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% examiners info (grades) for report/referral letters% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@examinersline}{mm}{%% +& \csname tc@student#1@examiner#2\endcsname & \csname tc@student#1@examiner#2pointA\endcsname & \csname tc@student#1@examiner#2pointB\endcsname & \csname tc@student#1@examiner#2pointC\endcsname & \csname tc@student#1@examiner#2grade\endcsname &% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student extra info (process number, ID, email) for report% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentextrainfo}{m}{%% + (\csname tc@student#1Nproc\endcsname )\ \ \csname tc@student#1ID\endcsname\ / \csname tc@student#1email\endcsname%% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student info (all examiners, advisor, etc.) for report and referral letters.% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentrow}{O{}m}{%% + \@ifundefined{tc@student#2}{}{%% + \@ifundefined{tc@student#2FF}{%% + \@ifundefined{tc@student#2Dismiss}{%% + \multirow{4}{\tc@ReportTabA}{\csname tc@student#2\endcsname} %% + \tccoord@examinersline{#2}{A}\\*%% + \tccoord@examinersline{#2}{B}\\*%% + \tccoord@examinersline{#2}{C}\\*%% + & \multicolumn{4}{c}{\tcdef@cover@advisorname : \csname tc@student#2@advisor\endcsname} & \textbf{\csname tc@student#2Temp\endcsname} & %% + \textbf{\tccoord@@fate{#2}}%% + \@ifundefined{#1}{\\}{\\*%% + \multicolumn{6}{l}{\tcdef@coord@boardsworklabel: \csname tc@student#2title\endcsname}\\*%% + \multicolumn{6}{l}{\tccoord@studentextrainfo{#2}}\\*% + \multicolumn{6}{c}{{\bf \csname tc@student#2remark\endcsname}}\\% + }%% + \hline%% + }{%% + }%% + }{%% + }%% + }%% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student FF info (report)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentFFrow}{m}{%% + \@ifundefined{tc@student#1}{}{%% + \@ifundefined{tc@student#1Dismiss}{%% + \@ifundefined{tc@student#1FF}{%% + }{%% + \multicolumn{6}{l}{\csname tc@student#1\endcsname } & \tc@TCCgradeFF\\*%% + \multicolumn{6}{l}{\tccoord@studentextrainfo{#1} } & \\*%% + \multicolumn{6}{l}{\tcdef@cover@advisorname : \csname tc@student#1@advisor\endcsname} & \\\hline%% + }%% + }{}%% + }%% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student info (report), dimiss case% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\tc@studentDismissrow}[1]{%% + \@ifundefined{tc@student#1}{}{%% + \@ifundefined{tc@student#1FF}{%% + \@ifundefined{tc@student#1Dismiss}{%% + }{%% + \multicolumn{6}{l}{\csname tc@student#1\endcsname} & \\*%% + \multicolumn{6}{l}{\tccoord@studentextrainfo{#1} } & \\*%% + \multicolumn{6}{l}{\tcdef@cover@advisorname : \csname tc@student#1@advisor\endcsname} & \\\hline%% + }%% + }{}%% + }%% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC report (student grades, FF, dismiss)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@ReportTabA{32mm}% +\def\tc@ReportTabB{42mm}% +\def\tc@ReportTabC{15mm}% +\def\tc@ReportTabD{15mm}% +\def\tc@ReportTabE{15mm}% +\def\tc@ReportTabF{8mm}% +\def\tc@ReportTabG{12mm}% +%%%% +%% +%%%% +\NewDocumentCommand{\tccoord@TCCreport}{}{% + \stepcounter{tc@studentcount}% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@tccreporttitle\ - \tcdef@coord@TCCperiod}% + {%% +% \footnotesize% + \tiny% +%% + \tccoord@studentgrade{A}% + \tccoord@studentgrade{B}% + \tccoord@studentgrade{C}% + \tccoord@studentgrade{D}% + \tccoord@studentgrade{E}% + \tccoord@studentgrade{F}% + \tccoord@studentgrade{G}% + \tccoord@studentgrade{H}% +%% + \tccoord@studentgrade{I}% + \tccoord@studentgrade{J}% + \tccoord@studentgrade{K}% + \tccoord@studentgrade{L}% + \tccoord@studentgrade{M}% + \tccoord@studentgrade{N}% + \tccoord@studentgrade{O}% + \tccoord@studentgrade{P}% +%% + \tccoord@studentgrade{Q}% + \tccoord@studentgrade{R}% + \tccoord@studentgrade{S}% + \tccoord@studentgrade{T}% + \tccoord@studentgrade{U}% + \tccoord@studentgrade{V}% + \tccoord@studentgrade{W}% + \tccoord@studentgrade{X}% +%% + \begin{center}% + \begin{longtable}{p{\tc@ReportTabA}@{\ }p{\tc@ReportTabB}@{\ }p{\tc@ReportTabC}@{\ }p{\tc@ReportTabD}@{\ }p{\tc@ReportTabE}@{\ }p{\tc@ReportTabF}@{\ }p{\tc@ReportTabG}}% + \multicolumn{7}{c}{\tcdef@forms@formstitle\ \tcdef@coord@TCCperiod}\\\hline% + & \tcdef@coord@boardlabel & \tc@TCCpointAlabel & \tc@TCCpointBlabel & \tc@TCCpointClabel &% + \tcdef@coord@TCCgradesNlabel & \tcdef@coord@TCCgradesClabel\\\hline% + \endhead% + \tccoord@studentrow[tc@studentextrainfo]{A}% + \tccoord@studentrow[tc@studentextrainfo]{B}% + \tccoord@studentrow[tc@studentextrainfo]{C}% + \tccoord@studentrow[tc@studentextrainfo]{D}% + \tccoord@studentrow[tc@studentextrainfo]{E}% + \tccoord@studentrow[tc@studentextrainfo]{F}% + \tccoord@studentrow[tc@studentextrainfo]{G}% + \tccoord@studentrow[tc@studentextrainfo]{H}% +%% + \tccoord@studentrow[tc@studentextrainfo]{I}% + \tccoord@studentrow[tc@studentextrainfo]{J}% + \tccoord@studentrow[tc@studentextrainfo]{K}% + \tccoord@studentrow[tc@studentextrainfo]{L}% + \tccoord@studentrow[tc@studentextrainfo]{M}% + \tccoord@studentrow[tc@studentextrainfo]{N}% + \tccoord@studentrow[tc@studentextrainfo]{O}% + \tccoord@studentrow[tc@studentextrainfo]{P}% +%% + \tccoord@studentrow[tc@studentextrainfo]{Q}% + \tccoord@studentrow[tc@studentextrainfo]{R}% + \tccoord@studentrow[tc@studentextrainfo]{S}% + \tccoord@studentrow[tc@studentextrainfo]{T}% + \tccoord@studentrow[tc@studentextrainfo]{U}% + \tccoord@studentrow[tc@studentextrainfo]{V}% + \tccoord@studentrow[tc@studentextrainfo]{W}% + \tccoord@studentrow[tc@studentextrainfo]{X}% + \@ifundefined{tc@TCCff@flag}{}{% + & & & & & & \\% + & & & & & & \\% + \multicolumn{6}{l}{{\bf \tcdef@coord@tccreportabsents}}\\\hline% + \tccoord@studentFFrow{A}% + \tccoord@studentFFrow{B}% + \tccoord@studentFFrow{C}% + \tccoord@studentFFrow{D}% + \tccoord@studentFFrow{E}% + \tccoord@studentFFrow{F}% + \tccoord@studentFFrow{G}% + \tccoord@studentFFrow{H}% +%% + \tccoord@studentFFrow{I}% + \tccoord@studentFFrow{J}% + \tccoord@studentFFrow{K}% + \tccoord@studentFFrow{L}% + \tccoord@studentFFrow{M}% + \tccoord@studentFFrow{N}% + \tccoord@studentFFrow{O}% + \tccoord@studentFFrow{P}% +%% + \tccoord@studentFFrow{Q}% + \tccoord@studentFFrow{R}% + \tccoord@studentFFrow{S}% + \tccoord@studentFFrow{T}% + \tccoord@studentFFrow{U}% + \tccoord@studentFFrow{V}% + \tccoord@studentFFrow{W}% + \tccoord@studentFFrow{X}% + }% + \@ifundefined{tc@TCCdismiss@flag}{}{% + & & & & & & \\% + & & & & & & \\% + \multicolumn{6}{l}{{\bf \tcdef@coord@tccreportdismiss}}\\\hline% + \tc@studentDismissrow{A}% + \tc@studentDismissrow{B}% + \tc@studentDismissrow{C}% + \tc@studentDismissrow{D}% + \tc@studentDismissrow{E}% + \tc@studentDismissrow{F}% + \tc@studentDismissrow{G}% + \tc@studentDismissrow{H}% +%% + \tc@studentDismissrow{I}% + \tc@studentDismissrow{J}% + \tc@studentDismissrow{K}% + \tc@studentDismissrow{L}% + \tc@studentDismissrow{M}% + \tc@studentDismissrow{N}% + \tc@studentDismissrow{O}% + \tc@studentDismissrow{P}% +%% + \tc@studentDismissrow{Q}% + \tc@studentDismissrow{R}% + \tc@studentDismissrow{S}% + \tc@studentDismissrow{T}% + \tc@studentDismissrow{U}% + \tc@studentDismissrow{V}% + \tc@studentDismissrow{W}% + \tc@studentDismissrow{X}% + }%% + \end{longtable}%% + \end{center}%% + } %end of footnotesize% + + \vfill% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student check list row% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentcheckrow}{m}{%% + \@ifundefined{tc@student#1}{}{%% + \@ifundefined{tc@student#1FF}{%% + \@ifundefined{tc@student#1Dismiss}{%% + \multirow{4}{\tc@ReportTabA}{\csname tc@student#1\endcsname} % + & \tccoord@check{#1}{checkAA} & \tccoord@check{#1}{checkAB} & \tccoord@check{#1}{checkAC} & \tccoord@check{#1}{checkAD} & \tccoord@check{#1}{checkAE}\\*% + & \tccoord@check{#1}{checkBA} & \tccoord@check{#1}{checkBB} & \tccoord@check{#1}{checkBC} & \tccoord@check{#1}{checkBD} & \tccoord@check{#1}{checkBE}\\*% + & \tccoord@check{#1}{checkCA} & \tccoord@check{#1}{checkCB} & \tccoord@check{#1}{checkCC} & \tccoord@check{#1}{checkCD} & \tccoord@check{#1}{checkCE}\\*% + & \tccoord@check{#1}{checkDA} & \tccoord@check{#1}{checkDB} & \tccoord@check{#1}{checkDC} & \tccoord@check{#1}{checkDD} & \tccoord@check{#1}{checkDE}\\\hline%% + }{}%% + }{}%% + }%% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC check list% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@TCCchecklist}{}{% + \stepcounter{tc@studentcount}% + \tc@formtopbox{\tcdef@forms@formstitle}{Check List - \tcdef@coord@TCCperiod}% + {%% +% \footnotesize% + \scriptsize% + \setlength\LTleft{-10mm}% + \begin{center}% + \begin{longtable}{p{\tc@ReportTabA}lllll}% + \\\hline% + \endhead% + \tccoord@studentcheckrow{A}% + \tccoord@studentcheckrow{B}% + \tccoord@studentcheckrow{C}% + \tccoord@studentcheckrow{D}% + \tccoord@studentcheckrow{E}% + \tccoord@studentcheckrow{F}% + \tccoord@studentcheckrow{G}% + \tccoord@studentcheckrow{H}% +%% + \tccoord@studentcheckrow{I}% + \tccoord@studentcheckrow{J}% + \tccoord@studentcheckrow{K}% + \tccoord@studentcheckrow{L}% + \tccoord@studentcheckrow{M}% + \tccoord@studentcheckrow{N}% + \tccoord@studentcheckrow{O}% + \tccoord@studentcheckrow{P}% +%% + \tccoord@studentcheckrow{Q}% + \tccoord@studentcheckrow{R}% + \tccoord@studentcheckrow{S}% + \tccoord@studentcheckrow{T}% + \tccoord@studentcheckrow{U}% + \tccoord@studentcheckrow{V}% + \tccoord@studentcheckrow{W}% + \tccoord@studentcheckrow{X}% + \end{longtable}%% + \end{center}%% + } %end of footnotesize% + + \vfill% + \pagebreak% +}% +% +% +% +% +% +%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% +% +% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC referral letters :: approved/failed/FF% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@TCCcocertificateletter}{}{% tc@student\Alph{tc@studentcount}@#1 + \@ifundefined{tc@student\Alph{tc@studentcount}@coadvisor}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@cocertificatetitle}% + + \noindent \tcdef@coord@cocertificateopenning% + \vfill% +\begin{center} +{\sc \csname tc@student\Alph{tc@studentcount}@coadvisor\endcsname} +\end{center} + +\vfill + +\tcdef@coord@cocertificatetext + + + + \vfill% + \begin{flushright}% + \tc@city, \tc@publday\ de \tc@publmonth\ de \tc@publyear .% + \vfill % + +% \vfill% + + $\overline{\text{\tcdef@core@TCCcoord}}$\\% + \tcdef@core@TCCcoordtitle% + \vfill + $\overline{\text{\tcdef@core@coursecoord}}$\\% + \tcdef@core@coursecoordtitle\\% + \tcdef@cover@course% + + \end{flushright}% + \vfill% + \pagebreak% + }{}% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% referral fate :: failed or approved as per student grade% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@referralfate}{m}{\ifthenelse{1 = \fpeval{#1 <= \tc@TCCgradeCN}}{\tcdef@coord@referralfailed}{\tcdef@coord@referralapproved}}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC referral letters :: approved/failed/FF% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@TCCreferralletter}{}{% + \@ifundefined{tc@student\Alph{tc@studentcount}Dismiss}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@TCCperiod}% + + \noindent\tcdef@coord@tccreferralopening% + \vfill% + + \@ifundefined{tc@student\Alph{tc@studentcount}FF}{% + \@ifundefined{tc@student\Alph{tc@studentcount}Exam}{% + \tccoord@studentgrade{\Alph{tc@studentcount}}% + \tcdef@coord@referralfatetext% + + \vfill% + + {\footnotesize% + \begin{center}% + \resizebox{\textwidth}{!}{% + \begin{tabular}{p{\tc@ReportTabA}@{\ }p{\tc@ReportTabB}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}%\hline% + & \tcdef@coord@boardlabel & \tc@TCCpointAlabel & \tc@TCCpointBlabel & \tc@TCCpointClabel &% + \tcdef@coord@TCCgradesNlabel & \tcdef@coord@TCCgradesClabel\\\hline% + \tccoord@studentrow{\Alph{tc@studentcount}}% + \end{tabular}% + }% + \end{center}% + }% + }{% + \ifthenelse{\equal{\csname tc@student\Alph{tc@studentcount}Exam\endcsname}{D}}{% + \tcdef@coord@referralexamfailtext% + \vfill% + }{% + \tcdef@coord@referralexamapprovedtext% + \vfill% + }% + {%% + \footnotesize% + \begin{center}% + \begin{tabular}{p{\tc@ReportTabA}@{\ }p{\tc@ReportTabB}@{\ }c}%\hline% + & \tcdef@coord@boardlabel \\\hline% + \multirow{3}{\tc@ReportTabA}{\csname tc@student\Alph{tc@studentcount}\endcsname} % + &\csname tc@student\Alph{tc@studentcount}@examinerA\endcsname\\% + &\csname tc@student\Alph{tc@studentcount}@examinerB\endcsname\\% + &\csname tc@student\Alph{tc@studentcount}@examinerC\endcsname\\% + \multicolumn{2}{l}{\tcdef@forms@formsadvisorlabel : \csname tc@student\Alph{tc@studentcount}@advisor\endcsname} \\\hline% + \end{tabular}% + \end{center}% + }% + }% + }{% + \tcdef@coord@referralfailFF% + }% + + \vfill% + \begin{flushright}% + \tc@city, \tc@publday\ de \tc@publmonth\ de \tc@publyear .% + \vfill % + + \tcdef@core@TCCcoordtitle% + \vfill% + + $\overline{\text{\tcdef@core@TCCcoord}}$% + \end{flushright}% + \vfill% + \pagebreak% + }{}% +}% +% + +\NewDocumentCommand{\tccoord@calendarfill}{}{% +% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% +} + + +\NewDocumentCommand{\setstudentlist}{mm}{\tcgen@cdef<coord>{list#1}{#2}} + +\NewDocumentCommand{\tcreports}{O{}m}{%% + \setreports{#1} + \tccoord@calendarfill% + \iftcif@coord@calendar% + \tccoord@TCCcalendar% + \fi% + \@ifundefined{tcdef@coord@list#2}{}{% + \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tccoord@student@exec\expandafter\expandafter\expandafter{\csname tcdef@coord@list#2\endcsname} + } + \iftcif@coord@checklist% + \tccoord@TCCchecklist% + \fi% + \iftcif@coord@report% + \tccoord@TCCreport% + \fi% + \iftcif@coord@boards% + \tccoord@TCCboards% + \fi% + \iftcif@coord@studentlist% + \tccoord@studentlistform% + \fi% +}%% + +%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% +% +\iftcif@english% +\input{ufrgscca-en-coord.def}% +\else% +\input{ufrgscca-ptBR-coord.def}% +\fi% + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty new file mode 100644 index 00000000000..6d948f5f1ba --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty @@ -0,0 +1,279 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-core} +\def\tc@tmp@altpackname{ufrgsccacore} +\def\tc@tmp@packdesc{UFRGS/CCA core commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student commands% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +\NewDocumentCommand{\tccore@articledefx}{mmmmm}{% + \expandafter\gdef\csname #1article\endcsname{#2}% + \expandafter\gdef\csname #1narticle\endcsname{#3}% + \expandafter\gdef\csname #1Article\endcsname{#4}% + \expandafter\gdef\csname #1Narticle\endcsname{#5}% +}% +\NewDocumentCommand{\tccore@articledefn}{m}{% + \tccore@articledefx{#1}{o(a)}{(a)}{O(A)}{(A)}% +}% +\NewDocumentCommand{\tccore@articledefm}{m}{% + \tccore@articledefx{#1}{o}{}{O}{}% +}% +\NewDocumentCommand{\tccore@articledeff}{m}{% + \tccore@articledefx{#1}{a}{a}{A}{A}% +}% +\NewDocumentCommand{\tccore@articledef}{mm}{% + \ifthenelse{\equal{#2}{m}}{%% + \tccore@articledefm{#1}%% + }{%% + \ifthenelse{\equal{#2}{f}}{%% + \tccore@articledeff{#1}%% + }{%% + \tccore@articledefn{#1}%% + }%% + }%% +}% + +% +% Exception:: those are only used at ufrgscca-forms, but, it make sense to be used at 'local.tex' +% +\cmdfactory<core>{formlocal} +\cmdfactory<core>{tccbrief,tcccoadvisorbrief,tccadvisorsreview} + + +\cmdfactory<core>{TCCcoordtitle} +\NewDocumentCommand{\TCCcoord}{mO{}}{% + \tcgen@cdef<core>{TCCcoord}{#1}% + \tccore@articledef{tcdef@core@TCCcoord}{#2}%% +} + +\cmdfactory<core>{coursecoordtitle}% +\NewDocumentCommand{\coursecoord}{mO{}}{% + \tcgen@cdef<core>{coursecoord}{#1}% + \tccore@articledef{tcdef@core@coursecoord}{#2}%% +} +% +% +\def\tccore@ref@advisor{tc@student\Alph{tc@studentcount}@advisor} +\def\tccore@ref@coadvisor{tc@student\Alph{tc@studentcount}@coadvisor} + +\NewDocumentCommand{\tccore@examiners}{m}{\def\tc@@examiners{tc@student\Alph{tc@studentcount}@#1}}% +\def\tccore@ref@examiner{\tc@@examiners} +\def\tccore@ref@student{tc@student\Alph{tc@studentcount}} +\def\tccore@ref@coursecoord{tcdef@core@coursecoord} +\def\tccore@ref@TCCcoord{tcdef@core@TCCcoord} + +\NewDocumentCommand{\tccore@@ref}{mm}{\expandafter\csname\csname tccore@ref@#1\endcsname#2\endcsname}% +% +% +\let\tc@org@author\author +% +\newcounter{tc@studentcount}% +\RenewDocumentCommand{\author}{mmO{}}{% + \stepcounter{tc@studentcount}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}last\endcsname{#1}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}first\endcsname{#2}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}\endcsname{#2 #1}% + \tccore@articledef{tc@student\Alph{tc@studentcount}}{#3}%% +}% +% +\NewDocumentCommand{\authorinfo}{O{}mm}{% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}Nproc\endcsname{#1}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}ID\endcsname{#2}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}email\endcsname{#3}% +}% +\NewDocumentCommand{\student}{mmO{}}{\author{#1}{#2}[#3]}% +\NewDocumentCommand{\studentinfo}{O{}mm}{\authorinfo[#1]{#2}{#3}}% +%---------- +%---------- +% +\NewDocumentCommand{\tccore@ProfFields}{mmmmm}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1last\endcsname{#3}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1first\endcsname{#4}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1\endcsname{#2~#4 #3}%% + \tccore@articledef{tc@student\Alph{tc@studentcount}@#1}{#5}% + +}% +\NewDocumentCommand{\tccore@ProfInfo}{mmmmm}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1institution\endcsname{#2}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1titleinfo\endcsname{#3}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1email\endcsname{#4}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1phone\endcsname{#5}%% +}% +% +% +% +\newcounter{tc@examinercount}[tc@studentcount]% +% +\NewDocumentCommand{\advisor}{O{}mmO{}}{%% + \tccore@ProfFields{advisor}{#1}{#2}{#3}{#4}%% +%%% the advisor is also the first examiner if not @nBoard% + \@ifundefined{tc@nBoard}{\examiner[#1]{#2}{#3}[#4]}{}%% +}% +\NewDocumentCommand{\advisorinfo}{mmmm}{%% + \tccore@ProfInfo{advisor}{#1}{#2}{#3}{#4}%% +%%% the advisor is also the first examiner if not @nBoard% + \@ifundefined{tc@nBoard}{\examinerinfo{#1}{#2}{#3}{#4}}{}%% +}% +% +\NewDocumentCommand{\coadvisor}{O{}mmO{}}{%% + \tccore@ProfFields{coadvisor}{#1}{#2}{#3}{#4}%% +}% +\NewDocumentCommand{\coadvisorinfo}{mmmm}{%% + \tccore@ProfInfo{coadvisor}{#1}{#2}{#3}{#4}%% +}% +% +% +\NewDocumentCommand{\examiner}{O{}mmO{}}{%% + \stepcounter{tc@examinercount}%% + \tccore@ProfFields{examiner\Alph{tc@examinercount}}{#1}{#2}{#3}{#4}%% +}% +\NewDocumentCommand{\examinerinfo}{mmmm}{%% + \tccore@ProfInfo{examiner\Alph{tc@examinercount}}{#1}{#2}{#3}{#4}%% +}% +% +\newcounter{tc@altexaminercount}[tc@studentcount]% +\NewDocumentCommand{\altexaminer}{O{}mmO{}}{%% + \stepcounter{tc@altexaminercount}%% + \tccore@ProfFields{altexaminer\Alph{tc@altexaminercount}}{#1}{#2}{#3}{#4}%% +}% +\NewDocumentCommand{\altexaminerinfo}{mmmm}{%% + \tccore@ProfInfo{altexaminer\Alph{tc@altexaminercount}}{#1}{#2}{#3}{#4}%% +}% +% +%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% assure that student/advisor/examiners... commands are defined with underlines (if not already defined)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@IDrule{30mm}% +\def\tc@emailrule{40mm}% +\def\tc@namerule{50mm}% +\def\tc@titlerule{40mm}% +\def\tc@phonerule{20mm}% +\def\tc@agreerule{25mm}% +\def\tc@daterule{15mm}% +%%% +%% +%%% +\NewDocumentCommand{\tccore@emptyfields}{}{% + + \@ifundefined{tc@studentA}{% + \student{\rule{\tc@namerule}{.1pt}}{}% + \studentinfo{\rule{\tc@IDrule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}% + }{}% + \@ifundefined{tc@studentA@advisor}{% + \advisor{\rule{\tc@namerule}{.1pt}}{}% + \advisorinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% +% + \@ifundefined{tc@studentA@examinerC}{% + \examiner{\rule{\tc@namerule}{.1pt}}{}% + \examinerinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + \@ifundefined{tc@studentA@examinerC}{% + \examiner{\rule{\tc@namerule}{.1pt}}{}% + \examinerinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + \@ifundefined{tc@studentA@examinerC}{% + \examiner{\rule{\tc@namerule}{.1pt}}{}% + \examinerinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + \@ifundefined{tc@studentA@altexaminerA}{% + \altexaminer{\rule{\tc@namerule}{.1pt}}{}% + \altexaminerinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + % + % add an \iftcif@forms !!! + % + \@ifundefined{tcdef@core@tccbrief}{% + \tccbrief{\tcdef@core@formsblanklines}% + }{}% + \@ifundefined{tcdef@core@tcccoadvisorbrief}{% + \tcccoadvisorbrief{\tcdef@core@formsblanklines}% + }{}% + \@ifundefined{tcdef@core@tccadvisorsreview}{% + \tccadvisorsreview{\tcdef@core@formsblanklines}% + }{}% +}% + +\NewDocumentCommand{\tccore@resetfields}{}{% + \setcounter{tc@studentcount}{0} + \csundef{tc@studentA} + \csundef{tc@studentA@advisor} + \csundef{tc@studentA@coadvisor} + \csundef{tc@studentA@examinerC} + \csundef{tc@studentA@altexaminerA} + \csundef{tcdef@core@tccbrief} + \csundef{tcdef@core@tcccoadvisorbrief} + \csundef{tcdef@core@tccadvisorsreview} +}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty new file mode 100644 index 00000000000..b0578df7926 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty @@ -0,0 +1,340 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-cover} +\def\tc@tmp@altpackname{ufrgsccacover} +\def\tc@tmp@packdesc{UFRGS/CCA cover commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\DeclareKeys[ufrgscca-cover]{ + report.usage = load, + report.if = tcif@report, + internship.usage = load, + internship.if = tcif@internship +} +\ProcessKeyOptions[ufrgscca-cover]\relax + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student commands% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\cmdfactory<cover>{course} +\cmdfactory<cover>{courseacronym}% +\cmdfactory<cover>{graduationtitle} +\cmdfactory<cover>{university,universityacronym,universitydivision} +\cmdfactory<cover>{divisiongradcouncil}% +\cmdfactory<cover>{department,classcode,classname,subject}% +\cmdfactory<cover>{secretaryacronym,secdivisionacronym}% +\cmdfactory<cover>{advisorname,coadvisorname} +\cmdfactory<cover>{examinername}% +\cmdfactory<cover>{reportspecificinfo,approvalspecificinfo}% +\cmdfactory<cover>{advisorwidth} +\cmdfactory<cover>{profname,coprofname}% +% +\advisorwidth{0.55\textwidth}% +% +\NewDocumentCommand{\class}{mm}{\classcode{#1}\classname{#2}}% +% + + +%%%%%%%%%%%%%%%%%%%%%%% +%%%% +%%% cover pages and related macros% +%%%% +%%%%%%%%%%%%%%%%%%%%%%% +\newlength{\tc@formwinvoffset}% +\setlength{\tc@formwinvoffset}{24mm}% +\NewDocumentCommand\tc@formtopbox{O{}+m+m}{%% + \begin{center}%% + \noindent%% + \parbox[t]{\textwidth}{%% + \centering%% + \vbox to \tc@formwinvoffset{%% + \tccover@covertopinfo%% + {\sc #2}% + }%% + }% + + {\bf #3}\@ifundefined{#1}{}{\footnote[1]{\csname #1\endcsname}}%% + \end{center}%% +}% + + +% +\NewDocumentCommand{\tccover@covertopinfo}{}{%% + \@ifundefined{tcdef@cover@university}{}{\MakeUppercase{\tcdef@cover@university}\\}% + \@ifundefined{tcdef@cover@universitydivision}{}{\MakeUppercase{\tcdef@cover@universitydivision}\\}% + \@ifundefined{tcdef@cover@course}{}{\MakeUppercase{\tcdef@cover@course}\\}% + \@ifundefined{tcdef@cover@department}{}{\MakeUppercase{\tcdef@cover@department}\\}%% + \@ifundefined{tcdef@cover@classname}{}{\MakeUppercase{\tcdef@cover@classcode\ --\ \tcdef@cover@classname}\\}% + \@ifundefined{tcdef@cover@subject}{}{\MakeUppercase{\tcdef@cover@subject}}% +}% + + +\NewDocumentCommand{\tccover@coveradvisorinfo}{}{%% + \@ifundefined{tc@studentA@advisor}{}{\vfill{\scshape\tcdef@cover@advisorname}:\\\null\hfill\tc@studentA@advisor}% + \@ifundefined{tc@studentA@coadvisor}{}{\\[6ex]{\scshape\tcdef@core@coadvisorname}:\\\null\hfill\tc@studentA@coadvisor}% +}% +% +\NewDocumentCommand{\tccover@reportadvisorinfo}{}{%% + \@ifundefined{tc@studentA@advisor}{}{\vfill{\scshape\iftcif@internship\tcdef@cover@advisorname\else\tcdef@cover@profname\fi}:\\\null\hfill\tc@studentA@advisor}% + \@ifundefined{tc@studentA@coadvisor}{}{\\[6ex]{\scshape\iftcif@internship\tcdef@core@coadvisorname\else\tcdef@cover@coprofname\fi}:\\\null\hfill\tc@studentA@coadvisor}% +}% +% + +%%%%%%%%%%%%%%%%%%% +\let\tc@org@maketitle\maketitle +\RenewDocumentCommand{\maketitle}{}{\coverpages}% + +\NewDocumentCommand{\coverpages}{}{%% + \thecoverpage%that´s the first page% + \iftcif@report + \else + \thetitlepage%that´s the second page (for tcc)% + \theapprovalpage%that´s the third page (for tcc)% + \fi +}% +% + +%%%%%%%%% +%%% +%% 1st cover page% +%%% +%%%%%%%%% +%% +\newlength{\tc@coverwinwidth}\setlength{\tc@coverwinwidth}{95mm}%% +\newlength{\tc@coverwinheight}\setlength{\tc@coverwinheight}{64mm}%% +\newlength{\tc@coverwinvoffset}\setlength{\tc@coverwinvoffset}{112mm}%% +\NewDocumentCommand{\location}{mm}{%% + \gdef\tc@city{#1}%% + \gdef\tc@state{#2}%% +}%% + + +\NewDocumentCommand{\thecoverpage}{}{%% + \begin{titlepage}% + \noindent\tc@covertopbox% + \vfill% + \iftcif@report{%% + \@ifundefined{tc@studentA@advisor}{}{%% + \hspace*{\fill}\parbox[b]{\tcdef@cover@advisorwidth}{\tccover@reportadvisorinfo}% + \vfill% + }%% + }%% + \else\fi + \centerline{\tc@city}% + \centerline{\tc@date}% + \end{titlepage}%% + \tc@pagebreak +}% +% +% +%%%%%%%%% +%%% +%% 2nd cover page (title page)% +%%% +%%%%%%%%% +\NewDocumentCommand{\thetitlepage}{}{%% + \begin{titlepage}% + \noindent\tc@covertopbox% + \vfill% + \@ifundefined{tcdef@cover@reportspecificinfo}{}{% + \hspace*{\fill}\makebox[.55\textwidth][l]{%% + \parbox[b]{8.5cm}{\tcdef@cover@reportspecificinfo}%% + }% + \vfill% + }% + \@ifundefined{tc@studentA@advisor}{}{% + \hspace*{\fill}\parbox[b]{\tcdef@cover@advisorwidth}{%% + \tccover@coveradvisorinfo% + }% + \vfill% + }% + \centerline{\tc@city}% + \centerline{\tc@date}% + \end{titlepage}% + \tc@pagebreak +}% +% +% +% +\NewDocumentCommand{\tccover@studentdesc}{m}{\@ifundefined{#1}{}{\MakeUppercase{\textbf{\csname #1\endcsname\ - \csname #1ID\endcsname}}\\}} +% + + +\NewDocumentCommand\tc@covertopbox{}{%% + \parbox[t]{\textwidth}{%% + \centering%% + \vbox to \tc@coverwinvoffset{%% + \tccover@covertopinfo\vfill\tc@winbox% + }% + }% +}% + + + \NewDocumentCommand\tc@winbox{}{%% + %\fbox{% + \parbox[b]{\tc@coverwinwidth}{%% + \centering\vbox to \tc@coverwinheight{%% + \vspace*{\fill}% + \iftcif@report% + \tccover@studentdesc{tc@studentA}% + \tccover@studentdesc{tc@studentB}% + \tccover@studentdesc{tc@studentC}% + \tccover@studentdesc{tc@studentD}%% + \else% + \tccover@studentdesc{tc@studentA}%% + \fi% + \vspace{\stretch{4}}% + {\large\MakeUppercase{\textbf{\@title}}\par}% + \vfill% + }%% + %}%% + }%% + }% + + + +% +%%%%%%%%% +%%% +%% 3rd cover page (approval page)% +%%% +%%%%%%%%% +\NewDocumentCommand{\theapprovalpage}{}{%% + \begin{center}% + \noindent\tc@covertopbox% + \vfill% + \@ifundefined{tcdef@cover@approvalspecificinfo}{}{% + \hspace*{\fill}\makebox[.55\textwidth][l]{%% + \parbox[b]{8.5cm}{\tcdef@cover@approvalspecificinfo}%% + }% + \vfill% + }% + \@ifundefined{tc@studentA@advisor}{}{% + \hspace*{\fill}\parbox[b]{.70\textwidth}{%% + \tccover@approvalpageadvisorinfo% + }% + \vfill% + }% + \@ifundefined{tc@studentA@examinerA}{}{% + \hspace*{\fill}\parbox[b]{1.0\textwidth}{\tcdef@cover@examinername:}% + \vfill% + \hspace*{\fill}\parbox[b]{.90\textwidth}{%% + \tccover@approvalpageexaminerinfo% + }% + \vfill% + }% + \@ifundefined{tcdef@core@coursecoord}{}{% + \hspace*{\fill}\parbox[b]{.70\textwidth}{%% + \tccover@approvalpagecoordinfo% + }% + \vfill% + }% + \vfill% + \hfill\tc@city, \tc@date + \end{center}% + \tc@pagebreak +}% +% +\NewDocumentCommand{\tccover@approvalpageadvisorinfo}{}{%% + \@ifundefined{tc@studentA@advisor}{}{%% + \vfill% + \tcdef@cover@advisorname: \hrulefill\\% + \tc@studentA@advisor, \tc@studentA@advisorinstitution\\% + \tc@studentA@advisortitleinfo % + }% +}% +\NewDocumentCommand{\tccover@@aprovalexaminerinfo}{m}{ + \@ifundefined{#1}{}{%% + \csname #1\endcsname, \csname #1institution\endcsname\\% + \csname #1titleinfo\endcsname\\% + }% +}% +\NewDocumentCommand{\tccover@approvalpageexaminerinfo}{}{%% + \vfill% + \tccover@@aprovalexaminerinfo{tc@studentA@examinerA}% + + \tccover@@aprovalexaminerinfo{tc@studentA@examinerB}% + + \tccover@@aprovalexaminerinfo{tc@studentA@examinerC}% + + \tccover@@aprovalexaminerinfo{tc@studentA@examinerD}% + + \tccover@@aprovalexaminerinfo{tc@studentA@examinerE}% +}% +% + + +\NewDocumentCommand{\tccover@approvalpagecoordinfo}{}{%% + \@ifundefined{tcdef@core@coursecoord}{}{%% + \vfill% + \hrulefill\\% + \tcdef@core@coursecoord\\% + \tcdef@core@coursecoordtitle\\% + \tcdef@cover@course% + }% +}% +% + + + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-graph.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-graph.sty new file mode 100644 index 00000000000..3de86ce4460 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-graph.sty @@ -0,0 +1,127 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-curr-graph} +\def\tc@tmp@altpackname{tccurrgraph} +\def\tc@tmp@packdesc{UFRGS/CCA graph curricula commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0alpha} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\RequirePackage{ufrgscca-curr} + + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentEnvironment{tikzGraphSem}{O{4.2:2.1}D<>{11.5:-18.5}}{% + \StrCut{#1}{:}{\gr@dX}{\gr@dY} + \StrCut{#2}{:}{\gr@xX}{\gr@yY} + \def\gr@Xa{0}\def\gr@Xb{\gr@xX*\gr@dX} + \def\gr@Ya{0}\def\gr@Yb{\gr@yY*\gr@dY} + \begin{tikzpicture}[% + disc/.style={% + ellipse split, double, draw, line width=2pt,% + every text node part/.style={font=\small\bfseries},% + every lower node part/.style={font=\large\bfseries,color=blue}},% + dep/.style={->,dotted,line width=3pt}]% + \begin{scope}\clip(\gr@Xa,\gr@Ya) -- (\gr@Xa,\gr@Yb) -- (\gr@Xb,\gr@Yb) -- (\gr@Xb,\gr@Ya);% + \filldraw[color=red](5.5*\gr@dX,-0.25*\gr@dY)node{\Huge\textbf{\GraphTitle}};% +}{% + \end{scope}% + \end{tikzpicture}% +} + +\NewDocumentCommand\GraphSem{O{ob}m}{% + \LstClass[\GraphClass]{#2}% + \draw (\csname gr@etidx:\csname gr@et:\gr@sem.idx\endcsname.pos\endcsname*\gr@dX-0.5*\gr@dX,-\gr@dY) node[disc](Et. #2){Etapa #2 \nodepart{lower} \arabic{gr@cred#1},#1};% +} + +\NewDocumentCommand\GraphClass{m}{% + \edef\gr@topic{\csname gr@class:#1.topic\endcsname}% + \edef\gr@color{\csname gr@topic:\gr@topic.color\endcsname}% + \draw[\gr@color] (\csname gr@etidx:\csname gr@et:\gr@sem.idx\endcsname.pos\endcsname*\gr@dX-0.5*\gr@dX,\csname gr@class:#1.pos\endcsname*\gr@dY-1.25*\gr@dY) node[disc](#1){#1 \nodepart{lower} \csname gr@class:#1.cred\endcsname,\csname gr@class:#1.typ\endcsname};% + \LstDep[\GraphDep]{#1}% +} + +\NewDocumentCommand\GraphDep{m}{% + \edef\gr@topic{\csname gr@class:\gr@disc.dep\gr@depSeq:#1.topic\endcsname}% + \xdef\gr@DepColor{\csname gr@topic:\gr@topic.color\endcsname}% + %\xdef\gr@DepColor{\csname gr@class:\gr@disc.dep\gr@depSeq:#1.topic\endcsname}% + \def\gr@angOUT{\gr@ANG} \def\gr@angIN{180-\gr@ANG}% + \xdef\gr@deppos{\csname gr@class:\gr@disc.dep\gr@depSeq:#1.pos\endcsname}% + \def\gr@depcut{\StrCut{\gr@deppos}{:}{\gr@angOUT}{\gr@ANG}}% + \gr@case@angle{\gr@deppos}% + \path[dep,\gr@DepColor] (#1)edge[out=\gr@angOUT,in=\gr@angIN] (\gr@disc);% +} + +\def\gr@Z{0} \def\gr@A{30} \def\gr@B{60} \def\gr@C{80} + +\mkswitch[\gr@depcut]\gr@case@angle +\addcase\gr@case@angle{}{\def\gr@ANG{0}} +\addcase\gr@case@angle{A}{\def\gr@ANG{\gr@A}} +\addcase\gr@case@angle{B}{\def\gr@ANG{\gr@B}} +\addcase\gr@case@angle{C}{\def\gr@ANG{\gr@C}} +\addcase\gr@case@angle{-A}{\def\gr@ANG{-\gr@A}} +\addcase\gr@case@angle{-B}{\def\gr@ANG{-\gr@B}} +\addcase\gr@case@angle{-C}{\def\gr@ANG{-\gr@C}} + + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-tab.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-tab.sty new file mode 100644 index 00000000000..1852c7c14f3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-tab.sty @@ -0,0 +1,166 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-curr-tab} +\def\tc@tmp@altpackname{ufrgsccacurrtab} +\def\tc@tmp@packdesc{UFRGS/CCA curricula tabular commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0alpha} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\RequirePackage{longtable} +\RequirePackage{ufrgscca-curr} + +\NewDocumentCommand\TabClass{m}{% + & #1 & \csname gr@class:#1.cred\endcsname & \csname gr@class:#1.typ\endcsname & \multicolumn{2}{J{11cm}}{\csname gr@class:#1.nam\endcsname}\\*% + \edef\gr@disc{#1}% + \ifcsdef{gr@class:#1.depA}{% + & & & & % + & \def\gr@tab{\ }% + \LstDep[\TabDepX]<A>{#1}\\*% + }{}% + \ifcsdef{gr@class:#1.depB}{% + & & & & OU\\*% + & & & & % + & \def\gr@tab{\ }% + \LstDep[\TabDepX]<B>{#1}\\*% + }{}% + \ifcsdef{gr@class:#1.depC}{% + & & & & OU\\*% + & & & & % + & \def\gr@tab{\ }% + \LstDep[\TabDepX]<C>{#1}\\*% + }{}% + \ifshowind{\ifcsundef{gr@class:#1.remark}% + {}{& & & & \multicolumn{2}{l}{{\larger[2]{\color{red} \csname gr@class:#1.remark\endcsname}}}\\*}}{}% +\xdef\gr@topic{\csname gr@class:#1.topic\endcsname}% +& & & & \multicolumn{2}{J{11cm}}{{\sc\color{\csname gr@topic:\gr@topic.color\endcsname} \csname gr@topic:\gr@topic.txt\endcsname}}\\* +& & & & \multicolumn{2}{l}{{\smaller{\sc Súmula: }}}\\*% +& & & & & {{\smaller\csname gr@class:#1.desc\endcsname}}\\ % +\ifcsundef{gr@class:#1.bibA}{}{& & & & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Básica Essencial: }}}\\* & & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibA\endcsname}\\*}% +\ifcsundef{gr@class:#1.bibB}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibB\endcsname}\\}% +\ifcsundef{gr@class:#1.bibC}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibC\endcsname}\\}% +\ifcsundef{gr@class:#1.bibD}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibD\endcsname}\\}% +\ifcsundef{gr@class:#1.bibE}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibE\endcsname}\\}% +\ifcsundef{gr@class:#1.bibF}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibF\endcsname}\\}% +\ifcsundef{gr@class:#1.bibG}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibG\endcsname}\\}% +\ifcsundef{gr@class:#1.bibH}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibH\endcsname}\\}% +\ifcsundef{gr@class:#1.bibI}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibI\endcsname}\\}% +\ifcsundef{gr@class:#1.bibJ}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibJ\endcsname}\\}% +\ifcsundef{gr@class:#1.basicA}{}{& & & & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Básica: }}}\\* & & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicA\endcsname}\\*}% +\ifcsundef{gr@class:#1.basicB}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicB\endcsname}\\}% +\ifcsundef{gr@class:#1.basicC}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicC\endcsname}\\}% +\ifcsundef{gr@class:#1.basicD}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicD\endcsname}\\}% +\ifcsundef{gr@class:#1.basicE}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicE\endcsname}\\}% +\ifcsundef{gr@class:#1.basicF}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicF\endcsname}\\}% +\ifcsundef{gr@class:#1.basicG}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicG\endcsname}\\}% +\ifcsundef{gr@class:#1.basicH}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicH\endcsname}\\}% +\ifcsundef{gr@class:#1.basicI}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicI\endcsname}\\}% +\ifcsundef{gr@class:#1.basicJ}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicJ\endcsname}\\}% +\ifcsundef{gr@class:#1.compA}{}{& & & & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Complementar: }}}\\* & & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compA\endcsname}\\*}% +\ifcsundef{gr@class:#1.compB}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compB\endcsname}\\}% +\ifcsundef{gr@class:#1.compC}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compC\endcsname}\\}% +\ifcsundef{gr@class:#1.compD}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compD\endcsname}\\}% +\ifcsundef{gr@class:#1.compE}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compE\endcsname}\\}% +\ifcsundef{gr@class:#1.compF}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compF\endcsname}\\}% +\ifcsundef{gr@class:#1.compG}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compG\endcsname}\\}% +\ifcsundef{gr@class:#1.compH}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compH\endcsname}\\}% +\ifcsundef{gr@class:#1.compI}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compI\endcsname}\\}% +\ifcsundef{gr@class:#1.compJ}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compJ\endcsname}\\}% + \\[-1.5ex]% +} + + +%%%gr@class:\gr@disc.bib\Alph{gr@class:\gr@disc.bibcnt} + +\NewDocumentCommand\TabDepX{m}{% + { + \ifshowind{\ifcsundef{gr@class:#1.remark}{}{\color{red}\bfseries}}{} + \gr@tab\ #1 (\csname gr@class:#1.et\endcsname) % + } + \def\gr@tab{E}% +} + +\NewDocumentCommand\TabDep{m}{% + & & & & #1 (\csname gr@class:#1.et\endcsname)\\[-1pt]% +} + +\NewDocumentCommand\TabEtp{D<>{ob}O{\notoc\section}m}{% + #2{Etapa #3}% + \begin{longtable}{l@{\,}l@{\ }c@{\ }c@{\ }J{5mm}@{}J{10.7cm}}% + \LstClass[\TabClass]{#3}% +% & \textbf{Total} & \textbf{\arabic{gr@cred#1}} & \textbf{#1}\\% + \end{longtable}% +} + +\NewDocumentCommand\@TabTopic{m}{% + #1 & \csname gr@class:#1.cred\endcsname & \csname gr@class:#1.typ\endcsname & \csname gr@class:#1.nam\endcsname & (\csname gr@class:#1.et\endcsname)\\% +} + +\NewDocumentCommand\TabTopic{O{ob}m}{% + +\noindent\csname gr@topic:#2.txt\endcsname +\@ifundefined{gr@topic:#2}{\\\textbf{--No Classes Associated--}}{ + \begin{longtable}{l@{\,}l@{\ }c@{\ }J{11.2cm}@{\,}l}\smaller% + \LstTopic[\@TabTopic]{#2}% + \end{longtable}% + } +} + + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty new file mode 100644 index 00000000000..4b365ce28ba --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty @@ -0,0 +1,181 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-curr} +\def\tc@tmp@altpackname{ufrgsccacurr} +\def\tc@tmp@packdesc{UFRGS/CCA curricula commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0beta} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\newcounter{gr@credob} +\newcounter{gr@credel} +\newcounter{gr@credalt} +\NewDocumentCommand{\gr@setcred}{}{\setcounter{gr@credob}{0}\setcounter{gr@credel}{0}\setcounter{gr@credalt}{0}} +\NewDocumentCommand{\gr@addclasscred}{m}{\addtocounter{gr@cred\csname gr@class:#1.typ\endcsname}{\csname gr@class:#1.cred\endcsname}} + +\let\@ex\expandafter + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\topicdef{O{black}mm}{ + \expandafter\gdef\csname gr@topic:#2.txt\endcsname{#3}% + \expandafter\gdef\csname gr@topic:#2.color\endcsname{#1}% +} + +\NewDocumentCommand\defaulttopic{m}{\xdef\gr@defaulttopic{#1}} + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\semdef{O{#3}D<>{#3}m}{% + \expandafter\gdef\csname gr@et:#3.idx\endcsname{x#3}% + \expandafter\gdef\csname gr@etidx:x#3.cod\endcsname{#2}% + \expandafter\gdef\csname gr@etidx:x#3.nam\endcsname{#3}% + \expandafter\gdef\csname gr@etidx:x#3.pos\endcsname{#1}% + \gdef\gr@sem{#3}% + \gdef\gr@semcod{#2}% +} +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\classdef{O{\gr@defaulttopic}D<>{}mmmmm}{% + \@ifundefined{gr@topic:#1.txt}% + {\expandafter\gdef\csname gr@class:#3.topic\endcsname{\gr@defaulttopic}}% + {\expandafter\gdef\csname gr@class:#3.topic\endcsname{#1}}% + \expandafter\gdef\csname gr@class:#3.pos\endcsname{#2}% + \expandafter\gdef\csname gr@class:#3.cred\endcsname{#4}% + \expandafter\gdef\csname gr@class:#3.typ\endcsname{#5}% + \expandafter\gdef\csname gr@class:#3.nam\endcsname{#6}% + \expandafter\gdef\csname gr@class:#3.desc\endcsname{#7}% + \expandafter\xdef\csname gr@class:#3.et\endcsname{\gr@semcod}% + \gdef\gr@disc{#3} + \newcounter{gr@class:#3.bibcnt} + \newcounter{gr@class:#3.basiccnt} + \newcounter{gr@class:#3.compcnt} + \newcounter{gr@class:#3.dep} + \stepcounter{gr@class:#3.dep} + \ifcsundef{gr@et:\gr@sem}{\csgdef{gr@et:\gr@sem}{#3}}{\csgappto{gr@et:\gr@sem}{,#3}} + \ifcsundef{gr@topic:#1}{\csgdef{gr@topic:#1}{#3}}{\csgappto{gr@topic:#1}{,#3}} +} +\NewDocumentCommand{\setclass}{m}{\ifcsundef{gr@class:#1.et}{{\color{red} #1 undef\\}}{\gdef\gr@disc{#1}}} + +\NewDocumentCommand{\classremark}{m}{% + \expandafter\gdef\csname gr@class:\gr@disc.remark\endcsname{#1}% +} + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\depdef{O{\csname gr@class:\gr@disc.topic\endcsname}D<>{}m}{% + \ifcsundef{gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}}{\csgdef{gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}}{#3}}{\csgappto{gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}}{,#3}} + \expandafter\gdef\csname gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}:#3.topic\endcsname{#1}% + \expandafter\gdef\csname gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}:#3.pos\endcsname{#2}% +} + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\bibdef{O{bib}m}{% + \stepcounter{gr@class:\gr@disc.#1cnt}% + \expandafter\gdef\csname gr@class:\gr@disc.#1\Alph{gr@class:\gr@disc.#1cnt}\endcsname{#2}% +} + + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + + +\NewDocumentCommand\altdef{}{% + \stepcounter{gr@class:\gr@disc.dep}% +} + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\goo{m}{} +\NewDocumentCommand\gooble{m}{} + +\NewDocumentCommand\LstDep{O{\goo}D<>{A}m}{% + \xdef\gr@disc{#3}% + \xdef\gr@depSeq{#2}% + \ifcsdef{gr@class:#3.dep#2}{\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr@class:#3.dep#2\endcsname}}{} +} + +\NewDocumentCommand\LstClass{O{\gooble}m}{% +\xdef\gr@sem{#2}% +\gr@setcred% +\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex\gr@addclasscred\@ex\@ex\@ex{\csname gr@et:#2\endcsname}% +\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr@et:#2\endcsname}% +} + +\NewDocumentCommand\LstTopic{O{\goo}m}{% +\xdef\gr@topic{#2}% +\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr@topic:#2\endcsname}% +} + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-base.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-base.def new file mode 100644 index 00000000000..3b9cbc0ce7c --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-base.def @@ -0,0 +1,97 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-en-base} +\def\tc@tmp@altpackname{ufrgsccaenbase} +\def\tc@tmp@packdesc{UFRGS/CCA English base defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + +%%%%% +%% +%% those are loaded, on the fly, when selecting, or switching, to english (\@namedef{captionsenglish} vis-à-viz \begin{otherlanguage}{}) +%% +%%%%% + +% \def\bibname{References}% deprecated by biber +% \def\refname{\bibname} + \def\abstractname{Abstract}% + \def\englishabstractname{Abstract}% + \def\contentsname{Contents}% + \def\listfigurename{List of Figures}% + \def\listtablename{List of Tables}% + \def\figurename{Figure}% + \def\tablename{Table}% + \def\byname{by}% + \def\keywordsname{Keywords}% + + \def\listabbrvname{List of Abbreviations}% + \def\listsymbolname{List of Symbols}% + + \def\listingname{Listing} + \def\listlistingname{List of Listings} + + \def\defappendixname{Appendix}% + \def\defappendixpagename{Appendices}% + \def\defannexname{Annex}% + \def\defannexpagename{Annexe}% + \def\sourcename{Source:} + \def\notename{Note}%% + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-coord.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-coord.def new file mode 100644 index 00000000000..3143da0b317 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-coord.def @@ -0,0 +1,129 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-en-coord} +\def\tc@tmp@altpackname{ufrgsccaencoord} +\def\tc@tmp@packdesc{UFRGS/CCA English coord defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +\calendartitle{Calendário – \tcdef@coord@TCCperiod} + +\tcccalendarhead{Data/Período}{Semana Letiva}{Evento} +\tcccalendarevent{01}{Apresentação da disciplina. Informações gerais. Reunião presencial com início às 18:30h, no Salão de Eventos do DELET.\newline {\bf Presença obrigatória.}} +\tcccalendarevent{02}{Requerimento de matrícula. O(A) aluno(a) deve preencher o \emph{Formulário de Requerimento de Matrícula}, já com o resumo do trabalho, e encaminhá-lo ao setor de protocolos da UFRGS para abertura de processo. Posteriormente, o número do processo deve ser encaminhado por e-mail para \tccore@@ref{TCCcoord}{article} coordenador\tccore@@ref{TCCcoord}{narticle} da atividade. \newline{\bf Obs.~1}} +%\tcccalendarevent{03}{Entrega do \emph{Formulário de Inscrição}, juntamente com o resumo do trabalho, no \tcdef@cover@secdivisionacronym .} +\tcccalendarevent{09}{Encontro presencial: Como redigir um TCC, melhores práticas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}} +\tcccalendarevent{09}{Entrega VIA MOODLE do \emph{Relatório Parcial}, juntamente com o \emph{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} assinado pelo orientador. \newline{\bf Obs.~2}} +\tcccalendarevent{15}{Entrega de uma cópia impressa (ou eletrônica) do Trabalho de Conclusão a cada membro da banca, juntamente com os \emph{Formulários de Avaliação} e \emph{Formulários de correções} do trabalho. Entrega VIA MOODLE de uma cópia eletrônica do trabalho juntamente com o \emph{Formulário de Aprovação para Apresentação} e os recibos de recebimento assinados e datados pelos membros das bancas.} +\tcccalendarevent{16}{Encontro presencial: Como apresentar um TCC, melhores técnicas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}} +\tcccalendarevent{17}{Apresentações dos Trabalhos de Conclusão de Curso. \newline{\bf Obs.~3}} +\tcccalendarevent{17}{Entrega VIA MOODLE dos \emph{Formulários de correções} dos membros da banca.} +\tcccalendarevent{18}{Entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~4}} +\tcccalendarevent{19}{Para os TCCs em RECUPERAÇÃO, entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~5}} + + +\tcccalendardesc{\begin{description} +\item[Obs. 1]: Caso o aluno(a) já tenha um processo aberto de TCC, reusar o mesmo apenas anexando o novo requerimento de matrícula, caso necessário. +\item[Obs. 2]: O relatório deve conter as declarações de concordância em participar da banca da parte dos professores convidados. +\item[Obs. 3]: As bancas serão marcadas após a entrega do relatório parcial, de acordo com a disponibilidade dos professores convidados. +\item[Obs. 4]: O \emph{Formulário de Aprovação das Correções} deve estar assinado pelo(a) orientador(a). Para relatórios em que o campo “Revisarei o trabalho depois de corrigido” tiver sido assinalado por algum membro da banca, a assinatura do(a) mesmo(a) também deverá constar no \emph{Formulário de Aprovação das Correções}. +\item[Obs. 5]: Trabalho em RECUPERAÇÃO é aquele cuja nota final quando da defesa é insuficiente para aprovação OU aquele em que o campo “Reescrever tudo” do formulário de correções foi marcado por algum membro da banca. Neste caso, o \emph{Formulário de Aprovação das Correções} deve estar assinado tanto pelo(a) orientador(a) como pelo(s) membro(s) da banca designado(s) para reavaliar o trabalho, incluindo obrigatoriamente aqueles que tiverem marcado o campo “Revisarei o trabalho depois de corrigido”.\\\hrule +\item[IMPORTANTE]: O(A) aluno(a) estará {\bf REPROVADO(A)} \emph{se falhar na entrega de qualquer um dos documentos aqui citados dentro dos prazos estipulados}. +\end{description}} + + +\studentlistformtitle{Lista de presença, \tcdef@coord@studentlistactivity, dia \tcdef@coord@studentlistdate} +\studentlistactivity{apresentação da atividade de TCC} +\studentlistdate{\number\day/\number\month} + +\tccreporttitle{Relatório parcial/final} +\tccreportopening{Para registro} +\tccreportdesc{Relatório parcial/final referente aos alunos matriculados na atividade de ensino de \tcdef@forms@formstitle\ semestre \tcdef@coord@TCCperiod .} + +\tccreportabsents{Desistentes com conceito (segundo semestre)} +\tccreportdismiss{Desistentes sem conceito (primeiro semestre)} +\tccreferralopening{Ao\\ \tcdef@cover@secretaryacronym\ da \tcdef@cover@universitydivision} + +\referralfailed{{REPROVAD\tccore@@ref{student}{Article}}} +\referralapproved{{APROVAD\tccore@@ref{student}{Article}}} + +\referralexamapprovedtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef@coord@referralapproved\ com conceito final \tc@TCCgradeC .} + +\referralexamfailtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef@coord@referralfailed\ com conceito final \tc@TCCgradeD .} + +\referralfatetext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, tendo sido \tccoord@referralfate{\tccore@@ref{student}{Temp}} com conceito final \textbf{\tccoord@@fate{\Alph{tc@studentcount}}}, conforme quadro de notas abaixo. } + +\referralfailFF{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ n\~{a}o concluiu o trabalho de conclus\~{a}o de Curso tendo sido \tcdef@coord@referralfailed\ com conceito final \textbf{FF}.} + +\boardlabel{Banca Examinadora} +\boardstitle{Apresentações TCC em \tcdef@cover@course\ \tcdef@coord@TCCperiod\ \tcdef@coord@boardstitleB\ } +\boardsworklabel{Título} +\TCCgradesNlabel{Nota} +\TCCgradesClabel{Conceito} +\TCCgrades{A}{B}{C}{D}{FF} +\TCCgradesN{9}{7.5}{6} + +\cocertificatetitle{CERTIFICADO} +\cocertificateopenning{\`{A} quem interessar possa,\\ certificamos que} +\cocertificatetext{atuou como co-orientador\tccore@@ref{coadvisor}{narticle} d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article}\ \emph{\tccore@@ref{student}{}}\ no trabalho de conclus\~{a}o de curso intitulado \emph{\tccore@@ref{student}{title}}\ no semestre \tcdef@coord@TCCperiod.} + +\TCCcoordtitle{Coordenador\tccore@@ref{TCCcoord}{narticle} da atividade de ensino de\\ \tcdef@forms@formstitle\ } diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-core.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-core.def new file mode 100644 index 00000000000..f96e2529d49 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-core.def @@ -0,0 +1,101 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-en-core} +\def\tc@tmp@altpackname{ufrgsccaencore} +\def\tc@tmp@packdesc{UFRGS/CCA English core defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +\location{Porto~Alegre}{RS} + +\university{Federal University of Rio Grande do Sul} +\universityacronym{UFRGS} +\universitydivision{Engineering School} +\divisiongradcouncil{\tcdef@cover@universitydivision Undergraduate Council} + +\secretaryacronym{SACAD} +\secdivisionacronym{\tcdef@cover@secretaryacronym/EE} +\graduationtitle{Control and Automation Engineering} +\course{Control and Automation Engineering} +\courseacronym{CCA} +\coursecoord{current course coordinator} +\coursecoordtitle{Course Coordinator} +\advisorname{Advisor}% +\coadvisorname{Coadvisor}% +\examinername{Exam Committee}% + +\reportspecificinfo{% + Graduation Project presented to COMGRAD-\tcdef@cover@courseacronym\ of \tcdef@cover@university\ + in partial fulfillment of the requirements for the + degree of \emph{\tcdef@cover@graduationtitle }. +}% + +\approvalspecificinfo{% + This Project was considered adequate for obtaining the + credits of the course TCC (Diplom Project) of \emph{\tcdef@cover@course } + and approved in its final form by the Advisor and the Examination Committee. +}% + +\profname{Professor} +\coprofname{Professor} + + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-forms.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-forms.def new file mode 100644 index 00000000000..7ffeefb01be --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-forms.def @@ -0,0 +1,215 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-en-forms} +\def\tc@tmp@altpackname{ufrgsccaenforms} +\def\tc@tmp@packdesc{UFRGS/CCA English forms defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +%%%%%% +%%%%%% +%%%%%% forms +%%%%%% +%%%%%% +%%%%%% + +\formlocal{\tc@city,\hspace{4mm} de \hspace{1.2cm} de 20\hspace{4mm}.} + +\formssignaturelabel{Assinatura} +\examinersignature{Assinatura\ \ d\tccore@@ref{examiner}{article}\ \ Avaliador\tccore@@ref{examiner}{narticle}} +\boardsignature{Assinatura\ \ do\ \ Membro\ \ da\ \ Banca} +\advisorsignature{Assinatura\ \ d\tccore@@ref{advisor}{article}\ \ Orientador\tccore@@ref{advisor}{narticle}} +\coadvisorsignature{Assinatura\ \ d\tccore@@ref{coadvisor}{article}\ \ Co-orientador\tccore@@ref{coadvisor}{narticle}} +\studentsignature{Assinatura\ \ d\tccore@@ref{student}{article}\ \ Alun\tccore@@ref{student}{article}} +\studentsignaturegen{Assinatura\ \ do(a)\ \ Aluno(a)} +\formsstudentlabel{Alun\tccore@@ref{student}{article}} +\formsstudentlabelgen{Aluno(a)} +\formproflabel{Professor(a)} +\profname{Professor\tccore@@ref{advisor}{narticle}} +\coprofname{Professor\tccore@@ref{coadvisor}{narticle}} +\formsboardlabel{Membro da Banca} +\formsadvisorlabel{Orientador\tccore@@ref{advisor}{narticle}} +\formsadvisorlabelgen{Orientador(a)} +\formscoadvisorlabel{Co-orientador\tccore@@ref{advisor}{narticle}} +\formsexaminerlabel{Avaliador\tccore@@ref{examiner}{narticle}} +\formsaltexaminerlabel{Suplente} +\formstimelabel{Horário} + + +%\formstopicAlabel{Conteúdo} +%\formstopicBlabel{Trabalho Escrito} +%\formstopicClabel{Apresentação} +\formsworktitlelabel{Título do Trabalho} +\formstemptitlelabel{Título Provisório} +\formsstudentIDlabel{Cartão} +\formsemaillabel{e-mail} +\formsphonelabel{ramal} +\agreelabel{De Acordo} + +\continuelabel{Continua...} + +\formsdatelabel{Data} +\formstitle{Trabalho de Conclusão de Curso em \tcdef@cover@course} +\formsfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho.} + + +\renewreqformtitle{Formulário de Renovação da Inscrição na Atividade de Ensino Trabalho de Conclusão em \tcdef@cover@course} + +\renewreqformnotes{O resumo deve ser curto, i.e., não deve exceder este espaço. O texto deve ser escrito em parágrafo único, e por se tratar de proposta, poderá utilizar tempo futuro e não necessita ter motivação ou justificativa.\\ +Deve conter: +\begin{enumerate*}[alpha)] +\item O QUE será feito - descrição e objetivos. +\item COMO será feito - metodologia. +\item Resultados esperados. +\end{enumerate*} +} + +\reqformtitle{Formul\'{a}rio de Requerimento de Matr\'{i}cula} +\reqformopening{Ilm\tccore@@ref{coursecoord}{article}. Sr\tccore@@ref{coursecoord}{narticle}.\par +Coordenador\tccore@@ref{coursecoord}{narticle} da Comissão de Graduação do Curso em \tcdef@cover@course {da \tcdef@cover@universityacronym\ }} +%\reqformopening{algo} + +\reqformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc@studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} neste período letivo no curso \emph{\tcdef@cover@course\ }, desta universidade, portador\tccore@@ref{student}{narticle} do cartão de identificação n$^o$ \tc@studentAID\ vem por meio desta solicitar matrícula na atividade de ensino de \tcdef@forms@formstitle} + +\coadvisorformtitle{Requerimento de Autorização de Co-Orientação} +\coadvisorformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc@studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} na atividade de TCC neste período letivo, vem por meio desta solicitar autorização para registro de co-orientador de TCC, conforme justificativa abaixo.} + +\formsbrieflabel{Resumo} + +\formsstudentemaillabel{Email d\tccore@@ref{student}{article} Alun\tccore@@ref{student}{article}} + +\formsadvisoremaillabel{Email d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}} + +\formsreasonlabel{Justificativa} + + +\examformtitle{Formul\'{a}rio de Avalia\c{c}\~{a}o} + +\examformdesc{A nota (variando de zero a dez) atribuída por cada membro da banca examinadora será dada considerando o desempenho d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} nos 3 pontos apresentados na tabela abaixo.} + +\examformnoteslabel{Observações} + +\examformnotes{\ \\Posteriormente, \tccore@@ref{TCCcoord}{article} professor\tccore@@ref{TCCcoord}{narticle} coordenador\tccore@@ref{TCCcoord}{narticle} calculará a nota final atribuída por cada membro da banca examinadora, de acordo com a seguinte ponderação:\\[2mm] {\bf Nota Final Banca = \tc@TCCpointAweight\ x \tc@TCCpointAlabel\ + \tc@TCCpointBweight\ x \tc@TCCpointBlabel\ + \tc@TCCpointCweight\ x \tc@TCCpointClabel\ } \\[2mm] A média final da atividade será dada pela média das notas finais (calculadas com a expressão acima) atribuidas por cada um dos membros da banca examinadora.} + +\examboardformtitle{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} + +\examboardformdesc{Aprovo o Relatório Parcial e nominata da Banca Examinadora acima relacionada.} + +\formsboardtitle{Banca Examinadora} + +\advisorapprovalformtitle{Formulário de Aprovação para Apresentação} + +\advisorapprovalformdesc{{\bf Parecer d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}}\footnote{Preenchimento Obrigatório}} + +\advisorapprovalformdescB{Aprovo a versão final do trabalho submetido pel\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} e considero \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} para apresentação.} + +\rectifyapprovalformtitle{Formulário de Aprovação das Correções} + +\rectifyapprovalformdesc{\begin{description} +\item[Observação 1:] A nota final será a já atribuída pela Banca Examinadora no momento da Defesa. Caso a versão final corrigida do trabalho mais este formulário não sejam entregues até a data estipulada, o conceito do aluno passará a ser {\bf D}. +\item[Observação 2:] A assinatura d\tccore@@ref{advisor}{article} orientador\tccore@@ref{advisor}{narticle} é obrigatória, entretanto a assinatura dos membros da banca só é necessária caso o(a) mesmo(a) tenha marcado a opção "$\Box$ Revisarei o trabalho depois de corrigido" no \emph{Formulário de Correções}. +\end{description}} + +\receiptformtitle{Recibo de entrega de cópia da versão final do Trabalho de Conclusão} + +\receiptformfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho final e após encaminhar ao \tcdef@cover@secretaryacronym .} + +\receiptformdesc{Declaro que encontra-se em minha posse cópia da versão final do Trabalho de Conclusão de Curso em \tcdef@cover@course\ d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} } + + +\reviewformtitle{Formulário de Correções} +\reviewformdesc{Correções: \parbox[t]{.8\textwidth}{ +\begin{description}[tcc,noitemsep] +\item[$\Box$] Nenhuma +\item[$\Box$] Ortográfica +\item[$\Box$] Regras de Escrita +\item[$\Box$] Equações +\item[$\Box$] Resumo +\item[$\Box$] Abstract +\item[$\Box$] Índice +\item[$\Box$] Introdução +\item[$\Box$] Conclusões +\item[$\Box$] Corpo do Trabalho +\item[$\Box$] Resultados +\item[$\Box$] Adicionar mais exemplos +\item[$\Box$] Figuras +\item[$\Box$] Tabelas +\item[$\Box$] {\bf Reescrever tudo}\footnotemark[2] +\item[$\Box$] Outras: \\ +\begin{tabular}{p{0.7\textwidth}} +~\\\hline +~\\\hline +~\\\hline +~\\\hline +\end{tabular}\\[-1mm] +\item[$\Box$] {\bf Revisarei o trabalho depois de corrigido}%\footnotemark[2] +\end{description}} +} + +\reviewformfootnoteB{Neste caso \tccore@@ref{student}{article} alun\tccore@@ref{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.} + +\reviewformfootnote{\tcdef@forms@formsfootnote\ Após a apresentação, retornar este à coordenação do TCC.} + +\formsrectifyOKdesc{Correções satisfatórias: \hspace*{1cm}$\Box$\ sim\hspace*{2cm}$\Box$\ não} + +\TCCpointsweight{0.35}{0.35}{0.3} +\TCCpointslabel{Conteúdo}{Trab. Escrito}{Apresentação} diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty new file mode 100644 index 00000000000..d2f7b26adf6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty @@ -0,0 +1,561 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-forms} +\def\tc@tmp@altpackname{ufrgsccaforms} +\def\tc@tmp@packdesc{UFRGS/CCA forms commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\RequirePackage{amsfonts} + + +%% local for tc@formsigdate {ufrgscca-forms} + +\cmdfactory<forms>{formssignaturelabel,examinersignature,boardsignature,advisorsignature,coadvisorsignature} +\cmdfactory<forms>{studentsignature,studentsignaturegen}% +\cmdfactory<forms>{formsstudentlabel,formsstudentlabelgen,formproflabel}% +\cmdfactory<forms>{formsboardlabel,formsadvisorlabel,formsadvisorlabelgen}% +\cmdfactory<forms>{formscoadvisorlabel,formsexaminerlabel,formsaltexaminerlabel} +\cmdfactory<forms>{formstimelabel,formsworktitlelabel,formstemptitlelabel} +\cmdfactory<forms>{formsstudentIDlabel,formsemaillabel,formsphonelabel} +\cmdfactory<forms>{agreelabel,continuelabel} +\cmdfactory<forms>{formsdatelabel,formstitle,formsfootnote} +\cmdfactory<forms>{renewreqformtitle,renewreqformnotes,reqformtitle,reqformopening,reqformdesc}% +\cmdfactory<forms>{coadvisorformtitle,coadvisorformdesc} +\cmdfactory<forms>{formsbrieflabel,formsstudentemaillabel,formsadvisoremaillabel} +\cmdfactory<forms>{formsreasonlabel} +\cmdfactory<forms>{examformtitle,examformdesc,examformnoteslabel} +\cmdfactory<forms>{examformnotes,examboardformtitle,examboardformdesc}% +\cmdfactory<forms>{formsboardtitle,advisorapprovalformtitle,advisorapprovalformdesc,advisorapprovalformdescB} +\cmdfactory<forms>{rectifyapprovalformtitle,rectifyapprovalformdesc}% +\cmdfactory<forms>{receiptformtitle,receiptformfootnote,receiptformdesc}% +\cmdfactory<forms>{reviewformtitle,reviewformdesc,reviewformfootnoteB,reviewformfootnote} +\cmdfactory<forms>{formsrectifyOKdesc} + +\NewDocumentCommand{\TCCpointsweight}{mmm}{% + \gdef\tc@TCCpointAweight{#1}% + \gdef\tc@TCCpointBweight{#2}% + \gdef\tc@TCCpointCweight{#3}% +}% + +\NewDocumentCommand{\TCCpointslabel}{mmm}{% + \gdef\tc@TCCpointAlabel{#1}% + \gdef\tc@TCCpointBlabel{#2}% + \gdef\tc@TCCpointClabel{#3}% +}% +% + + +\iftcif@english% +\input{ufrgscca-en-forms.def}% +\else% +\input{ufrgscca-ptBR-forms.def}% +\fi% + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Examiners forms% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@examinersForms}{}{% + \tccore@examiners{examinerA}% + \tcforms@examinersform{examinerA}% + \tcforms@reviewform{examinerA}% + \tccore@examiners{examinerB}% + \tcforms@examinersform{examinerB}% + \tcforms@reviewform{examinerB}% + \tccore@examiners{examinerC}% + \tcforms@examinersform{examinerC}% + \tcforms@reviewform{examinerC}% + \tccore@examiners{altexaminerA}% + \tcforms@examinersform{altexaminerA}% + \tcforms@reviewform{altexaminerA}% +}% +% +\NewDocumentCommand{\tcforms@examinerforms}{m}{% + \tcforms@examinersform{#1}% + \tcforms@reviewform{#1}% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% Board receipt forms% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@receiptforms}{}{% + \tcforms@receiptform{examinerA}% + \tcforms@receiptform{examinerB}% + \tcforms@receiptform{examinerC}% + \tcforms@receiptform{altexaminerA}% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% Aux commands% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@formsigdate}{m}{%% + \begin{flushright} \tcdef@core@formlocal % + ~\vspace*{6mm}\\% +% + $\overline{#1}$%% + \end{flushright}% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% examiners description (for Board approval forms)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@examinerdesc}{O{\tcdef@forms@formsexaminerlabel}mm}{%% + \tccore@examiners{#3}% + \@ifundefined{tc@#2@#3}{--}{#1: {\bf \csname tc@#2@#3\endcsname}% + + \hfill \tcdef@forms@formsemaillabel: {\bf \csname tc@#2@#3email\endcsname} ~\tcdef@forms@formsphonelabel: {\bf \csname tc@#2@#3phone\endcsname} ~\tcdef@forms@agreelabel: \rule{\tc@agreerule}{.1pt}\\}% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC description (for many forms)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@tccdesc}{}{%% + \tcdef@forms@formsstudentlabel : {\bf \tc@studentA} \hfill \tcdef@forms@formsstudentIDlabel : {\bf \tc@studentAID}% + + \tcdef@forms@formsworktitlelabel : {\bf \@title}\\[-4mm]% + + \tcdef@forms@formsadvisorlabel : {\bf \tc@studentA@advisor}\\% +}% +% + + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC examiner form (grades)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@examinersform}{m}{% + \tc@formtopbox[tcdef@forms@formsfootnote]{\tcdef@forms@formstitle}{\tcdef@forms@examformtitle}% +% + \vfill% + \tcdef@forms@formsstudentlabel : {\bf \csname tc@student\Alph{tc@studentcount}\endcsname}\\% + \tcdef@forms@formsexaminerlabel : \csname tc@student\Alph{tc@studentcount}@#1\endcsname% + \vfill% + \tcdef@forms@examformdesc% + + \vfill% + + \begin{center} + \begin{tabular}{|c|c|c|}% + \hline% + \tc@TCCpointAlabel & \tc@TCCpointBlabel & \tc@TCCpointClabel \\\hline% + & & \\\hline + \end{tabular}% + \end{center}% + + \vfill% + + \tcforms@formsigdate{\tcdef@forms@examinersignature}% + \vfill% + \begin{description} + \item[\tcdef@forms@examformnoteslabel:] \tcdef@forms@examformnotes + \end{description}% + + \vfill% + \pagebreak% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC examiners reviewer form (corrections)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@reviewform}{m}{% + \tc@formtopbox[tcdef@forms@reviewformfootnote]{\tcdef@forms@formstitle}{\tcdef@forms@reviewformtitle}% + + \vfill% + \tcdef@forms@formsstudentlabel : {\bf \expandafter\csname tc@student\Alph{tc@studentcount}\endcsname}\\% + \tcdef@forms@formsexaminerlabel : \expandafter\csname tc@student\Alph{tc@studentcount}@#1\endcsname% + \vfill% + \resizebox{0.9\textwidth}{!}{%% + \tcdef@forms@reviewformdesc% + }% + \footnotetext[2]{\tcdef@forms@reviewformfootnoteB}% + \vfill% + + \tcforms@formsigdate{\tcdef@forms@examinersignature}% + \vfill% + \pagebreak% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC requirement form (TCC register)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@reqform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@reqformtitle}% + + \vfill% + + \tcdef@forms@reqformopening% + \vfill% + + \tcdef@forms@reqformdesc% + \vfill% + + \tcdef@forms@formstemptitlelabel : \@title % + + \tcdef@forms@formsstudentemaillabel : {\bf \tc@studentAemail} % + + \tcdef@forms@formsadvisorlabel : \tc@studentA@advisor% + + \tcdef@forms@formsadvisoremaillabel : {\bf \tc@studentA@advisoremail}% + \hfill \tcdef@forms@formsphonelabel : {\bf \tc@studentA@advisorphone}% + + {\bf \tcdef@forms@formsbrieflabel}:\footnote[1]{\tcdef@forms@renewreqformnotes}% + + \vfill% + \tcdef@core@tccbrief% + + \parbox[t]{.45\textwidth}{\tcforms@formsigdate{\tcdef@forms@studentsignature}}\hfill% + \parbox[t]{.45\textwidth}{\tcforms@formsigdate{\tcdef@forms@advisorsignature}}% + \pagebreak% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC co-advisor requirement form (TCC register)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@coadvisorform}{}{% + \@ifundefined{tc@studentA@coadvisor}{% + \coadvisor{\rule{\tc@namerule}{.1pt}}{}% + \coadvisorinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@coadvisorformtitle}% + + \vfill% + + \tcdef@forms@reqformopening% + \vfill% + + \tcdef@forms@coadvisorformdesc% + \vfill% + + \tcdef@forms@formstemptitlelabel : \@title % + + \tcdef@forms@formsadvisorlabel: \tc@studentA@advisor + + \tcdef@forms@formscoadvisorlabel: \tc@studentA@coadvisor% + + \vfill% + {\bf \tcdef@forms@formsreasonlabel}:% + + \tcdef@core@tcccoadvisorbrief% !!!! What a Hell ?!?!?! + + \tcforms@formsigdate{\tcdef@forms@studentsignature}% + + \parbox[t]{.45\textwidth}{\tcforms@formsigdate{\tcdef@forms@advisorsignature}}\hfill% + \parbox[t]{.45\textwidth}{\tcforms@formsigdate{\tcdef@forms@coadvisorsignature}}% + \pagebreak% +}% +% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC renew requirement form (TCC register)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@renewreqform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@renewreqformtitle}% + + \vfill% + \tcforms@tccdesc% + + \tcdef@forms@formsstudentemaillabel : {\bf \tc@studentAemail} % + + \hfill \tcdef@forms@formsadvisoremaillabel : {\bf \tc@studentA@advisoremail}% + + \hfill \tcdef@forms@formsphonelabel : {\bf \tc@studentA@advisorphone}% + \vfill% + {\bf \tcdef@forms@formsbrieflabel}:\footnote[1]{\tcdef@forms@renewreqformnotes}% + + \tcdef@core@tccbrief% + \vfill% + \tcforms@formsigdate{\tcdef@forms@studentsignature}% + \vfill% + + \tcforms@formsigdate{\tcdef@forms@advisorsignature}% + \vfill% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Board approval form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@examboardform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@examboardformtitle}% + + \vfill% + + \tcforms@tccdesc% + + \vfill% + \begin{center} + \tcdef@forms@formsboardtitle + \end{center}% + + \tcforms@examinerdesc{studentA}{examinerA}% + + \tcforms@examinerdesc{studentA}{examinerB}% + + \tcforms@examinerdesc{studentA}{examinerC}% + + \tcforms@examinerdesc[\tcdef@forms@formsaltexaminerlabel]{studentA}{altexaminerA}% + + \vfill% + + \tcdef@forms@examboardformdesc% + \vfill% + + \tcforms@formsigdate{\tcdef@forms@advisorsignature}% + \vfill% + + \pagebreak% +}% +% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Board receipts form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@receiptform}{m}{% + \tc@formtopbox[tcdef@forms@receiptformfootnote]{\tcdef@forms@formstitle}{\tcdef@forms@receiptformtitle}% + + \vfill% + + \tcforms@tccdesc% + + \tcdef@forms@formsboardlabel : {\bf \csname tc@student\Alph{tc@studentcount}@#1\endcsname }% + + \vfill% + \tcdef@forms@receiptformdesc {\bf \tc@studentA},\ \ \ \tcdef@forms@formsstudentIDlabel : {\bf \tc@studentAID}.% + + \vfill% + + \tcforms@formsigdate{\tcdef@forms@boardsignature}% + \vfill% + \pagebreak% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% examiners approval/not signature (for rectify approval form)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@approvalsigdate}{mm}{%% + \tcdef@forms@formsrectifyOKdesc% + \hfill\tcdef@forms@formsdatelabel:\rule{\tc@daterule}{.1pt}\\[3mm]% + #1: #2 \hfill \tcdef@forms@formssignaturelabel:\rule{\tc@namerule}{.1pt}% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Board rectify approval form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@rectifyexaminersig}{O{\tcdef@forms@formsexaminerlabel}m}{\@ifundefined{#2}{}{\tcforms@approvalsigdate{#1}{\csname #2\endcsname}}\\[3mm]}% +% +\NewDocumentCommand{\tcforms@rectifyapprovalform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@rectifyapprovalformtitle}% + + \vfill% + + \tcforms@tccdesc% + + \vfill% + \tcdef@forms@rectifyapprovalformdesc% + + \vfill% + + \tcforms@rectifyexaminersig[\tcdef@forms@formsadvisorlabel]{tc@studentA@advisor}% + + \vfill% + + \@ifundefined{tc@nBoard}{}{% + \tcforms@rectifyexaminersig{tc@studentA@examinerA}% + }% + + \tcforms@rectifyexaminersig{tc@studentA@examinerB}% + + \tcforms@rectifyexaminersig{tc@studentA@examinerC}% + + \tcforms@rectifyexaminersig{tc@studentA@altexaminerA}% + \vfill% + \pagebreak% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Advisor approval form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@advisorapprovalform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@advisorapprovalformtitle}% + + \vfill% + + \tcforms@tccdesc% + + \vfill% + \tcdef@forms@advisorapprovalformdesc% + + \vfill% + + \tcdef@core@tccadvisorsreview% + + \vfill% + \tcdef@forms@advisorapprovalformdescB% + + \tcforms@formsigdate{\tcdef@forms@advisorsignature}% + \vfill% + + \tcforms@formsigdate{\tcdef@forms@studentsignature}% + \vfill% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% +% + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% set of blank lines% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\cmdfactory<core>{formsblanklines} +\formsblanklines{\hrulefill\\% + +\hrulefill\\% + +\hrulefill\\% + +\hrulefill\\% + +\hrulefill\\% + +\hrulefill\\% + +\hrulefill% +}% +% + + +\DeclareKeys[forms]{ + reqform.usage = general, + reqform.code = {\tcforms@reqform}, + coadvisor.usage = general, + coadvisor.code = {\tcforms@coadvisorform}, + boardsapproval.usage = general, + boardsapproval.code = {\tcforms@examboardform}, + advisorsapproval.usage = general, + advisorsapproval.code = {\tcforms@advisorapprovalform}, + receipts.usage = general, + receipts.code = {\tcforms@receiptforms}, + examinersforms.usage = general, + examinersforms.code = {\tcforms@examinersForms}, + rectifyapproval.usage = general, + rectifyapproval.code = {\tcforms@rectifyapprovalform}, +} + + +\NewDocumentCommand{\tcforms}{m}{% + \SetKeys[forms]{#1}% +} + +\NewDocumentCommand{\tcemptyforms}{m}{% + \tccore@resetfields% + \title{\rule{\tc@namerule}{.1pt}}% + \tccore@emptyfields% + \SetKeys[forms]{#1}% +} diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-gen.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-gen.sty new file mode 100644 index 00000000000..9d72af827da --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-gen.sty @@ -0,0 +1,152 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-gen} +\def\tc@tmp@altpackname{ufrgsccagen} +\def\tc@tmp@packdesc{UFRGS/CCA generic/miscellany commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\def\tcgen@fam{tcdef} +\def\tcgen@factgrp{gen}% +% + +\DeclareKeys[ufrgscca-gen]{ + family.usage = load, + family.store = \tcgen@fam, + + group.usage = load, + group.store = \tcgen@factgrp, +} +\ProcessKeyOptions[ufrgscca-gen]\relax + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% \tcgen@cdef[fam]{#1}{#2} => \gdef\<fam>@#1{#2}% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\NewDocumentCommand{\tcgen@cdef}{O{\tcgen@fam}D<>{\tcgen@factgrp} m +m}{% + \expandafter\gdef\csname #1@#2@#3\endcsname{#4}% +}% +% +\NewDocumentCommand{\factory}{O{\tcgen@fam}D<>{\tcgen@factgrp}m}{% + \expandafter\long\expandafter\xdef\csname #3\endcsname##1{\noexpand\tcgen@cdef[#1]<#2>{#3}{##1}}% + %\csname #3\endcsname{-default-} + \expandafter\def\csname #3.fam\endcsname{#1}% + \@ifundefined{#3undef}{}{\expandafter\gdef\csname tc@factdup@#3\endcsname{}} + \expandafter\def\csname #3undef\endcsname{\expandafter\let\csname #1@#2@#3\endcsname\undefined}% +}% +\NewDocumentCommand{\cmdfactory}{O{\tcgen@fam}D<>{\tcgen@factgrp}m}{% + \forcsvlist{\factory[#1]<#2>}{#3}% + \ifcsundef{tc@factgrplist@#2}{% + \ifcsundef{tc@factgrplist}{\csgdef{tc@factgrplist}{#2}}{\csgappto{tc@factgrplist}{,#2}}% + \csgdef{tc@factgrplist@#2}{#3}% + }{\csgappto{tc@factgrplist@#2}{,#3}}% +}% +% +% +% 'debug' auxiliary commands (mainly to find out dups, defined/undefined ones) +% +% +\NewDocumentCommand{\tcgen@factcmd@prt}{m}{\@ifundefined{tc@factdup@#1}{#1}{#1 (dup)} +\expandafter\@ifundefined\expandafter{\csname #1.fam\endcsname @#1}{\textbf{ NOT Defined} \\}{ {\csname\csname #1.fam\endcsname @#1\endcsname} \\}} +\NewDocumentCommand{\tcgen@factcmd@def}{m}{\csname #1.fam\endcsname @\@ifundefined{tc@factdup@#1}{#1}{#1 (dup)} % + \expandafter\@ifundefined\expandafter{\csname #1.fam\endcsname @#1}{\textbf{ NOT Defined} \\}{ {\slshape Defined} \\} } +%\NewDocumentCommand{\tcgen@factcmd@prt}{m}{{#1} \\} +%\NewDocumentCommand{\tcgen@factcmd@def}{m}{{#1} :: \@ifundefined{tc@#1}{-- \textbf{NOT Defined} --\\}{Defined \\} } +\NewDocumentCommand{\tcgen@factgrp@prt}{m}{\tightul{#1} \\% + \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tcgen@do\expandafter\expandafter\expandafter{\csname tc@factgrplist@#1\endcsname}% +} +\NewDocumentCommand{\listfactorycmds}{sO{}}{% + \IfBooleanTF{#1}{\def\tcgen@do##1{\tcgen@factcmd@def{##1}}}{\def\tcgen@do##1{\tcgen@factcmd@prt{##1}}} + \ifblank{#2}{% + \ifcsundef{tc@factgrplist}{Factories Groups: \textbf{empty list}\\ }{% + Factories: \\ % + \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tcgen@factgrp@prt\expandafter\expandafter\expandafter{\csname tc@factgrplist\endcsname}% + % + } + }{% + }% +} + + +%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% +% +% \mkswitch creates a switch (somewhat 'like' a programming switch) +% a 'default case' is associated with the switch when creating it +% one can add many 'cases' later on. +% one can have any code associated with a 'switch/case' +% +%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% + + +\NewDocumentCommand\mkswitch{O{}m}{% + \NewDocumentCommand{#2}{m}{% + \ifcsname\string#2@case@##1\endcsname\csname\string#2@case@##1\endcsname\else#1\fi% + }% +}% +\NewDocumentCommand{\addcase}{mmm}{\expandafter\def\csname\string#1@case@#2\endcsname{#3}}% +\let\addswitchcase\addcase + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty new file mode 100644 index 00000000000..b419ea04f1a --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty @@ -0,0 +1,118 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-lists} +\def\tc@tmp@altpackname{ufrgsccalists} +\def\tc@tmp@packdesc{UFRGS/CCA auxiliary lists commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\DeclareKeys[ufrgscca-lst]{ + relnum.usage = load, + relnum.if = tcif@relnum, +} +\ProcessKeyOptions[ufrgscca-lst]\relax + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% + +\RequirePackage{newfloat} +\RequirePackage{listings}% +\RequirePackage{xcolor}% + +%%% +%%% command to declare a new 'list of ...' things {package newfloat} +%%% +\NewDocumentCommand{\DeclareNewFloat}{mmmm}{% + \DeclareFloatingEnvironment[% + fileext={#2},% + listname={#4},% + name={#3},% + placement=htb,% + chapterlistsgaps=off]{#1} % + \iftcif@relnum\SetupFloatingEnvironment{#1}{within=chapter}% + \else\SetupFloatingEnvironment{#1}{within=none}% + \fi % +}% + + +% +%%%%\def\listoflistings{\lstlistoflistings}% +\definecolor{lstgray}{rgb}{0.965,0.965,0.965}% +\lstset{basicstyle=\ttfamily\small,% + columns=fullflexible,% + keepspaces=true,% + frame=tb,% + inputencoding=latin1,% +% inputencoding=utf8,% + extendedchars=true,% + backgroundcolor=\color{lstgray},% + breaklines=true,% +% xleftmargin=7pt,% +% xrightmargin=7pt% +}% +% +\def\listingname{Listing}% +\def\listlistingname{List of Listings}% +\DeclareNewFloat{codelist}{lox}{\listingname}{\listlistingname}%% + + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty new file mode 100644 index 00000000000..ac258994384 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty @@ -0,0 +1,501 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-ppc} +\def\tc@tmp@altpackname{ufrgsccappc} +\def\tc@tmp@packdesc{UFRGS/CCA PPC commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\DeclareKeys[ufrgscca-ppc]{ + showind.usage = load, + showind.if = @showindicators, + + indlong.usage = load, + indlong.if = @indlongtext, + nocomments.usage = load, + nocomments.if = @indnocomments, +} +\ProcessKeyOptions[ufrgscca-ppc]\relax + +\RequirePackage{longtable} +\RequirePackage{pdfcomment} +\WarningFilter{latex}{name}% +\RequirePackage[tikz]{mdframed}% +\RequirePackage{ufrgscca-abnt} +%\RequirePackage{ufrgscca-curr} +\RequirePackage{ufrgscca-curr-tab} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% PPC macros +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +%% pre-defined status: +% noref (default, still not in the text) +% tbd (to be done) +% review (in review, probably done) +% attention (to be looked at) +% done (done) +% NSA (not relevant) +% * (undefined, copy text) +%% +%%%%%%%%%%%%%%%%%%% +%\iftc@ppc + \RenewDocumentCommand{\maketitle}{}{\tcppc@PPCcoverpages}% +%\fi + +% +\NewDocumentCommand{\tcppc@PPCcoverpages}{}{ + \begin{titlepage}% + \noindent\tc@covertopbox% + \vfill% + \centerline{\tc@city}% + \centerline{\tc@publyear}% + \end{titlepage}%% + \if@openright\cleardoublepage\else\clearpage\fi%% +}% + \RenewDocumentCommand\tc@winbox{}{%% + \parbox[b]{\tc@coverwinwidth}{%% + \centering\vbox to \tc@coverwinheight{%% + \vspace*{\fill}% + {\large\MakeUppercase{\textbf{\@title}}\par}% + \vfill% + }%% + }%% +}% + +% +% +\NewDocumentCommand{\set@statuscolor}{m}{%% + \@ifundefined{#1@txtcolor}{% + \gdef\ind@txtcolor{\csname default@txtcolor\endcsname}%% + \gdef\ind@bgcolor{\csname default@bgcolor\endcsname}%% + }{% + \gdef\ind@txtcolor{\csname #1@txtcolor\endcsname}%% + \gdef\ind@bgcolor{\csname #1@bgcolor\endcsname}%% + }% +}% +% +% +\newcounter{@indcounter}% +% +\NewDocumentCommand{\declareindicator}{st+O{noref}mmm}{% +%#3: status #4:org #5:mark #6:short text #7:long text #8:extra text #9:'clarification text'(for inep/mec) + \stepcounter{@indcounter}% + \IfBooleanTF{#1}{\expandafter\gdef\csname @indicator#4#5star\endcsname{#1}\ifcsundef{@indicator#4lst}{\csgdef{@indicator#4lst}{#5}}{\csgappto{@indicator#4lst}{,#5}}}{} + \IfBooleanTF{#2}{\ifcsundef{@indicator#4lst}{\csgdef{@indicator#4lst}{#5}}{\csgappto{@indicator#4lst}{,#5}}}{} + \expandafter\gdef\csname @indicator#4#5status\endcsname{#3}% + \expandafter\gdef\csname @indicator#4#5short\endcsname{#6}% + \expandafter\gdef\csname @indicator#4#5long\endcsname{}% + \expandafter\gdef\csname @indicator#4#5extra\endcsname{}% + \expandafter\gdef\csname @indicator#4#5text\endcsname{}% + \expandafter\gdef\csname @indrefA\arabic{@indcounter}\endcsname{#4}% + \expandafter\gdef\csname @indrefB\arabic{@indcounter}\endcsname{#5}% + \newcounter{@indcount#4#5}% + \@ifundefined{iftcppc@indset#4view}{\expandafter\newif\csname iftcppc@indset#4view\endcsname\csname tcppc@indset#4viewtrue\endcsname}{} + \gdef\tcppc@indindex{#4#5} +}% +\NewDocumentCommand{\indicatorDesc}{+m+m}{% + \expandafter\gdef\csname @indicator\tcppc@indindex long\endcsname{#1} + \expandafter\gdef\csname @indicator\tcppc@indindex extra\endcsname{#2} +} +\NewDocumentCommand{\indicatorText}{+m}{% + \expandafter\gdef\csname @indicator\tcppc@indindex text\endcsname{#1} +} + +\NewDocumentCommand{\lstind}{O{\section}O{\subsection}m}{% + \def\doit##1{\ifcsundef{@indicator#3##1star}{#2{\csname @indicator#3##1short\endcsname}}{#1{\csname @indicator#3##1short\endcsname}} \csname @indicator#3##1text\endcsname\par}% +\expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\doit\expandafter\expandafter\expandafter{\csname @indicator#3lst\endcsname} +} + +% +%\newcommand{\indsetstatus}[3][attention]{\expandafter\gdef\csname @indicator#2#3status\endcsname{#1}} +\NewDocumentCommand{\indsetstatus}{O{attention}mm}{% + \gdef\tcppc@indsetstatus##1{\expandafter\gdef\csname @indicator#2##1status\endcsname{#1}}% + \expandafter\forcsvlist\expandafter\tcppc@indsetstatus\expandafter{#3}% +} +% +\NewDocumentCommand{\indsetview}{m}{\csname tcppc@indset#1viewtrue\endcsname}% +% +\NewDocumentCommand{\indsethide}{m}{\csname tcppc@indset#1viewfalse\endcsname}% +% +\NewDocumentEnvironment{listofindicators}{m}{% + \begin{list}{\textbf{??}}{% + \settowidth{\labelwidth}{#1}% + \setlength{\labelsep}{1em}% + \setlength{\itemindent}{0mm}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\rightmargin}{0mm}% + \setlength{\itemsep}{.1\baselineskip}% + \renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}% + }% +}{% + \end{list}% +}% +% +\NewDocumentCommand{\tcppc@indrefitem}{O{, }m}{% + \@ifundefined{r@@indlabel\tcppc@indA\tcppc@indB:#2}{}{#1 \ref{@indlabel\tcppc@indA\tcppc@indB:#2} (\pageref{@indlabel\tcppc@indA\tcppc@indB:#2})}% +}% +% +\newif\iftcppc@itemdisp% +\NewDocumentCommand{\tcppc@indicatorsitem}{m}{%% + \@ifundefined{@indrefA#1}{}{%% + \gdef\tcppc@indA{\csname @indrefA#1\endcsname}%% + \gdef\tcppc@indB{\csname @indrefB#1\endcsname}%% + \csname iftcppc@indset\tcppc@indA view\endcsname% + \gdef\tcppc@status{\csname @indicator\tcppc@indA\tcppc@indB status\endcsname}%% + \iftcppc@ind@filter\expandafter\tcppc@ind@filtercase\expandafter{\tcppc@status}\else\tcppc@itemdisptrue\fi% + \iftcppc@itemdisp% + \set@statuscolor{\tcppc@status}%% + \@ifundefined{theind@\tcppc@status @count}{\stepcounter{ind@default@count}}{\stepcounter{ind@\tcppc@status @count}}%% + \item[\textbf{\color{\ind@txtcolor}\hypertarget{@indlabel\tcppc@indA\tcppc@indB\tcppc@ind@filterstatus}{\tcppc@indA: \tcppc@indB}}]% + {\color{\ind@txtcolor}\emph{\csname @indicator\tcppc@indA\tcppc@indB short\endcsname}} \dotfill % + {\normalsize\color{\ind@txtcolor}\textbf{\csname @indicator\tcppc@indA\tcppc@indB status\endcsname}} % + \ifthenelse{\equal{\csname @indicator\tcppc@indA\tcppc@indB long\endcsname}{}}{\break}{\newline\csname @indicator\tcppc@indA\tcppc@indB long\endcsname \csname @indicator\tcppc@indA\tcppc@indB extra\endcsname\hfill\break}%% + \tcppc@indrefitem[.\dotfill]{1}%% + \forcsvlist\tcppc@indrefitem{2,3,4,5,6,7,8,9,10,11,12,13}% + \fi% + \fi% + }%% +}% +% +\NewDocumentCommand{\tcppc@indicatorsbatch}{m}{\forcsvlist\tcppc@indicatorsitem{#10,#11,#12,#13,#14,#15,#16,#17,#18,#19}}% +% +\NewDocumentCommand{\tcppc@indicatorsBatch}{m}{\forcsvlist\tcppc@indicatorsbatch{#10,#11,#12,#13,#14,#15,#16,#17,#18,#19}}% +% +% +\NewDocumentCommand{\tcppc@helpstatus}{+m}{\makebox[5mm]{}\makebox[17mm][r]{\textbf{#1}}\ \ \csname #1@text\endcsname\newline}% +% +\NewDocumentCommand{\tcppc@helpbf}{+m}{\textbf{\color{black}\textbackslash #1}$\,\,$}% +\NewDocumentCommand{\tcppc@helpO}{+m}{{\color{darkteal}\textbf{[}<status>#1\textbf{]}}$\,\,$}% +\NewDocumentCommand{\tcppc@helpM}{+m}{{\color{darkblue}\textbf{\{}#1\textbf{\}}}$\,\,$}% +% +\NewDocumentCommand{\helpindicators}{}{{\footnotesize% + \if@showindicators% + \begin{itemize}[nosep,label=,leftmargin=0mm]% + \item \tcppc@helpbf{indsethide}\tcppc@helpM{<set>} - Hide an indicator's set% + \item \tcppc@helpbf{comment}\tcppc@helpO{}\tcppc@helpM{<title>}\tcppc@helpM{<comment>} - Just a comment% + \item \tcppc@helpbf{indref}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{<ref>}\tcppc@helpM{<comment>} - Single indicator's reference% + \item \tcppc@helpbf{indref*}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{<ref>}\tcppc@helpM{<comment>} - (Short text only)% + \item \tcppc@helpbf{indreflst}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{\tcppc@helpO{:}<ref> , \tcppc@helpO{:}<ref> , ...}\tcppc@helpM{<comment>} - Referece list % + \item \tcppc@helpbf{indreflst*}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{\tcppc@helpO{:}<ref> , \tcppc@helpO{:}<ref> , ...}\tcppc@helpM{<comment>} - (Single box)% + \item \tcppc@helpbf{indsetstatus}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{<ref> , <ref> , ...} - Set the status of a list of indicators.% + \end{itemize}% + where status:\newline% + \expandafter\forcsvlist\expandafter\tcppc@helpstatus\expandafter{\ind@statuslst}% + \fi% +}}% +% +\NewDocumentCommand{\tcppc@printcount}{+m}{\item[ ] {\color{\attention@txtcolor}\large\textbf{\makebox[15mm][r]{#1 :} \csname theind@#1@count\endcsname}}% +}% +% +% +% +%\NewDocumentCommand{\ifshowindicators}{m}{\if@showindicators#1\fi} +%\NewDocumentCommand{\ifthenelseshowindicators}{+m+m}{\if@showindicators#1\else#2\fi} +\NewDocumentCommand{\ifshowind}{+m+m}{\if@showindicators#1\else#2\fi} +% +% +\newif\iftcppc@ind@filter% +\mkswitch[\tcppc@itemdispfalse]\tcppc@ind@filtercase% +\NewDocumentCommand{\tcppc@ind@filteraux}{+m}{\addcase\tcppc@ind@filtercase{#1}{\tcppc@itemdisptrue}}% +\NewDocumentCommand{\PrintIndicators}{O{}}{\footnotesize% + \if@showindicators%% + \def\tcppc@ind@filterstatus{#1}% + \ifthenelse{\equal{#1}{}}{\tcppc@ind@filterfalse}{\tcppc@ind@filtertrue\expandafter\forcsvlist\expandafter\tcppc@ind@filteraux\expandafter{#1}}% + \if@openright\cleardoublepage\else\clearpage\fi%%% + \phantomsection%% + \chapter*{Indicadores #1}%\newpage%% + \begin{listofindicators}{EMPTY LIST . . .}%% + \iftcppc@ind@filter\else\item[ ] {\color{\attention@txtcolor}\large\textbf{\the@indcounter}\ Indicadores.}\fi%% + \tcppc@indicatorsbatch{}% + \tcppc@indicatorsBatch{}% + \forcsvlist\tcppc@indicatorsBatch{1,2,3,4,5,6,7,8,9}% + \iftcppc@ind@filter\else\expandafter\forcsvlist\expandafter\tcppc@printcount\expandafter{\ind@statuslst}\fi% + \end{listofindicators}% + \fi% +}% +% +% +\NewDocumentCommand{\textmark}{O{attention}m}{\set@statuscolor{#1}{\color\ind@txtcolor {\textbf{!! #2 !!}}}} + + +\NewDocumentCommand{\comment}{O{attention}m+m}{% + \if@showindicators% + \if@indnocomments\else% + \set@statuscolor{#1}% + \ \hfill\parbox{0.9\textwidth}{\small% + \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{#2}]% + {\footnotesize #3\par}% + \hfill\emph{status: }\textbf{\color{\ind@txtcolor}#1}% + \end{mdframed}% + }\\[-2.7mm]% + \fi% + \fi% +}% +\let\remark\comment +% +\NewDocumentCommand{\indtext}{mm}{\csname @indicator#1#2short\endcsname} +% +\NewDocumentCommand{\tcppc@indhack}{smm+m}{% + \csname iftcppc@indset#2view\endcsname% + \set@statuscolor{\tcppc@status}% + \ \hfill\parbox{0.9\textwidth}{\small%% + \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{\hyperlink{@indlabel#2#3}{#2 : #3}}]%% + \pdftooltip{\emph{\csname @indicator#2#3short\endcsname}}{\csname @indicator#2#3long\endcsname}\par%% + \if@indlongtext%% + \IfBooleanF{#1}{%% + \ifthenelse{\equal{\csname @indicator#2#3long\endcsname}{}}{}{\enquote{\footnotesize\csname @indicator#2#3long\endcsname}\par}%% + }% + \fi%% + \if@indnocomments\else\ifthenelse{\equal{#4}{}}{}{{\emph{\color{\comments@txtcolor}{#4}}}\par}\fi%% + \hfill\emph{status: }\textbf{\color{\ind@txtcolor}\tcppc@status}%% + \end{mdframed}%% + }\\[-2.7mm]%% + \fi% +} + +\NewDocumentCommand{\indref}{sO{}mm+m}{%% + \ifthenelse{\equal{#2}{}}{}{\expandafter\gdef\csname @indicator#3#4status\endcsname{#2}}%% + \expandafter\gdef\expandafter\tcppc@status{\csname @indicator#3#4status\endcsname}% + \stepcounter{@indcount#3#4}\label{@indlabel#3#4:\csname the@indcount#3#4\endcsname}%% + \if@showindicators%% + \IfBooleanTF{#1}{\tcppc@indhack*{#3}{#4}{#5}}{\tcppc@indhack{#3}{#4}{#5}} + \fi% % +}% +% +% +\newcommand{\tcppc@indreflstitem}[4][]{% + \ifthenelse{\equal{#1}{}}{}{\expandafter\gdef\csname @indicator#2#3status\endcsname{#1}}% + \expandafter\gdef\expandafter\tcppc@status{\csname @indicator#2#3status\endcsname}% + \stepcounter{@indcount#2#3}\label{@indlabel#2#3:\csname the@indcount#2#3\endcsname}%% + \set@statuscolor{\tcppc@status}% + \hyperlink{@indlabel#2#3}{\textbf{#3 :}}\pdftooltip{\emph{\csname @indicator#2#3short\endcsname}}{\csname @indicator#2#3long\endcsname}\par%% + \if@indlongtext%% + \ifthenelse{\equal{\csname @indicator#2#3long\endcsname}{}}{}{\enquote{\footnotesize\csname @indicator#2#3long\endcsname}\par}%% + \fi%% + \hfill\emph{status: }\textbf{\color{\ind@txtcolor}\tcppc@status\break}%% +}% + +\NewDocumentCommand{\indreflst}{sO{}mmm}{% + \IfBooleanTF{#1}{% + \gdef\tcppc@indreflst##1{\StrCut{##1}{:}\tcppc@parA\tcppc@parB\IfStrEq{\tcppc@parB}{}{\tcppc@indreflstitem{#3}{\tcppc@parA}{#5}}{\expandafter\tcppc@indreflstitem\expandafter[\tcppc@parA]{#3}{\tcppc@parB}{#5}}}% + \if@showindicators% + \csname iftcppc@indset#3view\endcsname% + \ \hfill\parbox{0.9\textwidth}{\small% + \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{#3}]%% + \expandafter\forcsvlist\expandafter\tcppc@indreflst\expandafter{#4}% + \if@indnocomments\else\ifthenelse{\equal{#5}{}}{}{{\emph{\color{\comments@txtcolor}{#5}}}\par}\fi%% + \set@statuscolor{#2}% + \end{mdframed}% + }% + \fi% + \fi% + }{% + \gdef\tcppc@indreflst##1{\StrCut{##1}{:}\tcppc@parA\tcppc@parB\IfStrEq{\tcppc@parB}{}{\indref{#3}{\tcppc@parA}{}}{\indref[\tcppc@parA]{#3}{\tcppc@parB}{}}}% + \expandafter\forcsvlist\expandafter\tcppc@indreflst\expandafter{#4}% + \comment[#2]{comment}{#5}% + }% +}% +% +% other default colors (xcolor pack): lime, olive, orange, pink, purple. +% +\def\tcppc@defcolorpair#1{\colorlet{light#1}{white!85!#1}\colorlet{dark#1}{#1!70!black!100}} +% +% +\definecolor{grayblack}{rgb}{0.8,0.8,0.8}% +% +% +\NewDocumentCommand{\ind@defstatus}{mmm}{% + \newcounter{ind@#1@count}% + \tcppc@defcolorpair{#2}% + \expandafter\gdef\csname #1@txtcolor\endcsname{dark#2}% + \expandafter\gdef\csname #1@bgcolor\endcsname{light#2}% + \expandafter\gdef\csname #1@text\endcsname{#3 (#2)}% + \@ifundefined{ind@statuslst}{\gdef\ind@statuslst{#1}}{\edef\ind@statuslst{\ind@statuslst,#1}}% +}% +% +\ind@defstatus{tbd}{gray}{To Be Done}% +\ind@defstatus{done}{green}{Done}% +\ind@defstatus{review}{yellow}{to be reviewed}% +\ind@defstatus{attention}{red}{needs Attention}% +\ind@defstatus{NSA}{brown}{NSA}% +\ind@defstatus{noref}{magenta}{no references}% +\ind@defstatus{EAD}{violet}{EAD}% +\ind@defstatus{MDi}{teal}{(courseware)...}% +\ind@defstatus{DOCs}{blue}{other DOCs}% +\ind@defstatus{default}{cyan}{everything else}% +% +\def\comments@txtcolor{darkblue}% +% +% +\def\ind@TikZpos{0.44}% +\NewDocumentCommand{\tikztitle}{m}{\tikz[baseline=(current bounding box.east),outer sep=0pt,xshift=1cm,thin,color=grayblack] \draw (0,0) (\ind@TikZpos,0) node[anchor=west,rectangle,rounded corners,fill=white,draw] at (\ind@TikZpos,0) {#1} node[anchor=west,rectangle,rounded corners,color=black] at (\ind@TikZpos,0) {#1};}%% +% +% +\mdfdefinestyle{indicatorsTikZ}{% + linecolor=grayblack,%% + linewidth=0.4pt,% +% skipabove=0.65\baselineskip,% +% skipbelow=0.5\baselineskip,% + skipabove=0pt,% + skipbelow=0pt,% + leftmargin =-3.5pt,% + rightmargin=-3.5pt,% + innerleftmargin=3pt,% + innerrightmargin=3pt,% + needspace=3\baselineskip,% + backgroundcolor=\ind@bgcolor,% + usetwoside=false,% +% innertopmargin = 3pt,% +% innerbottommargin = 2pt,% + innertopmargin = 2pt,% + innerbottommargin = 2pt,% + roundcorner = 4pt,% + frametitle={\tikztitle{TITLE}},% + frametitleaboveskip=-0.6\baselineskip,% + frametitlebelowskip=0pt,% + frametitlealignment = \raggedleft,% + leftline = true,% + rightline = true,% + nobreak = true,% +}% + +\NewDocumentCommand{\fancyquote}{O{-2\topsep-2\parsep-2\partopsep-2\parskip}+mmm}{% + \vspace{#1}{% + \ \hfill\begin{minipage}{0.5\textwidth}\noindent\scriptsize\emph{''#2''}% + {\vspace{-\parsep}\begin{flushright}\footnotesize#3\\\sc #4\end{flushright}} \end{minipage}\\ + }} + + +\NewDocumentEnvironment{ppc.quote}{}{\begin{displayquote}\begin{itshape}\smaller}{\end{itshape}\end{displayquote}} +%\preto\displayquote{\begingroup\setlength{\leftmargini}{0mm}} +%\appto\enddisplayquote{\endgroup} +\RenewDocumentEnvironment{quote}{}{% + \list{}{\leftmargin20mm\rightmargin0mm}% + \item\relax% +}{\endlist} +% + +\NewDocumentCommand{\labelhack}{m}{\def\@currentlabelname{#1}} + +\NewDocumentCommand{\acrolist}{}{} +\NewDocumentCommand{\acrodef}{mmm}{% + %\expandafter\DeclareFixedFootnote\expandafter{\csname #1\endcsname}{#3}% + \expandafter\def\csname #1\endcsname{\footnote{#3}}% + \expandafter\def\csname acrolsti:#1\endcsname{\item[#2] #3}% + \appto\acrolist{\item[#2] #3}% + \expandafter\def\csname acroS:#1\endcsname{#2}% + \expandafter\def\csname acroL:#1\endcsname{#3}% +} +\NewDocumentCommand{\acroitem}{m}{\csname acrolsti:#1\endcsname} +\NewDocumentCommand{\printacrolist}{O{}m}{\begin{listofabbrv}[#1]{#2}\acrolist\end{listofabbrv}} +\NewDocumentCommand{\acro}{m}{\csname acroS:#1\endcsname} +\NewDocumentCommand{\acrol}{m}{\csname acroL:#1\endcsname} +\NewDocumentCommand{\acrols}{m}{\csname acroL:#1\endcsname, \csname acroS:#1\endcsname} +\NewDocumentCommand{\acrosl}{m}{\csname acroS:#1\endcsname, \csname acroL:#1\endcsname} +\NewDocumentCommand{\acrofoot}{m}{\csname acroS:#1\endcsname\csname #1\endcsname} + + +\RenewDocumentCommand{\subparagraph}{m}{} +\RenewDocumentCommand{\part}{m}{} +% +%Se alguém é capaz de me convencer e me evidenciar que o que penso +%ou faço não é correto, será com contentamento que me corrigirei; afinal, +%procuro a verdade, a qual jamais causou danos a alguém. Aquele, porém, +%que persevera no engano e na ignorância causa danos a si mesmo. + +%Observa com olho crítico seus princípios norteadores e os indivíduos +%sensatos, tanto aquilo de que se esquivam como aquilo que buscam. + +%Prestei algum benefício à comunidade? Se o fiz, então prestei um +%benefício a mim. Em todas as ocasiões tem isso sempre em mente e em lugar +%algum deixes de abrigar esse pensamento. + +%%Caso ajas conforme a reta razão com referência ao que se coloca +%diante de ti, com seriedade, firmeza, benevolência, não admitindo que nada +%secundário te desvie de tua ação, mas conservando pura a divindade que +%existe em ti, como se devesses restituí-la de imediato; caso te vincules a isso, +%sem nada esperar nem fugir de nada, contente com tua atividade presente +%conforme a natureza, a dizer e murmurar em todo som emitido de tua boca +%uma verdade heroica, então viverás feliz. E não existe ninguém com o poder +%de impedi-lo. + +%Se tu mesmo não consegues com teu esforço realizar algo, não penses +%ser isso impossível para o ser humano; se, entretanto, algo é possível ao ser +%humano e lhe é próprio, pensa que isso a ti também é acessível. + + +%É indispensável ter compreensão, atentando para cada palavra, daquilo +%que se diz, e sobre cada ação, deve-se ter compreensão do seu efeito. Nesse +%caso, é necessário ver diretamente a relação do ponto de vista de sua meta, +%ou melhor, a qual meta a ação se relaciona; quanto ao outro caso, é preciso +%observar o significado das palavras. + +%Como és uma parte que ajuda a tornar um sistema social completo, +%faz toda ação tua ser uma parte integrante completa da vida social. Assim, +%qualquer ação tua que não tenha referência imediata ou remotamente ao fim +%social produz em tua vida uma ruptura violenta, impedindo que seja íntegra, +%e é de caráter sedicioso
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-base.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-base.def new file mode 100644 index 00000000000..54563306736 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-base.def @@ -0,0 +1,95 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-ptBR-base} +\def\tc@tmp@altpackname{ufrgsccaptbrbase} +\def\tc@tmp@packdesc{UFRGS/CCA Portuguese base defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + +%%% +%% +%% those are loaded, on the fly, when selecting, or switching, to portuguese (\@namedef{captionsbrazilian} vis-à-viz \begin{otherlanguage}{}) +%% +%%%%% + + \def\abstractname{Resumo}% + \def\englishabstractname{Abstract}% + \def\contentsname{Sum{\'{a}}rio}% + \def\listfigurename{Lista de Ilustra\c{c}\~oes}% + \def\listtablename{Lista de Tabelas}% + \def\figurename{Figura}% + \def\tablename{Tabela}% + \def\byname{por}% + \def\keywordsname{Palavras-chave}% + + \def\listabbrvname{Lista de Abreviaturas}% + \def\listsymbolname{Lista de S{\'{\i}}mbolos}% + + \def\listingname{Listagem} + \def\listlistingname{Lista de Listagens} + + \def\defappendixname{Ap{\^{e}}ndice}% + \def\defappendixpagename{Ap{\^{e}}ndices}% + \def\defannexname{Anexo}% + \def\defannexpagename{Anexos}% + \def\sourcename{Fonte:} + \def\notename{Nota}%% + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-coord.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-coord.def new file mode 100644 index 00000000000..6d27b761fa5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-coord.def @@ -0,0 +1,129 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-ptBR-coord} +\def\tc@tmp@altpackname{ufrgsccaptbrcoord} +\def\tc@tmp@packdesc{UFRGS/CCA Portuguese coord defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +\calendartitle{Calendário – \tcdef@coord@TCCperiod} + +\tcccalendarhead{Data/Período}{Semana Letiva}{Evento} +\tcccalendarevent{01}{Apresentação da disciplina. Informações gerais. Reunião presencial com início às 18:30h, no Salão de Eventos do DELET.\newline {\bf Presença obrigatória.}} +\tcccalendarevent{02}{Requerimento de matrícula. O(A) aluno(a) deve preencher o \emph{Formulário de Requerimento de Matrícula}, já com o resumo do trabalho, e encaminhá-lo ao setor de protocolos da UFRGS para abertura de processo. Posteriormente, o número do processo deve ser encaminhado por e-mail para \tccore@@ref{TCCcoord}{article} coordenador\tccore@@ref{TCCcoord}{narticle} da atividade. \newline{\bf Obs.~1}} +%\tcccalendarevent{03}{Entrega do \emph{Formulário de Inscrição}, juntamente com o resumo do trabalho, no \tcdef@cover@secdivisionacronym .} +\tcccalendarevent{09}{Encontro presencial: Como redigir um TCC, melhores práticas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}} +\tcccalendarevent{09}{Entrega VIA MOODLE do \emph{Relatório Parcial}, juntamente com o \emph{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} assinado pelo orientador. \newline{\bf Obs.~2}} +\tcccalendarevent{15}{Entrega de uma cópia impressa (ou eletrônica) do Trabalho de Conclusão a cada membro da banca, juntamente com os \emph{Formulários de Avaliação} e \emph{Formulários de correções} do trabalho. Entrega VIA MOODLE de uma cópia eletrônica do trabalho juntamente com o \emph{Formulário de Aprovação para Apresentação} e os recibos de recebimento assinados e datados pelos membros das bancas.} +\tcccalendarevent{16}{Encontro presencial: Como apresentar um TCC, melhores técnicas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}} +\tcccalendarevent{17}{Apresentações dos Trabalhos de Conclusão de Curso. \newline{\bf Obs.~3}} +\tcccalendarevent{17}{Entrega VIA MOODLE dos \emph{Formulários de correções} dos membros da banca.} +\tcccalendarevent{18}{Entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~4}} +\tcccalendarevent{19}{Para os TCCs em RECUPERAÇÃO, entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~5}} + + +\tcccalendardesc{\begin{description} +\item[Obs. 1]: Caso o aluno(a) já tenha um processo aberto de TCC, reusar o mesmo apenas anexando o novo requerimento de matrícula, caso necessário. +\item[Obs. 2]: O relatório deve conter as declarações de concordância em participar da banca da parte dos professores convidados. +\item[Obs. 3]: As bancas serão marcadas após a entrega do relatório parcial, de acordo com a disponibilidade dos professores convidados. +\item[Obs. 4]: O \emph{Formulário de Aprovação das Correções} deve estar assinado pelo(a) orientador(a). Para relatórios em que o campo “Revisarei o trabalho depois de corrigido” tiver sido assinalado por algum membro da banca, a assinatura do(a) mesmo(a) também deverá constar no \emph{Formulário de Aprovação das Correções}. +\item[Obs. 5]: Trabalho em RECUPERAÇÃO é aquele cuja nota final quando da defesa é insuficiente para aprovação OU aquele em que o campo “Reescrever tudo” do formulário de correções foi marcado por algum membro da banca. Neste caso, o \emph{Formulário de Aprovação das Correções} deve estar assinado tanto pelo(a) orientador(a) como pelo(s) membro(s) da banca designado(s) para reavaliar o trabalho, incluindo obrigatoriamente aqueles que tiverem marcado o campo “Revisarei o trabalho depois de corrigido”.\\\hrule +\item[IMPORTANTE]: O(A) aluno(a) estará {\bf REPROVADO(A)} \emph{se falhar na entrega de qualquer um dos documentos aqui citados dentro dos prazos estipulados}. +\end{description}} + + +\studentlistformtitle{Lista de presença, \tcdef@coord@studentlistactivity, dia \tcdef@coord@studentlistdate} +\studentlistactivity{apresentação da atividade de TCC} +\studentlistdate{\number\day/\number\month} + +\tccreporttitle{Relatório parcial/final} +\tccreportopening{Para registro} +\tccreportdesc{Relatório parcial/final referente aos alunos matriculados na atividade de ensino de \tcdef@forms@formstitle\ semestre \tcdef@coord@TCCperiod .} + +\tccreportabsents{Desistentes com conceito (segundo semestre)} +\tccreportdismiss{Desistentes sem conceito (primeiro semestre)} +\tccreferralopening{Ao\\ \tcdef@cover@secretaryacronym\ da \tcdef@cover@universitydivision} + +\referralfailed{{REPROVAD\tccore@@ref{student}{Article}}} +\referralapproved{{APROVAD\tccore@@ref{student}{Article}}} + +\referralexamapprovedtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef@coord@referralapproved\ com conceito final \tc@TCCgradeC .} + +\referralexamfailtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef@coord@referralfailed\ com conceito final \tc@TCCgradeD .} + +\referralfatetext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, tendo sido \tccoord@referralfate{\tccore@@ref{student}{Temp}} com conceito final \textbf{\tccoord@@fate{\Alph{tc@studentcount}}}, conforme quadro de notas abaixo. } + +\referralfailFF{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ n\~{a}o concluiu o trabalho de conclus\~{a}o de Curso tendo sido \tcdef@coord@referralfailed\ com conceito final \textbf{FF}.} + +\boardlabel{Banca Examinadora} +\boardstitle{Apresentações TCC em \tcdef@cover@course\ \tcdef@coord@TCCperiod\ \tcdef@coord@boardstitleB\ } +\boardsworklabel{Título} +\TCCgradesNlabel{Nota} +\TCCgradesClabel{Conceito} +\TCCgrades{A}{B}{C}{D}{FF} +\TCCgradesN{9}{7.5}{6} + +\cocertificatetitle{CERTIFICADO} +\cocertificateopenning{\`{A} quem interessar possa,\\ certificamos que} +\cocertificatetext{atuou como co-orientador\tccore@@ref{coadvisor}{narticle} d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article}\ \emph{\tccore@@ref{student}{}}\ no trabalho de conclus\~{a}o de curso intitulado \emph{\tccore@@ref{student}{title}}\ no semestre \tcdef@coord@TCCperiod.} + +\TCCcoordtitle{Coordenador\tccore@@ref{TCCcoord}{narticle} da atividade de ensino de\\ \tcdef@forms@formstitle\ } diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-core.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-core.def new file mode 100644 index 00000000000..0ef6373d13c --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-core.def @@ -0,0 +1,101 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-ptBR-core} +\def\tc@tmp@altpackname{ufrgsccaptbrcore} +\def\tc@tmp@packdesc{UFRGS/CCA Portuguese core defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +\location{Porto~Alegre}{RS} + +\university{Universidade Federal do Rio Grande do Sul} +\universityacronym{UFRGS} +\universitydivision{Escola de Engenharia} +\divisiongradcouncil{Conselho de Graduação da \tcdef@cover@universitydivision} + +\secretaryacronym{SACAD} +\secdivisionacronym{\tcdef@cover@secretaryacronym/EE} +\graduationtitle{Bacharel em Eng. de Controle e Automa\c{c}\~{a}o} +\course{Eng. de Controle e Automa\c{c}\~{a}o} +\courseacronym{CCA} +\coursecoord{Atual Coordenador(a) do Curso} +\coursecoordtitle{Coordenador\tccore@@ref{coursecoord}{narticle} de curso} +\advisorname{Orientador\tccore@@ref{advisor}{narticle}}% +\coadvisorname{Co-orientador\tccore@@ref{coadvisor}{narticle}}% +\examinername{Banca Examinadora}% + +\reportspecificinfo{% + Trabalho de Conclus\~{a}o de Curso (TCC-\tcdef@cover@courseacronym ) apresentado \`{a} + COMGRAD-\tcdef@cover@courseacronym\ da \tcdef@cover@university\ como parte dos requisitos para a + obten{\c{c}}{\~a}o do t\'{\i}tulo de \emph{\tcdef@cover@graduationtitle\ }. +}% + +\approvalspecificinfo{% + Este Trabalho de Conclus\~{a}o de Curso foi julgado adequado para a + obten\c{c}\~ao dos cr\'editos da Disciplina de TCC do curso \emph{\tcdef@cover@course\ } e aprovado em sua forma final pel\tccore@@ref{advisor}{article} + Orientador\tccore@@ref{advisor}{narticle} e pela Banca Examinadora. +}% + +\profname{Professor\tccore@@ref{advisor}{narticle}} +\coprofname{Professor\tccore@@ref{coadvisor}{narticle}} + + diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-forms.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-forms.def new file mode 100644 index 00000000000..e8967788f09 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-forms.def @@ -0,0 +1,215 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-ptBR-forms} +\def\tc@tmp@altpackname{ufrgsccaptbrforms} +\def\tc@tmp@packdesc{UFRGS/CCA Portuguese forms defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +%%%%%% +%%%%%% +%%%%%% forms +%%%%%% +%%%%%% +%%%%%% + +\formlocal{\tc@city,\hspace{4mm} de \hspace{1.2cm} de 20\hspace{4mm}.} + +\formssignaturelabel{Assinatura} +\examinersignature{Assinatura\ \ d\tccore@@ref{examiner}{article}\ \ Avaliador\tccore@@ref{examiner}{narticle}} +\boardsignature{Assinatura\ \ do\ \ Membro\ \ da\ \ Banca} +\advisorsignature{Assinatura\ \ d\tccore@@ref{advisor}{article}\ \ Orientador\tccore@@ref{advisor}{narticle}} +\coadvisorsignature{Assinatura\ \ d\tccore@@ref{coadvisor}{article}\ \ Co-orientador\tccore@@ref{coadvisor}{narticle}} +\studentsignature{Assinatura\ \ d\tccore@@ref{student}{article}\ \ Alun\tccore@@ref{student}{article}} +\studentsignaturegen{Assinatura\ \ do(a)\ \ Aluno(a)} +\formsstudentlabel{Alun\tccore@@ref{student}{article}} +\formsstudentlabelgen{Aluno(a)} +\formproflabel{Professor(a)} +\profname{Professor\tccore@@ref{advisor}{narticle}} +\coprofname{Professor\tccore@@ref{coadvisor}{narticle}} +\formsboardlabel{Membro da Banca} +\formsadvisorlabel{Orientador\tccore@@ref{advisor}{narticle}} +\formsadvisorlabelgen{Orientador(a)} +\formscoadvisorlabel{Co-orientador\tccore@@ref{advisor}{narticle}} +\formsexaminerlabel{Avaliador\tccore@@ref{examiner}{narticle}} +\formsaltexaminerlabel{Suplente} +\formstimelabel{Horário} + + +%\formstopicAlabel{Conteúdo} +%\formstopicBlabel{Trabalho Escrito} +%\formstopicClabel{Apresentação} +\formsworktitlelabel{Título do Trabalho} +\formstemptitlelabel{Título Provisório} +\formsstudentIDlabel{Cartão} +\formsemaillabel{e-mail} +\formsphonelabel{ramal} +\agreelabel{De Acordo} + +\continuelabel{Continua...} + +\formsdatelabel{Data} +\formstitle{Trabalho de Conclusão de Curso}% em \tcdef@cover@course} +\formsfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho.} + + +\renewreqformtitle{Formulário de Renovação da Inscrição na Atividade de Ensino Trabalho de Conclusão em \tcdef@cover@course} + +\renewreqformnotes{O resumo deve ser curto, i.e., não deve exceder este espaço. O texto deve ser escrito em parágrafo único, e por se tratar de proposta, poderá utilizar tempo futuro e não necessita ter motivação ou justificativa.\\ +Deve conter: +\begin{enumerate*}[alpha)] + \item O QUE será feito - descrição e objetivos. + \item COMO será feito - metodologia. + \item Resultados esperados. +\end{enumerate*} +} + +\reqformtitle{Formul\'{a}rio de Requerimento de Matr\'{i}cula} +\reqformopening{Ilm\tccore@@ref{coursecoord}{article}. Sr\tccore@@ref{coursecoord}{narticle}.\par + Coordenador\tccore@@ref{coursecoord}{narticle} da Comissão de Graduação do Curso em \tcdef@cover@course {da \tcdef@cover@universityacronym\ }} +%\reqformopening{algo} + +\reqformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc@studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} neste período letivo no curso \emph{\tcdef@cover@course\ }, desta universidade, portador\tccore@@ref{student}{narticle} do cartão de identificação n$^o$ \tc@studentAID\ vem por meio desta solicitar matrícula na atividade de ensino de \tcdef@forms@formstitle} + +\coadvisorformtitle{Requerimento de Autorização de Co-Orientação} +\coadvisorformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc@studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} na atividade de TCC neste período letivo, vem por meio desta solicitar autorização para registro de co-orientador de TCC, conforme justificativa abaixo.} + +\formsbrieflabel{Resumo} + +\formsstudentemaillabel{Email d\tccore@@ref{student}{article} Alun\tccore@@ref{student}{article}} + +\formsadvisoremaillabel{Email d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}} + +\formsreasonlabel{Justificativa} + + +\examformtitle{Formul\'{a}rio de Avalia\c{c}\~{a}o} + +\examformdesc{A nota (variando de zero a dez) atribuída por cada membro da banca examinadora será dada considerando o desempenho d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} nos 3 pontos apresentados na tabela abaixo.} + +\examformnoteslabel{Observações} + +\examformnotes{\ \\Posteriormente, \tccore@@ref{TCCcoord}{article} professor\tccore@@ref{TCCcoord}{narticle} coordenador\tccore@@ref{TCCcoord}{narticle} calculará a nota final atribuída por cada membro da banca examinadora, de acordo com a seguinte ponderação:\\[2mm] {\bf Nota Final Banca = \tc@TCCpointAweight\ x \tc@TCCpointAlabel\ + \tc@TCCpointBweight\ x \tc@TCCpointBlabel\ + \tc@TCCpointCweight\ x \tc@TCCpointClabel\ } \\[2mm] A média final da atividade será dada pela média das notas finais (calculadas com a expressão acima) atribuidas por cada um dos membros da banca examinadora.} + +\examboardformtitle{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} + +\examboardformdesc{Aprovo o Relatório Parcial e nominata da Banca Examinadora acima relacionada.} + +\formsboardtitle{Banca Examinadora} + +\advisorapprovalformtitle{Formulário de Aprovação para Apresentação} + +\advisorapprovalformdesc{{\bf Parecer d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}}\footnote{Preenchimento Obrigatório}} + +\advisorapprovalformdescB{Aprovo a versão final do trabalho submetido pel\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} e considero \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} para apresentação.} + +\rectifyapprovalformtitle{Formulário de Aprovação das Correções} + +\rectifyapprovalformdesc{\begin{description} +\item[Observação 1:] A nota final será a já atribuída pela Banca Examinadora no momento da Defesa. Caso a versão final corrigida do trabalho mais este formulário não sejam entregues até a data estipulada, o conceito do aluno passará a ser {\bf D}. +\item[Observação 2:] A assinatura d\tccore@@ref{advisor}{article} orientador\tccore@@ref{advisor}{narticle} é obrigatória, entretanto a assinatura dos membros da banca só é necessária caso o(a) mesmo(a) tenha marcado a opção "$\Box$ Revisarei o trabalho depois de corrigido" no \emph{Formulário de Correções}. +\end{description}} + +\receiptformtitle{Recibo de entrega de cópia da versão final do Trabalho de Conclusão} + +\receiptformfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho final e após encaminhar ao \tcdef@cover@secretaryacronym .} + +\receiptformdesc{Declaro que encontra-se em minha posse cópia da versão final do Trabalho de Conclusão de Curso em \tcdef@cover@course\ d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} } + + +\reviewformtitle{Formulário de Correções} +\reviewformdesc{Correções: \parbox[t]{.8\textwidth}{ + \begin{description}[tcc,noitemsep] + \item[$\Box$] Nenhuma + \item[$\Box$] Ortográfica + \item[$\Box$] Regras de Escrita + \item[$\Box$] Equações + \item[$\Box$] Resumo + \item[$\Box$] Abstract + \item[$\Box$] Índice + \item[$\Box$] Introdução + \item[$\Box$] Conclusões + \item[$\Box$] Corpo do Trabalho + \item[$\Box$] Resultados + \item[$\Box$] Adicionar mais exemplos + \item[$\Box$] Figuras + \item[$\Box$] Tabelas + \item[$\Box$] {\bf Reescrever tudo}\footnotemark[2] + \item[$\Box$] Outras: \\ + \begin{tabular}{p{0.7\textwidth}} + ~\\\hline + ~\\\hline + ~\\\hline + ~\\\hline + \end{tabular}\\[-1mm] + \item[$\Box$] {\bf Revisarei o trabalho depois de corrigido}%\footnotemark[2] + \end{description}} +} + +\reviewformfootnoteB{Neste caso \tccore@@ref{student}{article} alun\tccore@@ref{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.} + +\reviewformfootnote{\tcdef@forms@formsfootnote\ Após a apresentação, retornar este à coordenação do TCC.} + +\formsrectifyOKdesc{Correções satisfatórias: \hspace*{1cm}$\Box$\ sim\hspace*{2cm}$\Box$\ não} + +\TCCpointsweight{0.35}{0.35}{0.3} +\TCCpointslabel{Conteúdo}{Trab. Escrito}{Apresentação} diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls new file mode 100644 index 00000000000..5686f2fcceb --- /dev/null +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls @@ -0,0 +1,211 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca} +\def\tc@tmp@altpackname{ufrgscca} +\def\tc@tmp@packdesc{UFRGS/CCA class} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\RequirePackage{etex} +\RequirePackage{etoolbox} +\RequirePackage{lmodern}% + +\RequirePackage[T1]{fontenc} +\RequirePackage[utf8]{inputenc} + +%============================================================================== +% Declaração de opções +%============================================================================== +\DeclareKeys[tc]{ + tocdepth.usage = load, + tocdepth.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + secdepth.usage = load, + secdepth.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + + english.usage = load, + english.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\OptionNotUsed}, + relnum.usage = load, + relnum.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\PassOptionsToPackage{\CurrentOption}{ufrgscca-lists}\OptionNotUsed}, + oneside.usage = load, + oneside.code = {\AtEndOfClass{\@twosidefalse}\OptionNotUsed}, + strict-abnt.usage = load, + strict-abnt.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + repeatfields.usage = load, + repeatfields.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + chapternopagenum.usage = load, + chapternopagenum.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + + nomicrotype.usage = load, + nomicrotype.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + + showframes.usage = load, + showframes.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + showlabes.usage = load, + showlabes.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + + xlists.usage = load, + xlists.if = tc@xlists, + xpacks.usage = load, + xpacks.if = tc@xpacks, + + nolocal.usage = load, + nolocal.if = tcif@nolocal, + + nofontwarning.usage = load, + nofontwarning.if = @nofontwarning, + + report.usage = load, + report.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}}, + internship.usage = load, + internship.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}}, + + texlive.usage = load, + texlive.if = tcif@texlive, + overleaf.usage = load, + overleaf.if = tcif@overleaf, + miktex.usage = load, + miktex.if = tcif@miktex, + + dctools.usage = load, + dctools.if = tcif@dctools, +} + +\DeclareUnknownKeyHandler[tc]{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessKeyOptions[tc]\relax + +\iftcif@dctools + \LoadClass[12pt]{article} +\else + \LoadClass[12pt,twoside,openright]{report} +\fi + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{silence}% +\if@nofontwarning% + \WarningFilter{latexfont}{Font shape}% + \WarningFilter{latexfont}{Size substitutions with differences}% + \WarningFilter{latexfont}{Some font shapes were not available}% +\fi% + + +\RequirePackage{ufrgscca-abnt} + +\iftc@xlists\RequirePackage{ufrgscca-lists}\fi + +\RequirePackage{ufrgscca-gen} +\RequirePackage{ufrgscca-cover} +\RequirePackage{ufrgscca-core} + + +\iftc@xpacks + \RequirePackage{relsize} + \RequirePackage{keyval,graphicx} + \RequirePackage{mathtools} + \RequirePackage{empheq} + \RequirePackage{mathrsfs, amsfonts,amssymb}% + \RequirePackage{amsthm}% + \RequirePackage{extarrows}% + \RequirePackage{mathfixs}% + \RequirePackage{bigdelim}% + \RequirePackage[american,siunitx,cuteinductors,smartlabels,arrowmos,EFvoltages,betterproportions]{circuitikz}% + \usetikzlibrary{fit}% + \usetikzlibrary{math}% + \usetikzlibrary{calc}% + \usetikzlibrary{shapes.geometric} %needed for the triangle% + \usetikzlibrary{shapes.misc} %needed for the triangle% + \usetikzlibrary{shapes.multipart} + \usetikzlibrary{graphs}% + \usetikzlibrary{3d}% + \usetikzlibrary{positioning}% + \usetikzlibrary{shadows}% + \usetikzlibrary{babel} + \RequirePackage{steinmetz}% +\fi + + +\WarningFilter{hyperref}{Option `pdftex' has already} + +\RequirePackage[hidelinks,hypertexnames=false]{hyperref}% +%% +%% A few (hyperref related) commands +%% +\NewDocumentCommand{\autonameref}{O{, }mO{\space}}{\autoref{#2}#1\nameref{#2}#3} +\gdef\annexref#1{\hyperref[#1]{\defannexname\ \ref*{#1}}} +\NewDocumentCommand{\autoannexref}{O{, }mO{\space}}{\annexref{#2}#1\nameref{#2}#3} + + +\iftcif@english% + \input{ufrgscca-en-core.def}% +\else% + \input{ufrgscca-ptBR-core.def}% +\fi% + + +\iftcif@nolocal% +\else% + \IfFileExists{local.tex}{\input{local.tex}}{}% + \tccore@emptyfields% +\fi + + |