summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-12-03 03:04:15 +0000
committerNorbert Preining <norbert@preining.info>2023-12-03 03:04:15 +0000
commitde2c50ca7889fda13da11c1ccf6bdbd199ba8c2b (patch)
tree69444212f26f60b134d59afa61fe228d187d69a0 /macros/latex/contrib
parent22b1d3c5626f07acabd90449efb7f810e9bbaff7 (diff)
CTAN sync 202312030304
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/covington/README3
-rw-r--r--macros/latex/contrib/covington/covington.pdfbin552996 -> 558128 bytes
-rw-r--r--macros/latex/contrib/covington/covington.sty44
-rw-r--r--macros/latex/contrib/covington/covington.tex15
-rw-r--r--macros/latex/contrib/ufrgscca/README.md7
-rw-r--r--macros/latex/contrib/ufrgscca/doc/ufrgscca.pdfbin588653 -> 588902 bytes
-rw-r--r--macros/latex/contrib/ufrgscca/doc/ufrgscca.tex31
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty18
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty261
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty20
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex80
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty20
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty17
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex440
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex80
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca.cls10
22 files changed, 640 insertions, 442 deletions
diff --git a/macros/latex/contrib/covington/README b/macros/latex/contrib/covington/README
index 9bc61de3e3..ad9431e7cd 100644
--- a/macros/latex/contrib/covington/README
+++ b/macros/latex/contrib/covington/README
@@ -31,6 +31,9 @@ The package consists of the following files:
== CHANGES ==
+* Version 2.13 (2023-12-02)
+ - Fix example numbering with chapters (#16).
+
* Version 2.12 (2023-06-25)
- Fix issue with redefinitions of \glosslineone/\glosslinetwo/\glosslinethree,
which could get lost along the text (#13).
diff --git a/macros/latex/contrib/covington/covington.pdf b/macros/latex/contrib/covington/covington.pdf
index 318cddfef2..d0963ed7ef 100644
--- a/macros/latex/contrib/covington/covington.pdf
+++ b/macros/latex/contrib/covington/covington.pdf
Binary files differ
diff --git a/macros/latex/contrib/covington/covington.sty b/macros/latex/contrib/covington/covington.sty
index b024830bfc..cc17661c09 100644
--- a/macros/latex/contrib/covington/covington.sty
+++ b/macros/latex/contrib/covington/covington.sty
@@ -42,8 +42,8 @@
%%% Metadata
%%%
-\def\filedate{2023/06/25}
-\def\fileversion{2.12}
+\def\filedate{2023/12/02}
+\def\fileversion{2.13}
\def\filename{covington.sty}
% Macro to issue warnings
@@ -342,6 +342,10 @@
% 2023.06.04 (v. 2.11): judge marks
\newcommand*\cov@judge@fs{\normalfont\upshape}
+% Track whether example format was changed via template
+\newif\ifexfmtchanged
+\newif\ifexfmtgchanged
+
\DeclareKeys[covexpl]
{
% font settings
@@ -363,7 +367,10 @@
% addnumbersep
addnumbersep.code = { \setlength{\examplenumbersep}{#1} },
% numberformat={template}
- numberformat.code = { \cov@parse@number@template{#1}{exfmt}{covexnumber} },
+ numberformat.code = {
+ \cov@parse@number@template{#1}{exfmt}{covexnumber}
+ \exfmtchangedtrue
+ },
% fnnumberformat={template}
fnumberformat.code = { \cov@parse@number@template{#1}{fnexfmt}{covexnumberfn} },
% judge=text
@@ -387,6 +394,11 @@
\newenvironment{covexample}[1][]{%
\@cov@insingleextrue%
\let\cov@judge@ex@text\cov@judge@ex@text@global%
+ \ifexfmtgchanged%
+ \exfmtchangedtrue%
+ \else
+ \exfmtchangedfalse%
+ \fi%
\SetKeys[covexpl]{#1}%
\begin{covexamples}
\@ifundefined{cov@judge@ex@text}{\item}{\item<\cov@judge@ex@text>}%
@@ -469,12 +481,19 @@
\def\cov@judge@marker{}
+\def\covchapexsep{.}
+
\newenvironment{covexamples}[1][]{% % define "examples" environment
\if@cov@insubex%
\let\cov@judge@ex@text\relax%
\else%
\if@cov@insingleex\else%
\let\cov@judge@ex@text\cov@judge@ex@text@global%
+ \ifexfmtgchanged%
+ \exfmtchangedtrue%
+ \else
+ \exfmtchangedfalse%
+ \fi%
\fi%
\fi%
\ifx{#1}{\empty}\else\SetKeys[covexpl]{#1}\fi%
@@ -524,7 +543,9 @@
\usecounter{covex}% % sets it to zero, unwantedly
\setcounter{covex}{\arabic{covexsave}}% % restores previous value
\else
- \renewcommand{\theequation}{\exfmt{equation}}%
+ \ifexfmtchanged%
+ \renewcommand{\theequation}{\ifnum\c@chapter>\z@\thechapter\covchapexsep\fi\exfmt{equation}}%
+ \fi%
\setcounter{covexsave}{\arabic{equation}}%
\usecounter{equation}% % sets it to zero, unwantedly
\setcounter{equation}{\arabic{covexsave}}% % restores previous value
@@ -612,7 +633,10 @@
% addnumbersep
addsubnumbersep.code = { \setlength{\subexamplenumbersep}{#1} },
% numberformat={template}
- numberformat.code = { \cov@parse@number@template{#1}{exfmt}{covexnumber} },
+ numberformat.code = {
+ \cov@parse@number@template{#1}{exfmt}{covexnumber}
+ \exfmtchangedtrue
+ },
% fnnumberformat={template}
fnumberformat.code = { \cov@parse@number@template{#1}{fnexfmt}{covexnumberfn} },
% subnumberformat={template}
@@ -690,6 +714,11 @@
\let\cov@xp\relax%
\let\cov@xpst\relax%
\let\cov@judge@ex@text\relax%
+ \ifexfmtgchanged%
+ \exfmtchangedtrue%
+ \else
+ \exfmtchangedfalse%
+ \fi%
\ifx{#1}{\empty}\else\SetKeys[covsubexpl]{#1}\fi%
\begin{covexample}%
\@ifundefined{cov@sxp}{}{\bgroup\subexpreamblefs\cov@sxp\egroup}% insert preamble if given
@@ -755,7 +784,10 @@
% addsubnumbersep
addsubnumbersep.code = { \setlength{\subexamplenumbersep}{#1} },
% numberformat={template}
- numberformat.code = { \cov@parse@number@template{#1}{exfmt}{covexnumber} },
+ numberformat.code = {
+ \cov@parse@number@template{#1}{exfmt}{covexnumber}
+ \exfmtgchangedtrue
+ },
% fnnumberformat={template}
fnumberformat.code = { \cov@parse@number@template{#1}{fnexfmt}{covexnumberfn} },
% subnumberformat={template}
diff --git a/macros/latex/contrib/covington/covington.tex b/macros/latex/contrib/covington/covington.tex
index 81911c6001..696bfe139c 100644
--- a/macros/latex/contrib/covington/covington.tex
+++ b/macros/latex/contrib/covington/covington.tex
@@ -97,8 +97,8 @@
%
% Titling
%
-\def\pversion{Version 2.12}
-\def\pdate{June 25, 2023}
+\def\pversion{Version 2.13}
+\def\pdate{December 2, 2023}
\title{\textbf{The \cvt\ Package\\\Large Macros for Linguistics}}
\author{Michael A. Covington \and J\"urgen Spitzm\"uller\thanks{Current maintainer.
@@ -129,7 +129,7 @@ for typing some special notations common in linguistics.%
\footnote{The package has a long history. It started off as a collection of private macros back in the
\LaTeX\ 2.09 days and was initially released as \texttt{covingtn.sty} (following the old 8.3 \textsc{fat}
file name limit). In em\TeX\ under \textsc{ms-dos}, the file was distributed as \texttt{covingto.sty}.
-Eventually, it has been renamed to \cvt\ and adapted to \LaTeXe. The current version requires a resonably
+Eventually, it has been renamed to \cvt\ and adapted to \LaTeXe. The current version requires a reasonably
recent version of \LaTeXe, as it employs some newer kernel features.}
To use \cvt, load the package as usual by adding the command
@@ -364,6 +364,10 @@ The \jenv{example} environment provides the following options which also allow f
For instance, \verb|numberformat={[a.]}| results in lower alphabetic numbering followed by a dot,
embraced in brackets.
+
+ Note that if the equation counter is used with chapters, this resets the separator between chapter
+ number and example number to the default (a dot). To override this, you might redefine the macro
+ \jcsmacro{covchapexsep}, which is predefined to \verb|{.}|.
\item[\joption{fnnumberformat=\{\jparam{template}\}}] Default: \verb|{(i)}|.
The format of the example number if \joption{fnexamplecounter=own} or \joption{fnexamplecounter=own-reset}
and example is in a footnote. For the template format, see \joption{numberformat}.
@@ -1643,6 +1647,11 @@ it.
\section{Release history}
+\subsection*{2.13 (2023 December 2)}
+\begin{itemize}
+ \item Fix example numbering with chapters.
+\end{itemize}
+
\subsection*{2.12 (2023 June 25)}
\begin{itemize}
\item Fix issue with redefinitions of \jcsmacro{glosslineone}\slash\jcsmacro{glosslinetwo}\slash
diff --git a/macros/latex/contrib/ufrgscca/README.md b/macros/latex/contrib/ufrgscca/README.md
index 9ce0b4dcf1..16b72a2b73 100644
--- a/macros/latex/contrib/ufrgscca/README.md
+++ b/macros/latex/contrib/ufrgscca/README.md
@@ -107,7 +107,12 @@ The Current Maintainer of this work is Alceu Frigeri
## Changelog
-* Version 2.1 (this)
+* Version 2.2 (this)
+ - fixed the reports table broken by last update :/
+ - added an option to sort student's list (-coord) by presentation's date
+ - further code clean up
+
+* Version 2.1
- A few typos corrected
- better error handling
- a bit of code clean up (private macro/functions only)
diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
index b6146a3339..b00760ede4 100644
--- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
+++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
Binary files differ
diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
index 3f27431154..9b5171802b 100644
--- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
+++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
@@ -15,7 +15,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -81,7 +81,7 @@
\section{Introduction}
\emph{ABNT} rules can be quite challenging at times (read: bibliography style/references) and sometimes just odd (line spacing, front matter, page layout), nevertheless it is a \emph{Brazilian Standard} for typography whose students at UFRGS should grow cherished to follow.
- In short, as of version \PkgInfo{ufrgscca}{version}\space the bundle is composed of a class, \tsobj[pkg]{ufrgscca} (based on \tsobj[pkg]{report} class), which pre-loads, as needed: \tsobj[pkg]{ufrgscca-abnt, ufrgscca\-core, ufrgscca-cover, ufrgscca-forms, ufrgscca-lists}. The packages \tsobj[pkg]{ufrgscca-curr, ufrgscca-coord, ufrgscca-ppc} need to be loaded explicitly, thought.
+ In short, as of version \PkgInfo{ufrgscca}{version}\space the bundle is composed of a class, \tsobj[pkg]{ufrgscca} (based on \tsobj[pkg]{report} class), which pre-loads, as needed: \tsobj[pkg]{ufrgscca-abnt, ufrgscca\-core, ufrgscca-cover, ufrgscca-lists}. The packages \tsobj[pkg]{ufrgscca-forms,ufrgscca-curr, ufrgscca-coord, ufrgscca-ppc} need to be loaded explicitly, thought.
\begin{tsremark}[N.B.:]
This bundle requires a quite recent \LaTeX2e kernel, at least as recent as June 2022, which allows to declare package options using the \tsobj[key]{key}~=\tsobj[key]{value} system and declare commands with \tsmacro{\NewDocumentCommand}{}, out-of-the-box.
@@ -220,7 +220,7 @@ Take note that \tsobj[pkg]{biblatex} is loaded with the \textbf{\tsobj[option]{b
\describe {repeatfields} { in case of authors with multiple publications, their names will be repeated for each entry. In the default setting the author's name is written only in the first entry, and replaced by underscores in the other entries.}
- \describe {yearsonly} { Approval page, at it's bottom, will display the years only (instead of the default mouth year construct).}
+ \describe {yearsonly} { In some cover pages (like the ones for TCC) the bottom of the approval's page, will only displays the year (instead of the default mouth year construction).}
\describe {nomicrotype} { in some rare cases, \tsobj[pkg]{microtype} might hurt page layout, this allows the suppression of \tsobj[pkg]{microtype}.}
@@ -298,15 +298,17 @@ Creates those \emph{chapter like} lists, like `List of Symbols' or `List of acro
\end{codestore}
\tscode*{d.newchapenv}
-\begin{codedescribe}{\date,\today,\monthname}
+\begin{codedescribe}[code,update=2023/11/30]{\pubdate,\today,\monthname}
\begin{codesyntax}%
- \tsmacro{\date}[day]{month,year}
+ \tsmacro{\pubdatedate}[day]{month,year}
\tsmacro{\today}{}
\tsmacro{\monthname}{}
\end{codesyntax}
\end{codedescribe}
-The command \tsmacro{\date}{} is redefined, to allow a separation between the many arguments \tsobj[meta]{day}, \tsobj[meta]{month} and \tsobj[meta]{year}. If not called by the user it \emph{defaults} to current month / year. \tsmacro{\today}{} returns the current \emph{locale} date, whilst \tsmacro{\monthname}{} returns the \emph{locale} name of the current month.
-
+\tsmacro{\pubdate}{} sets the publication date. If not called by the user it \emph{defaults} to current month / year. \tsmacro{\today}{} returns the current \emph{locale} date, whilst \tsmacro{\monthname}{} returns the \emph{locale} name of the current month.
+\begin{tsremark}[N.B.:]
+ If the package option \tsobj[option]{oldrenews} is used, the command \tsobj{\date} will be redefined as an allias to \tsobj{\pubdate}.
+\end{tsremark}
\subsection{Environments}
\begin{codedescribe}[env,new=2023/11/18]{mainabstract}
@@ -1002,7 +1004,7 @@ One can (should) use the commands listed at \autonameref{core-commands}[], and t
\tsmacro{\checkdef}{LxCy,check-item,check-text}
\tsmacro{\checklist}{check-items-list}
\end{codesyntax}
-Whereas one has a '4x5 matrix' (\tsobj[meta]{checkLC} being one of L1C1...L1C5, ... , L4C1...L4C5). \tsobj[meta]{chek-item} is a free identifier (to be used with the \tsmacro{\checklist}{}), and \tsobj[meta]{check-text} the text to appear in the 'check list report'. Note this is a list \textbf{per activity} (the current one being set).
+Whereas one has a '5x5 matrix' (\tsobj[meta]{checkLC} being one of L1C1...L1C5, ... , L5C1...L5C5). \tsobj[meta]{chek-item} is a free identifier (to be used with the \tsmacro{\checklist}{}), and \tsobj[meta]{check-text} the text to appear in the 'check list report'. Note this is a list \textbf{per activity} (the current one being set).
\tsmacro{\checklist}{} set's those items for the current student. \tsobj[marg]{check-items-list} is a comma separated list of \tsobj[marg]{check-item}.
@@ -1063,13 +1065,13 @@ These are a set of auxiliary conditionals, for instance, \tsobj{\StudentCase} wi
\begin{codedescribe}[code,new=2023/11/30]{\professor,\advisorprof,\coadvisorprof,\examinerprof,\altexaminerprof}
\begin{codesyntax}%
- \tsobj[code]{\professor}\tsargs[oarg]{prof-ref}\tsargs[marg]{last,first}\tsargs[oarg]{gender}
+ \tsobj[code]{\professor}\tsargs[oarg]{prof-ref}\tsargs[marg]{last,first,email,phone}\tsargs[oarg]{gender}
\tsmacro{\advisorprof}{prof-ref}
\tsmacro{\coadvisorprof}{prof-ref}
\tsmacro{\examinerprof}{prof-ref}
\tsmacro{\altexaminerprof}{prof-ref}
\end{codesyntax}
-\tsobj{\professor} creates a \tsobj[oarg]{prof-ref} alias to a person's full name. \tsobj{\advisorprof} expands to a call for \tsobj{\advisor} using the properties stored by \tsobj{\professor}. Similarly, \tsobj{\coadvisorprof,\examinerprof,\altexaminerprof} results in call to \tsobj{\coadvisor,\examinerprof,\altexaminerprof} respectively.
+\tsobj{\professor} creates a \tsobj[oarg]{prof-ref} alias to a person's full name. \tsobj{\advisorprof} expands to a call for \tsobj{\advisor,\advisorinfo} using the properties stored by \tsobj{\professor}. Similarly, \tsobj{\coadvisorprof,\examinerprof,\altexaminerprof} results in call to \tsobj{\coadvisor,\coadvisorinfo,\examiner,\examinerinfo,\altexaminer,\altexaminerinfo} respectively.
\end{codedescribe}
\begin{tsremark}
\tsobj{\professor} creates/uses an auxiliary \tsobj[pkg]{starray}, just mapping names for users convenience.
@@ -1082,7 +1084,7 @@ These are a set of auxiliary conditionals, for instance, \tsobj{\StudentCase} wi
\tsmacro{\boardobs}{obs}
\tsmacro{\semester}{semester}
\end{codesyntax}
- \tsmacro{\boardobs}{} allows to add an observation (\tsobj[meta]{obs}) for the 'boards schedule report', and \tsmacro{\semester} sets the current semester value.
+ \tsmacro{\boardobs}{} allows to add an observation (\tsobj[meta]{obs}) for the 'boards schedule report', and \tsobj{\semester} sets the current semester value.
\end{codedescribe}
@@ -1212,7 +1214,7 @@ To set the \tsobj[meta]{local}, \tsobj[meta]{date} and \tsobj[meta]{time} of a s
\begin{codesyntax}%
\tsmacro{\distinctboard}{}
\end{codesyntax}
-Normally, the default, it's assumed that the student's advisor will also be a member of the student's exam board. For the ones in which this doesn't holds true, one should use the \tsmacro{\DistinctBoard}{} after setting a student's name (via \tsmacro{\student}{}) and before setting its advisor name (via \tsmacro{\advisor}{}).
+Normally, the default, it's assumed that the student's advisor will also be a member of the student's exam board. For the ones in which this doesn't holds true, one should use the \tsmacro{\distinctboard}{} after setting a student's name (via \tsmacro{\student}{}) and before setting its advisor name (via \tsmacro{\advisor}{}).
\end{codedescribe}
For example:
@@ -1249,8 +1251,9 @@ Quite obvious, this set the grades given by an examiner (the one defined by the
\begin{codesyntax}%
\tsmacro{\setstudentlist}{listID,list}
\tsmacro{\setstudentlist*}{listID,list}
+ \tsmacro{\setstudentlist+}{listID,list}
\end{codesyntax}
-This command will define/create a list named \tsobj[meta]{listID} composed of a csv \tsobj[meta]{list}~ of student names (as defined by \tsmacro{\Newstudent}{}). The star version sorts the list first (by student's name).
+This command will define/create a list named \tsobj[meta]{listID} composed of a csv \tsobj[meta]{list}~ of student hashes (as defined by \tsmacro{\student}[student-hash]{...}). The star version sorts the list by student's full name, the \emph{plus} version sorts the list by student's presentation date.
\end{codedescribe}
\begin{codedescribe}{\tcreports}
@@ -1273,7 +1276,7 @@ This command will define/create a list named \tsobj[meta]{listID} composed of a
\describe {revforms-II} { per student reviews forms, TCC-II.}
\describe {referral-II} { per student referral letters, TCC-II.}
\describe {boards} { exam board dates, TCC-II.}
- \describe {studentlist} { a simple student list.}
+ \describe {attendance} { a simple student's attendance list.}
\describe {cocertificate} { per student coadvisor certificate letter (if any).}
% \describe {checklist} { a students check list.}
\end{describelist}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
index dce7de584a..9eb2b1b127 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-abnt}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA ABNT layout}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-abnt} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30},
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02},
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~ abnt~layout}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
@@ -782,7 +782,7 @@
%==============================================================================%
% date redefinition (separated month and year)
%==============================================================================%
-\RenewDocumentCommand{\date}{O{\number\day}mm}{%
+\NewDocumentCommand{\pubdate}{O{\number\day}mm}{%
\int_compare:nNnTF {#1} < {10}
{
\SetConsts{%
@@ -799,7 +799,11 @@
}
}
}%
-\date{\monthname}{\number\year}%
+\pubdate{\monthname}{\number\year}%
+\bool_if:NT \l__ufrgscca_oldrenews_bool
+ {
+ \RenewDocumentCommand{\date}{O{\number\day}mm}{\pubdate[#1]{#2}{#3}}%
+ }
\bool_if:NTF \l__ufrgscca_english_bool
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
index fcbb674815..e1fa48bde0 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
index a75f798851..3f92982697 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
index a232b45891..2ac0698014 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-coord}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA coord commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-coord} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30},
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02},
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~ coordination~ report~ commands}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
@@ -71,6 +71,9 @@
\keys_define:nn { ufrgscca / coord }
{
+ attendance. bool_set:N = \l__ufrgscca_attendance_bool ,
+ attendance. usage:n = general ,
+
calendar-I. bool_set:N = \l__ufrgscca_calendarI_bool ,
calendar-I. usage:n = general ,
@@ -136,47 +139,63 @@
gender = ,
}
-\NewDocumentCommand{\professor}{O{}mmO{}}
+\NewDocumentCommand{\professor}{O{}mmmmO{}}
{
\starray_new_term:nn {prof}{#1}
\starray_set_from_keyval:nn {prof}
{
last = {#2},
first = {#3},
- gender = {#4},
+ email = {#4},
+ phone = {#5},
+ gender = {#6},
}
}
-\cs_new_protected:Npn \__ufrgscca_prof_ref_set:nnnn #1#2#3#4
- { #1 {#2}{#3}[#4] }
+\cs_new_protected:Npn \__ufrgscca_prof_ref_set:nnnnnnn #1#2#3#4#5#6#7
+ {
+ #1 {#3}{#4}[#5]
+ #2 {}{}{#6}{#7}
+ }
-\cs_generate_variant:Nn \__ufrgscca_prof_ref_set:nnnn {eeee}
+\cs_generate_variant:Nn \__ufrgscca_prof_ref_set:nnnnnnn {nneeeee}
-\cs_new_protected:Npn \__ufrgscca_prof_ref:nn #1#2
+\cs_new_protected:Npn \__ufrgscca_prof_ref:nnn #1#2#3
{
- \starray_set_iter_from_hash:nnTF {prof}{#2}
+ \starray_set_iter_from_hash:nnTF {prof}{#3}
{
\starray_term_syntax:n {prof}
- \__ufrgscca_prof_ref_set:eeee {#1}{\starray_parsed_get_prop:n{last}}{\starray_parsed_get_prop:n{first}}{\starray_parsed_get_prop:n{gender}}
+ \__ufrgscca_prof_ref_set:nneeeee {#1}{#2}
+ {\starray_parsed_get_prop:n{last}}{\starray_parsed_get_prop:n{first}}{\starray_parsed_get_prop:n{gender}}
+ {\starray_parsed_get_prop:n{email}}{\starray_parsed_get_prop:n{phone}}
}
{
- #1{definido:(#2)}{não}
+ #1{definido:(#3)}{não}
}
}
\NewDocumentCommand{\advisorprof}{m}
- { \__ufrgscca_prof_ref:nn {\advisor}{#1} }
+ { \__ufrgscca_prof_ref:nnn {\advisor}{\advisorinfo}{#1} }
\NewDocumentCommand{\coadvisorprof}{m}
- { \__ufrgscca_prof_ref:nn {\coadvisor}{#1} }
+ { \__ufrgscca_prof_ref:nnn {\coadvisor}{\coadvisorinfo}{#1} }
\NewDocumentCommand{\examinerprof}{m}
- { \__ufrgscca_prof_ref:nn {\examiner}{#1} }
+ { \__ufrgscca_prof_ref:nnn {\examiner}{\examinerinfo}{#1} }
\NewDocumentCommand{\altexaminerprof}{m}
- { \__ufrgscca_prof_ref:nn {\altexaminer}{#1} }
-
+ { \__ufrgscca_prof_ref:nnn {\altexaminer}{\altexaminerinfo}{#1} }
+%%% from -ppc
+\cs_new:Npn \__ufrgscca_def_colorpair:n #1
+ {
+ \colorlet{light#1}{white!85!#1}
+ \colorlet{dark#1}{#1!70!black!100}
+ \colorlet{darker#1}{#1!40!black!100}
+ }
+\__ufrgscca_def_colorpair:n {red}
+\__ufrgscca_def_colorpair:n {green}
+\__ufrgscca_def_colorpair:n {blue}
\NewDocumentCommand{\ActivitySetNewEvent}{O{}mm}{
\tl_if_blank:nTF {#1}
@@ -267,12 +286,14 @@
\tl_new:N \l__ufrgscca_tmpb_tl
\tl_new:N \l__ufrgscca_tmpc_tl
\tl_new:N \l__ufrgscca_tmpd_tl
+\tl_new:N \l__ufrgscca_tmpe_tl
+\prg_generate_conditional_variant:Nnn \str_case:nn {en}{T,F,TF}
\cs_new_protected:Npn \__ufrgscca_studentgrade:
{
\starray_term_syntax:n {student}
\bool_if:nTF {\starray_parsed_get_prop:n {flag-null}}
{
- \starray_gset_prop:nnn {student}{grade}{D*}
+ \starray_gset_prop:nnn {student}{grade}{\color{red}D*}
}
{
%(\DataFields{student}{name})\par
@@ -282,7 +303,8 @@
\tl_set:Ne \l__ufrgscca_tmpb_tl {\starray_parsed_get_prop:n {grade}}
\starray_term_syntax:n {student.reviewer[3]}
\tl_set:Ne \l__ufrgscca_tmpc_tl {\starray_parsed_get_prop:n {grade}}
- \str_case:nnF {\starray_parsed_get_prop:n {gradetype}}
+ \tl_set:Ne \l__ufrgscca_tmpe_tl {\starray_parsed_get_prop:n {gradetype}}
+ \str_case:enF {\l__ufrgscca_tmpe_tl}
{
{1}
{
@@ -295,7 +317,9 @@
{\fpeval{round(((\l__ufrgscca_tmpa_tl + \l__ufrgscca_tmpb_tl + \l__ufrgscca_tmpc_tl)/3),2,1)}}
}
}
- { \tl_set:Nn \l__ufrgscca_tmpd_tl {0} }
+ { \tl_set:Nn \l__ufrgscca_tmpd_tl {7.99}
+ \starray_gset_prop:nne {student}{reason}{\l__ufrgscca_tmpa_tl-\l__ufrgscca_tmpb_tl-\l__ufrgscca_tmpc_tl-\l__ufrgscca_tmpe_tl}
+ }
\starray_gset_prop:nne {student}{gradeavrg}{\l__ufrgscca_tmpd_tl}
\fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeC}}
@@ -324,46 +348,99 @@
\starray_gset_prop:nnn {student}{flag-graded}{\c_true_bool}
}
-
-\cs_new_protected:Npn \__ufrgscca_set_timeslot:nnnn #1#2#3#4
+\cs_new_protected:Npn \__ufrgscca_set_timeslot:nnnnn #1#2#3#4#5
{
\starray_gset_from_keyval:nn {student}
{
board-local = {#1} ,
board-time = {#2} ,
board-date = {#3} ,
+ board-datetime = {#5} ,
}
\SetConsts {
date:#3 = {\__ufrgscca_weekday:n {#4}} ,
}
}
-\cs_generate_variant:Nn \__ufrgscca_set_timeslot:nnnn {nnee}
+\cs_generate_variant:Nn \__ufrgscca_set_timeslot:nnnnn {neeee}
+\cs_generate_variant:Nn \int_set:Nn {Ne}
-\seq_new:N \l__ufrgscca_cal_seq
+\seq_new:N \l__ufrgscca_date_seq
+\seq_new:N \l__ufrgscca_time_seq
\newcount\l__ufrgscca_day_counter
\newcount\l__ufrgscca_weekday_counter
-\NewDocumentCommand{\timeslot}{O{}mm}{%%
- \seq_set_split:Nnn \l__ufrgscca_cal_seq {/} {#2}
- \int_case:nnF {\seq_count:N \l__ufrgscca_cal_seq}
- {
- {2}{ \seq_put_right:Ne \l__ufrgscca_cal_seq {\number\year} }
- {3}{}
- }
- {
- \seq_clear:N \l__ufrgscca_cal_seq
- \seq_put_right:Nn \l__ufrgscca_cal_seq {31}
- \seq_put_right:Nn \l__ufrgscca_cal_seq {12}
- \seq_put_right:Ne \l__ufrgscca_cal_seq {\number\year}
- }
- \seq_reverse:N \l__ufrgscca_cal_seq
- \pgfcalendardatetojulian{\seq_use:Nn \l__ufrgscca_cal_seq {-}}{\l__ufrgscca_day_counter}
- \pgfcalendarjuliantoweekday{\the\l__ufrgscca_day_counter}{\l__ufrgscca_weekday_counter}
- \seq_reverse:N \l__ufrgscca_cal_seq
- \seq_pop_right:NN \l__ufrgscca_cal_seq \l_tmpa_tl
-
- \__ufrgscca_set_timeslot:nnee {#1}{#3}{\seq_use:Nn \l__ufrgscca_cal_seq {/}}{\the\l__ufrgscca_weekday_counter}
-}%
+\tl_new:N \l__ufrgscca_cal_datetime_tl
+\int_new:N \l__ufrgscca_day_tmp_int
+\int_new:N \l__ufrgscca_month_tmp_int
+\int_new:N \l__ufrgscca_year_tmp_int
+\int_new:N \l__ufrgscca_hour_tmp_int
+\int_new:N \l__ufrgscca_min_tmp_int
+\cs_generate_variant:Nn \seq_set_split:Nnn {Nen}
+\NewDocumentCommand{\timeslot}{O{}mm}
+ {%%
+ \tl_set:Ne \l_tmpa_tl {\tl_to_str:n{:}}
+ \seq_set_split:Nen \l__ufrgscca_time_seq {\l_tmpa_tl} {#3}
+ \int_case:nnF {\seq_count:N \l__ufrgscca_time_seq}
+ {
+ {2}{
+ \seq_pop_left:NNTF \l__ufrgscca_time_seq \l_tmpa_tl
+ { \int_set:Ne \l__ufrgscca_hour_tmp_int {\l_tmpa_tl} }
+ {}
+ \seq_pop_left:NNTF \l__ufrgscca_time_seq \l_tmpa_tl
+ { \int_set:Ne \l__ufrgscca_min_tmp_int {\l_tmpa_tl} }
+ {}
+ }
+ }
+ {
+ \int_set:Nn \l__ufrgscca_hour_tmp_int {12}
+ \int_set:Nn \l__ufrgscca_min_tmp_int {12}
+ }
+ \seq_clear:N \l__ufrgscca_time_seq
+ \int_compare:nNnTF {\l__ufrgscca_hour_tmp_int} < {10}
+ {\seq_put_right:Ne \l__ufrgscca_time_seq {0 \int_use:N \l__ufrgscca_hour_tmp_int}}
+ {\seq_put_right:Ne \l__ufrgscca_time_seq { \int_use:N \l__ufrgscca_hour_tmp_int}}
+ \int_compare:nNnTF {\l__ufrgscca_min_tmp_int} < {10}
+ {\seq_put_right:Ne \l__ufrgscca_time_seq {0 \int_use:N \l__ufrgscca_min_tmp_int}}
+ {\seq_put_right:Ne \l__ufrgscca_time_seq { \int_use:N \l__ufrgscca_min_tmp_int}}
+
+ \seq_set_split:Nnn \l__ufrgscca_date_seq {/} {#2}
+ \int_case:nnF {\seq_count:N \l__ufrgscca_date_seq}
+ {
+ {2}{ \seq_put_right:Ne \l__ufrgscca_date_seq {\number\year} }
+ {3}{}
+ }
+ {
+ \seq_clear:N \l__ufrgscca_date_seq
+ \seq_put_right:Nn \l__ufrgscca_date_seq {31}
+ \seq_put_right:Nn \l__ufrgscca_date_seq {12}
+ \seq_put_right:Ne \l__ufrgscca_date_seq {\number\year}
+ }
+ \seq_pop_left:NNTF \l__ufrgscca_date_seq \l_tmpa_tl
+ { \int_set:Ne \l__ufrgscca_day_tmp_int {\l_tmpa_tl} }
+ {}
+ \seq_pop_left:NNTF \l__ufrgscca_date_seq \l_tmpa_tl
+ { \int_set:Ne \l__ufrgscca_month_tmp_int {\l_tmpa_tl} }
+ {}
+ \seq_pop_left:NNTF \l__ufrgscca_date_seq \l_tmpa_tl
+ { \int_set:Ne \l__ufrgscca_year_tmp_int {\l_tmpa_tl} }
+ {}
+ \seq_clear:N \l__ufrgscca_date_seq
+ \seq_put_right:Ne \l__ufrgscca_date_seq {\int_use:N \l__ufrgscca_year_tmp_int}
+ \int_compare:nNnTF {\l__ufrgscca_month_tmp_int} < {10}
+ {\seq_put_right:Ne \l__ufrgscca_date_seq {0 \int_use:N \l__ufrgscca_month_tmp_int}}
+ {\seq_put_right:Ne \l__ufrgscca_date_seq { \int_use:N \l__ufrgscca_month_tmp_int}}
+ \int_compare:nNnTF {\l__ufrgscca_day_tmp_int} < {10}
+ {\seq_put_right:Ne \l__ufrgscca_date_seq {0 \int_use:N \l__ufrgscca_day_tmp_int}}
+ {\seq_put_right:Ne \l__ufrgscca_date_seq { \int_use:N \l__ufrgscca_day_tmp_int}}
+
+ \tl_set:Ne \l__ufrgscca_cal_datetime_tl {\seq_use:Nn \l__ufrgscca_date_seq {-} - \seq_use:Nn \l__ufrgscca_time_seq {:}}
+ \pgfcalendardatetojulian{\seq_use:Nn \l__ufrgscca_date_seq {-}}{\l__ufrgscca_day_counter}
+ \pgfcalendarjuliantoweekday{\the\l__ufrgscca_day_counter}{\l__ufrgscca_weekday_counter}
+ \seq_greverse:N \l__ufrgscca_date_seq
+ \seq_gpop_right:NN \l__ufrgscca_date_seq \l_tmpa_tl
+
+ \__ufrgscca_set_timeslot:neeee {#1}{\seq_use:Nn \l__ufrgscca_time_seq {:}}{\seq_use:Nn \l__ufrgscca_date_seq {/}}{\the\l__ufrgscca_weekday_counter}{\l__ufrgscca_cal_datetime_tl}
+ }%
@@ -517,20 +594,36 @@
}
+
+
\tl_new:N \l__ufrgscca_sortA_tl
\tl_new:N \l__ufrgscca_sortB_tl
+\cs_new_protected:Npn \__ufrgscca_seq_sort:nn #1#2
+ {
+ \seq_gsort:cn {l__ufrgscca_#1_seq }
+ {
+ \starray_set_iter_from_hash:nn {student}{##1}
+ \starray_get_prop:nnN {student}{#2} \l__ufrgscca_sortA_tl
+ \starray_set_iter_from_hash:nn {student}{##2}
+ \starray_get_prop:nnN {student}{#2} \l__ufrgscca_sortB_tl
+ \str_compare:eNeTF { \l__ufrgscca_sortA_tl } > { \l__ufrgscca_sortB_tl }
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+ }
+
-\NewDocumentCommand{\setstudentlist}{sO{tcc}mm}{
- \seq_new:c {l__ufrgscca_#3_seq}
- \seq_new:c {l__ufrgscca_#3_ff_seq}
- \seq_new:c {l__ufrgscca_#3_dismiss_seq}
- \seq_new:c {l__ufrgscca_#3_graded_seq}
+\NewDocumentCommand{\setstudentlist}{st+O{tcc}mm}{
+ \seq_new:c {l__ufrgscca_#4_seq}
+ \seq_new:c {l__ufrgscca_#4_ff_seq}
+ \seq_new:c {l__ufrgscca_#4_dismiss_seq}
+ \seq_new:c {l__ufrgscca_#4_graded_seq}
- \clist_map_inline:nn {#4}
+ \clist_map_inline:nn {#5}
{
\starray_set_iter_from_hash:nnT {student}{##1}
{
- \seq_put_right:cn {l__ufrgscca_#3_seq} {##1}
+ \seq_put_right:cn {l__ufrgscca_#4_seq} {##1}
\emptytermifnone{student.advisor}
\emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}]
\emptytermifnone{student.altreviewer}
@@ -538,43 +631,34 @@
}
% \seq_gset_from_clist:cn {l__ufrgscca_#3_seq}{#4}
- \bool_if:nT {#1}
- {
- \seq_gsort:cn {l__ufrgscca_#3_seq }
- {
- \starray_set_iter_from_hash:nn {student}{##1}
- \starray_get_prop:nnN {student}{name} \l__ufrgscca_sortA_tl
- \starray_set_iter_from_hash:nn {student}{##2}
- \starray_get_prop:nnN {student}{name} \l__ufrgscca_sortB_tl
- \str_compare:eNeTF { \l__ufrgscca_sortA_tl } > { \l__ufrgscca_sortB_tl }
- { \sort_return_swapped: }
- { \sort_return_same: }
- }
+ \bool_if:nTF {#1}
+ { \__ufrgscca_seq_sort:nn {#4}{name} }
+ {
+ \bool_if:nT {#2}
+ { \__ufrgscca_seq_sort:nn {#4}{board-datetime} }
}
-
-
- \str_case:nn {#2}
+ \str_case:nn {#3}
{
{tcc}
{
- \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n}
- \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}}
+ \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_grade:n}
+ \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_listclassify:nn {#4}}
}
{tccI}
{
- \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n}
- \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}}
+ \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_grade:n}
+ \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_listclassify:nn {#4}}
}
{tccII}
{
- \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n}
- \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}}
+ \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_grade:n}
+ \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_listclassify:nn {#4}}
}
{intern}
{ %% TO BE IMPLEMENTED !!!
- \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n}
- \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}}
+ \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_grade:n}
+ \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_listclassify:nn {#4}}
}
}
}
@@ -609,6 +693,10 @@
\seq_gset_eq:Nc \l__ufrgscca_baselist_ff_seq {l__ufrgscca_#2_ff_seq}
\seq_gset_eq:Nc \l__ufrgscca_baselist_dismiss_seq {l__ufrgscca_#2_dismiss_seq}
\seq_gset_eq:Nc \l__ufrgscca_baselist_graded_seq {l__ufrgscca_#2_graded_seq}
+
+ \bool_if:NT \l__ufrgscca_attendance_bool
+ { \MakeForm{attendancelist}
+ \MakeForm{attendancelist} }
\bool_if:NT \l__ufrgscca_calendarI_bool
{ \MakeForm{calendar-I} }
@@ -649,7 +737,9 @@
}
\bool_if:NT \l__ufrgscca_referralII_bool
{
- \MakeForm{referral-II}
+ \studentDismissCase
+ {}
+ { \MakeForm{referral-II} }
}
\bool_if:NT \l__ufrgscca_revformsII_bool
{
@@ -740,3 +830,18 @@
\l__ufrgscca_table_tl
}
+\NewDocumentCommand{\CheckList}{mmmO{red}}{
+ \seq_if_empty:cF {l__ufrgscca_baselist_#2_seq}
+ {
+ &\\
+ \multicolumn{#1}{l}{\textbf{\color{#4}#3}}\\\hline
+ \seq_map_inline:cn {l__ufrgscca_baselist_#2_seq}
+ {
+ \studentselect{##1}
+ &\\[-2ex]
+ ~\multicolumn{#1}{l}{\textbf{\color{#4}\DataFields{student}{name}}}\\*
+ \__ufrgscca_checktable_lines:nn {L1,L2,L3,L4,L5}{C1,C2,C3,C4,C5}\hline
+ }
+ }
+
+}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
index 92b211cf5c..a303a53a2a 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-core}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA core commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-core} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30},
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02},
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~core~commands/data}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
@@ -403,7 +403,7 @@
}
%
-\NewDocumentCommand{\studentCoadvCase}{mm}{
+\NewDocumentCommand{\studentCoadvCase}{+m+m}{
\starray_term_syntax:n{student}
\bool_if:nTF {\starray_parsed_get_prop:n{flag-coadvisor}}
{#1}
@@ -457,7 +457,7 @@
{
Nproc = {#1} ,
ID = {#2} ,
- email = {#3} ,
+ email = {\tl_to_str:n{#3}} ,
}
}%
@@ -466,7 +466,7 @@
{
\RenewDocumentCommand{\author}{O{}mmO{}}{\student[#1]{#2}{#3}[#4]}%
\NewDocumentCommand{\authorinfo}{O{}mm}{\studentinfo[#1]{#2}{#3}}%
- \NewDocumentCommand{\title}{m}{\worktitle{#1}}%
+ \RenewDocumentCommand{\title}{m}{\worktitle{#1}}%
}
@@ -490,7 +490,7 @@
{
institution = {#2} ,
title = {#3} ,
- email = {#4} ,
+ email = {\tl_to_str:n{#4}} ,
phone = {#5} ,
}
}
@@ -578,7 +578,7 @@
{
register = {#1} ,
office = {#2} ,
- email = {#3} ,
+ email = {\tl_to_str:n{#3}} ,
phone = {#4} ,
}
}%
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
index 1cb8f47293..c0bfe2c643 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -31,30 +31,30 @@
\SetTerms{%
advisor.descpage = %
{%
- \noindent%
- \studentCoadvCase{%
- \UseTerm{advisors}:\\
- \DataFields{student.advisor}{name}\\[1ex]
- \DataFields{student.coadvisor}{name}
- }{%
- \UseTerm{advisor}:\\
- \DataFields{student.advisor}{name}
- }
+ \noindent%
+ \studentCoadvCase{%
+ \UseTerm{advisors}:\\
+ \DataFields{student.advisor}{name}\\[1ex]
+ \DataFields{student.coadvisor}{name}
+ }{%
+ \UseTerm{advisor}:\\
+ \DataFields{student.advisor}{name}
+ }
} ,
advisor.approvalpage = %
{%
- \noindent%
- \studentCoadvCase{%
- \UseTerm{advisors}:\\
- \DataFields{student.advisor}{name}, \DataFields{student.advisor}{institution}\\
- \DataFields{student.advisor}{title}\\[1ex]
- \DataFields{student.coadvisor}{name}, \DataFields{student.coadvisor}{institution}\\
- \DataFields{student.coadvisor}{title}
- }{
- \UseTerm{advisor}:\\
- \DataFields{student.advisor}{name}, \DataFields{student.advisor}{institution}\\
- \DataFields{student.advisor}{title}
- }
+ \noindent%
+ \studentCoadvCase{%
+ \UseTerm{advisors}:\\
+ \DataFields{student.advisor}{name}, \DataFields{student.advisor}{institution}\\
+ \DataFields{student.advisor}{title}\\[1ex]
+ \DataFields{student.coadvisor}{name}, \DataFields{student.coadvisor}{institution}\\
+ \DataFields{student.coadvisor}{title}
+ }{%
+ \UseTerm{advisor}:\\
+ \DataFields{student.advisor}{name}, \DataFields{student.advisor}{institution}\\
+ \DataFields{student.advisor}{title}
+ }
} ,
internship.tutorapproval =
{ ~\\
@@ -71,19 +71,19 @@
} ,
cover.students = %
{%
- \eDataSet{student}
+ \eDataSet{student}%
\centering{\MakeUppercase{\eDataFields{name}} - \eDataFields{ID}}
} ,
cover.topbase = %
{%
- \centering
+ \centering%
\MakeUppercase{\UseHeading{university}}\\
\MakeUppercase{\UseHeading{unit}}\\
\MakeUppercase{\UseHeading{course}}
} ,
cover.title = %
{%
- \eDataSet{student}
+ \eDataSet{student}%
\centering\textbf{\MakeUppercase{\eDataFields{worktitle}}}
} ,
cover.bottom = {%
@@ -91,7 +91,7 @@
} ,
ppc.top = %
{%
- \centering
+ \centering%
\MakeUppercase{\UseHeading{university}}\\
\MakeUppercase{\UseHeading{unit}}\\
\MakeUppercase{\UseHeading{ppc.comgrad}}\\
@@ -101,7 +101,7 @@
} ,
report.top = %
{%
- \centering
+ \centering%
\MakeUppercase{\UseHeading{university}}\\
\MakeUppercase{\UseHeading{unit}}\\
\MakeUppercase{\UseHeading{department}}\\
@@ -111,10 +111,10 @@
\SetTerms{
cover.students =
- {
- \studentiterate
- {
- \eDataSet{student}
+ {%
+ \studentiterate%
+ {%
+ \eDataSet{student}%
\centering{\MakeUppercase{\eDataFields{name}}~ -~ \eDataFields{ID}}\\
}
}
@@ -147,7 +147,7 @@
\SetCoverFields{tccI}{bottom-approvalpage}{ \UseTerm{cover.bottom} }
-\SetCoverFields{tccI}{board}{
+\SetCoverFields{tccI}{board}{%
\noindent \UseTerm{board}:\\
\indent \DataFields{student.reviewer[2]}{name}, \DataFields{student.reviewer[2]}{institution}\\
\indent \DataFields{student.reviewer[2]}{title}\\
@@ -157,7 +157,7 @@
}
-\SetCoverFields{tccI}{coord}{
+\SetCoverFields{tccI}{coord}{%
\noindent\hrulefill\\
\ActivityCoord[course]{name}\\
\ActivityCoord[course]{title}\\
@@ -187,7 +187,7 @@
\SetCoverFields{tccII}{bottom-descpage}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
\SetCoverFields{tccII}{text-approvalpage}{ \UseTerm{tccII.text-approvalpage} }
-\SetCoverFields{tccII}{advisor-approvalpage}{ \UseTerm{advisor.approvalpage} }
+\SetCoverFields{tccII}{advisor-approvalpage}{ \UseTerm{advisor.approvalpage} }
\SetCoverFields{tccII}{bottom-approvalpage}{ \UseTerm{cover.bottom} }
@@ -236,12 +236,10 @@ CONTROLE~ E~ AUTOMAÇÃO }
\SetCoverFields{internship}{clist}{cover,approval}
\SetCoverFields{internship}{top}{ \UseTerm{cover.topbase} }
\SetCoverFields{internship}{students}{ \UseTerm{cover.students} }
-\SetCoverFields{internship}{title}{ \centering\textbf{ RELATÓRIO DE ESTÁGIO SUPERVISIONADO OBRIGATÓRIO EM ENG. DE CONTROLE E AUTOMAÇÃO}}
+\SetCoverFields{internship}{title}{ \centering\textbf{ \UseTerm{internship.title} } }
\SetCoverFields{internship}{bottom}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
-\SetCoverFields{internship}{text-approvalpage}{
- Este Relatório foi julgado adequado para a obtenção do conceito final na Atividade de Estágio Supervisionado Obrigatório em Eng. de Controle
- e Automação e aprovado em sua forma final pel\DataFields{student.tutor}{article} Tutor\DataFields{student.tutor}{narticle}, Supervisor\DataFields{student.supervisor}{narticle} e Coordenador\DataFields{activity[internship].coord}{narticle} da Atividade.}
+\SetCoverFields{internship}{text-approvalpage}{ \UseTerm{internship.text-approvalpage} }
\SetCoverFields{internship}{advisor-approvalpage}{ \UseTerm{internship.tutorapproval} }
@@ -270,12 +268,10 @@ CONTROLE~ E~ AUTOMAÇÃO }
\SetCoverFields{internship-opt}{clist}{cover,approval}
\SetCoverFields{internship-opt}{top}{ \UseTerm{cover.topbase} }
\SetCoverFields{internship-opt}{students}{ \UseTerm{cover.students} }
-\SetCoverFields{internship-opt}{title}{ \centering\textbf{ RELATÓRIO DE ESTÁGIO SUPERVISIONADO NÃO OBRIGATÓRIO EM ENG. DE CONTROLE E AUTOMAÇÃO}}
+\SetCoverFields{internship-opt}{title}{ \centering\textbf{ \UseTerm{internship-opt.title} } }
\SetCoverFields{internship-opt}{bottom}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
-\SetCoverFields{internship-opt}{text-approvalpage}{
- Este Relatório foi julgado adequado para uma Atividade de Estágio Supervisionado Não Obrigatório em Eng. de Controle
- e Automação e aprovado em sua forma final pel\DataFields{student.tutor}{article} Tutor\DataFields{student.tutor}{narticle} e Supervisor\DataFields{student.supervisor}{narticle}.}
+\SetCoverFields{internship-opt}{text-approvalpage}{ \UseTerm{internship-opt.text-approvalpage} }
\SetCoverFields{internship-opt}{advisor-approvalpage}{ \UseTerm{internship.tutorapproval} }
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
index 5f33f07558..ab87aa84b8 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-cover}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA cover commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-cover} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30},
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02},
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~ cover~pages}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
@@ -106,11 +106,11 @@
\keys_define:nn { ufrgscca / layout }
{
cover .usage:n = general,
- cover .code:n = {\__ufrgscca_cover_page:n{#1}},
- desc .usage:n = general,
- desc .code:n = {\__ufrgscca_desc_page:n{#1}},
- approval .usage:n = general,
- approval .code:n = {\__ufrgscca_approval_page:n{#1}},
+ cover .code:n = {\__ufrgscca_cover_page:n{#1}},
+ desc .usage:n = general,
+ desc .code:n = {\__ufrgscca_desc_page:n{#1}},
+ approval .usage:n = general,
+ approval .code:n = {\__ufrgscca_approval_page:n{#1}},
}
\cs_generate_variant:Nn \seq_map_inline:Nn {Ne}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
index c1d4745907..05380271f6 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-curr}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA curricula commands}
%%%%%%%
@@ -41,8 +41,8 @@
{
name .code:n = {ufrgscca-curr} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30},
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02},
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~ curricula~ commands}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
index 38380a97c3..4acd2de65b 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-forms}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA forms commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-forms} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30},
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02},
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~ forms~commands}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
@@ -175,14 +175,13 @@
\int_new:N \l__ufrgscca_a_int
\int_new:N \l__ufrgscca_b_int
-\NewDocumentCommand{\BlankLines}{m}{
+\NewDocumentCommand{\BlankLines}{O{0pt}m}{
\int_zero:N \l__ufrgscca_a_int
- \int_set:Nn \l__ufrgscca_b_int {#1}
+ \int_set:Nn \l__ufrgscca_b_int {#2}
\int_do_until:nNnn {\l__ufrgscca_a_int} {=} {\l__ufrgscca_b_int}
{
\int_incr:N \l__ufrgscca_a_int
- \hrulefill\\\par%
-
+ \hrulefill\\[#1]\par%
}
}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
index e6e47ec34e..c2eff7eaf9 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -172,14 +172,30 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de
\SetForm{internshiptutorform}{closing}{}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
-%%% TCCs - Calendar - EVENTS
+%%% TCCs - attendancelist
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\SetActivityNewEvent{}
+\SetForm{attendancelist}{heading}{\UseTerm{title.tcc}}
+\SetForm{attendancelist}{title}{\UseTerm{title.attendancelist}}
+\SetForm{attendancelist}{opening}{}
+
+%%%
+
+\SetForm{attendancelist}{body}{%
+Nome do(a) Aluno(a) --- Email\\
+\BlankLines[-1.8ex]{30}
+}
+
+%%%
+\SetForm{attendancelist}{closing}{\vfill}%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -265,7 +281,9 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de
%%%%%%%%%%%%%%%
\SetForm{request-I}{heading}{\UseTerm{title.tccI}}
\SetForm{request-I}{title}{\UseTerm{title.requestform}}
-\SetForm{request-I}{opening}{\UseTerm{opening.requestform}}
+\SetForm{request-I}{opening}{
+
+\UseTerm{opening.requestform}}
%%%
\SetForm{request-I}{body}{%
@@ -302,9 +320,9 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de
%%%%%%%%%%%%%%%
\SetForm{coadvisor-I}{heading}{\UseTerm{title.tccI}}
\SetForm{coadvisor-I}{title}{\UseTerm{title.coadvisorform}}
-\SetForm{coadvisor-I}{opening}{%
+\SetForm{coadvisor-I}{opening}{
- \UseTerm{opening.requestform}
+\UseTerm{opening.requestform}
\emptytermifnone{student.coadvisor}
}
@@ -511,15 +529,17 @@ Outras considerações, parecer (se necessário): \BlankLines{6}
\UseLabel{advisor.email}: {\bf \DataFields{student.advisor}{email}}%
\hfill \UseLabel{phone}: {\bf \DataFields{student.advisor}{phone}}%
- \UseLabel{coadvisor}: \DataFields{student.coadvisor}{name}%
-
- \UseLabel{coadvisor.email}: {\bf \DataFields{student.coadvisor}{email}}%
- \hfill \UseLabel{phone}: {\bf \DataFields{student.coadvisor}{phone}}%
+ \studentCoadvCase{
+ \UseLabel{coadvisor}: \DataFields{student.coadvisor}{name}%
+
+ \UseLabel{coadvisor.email}: {\bf \DataFields{student.coadvisor}{email}}%
+ \hfill \UseLabel{phone}: {\bf \DataFields{student.coadvisor}{phone}}%
+ }{}
\vfill%
- O Tema do Trabalho e Orientador (Coorientador) seguem sendo os mesmos de TCC I ?
-\begin{itemize}[tcc,noitemsep]
+ Os Objetivos do Trabalho e Orientador\DataFields{student.advisor}{narticle}\studentCoadvCase{/Coorientador\DataFields{student.coadvisor}{narticle}}{} seguem sendo os mesmos de TCC I ?
+\begin{itemize}[tcc,nosep]
\item[$\Box$] SIM
\item[$\Box$] NÃO, neste caso \textbf{justifique} a mudança no espaço a seguir:
\end{itemize}
@@ -812,6 +832,99 @@ O texto submetido:
\ApprovalSignature[\UseLabel{altreviewer.sig}]{\DataFields{student.altreviewer}{name}}
}
+
+
+\NewDocumentCommand{\studentCoadvLabelCase}{}{
+ \studentCoadvCase{\UseLabel{advisors}: \color{darkerblue}\DataFields{student.advisor}{name} / \DataFields{student.coadvisor}{name}}{\UseLabel{advisor}: \color{darkerblue}\DataFields{student.advisor}{name}}
+}
+
+
+\NewDocumentCommand{\studentBoard}{s}{
+ {%%
+ \footnotesize%
+ \begin{center}%
+ \begin{tabular}{p{\UseConst{report.tabA*}}@{\ }p{\UseConst{report.tabB*}}@{\ }c}%\hline%
+ & \UseLabel{board} \\\hline%
+ \IfBooleanTF{#1}
+ {
+ \multirow{4}={\DataFields{student}{name}} %
+ &\DataFields{student.reviewer[1]}{name}\\%
+ }%
+ {%
+ \multirow{3}={\DataFields{student}{name}}%
+ }
+ &\DataFields{student.reviewer[2]}{name}\\%
+ &\DataFields{student.reviewer[3]}{name}\\%
+ & ~\\[-2.5ex]
+ \multicolumn{2}{l}{\studentCoadvLabelCase} \\\hline%
+ \end{tabular}%
+ \end{center}%
+ }%
+}
+
+
+\NewDocumentCommand{\studentBoardGraded}{s}
+ {
+ {\footnotesize%
+ \begin{center}%
+ \resizebox{\textwidth}{!}{%
+ \IfBooleanTF{#1}
+ {%
+ \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }p{0pt}@{}c@{\ }c}
+ \HeaderLine{II}
+ \studentLine*
+ }
+ {%
+ \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}
+ \HeaderLine{I}
+ \studentLine
+ }%
+ \\*\hline
+ \end{tabular}%
+ }%
+ \end{center}%
+ }%
+ }
+
+
+
+\NewDocumentCommand{\HeaderLine}{m}{%
+ & \UseLabel{board} & \UseLabel{TCC-#1.pointA} & \UseLabel{TCC-#1.pointB}
+ & \UseLabel{TCC-#1.pointC} & \UseLabel{TCC-#1.pointD} & \UseLabel{Ngrade} & \UseLabel{grade} \\\hline%
+}
+
+\NewDocumentCommand{\ReviewerLine}{m}{%
+ & \hspace{-0.4em}\DataFields{student.reviewer[#1]}{name}
+ & \DataFields{student.reviewer[#1]}{pointA} & \DataFields{student.reviewer[#1]}{pointB} & \DataFields{student.reviewer[#1]}{pointC}
+ & \DataFields{student.reviewer[#1]}{pointD} & \DataFields{student.reviewer[#1]}{grade} & %
+}
+
+\NewDocumentCommand{\studentLine}{s}{%
+ \IfBooleanTF{#1}%
+ {%
+ \multirow{4}={\textbf{\DataFields{student}{name}}}
+ \ReviewerLine{1}\\*
+ }
+ {%
+ \multirow{3}={\textbf{\DataFields{student}{name}}}
+ }
+ \ReviewerLine{2}\\*%
+ \nopagebreak\ReviewerLine{3}\\[0.75ex]%
+ \multicolumn{6}{l}{\studentCoadvLabelCase} & \textbf{\DataFields{student}{gradeavrg}} & \textbf{\DataFields{student}{grade}}%\\ \hline%
+}
+
+\NewDocumentCommand{\studentExtLine}{mm}{%
+ \kill\nopagebreak\\[-2ex]%
+ \multicolumn{#1}{p{#2}}{\ \ \ \UseLabel{worktitle}: \DataFields{student}{worktitle}}\\*
+ \multicolumn{#1}{l}{\ \ \ (\UseLabel{Nproc}: \DataFields{student}{Nproc}) \UseLabel{student.ID}: \DataFields{student}{ID} / \DataFields{student}{email}}\\*
+ \multicolumn{#1}{l}{\ \ \ \color{darkerblue}\UseLabel{advisor.email}: \DataFields{student.advisor}{email} \UseLabel{phone}: \DataFields{student.advisor}{phone}}\\*
+ \multicolumn{#1}{l}{\ \ \ \color{darkerred}\UseLabel{board}: \DataFields{student.reviewer[1]}{email} / \DataFields{student.reviewer[2]}{email} / \DataFields{student.reviewer[3]}{email}}\\*
+
+ \multicolumn{#1}{l}{\ \ \ \UseLabel{remarks}: {\color{red}\textbf{\DataFields{student}{remarks}}}}%\\ \hline
+}
+
+
+
%%%%%%%%%%%%%%%
%% referall letter- I
%%%%%%%%%%%%%%%
@@ -822,22 +935,26 @@ O texto submetido:
%%%
\SetForm{referral-I}{body}{
+\SetConsts{%
+ report.tabspec = {p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}
+}
+
\studentCase%
{
\DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, tendo sido APROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
- \studentBoardGradedI
+ \studentBoardGraded
}
{
\DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, tendo sido REAPROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
- \studentBoardGradedI
- }
+ \studentBoardGraded
+ }
{
\DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi APROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
- \studentBoardI
+ \studentBoard
}
{
\DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi REPROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
- \studentBoardI
+ \studentBoard
}
{
\DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ não concluiu o trabalho de conclusão de Curso tendo sido REPROVAD\DataFields{student}{Article} com conceito final \textbf{FF}.
@@ -857,69 +974,6 @@ O texto submetido:
\vfill
}
-
-\NewDocumentCommand{\studentCoadvLabelCase}{}{
- \studentCoadvCase{\UseLabel{advisors} : \DataFields{student.advisor}{name} / \DataFields{student.coadvisor}{name}}{\UseLabel{advisor} : \DataFields{student.advisor}{name}}
-}
-
-\NewDocumentCommand{\studentBoardI}{}{
- {%%
- \footnotesize%
- \begin{center}%
- \begin{tabular}{p{\UseConst{report.tabA*}}@{\ }p{\UseConst{report.tabB*}}@{\ }c}%\hline%
- & \UseLabel{board} \\\hline%
- \multirow{3}={\DataFields{student}{name}} %
- &\DataFields{student.reviewer[2]}{name}\\%
- &\DataFields{student.reviewer[3]}{name}\\%
- & ~\\[-2.5ex]
- \multicolumn{2}{l}{\ \ \studentCoadvLabelCase} \\\hline%
- \end{tabular}%
- \end{center}%
- }%
-}
-
-\NewDocumentCommand{\studentBoardGradedI}{}{
- {\footnotesize%
- \begin{center}%
- \resizebox{\textwidth}{!}{%
- \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}%\hline%
- \HeaderLineI
- \studentLineI\\*\hline
- \end{tabular}%
- }%
- \end{center}%
- }%
-}
-
-
-\NewDocumentCommand{\HeaderLineI}{}{%
- & \UseLabel{board} & \UseLabel{TCC-I.pointA} & \UseLabel{TCC-I.pointB} & \UseLabel{TCC-I.pointC} & \UseLabel{TCC-I.pointD} &%
- \UseLabel{Ngrade} & \UseLabel{grade}\\\hline%
-}
-\NewDocumentCommand{\studentLineI}{}{%
- \multirow{3}={\textbf{\DataFields{student}{name}}} %
- \ReviewerLineI{2}\\*%
- \ReviewerLineI{3}\\*%
- \nopagebreak & ~\\[-2.5ex]
- \multicolumn{6}{l}{\ \ \ \studentCoadvLabelCase} & \textbf{\DataFields{student}{gradeavrg}} & \textbf{\DataFields{student}{grade}}%\\* \hline%
-}
-
-\NewDocumentCommand{\ReviewerLineI}{m}{%
- & \hspace{-0.4em}\DataFields{student.reviewer[#1]}{name} & \DataFields{student.reviewer[#1]}{pointA} & \DataFields{student.reviewer[#1]}{pointB} & \DataFields{student.reviewer[#1]}{pointC} & \DataFields{student.reviewer[#1]}{pointD} & \DataFields{student.reviewer[#1]}{grade} &%
- }
-
-
-\NewDocumentCommand{\studentExtLine}{mm}{%
- \\[-1em]%
- \multicolumn{#1}{p{#2}}{\ \ \ \UseLabel{worktitle}: \DataFields{student}{worktitle}}\\*
- \multicolumn{#1}{l}{\ \ \ (\UseLabel{Nproc}: \DataFields{student}{Nproc}) \UseLabel{student.ID}: \DataFields{student}{ID} / \DataFields{student}{email}}\\*
- \multicolumn{#1}{l}{\ \ \ \UseLabel{remarks}: \DataFields{student}{remarks}}%\\ \hline
-}
-
-
-
-
-
%%%%%%%%%%%%%%%
%% referall letter- II
%%%%%%%%%%%%%%%
@@ -932,20 +986,20 @@ O texto submetido:
\studentCase%
{
- \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\ no dia \DataFields{student}{board-day}, tendo sido APROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
- \studentBoardGradedII
+ \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\ no dia \DataFields{student}{board-date}, tendo sido APROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+ \studentBoardGraded*
}%
{
- \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\ no dia \DataFields{student}{board-day}, tendo sido REAPROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
- \studentBoardGradedII
+ \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\ no dia \DataFields{student}{board-date}, tendo sido REAPROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+ \studentBoardGraded*
}%
{
- \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\ no dia \DataFields{student}{board-day}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi APROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
- \studentBoardII
+ \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\ no dia \DataFields{student}{board-date}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi APROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
+ \studentBoard*
}%
{
- \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\ no dia \DataFields{student}{board-day}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi REPROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
- \studentBoardII
+ \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\ no dia \DataFields{student}{board-date}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi REPROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
+ \studentBoard*
}%
{
\DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ não concluiu o trabalho de conclusão de Curso tendo sido REPROVAD\DataFields{student}{Article} com conceito final \textbf{FF}.
@@ -966,64 +1020,79 @@ O texto submetido:
}
+\ExplSyntaxOn
+\cs_new_protected:Npn \reportBody #1#2
+ {
+ \str_case:nn {#1}
+ {
+ {I}
+ {
+ \begin{longtable}
+ {
+ p{\UseConst{report.tabA}}@{\ }
+ p{\UseConst{report.tabB}}@{\ }
+ p{\UseConst{report.tabC}}@{\ }
+ p{\UseConst{report.tabD}}@{\ }
+ p{\UseConst{report.tabE}}@{\ }
+ p{\UseConst{report.tabEx}}@{\ }
+ p{\UseConst{report.tabF}}@{\ }
+ p{\UseConst{report.tabG}}
+ }
+ }
+ {II}
+ {
+ \begin{longtable}
+ {
+ p{\UseConst{report.tabA}}@{\ }
+ p{\UseConst{report.tabB}}@{\ }
+ p{\UseConst{report.tabC}}@{\ }
+ p{\UseConst{report.tabD}}@{\ }
+ p{\UseConst{report.tabE}}@{\ }
+ p{0pt}@{}
+ p{\UseConst{report.tabF}}@{\ }
+ p{\UseConst{report.tabG}}
+ }
+ }
+ }
+ \HeaderLine{#1}
+ \seq_map_inline:Nn \l__ufrgscca_baselist_graded_seq
+ {
+ \studentselect{##1}
+ #2\\*\hline
+ \studentExtLine{7}{\UseConst{report.tabMult.#1}}\\\hline
+ }
+ \__ufrgscca_miss_case:nnnnn
+ {7} {report.tabMult.#1}
+ {\l__ufrgscca_baselist_ff_seq}
+ {Desistentes~ com~ conceito~ (2o ~ semestre)}
+ {red}
+ \__ufrgscca_miss_case:nnnnn
+ {7} {report.tabMult.#1}
+ {\l__ufrgscca_baselist_dismiss_seq}
+ {Desistentes~ sem~ conceito~ (1o ~ semestre)}
+ {magenta}
+ \end{longtable}
+ }
+\cs_new_protected:Npn \__ufrgscca_miss_case:nnnnn #1#2#3#4#5
+ {
+ \seq_if_empty:NF #3
+ {
+ &\\
+ \multicolumn{#1}{l}{\textbf{\color{#5}#4}}\\\hline
+ \seq_map_inline:Nn #3
+ {
+ \studentselect{##1}
+ &\\*
+ \multicolumn{#1}{l}{\textbf{\color{#5}\DataFields{student}{name}}}\\*
+ \studentExtLine{#1}{\UseConst{#2}}\\*
+ \multicolumn{#1}{l}{\studentCoadvLabelCase}\\ \hline
+ }
+ }
+ }
-\NewDocumentCommand{\studentBoardII}{}{
- {%%
- \footnotesize%
- \begin{center}%
- \begin{tabular}{p{\UseConst{report.tabA*}}@{\ }p{\UseConst{report.tabB*}}@{\ }c}%\hline%
- & \UseLabel{board} \\\hline%
- \multirow{4}={\DataFields{student}{name}} %
- &\DataFields{student.reviewer[1]}{name}\\%
- &\DataFields{student.reviewer[2]}{name}\\%
- &\DataFields{student.reviewer[3]}{name}\\%
- & ~\\[-2.5ex]
- \multicolumn{2}{l}{\ \ \studentCoadvLabelCase} \\\hline%
- \end{tabular}%
- \end{center}%
- }%
-}
-\NewDocumentCommand{\studentBoardGradedII}{}{
- {%
- \footnotesize%
- \begin{center}%
- \resizebox{\textwidth}{!}{%
- \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}%\hline%
- \HeaderLineII
- \studentLineII\\*\hline
- \end{tabular}%
- }%
- \end{center}%
- }%
-}
-
-\NewDocumentCommand{\HeaderLineII}{}{%
- & \UseLabel{board} & \UseLabel{TCC-II.pointA} & \UseLabel{TCC-II.pointB} & \UseLabel{TCC-II.pointC} &%
- \UseLabel{Ngrade} & \UseLabel{grade}\\\hline%
-}
-\NewDocumentCommand{\studentLineII}{}{%
- \multirow{4}={\textbf{\DataFields{student}{name}}} %
- \ReviewerLineII{1}\\*%
- \ReviewerLineII{2}\\*%
- \ReviewerLineII{3}\\*%
- \nopagebreak & ~\\[-2.5ex]
- \multicolumn{5}{l}{\ \ \ \studentCoadvLabelCase} & \textbf{\DataFields{student}{gradeavrg}} & \textbf{\DataFields{student}{grade}}%\\ \hline%
-}
-
-\NewDocumentCommand{\ReviewerLineII}{m}{%
- & \hspace{-0.4em}\DataFields{student.reviewer[#1]}{name} & \DataFields{student.reviewer[#1]}{pointA} & \DataFields{student.reviewer[#1]}{pointB} & \DataFields{student.reviewer[#1]}{pointC} & \DataFields{student.reviewer[#1]}{grade} &%
- }
-
-
-
-
-
-
-
-\ExplSyntaxOn
-
+\ExplSyntaxOff
%%%%%%%%%%%%%%%
%% report TCC - I
@@ -1035,17 +1104,7 @@ O texto submetido:
%%%
\SetForm{report-I}{opening}{ %
{ \tiny
- \begin{longtable}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }p{\UseConst{report.tabC}}@{\ }p{\UseConst{report.tabD}}@{\ }p{\UseConst{report.tabE}}@{\ }p{\UseConst{report.tabEx}}@{\ }p{\UseConst{report.tabF}}@{\ }p{\UseConst{report.tabG}}}%
- \HeaderLineI
- \seq_map_inline:Nn \l__ufrgscca_baselist_graded_seq
- {
- \studentselect{#1}
- \studentLineI\\*\hline
- \studentExtLine{8}{\UseConst{report.tabMult.I}}\\\hline
- }
- \reportMissCase{8}{\l__ufrgscca_baselist_ff_seq}{Desistentes~ com~ conceito~ (2o ~ semestre)}
- \reportMissCase{8}{\l__ufrgscca_baselist_dismiss_seq}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
- \end{longtable}
+ \reportBody {I}{\studentLine}
}
}
@@ -1053,24 +1112,6 @@ O texto submetido:
\SetForm{report-I}{closing}{}
-\NewDocumentCommand{\reportMissCase}{mmmO{red}}{
- \seq_if_empty:NF #2
- {
- &\\
- \multicolumn{#1}{l}{\textbf{\color{#4}#3}}\\\hline
- \seq_map_inline:Nn #2
- {
- \studentselect{##1}
- &\\*
- \multicolumn{#1}{l}{\textbf{\color{#4}\DataFields{student}{name}}}\\*
- \studentExtLine{#1}\\*
- \multicolumn{#1}{l}{\studentCoadvLabelCase}\\ \hline
- }
- }
-}
-
-
-
%%%%%%%%%%%%%%%
%% report TCC - II
%%%%%%%%%%%%%%%
@@ -1078,42 +1119,19 @@ O texto submetido:
\SetForm{report-II}{title}{Relatório Acompanhamento - \UseTerm{semester}}
\SetForm{report-II}{opening}{}
+
%%%
\SetForm{report-II}{opening}{ %
{ \tiny
- \begin{longtable}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }p{\UseConst{report.tabC}}@{\ }p{\UseConst{report.tabD}}@{\ }p{\UseConst{report.tabE}}@{\ }p{\UseConst{report.tabF}}@{\ }p{\UseConst{report.tabG}}}%
- \HeaderLineII
- \seq_map_inline:Nn \l__ufrgscca_baselist_graded_seq
- {
- \studentselect{#1}
- \studentLineII\\*\hline
- \studentExtLine{7}{\UseConst{report.tabMult.II}}\\\hline
- }
- \reportMissCase{7}{\l__ufrgscca_baselist_ff_seq}{Desistentes~ com~ conceito~ (2o ~ semestre)}
- \reportMissCase{7}{\l__ufrgscca_baselist_dismiss_seq}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
- \end{longtable}
+ \reportBody {II}{\studentLine*}
}
}
+
%%%
\SetForm{report-II}{closing}{}
-\NewDocumentCommand{\CheckList}{mmmO{red}}{
- \seq_if_empty:NF #2
- {
- &\\
- \multicolumn{#1}{l}{\textbf{\color{#4}#3}}\\\hline
- \seq_map_inline:Nn #2
- {
- \studentselect{##1}
- &\\[-2ex]
- ~\multicolumn{#1}{l}{\textbf{\color{#4}\DataFields{student}{name}}}\\*
- \__ufrgscca_checktable_lines:nn {L1,L2,L3,L4}{C1,C2,C3,C4,C5}\hline
- }
- }
-
-}
%%%%%%%%%%%%%%%
@@ -1128,9 +1146,9 @@ O texto submetido:
\ActivitySelect{tccI}
{ \scriptsize
\begin{longtable}{lllll}%
- \CheckList{5}{\l__ufrgscca_baselist_graded_seq}{Alunos~Com~ Conceito}[black]
- \CheckList{5}{\l__ufrgscca_baselist_ff_seq}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
- \CheckList{5}{\l__ufrgscca_baselist_dismiss_seq}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
+ \CheckList{5}{graded}{Alunos~Com~ Conceito}[black]
+ \CheckList{5}{ff}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
+ \CheckList{5}{dismiss}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
\end{longtable}
}
~\vfill
@@ -1152,9 +1170,9 @@ O texto submetido:
\ActivitySelect{tccII}
{ \scriptsize
\begin{longtable}{lllll}%
- \CheckList{5}{\l__ufrgscca_baselist_graded_seq}{Alunos~Com~ Conceito}[black]
- \CheckList{5}{\l__ufrgscca_baselist_ff_seq}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
- \CheckList{5}{\l__ufrgscca_baselist_dismiss_seq}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
+ \CheckList{5}{graded}{Alunos~Com~ Conceito}[black]
+ \CheckList{5}{ff}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
+ \CheckList{5}{dismiss}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
\end{longtable}
}
~\vfill
@@ -1173,6 +1191,7 @@ O texto submetido:
\SetForm{boards}{title}{\UseTerm{board.title}}
\SetForm{boards}{opening}{}
+\ExplSyntaxOn
%%%
\SetForm{boards}{opening}{ %
{\footnotesize
@@ -1181,7 +1200,7 @@ O texto submetido:
\hline
\tl_gclear:N \l__ufrgscca_daytmpa_tl
\tl_gclear:N \l__ufrgscca_daytmpb_tl
- \seq_map_inline:cn {l__ufrgscca_baselist_seq}
+ \seq_map_inline:cn {l__ufrgscca_baselist_graded_seq}
{
\starray_set_iter_from_hash:nn {student} {#1}
\starray_term_syntax:n {student}
@@ -1196,11 +1215,18 @@ O texto submetido:
\textsc{\UseLabel{student.gen}} & \textsc{\UseLabel{advisor.gen}} & \textsc{\UseLabel{board}} & \textsc{\UseLabel{boardtime.gen}}\\*\hline
\tl_gset:Ne \l__ufrgscca_daytmpa_tl \l__ufrgscca_daytmpb_tl
}
- \multirow{4}={\textbf{\DataFields{student}{name}}} & \multirow{4}={\studentCoadvCase{\hspace{-0.6em}\DataFields{student.advisor}{name}\\[1mm]\hspace{-0.6em}\DataFields{student.coadvisor}{name}}{\hspace{-0.6em}\DataFields{student.advisor}{name}}} & \DataFields{student.reviewer[1]}{name} & \multirow{4}={\DataFields{student}{board-time}\\[1mm]\DataFields{student}{board-local}}\\*
+ \multirow{4}={\textbf{\DataFields{student}{name}}}
+ & \multirow{4}={
+ \studentCoadvCase
+ {\hspace{-0.6em}\DataFields{student.advisor}{name}\\[1mm]\hspace{-0.6em}\DataFields{student.coadvisor}{name}}
+ {\hspace{-0.6em}\DataFields{student.advisor}{name}} }
+ & \DataFields{student.reviewer[1]}{name}
+ & \multirow{4}={ \DataFields{student}{board-time}\\[1mm]\DataFields{student}{board-local} }\\*
&& \DataFields{student.reviewer[2]}{name} \\*
&& \DataFields{student.reviewer[3]}{name} \\*
&& (\DataFields{student.altreviewer[1]}{name}) \\*
- \multicolumn{4}{p{\UseConst{board.tabAll}}}{\textsc{Título:}\ \emph{\DataFields{student}{worktitle}}}\\\hline
+ \multicolumn{4}{p{\UseConst{board.tabAll}}}
+ {\textsc{Título:}\ \emph{\DataFields{student}{worktitle}}}\\\hline
}
\end{longtable}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
index 0e00613fe4..732b0ed3a5 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-lists}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA auxiliary lists commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-lists} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30} ,
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02} ,
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
index 4a176fd236..67724e318c 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-ppc}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA PPC commands}
%%%%%%%
@@ -41,8 +41,8 @@
{
name .code:n = {ufrgscca-ppc} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30},
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02},
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
index c061c01555..357a65e991 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
index d8cd5d3b24..4001c9ba94 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -86,6 +86,8 @@
title.internsupervisorform = Formulário de Avaliação do Supervisor (Pela Empresa) ,
title.interntutorform = Formulário de Avaliação do Tutor e Coordenador ,
%
+ title.attendancelist = {Lista de Preseça - 1$^o$ Encontro do Semestre \UseTerm{semester}} ,
+ %
%footnote.reviewersform
footnote.reviewersform = {Entregar a cada membro da banca juntamente com a cópia do trabalho.} , %%% TCC I / II
footnote.receipts = {Entregar a cada membro da banca juntamente com a cópia do trabalho final e após encaminhar à coordenação de TCC.} , %%% TCC II
@@ -139,24 +141,37 @@
\SetTerms{%
- tccI.text-descpage = { Proposta de Trabalho de Conclusão de Curso submetida à
- COMGRAD/\Activity[course]{acronym}\ da \UseHeading{acronym}\ como parte dos requisitos para a
- obtenção do título de \emph{\UseHeading{course.title}.}
- } ,
- tccI.text-approvalpage = { Esta Proposta de Trabalho de Conclusão de Curso foi julgada adequada para a
- obtenção dos créditos da Atividade de \emph{\Activity[tccI]{name}} e aprovada em sua forma final
- \studentCoadvCase{pelos Orientadores}{pel\DataFields{student.advisor}{article} Orientador\DataFields{student.advisor}{narticle}}
- e Banca Examinadora abaixo.
- } ,
- tccII.text-descpage = { Trabalho de Conclusão de Curso submetido à
- COMGRAD/\Activity[course]{acronym}\ da \UseHeading{acronym}\ como parte dos requisitos para a
- obtenção do título de \emph{\UseHeading{course.title}.}
- } ,
- tccII.text-approvalpage = { Este Trabalho de Conclusão de Curso foi julgado adequado para a
- obtenção dos créditos da Atividade de \emph{\Activity[tccII]{name}} e aprovado em sua forma final
- \studentCoadvCase{pelos Orientadores}{pel\DataFields{student.advisor}{article}
- Orientador\DataFields{student.advisor}{narticle}} e Banca Examinadora abaixo.
- } ,
+ tccI.text-descpage =
+ { Proposta de Trabalho de Conclusão de Curso submetida à COMGRAD/\Activity[course]{acronym}\ da \UseHeading{acronym}\
+ como parte dos requisitos para a obtenção do título de \emph{\UseHeading{course.title}.}%
+ } ,
+ tccI.text-approvalpage =
+ { Esta Proposta de Trabalho de Conclusão de Curso foi julgada adequada para a obtenção dos créditos da Atividade
+ de \emph{\Activity[tccI]{name}} e aprovada em sua forma final \studentCoadvCase{pelos Orientadores}{pel\DataFields{student.advisor}{article} Orientador\DataFields{student.advisor}{narticle}} e Banca Examinadora abaixo.%
+ } ,
+ tccII.text-descpage =
+ { Trabalho de Conclusão de Curso submetido à COMGRAD/\Activity[course]{acronym}\ da \UseHeading{acronym}\ como
+ parte dos requisitos para a obtenção do título de \emph{\UseHeading{course.title}.}%
+ } ,
+ tccII.text-approvalpage =
+ { Este Trabalho de Conclusão de Curso foi julgado adequado para a obtenção dos créditos da Atividade
+ de \emph{\Activity[tccII]{name}} e aprovado em sua forma final \studentCoadvCase{pelos Orientadores}{pel\DataFields{student.advisor}{article}
+ Orientador\DataFields{student.advisor}{narticle}} e Banca Examinadora abaixo.%
+ } ,
+ internship.title =
+ { RELATÓRIO DE ESTÁGIO SUPERVISIONADO OBRIGATÓRIO EM ENG. DE CONTROLE E AUTOMAÇÃO } ,
+ internship.text-approvalpage =
+ { Este Relatório foi julgado adequado para a obtenção do conceito final na Atividade de Estágio Supervisionado Obrigatório em
+ Eng. de Controle e Automação e aprovado em sua forma final pel\DataFields{student.tutor}{article}
+ Tutor\DataFields{student.tutor}{narticle}, Supervisor\DataFields{student.supervisor}{narticle} e
+ Coordenador\DataFields{activity[internship].coord}{narticle} da Atividade.%
+ } ,
+ internship-opt.text-approvalpage =
+ { Este Relatório foi julgado adequado para uma Atividade de Estágio Supervisionado Não Obrigatório em Eng. de Controle
+ e Automação e aprovado em sua forma final pel\DataFields{student.tutor}{article} Tutor\DataFields{student.tutor}{narticle} e Supervisor\DataFields{student.supervisor}{narticle}.%
+ } ,
+ internship-opt.title =
+ { RELATÓRIO DE ESTÁGIO SUPERVISIONADO NÂO OBRIGATÓRIO EM ENG. DE CONTROLE E AUTOMAÇÃO } ,
}
@@ -212,14 +227,15 @@
}
\SetLabels{%
- TCC-I.pointA = {Tema} ,
- TCC-I.pointB = {Biblio.} ,
- TCC-I.pointC = {Plano Trab.} ,
- TCC-I.pointD = {Texto} ,
+ TCC-I.pointA = {Tema} ,
+ TCC-I.pointB = {Biblio.} ,
+ TCC-I.pointC = {Plano Trab.} ,
+ TCC-I.pointD = {Texto} ,
TCC-II.pointA = {Conteúdo} ,
TCC-II.pointB = {Trab. Escrito} ,
TCC-II.pointC = {Apresentação} ,
- Ngrade = {Nota} ,
+ TCC-II.pointD = {} ,
+ Ngrade = {Nota} ,
grade = {Conceito} ,
}
@@ -228,19 +244,19 @@
TCC-I.weightB = {2} ,
TCC-I.weightC = {2} ,
TCC-I.weightD = {1} ,
- TCC-II.weightA = {0.35} ,
- TCC-II.weightB = {0.35} ,
- TCC-II.weightC = {0.3} ,
- NgradeA = {9.0} ,
- NgradeB = {7.5} ,
- NgradeC = {6.0} ,
+ TCC-II.weightA = {0.35} ,
+ TCC-II.weightB = {0.35} ,
+ TCC-II.weightC = {0.3} ,
+ NgradeA = {9.0} ,
+ NgradeB = {7.5} ,
+ NgradeC = {6.0} ,
}
\SetConsts{%
- report.tabA = {34mm} ,
- report.tabA* = {42mm} ,
+ report.tabA = {40mm} ,
+ report.tabA* = {44mm} ,
report.tabB = {42mm} ,
report.tabB* = {62mm} ,
report.tabC = {15mm} ,
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
index 4aa296e5c4..4b49363841 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplClass
{ufrgscca}
- {2023/11/30}
- {2.1}
+ {2023/12/02}
+ {2.2}
{UFRGS/CCA class}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/11/30},
- version .code:n = {2.1} ,
+ date .code:n = {2023/12/02},
+ version .code:n = {2.2} ,
description .code:n = {UFRGS/CCA~a~report~based~class~bundle}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn