From 8dfcb0935597571483db587639fb662c93d775b1 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 26 Feb 2024 03:00:59 +0000 Subject: CTAN sync 202402260300 --- macros/latex/contrib/beautynote/README.md | 25 ++ macros/latex/contrib/beautynote/beautynote.cls | 355 +++++++++++++++++++++ macros/latex/contrib/beautynote/beautynote.pdf | Bin 0 -> 880927 bytes macros/latex/contrib/beautynote/beautynote.tex | 160 ++++++++++ .../latex/contrib/beautynote/figures/fibonacci.jpg | Bin 0 -> 756452 bytes .../latex/contrib/beautynote/figures/titlepage.png | Bin 0 -> 3201 bytes macros/latex/contrib/crefthe/README.md | 6 +- macros/latex/contrib/crefthe/crefthe-doc.pdf | Bin 66538 -> 71860 bytes macros/latex/contrib/crefthe/crefthe-doc.tex | 19 +- macros/latex/contrib/crefthe/crefthe.sty | 83 ++++- macros/latex/contrib/easybook/easybook.dtx | 8 +- macros/latex/contrib/easybook/easybook.pdf | Bin 604286 -> 604258 bytes macros/latex/contrib/easybook/easybook.tex | 6 +- macros/latex/contrib/frenchmath/README.md | 2 +- macros/latex/contrib/frenchmath/frenchmath.dtx | 121 ++++--- macros/latex/contrib/frenchmath/frenchmath.pdf | Bin 580598 -> 580908 bytes .../latex/contrib/proflycee/doc/ProfLycee-doc.pdf | Bin 1536996 -> 1572968 bytes .../latex/contrib/proflycee/doc/ProfLycee-doc.tex | 4 +- macros/latex/contrib/proflycee/tex/ProfLycee.sty | 3 +- .../proflycee/tex/proflycee-tools-aleatoire.tex | 2 +- .../proflycee/tex/proflycee-tools-analyse.tex | 72 ++++- .../proflycee/tex/proflycee-tools-arithm.tex | 200 +++++++++++- .../proflycee/tex/proflycee-tools-complexes.tex | 2 +- .../proflycee/tex/proflycee-tools-ecritures.tex | 2 +- .../contrib/proflycee/tex/proflycee-tools-geom.tex | 2 +- .../proflycee/tex/proflycee-tools-graphiques.tex | 2 +- .../proflycee/tex/proflycee-tools-listings.tex | 2 +- .../proflycee/tex/proflycee-tools-minted.tex | 2 +- .../proflycee/tex/proflycee-tools-piton.tex | 2 +- .../proflycee/tex/proflycee-tools-probas.tex | 2 +- .../proflycee/tex/proflycee-tools-pythontex.tex | 2 +- .../proflycee/tex/proflycee-tools-recreat.tex | 4 +- .../proflycee/tex/proflycee-tools-stats.tex | 2 +- .../proflycee/tex/proflycee-tools-suites.tex | 2 +- .../proflycee/tex/proflycee-tools-trigo.tex | 2 +- macros/latex/contrib/ufrgscca/README.md | 6 +- macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf | Bin 592794 -> 592924 bytes macros/latex/contrib/ufrgscca/doc/ufrgscca.tex | 7 +- .../latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty | 10 +- .../contrib/ufrgscca/latex/ufrgscca-base-en.def | 2 +- .../contrib/ufrgscca/latex/ufrgscca-base-ptBR.def | 2 +- .../contrib/ufrgscca/latex/ufrgscca-coord.sty | 93 +++--- .../latex/contrib/ufrgscca/latex/ufrgscca-core.sty | 62 +++- .../contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex | 2 +- .../contrib/ufrgscca/latex/ufrgscca-cover.sty | 10 +- .../latex/contrib/ufrgscca/latex/ufrgscca-curr.sty | 10 +- .../contrib/ufrgscca/latex/ufrgscca-forms.sty | 137 ++++++-- .../contrib/ufrgscca/latex/ufrgscca-forms.tex | 220 ++++++------- .../contrib/ufrgscca/latex/ufrgscca-lists.sty | 10 +- .../latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty | 10 +- .../contrib/ufrgscca/latex/ufrgscca-terms-en.tex | 2 +- .../contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex | 30 +- macros/latex/contrib/ufrgscca/latex/ufrgscca.cls | 10 +- 53 files changed, 1394 insertions(+), 323 deletions(-) create mode 100644 macros/latex/contrib/beautynote/README.md create mode 100644 macros/latex/contrib/beautynote/beautynote.cls create mode 100644 macros/latex/contrib/beautynote/beautynote.pdf create mode 100644 macros/latex/contrib/beautynote/beautynote.tex create mode 100644 macros/latex/contrib/beautynote/figures/fibonacci.jpg create mode 100644 macros/latex/contrib/beautynote/figures/titlepage.png (limited to 'macros') diff --git a/macros/latex/contrib/beautynote/README.md b/macros/latex/contrib/beautynote/README.md new file mode 100644 index 0000000000..b6f1f563a6 --- /dev/null +++ b/macros/latex/contrib/beautynote/README.md @@ -0,0 +1,25 @@ + + + + | [Github](https://github.com/BeautyLaTeX/beautynote) | [Email](https://h1479840692@outlook.com)| + + +------- + +# An elegant LaTeX Template for Books and Notes + + + +Beautynote is a specially designed to meet the publication of books and the production of LaTeX template, created by [Ethan Lu](https://github.com/BeautyLaTeX/beautynote) , and maintained by [Ethan Lu](https://github.com/BeautyLaTeX/beautynote). Just enjoy it! If you have any questions, suggestions or bug reports, you can create issues or contact me at h1479840692@outlook.com. + + +--- +## Version + +Release 2024-02-25. + +--- +## License + +This work is released under the LaTeX Project Public License, v1.3c or later. + diff --git a/macros/latex/contrib/beautynote/beautynote.cls b/macros/latex/contrib/beautynote/beautynote.cls new file mode 100644 index 0000000000..9356903815 --- /dev/null +++ b/macros/latex/contrib/beautynote/beautynote.cls @@ -0,0 +1,355 @@ +\NeedsTeXFormat{LaTeX2e} +\newcommand{\docauthor}{Ethan Lu} % The author of this note + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessOptions\relax +\LoadClass{report} + +\def\fileversion{25-02-2024} +\def\filedate{25/02/2024} + +\ProvidesClass{beautynote}[\filedate\space Version \fileversion\space by \docauthor] +\RequirePackage{ifthen} +\RequirePackage[utf8]{inputenc} +\RequirePackage[english]{babel} +\RequirePackage[T1]{fontenc} +\RequirePackage[svgnames,dvipsnames,x11names,table]{xcolor} +\RequirePackage{ninecolors} +% \RequirePackage[fontsize=12pt]{fontsize} +% \overfullrule=1pt +%%%%%%%%%%%%%%%%%%%%%%%%%%% Chapetr Title Format %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage[explicit]{titlesec} % For the customization of Chapter +\RequirePackage{graphicx} % Required for inserting images +% 关于图片 graphicx +% 如果图片没有指定后缀, 依次按下列顺序搜索 +\DeclareGraphicsExtensions{.pdf,.eps,.jpg,.png} +% 设置图表搜索路径, 可以给图表文件夹取如下名字 +\graphicspath{{figures/}{figure/}} +\RequirePackage{varwidth} +\RequirePackage{tikz} +\usetikzlibrary{calc,shadows,hobby,intersections, decorations.markings, decorations.pathreplacing,spy,arrows,shapes,fadings,trees,mindmap,patterns,shapes.arrows,shapes.symbols,tikzmark,shapes.geometric,graphs, quotes, angles,decorations.pathmorphing,through,shadings,backgrounds,positioning,fit,arrows.meta,shapes.misc,decorations.shapes} +\pgfdeclarelayer{background} %背景%底层 +\pgfdeclarelayer{foreground} %上层 +\pgfdeclarelayer{top} %顶部 +\pgfdeclarelayer{bottom} %底部 +\pgfsetlayers{bottom,background,main,foreground,top} +\tikzfading[name=fade right, + right color =transparent!100, + left color=transparent!50] +\tikzfading[name=fade left, + left color =transparent!100, + right color=transparent!50] +\tikzfading[name=fade up, + top color =transparent!30, + bottom color=transparent!0] +\tikzfading[name=fade down, + bottom color =transparent!100, + top color=transparent!50] +%% -------- 章节样式 +\definecolor{gray1}{HTML}{9E9E9E} +\definecolor{gray2}{HTML}{d4d3d8} +\definecolor{black1}{HTML}{616065} + +\newcommand{\chapternumbered}[1]{% + \begin{tikzpicture}[remember picture,overlay] + \def\xshiftofnode{2cm} + \def\hlenofnode{2.8cm} + \def\vlenofnode{4.76cm} + \def\nodecorners{8pt} + \def\chapnameyshift{0.7cm} + \def\chapbackheightI{.1\paperheight} + \def\chapbackheightII{.15\paperheight} + \fill[gray2] % 浅色 + (current page.north west) coordinate (NW) --++(0,-\chapbackheightII) [bend left=-9] to ([shift={(\paperwidth,-.8*\chapbackheightI-2.96cm)}]NW) |- (NW) --cycle; % bottom background + \fill[gray1!80] % 深色 + (current page.north west) coordinate (NW) --++(0,-\chapbackheightI) [bend left=-10] to ([shift={(\paperwidth,-.8*\chapbackheightI-3.5cm)}]NW) |- (NW) --cycle; % subbottom background + %%%%%%%%%%%%%%%%%% Chapname Box %%%%%%%%%%%%%%%%%%%% + \fill[black1,opacity=0.8] + ([xshift=\xshiftofnode]NW) {[rounded corners=\nodecorners]--++(0,-\vlenofnode)} coordinate (chapnameleft) {[rounded corners=\nodecorners]--++(\hlenofnode,0)} coordinate (chapnameright) --++(0,\vlenofnode)--cycle; + \pattern[pattern=sixpointed stars,pattern color=gray2!50,opacity=0.8] + ([xshift=\xshiftofnode]NW)--++(0,-0.76*\vlenofnode) coordinate (bendl) [bend left=-2] to ([shift={(\hlenofnode,-0.168*\vlenofnode)}]bendl) |- ([xshift=\xshiftofnode]NW) --cycle; + \fill [black1,path fading=fade up]% + ([xshift=\xshiftofnode]NW)--++(0,-0.76*\vlenofnode) coordinate (bendl) [bend left=-2] to ([shift={(\hlenofnode,-0.168*\vlenofnode)}]bendl) |- ([xshift=\xshiftofnode]NW) --cycle; + %%%%%%%%%%%%%%%%%% Chapname Box %%%%%%%%%%%%%%%%%%%% + \node[font=\huge\bfseries,text=gray!20!white] (chapname) at ($([yshift=\chapnameyshift]chapnameleft)!0.5!([yshift=\chapnameyshift]chapnameright)$) {CH\ \thechapter}; %chapname + \node[right,font=\huge\bfseries,text=black] (chaptitle) at ([shift={(1.5cm,-.08*\chapnameyshift)}]chapname) {\begin{varwidth}{.92\linewidth} \baselineskip=23pt #1\end{varwidth}}; % chaptitle + \end{tikzpicture} +} +\newcommand{\chapternonum}[1]{% + \begin{tikzpicture}[remember picture,overlay] + \def\xshiftofnode{2cm} + \def\hlenofnode{2.8cm} + \def\vlenofnode{4.76cm} + \def\nodecorners{8pt} + \def\chapnameyshift{0.7cm} + \def\chapbackheightI{.1\paperheight} + \def\chapbackheightII{.15\paperheight} + \fill[gray2] + (current page.north west) coordinate (NW) --++(0,-\chapbackheightII) [bend left=-9] to ([shift={(\paperwidth,-.8*\chapbackheightI-2.96cm)}]NW) |- (NW) --cycle; % bottom background + \fill[gray1!80] + (current page.north west) coordinate (NW) --++(0,-\chapbackheightI) [bend left=-10] to ([shift={(\paperwidth,-.8*\chapbackheightI-3.5cm)}]NW) |- (NW) --cycle; % subbottom background + %%%%%%%%%%%%%%%%%% Chapname Box %%%%%%%%%%%%%%%%%%%% + \fill[black1,opacity=0.8] + ([xshift=\xshiftofnode]NW) {[rounded corners=\nodecorners]--++(0,-\vlenofnode)} coordinate (chapnameleft) {[rounded corners=\nodecorners]--++(\hlenofnode,0)} coordinate (chapnameright) --++(0,\vlenofnode)--cycle; + \pattern[pattern=sixpointed stars,pattern color=gray2!50,opacity=0.8] + ([xshift=\xshiftofnode]NW)--++(0,-0.76*\vlenofnode) coordinate (bendl) [bend left=-2] to ([shift={(\hlenofnode,-0.168*\vlenofnode)}]bendl) |- ([xshift=\xshiftofnode]NW) --cycle; + \fill [black1,path fading=fade up]% + ([xshift=\xshiftofnode]NW)--++(0,-0.76*\vlenofnode) coordinate (bendl) [bend left=-2] to ([shift={(\hlenofnode,-0.168*\vlenofnode)}]bendl) |- ([xshift=\xshiftofnode]NW) --cycle; + %%%%%%%%%%%%%%%%%% Chapname Box %%%%%%%%%%%%%%%%%%%% + \node[font=\fontsize{30pt}{30pt}\selectfont\scshape,text=gray!20!white] (chapname) at ($([yshift=\chapnameyshift]chapnameleft)!0.5!([yshift=\chapnameyshift]chapnameright)$) {chap}; %chapname + \node[right,font=\huge\bfseries,text=black] (chaptitle) at ([shift={(1.5cm,-.08*\chapnameyshift)}]chapname) {\begin{varwidth}{.92\linewidth} \baselineskip=23pt #1\end{varwidth}}; % chaptitle + \end{tikzpicture} +} + +\titleformat{\chapter}{\huge\bfseries}{}{1em}{\chapternumbered{#1}} +\titleformat{name=\chapter,numberless}{\bfseries\huge}{}{1em}{\chapternonum{#1}} +\titlespacing{\chapter}{0pt}{0pt}{65pt} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Using Packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{geometry} +\RequirePackage[leqno]{amsmath} +\RequirePackage{mathtools} +\RequirePackage{amssymb} +\RequirePackage{amsthm} +\RequirePackage{empheq} +\RequirePackage{mdframed} +\RequirePackage{booktabs} +\RequirePackage{lipsum} +\pagecolor{gray!15} +\RequirePackage{psfrag} +\RequirePackage{bbding} +\RequirePackage{fancyhdr} +\RequirePackage{enumitem} +\RequirePackage{pgfplots} +\RequirePackage{bm,times} +\RequirePackage{bropd,physics} +\RequirePackage{indentfirst} +\RequirePackage{float} +\RequirePackage{pifont} +\RequirePackage{pgfornament-han} +\RequirePackage{shadowtext} +\shadowoffset{.65pt} +\RequirePackage{eso-pic,transparent} +\RequirePackage{extramarks} +\RequirePackage{etoolbox} +\RequirePackage[type={CC},modifier={by-nc-nd},hyperxmp={false},version={4.0}]{doclicense} +\RequirePackage{xpatch} +\RequirePackage{rotating} +\RequirePackage{fbox} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Other Settings + +%%%%%%%%%%%%%%%%%%%%%%%%%% Page Setting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\geometry{a4paper,margin=2.2cm} +\setcounter{secnumdepth}{4} +%%%%%%%%%%%%%%%%%%%%%%%%%% Define some useful colors %%%%%%%%%%%%%%%%%%%%%%%%%% +\definecolor{ocre}{RGB}{243,102,25} +\definecolor{mygray}{RGB}{243,243,244} +\definecolor{deepGreen}{HTML}{a71930} +\definecolor{shallowGreen}{HTML}{D5CABD} +\definecolor{deepBlue}{HTML}{005670} +\definecolor{shallowBlue}{HTML}{ced7df} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%% Define an orangebox command %%%%%%%%%%%%%%%%%%%%%%%% +\newcommand\orangebox[1]{\fcolorbox{ocre}{mygray}{\hspace{1em}#1\hspace{1em}}} +\newenvironment{note}[1][\bf Note:]{\Line\uuline{#1} }{\Line} +\newcommand{\Line}{\noindent\\\tikz\draw[line width=0.65pt,gray!80,dashed] (0,0)--++(.99\linewidth,0);\par} +\newcommand{\prob}[2][Problems]{\vspace{1em}\begin{center} + \pgfornamenthan[color=#2,scale=0.25,symmetry=c]{68}\hspace{.3em}\begin{tabular}{c} \pgfornamenthan[color=#2,scale=0.4]{60}\\[1.6em] + \shadowtext{\textbf{\color{#2}\fontsize{25pt}{25pt}\selectfont \textsc{#1}}} \end{tabular}\hspace{.5em}\pgfornamenthan[color=#2,scale=0.25,symmetry=h]{68} +\end{center}\vspace{1em}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% English Environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newtheoremstyle{mytheoremstyle}{3pt}{3pt}{\itshape}{0cm}{\rmfamily\bfseries}{}{.5em}{{\color{black}\thmname{#1}~\thmnumber{#2}}\thmnote{\,--\,#3}} +\newtheoremstyle{myproblemstyle}{3pt}{3pt}{\normalfont}{0cm}{\rmfamily\bfseries}{}{.5em}{{\color{black}\thmname{#1}~\thmnumber{#2}}\thmnote{\,--\,#3}} +\theoremstyle{mytheoremstyle} +\newmdtheoremenv[linewidth=3pt,backgroundcolor=shallowGreen!50,linecolor=deepGreen,leftline = true,rightline=false,topline=false,bottomline=false,leftmargin=0pt,innerleftmargin=5pt,innerrightmargin=5pt,innertopmargin=3pt]{theorem}{Theorem}[section] +\newmdtheoremenv[linewidth=3pt,backgroundcolor=shallowGreen!50,linecolor=deepGreen,leftline = true,rightline=false,topline=false,bottomline=false,leftmargin=0pt,innerleftmargin=5pt,innerrightmargin=5pt,innertopmargin=3pt]{lemma}{Lemma}[section] +\newmdtheoremenv[linewidth=3pt,backgroundcolor=shallowGreen!50,linecolor=deepGreen,leftline = true,rightline=false,topline=false,bottomline=false,leftmargin=0pt,innerleftmargin=5pt,innerrightmargin=5pt,innertopmargin=3pt]{proposition}{Proposition}[section] +\theoremstyle{mytheoremstyle} +\newmdtheoremenv[linewidth=3pt,backgroundcolor=shallowBlue!70,linecolor=deepBlue,leftline = true,rightline=false,topline=false,bottomline=false,leftmargin=0pt,innerleftmargin=5pt,innerrightmargin=5pt,innertopmargin=3pt]{definition}{Definition}[section] +\theoremstyle{myproblemstyle} +\newmdtheoremenv[linecolor=black!60,backgroundcolor=gray!20,linewidth=3pt,leftline = true,rightline=false,topline=false,bottomline=false,leftmargin=0pt,innerleftmargin=5pt,innerrightmargin=5pt,innertopmargin=5pt,innerbottommargin=5pt]{problem}{Problem}[section] +\newtheorem*{remark}{Remark} +\newenvironment*{solution}{\begin{proof}[Solution]}{\end{proof}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Plotting Settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepgfplotslibrary{colorbrewer} +\pgfplotsset{width=8cm,compat=1.9} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Some colors +\definecolor{airforceblue}{rgb}{0.36, 0.54, 0.66} +\definecolor{beaublue}{HTML}{7eabc0} +%% +% Some commands that will be useful for the title. +\makeatletter +\newcommand{\doctitle}[1]{\def\@doctitle{#1}} +\newcommand{\docsubtitle}[1]{\def\@docsubtitle{#1}} +\newcommand{\dockeywords}[1]{\def\@dockeywords{#1}} +\newcommand{\footext}[1]{\def\@footext{#1}} +\makeatother + +% To make the lists more aesthetic, gray tones. +\setlist{label=\textcolor{gray}{\textbullet},topsep=2pt,noitemsep} +\setenumerate{label=\textcolor{gray}{\textit{\arabic*}.},topsep=2pt,noitemsep,font=\upshape} + +% Keeping the gray tones along the document, on the header bar. +\renewcommand{\headrulewidth}{1pt} +\xpretocmd\headrule{\color{lightgray}}{}{\PatchFailed} +\renewcommand{\qedsymbol}{\textcolor{gray}{$\blacksquare$}} + +% Important, header and footer spacing +\def\mylength{3pt} +\setlength{\headheight}{12pt+\mylength} +\addtolength{\headsep}{10pt} +\addtolength{\footskip}{10pt} +\addtolength{\textheight}{-20pt-1ex-\mylength} + +% Par indent modifications +\setlength{\parindent}{2em} + +% If you want to put a quote, it can appear in italic. +\AtBeginEnvironment{quote}{\itshape} + +% A beautiful background for the titlepage. +\newcommand\BackgroundPic[1]{\put(0,0){\parbox[b][\paperheight]{\paperwidth}{\vfill\centering\includegraphics[width=\paperwidth,height=\paperheight,scale=1.05]{#1}\vfill}}} % 保持长宽比 keepaspectratio, +\AtBeginEnvironment{titlepage}{\AddToShipoutPictureBG*{\transparent{0.3}\BackgroundPic{fibonacci.jpg}}} +% Page numbering Box +\newcommand{\pagenumber}[1]{{\setlength{\fboxsep}{5pt}\fbox[#1,lcolor=beaublue,rcolor=beaublue,tcolor=beaublue,bcolor=beaublue]{\fontsize{10pt}{10pt}\selectfont{\textcolor{gray!50!black}{\textsc{\thepage}}}}}} + +% Header configuration +\makeatletter + +\fancypagestyle{singleside}{% +\fancyhf{}% +\lhead{\color{gray}\nouppercase{\textit{\lastleftxmark}}}% +\rhead{\color{black}\nouppercase{\textsc{\lastrightxmark}}}% +\rfoot{\pagenumber{lt}}% +\lfoot{\fontsize{10pt}{10pt}\selectfont{\textsc{\textcolor{airforceblue}{\@doctitle}\;\textcolor{lightgray}{|}\;\textcolor{gray!70!black}{\@docsubtitle}}}}% +\cfoot{\color{gray!70!black}\fontsize{10pt}{10pt}{\@footext}} +\renewcommand{\headrulewidth}{1pt}}% + +\fancypagestyle{twoside}{% +\fancyhf{}% +\fancyhead[RE]{\textcolor{black}{\nouppercase{\leftmark}}}% +\fancyhead[LO]{\textcolor{black}{\nouppercase{\lastrightxmark}}}% +\fancyhead[RO]{\textcolor{gray}{\textit{\lastleftxmark}}}% +\fancyhead[LE]{\textcolor{gray}{\color{gray}{\textbf{\textsc{\romannumeral\thechapter\relax}}}}}% +\fancyfoot[LE]{\pagenumber{lt}}% +\fancyfoot[RO]{\pagenumber{rt}}% +\fancyfoot[RE]{\fontsize{10pt}{10pt}\selectfont{\textcolor{airforceblue}{\textsc{\@doctitle}}}}% +\fancyfoot[LO]{\fontsize{10pt}{10pt}\selectfont{\textcolor{gray!70!black}{\textsc{\@docsubtitle}}}}% +\fancyfoot[CO,CE]{\color{gray!70!black}\fontsize{10pt}{10pt}{\@footext}}% +\fancyheadoffset[leh,roh]{1em}% +\renewcommand{\headrulewidth}{1pt}}% + +\fancypagestyle{auxsingle}{% +\fancyhf{}% +\chead{\nouppercase{\textsc{\leftmark}}}% +% \lfoot{\fontsize{10pt}{10pt}\selectfont{\textsc{\textcolor{airforceblue}{\@doctitle}\;\textcolor{lightgray}{|}\;\textcolor{gray!70!black}{\@docsubtitle}}}}% +\rfoot{\pagenumber{lt}}% +\renewcommand{\headrulewidth}{1pt}}% + +\fancypagestyle{auxtwoside}{% +\fancyhf{}% +\fancyhead[CE,CO]{\nouppercase{\textsc{\leftmark}}}% +\fancyfoot[RE]{\fontsize{10pt}{10pt}\selectfont{\textcolor{airforceblue}{\textsc{\@doctitle}}}}% +\fancyfoot[LO]{\fontsize{10pt}{10pt}\selectfont{\textcolor{gray!70!black}{\textsc{\@docsubtitle}}}}% +\fancyfoot[LE]{\pagenumber{lt}}% +\fancyfoot[RO]{\pagenumber{rt}}% +\fancyheadoffset{0em}% +\renewcommand{\headrulewidth}{1pt}}% + +\makeatother + +% Now, if we load all-in-one with two side option, we will adjust the headers accordingly +\makeatletter +\if@twoside + \fancypagestyle{copyright}{ + \fancyhf{}% + \fancyfoot[LE]{\pagenumber{lt}}% + \fancyfoot[RO]{\pagenumber{rt}}% + \fancyheadoffset{0em}% + \renewcommand{\headrulewidth}{0pt}}% + \fancypagestyle{plain}{% + \fancyhf{}% + \fancyfoot[RE]{\fontsize{10pt}{10pt}\selectfont{\textcolor{airforceblue}{\textsc{\@doctitle}}}}% + \fancyfoot[LO]{\fontsize{10pt}{10pt}\selectfont{\textcolor{gray!70!black}{\textsc{\@docsubtitle}}}}% + \fancyfoot[RO,LE]{\pagenumber{lt}}% + \renewcommand{\headrulewidth}{0pt}}% +\else + \fancypagestyle{copyright}{ + \fancyhf{}% + \rfoot{\pagenumber{rt}}% + \fancyheadoffset{0em}% + \renewcommand{\headrulewidth}{0pt}}% + \fancypagestyle{plain}{% + \fancyhf{}% + \lfoot{\fontsize{10pt}{10pt}\selectfont{\textsc{\textcolor{airforceblue}{\@doctitle}\;\textcolor{lightgray}{|}\;\textcolor{gray!70!black}{\@docsubtitle}}}}% + \rfoot{\pagenumber{rt}}% + \renewcommand{\headrulewidth}{0pt}}% +\fi +\makeatother + +\makeatletter +\if@twoside + \newcommand{\defaultsettings}{twoside} + \newcommand{\auxsettings}{auxtwoside} +\else + \newcommand{\defaultsettings}{singleside} + \newcommand{\auxsettings}{auxsingle} +\fi +\pagestyle{\defaultsettings} +\makeatother + +% Section and subsection marks. +\makeatletter +\renewcommand{\chaptermark}[1]{\markboth{#1}{}\extramarks{}{}} +\renewcommand{\sectionmark}[1]{\extramarks{\thesection}{#1}} +\renewcommand{\subsectionmark}[1]{\extramarks{\thesubsection}{#1}} +\makeatother + +% Greetings for the template author command (modify the auxiliar pagestyles). +\newboolean{copyright} +\newcommand{\copyrights}{\setboolean{copyright}{true}} + +% This is my favourite config for bibliography. Each one of the references can be briefly explained with the field "note". +\RequirePackage[style=english]{csquotes} +\RequirePackage[ +backend=biber, +style=alphabetic, +sorting=ynt +]{biblatex} +\newcommand{\familynameformat}[1]{\MakeUppercase{#1}} +\AtBeginBibliography{% + \renewcommand{\mkbibnamefamily}{\familynameformat}% +} +\renewbibmacro*{begentry}{% + \iffieldundef{note} + {\undef\bbxnote} + {\savefield{note}{\bbxnote}% + \clearfield{note}}} +\renewbibmacro*{finentry}{% + \restorefield{note}{\bbxnote}% + \iffieldundef{note} + {\finentry} + {\setunit{\finentrypunct\par\vspace{\bibitemsep}\nobreak} + \textit{\printfield{note}}% + \finentry}} +\let\familynameformat=\textsc +\nocite{*} + +\addbibresource{ref.bib} + +% Setting up the titlepage. +\makeatletter% +\title{{\large\color{airforceblue}{\textit{\@doctitle}}}\\[0.5cm]{\Huge\color{gray!70!black}\textsc{\@docsubtitle}}}% +\makeatother% +% Some commands that will be useful for the copyrightpage +\makeatletter +\newcommand{\copyrightpage}[5]{\def\@faculty{#1}\def\@university{#2}\def\@publisher{#3}\def\@ams{#4}\def\@city{#5}} +\makeatother diff --git a/macros/latex/contrib/beautynote/beautynote.pdf b/macros/latex/contrib/beautynote/beautynote.pdf new file mode 100644 index 0000000000..86364394d0 Binary files /dev/null and b/macros/latex/contrib/beautynote/beautynote.pdf differ diff --git a/macros/latex/contrib/beautynote/beautynote.tex b/macros/latex/contrib/beautynote/beautynote.tex new file mode 100644 index 0000000000..075614e0cc --- /dev/null +++ b/macros/latex/contrib/beautynote/beautynote.tex @@ -0,0 +1,160 @@ +\documentclass[twoside,openany,12pt]{beautynote} +% Input Some Information of the doc +\doctitle{Introduction to Beautynote Template} +\docsubtitle{A subtitle} +\dockeywords{beautynote,introduction} +\date{\today\vfill\includegraphics[width=0.15\textwidth]{titlepage.png}\\[.1em] \textsc{\large Beautynote}} +% Hyperref always required second to last. +\RequirePackage{hyperref} +\makeatletter +\hypersetup{% + % hidelinks, + pdfstartview=Fit,% + pdfmenubar=true,% + pdftoolbar=true,% + bookmarksopen=false,% + colorlinks=true, + linkcolor=black, + citecolor=purple, + pdftitle={\@docsubtitle},% + pdfauthor={\@author},% + pdfsubject={\@doctitle},% + pdflang={\languagename},% + pdfkeywords={\@dockeywords},% + pdfproducer={pdfTeX}} +\makeatother + +% Cleveref as the last one. +\RequirePackage{cleveref} +%%%%%%%%%%%%%%%%% +\author{Ethan Lu} +\footext{} +\copyrightpage% +{Faculty of Pure Mathematics}% Your Faculty +{XX University}% Your University +{Press of XX University}% Your Publisher +{01A75, 00B50}% AMS +{Guang Zhou}% Your City +% If you do not want to fill one of the fields, please leave it like this: {} +\usepackage{microtype} +\usepackage{appendix} +\usepackage{mathrsfs} +\usepackage{bropd} +\usepackage{bm} +\usepackage{tabularray,booktabs} +\usepackage{listings} +\lstset{ + basicstyle=\small\ttfamily, + keywordstyle=\color{NavyBlue}, + commentstyle=\color{gray!50!black!50}, + stringstyle=\rmfamily\slshape\color{red}, + backgroundcolor=\color{gray!5}, + frame=leftline, + framerule=0.5pt,rulecolor=\color{gray!80}, + numbers=left, + numberstyle=\footnotesize, + firstnumber=1, + stepnumber=1, + numbersep=7pt, + aboveskip=.25em, + showspaces=false, + showstringspaces=false, + keepspaces=true, + showtabs=false, + tabsize=2, + captionpos=b, + flexiblecolumns=true, + breaklines=true, + breakatwhitespace=false, + breakautoindent=true, + breakindent=1em, + title=\lstname, + escapeinside=``, + xleftmargin=1em, xrightmargin=1em, + aboveskip=1ex, belowskip=1ex, + framextopmargin=1pt, framexbottommargin=1pt, + abovecaptionskip=-2pt,belowcaptionskip=3pt, + extendedchars=false, columns=flexible, mathescape=true, + texcl=true, + fontadjust +}% +\begin{document} +% Titlepage +\maketitle\clearpage +%%%%%%%%%%%%%%%% Copyright-Page %%%%%%%%%%%%%%%%%%%%%%% +\copyrights +\pagestyle{\auxsettings} +\makeatletter +\thispagestyle{copyright} +\ifdefempty{\@faculty}{}{\noindent{\large\textsc{\@faculty}} \\} +\ifdefempty{\@university}{}{{\large\textsc{\@university}} \\[1em]} +\ifdefempty{\@publisher}{}{\textit{Published by:} \@publisher \\} +\ifthenelse{\boolean{copyright}}{\textit{Copyright by:} \textsc{\docauthor }\\}{} +\ifdefempty{\@ams}{}{\textit{AMS Classification (2020):} \@ams.\\} +\vfill +\ifdefempty{\@city}{}{\noindent\@city, on \today\\} +\copyright\,\the\year\, \textsc{The Authors} +\doclicenseThis +\cleardoublepage +\makeatother +%%%%%%%%%%%%%%%% Copyright-Page %%%%%%%%%%%%%%%%%%%%%%% +% Toc + \tableofcontents +% Main Contents +\pagestyle{\defaultsettings} +\chapter{A short introduction to beautynote template} +\section{Introduction} + +Beautynote is a specially designed to meet the publication of books and the production of latex templates, with elegant chapter styles and unique page styles. + +Here are all the things you can change : +\begin{table}[!htbp] + \centering % 使用 \centering 替代 center 环境 + \caption{Information-needed} + \begin{tabular}{c|c} + \toprule + \lstinline|\docauthor| & The author of this note\\ \midrule + \lstinline|\doctitle| & The title of this note\\ \midrule + \lstinline|\docsubtitle| & The subtitle of this note\\ \midrule + \lstinline|\docdate| & The date of this note\\ \midrule + \lstinline|\dockeywords| & The keywords of this note\\ \midrule % 假设这是正确的宏命令 + \lstinline|\copyrightpage| & Some useful information of the copyright of this note, just like page 2\\ + \bottomrule + \end{tabular} + \label{tb:Information-needed} +\end{table} +\textbf{Notation:} If you want to change the picture in title page, you can find it on the 220th line in the file \lstinline{beautynote.cls}. +\section{Environments} +We can use some important theorem environments: +\begin{theorem}[Theorem]\label{thm:example-1} + Example of theorem environment. +\end{theorem} +\begin{proof} + +\end{proof} + +\begin{lemma}[Lemma]\label{thm:example-2} + Example of theorem environment. +\end{lemma} +\begin{solution} + +\end{solution} + +\begin{definition}[Definition]\label{thm:example-3} + Example of theorem environment. +\end{definition} +\begin{proposition}[Proposition]\label{thm:example-4} + Example of theorem environment. +\end{proposition} +\begin{problem}[Problem]\label{thm:example-5} + Example of theorem environment. +\end{problem} +\begin{remark}[Remark] + Example of theorem environment. +\end{remark} + +% Bibliography +\clearpage +\pagestyle{\auxsettings} +% \printbibliography[heading=bibintoc] +\end{document} diff --git a/macros/latex/contrib/beautynote/figures/fibonacci.jpg b/macros/latex/contrib/beautynote/figures/fibonacci.jpg new file mode 100644 index 0000000000..5f8d1630fa Binary files /dev/null and b/macros/latex/contrib/beautynote/figures/fibonacci.jpg differ diff --git a/macros/latex/contrib/beautynote/figures/titlepage.png b/macros/latex/contrib/beautynote/figures/titlepage.png new file mode 100644 index 0000000000..46ccc75db2 Binary files /dev/null and b/macros/latex/contrib/beautynote/figures/titlepage.png differ diff --git a/macros/latex/contrib/crefthe/README.md b/macros/latex/contrib/crefthe/README.md index 745432cfbc..3fff1e4ecf 100644 --- a/macros/latex/contrib/crefthe/README.md +++ b/macros/latex/contrib/crefthe/README.md @@ -1,12 +1,12 @@ -# crefthe - cross referencing with proper definite articles +# crefthe — cross referencing with proper definite articles and declensions -"crefthe" is a LaTeX package aimed at helping `\cref` addressing the definite articles properly (especially for the article contractions in many European languages). +"crefthe" is a LaTeX package aimed at helping `\cref` to handle the definite articles and declensions properly (especially for the phenomenon of article contractions in many European languages, such as French and German). ## Motivation -By default, when using cleveref's `\cref` to reference theorem-like environments, the names do not contain definite articles. This may be acceptable for English, but certainly not good enough for languages such as French, Italian, Portuguese, Spanish, etc. -- in these cases there shall be grammatical errors and would give you a strong feeling that it is machine-generated. +By default, when using cleveref's `\cref` to reference theorem-like environments, the names do not contain definite articles. This may be acceptable for English, but certainly not good enough for languages such as French, Italian, Portuguese, Spanish, etc. — in these cases there shall be grammatical errors and would give you a strong feeling that it is machine-generated. As an example, if we define the French names to be: ```latex diff --git a/macros/latex/contrib/crefthe/crefthe-doc.pdf b/macros/latex/contrib/crefthe/crefthe-doc.pdf index be4864d533..967c29d78f 100644 Binary files a/macros/latex/contrib/crefthe/crefthe-doc.pdf and b/macros/latex/contrib/crefthe/crefthe-doc.pdf differ diff --git a/macros/latex/contrib/crefthe/crefthe-doc.tex b/macros/latex/contrib/crefthe/crefthe-doc.tex index 81a11edab9..35f98e753e 100644 --- a/macros/latex/contrib/crefthe/crefthe-doc.tex +++ b/macros/latex/contrib/crefthe/crefthe-doc.tex @@ -5,6 +5,8 @@ \usepackage{ProjLib} +\setmonofont[Scale=.9]{Iosevka} + %%================================ %% For typesetting code %%================================ @@ -26,7 +28,7 @@ breaklines = true, frame = lines, backgroundcolor = \color{code-background}, - flexiblecolumns = true, + basewidth = .5em, escapeinside = {(*}{*)}, alsoletter = {_,:}, % numbers = left, @@ -69,8 +71,8 @@ \lstnewenvironment{code}{\setstretch{1.05}\LocallyStopLineNumbers}{\ResumeLineNumbers\vspace{-.3\baselineskip}\vspace{-.5\parskip}} \lstnewenvironment{code*}{\setstretch{1.05}\lstset{numbers=left}\LocallyStopLineNumbers}{\ResumeLineNumbers\vspace{-.3\baselineskip}\vspace{-.5\parskip}} -\newcommand{\packageoption}[1]{\texttt{\textcolor{code-option}{#1}}} -\newcommand{\commandoption}[1]{\texttt{\textcolor{code-keys}{#1}}} +\newcommand{\packageoption}[1]{\textcolor{code-option}{\texttt{#1}}} +\newcommand{\commandoption}[1]{\textcolor{code-keys}{\texttt{#1}}} %%================================ %% tip @@ -120,19 +122,19 @@ \begin{document} -\def\PackageVersion{2024/02/24} +\def\PackageVersion{2024/02/25} \def\PackageSubVersion{} -\title{\crefthepackage{}\\\smallskip\itshape Cross referencing with proper definite articles} +\title{\crefthepackage{}\\\smallskip\itshape Cross referencing with proper definite articles and declensions} \author{Jinwen XU} -\thanks{Corresponding to: \texttt{\crefthepackage{} \PackageVersion\PackageSubVersion}} +\thanks{Corresponding to: \texttt{\crefthepackage{} \PackageVersion\PackageSubVersion}.} \date{\TheDate{\PackageVersion}[only-year-month], in Paris} \maketitle \begin{abstract} \raggedleft - The package \crefthepackage{} provides a command \lstinline|\crefthe| parallel to \textsf{cleveref}'s \lstinline|\cref| for handling definite articles properly (especially for the article contractions in some European languages). + The package \crefthepackage{} provides a command \lstinline|\crefthe| parallel to \textsf{cleveref}'s \lstinline|\cref| for handling definite articles and declensions properly (especially for the phenomenon of article contractions in some European languages, such as French and German). \end{abstract} \section{The motivation} @@ -224,6 +226,7 @@ Then you can use the command \lstinline|\crefthe| as follows: % \end{code} +\enlargethispage*{\baselineskip} \section{Example} Let us come back to the example at the beginning, now you can do this: @@ -310,7 +313,7 @@ Then, when referencing, you can use the command option \commandoption{abbr.} to \section{Regarding the upper and lower cases} -As in \textsf{cleveref}, these commands have corresponding uppercased version: \lstinline|\Crefthename|,\linebreak \lstinline|\Crefthe|, \lstinline|\nameCrefthe|, \lstinline|\nameCrefsthe| and \lstinline|\Cpagerefthe|, similar to \lstinline|\Crefname|,\linebreak \lstinline|\Cref|, \lstinline|\nameCref|, \lstinline|\nameCrefs| and \lstinline|\Cpageref|, reserved for using at the beginning of a sentence. Their usage is essentially the same as the corresponding lowercase version. +As with \textsf{cleveref}, these commands have corresponding uppercased version: \lstinline|\Crefthename|, \lstinline|\Crefthe|, \lstinline|\nameCrefthe|, \lstinline|\nameCrefsthe| and \lstinline|\Cpagerefthe|, similar to \lstinline|\Crefname|, \lstinline|\Cref|, \lstinline|\nameCref|, \lstinline|\nameCrefs| and \lstinline|\Cpageref|, reserved for using at the beginning of a sentence. Their usage is essentially the same as the corresponding lowercase version. For languages with declensions, such as German, there is also a \lstinline|\Crefthevariantname| (or equivalently, \lstinline|\setCrefname|), corresponding to the above \lstinline|\crefthevariantname|. diff --git a/macros/latex/contrib/crefthe/crefthe.sty b/macros/latex/contrib/crefthe/crefthe.sty index ad4f89ac32..8dca2cc77b 100644 --- a/macros/latex/contrib/crefthe/crefthe.sty +++ b/macros/latex/contrib/crefthe/crefthe.sty @@ -12,8 +12,8 @@ \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage {crefthe} - {2024/02/24} {} - {Cross referencing with proper definite articles} + {2024/02/25} {} + {Cross referencing with proper definite articles and declensions} \keys_define:nn { crefthe } { @@ -41,6 +41,59 @@ \RequirePackage { regexpatch } \@namedef{ver@xpatch.sty}{} +% Fix for cleveref in order to work with long range of pages +% See https://tex.stackexchange.com/a/620066 +\providecommand*{\@setcpagerefrange}[3]{% + \@@setcpagerefrange{#1}{#2}{cref}{#3}} +\providecommand*{\@setCpagerefrange}[3]{% + \@@setcpagerefrange{#1}{#2}{Cref}{#3}} +\providecommand*{\@setlabelcpagerefrange}[3]{% + \@@setcpagerefrange{#1}{#2}{labelcref}{#3}} + +% Fix for cleveref in order to work with xr-hyper +% See https://tex.stackexchange.com/a/708445 +\def\cref@getref#1#2{% + \expandafter\let\expandafter#2\csname r@#1@cref\endcsname% + \expandafter\expandafter\expandafter\def% + \expandafter\expandafter\expandafter#2% + \expandafter\expandafter\expandafter{% + \expandafter\@firstoffive#2}}% <-------- five +\def\cpageref@getref#1#2{% + \expandafter\let\expandafter#2\csname r@#1@cref\endcsname% + \expandafter\expandafter\expandafter\def% + \expandafter\expandafter\expandafter#2% + \expandafter\expandafter\expandafter{% + \expandafter\@secondoffive#2}}% <----------- five +\AtBeginDocument{% + \def\label@noarg#1{% + \cref@old@label{#1}% + \@bsphack% + \edef\@tempa{{page}{\the\c@page}}% + \setcounter{page}{1}% + \edef\@tempb{\thepage}% + \expandafter\setcounter\@tempa% + \cref@constructprefix{page}{\cref@result}% + \protected@write\@auxout{}% + {\string\newlabel{#1@cref}{{\cref@currentlabel}% + {[\@tempb][\arabic{page}][\cref@result]\thepage}{}{}{}}}% <----- five + \@esphack}% + \def\label@optarg[#1]#2{% + \cref@old@label{#2}% + \@bsphack% + \edef\@tempa{{page}{\the\c@page}}% + \setcounter{page}{1}% + \edef\@tempb{\thepage}% + \expandafter\setcounter\@tempa% + \cref@constructprefix{page}{\cref@result}% + \protected@edef\cref@currentlabel{% + \expandafter\cref@override@label@type% + \cref@currentlabel\@nil{#1}}% + \protected@write\@auxout{}% + {\string\newlabel{#2@cref}{{\cref@currentlabel}% + {[\@tempb][\arabic{page}][\cref@result]\thepage}{}{}{}}}% <------- five + \@esphack}% +} + \NewCommandCopy \crefthe_cref_original:w \cref \NewCommandCopy \crefthe_Cref_original:w \Cref \NewCommandCopy \crefthe_crefname_original:w \crefname @@ -109,15 +162,39 @@ \keys_define:nn { crefthe-command } { , noun .code:n = { \RenewDocumentCommand \crefthemark { m } {} } + , only-noun .meta:n = { noun } + , only~noun .meta:n = { noun } + , only noun .meta:n = { noun } + , no-prep .meta:n = { noun } + , no~prep .meta:n = { noun } + , no prep .meta:n = { noun } + , hide-prep .meta:n = { noun } + , hide~prep .meta:n = { noun } + , hide prep .meta:n = { noun } + , no-preposition .meta:n = { noun } + , no~preposition .meta:n = { noun } + , no preposition .meta:n = { noun } + , hide-preposition .meta:n = { noun } + , hide~preposition .meta:n = { noun } + , hide preposition .meta:n = { noun } , variant .tl_set:N = \l__crefthe_variant_tl + , declension .tl_set:N = \l__crefthe_variant_tl + , D .tl_set:N = \l__crefthe_variant_tl , abbr .bool_set:N = \l__crefthe_abbr_bool , abbr. .bool_set:N = \l__crefthe_abbr_bool + , abbreviation .bool_set:N = \l__crefthe_abbr_bool , unknown .code:n = {} } -\clist_const:Nn \c__crefthe_command_known_keys_clist { noun, abbr, abbr. } +\clist_const:Nn \c__crefthe_command_known_keys_clist + { + noun, only-noun, only~noun, only noun, + no-prep, no~prep, no prep, no-preposition, no~preposition, no preposition, + hide-prep, hide~prep, hide prep, hide-preposition, hide~preposition, hide preposition, + abbr, abbr., abbreviation, + } \cs_new:Nn \__crefthe_command_key_parser:n { diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index 53c4131509..1921c11313 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2021/11/15] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2024/02/22}{2024ak} +\ProvidesExplClass{easybook}{2024/02/25}{2024al} {Easily typesetting Chinese theses or books} \bool_new:N \l__eb_compile_draft_bool @@ -91,7 +91,7 @@ { \tl_set:Nx \l_tmpa_tl { \tl_if_novalue:nTF {#1} { \cs_to_str:N #2 } {#1} } \cs_new_protected:Npx #2 { \eb_switch_family:n { \l_tmpa_tl } } - \eb_set_family:nnn { \l_tmpa_tl } {#3,#5} {#4} + \eb_set_family:xnn { \l_tmpa_tl } {#3,#5} {#4} } \cs_new_protected:Npn \eb@font@load@noto @@ -297,7 +297,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2021/11/15] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2024/02/22}{2024ak} +\ProvidesExplPackage{easybase}{2024/02/25}{2024al} {Easily typesetting Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -2390,7 +2390,7 @@ } % %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2024/02/22}{2024ak} +\ProvidesExplFile{eb-tcolorbox.cfg}{2024/02/25}{2024al} {Customization of tcolorbox for easybook} \cs_set_protected:Npn \addtotcbstyle #1#2 diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf index cd5db495df..707045d46f 100644 Binary files a/macros/latex/contrib/easybook/easybook.pdf and b/macros/latex/contrib/easybook/easybook.pdf differ diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex index f962190767..061dcd0b08 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -23,8 +23,8 @@ name = easybook, color-scheme = blue, title = EASYBOOK使用手册, - version = v2024ak, - date = 2024/02/22, + version = v2024al, + date = 2024/02/25, authors = 瞿毅, info = 简便地排版中文学位论文或书籍, email = toquyi@163.com, @@ -1401,7 +1401,7 @@ \shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。} \shortversion{v = 1.644,date = 2022/03/10,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。} \shortversion{v = 1.682,date = 2022/05/01,changes = 将迷你页判断命令 \cs{notminipage} 改为被保护命令兼容 \pkg*{circledtext} 宏包。} - \begin{version}[v = 2024ak,date = 2024/02/22] + \begin{version}[v = 2024al,date = 2024/02/25] \fixed \item 修复图表等浮动环境题注目录中条目标签编号的计数器值显示错误问题。 \item 修复附录命令 \cs{appendix} 的可选参数设置英文目录中条目名字和编号失效的问题。 diff --git a/macros/latex/contrib/frenchmath/README.md b/macros/latex/contrib/frenchmath/README.md index 1027624a74..9df4acdd87 100644 --- a/macros/latex/contrib/frenchmath/README.md +++ b/macros/latex/contrib/frenchmath/README.md @@ -4,7 +4,7 @@ ## Presentation The package provides: -- roman uppercase letters in mathematical mode according to French rule (can be optionnally disabled), +- roman uppercase letters in mathematical mode according to French rule (can be optionally disabled), - correct spacing in math mode after commas, before a semicolon and around square brackets, - some useful macros and aliases for symbols used in France: `\infeg`, `\supeg`, `\paral`,... - several macros for writing French operator names like pgcd, ppcm, Card, rg, Vect,... diff --git a/macros/latex/contrib/frenchmath/frenchmath.dtx b/macros/latex/contrib/frenchmath/frenchmath.dtx index 586972372b..edd050c10a 100644 --- a/macros/latex/contrib/frenchmath/frenchmath.dtx +++ b/macros/latex/contrib/frenchmath/frenchmath.dtx @@ -20,7 +20,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{frenchmath} - [2024/02/20 v2.9 .dtx Typesetting mathematics according to French rules] + [2024/02/25 v2.10 .dtx Typesetting mathematics according to French rules] % %<*driver> \documentclass{ltxdoc} @@ -182,39 +182,45 @@ % - compatibilité des options de lettres grecques avec unicode-math (XeLaTeX uniquement) % -> nouvelles macros SaveGreekItalics et upgreekUndefined, % - commentaires dans la doc pour la compatibilité avec unicode-math.} + +% \changes{v2.10}{22/02/2024}{ +% - Changements dans la doc concernant la gestion des lettres grecques et unicode-math.} % % \GetFileInfo{frenchmath.sty} % % \title{L'extension \textsf{frenchmath}\thanks{Ce document -% correspond à \textsf{frenchmath}~\fileversion, dernière modification le 20/02/2024.}} +% correspond à \textsf{frenchmath}~\fileversion, dernière modification le 25/02/2024.}} % \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} -% \date{20 février 2024} +% \date{25 février 2024} % \maketitle % % \section{Introduction} -% Cette extension, inspirée de \textsf{mafr} de Christian Obrecht~\cite{MAFR}, +% Cette extension, inspirée à l'origine de \textsf{mafr} de Christian Obrecht~\cite{MAFR}, % permet le respect des règles typographiques des mathématiques françaises, -% en particulier elle permet d'obtenir automatiquement -% les majuscules en romain (lettres droites) plutôt qu'en italique +% en particulier l'obtention automatique des +% majuscules en romain (lettres droites) plutôt qu'en italique % (voir~\cite{RTIN} et~\cite{IGEN}), % et elle gère correctement les espacements % pour les virgules, point-virgules et crochets. -% -% L'extension fournit en outre diverses macros francisées. -% Mais contrairement à \textsf{mafr} nous avons choisi de ne pas +% L'extension fournit en outre diverses macros francisées +% \footnote{Contrairement à \textsf{mafr} nous avons choisi de ne pas % conserver le même nom de commande pour substituer -% des symboles français aux symboles anglais. +% des symboles français aux symboles anglais.}. +% Depuis la version 2.0, \textsf{frenchmath} propose en outre deux options permettant +% de composer les minuscules grecques du mode mathématique en forme droite. % +% \medskip % D'autres solutions existent pour composer les majuscules mathématiques en romain, -% par exemple l'extension \textsf{unicode-math}~\cite{UNIC} mais qui doit être compilée -% avec \XeLaTeX\ ou \LuaLaTeX\ (et doit être chargée \emph{avant} \textsf{frenchmath}) ; -% pour pdf\LaTeX\, nous avons les extensions \textsf{fourier} de Michel Bovani~\cite{FOUR} +% par exemple avec \XeLaTeX\ ou \LuaLaTeX\ et l'extension \textsf{unicode-math}~\cite{UNIC}. +% Celle-ci peut être utilisée avec \textsf{frenchmath} à condition d'être chargée \emph{avant}. +% Pour pdf\LaTeX\, nous avons les extensions \textsf{fourier} de Michel Bovani~\cite{FOUR} % (avec la famille des fontes Adobe Utopia) % ou encore \textsf{mathdesign} de Paul Pichaureau~\cite{DESIGN} % (avec les polices Adobe Utopia, URW Garamond ou Bitstream Charter). % Mais \textsf{frenchmath} fournit une solution générique % s'adaptant à n'importe quelle police de caractères. % +% \medskip % Certaines préconisations, telles que composer en lettre droite % et non en italique le symbole différentiel, % les constantes mathématiques i et e~\cite{IGEN}, @@ -235,9 +241,6 @@ % \textsf{tablvar}~\cite{TABL} qui permet de réaliser % de jolis tableaux de variations, spécificité des mathématiques françaises. % -% Depuis la version 2.0, \textsf{frenchmath} propose deux options permettant -% de composer les minuscules grecques du mode mathématique en forme droite. -% % \section{Utilisation} % % \subsection{Majuscules mathématiques} @@ -245,15 +248,15 @@ % \og les lettres majuscules sont toujours % composées en romain \fg ($A, B, C\ldots$) et non en italique % (cf. \cite{RTIN} p.107, voir aussi~\cite{IGEN}). -% En utilisant \XeLaTeX\ ou \LuaLaTeX\ avec des polices mathématiques OpenType, -% cette convention est assez commode à mettre en œuvre -% \footnote{Voir les options \texttt{math-style=upright} -% ou \texttt{math-style=french} de l'extension \textsf{unicode-math}.} ; +% En utilisant \XeLaTeX\ ou \LuaLaTeX, +% avec l'option \texttt{math-style=french} de l'extension \textsf{unicode-math}, +% cette convention est assez commode à mettre en œuvre, +% y compris avec les polices TrueType ou OpenType ; % par contre, avec \LaTeX\ ou pdf\LaTeX, elle est peu respectée % et les extensions précitées ne fonctionnent qu'avec des polices particulières. % Par défaut \textsf{frenchmath} compose automatiquement les majuscules % mathématiques latines en romain, -% quelle que soit la fonte utilisée. +% quelle que soit la police utilisée. % Par exemple |\[ P(X)=\sum_{i=0}^{n} a_i X^i \]| donne avec \textsf{frenchmath} % \[ P(X)=\sum_{i=0}^{n}a_i X^i. \] % @@ -300,14 +303,13 @@ % \end{itemize} % % Cette deuxième approche parait meilleure, néanmoins \textsf{ncccomma} -% ne fonctionne pas avec avec \textsf{babel-french} utilisé conjointement avec -% l'option \texttt{autolanguage} +% ne fonctionne pas avec \textsf{babel-french} utilisé conjointement avec +% l'extension \textsf{numprint} et son option \texttt{autolanguage} % \footnote{L'option \texttt{autolanguage} de \textsf{numprint} utilisée % conjointement avec l'option \texttt{french} de \textsf{babel} garantit un espacement % correct entre les groupes de trois chiffres dans les grands nombres, % qui doit être une espace insécable et non dilatable~\cite{RTIN}, -% légèrement plus grande que l'espace que l'on obtient sans cette option.} -% de l'extension \textsf{numprint}. +% légèrement plus grande que l'espace que l'on obtient sans cette option.}. % En outre \textsf{ncccomma} ne fonctionne pas non plus % avec l'extension \textsf{unicode-math} (et bugue à l'appel |\setmathfont|). % Dans son article \emph{Intelligent commas}~\cite{BECC}, @@ -316,10 +318,10 @@ % Le code a donc été revu et simplifié afin de régler proprement ces incompatibilités. % Comme bien des pays utilisent la virgule comme % séparateur décimal, il fait l'objet d'une extension séparée, -% \textsf{decimalcomma}~\cite{DECC}, qui est chargée par \textsf{frenchmath} +% \mbox{\textsf{decimalcomma}}~\cite{DECC}, qui est chargée par \textsf{frenchmath} % (depuis la version 2.7). -% Mais si on utilise \textsf{unicode-math}, il est alors impératif de le charger -% \emph{avant} \textsf{frenchmath} +% Mais, si on utilise \textsf{unicode-math}, il est alors impératif de charger +% \textsf{frenchmath} \emph{après}. % \footnote{L'extension \textsf{icomma} présente la même limitation et doit être chargée % après \textsf{unicode-math}.}. % @@ -508,7 +510,7 @@ % % Signalons que, pour l'extension \textsf{mathptmx} (basée sur la police de texte Times), % |\jmath| n'est pas disponible, mais \textsf{frenchmath} contourne ce problème -% en chargeant alors \textsf{dotlessj}~\cite{DLJ} de David Carlisle, +% en chargeant alors \textsf{dotlessj} de David Carlisle~\cite{DLJ}, % ce qui permet aux macros ci-dessus de fonctionner normalement. % % \subsection{Lettres grecques} @@ -516,9 +518,9 @@ % pour les mathématiques françaises ne semble pas aussi claire que pour les lettres romaines % et il y a parfois divergence sur ce point. % Beaucoup recommandent l'usage des lettres grecques -% minuscules en forme droite~\cite{FOUR}~\cite{DESIGN}~\cite{PMISO}, mais certains +% minuscules en forme droite (\cite{FOUR}~\cite{DESIGN}~\cite{PMISO}), mais certains % auteurs préconisent l'italique, -% comme pour toutes les variables mathématiques~\cite{AA}. +% comme pour toutes les variables mathématiques (\cite{AA}). % Le lexique des règles typographiques en usage à l’Imprimerie Nationale~\cite{RTIN} % les compose en forme droite et relativement grasses (p.108) % sans préciser s'il s'agit vraiment d'une règle @@ -573,18 +575,16 @@ % % \medskip % L'extension \textsf{frenchmath} fournit les options décrites ci-dessous -% afin d'obtenir les lettres grecques en forme droite. +% qui permettent d'obtenir les lettres grecques en forme droite. % Ces options peuvent être utilisées y compris avec \textsf{unicode-math}, -% mais seulement en compilant avec \XeLaTeX\ et non pas \LuaLaTeX\ -% (et \textsf{unicode-math} doit être chargé -% \emph{avant} \textsf{frenchmath}). -% +% mais \textsf{frenchmath} doit toujours être chargé +% \emph{après} \textsf{unicode-math}. % % \medskip % \DescribeEnv{[lgrmath]} % En activant l'option \texttt{lgrmath}, \textsf{frenchmath} % charge l'extension du même nom avec son option \texttt{style=french} -% et la fonte fcm (de l'extension \textsf{cm-lgc}) +% et la fonte \texttt{fcm} (de l'extension \textsf{cm-lgc}) % \footnote{Évidemment il faut que \textsf{cm-lgc} soit installée % sur votre distribution sans quoi la fonte de substitution LGR/cmr/m/n sera utilisée.}. % Celle-ci se marie particulièrement bien avec la police usuelle Latin Modern. @@ -598,15 +598,16 @@ % % \DescribeMacro{\SaveGreekItalics} % On peut aussi choisir d'autres fontes en chargeant l'extension -% \textsf{lgrmath} indépendamment de \textsf{frenchmath} et sans son option \texttt{lgrmath} +% \textsf{lgrmath} indépendamment de \textsf{frenchmath} % (voir par exemple les options \texttt{font=Alegreya-LF} ou \texttt{font=Cochineal-LF} % de \textsf{lgrmath}). -% Dans ce cas, si on veut conserver les lettres italiques d'origine, +% Dans ce cas, il ne faut pas activer l'option \texttt{lgrmath} de \textsf{frenchmath} +% et, si l'on veut conserver les lettres italiques d'origine, % il faut précéder le chargement % de \textsf{lgrmath} de la commande |\SaveGreekItalics| ; -% et si on utilise \textsf{unicode-math}, il faut en outre placer cette commande -% et le |\usepackage[...]{lgrmath}| dans un |\AtBeginDocument|. - +% avec \textsf{unicode-math}, il faut en outre placer cette commande +% dans un |\AtBeginDocument| avec |\usepackage[style=french,font=...]{lgrmath}| +% et \emph{après} le chargement de \textsf{unicode-math}. % % \medskip % \DescribeEnv{[upgreek]} @@ -620,28 +621,26 @@ % utilisant la police Adobe Symbol et qui produit des lettres grecques assez grasses : % $\upalphasym$, $\upbetasym$, \ldots, $\uppisym$, etc. % -% Si l'on veut, par contre, utiliser l'extension \textsf{upgreek} +% Si l'on veut utiliser l'extension \textsf{upgreek} % avec l'une des deux autres options disponibles, \texttt{Euler} % (qui produit $\upalpha, \upbeta, \ldots, \uppi$, etc.) % ou \texttt{Symbolsmallscale}, % il faut charger l'extension \textsf{upgreek} avec l'option souhaitée -% indépendamment de \textsf{frenchmath}. -% Mais en conservant toutefois l'option \texttt{upgreek}, \textsf{frenchmath} -% redéfinira les commandes |\alpha|, |\beta|, etc. -% pour composer automatiquement les lettres en forme droite -% (comme alias de |\upalpha|, |\upbeta|\ldots). -% -% \DescribeMacro{\upgreekUndefined} -% Comme pour \textsf{lgrmath}, si on veut que les formes italiques d'origine +% indépendamment de \mbox{\textsf{frenchmath}}. +% Par contre, pour que les commandes |\alpha|, |\beta|\ldots correspondent +% aux formes droites (comme alias de |\upalpha|, |\upbeta|\ldots), +% il faut ici conserver l'option \texttt{upgreek} de \textsf{frenchmath}. +% Comme pour \textsf{lgrmath}, si l'on veut que les formes italiques d'origine % restent toujours disponibles avec les commandes -% |\italpha|, |\itbeta|, \ldots, |\itpi|, etc., +% |\italpha|, |\itbeta|, etc., % il faut précéder le chargement de l'extension \textsf{upgreek} de la commande % |\SaveGreekItalics| ; +% \DescribeMacro{\upgreekUndefined} % et si l'on utilise \textsf{unicode-math}, il faut en outre ajouter la commande % |\upgreekUndefined| avant le |\usepackage[...]{upgreek}| et les trois -% dans un |\AtBeginDocument| placé entre le chargement de \textsf{unicode-math} +% dans un |\AtBeginDocument| placé \emph{entre} le chargement de \textsf{unicode-math} % et celui de \textsf{frenchmath} -% \footnote{Tout cela est bien contraignant mais c'est lié au fonctionnement capricieux +% \footnote{Tout cela est bien contraignant, mais c'est lié au fonctionnement capricieux % de \textsf{unicode-math} qui génère de nombreuses incompatibilités. Ceci dit, % on n'a en principe besoin de nos options de lettres grecques droites que si l'on n'est % pas satisfait de celles fournies par \textsf{unicode-math}.}. @@ -665,7 +664,7 @@ % donne accès aux lettres en forme droite \textalpha, \textbeta, \ldots, % \textpi, etc., % mais en mode texte avec |\textalpha|, |\textbeta|, etc. -% Ces glyphes, voisines de la fonte fcm accessible avec \textsf{lgrmath}, +% Ces glyphes, semblables à celles de la fonte \texttt{lmr} accessible avec \textsf{lgrmath}, % se marient également bien avec la police Latin Modern, % par contre le thêta produit, \texttheta, n'est pas vraiment % celui qui est d'usage en mathématiques. @@ -854,14 +853,14 @@ % pour que cela fonctionne avec \textsf{unicode-math} et % pour laisser à l'utilisateur la possibilité de charger \textsf{upgreek} % après \textsf{frenchmath} et éviter un conflit d'option. -% On sauvegarde les lettres grecques d'origine dans les macros |\italpha|, \ldots, |\itomega|, -% grâce à la commande |\SavedGreekItalics|. +% On sauvegarde les lettres grecques d'origine dans les macros |\italpha|, \ldots, +% |\itomega|, grâce à la commande |\SavedGreekItalics|. % La macro |\upgreekUndefined| ne sert que si l'on veut utiliser \textsf{upgreek} % avec \textsf{unicode-math} : elle permet de \og vider \fg la définition % de |\upalpha|, |\upbeta|\ldots, car sinon leur redéfinition par \textsf{upgreek} % est impossible. % \begin{macrocode} -\newcommand\SaveGreekItalics{ +\providecommand\SaveGreekItalics{% pourrait être définie ailleurs \let\italpha\alpha \let\itbeta\beta \let\itgamma\gamma @@ -892,7 +891,7 @@ \let\itvarphi\varphi } -\newcommand\upgreekUndefined{ +\providecommand\upgreekUndefined{ \let\upalpha\@undefined \let\upbeta\@undefined \let\upgamma\@undefined @@ -1038,9 +1037,9 @@ % \bibitem{DECC} \emph{The \textsf{decimalcomma} package}. Antoine Missier, % CTAN, v1.4 30/12/2023. % \bibitem{BRACKETS} \emph{Intelligent brackets -- The \textsf{ibrackets} package}, -% Antoine Missier, v1.2 26/07/2023. +% Antoine Missier, CTAN, v1.2 26/07/2023. % \bibitem{TOOLS} \emph{The \textsf{mathtools} package}, -% Morten Høgholm, Lars Madsen and the \LaTeX3 project, CTAN v1.29 29/06/2022. +% Morten Høgholm, Lars Madsen and the \LaTeX3 project, CTAN, v1.29 29/06/2022. % \bibitem{MATAL} \emph{The \textsf{mathalpha}, \textsc{aka} \textsf{mathalfa} package}, % Michael Sharpe, CTAN, v1.143 18/11/2021. % \bibitem{DLJ} \emph{\textsf{dotlessj}}, David Carlisle, CTAN, v0.03 09/12/1998. diff --git a/macros/latex/contrib/frenchmath/frenchmath.pdf b/macros/latex/contrib/frenchmath/frenchmath.pdf index 7c77b5ac6a..566efe4362 100644 Binary files a/macros/latex/contrib/frenchmath/frenchmath.pdf and b/macros/latex/contrib/frenchmath/frenchmath.pdf differ diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf index 219a826ef9..e809c36645 100644 Binary files a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf and b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf differ diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex index 3cef2b2503..a8aba8bbae 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex @@ -5,8 +5,8 @@ % arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') \documentclass[a4paper,french,11pt]{article} -\def\PLversion{3.02b} -\def\PLdate{9 février 2024} +\def\PLversion{3.02c} +\def\PLdate{23 février 2024} \usepackage{amsfonts} \usepackage{ProfLycee} \useproflyclib{piton,minted,pythontex,ecritures} diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index ba0cd72932..0c71456d5d 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,7 +3,8 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2024/02/09 3.02b Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2024/02/23 3.02c Aide pour l'utilisation de LaTeX en lycee] +% 3.02c Ajout d'une commande pour le calcul d'une congruence (+petite pos / +petite nég) + ligne tkz-convex + Opérations posées % 3.02b Amélioration du code pour les arbres de probas (tks M. Degrange pour les suggestions) % 3.02a Ajout des [ecritures] proba conditionnelle, norme, valeur absolue et IF/IC % 3.01g Ajout de commandes internes, en phase de test (et non documentées à 100%...) diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex index ab5fa85c51..19d13ab932 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex @@ -1,5 +1,5 @@ % proflycee-tools-aleatoire.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %%------EnsembleList diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex index 2fb8b930c0..3454738654 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex @@ -1,5 +1,5 @@ % proflycee-tools-analyse.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %Correction d'un bug sur la raacine carrée... le cas où ça fait 1 ! @@ -812,4 +812,74 @@ {}% } +%====tkz ligne convexité +\makeatletter +\NewDocumentCommand\tkzTabLineConvex{ s m m }{% + %étoilé := mode texte + %1 := ligne + %2 := liste des cases ( ccv / cvx / t / d / i / i* ) + %calculs intermédiaires + \xdef\j{#2}% + \xdef\k{\inteval{#2+1}}% + %récup hauteur ligne + \pgfpointdiff{\pgfpointanchor{T0\j}{center}}{\pgfpointanchor{T0\k}{center}}% + \pgf@xa=\pgf@x + \pgf@ya=\pgf@y + \pgfmathparse{veclen(\pgf@xa,\pgf@ya)/28.45274}% + \global\let\tmphautligne\pgfmathresult% + %suite + \readlist*\lsttabconvex{#3}% + \foreach \i in {1,...,\lsttabconvexlen}{% + \itemtomacro\lsttabconvex[\i]{\paramcvxitem}% + \IfStrEqCase{\paramcvxitem}{% + {d}%double barre + {% + \xdef\nodedouble{\inteval{(\i+1)/2}}% + \draw[double style] (N\nodedouble\j)--(N\nodedouble\k) ;% + }% + {i*}%inflexion + {% + \xdef\nodedouble{\inteval{(\i+1)/2}}% + \draw[line width=\cmdTAB@tbs@lw] (N\nodedouble\j)--([xshift=-12pt]N\nodedouble\k) ;% + \draw[line width=\cmdTAB@tbs@lw] (N\nodedouble\j)--([xshift=12pt]N\nodedouble\k) ;% + \draw (N\nodedouble\k) node[font=\tiny,text width=1.5cm,align=center] {point\\d'inflexion} ; + }% + {i}%inflexion sans texte + {% + \xdef\nodedouble{\inteval{(\i+1)/2}}% + \draw[line width=\cmdTAB@tbs@lw] (N\nodedouble\j)--([xshift=-12pt]N\nodedouble\k) ;% + \draw[line width=\cmdTAB@tbs@lw] (N\nodedouble\j)--([xshift=12pt]N\nodedouble\k) ;% + }% + {t}%trait + {% + \xdef\nodedouble{\inteval{(\i+1)/2}}% + \draw[line width=\cmdTAB@tbs@lw,t style] (N\nodedouble\j)--(N\nodedouble\k) ; + } + {ccv}%concave + {% + \xdef\nodedouble{\inteval{(\i)/2}}% + \IfBooleanTF{#1}% + {% + \draw ($(M\nodedouble\j)!0.5!(M\nodedouble\k)$) node {concave} ;% + }% + {% + \draw[line width={1.5*\cmdTAB@tbs@lw}] ($(M\nodedouble\j)!0.5!(M\nodedouble\k)+({-0.275*\cmdTAB@tbs@espcl},{-0.25*\tmphautligne})$) parabola bend ++({0.275*\cmdTAB@tbs@espcl},{0.5*\tmphautligne}) ($(M\nodedouble\j)!0.5!(M\nodedouble\k)+({0.275*\cmdTAB@tbs@espcl},{-0.25*\tmphautligne})$) ; + }% + }% + {cvx}%concave + {% + \xdef\nodedouble{\inteval{(\i)/2}}% + \IfBooleanTF{#1}% + {% + \draw ($(M\nodedouble\j)!0.5!(M\nodedouble\k)$) node {convexe} ;% + }% + {% + \draw[line width={1.5*\cmdTAB@tbs@lw}] ($(M\nodedouble\j)!0.5!(M\nodedouble\k)+({-0.275*\cmdTAB@tbs@espcl},{0.25*\tmphautligne})$) parabola bend ++({0.275*\cmdTAB@tbs@espcl},{-0.5*\tmphautligne}) ($(M\nodedouble\j)!0.5!(M\nodedouble\k)+({0.275*\cmdTAB@tbs@espcl},{0.25*\tmphautligne})$) ; + }% + }% + }% + }% +} +\makeatother + \endinput \ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex index 01cb4722c4..1d8b4f2826 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex @@ -1,5 +1,5 @@ % proflycee-tools-arithm.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt \RequirePackage{ifthen} @@ -1239,4 +1239,202 @@ \fi +%====RESTE MODULO +\NewDocumentCommand\ResteMod{ s m m }{% + %étoilé := version négative;#2=nb;#3=base + \IfBooleanTF{#1}% + {\num{\xintiieval{irem(#2,#3)-#3}}}% + {\num{\xintiieval{irem(#2,#3)}}}% +} + +%====OPÉRATIONS POSÉES 2/10/16 MULTICOMPILATEUR ? +\RequirePackage{calc} + +\newlength{\widestcharwd} +\newlength{\charwd} +\newlength{\heightercharht} + +\defKV[poseoperation]{% + Base=\def\PoseOpeBase{#1},% + LimiteCapac=\def\PoseOpeLimit{#1},% + SymbDecal=\def\PoseOpeSymb{#1},% + Offset=\def\PoseOpeOffset{#1},% + CouleurRetenue=\def\PoseOpeColReten{#1} +} + +\setKVdefault[poseoperation]{% + Base=dec,% + SymbDecal=.,% + Interm=true,% + Offset=6pt,% + AffEgal=true,% + LimiteCapac=0,% + CouleurRetenue=red +} + +\NewDocumentCommand\IntCalcMaxWidth{ m }{% + \StrLen{#1}[\tmplen]% + \setlength{\widestcharwd}{0pt} + \xintFor* ##1 in {\xintSeq{1}{\tmplen}}\do{% + \StrChar{#1}{##1}[\tmpchar]% + \settowidth{\charwd}{\tmpchar}% + \setlength{\widestcharwd}{\maxof{\widestcharwd}{\charwd}}% + }% +} + +\NewDocumentCommand\IntCreateBoxNumbers{ m }{% + \IfStrEqCase{\PoseOpeBase}{% + {dec}{\IntCalcMaxWidth{0123456789}}% + {bin}{\IntCalcMaxWidth{01}}% + {hex}{\IntCalcMaxWidth{0123456789ABCDEF}}% + }% + \addtolength{\widestcharwd}{\PoseOpeOffset/2}% + \StrLen{#1}[\tmplennumber]% + \xintFor* ##1 in {\xintSeq{1}{\tmplennumber}}\do{% + \StrChar{#1}{##1}[\tmpchiff]% + \makebox[\the\widestcharwd][c]{\tmpchiff}% + }% +} + +\newcommand\AffRetenue[1]{% + \textcolor{\PoseOpeColReten}{\scalebox{0.5}[0.5]{#1}}% +} + +\NewDocumentCommand\IntCreateBoxNumbersRetenue{ m }{% + \IfStrEqCase{\PoseOpeBase}{% + {dec}{\IntCalcMaxWidth{0123456789}}% + {bin}{\IntCalcMaxWidth{01}}% + {hex}{\IntCalcMaxWidth{0123456789ABCDEF}}% + }% + \addtolength{\widestcharwd}{\PoseOpeOffset/2}% + \StrLen{#1}[\tmplennumber]% + \xintFor* ##1 in {\xintSeq{1}{\tmplennumber}}\do{% + \StrChar{#1}{##1}[\tmpchiff]% + \IfEq{\tmpchiff}{X}% + {\makebox[\the\widestcharwd][c]{\textcolor{\PoseOpeColReten}{\scalebox{0.5}[0.5]{}}}}% + {\makebox[\the\widestcharwd][c]{\textcolor{\PoseOpeColReten}{\scalebox{0.5}[0.5]{\tmpchiff}}}}% + }% +} + +\NewDocumentCommand\IntPoseAddition{ m m D<>{} }{% + \StrLen{#1}[\nbchiffA]% + %essai des retenues ?? + \xdef\ListeRetenues{X}% + \xintFor* ##1 in {\xintSeq{1}{\nbchiffA}}\do{% + \StrRight{#1}{##1}[\tmpinterA]% + \StrRight{#2}{##1}[\tmpinterB]% + \IfStrEqCase{\PoseOpeBase}{% + {dec}{\xdef\rescalcrete{\xinteval{\tmpinterA+\tmpinterB}}}% + {bin}{\xdef\rescalcrete{\xintDecToBin{\xinteval{\xintBinToDec{\tmpinterA}+\xintBinToDec{\tmpinterB}}}}}% + {hex}{\xdef\rescalcrete{\xintDecToHex{\xinteval{\xintHexToDec{\tmpinterA}+\xintHexToDec{\tmpinterB}}}}}% + }% + \StrLen{\rescalcrete}[\tmpnbchiffresinter]% + \xintifboolexpr{\tmpnbchiffresinter > ##1}% + {% + \StrGobbleRight{\rescalcrete}{##1}[\tmpretenue]% + \xdef\ListeRetenues{\tmpretenue\ListeRetenues}% + }% + {% + \xintifboolexpr{##1 == \nbchiffA}{}{\xdef\ListeRetenues{X\ListeRetenues}}% + }% + }% + %suite + \IfStrEqCase{\PoseOpeBase}{% + {dec}{\xdef\rescalcbin{\xinteval{#1+#2}}}% + {bin}{\xdef\rescalcbin{\xintDecToBin{\xinteval{\xintBinToDec{#1}+\xintBinToDec{#2}}}}}% + {hex}{\xdef\rescalcbin{\xintDecToHex{\xinteval{\xintHexToDec{#1}+\xintHexToDec{#2}}}}}% + }% + \xintifboolexpr{\PoseOpeLimit > 0 }{\StrRight{\rescalcbin}{\PoseOpeLimit}[\rescalcbin]}{}% + %\ensuremath{\begin{array}{@{\,}r@{\hspace{\PoseOpeOffset}}r@{\,}} + \ensuremath{\begin{NiceArray}[#3]{@{\,}r@{\hspace{\PoseOpeOffset}}r@{\,}} + \RowStyle[cell-space-limits=0pt]{} & \IntCreateBoxNumbersRetenue{\ListeRetenues} \\[-0.5\heightercharht] + \RowStyle[nb-rows=*,cell-space-limits=1pt]{} & \IntCreateBoxNumbers{#1} \\ + + & \IntCreateBoxNumbers{#2} \\ + \hline + \ifboolKV[poseoperation]{AffEgal}{=}{} & \IntCreateBoxNumbers{\rescalcbin} \\ + \end{NiceArray}}% + %\end{array}}% +} + +\NewDocumentCommand\IntPoseSoustraction{ m m D<>{} }{% + \IfStrEqCase{\PoseOpeBase}{% + {dec}{\xdef\rescalcbin{\xinteval{#1-#2}}}% + {bin}{\xdef\rescalcbin{\xintDecToBin{\xinteval{\xintBinToDec{#1}-\xintBinToDec{#2}}}}}% + {hex}{\xdef\rescalcbin{\xintDecToHex{\xinteval{\xintHexToDec{#1}-\xintHexToDec{#2}}}}}% + }% + \xintifboolexpr{\PoseOpeLimit > 0 }{\StrRight{\rescalcbin}{\PoseOpeLimit}[\rescalcbin]}{}% + %\ensuremath{\begin{array}{@{\,}r@{\hspace{\PoseOpeOffset}}r@{\,}} + \ensuremath{\begin{NiceArray}[#3]{@{\,}r@{\hspace{\PoseOpeOffset}}r@{\,}} + \RowStyle[nb-rows=*,cell-space-limits=1pt]{} + & \IntCreateBoxNumbers{#1} \\ + - & \IntCreateBoxNumbers{#2} \\ + \hline + \ifboolKV[poseoperation]{AffEgal}{=}{} & \IntCreateBoxNumbers{\rescalcbin} \\ + \end{NiceArray}}% + %\end{array}}% +} + +\NewDocumentCommand\IntPoseMultiplication{ m m D<>{} }{% + \StrLen{#1}[\nbligninit]% + \StrLen{#2}[\nbligninter]% + \IfStrEqCase{\PoseOpeBase}{% + {dec}{\xdef\rescalcbin{\xinteval{#1*#2}}}% + {bin}{\xdef\rescalcbin{\xintDecToBin{\xinteval{\xintBinToDec{#1}*\xintBinToDec{#2}}}}}% + {hex}{\xdef\rescalcbin{\xintDecToHex{\xinteval{\xintHexToDec{#1}*\xintHexToDec{#2}}}}}% + }% + \xintifboolexpr{\PoseOpeLimit > 0 }{\StrRight{\rescalcbin}{\PoseOpeLimit}[\rescalcbin]}{}% + %\ensuremath{\begin{array}{@{\,}r@{\hspace{\PoseOpeOffset}}r@{\,}} + \ensuremath{\begin{NiceArray}[#3]{@{\,}r@{\hspace{\PoseOpeOffset}}r@{\,}} + \RowStyle[nb-rows=*,cell-space-limits=1pt]{} + & \IntCreateBoxNumbers{#1} \\ + \times & \IntCreateBoxNumbers{#2} \\ + \ifboolKV[poseoperation]{Interm}% + {% + \hline + \xintFor* ##1 in {\xintSeq{1}{\nbligninter}}\do{% + \xintifboolexpr{##1 == 1}{}{+}& + \xdef\tmpindice{\inteval{\nbligninter-##1+1}}\StrChar{#2}{\tmpindice}[\tmpchiff]\IfStrEqCase{\PoseOpeBase}{{dec}{\xdef\rescalcbininter{\xinteval{#1*\tmpchiff}}}{bin}{\xdef\rescalcbininter{\xintDecToBin{\xinteval{\xintBinToDec{#1}*\xintBinToDec{\tmpchiff}}}}}{hex}{\xdef\rescalcbininter{\xintDecToHex{\xinteval{\xintHexToDec{#1}*\xintHexToDec{\tmpchiff}}}}}}% + \IfEq{\tmpchiff}{0}% + {\xdef\rescalcbininter{}\xintFor* ##2 in {\xintSeq{1}{\nbligninit}}\do{\xdef\rescalcbininter{0\rescalcbininter}}% + }{}% + \xintifboolexpr{\PoseOpeLimit > 0 }{\StrRight{\rescalcbininter}{\PoseOpeLimit}[\rescalcbininter]}{}% + \IntCreateBoxNumbers{\rescalcbininter} + \xintifboolexpr{##1 == 1}{}{\xintFor* ##2 in {\xintSeq{1}{##1-1}}\do{\makebox[\the\widestcharwd][c]{\PoseOpeSymb}}}\\ + }% + }% + {}% + \hline + \ifboolKV[poseoperation]{AffEgal}{=}{} & \IntCreateBoxNumbers{\rescalcbin} \\ + \end{NiceArray}}% + %\end{array}}% +} + +\NewDocumentCommand\OperationPosee{ O{} m D<>{} }{% + \restoreKV[poseoperation]% + \setKV[poseoperation]{#1}% + \IfStrEqCase{\PoseOpeBase}{% + {dec}{\settoheight{\heightercharht}{\hbox{0123456789}}}% + {bin}{\settoheight{\heightercharht}{\hbox{01}}}% + {hex}{\settoheight{\heightercharht}{\hbox{0123456789ABCDEF}}}% + }% + \IfSubStr{#2}{+}% + {% + \StrCut{#2}{+}{\tmpcalcA}{\tmpcalcB}% + \IntPoseAddition{\tmpcalcA}{\tmpcalcB}<#3> + }% + {}% + \IfSubStr{#2}{-}% + {% + \StrCut{#2}{-}{\tmpcalcA}{\tmpcalcB}% + \IntPoseSoustraction{\tmpcalcA}{\tmpcalcB}<#3> + }% + {}% + \IfSubStr{#2}{*}% + {% + \StrCut{#2}{*}{\tmpcalcA}{\tmpcalcB}% + \IntPoseMultiplication{\tmpcalcA}{\tmpcalcB}<#3> + }% + {}% +} + \endinput \ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex index d8379269b3..2650a7ef4f 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex @@ -1,5 +1,5 @@ % proflycee-tools-complexes.tex -% Copyright 2023 Cédric Pierquet (expérimental) +% Copyright 2023-2024 Cédric Pierquet (expérimental) % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt \NewDocumentCommand\PartieReelle{ D<>{} m O{\PartReRes} }{% diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex index 3b05d92764..0a1555c4e9 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex @@ -1,5 +1,5 @@ % proflycee-tools-ecritures.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %===PACKAGE diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex index eb898aa85a..ffbe198633 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex @@ -1,5 +1,5 @@ % proflycee-tools-geom.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %%------PaveDroitTikZ diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex index 747e425b58..22775038e7 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex @@ -1,5 +1,5 @@ % proflycee-tools-graphiques.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %%------SPLINES diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex index 20cfa254a5..195b07c6a0 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex @@ -1,5 +1,5 @@ % proflycee-tools-listings.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %3.01f Suppression Terminal (doublon avec sim-os-menus) diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex index 98bf736609..af4aebf384 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex @@ -1,5 +1,5 @@ % proflycee-tools-minted.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %3.00g Modif mineure pour la marge gauche diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex index b4690b1920..f0011170eb 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex @@ -1,5 +1,5 @@ % proflycee-tools-piton.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %3.01f PseudoCode via piton (?) diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex index 41f8ca7ea5..950c59a4a8 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex @@ -1,5 +1,5 @@ % proflycee-tools-probas.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %%------LOISPROBAS diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-pythontex.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-pythontex.tex index 8f865f0020..e44373aab8 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-pythontex.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-pythontex.tex @@ -1,5 +1,5 @@ % proflycee-tools-pythontex.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %2.7.5 Argument optionnel pour commencer la numérotation à une autre ligne que 1 diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex index b80cc6fef6..7bdc44ed02 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex @@ -1,5 +1,5 @@ % proflycee-tools-recreat.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %%------FENÊTRE CALCUL FORMEL @@ -436,12 +436,14 @@ \xdef\LongueurGratte{0.28cm} \xdef\HauteurGratte{0.20cm} +\makeatletter \newcommand{\CalcLg}[2]{% \pgfpointdiff{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgfmathparse{veclen(\pgf@xa,\pgf@ya)}% } +\makeatother \defKV[allumettes]{CouleurBois=\def\MatchWoodColor{#1},CouleurBout=\def\MatchEndColor{#1},Decal=\def\MatchOffset{#1}} \setKVdefault[allumettes]{CouleurBois=BoisAllumette,CouleurBout=GratteAllumette,Decal={0.8*\LongueurGratte},NoirBlanc=false} diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex index 335b524ec2..cd01f4393b 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex @@ -1,5 +1,5 @@ % proflycee-tools-stats.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %3.01a Courbe ECC diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex index f83f215d01..9319c40816 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex @@ -1,5 +1,5 @@ % proflycee-tools-suites.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %%------CabWeb diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex index 24ec136ca5..6efa608f73 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex @@ -1,5 +1,5 @@ % proflycee-tools-trigo.tex -% Copyright 2023 Cédric Pierquet +% Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt %%------CercleTrigo diff --git a/macros/latex/contrib/ufrgscca/README.md b/macros/latex/contrib/ufrgscca/README.md index 10781e740f..558ac6e182 100644 --- a/macros/latex/contrib/ufrgscca/README.md +++ b/macros/latex/contrib/ufrgscca/README.md @@ -98,7 +98,7 @@ The Current Maintainer of this work is Alceu Frigeri * README.md (this file) - quick introduction -* ufrgscca.tex +* ufrgscca.tex - pakcage/bundle documentation * ufrgscca.pdf - documentation in PDF format @@ -107,6 +107,10 @@ The Current Maintainer of this work is Alceu Frigeri ## Changelog +* Version 2.5 (this) + - Added PDF bookmarcks to each and every Form/Report page. + - Added \studentReviewerSetCase (see manual) + * Version 2.4/2.4a (this) - a few typos (including [l3kernel prop check](https://github.com/latex3/latex3/issues/1460)) - extended \studentfate possible values (see documentation). diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf index 9eca25075c..5ae4795d7f 100644 Binary files a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf and b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf differ diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex index e7a78b4fdd..0d5cd7d7ad 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -1052,7 +1052,7 @@ Those commands are only of use when using \tsobj[pkg]{ufrgscca-coord}. \tsmacro{ \end{codedescribe} -\begin{codedescribe}[code,new=2023/11/18,update=2023/12/02,update=2024/01/15]{\studentCase,\studentAdvCase,\studentCoadvCase,\studentDismissCase,\studentNewPageCase,\studentDistinctBoardCase,\studentReviewerCase} +\begin{codedescribe}[code,new=2023/11/18,update=2023/12/02,update=2024/01/15,update=2024/02/22]{\studentCase,\studentAdvCase,\studentCoadvCase,\studentDismissCase,\studentNewPageCase,\studentDistinctBoardCase,\studentReviewerCase,\studentReviewerSetCase} \begin{codesyntax}% \tsmacro{\studentCase}{if-A-B-C,if-D,if-Exam-C,if-Exam-D,if-FF} \tsmacro{\studentAdvCase}{if-more-than-one,if-not} @@ -1060,7 +1060,8 @@ Those commands are only of use when using \tsobj[pkg]{ufrgscca-coord}. \tsmacro{ \tsmacro{\studentDismissCase}{if-dismiss,if-not} \tsmacro{\studentNewPageCase}{if-newpage,if-not} \tsmacro{\studentDistinctBoardCase}{if-distinct,if-not} - \tsmacro{\studentReviewerCase}{if-marked,if-not} + \tsmacro{\studentReviewerCase}{rev-num,if-marked,if-not} + \tsmacro{\studentReviewerSetCase}{rev-num,if-set,if-not} \end{codesyntax} These are a set of auxiliary conditionals, for instance, \tsobj{\StudentCase} will execute \emph{only one} of the \tsobj[meta]{if-} accordingly. \end{codedescribe} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty index cc62a4bc4d..9618258cc0 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA ABNT layout} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-abnt} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19}, - version .code:n = {2.4a} , + date .code:n = {2024/02/25}, + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~ abnt~layout} } \cs_if_exist:NF \PkgInfo diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def index c94a4d44ab..8bb7ff8ce7 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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 81648a69b8..83bb0e06dc 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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 109029231e..db572b8c15 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA coord commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-coord} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19}, - version .code:n = {2.4a} , + date .code:n = {2024/02/25}, + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~ coordination~ report~ commands} } \cs_if_exist:NF \PkgInfo @@ -78,12 +78,6 @@ report-II. bool_set:N = \l__ufrgscca_reportII_bool , report-II. usage:n = general , - checklist-I. bool_set:N = \l__ufrgscca_checklistI_bool , - checklist-I. usage:n = general , - - checklist-II. bool_set:N = \l__ufrgscca_checklistII_bool , - checklist-II. usage:n = general , - boards. bool_set:N = \l__ufrgscca_boards_bool , boards. usage:n = general , @@ -120,8 +114,6 @@ \RequirePackage{ufrgscca-forms} %\RequirePackage{pgfcalendar} -% - \starray_new:n {prof} \starray_def_from_keyval:nn {prof} @@ -526,15 +518,6 @@ } }% -%% -%% DEPRECATED, to be removed. -%% -%\NewDocumentCommand{\boarddate}{mm}{%% -% \SetConsts{% -% date:#1 = {#2} , -% } -%}% -% \NewDocumentCommand{\semester}{m}{%% \SetTerms{% semester = {#1} , @@ -703,10 +686,11 @@ } {\seq_gput_right:cn {l__ufrgscca_#1_list_graded_seq}{#2}} } - + \NewDocumentCommand{\tcreports}{O{}m}{ { + \__ufrgscca_set_reports:n {#1} \bool_if:cF {l__ufrgscca_#2_classified_bool} { \sortstudentlist{#2} } @@ -727,15 +711,15 @@ { \MakeForm{report-I} } \bool_if:NT \l__ufrgscca_reportII_bool { \MakeForm{report-II} } - \bool_if:NT \l__ufrgscca_checklistI_bool - { \MakeForm{checklist-I} } - \bool_if:NT \l__ufrgscca_checklistII_bool - { \MakeForm{checklist-II} } \bool_if:NT \l__ufrgscca_boards_bool { \MakeForm{boards} } \seq_map_inline:cn {l__ufrgscca_baselist_seq} { \studentselect{##1} + \eDataSet{student} + \__ufrgscca_tlset_rem_accents:Ne \StudentBookMarkTL {\eDataFields{name}~-~} + \__ufrgscca_student_emptyfields_if_none: + \bool_if:NT \l__ufrgscca_cocertificate_bool { \studentCoadvCase @@ -751,8 +735,24 @@ \bool_if:NT \l__ufrgscca_revformsI_bool { \SetReviewer{2} + \studentReviewerSetCase{2} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~2} + } \MakeForm{examinersform-I} \SetReviewer{3} + \studentReviewerSetCase{3} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~3} + } \MakeForm{examinersform-I} \MakeForm{rectifyapproval-I} } @@ -765,12 +765,36 @@ \bool_if:NT \l__ufrgscca_revformsII_bool { \SetReviewer{1} + \studentReviewerSetCase{1} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~1} + } \MakeForm{examinersform-II} \MakeForm{correctionsform-II} \SetReviewer{2} + \studentReviewerSetCase{2} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~2} + } \MakeForm{examinersform-II} \MakeForm{correctionsform-II} \SetReviewer{3} + \studentReviewerSetCase{3} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~3} + } \MakeForm{examinersform-II} \MakeForm{correctionsform-II} \MakeForm{rectifyapproval-II} @@ -851,21 +875,6 @@ \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}{C1,C2,C3,C4,C5,C6}\hline - } - } - -} \bool_new:N \l__ufrgscca_checklist_bool \bool_set_true:N \l__ufrgscca_checklist_bool diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty index cc531e3156..d07c1e4670 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA core commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-core} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19}, - version .code:n = {2.4a} , + date .code:n = {2024/02/25}, + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~core~commands/data} } \cs_if_exist:NF \PkgInfo @@ -186,6 +186,7 @@ grade = 0 , gradetype = , flag-examreview = \c_false_bool , + flag-set = \c_false_bool , } , altreviewer . struct = { first = , @@ -425,6 +426,12 @@ {#2} } +\NewDocumentCommand{\studentReviewerSetCase}{mmm}{ + \starray_term_syntax:n{student.reviewer[#1]} + \bool_if:nTF {\starray_parsed_get_prop:n{flag-set}} + {#2} + {#3} +} \NewDocumentCommand{\studentiterate}{m}{ \starray_iterate_over:nn{student}{#1} @@ -612,6 +619,7 @@ \NewDocumentCommand{\examiner}{O{}mmO{}}{%% \starray_new_term:nn {student.reviewer}{} + \starray_gset_prop:nnn {student.reviewer}{flag-set}{\c_true_bool} \__ufrgscca_set_prof:nnnnn {reviewer}{#1}{#2}{#3}{#4} }% @@ -644,3 +652,47 @@ \def\emptybox{\framebox[3em]{\color{white}W}} + + +%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% +% +% This below is to create PDF bookmarks without accents (if needed) +% for instance, PDFsam uses bookmarks as file names +% +%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% + + +\cs_new_protected:Npn \__ufrgscca_tlset_rem_accents:Nn #1#2 + { + \str_set:Ne \l_tmpa_str {#2} + \str_replace_all:Nnn \l_tmpa_str {ã}{a} + \str_replace_all:Nnn \l_tmpa_str {õ}{o} + \str_replace_all:Nnn \l_tmpa_str {ñ}{n} + \str_replace_all:Nnn \l_tmpa_str {á}{a} + \str_replace_all:Nnn \l_tmpa_str {é}{e} + \str_replace_all:Nnn \l_tmpa_str {í}{i} + \str_replace_all:Nnn \l_tmpa_str {ó}{o} + \str_replace_all:Nnn \l_tmpa_str {ú}{u} + \str_replace_all:Nnn \l_tmpa_str {à}{a} + \str_replace_all:Nnn \l_tmpa_str {è}{e} + \str_replace_all:Nnn \l_tmpa_str {ì}{i} + \str_replace_all:Nnn \l_tmpa_str {ò}{o} + \str_replace_all:Nnn \l_tmpa_str {ù}{u} + \str_replace_all:Nnn \l_tmpa_str {ä}{a} + \str_replace_all:Nnn \l_tmpa_str {ë}{e} + \str_replace_all:Nnn \l_tmpa_str {ï}{i} + \str_replace_all:Nnn \l_tmpa_str {ö}{o} + \str_replace_all:Nnn \l_tmpa_str {ü}{u} + \str_replace_all:Nnn \l_tmpa_str {â}{a} + \str_replace_all:Nnn \l_tmpa_str {ê}{e} + \str_replace_all:Nnn \l_tmpa_str {î}{i} + \str_replace_all:Nnn \l_tmpa_str {ô}{o} + \str_replace_all:Nnn \l_tmpa_str {û}{u} + \str_replace_all:Nnn \l_tmpa_str {ç}{c} + \tl_set:Ne #1 {\l_tmpa_str} + } + +\cs_generate_variant:Nn \__ufrgscca_tlset_rem_accents:Nn {Ne} + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex index 72349eab9d..e661e6184d 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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-cover.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty index fa26df00a4..977fa2917f 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA cover commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-cover} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19}, - version .code:n = {2.4a} , + date .code:n = {2024/02/25}, + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~ cover~pages} } \cs_if_exist:NF \PkgInfo diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty index 2d05f2dd10..752ecfb740 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA curricula commands} %%%%%%% @@ -41,8 +41,8 @@ { name .code:n = {ufrgscca-curr} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19}, - version .code:n = {2.4a} , + date .code:n = {2024/02/25}, + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~ curricula~ commands} } \cs_if_exist:NF \PkgInfo diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty index 7de2244182..a20c73dd50 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA forms commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-forms} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19}, - version .code:n = {2.4a} , + date .code:n = {2024/02/25}, + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~ forms~commands} } \cs_if_exist:NF \PkgInfo @@ -110,35 +110,106 @@ advisorsapproval-II.code = { \MakeForm{advisorsapproval-II} }, - receipts-I.usage = general, - receipts-I.code = { - \MakeForm{receipts-II} - }, receipts-II.usage = general, receipts-II.code = { - \MakeForm{receipts-II} + \bool_if:nTF \l__ufrgscca_emptyforms_bool + { + \SetReviewer{1} + \tl_set:Nn \ReviewerBookMarkTL {} + \MakeForm{receipts-II} + } + { + \SetReviewer{1} + \studentReviewerSetCase{1} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~1} + } + \MakeForm{receipts-II} + } }, examinersforms-I.usage = general, examinersforms-I.code = { - \SetReviewer{2} - \MakeForm{examinersform-I} - \SetReviewer{3} - \MakeForm{examinersform-I} + \bool_if:nTF \l__ufrgscca_emptyforms_bool + { + \SetReviewer{1} + \tl_set:Nn \ReviewerBookMarkTL {} + \MakeForm{examinersform-I} + } + { + \SetReviewer{2} + \studentReviewerSetCase{2} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~2} + } + \MakeForm{examinersform-I} + \SetReviewer{3} + \studentReviewerSetCase{3} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~3} + } + \MakeForm{examinersform-I} + } }, examinersforms-II.usage = general, examinersforms-II.code = { - \SetReviewer{1} - \MakeForm{receipts-II} - \MakeForm{examinersform-II} - \MakeForm{correctionsform-II} - \SetReviewer{2} - \MakeForm{receipts-II} - \MakeForm{examinersform-II} - \MakeForm{correctionsform-II} - \SetReviewer{3} - \MakeForm{receipts-II} - \MakeForm{examinersform-II} - \MakeForm{correctionsform-II} + \bool_if:nTF \l__ufrgscca_emptyforms_bool + { + \SetReviewer{1} + \tl_set:Nn \ReviewerBookMarkTL {} + \MakeForm{receipts-II} + \MakeForm{examinersform-II} + \MakeForm{correctionsform-II} + } + { + \SetReviewer{1} + \studentReviewerSetCase{1} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~1} + } + \MakeForm{receipts-II} + \MakeForm{examinersform-II} + \MakeForm{correctionsform-II} + \SetReviewer{2} + \studentReviewerSetCase{2} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~2} + } + \MakeForm{receipts-II} + \MakeForm{examinersform-II} + \MakeForm{correctionsform-II} + \SetReviewer{3} + \studentReviewerSetCase{3} + { + \eDataSet{student.reviewer} + \tl_set:Ne \ReviewerBookMarkTL {~-~\eDataFields{name}} + } + { + \tl_set:Nn \ReviewerBookMarkTL {~-~3} + } + \MakeForm{receipts-II} + \MakeForm{examinersform-II} + \MakeForm{correctionsform-II} + } }, rectifyapproval-I.usage = general, rectifyapproval-I.code = { @@ -152,14 +223,19 @@ \NewDocumentCommand{\tcforms}{m}{% + \bool_set_false:N \l__ufrgscca_emptyforms_bool \__ufrgscca_student_emptyfields_if_none: + \eDataSet{student} + \tl_set:Ne \StudentBookMarkTL {\eDataFields{name}~-~} \SetKeys[forms]{#1}% } \NewDocumentCommand{\tcemptyforms}{m} { + \bool_set_true:N \l__ufrgscca_emptyforms_bool \__ufrgscca_emptyfields: + \tl_set:Nn \StudentBookMarkTL {} \SetKeys[forms]{#1}% } @@ -181,6 +257,15 @@ \prop_put:Nnn \l__ufrgscca_forms_prop {#1.#2}{#3} } + +%%% +% Those variables below are used to set bookmarks at the many forms +% They *must* be fully expandable ! +%%% +\tl_new:N \StudentBookMarkTL +\tl_new:N \ReviewerBookMarkTL +\bool_new:N \l__ufrgscca_emptyforms_bool + \NewDocumentCommand{\MakeForm}{m} { \begin{center} \noindent diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex index c8df3c2ce8..22a74c03cc 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -36,7 +36,9 @@ %%%%%%%%%%%%%%% %% req form - Internship %%%%%%%%%%%%%%% -\SetForm{internshiprequest}{heading}{\UseTerm{title.internship}} +\ExplSyntaxOn +\SetForm{internshiprequest}{heading}{\UseTerm{title.internship}\exp_args:Nee \pdfbookmark{\UseTerm{book.internrequestform}}{\UseTerm{book.internrequestform}}} +\ExplSyntaxOff \SetForm{internshiprequest}{title}{\UseTerm{title.requestform}} %%% @@ -85,7 +87,9 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de %%%%%%%%%%%%%%% %% supervisor`s form - Internship %%%%%%%%%%%%%%% -\SetForm{internshipsupervisorform}{heading}{\UseTerm{title.internship}} +\ExplSyntaxOn +\SetForm{internshipsupervisorform}{heading}{\UseTerm{title.internship}\exp_args:Nee \pdfbookmark{\UseTerm{book.internsupervisorform}}{\UseTerm{book.internsupervisorform}}} +\ExplSyntaxOff \SetForm{internshipsupervisorform}{title}{\UseTerm{title.internsupervisorform}} \SetForm{internshipsupervisorform}{footnote}{\UseTerm{footnote.supervisorsform}} @@ -130,7 +134,9 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de %%%%%%%%%%%%%%% %% tutor`s form - Internship %%%%%%%%%%%%%%% -\SetForm{internshiptutorform}{heading}{\UseTerm{title.internship}} +\ExplSyntaxOn +\SetForm{internshiptutorform}{heading}{\UseTerm{title.internship}\exp_args:Nee \pdfbookmark{\UseTerm{book.interntutorform}}{\UseTerm{book.interntutorform}}} +\ExplSyntaxOff \SetForm{internshiptutorform}{title}{\UseTerm{title.interntutorform}} %%% @@ -147,8 +153,7 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de \vfill% Considerações d\DataFields{student.tutor}{article} Prof\DataFields{student.tutor}{narticle}. Tutor\DataFields{student.tutor}{narticle} sobre o Estágio: - - \BlankLines{5}% + \BlankLines{6}% \vfill% @@ -161,8 +166,7 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de \vfill Considerações d\ActivityCoord[internship]{article} Prof\ActivityCoord[internship]{narticle}. Coordenador\ActivityCoord[internship]{narticle} sobre o Estágio: - - \BlankLines{5}% + \BlankLines{6}% \vfill% \hfill\parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.internshipcoord}}} @@ -180,7 +184,9 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\SetForm{attendancelist}{heading}{\UseTerm{title.tcc}} +\ExplSyntaxOn +\SetForm{attendancelist}{heading}{\UseTerm{title.tcc}\exp_args:Nee \pdfbookmark{\UseTerm{book.attendancelist}}{\UseTerm{book.attendancelist}}} +\ExplSyntaxOff \SetForm{attendancelist}{title}{\UseTerm{title.attendancelist}} \SetForm{attendancelist}{opening}{} @@ -205,7 +211,11 @@ Nome do(a) Aluno(a) --- Email\\ %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\SetForm{calendar-I}{heading}{\UseTerm{title.tccI}} +\ExplSyntaxOn +\SetForm{calendar-I}{heading}{\UseTerm{title.tccI}\exp_args:Nee \pdfbookmark{\UseTerm{book.calendar-I}}{\UseTerm{book.calendar-I}}} +\ExplSyntaxOff + +%\SetForm{calendar-I}{heading}{\UseTerm{title.tccI}} \SetForm{calendar-I}{title}{\UseTerm{title.calendar}} \SetForm{calendar-I}{opening}{} @@ -235,7 +245,11 @@ Nome do(a) Aluno(a) --- Email\\ %%%%%%%%%%%%%%% %%%%%%%%%%%%%%% -\SetForm{calendar-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{calendar-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.calendar-II}}{\UseTerm{book.calendar-II}}} +\ExplSyntaxOff + +%\SetForm{calendar-II}{heading}{\UseTerm{title.tccII}} \SetForm{calendar-II}{title}{\UseTerm{title.calendar}} \SetForm{calendar-II}{opening}{} @@ -279,7 +293,9 @@ Nome do(a) Aluno(a) --- Email\\ %%%%%%%%%%%%%%% %% req form - I %%%%%%%%%%%%%%% -\SetForm{request-I}{heading}{\UseTerm{title.tccI}} +\ExplSyntaxOn +\SetForm{request-I}{heading}{\UseTerm{title.tccI}\exp_args:Nee \pdfbookmark{\UseTerm{book.requestform-I}}{\UseTerm{book.requestform-I}}} +\ExplSyntaxOff \SetForm{request-I}{title}{\UseTerm{title.requestform}} \SetForm{request-I}{opening}{ @@ -318,7 +334,9 @@ Nome do(a) Aluno(a) --- Email\\ %%%%%%%%%%%%%%% %% coadvisor - I %%%%%%%%%%%%%%% -\SetForm{coadvisor-I}{heading}{\UseTerm{title.tccI}} +\ExplSyntaxOn +\SetForm{coadvisor-I}{heading}{\UseTerm{title.tccI}\exp_args:Nee \pdfbookmark{\UseTerm{book.coadvisorform-I}}{\UseTerm{book.coadvisorform-I}}} +\ExplSyntaxOff \SetForm{coadvisor-I}{title}{\UseTerm{title.coadvisorform}} \SetForm{coadvisor-I}{opening}{ @@ -362,7 +380,9 @@ Nome do(a) Aluno(a) --- Email\\ %%%%%%%%%%%%%%% %% board approval - I %%%%%%%%%%%%%%% -\SetForm{boardapproval-I}{heading}{\UseTerm{title.tccI}} +\ExplSyntaxOn +\SetForm{boardapproval-I}{heading}{\UseTerm{title.tccI}\exp_args:Nee \pdfbookmark{\UseTerm{book.boardapproval-I}}{\UseTerm{book.boardapproval-I}}} +\ExplSyntaxOff \SetForm{boardapproval-I}{title}{\UseTerm{title.boardapproval}} \SetForm{boardapproval-I}{opening}{\UseTerm{desc.studentwork.full}} @@ -390,7 +410,9 @@ Nome do(a) Aluno(a) --- Email\\ %%%%%%%%%%%%%%% %% advisor's approval - I %%%%%%%%%%%%%%% -\SetForm{advisorsapproval-I}{heading}{\UseTerm{title.tccI}} +\ExplSyntaxOn +\SetForm{advisorsapproval-I}{heading}{\UseTerm{title.tccI}\exp_args:Nee \pdfbookmark{\UseTerm{book.advisorapproval-I}}{\UseTerm{book.advisorapproval-I}}} +\ExplSyntaxOff \SetForm{advisorsapproval-I}{title}{\UseTerm{title.advisorsapproval-I}} \SetForm{advisorsapproval-I}{opening}{\UseTerm{desc.studentwork.full}} @@ -417,7 +439,9 @@ Nome do(a) Aluno(a) --- Email\\ %%%%%%%%%%%%%%% %% examiner's form - I %%%%%%%%%%%%%%% -\SetForm{examinersform-I}{heading}{\UseTerm{title.tccI}} +\ExplSyntaxOn +\SetForm{examinersform-I}{heading}{\UseTerm{title.tccI}\exp_args:Nee \pdfbookmark{\UseTerm{book.reviewersform-I}}{\UseTerm{book.reviewersform-I}}} +\ExplSyntaxOff \SetForm{examinersform-I}{title}{\UseTerm{title.reviewersform}} \SetForm{examinersform-I}{footnote}{\UseTerm{footnote.reviewersform}} \SetForm{examinersform-I}{opening}{% @@ -469,7 +493,9 @@ Outras considerações, parecer (se necessário): \BlankLines{5} %%%%%%%%%%%%%%% %% rectify approval - I %%%%%%%%%%%%%%% -\SetForm{rectifyapproval-I}{heading}{\UseTerm{title.tccI}} +\ExplSyntaxOn +\SetForm{rectifyapproval-I}{heading}{\UseTerm{title.tccI}\exp_args:Nee \pdfbookmark{\UseTerm{book.rectifyapproval-I}}{\UseTerm{book.rectifyapproval-I}}} +\ExplSyntaxOff \SetForm{rectifyapproval-I}{title}{\UseTerm{title.rectifyapproval}} \SetForm{rectifyapproval-I}{opening}{\UseTerm{desc.studentwork.full}} @@ -511,7 +537,9 @@ Outras considerações, parecer (se necessário): \BlankLines{5} %%%%%%%%%%%%%%% %% req form - II %%%%%%%%%%%%%%% -\SetForm{request-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{request-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.requestform-II}}{\UseTerm{book.requestform-II}}} +\ExplSyntaxOff \SetForm{request-II}{title}{\UseTerm{title.requestform}} \SetForm{request-II}{opening}{ @@ -544,10 +572,9 @@ Outras considerações, parecer (se necessário): \BlankLines{5} 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: + \item[$\Box$] NÃO, neste caso \textbf{justifique} a mudança no espaço a seguir:\\[1ex] \end{itemize} - \DataFields{student}{reason} } @@ -563,7 +590,9 @@ Outras considerações, parecer (se necessário): \BlankLines{5} %%%%%%%%%%%%%%% %% coadvisor - II %%%%%%%%%%%%%%% -\SetForm{coadvisor-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{coadvisor-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.coadvisorform-II}}{\UseTerm{book.coadvisorform-II}}} +\ExplSyntaxOff \SetForm{coadvisor-II}{title}{\UseTerm{title.coadvisorform}} \SetForm{coadvisor-II}{opening}{ @@ -608,7 +637,9 @@ Outras considerações, parecer (se necessário): \BlankLines{5} %%%%%%%%%%%%%%% %% board approval - II %%%%%%%%%%%%%%% -\SetForm{boardapproval-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{boardapproval-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.boardapproval-II}}{\UseTerm{book.boardapproval-II}}} +\ExplSyntaxOff \SetForm{boardapproval-II}{title}{\UseTerm{title.boardapproval}} \SetForm{boardapproval-II}{opening}{\UseTerm{desc.studentwork.full}} @@ -642,7 +673,9 @@ Outras considerações, parecer (se necessário): \BlankLines{5} %%%%%%%%%%%%%%% %% advisor's approval - II %%%%%%%%%%%%%%% -\SetForm{advisorsapproval-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{advisorsapproval-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.advisorapproval-II}}{\UseTerm{book.advisorapproval-II}}} +\ExplSyntaxOff \SetForm{advisorsapproval-II}{title}{\UseTerm{title.advisorsapproval-II}} \SetForm{advisorsapproval-II}{opening}{\UseTerm{desc.studentwork.full}} @@ -669,7 +702,9 @@ Outras considerações, parecer (se necessário): \BlankLines{5} %%%%%%%%%%%%%%% %% receipts - II %%%%%%%%%%%%%%% -\SetForm{receipts-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{receipts-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.receipts-II}}{\UseTerm{book.receipts-II}}} +\ExplSyntaxOff \SetForm{receipts-II}{title}{\UseTerm{title.receipts}} \SetForm{receipts-II}{footnote}{\UseTerm{footnote.receipts}} @@ -700,7 +735,9 @@ Outras considerações, parecer (se necessário): \BlankLines{5} %%%%%%%%%%%%%%% %% examiner's form - II %%%%%%%%%%%%%%% -\SetForm{examinersform-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{examinersform-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.reviewersform-II}}{\UseTerm{book.reviewersform-II}}} +\ExplSyntaxOff \SetForm{examinersform-II}{title}{\UseTerm{title.reviewersform}} \SetForm{examinersform-II}{footnote}{\UseTerm{footnote.reviewersform}} @@ -741,7 +778,9 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %%%%%%%%%%%%%%% %% examiner's form - II %%%%%%%%%%%%%%% -\SetForm{correctionsform-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{correctionsform-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.correctionsform-II}}{\UseTerm{book.correctionsform-II}}} +\ExplSyntaxOff \SetForm{correctionsform-II}{title}{\UseTerm{title.correctionsform}} \SetForm{correctionsform-II}{footnote}{\UseTerm{footnote.correctionsform}} @@ -761,22 +800,16 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \item[$\Box$ a)] Está adequado, \begin{enumerate} \item[$\Box$ a.1)] dispensando correções do texto. - \item[$\Box$ a.2)] sendo necessário correções, conforme a seguir (e anotações anexas). - \begin{description}[tcc,noitemsep] - \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 - \end{description} + \item[$\Box$ a.2)] sendo necessário correções, conforme a seguir (e anotações anexas). + \begin{tabular}{llp{2em}ll} + $\Box$ & Ortográfica & & $\Box$ & Regras de Escrita \\ + $\Box$ & Resumo & & $\Box$ & Abstract \\ + $\Box$ & Introdução & & $\Box$ & Conclusões \\ + $\Box$ & Resultados & & $\Box$ & Corpo do Trabalho \\ + $\Box$ & Mais exemplos & & $\Box$ & Equações \\ + $\Box$ & Figuras & & $\Box$ & Tabelas \\ + $\Box$ & Índice & & & \\ + \end{tabular} \end{enumerate} \item[$\Box$ b)] Necessita ser revisto/re-escrito,\footnotemark[2] e: \begin{itemize} @@ -784,13 +817,7 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \item[$\Box$ b.2)] revisarei o trabalho depois de corrigido. \end{itemize} \item[] - \item[$\Box$] Outras considerações (se necessário): \\ - \begin{tabular}{p{0.7\textwidth}} - ~\\\hline - ~\\\hline - ~\\\hline - ~\\\hline - \end{tabular}\\[-1mm] + \item[$\Box$] Outras considerações (se necessário): \BlankLines[-1ex]{6} \end{enumerate} } } @@ -808,7 +835,9 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %%%%%%%%%%%%%%% %% rectify approval - II %%%%%%%%%%%%%%% -\SetForm{rectifyapproval-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{rectifyapproval-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.rectifyapproval-II}}{\UseTerm{book.rectifyapproval-II}}} +\ExplSyntaxOff \SetForm{rectifyapproval-II}{title}{\UseTerm{title.rectifyapproval}} \SetForm{rectifyapproval-II}{opening}{\UseTerm{desc.studentwork.full}} @@ -932,7 +961,7 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %%% \multicolumn{#1}{p{#2}}{\ \ \ \color{darkerred}\UseLabel{board}: \DataFields{student.reviewer[1]}{email} (\DataFields{student.reviewer[1]}{phone}) / \DataFields{student.reviewer[2]}{email} (\DataFields{student.reviewer[2]}{phone}) / \DataFields{student.reviewer[3]}{email} (\DataFields{student.reviewer[3]}{phone})}\\* \multicolumn{#1}{p{#2}}{{\ \ \ \color{darkerblue}\bf \DataFields{student.advisor}{email} (\DataFields{student.advisor}{phone})} ~~ - ~~ - {\color{darkerred} \DataFields{student.reviewer[2]}{email} (\DataFields{student.reviewer[2]}{phone}) / \DataFields{student.reviewer[3]}{email} (\DataFields{student.reviewer[3]}{phone})}}\\* + {\color{darkerred} \studentReviewerSetCase{2}{\DataFields{student.reviewer[2]}{email} (\DataFields{student.reviewer[2]}{phone})}{} / \studentReviewerSetCase{3}{\DataFields{student.reviewer[3]}{email} (\DataFields{student.reviewer[3]}{phone})}{}}}\\* \multicolumn{#1}{p{#2}}{\ \ \ \UseLabel{remarks}: {\color{red}\textbf{\DataFields{student}{remarks}}}}%\\ \hline } @@ -942,7 +971,12 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %%%%%%%%%%%%%%% %% referall letter- I %%%%%%%%%%%%%%% -\SetForm{referral-I}{heading}{\UseTerm{title.tccI}} +%\SetForm{referral-I}{heading}{\UseTerm{title.tccI}} + +\ExplSyntaxOn +\SetForm{referral-I}{heading}{\UseTerm{title.tccI}\exp_args:Nee \pdfbookmark{\UseTerm{book.referral-I}}{\UseTerm{book.referral-I}}} +\ExplSyntaxOff + \SetForm{referral-I}{title}{\UseTerm{semester}} \SetForm{referral-I}{opening}{\UseTerm{desc.sacad}} @@ -991,7 +1025,11 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %%%%%%%%%%%%%%% %% referall letter- II %%%%%%%%%%%%%%% -\SetForm{referral-II}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{referral-II}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.referral-II}}{\UseTerm{book.referral-II}}} +\ExplSyntaxOff + +%\SetForm{referral-II}{heading}{\UseTerm{title.tccII}} \SetForm{referral-II}{title}{\UseTerm{semester}} \SetForm{referral-II}{opening}{\UseTerm{desc.sacad}} @@ -1079,6 +1117,8 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \seq_map_inline:Nn \l__ufrgscca_baselist_graded_seq { \studentselect{##1} +% \__ufrgscca_student_emptyfields_if_none: + \__ufrgscca_emptyterm_if_none:nnn {3}{student.reviewer}{} #2\\\hline \studentExtLine{7}{\UseConst{report.tabMult.#1}}\\\hline \bool_if:nT {\l__ufrgscca_checklist_bool} @@ -1113,6 +1153,7 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \seq_map_inline:Nn #3 { \studentselect{##1} + \__ufrgscca_emptyterm_if_none:nnn {3}{student.reviewer}{} &\\* \multicolumn{#1}{l}{\textbf{\color{#5}\DataFields{student}{name}}}\\* \studentExtLine{#1}{\UseConst{#2}}\\* @@ -1127,7 +1168,9 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %% report TCC - I %%%%%%%%%%%%%%% \SetForm{report-I}{top}{} -\SetForm{report-I}{heading}{\vspace*{-5ex}\UseTerm{title.tccI}~ - ~\textbf{\UseTerm{semester}}} +\ExplSyntaxOn +\SetForm{report-I}{heading}{\vspace*{-5ex}\UseTerm{title.tccI}~ - ~\textbf{\UseTerm{semester}}\exp_args:Nee \pdfbookmark{\UseTerm{book.report-I}}{\UseTerm{book.report-I}}} +\ExplSyntaxOff %\SetForm{report-I}{title}{} \SetForm{report-I}{opening}{} @@ -1146,7 +1189,10 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %% report TCC - II %%%%%%%%%%%%%%% \SetForm{report-II}{top}{} -\SetForm{report-II}{heading}{\vspace*{-5ex}\UseTerm{title.tccII}~ - ~\textbf{\UseTerm{semester}}} +\ExplSyntaxOn +\SetForm{report-II}{heading}{\vspace*{-5ex}\UseTerm{title.tccII}~ - ~\textbf{\UseTerm{semester}}\exp_args:Nee \pdfbookmark{\UseTerm{book.report-II}}{\UseTerm{book.report-II}}} +\ExplSyntaxOff +%\SetForm{report-II}{heading}{\vspace*{-5ex}\UseTerm{title.tccII}~ - ~\textbf{\UseTerm{semester}}} %\SetForm{report-II}{title}{Relatório Acompanhamento - \UseTerm{semester}} %\SetForm{report-II}{title}{\vspace*{-2ex}\UseTerm{semester}} \SetForm{report-II}{opening}{} @@ -1164,62 +1210,14 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \SetForm{report-II}{closing}{} - - -%%%%%%%%%%%%%%% -%% Check List TCC - I -%%%%%%%%%%%%%%% -\SetForm{checklist-I}{heading}{\UseTerm{title.tccI}} -\SetForm{checklist-I}{title}{Check~ List~ TCC~ I~ -~ \UseTerm{semester}} -\SetForm{checklist-I}{opening}{} - -%%% -\SetForm{checklist-I}{opening}{ % - \ActivitySelect{tccI} - { \scriptsize - \begin{longtable}{llllll}% - \CheckList{6}{graded}{Alunos~Com~ Conceito}[black] - \CheckList{6}{ff}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red] - \CheckList{6}{dismiss}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta] - \end{longtable} - } - ~\vfill -} - -%%% -\SetForm{checklist-I}{closing}{} - - -%%%%%%%%%%%%%%% -%% Check List TCC - II -%%%%%%%%%%%%%%% -\SetForm{checklist-II}{heading}{\UseTerm{title.tccII}} -\SetForm{checklist-II}{title}{Check~ List~ TCC~ II~ -~ \UseTerm{semester}} -\SetForm{checklist-II}{opening}{} - -%%% -\SetForm{checklist-II}{opening}{ % - \ActivitySelect{tccII} - { \scriptsize - \begin{longtable}{llllll}% - \CheckList{6}{graded}{Alunos~Com~ Conceito}[black] - \CheckList{6}{ff}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red] - \CheckList{6}{dismiss}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta] - \end{longtable} - } - ~\vfill -} - -%%% -\SetForm{checklist-II}{closing}{} - - - - %%%%%%%%%%%%%%% %% Boards TCC - II %%%%%%%%%%%%%%% -\SetForm{boards}{heading}{\UseTerm{title.tccII}} +\ExplSyntaxOn +\SetForm{boards}{heading}{\UseTerm{title.tccII}\exp_args:Nee \pdfbookmark{\UseTerm{book.boards}}{\UseTerm{book.boards}}} +\ExplSyntaxOff + +%\SetForm{boards}{heading}{\UseTerm{title.tccII}} \SetForm{boards}{title}{\UseTerm{board.title}} \SetForm{boards}{opening}{} @@ -1276,7 +1274,11 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %%%%%%%%%%%%%%% %% cocertificate %%%%%%%%%%%%%%% -\SetForm{cocertificate}{heading}{\UseTerm{title.tcc}} +\ExplSyntaxOn +\SetForm{cocertificate}{heading}{\UseTerm{title.tcc}\exp_args:Nee \pdfbookmark{\UseTerm{book.cocertificate}}{\UseTerm{book.cocertificate}}} +\ExplSyntaxOff + +%\SetForm{cocertificate}{heading}{\UseTerm{title.tcc}} \SetForm{cocertificate}{title}{\UseTerm{semester}} \SetForm{cocertificate}{opening}{À quem interessar possa,\\ certificamos que} \SetForm{cocertificate}{body}{% diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty index 8e075be0ca..d09a23de34 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA auxiliary lists commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-lists} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19} , - version .code:n = {2.4a} , + date .code:n = {2024/02/25} , + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands} } \cs_if_exist:NF \PkgInfo diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty index 57bb8926bf..e5ced4a331 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA PPC commands} %%%%%%% @@ -41,8 +41,8 @@ { name .code:n = {ufrgscca-ppc} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19}, - version .code:n = {2.4a} , + date .code:n = {2024/02/25}, + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands} } \cs_if_exist:NF \PkgInfo diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex index 940f8491c0..fcec1b1b7d 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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 84effd20e6..dc42415122 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -66,6 +66,34 @@ \ActivitySetCoord{Nome Coordenador} \ActivitySetCoordTitle{Coordenador\ActivityCoord[internship]{narticle} da Atividade de Ensino de\newline Estágio Supervisionado Obrigatório} +\SetTerms{% + book.attendancelist = {Lista de Presença} , + book.calendar-I = {TCC I - Calendário} , + book.requestform-I = {\StudentBookMarkTL TCC I 01 - Requerimento de Matricula} , + book.coadvisorform-I = {\StudentBookMarkTL TCC I 02 - Requerimento de Coorientacao} , + book.boardapproval-I = {\StudentBookMarkTL TCC I 03 - Indicacao da Banca} , + book.advisorapproval-I = {\StudentBookMarkTL TCC I 04 - Aprovacao para Avaliacao} , + book.reviewersform-I = {\StudentBookMarkTL TCC I 05 - Formulario de Avaliacao do Trabalho\ReviewerBookMarkTL} , + book.rectifyapproval-I = {\StudentBookMarkTL TCC I 06 - Formulario de Aprovacao de Correcoes} , + book.calendar-II = {TCC II - Calendário} , + book.requestform-II = {\StudentBookMarkTL TCC II 01 - Requerimento de Matricula} , + book.coadvisorform-II = {\StudentBookMarkTL TCC II 02 - Requerimento de Coorientacao} , + book.boardapproval-II = {\StudentBookMarkTL TCC II 03 - Indicacao da Banca} , + book.advisorapproval-II = {\StudentBookMarkTL TCC II 04 - Aprovacao para Apresentacao} , + book.receipts-II = {\StudentBookMarkTL TCC II 04b - recibo de entrega\ReviewerBookMarkTL} , + book.reviewersform-II = {\StudentBookMarkTL TCC II 05 - Formulario de Avaliacao do Trabalho\ReviewerBookMarkTL} , + book.correctionsform-II = {\StudentBookMarkTL TCC II 05b - Formulario de Correcoes\ReviewerBookMarkTL} , + book.rectifyapproval-II = {\StudentBookMarkTL TCC II 06 - Formulario de Aprovacao de Correcoes} , + book.internrequestform = {\StudentBookMarkTL Estagio Obrigatorio 01 - Requerimento de Matricula} , + book.internsupervisorform = {\StudentBookMarkTL Estagio Obrigatorio 02 - Avaliacao Supervisor} , + book.interntutorform = {\StudentBookMarkTL Estagio Obrigatorio 03 - Avaliacao Tutor} , + book.report-I = {TCC I - Relatório \UseTerm{semester}} , + book.referral-I = {\StudentBookMarkTL TCC I - Despacho SACAD} , + book.cocertificate = {\StudentBookMarkTL Certificado coorientação} , + book.report-II = {TCC II - Relatório \UseTerm{semester}} , + book.referral-II = {\StudentBookMarkTL TCC II - Despacho SACAD} , + book.boards = {TCC II - Apresentações} , +} \SetTerms{% title.tcc = Trabalho de Conclusão de Curso , diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls index a0f813deb5..3b57ee521c 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.4a} {2024/02/19} +%% This is version {2.5} {2024/02/25} %% %% 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} - {2024/02/19} - {2.4a} + {2024/02/25} + {2.5} {UFRGS/CCA class} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/19}, - version .code:n = {2.4a} , + date .code:n = {2024/02/25}, + version .code:n = {2.5} , description .code:n = {UFRGS/CCA~a~report~based~class~bundle} } \cs_if_exist:NF \PkgInfo -- cgit v1.2.3