diff options
Diffstat (limited to 'macros')
48 files changed, 5087 insertions, 1626 deletions
diff --git a/macros/latex/contrib/exesheet/README.md b/macros/latex/contrib/exesheet/README.md index f04b134515..45896d7bb0 100644 --- a/macros/latex/contrib/exesheet/README.md +++ b/macros/latex/contrib/exesheet/README.md @@ -10,7 +10,7 @@ The package provides: - macros to mark out exercises and subparts, - specific settings for enumeration lists, - environments for questions and answers, with conditional display, -- macros for marking scheme with detailed comments. +- macros for displaying a marking scheme with detailed comments in margins. ## Installation diff --git a/macros/latex/contrib/exesheet/exesheet.dtx b/macros/latex/contrib/exesheet/exesheet.dtx index a90d6da6b7..04cdd77b5b 100644 --- a/macros/latex/contrib/exesheet/exesheet.dtx +++ b/macros/latex/contrib/exesheet/exesheet.dtx @@ -23,17 +23,17 @@ %<class>\ProvidesClass{exesheet} %<package>\ProvidesPackage{exesheet} %<*class|package> -[2021/11/15 v1.3 .dtx exesheet file] +[2023/01/16 v2.0 .dtx exesheet file] %</class|package> -% %<*driver> \documentclass{ltxdoc} +% % uncomment the following lines if you want to use the exesheet class instead of ltxdoc %\usepackage{doc} %\AtBeginDocument{\MakeShortVerb{\|}} %\providecommand\marg[1]{{\ttfamily\{}\meta{#1}{\ttfamily\}}} %\providecommand\oarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}} -\usepackage[notoc]{exesheet} +\usepackage[exetoc=false,marginwidth=unset,display=notes]{exesheet} \usepackage{schooldocs} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} @@ -43,37 +43,30 @@ \usepackage{hyperref} \usepackage{sectsty} \usepackage{pstricks} +\usepackage{array} +\usepackage{spacingtricks} +\usepackage{centeredline} +% \psset{unit=1cm} \geometry{textwidth=355pt,vmarginratio=1:1,hmarginratio=3:2} -% altered by schoodocs, now very close from the default geometry used by ltxdoc - +% altered by schoodocs, now very close from the default geometry used by ltxdoc. +% The following instruction gives the same margin width +% as with display=notes without altering the margin ratio +\leftnotemarginwidth{0.55} % special setting here \newcommand{\ds}{\displaystyle} \newcommand{\bs}{\textbackslash} - \definecolor{darkbrown}{rgb}{0.5,0.1,0.1} \allsectionsfont{\sffamily\color{darkbrown}} \renewcommand{\labelexercisestyle}{\rmfamily\color{black}} \renewcommand{\labelsubpartstyle}{\rmfamily\color{black}} \renewcommand{\annexstyle}{\rmfamily\color{black}\MakeUppercase} \renewcommand{\correctionstyle}{\rmfamily\color{correctioncolor}} - -\displaypts -%\diplaynotes gives a non desired margin ratio here -% following instructions simulate \displaynotes without altering the margin ratio -\setlength{\marginparwidth}{\oddsidemargin} -\addtolength{\marginparwidth}{1in} -\addtolength{\marginparwidth}{-\marginparsep} -\setlength{\marginparwidth}{0.8\marginparwidth} -\setboolean{marginpoints}{true} -\setboolean{marginfullnotes}{true} - +\renewcommand{\titlestyle}{\LARGE\sffamily\bfseries} +% \DisableCrossrefs %\CodelineIndex %\RecordChanges - -\title{The \textsf{exesheet} class and package}%\thanks{This document -% corresponds to \textsf{exesheet}~\fileversion, dated \filedate.}} -%\author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} +\title{The \textsf{exesheet} class and package} \subject{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} \date{\filedate, \fileversion} @@ -84,13 +77,14 @@ pdfsubject={LaTeX class and package}, pdfauthor={Antoine Missier} } + \begin{document} \DocInput{exesheet.dtx} \end{document} %</driver> % \fi % -% \CheckSum{613} +% \CheckSum{1118} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -108,19 +102,46 @@ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % -% % \changes{v0.0}{2010/09/01}{Initial personal version} % \changes{v0.9}{2020/01/02}{Initial documentation in french} % \changes{v1.0}{2020/07/22}{Initial public version with documentation in english} -% \changes{v1.1}{2021/08/30}{Macro tablenum replaced by tablenum1, small modifications due -% to changes in tasks package} -% \changes{v1.2}{2021/09/18}{Bug correction in macros tablenum1 and tablenuma, using the translations package for internationalization} -%\changes{v1.3}{2021/11/15}{Bad spacing in the exe macro and bug correction in the starred version of this macro} +% \changes{v1.1}{2021/08/30}{ +% Macro tablenum (also used by siunitx) replaced by tablenum1, +% small modifications due to changes in tasks package} +% +% \changes{v1.2}{2021/09/18}{ +% Bug correction in macros tablenum1 and tablenuma, +% using the translations package for internationalization} +% +% \changes{v1.3}{2021/11/15}{ +% Bad spacing in the exe macro and bug correction in the starred version of this macro} +% +% \changes{v2.0}{2022/12/28}{ +% options toc and setlist with kvoptions (instead of notoc and nosetlist), +% introducing the key 'output' instead of old commands questionsonly, answersonly, +% introducing the key 'display' instead of old command displaypts, displaypoints, +% displaynotes, +% introducing the keys 'margin' and 'noteragged' to set how the notes are displayed, +% introducing the key 'correct'} +% \changes{v2.0}{2023/01/02}{ +% documentation update, +% new option checkpts} +% \changes{v2.0}{2023/01/09}{ +% new option 'marginwidth', +% modifying hmarginratio from 5:1 to 3:1 when display=notes, +% correct management of two side mode documents} +% \changes{v2.0}{2023/01/16}{ +% \enskip between titles and their optional argument, +% simplifying macros markingstyle and notestyle, +% use of ragged2e package, +% code revision and simplification, +% documentation update} % % \GetFileInfo{exesheet.dtx} % % \maketitle % \tableofcontents +% \enlargethispage{1ex} % % \section{Introduction} % @@ -130,43 +151,53 @@ % with particular header and footer, appropriate for exercise sheets (among others). % See the \textsf{schooldocs} documentation for more details. % The \textsf{exesheet} \emph{class} is based on \textsf{article} -% and has the same options. +% and passes to it its unknown options. % % Many other packages are dedicated to exercise sheets. % Most propose to encapsulate each exercise in an environment -% while \textsf{exesheet} begins each exercise with the |\exercise| command, -% which works like a subsection (with same features) +% whereas \textsf{exesheet} begins each exercise with |\exercise|, +% which works like a subsection (with the same features) % and is suitable for documents consisting exclusively of exercises. % The package provides also alternative formatting, % more relevant for short exercises. % -% Another specificity of the \textsf{exesheet} package is specific settings -% for enumeration lists, different from \LaTeX\ standard settings, +% Another specificity of the \textsf{exesheet} package is the particular settings +% for enumeration lists, % useful for the numbering of questions or answers inside an exercise. % % Other packages provide often more or less elaborate mechanisms % to manage the placement of answers. -% \textsf{exesheet} has no such ambitions: -% for all exercises of the sheet, we can display subject only, -% answer only or both, but always at the place they are inserted +% \textsf{exesheet} has no such ambitions, however, +% for all exercises of the sheet, you can display questions only, +% answers only or both, but always at the place they are inserted % in the source file. On the other hand this choice may be very flexible: -% we can do a correct version for all exercises together, or a correct version per exercise, +% you can do a correct version for all exercises together, or a correction per exercise, % per part (subpart of exercise), per question, per sub-question. % -% Finally the original functionality of this package is the display -% of a detailed marking scheme, -% with optional explanations, in the margin of exercise answers. -% -% There are two possible options: \texttt{notoc} (see \ref{par:notoc}) -% and \texttt{nosetlist} (see \ref{par:nosetlist}). +% Finally this package enables to display +% a detailed marking scheme in the margin, +% with optional explanations or remarks, +% and with consistency control. +% +% Many settings can be changed and several options manage the output document. +% These options are based on the keyval mechanism: \texttt{key=value} +% (thanks to Maxime Chupin and Denis Bitouzé for their wise ideas to improve this package). +% The options can be passed to class or package, \eg +% \begin{center} +% |\documentclass[a4paper,11pt,output=answers,display=pts]{exesheet}| +% \end{center} +% or later with the |\exesheetset|\marg{options} command. +% In the example above, \texttt{a4paper,11pt} are options +% passed to the underlying class \textsf{article}. % %\medskip -% In the current document, a frame is used to highlight -% examples beside the rest of the documentation. +% \emph{In the current document, a frame is used to highlight +% examples output.} % % \section{Titles} +% % \subsection{The \texttt{\bs exercise} command} - +% % \DescribeMacro{\exercise} % Each exercise begins with the |\exercise|\oarg{opt} command. % This command typesets \textbf{\exercisename}, as a document @@ -174,33 +205,35 @@ % unique for the whole document. % The optional parameter \meta{opt} is used to put additional text % on the same title line, for example to precise a subject or a marking scheme. -% |\exercise[ (to begin)]| yields: +% |\exercise[(to begin)]| yields: % -% \exercise[ (to begin)] -% \psframe(-0.25,1.3)(12.75,-0.4) +% \exercise[(to begin)] +% \psframe(-0.25,1.3)(12.75,-0.3) % Try to use this first command now, it's easy. % % \bigskip -% |\hrulefill| can be put in the optional argument to produce an horizontal rule. -% % To bring additional text closer to the exercise number, -% we can use the |\unskip| command -% which eliminates preceding space, see the following example, obtained with -% |\exercise[\unskip : calculation\ \hrulefill]|: -% \exercise[\unskip: calculation \ \hrulefill] -% \psframe(-0.25,1.3)(12.75,-0.4) +% we can use |\unskip| which eliminates preceding space, +% and also |\hrulefill| can be put in the optional argument +% to produce an horizontal rule. +% See the following example, obtained with \\ +% |\exercise[\unskip*** (difficult)]|: +% \exercise[\unskip*** (difficult)] +% \psframe(-0.25,1.3)(12.75,-0.3) % Calculate $1+1$. % % \bigskip +% Several settings can be changed by refining the following commands. +% +% \medskip % \DescribeMacro{\exercisename} -% The word \emph{\exercisename} has automatic translation -% in a few languages\footnote{Translation -% is currently integrated into the package for the following languages: French, -% German, Spanish, Italian, Portuges.} +% The word ``\exercisename'' has automatic translation in a few languages +% \footnote{Translation is currently integrated into the package +% for the following languages: French, German, Spanish, Italian, Portuges.} % according to the loaded language (by \textsf{babel} or \textsf{polyglossia}). % It can be redefined, with |\renewcommand|, -% or else we can use macros from the \textsf{translations} -% package (allowing dynamic language change), e.g. (in the preamble)\\ +% or better you can use (in the preamble) macros from the \textsf{translations} +% package (allowing dynamic language change), \eg \\ % |\DeclareTranslation{Swedish}{exesheet-exercise}{\"Ovning}}|. % % \DescribeMacro{\labelexercise} @@ -215,19 +248,19 @@ % \DescribeMacro{\labelexercisestyle} % This macro (which is empty by default) allows to define a particular style % for exercise titles. In the present document, we defined in the preamble: -% |\renewcommand{\labelexercisestyle}{\rmfamily\color{black}}|\footnote{In the -% present document, to highlight real sections and subsections titles, +% |\renewcommand{\labelexercisestyle}{\rmfamily\color{black}}| +% \footnote{In the present document, to highlight real sections and subsections titles, % their color and font have been modified with the % \texttt{\bs allsectionsfont} macro from the \textsf{sectsty} package.}. % -% \bigskip +% \medskip % \DescribeMacro{\exercise*} % The starred version |\exercise*|\oarg{opt}\marg{label} % allows to choose another \meta{label} for a particular exercise % and removes the numbering. For instance: -% |\exercise*[(Fermat theorem)]{Problem}| yields: +% |\exercise*[(Fermat's theorem)]{Problem}| yields: % -% \exercise*[(Fermat theorem)]{Problem} +% \exercise*[(Fermat's theorem)]{Problem} % \psframe(-0.25,1.3)(12.75,-0.7) % Prove that there are no positive integers $x, y, z$ such that $x^n+y^n=z^n$ % for any integer $n$ greater than 2. @@ -239,25 +272,28 @@ % with the |\subpart|\oarg{opt} command, typeset like a sub-subsection. % \exercise % \subpart[(preliminary)] -% \psframe(-0.25,1.95)(12.75,-1.9) +% \psframe(-0.25,1.95)(12.75,-1.85) % First of all, prepare your cup of tea. % \subpart % Now you are ready to make the current exercise. % % \bigskip +% The following macros manage formatting in the same way as for |\exercise|. +% +% \medskip % \DescribeMacro{\thesubpart} % By default, the subpart numbering uses letters : A, B, C, etc. % This numbering type can be redefined with the |\thesubpart| command based on % the |subpart| counter, for instance |\renewcommand\thesubpart{\arabic{subpart}}|. % -% \pagebreak % \DescribeMacro{\subpartname} \DescribeMacro{\labelsubpart} % \DescribeMacro{\labelsubpartstyle} -% As for |\exercise|, the |\subpart| command +% The |\subpart| command % uses |\subpartname| (with automatic translation in a few languages % according to the selected language), -% |\labelsubpart| and |\labelsubpartstyle|, which are editable. +% |\labelsubpart| and |\labelsubpartstyle|, which can be changed. % +% \medskip % \DescribeMacro{\subpart*} % Like |\exercise*|, the starred version |\subpart*|\oarg{opt}\marg{label} % allows to freely typeset the subpart \marg{label}, for instance @@ -271,11 +307,12 @@ % with an optional parameter, added on the same line. % % \vspace{-\baselineskip} -% \noindent\psframe(-0.25,-0.3)(12.75,-1.25) +% \noindent\psframe(-0.25,-0.3)(12.75,-1.3) % \annex[(to return)] % +% \bigskip % \DescribeMacro{\annexname} -% The word \emph{\annexname} has automatic translation in a few languages. +% The word ``\annexname'' has automatic translation in a few languages. % It can be extended to other languages or modified by redefining |\annexname| % or with macros from the \textsf{translations} package. % @@ -284,14 +321,12 @@ % defined as follows: |\newcommand\annexstyle{\MakeUppercase}|. % This command may be redefined as one wants. % -% \subsection{Exercise titles in table of contents -% (notoc package option)} \label{par:notoc} -% \DescribeMacro{notoc} -% By default, the titles \emph{\exercisename}, \emph{\subpartname} or \emph{\annexname}, -% appear in the table of contents +% \subsection{Exercise titles in table of contents} \label{toc} +% \DescribeMacro{[exetoc=\meta{bool}]} +% By default, the titles \textbf{\exercisename}, \textbf{\subpartname} +% or \textbf{\annexname}, appear in the table of contents % (or in the pdf file summary when \textsf{hyperref} package is used). -% To avoid this, you can set the boolean \texttt{notoc} to \texttt{true} -% or call the \textsf{exesheet} package (or class) with \texttt{notoc} option. +% To avoid this, you can set the option \texttt{exetoc=false} (default is \texttt{true}). % But notice that title optional arguments will always be ignored in the table of contents. % % \subsection{Short exercises: the \texttt{\bs exe} command} @@ -310,70 +345,47 @@ % % \bigskip % \DescribeMacro{\exname} \DescribeMacro{\exlabel} \DescribeMacro{\exsepmark} -% The abbreviation \emph{\exname} may be changed by +% The abbreviation \textbf{\exname} may be changed by % redefining |\exname| or with macros from the \textsf{translations} package. % The |\exlabel| macro calls |\exname| following by a period then the exercise number, % and |\exsepmark| typesets a long dash. -% We may change these features by redefining these commands. +% One can change these features by redefining these commands. % -% \bigskip +% \medskip % \DescribeMacro{\exe*} % The starred version prints no separator as shown below: % % \vspace{-\baselineskip} % \noindent\psframe(-0.25,-0.35)(12.75,-1.1) % \exe* Another short exercise without separator. -% -% \subsection{The \texttt{\bs points} command} -% \DescribeMacro{\points} -% The |\points|\marg{pts} command displays the number of points awarded to an exercise. -% It is intended to be entered in the optional argument of the -% |\exercise| command\footnote{This command which has to be used -% in the optional argument of \texttt{\bs exercise}, as several others presented below, -% is incompatible with -% the \textsf{memoir} class which redefines section commands.}. -% |\exercise[\points{5}]| yields: -% \exercise[\points{5}] -% \psframe(-0.25,1.3)(12.75,-0.4) -% Try to read this whole document without drinking tea and you get five points. -% -% \bigskip -% \DescribeMacro{\pointsname} \DescribeMacro{\pointname} -% Like before, the word \emph{points} and in the singular \emph{point} -% (if \meta{pts} is inferior to 2) -% get automatic translation in a few languages -% and are modifiable. -% -% \DescribeMacro{\pointsstyle} \DescribeMacro{pointscolor} -% The style used by the |\points| command may be redefined with |\pointsstyle|. -% The color is set by |pointscolor| with the |\definecolor| command -% (from the \textsf{xcolor} package by Uwe Kern, loaded by \textsf{exesheet}), -% for instance: \\ |\definecolor{pointscolor}{named}{blue}|. -% % % \section{Enumerations and lists} % -% \subsection{List settings (nosetlist package option)} \label{par:nosetlist} +% \subsection{List settings} \label{setlist} +% \DescribeEnv{enumerate} \DescribeMacro{\item} % Enumeration lists are intended to represent questions and sub-questions % inside exercises. For a good highlight, % labels are typeset in bold. % Moreover, they are left aligned, at the start of the line, % without indentation, and the vertical space between items % is increased compared with \LaTeX\ standard lists. -% These settings are done by the |\setlist| command\footnote{Labels -% may also be changed by the \texttt{\bs labelenumi} and \texttt{\bs labelenumii} commands.} -% from the \textsf{enumitem} package by Javier Bezos. -% Lists with \texttt{itemize} environment are kept in their default configuration\footnote{The -% \texttt{french} option of the \textsf{babel} package -% alters \texttt{itemize} lists behavior and uses long dash +% These settings are done by the |\setlist| command +% \footnote{Labels may also be changed occasionally in an optional argument +% \eg \texttt{\bs begin\{enumerate\}[A.]}, +% or globally thanks to \texttt{\bs labelenumi} +% and \texttt{\bs labelenumii} commands.} +% from the \textsf{enumitem} package of Javier Bezos. +% Lists with \texttt{itemize} environment are kept in their default +% configuration +% \footnote{The \texttt{french} option of the \textsf{babel} package +% alters \texttt{itemize} lists behavior and uses long dashes % as labels for each list level. % This behavior is problematic when mathematics follows the dash % symbol because the latter may be confused with the minus sign. -% Modifications of the \texttt{french} option (which supersedes \texttt{frenchb} -% of \textsf{babel}) are canceled to restore \LaTeX\ default settings.}. +% Default \texttt{itemize} lists are restored.}. % % \vspace{-\baselineskip} -% \noindent\psframe(-0.25,-0.35)(12.75,-3.9) +% \noindent\psframe(-0.25,-0.35)(12.75,-3.6) % \exercise % \begin{enumerate} % \item First question @@ -384,47 +396,47 @@ % \item Second question % \end{enumerate} % -% \DescribeMacro{nosetlist} -% We can avoid enumeration list modifications and restore the \LaTeX\ -% default settings by passing the option -% \texttt{nosetlist} to the \texttt{exesheet} class or package. +% \smallskip +% \DescribeMacro{[setlist=\meta{bool}]} +% One can avoid enumeration list alterations and restore \LaTeX\ +% default settings with the option |[setlist=false]| +% (default value is \texttt{true} of course). % % \subsection{List of exercises : the \texttt{exenumerate} environment} % \DescribeEnv{exenumerate} -% When an exercise sheet is made of short independent exercises, -% it would be ill-advised to display the complete title \emph{\exercisename} for each. +% When an exercise sheet is made of short independent questions, +% it would be ill-advised to display the complete title \textbf{\exercisename} for each. % In addition to the |\exe| command, previously presented, -% we provide an even lighter solution with the |exenumerate| environment, -% which is only an enumeration list in which -% spaces between items are further increased compared with those of \texttt{enumerate}. -% Here is an example (the main list is an \texttt{exenumerate} environment but -% sub-lists are produced with regular \texttt{enumerate} environments): +% we provide an even lighter solution with the |exenumerate| environment. +% It's only an enumeration list in which +% spaces between items are further increased compared to those of \texttt{enumerate}. +% Below is an example (the main list is an \texttt{exenumerate} environment but the +% sub-list is produced with common \texttt{enumerate} environments): % % \vspace{-\baselineskip} -% \noindent\psframe(-0.25,-0.3)(12.75,-6.75) +% \noindent\psframe(-0.25,-0.3)(12.75,-5.3) % \begin{exenumerate} -% \item Translate the following sentences in english: +% \item Translate the following sentences in English: % \begin{enumerate} % \item Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. % \item Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus. % \end{enumerate} -% \item Translate the following sentence in german: +% \item Translate the following sentence in German: % \par Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, % vitae ornare odio metus a mi. -% \item Translate the following sentences in french: -% \begin{enumerate} -% \item Cum sociis natoque penatibus +% \item Translate the following sentences in French: +% Cum sociis natoque penatibus % et magnis dis parturient montes, nascetur ridiculus mus. -% \item Nulla ullamcorper vestibulum turpis. -% \end{enumerate} % \end{exenumerate} +% +% \medskip % The environment takes an optional parameter, like \texttt{enumerate}, % which enables, among others, -% to typeset alternative list labels, e.g. +% to typeset alternative list labels, \eg % |\begin{exenumerate}[A.]|. % There are many other options (see the \textsf{enumitem} package documentation). % -% \subsection{Items aligned by lines} +% \subsection{Items aligned by row: \texttt{tablenum1$\mid$a}, \texttt{tablitem}} % \DescribeEnv{tablenum1} % \DescribeEnv{tablenuma} % \DescribeEnv{tablitem} @@ -440,7 +452,7 @@ % |\NewTasksEnvironment| macro, from the \textsf{tasks} package by Clemens Niederberger. % They take an optional argument \meta{opt} % explained in the documentation of this package, -% e.g.\ |label=\arabic*)| produces an Arabic numbering +% \eg |label=\arabic*)| produces an Arabic numbering % following by a closing parenthesis (like in \texttt{enumitem} package). % There are also many possibilities to place items in an original way, % for instance, the |\item*| command allows to @@ -461,23 +473,25 @@ % \item $\ds l(x) = \int_{\frac{1}{x}}^{x}\frac{1}{\ln t}\, \mathrm{d}t$. % \end{tablenum1} % +% \smallskip % For \texttt{tablenuma}, labels are % letters (a, b, c, \ldots) surrounded -% by parentheses. This cannot be modified globally -% (except by redefining the environment with |\RenewTasksEnvironment|). -% If the \textsf{exesheet} package is called with option \texttt{nosetlist}, +% by parentheses. This cannot be modified globally, +% except by redefining the environment with |\RenewTasksEnvironment|. +% If the \textsf{exesheet} package is called with the option \texttt{setlist=false}, % labels of \texttt{tablenum1} and \texttt{tablenuma} environments -% are displayed in normal font instead of boldface, with indentation. +% are displayed with indentation and in normal font instead of bold. % -% \subsection{Items aligned by columns: \texttt{colsenum}} +% \subsection{Items aligned by column: \texttt{colsenum}, \texttt{colsitem}} % \DescribeEnv{colsenum} -% To get numbering of items by columns, we have the +% To get numbering of items by column, we provide the % \texttt{colsenum} environment: |\begin{colsenum}|\oarg{opt}\marg{cols}. % The mandatory parameter is the number of columns % and the optional one will be passed to \texttt{enumerate}, % allowing, for example, to change the type of numbering (a, A, etc.). % To use this environment, we have to load the % \textsf{multicol} package in the preamble. +% Here an example with |\begin{colsenum}{3}|: % % \exercise % \psframe(-0.25,1.3)(12.75,-2.65) @@ -489,15 +503,17 @@ % \item $\ds k(x) = \sum_{i=1}^{\infty}\frac{1}{x^i}$, % \item $\ds l(x) = \int_{\frac{1}{x}}^{x}\frac{1}{\ln t}\, \mathrm{d}t$. % \end{colsenum} +% +% \medskip % \DescribeEnv{colsenum*} % We will notice that, on each line, items are not necessarily well -% aligned, what can produce inelegant effects. +% aligned, which can produce inelegant effects. % On the other hand, the \texttt{colsenum} environment doesn't try to align columns % from the bottom by adjusting space between items. % If we want to get this -% (which is the default option in \textsf{multicol}) we have the +% (which is the default option in \textsf{multicol}), we have the % \texttt{colsenum*} environment (same syntax than \texttt{colsenum}). -% Here what we get in that case, with the same exercise. +% Here what we get in that case, with the same exercise: % % \exercise % \psframe(-0.25,1.3)(12.75,-2.65) @@ -509,18 +525,21 @@ % \item $\ds k(x) = \sum_{i=1}^{\infty}\frac{1}{x^i}$, % \item $\ds l(x) = \int_{\frac{1}{x}}^{x}\frac{1}{\ln t}\, \mathrm{d}t$. % \end{colsenum*} +% +% \medskip % We can see that these alignments are less good than those -% obtained by numbering of items by line. The numbering of items by columns +% obtained by row numbering. The column numbering % may nevertheless be preferable when there are many items with variable heights, % and a number of items which can be different from one column to the other. % Moreover, an advantage of \texttt{colsenum} is that the choice of labels % is automatic depending on the list level (and the language), % unlike \texttt{tablenum1} or \texttt{tablenuma}. % +% \bigskip % \DescribeEnv{colsitem} % \DescribeEnv{colsitem*} % For \texttt{itemize} lists, the environment \texttt{colsitem} -% produces items aligned by columns rather than by lines as for +% produces items aligned by column rather than by lines as for % \texttt{tablitem}: % |\begin{colsitem}|\oarg{opt}\marg{cols}. The optional parameter, % which is passed to the underlying \texttt{itemize} environment, @@ -530,18 +549,20 @@ % % \section{Questions and solutions} % -% \subsection{The \texttt{questions} and \texttt{answers} environments} +% \subsection{Environments \texttt{questions} and \texttt{answers}} +% \label{output} +% % \DescribeEnv{questions} \DescribeEnv{answers} % The package provides the two environments \texttt{questions} and \texttt{answers} -% to make appear or disappear questions and answers of exercises. -% Display is controlled by two booleans: \texttt{questions} and \texttt{answers}. -% Their default value is \texttt{true}. +% to make optionally appear or disappear questions and answers of exercises. % -% \DescribeMacro{\questionsonly} \DescribeMacro{\answersonly} -% The |\questionsonly| command allows to display the questions without the answers -% and |\answersonly| displays the solutions without the questions\footnote{Of course -% we can also assign the booleans \texttt{questions} and \texttt{answers} -% directly with the \LaTeX\ command \texttt{\bs setboolean}.}. +% \bigskip +% \DescribeMacro{[output=\meta{opt}]} +% The output is controlled by the \texttt{output} key option: it takes three +% recognized values: \texttt{questions}, \texttt{answers}, \texttt{both}. +% The \texttt{questions} value allows to display questions without answers, +% \texttt{answers} displays answers without questions, +% \texttt{both} (the default option) displays both. % % \bigskip % \DescribeMacro{\correctionstyle} \DescribeMacro{correctioncolor} @@ -549,24 +570,24 @@ % In the case (by default) where questions and answers are displayed both, % answers are then typeset in the style % |\correctionstyle|, which uses the color \texttt{correctioncolor}. -% This color may be chosen with the |\definecolor| macro +% This color may be changed with the |\definecolor| macro +% \footnote{from the \textsf{xcolor} package by Uwe Kern +% which is loaded by \textsf{exesheet}.} % (by default |\definecolor{correctioncolor}{rgb}{0,0.2,0.6}| = kind of dark blue). -% Moreover, in that case, +% Moreover, with \texttt{output=both} % the title \textbf{\correctionname} is displayed at the beginning -% of the \texttt{answers} environment. +% of \texttt{answers} environments. % It is defined by the |\correctionname| macro (with translation in a few languages -% and that we can change:\footnote{Except for English, if you want to change package -% keywords you have to do it \emph{after} \texttt{\bs begin\{document\}} -% because \textsf{babel} will modify these definitions at the end of the preamble.} -% for example we may prefer \emph{Solution} -% than \emph{\correctionname}). +% and that can changed: +% for example you may prefer ``Solution'' +% than ``\correctionname''). % The style defined by |\correctionstyle| will apply to the title -% but also to the whole environment. +% as for the whole environment. % Here an example. % % \vspace{-\baselineskip} -% \noindent\psframe(-0.25,-0.25)(12.75,-6.6) -% \exercise[\points{3}] \label{points} +% \noindent\psframe(-0.25,-0.25)(12.75,-6.7) +% \exercise % \begin{questions} % \begin{enumerate} % \item Is the \textsf{exesheet} package useful ? @@ -575,7 +596,7 @@ % \end{questions} % \begin{answers} % \begin{enumerate} -% \item Yes, the \textsf{exesheet} package is very useful. +% \item Yes, the \textsf{exesheet} package is useful for teachers. % \item There are many other packages that deal with exercises, and % give the ability to produce separately questions and solutions, for example % \textsf{exercise} by Paul Pichaureau, \textsf{exercises} by Roger Jud, @@ -587,14 +608,11 @@ % \end{enumerate} % \end{answers} % -% \DescribeMacro{\points} -% When only answers are displayed, the text color remains black, -% the word \emph{\correctionname} is not displayed and the -% |\points| macro is patched to suppress the display of points. -% An extended solution for a variable display of points will be discussed -% in section \ref{totalpoints} with the |\totalpoints| macro. +% \medskip +% When only answers are displayed, the text color remains black and +% the word ``\correctionname'' is not displayed. % -% \subsection{More about \texttt{answers} environment} +% \subsection{About the title ``\correctionname'' in \texttt{answers} environments} % Internally, we have used the |\comment| and |\endcomment| macros % from the \textsf{versions} package by Uwe Lück. % Other excellent packages allow to manage @@ -604,135 +622,232 @@ % \textsf{optional} by Donald Arseneau % and \textsf{codesection} by Matthias Pospiech. % -% The \textsf{versions} package used provides furthermore +% The \textsf{versions} package provides furthermore % the |\includeversion|\marg{env} and % |\excludeversion|\marg{env} macros who allow to make appear or disappear % any environment \meta{env} and these optional environments -% may be nested\footnote{The \textsf{codesection} package also allows -% such nesting, including in the preamble, -% as well as the \textsf{optional} package, but the latter only manages short optional code.}. +% may be nested +% \footnote{The \textsf{codesection} package also allows +% such nesting, including in the preamble, as well as +% the \textsf{optional} package, but the latter manages only short optional code.}. % % However the \texttt{questions} and \texttt{answers} environments % perform another task, not only making appear or disappear piece of text. -% Indeed, there is a problem with the title \emph{\correctionname}. -% In which format to typeset it and at which level to put it in the table of contents +% In what format should the output yield the title \textbf{\correctionname} +% and at which level should it be put in the table of contents % (or in the summary of the pdf file)? % In fact it depends on which level the environment has been nested. -% We can make a single \texttt{answers} environment for all the -% exercises of the sheet or an \texttt{answers} environment +% We can make a single \texttt{answers} environment for the whole +% sheet or an \texttt{answers} environment % for each exercise, for each exercise part, for each question or sub-question. -% In fact, the typeset of the title \emph{\correctionname} -% and his level in the table of contents will be adjusted automatically. +% In fact, the typeset of the title \textbf{\correctionname} +% and his level in the table of contents will be computed by the environment. % -% \DescribeEnv{\oarg{level}} -% Nevertheless, we can imagine twisted situations in which -% the title level will not be correctly calculated. -% It is then possible to force the level of the title \emph{\correctionname} +% \medskip +% \DescribeEnv{answers\oarg{level}} +% Nevertheless, one can imagine twisted situations in which +% the title level will not be correct. +% Moreover, the user may want to change the level of the title. +% It is then possible to force the level of the title ``\correctionname'' % with |\begin{answers}|\oarg{level}. % The optional \meta{level} parameter is defined as follows: % 1 for section level titles, -% 2 for subsections (like \emph{\exercisename}), -% 3 for sub-subsections (like \emph{\partname}), +% 2 for subsections (like \textbf{\exercisename}), +% 3 for sub-subsections (like \textbf{\partname}), % another number for lower levels -% (then they will not appear in the table of contents). +% (that will not appear in the table of contents). % -% \bigskip +% \pagebreak % \DescribeMacro{answers*} -% The starred version \texttt{answers*} allows to make the title +% The starred version \texttt{answers*} makes the title % \textbf{\correctionname} completely disappear. % -% \subsection{The \texttt{\bs question} command} -% \DescribeMacro{\question} -% Instead of the \texttt{questions} and \texttt{answers} environments, -% we can also use the simple |\question|\marg{ques}\marg{ans} macro +% \subsection{Commands \texttt{\bs question}, \texttt{\bs answer} and \texttt{\bs answerspace}} +% \label{answerspace} +% \DescribeMacro{\question}\DescribeMacro{\answer} +% Instead of \texttt{questions} and \texttt{answers} environments, +% we can also use simple |\question|\marg{ques} and |\answer|\marg{ans} macros % in which display of \meta{ques} and \meta{ans} arguments -% is controlled by the same previous commands |\questionsonly| and |\answersonly|. -% It can be more readable (in the source code) when questions and answers are short. -% In the case of displaying both questions and answers, -% the \emph{\correctionname} title will appear on a new line, in bold, -% as for levels lower than sub-subsection in the \texttt{answers} environment -% (and without entries in the table of contents). -% But this command doesn't work with \texttt{verbatim} inside. +% are controlled by the same previous key option \texttt{output=\meta{opt}}. +% It may be more suitable when questions and answers are short, for instance +% if you want to display the answer after each question item. +% The title ``\correctionname'' will not appear on the beginning +% of each answer; answers are typeset with |\correctionstyle| +% if \texttt{output=both}. +% But these commands don't work with \texttt{verbatim} text inside, +% whereas \texttt{questions} and \texttt{answers} environments allow that. % -% \section{Marginal notes for marking scheme} +% \bigskip +% \DescribeMacro{\answerspace} +% Some teachers are used to give to their students documents in which questions are typeset +% but instead of answers you have blank space, so that the paper is intended to be +% fulfilled by the students. +% For this purpose, thanks to a suggestion of Maxime Chupin, +% we provide the macro |\answerspace|\oarg{height}, +% in which the parameter height is a valid length, \eg |\answerspace{3cm}|. +% +% \DescribeMacro{[answerspace=\meta{bool}]} +% This vertical space display is optional and is controlled by the key +% \texttt{answerspace} which can be \texttt{true} or \texttt{false} (by default). +% Of course this macro is not intended to be placed inside \texttt{answers} +% environments, but anywhere else. +% +% \section{Marginal notes for marking scheme} +% +% The \textsf{exesheet} package allows to display in margins a marking +% scheme with comments and explanations about answers. +% +% \subsection{The \texttt{\bs points} command}\label{points} +% \DescribeMacro{\points} +% The |\points|\marg{pts} command displays the number of points awarded for an exercise. +% It is intended to be entered in the optional argument of the +% |\exercise| command +% \footnote{Using this command in the optional argument of +% \texttt{\bs exercise} is incompatible with +% the \textsf{memoir} class which redefines section commands.}. +% For instance +% |\exercise[\points{5}]| yields: +% \exercise[\points{5}] +% \psframe(-0.25,1.3)(12.75,-0.4) +% Try to read this document to the end without drinking tea and you get five points. % -% The \textsf{exesheet} package allows the display of a marking -% scheme with comments and explanations for answers. +% \bigskip +% When only correction is displayed in an exercise, the |\points| macro is patched +% to suppress the display of points. +% An extended solution for printing answers with the scale will be presented +% in section \ref{totalpoints}, including a new |\totalpoints| macro. % -% \pagebreak -% \subsection{The \texttt{\bs pts} command} +% \bigskip +% \DescribeMacro{\pointsname} \DescribeMacro{\pointname} +% The word ``\pointsname'' (or in the singular ``\pointname'' +% if \meta{pts} is inferior to 2), is added and, like before, +% gets automatic translation in a few languages +% (and can be changed). +% +% \DescribeMacro{\pointsstyle} \DescribeMacro{pointscolor} +% The style used by the |\points| command may be redefined with |\pointsstyle|. +% The color is set by |pointscolor| with the |\definecolor| command, +% and you can change it, +% \eg: |\definecolor{pointscolor}{named}{blue}|. +% +% \subsection{The \texttt{\bs pts} command} \label{pts} % \DescribeMacro{\pts} % When exercises are typeset with the |\exe| macro, % or as a list with the \texttt{exenumerate} environment, -% the marking scheme is displayed in the margin, on the line where +% the marking scheme can be displayed in the margin, on the line where % we put the |\pts|\marg{num} command (in general the first line of the exercise). % The \meta{num} parameter is the number of points assigned to the exercise. +% Below what we obtain with with |\exe\pts{3}... \exe\pts{1.5}...| % % \vspace{-\baselineskip} -% \noindent\psframe(-3.5,-0.25)(12.75,-2) -% \exe \pts{3} The first exercise with marking scheme. +% \noindent\psframe(-3.0,-0.25)(12.75,-1.95) +% \exe \pts{3} The first exercise with a marking scheme. % \exe \pts{1.5} The second one. % % \bigskip % \DescribeMacro{\ptsname} \DescribeMacro{\ptname} % \DescribeMacro{ptscolor} \DescribeMacro{\ptsstyle} -% The abbreviation \textsf{\ptsname} (or \textsf{\ptname} +% The abbreviation ``\ptsname'' (or ``\ptname'' % when the number of points is inferior to 2) -% is automatically added thanks to the macro |\ptsname| or |\ptname| -% (translated in a few languages if \textsf{babel} is loaded). -% The display color of the points is defined by \texttt{ptscolor} which can be changed +% is automatically added with macros |\ptsname| or |\ptname| +% (translated in a few languages if \textsf{babel} ore \textsf{polyglossia} are loaded). +% The display color of the points is defined by \texttt{ptscolor}, which can be changed % with |\definecolor|: by default |\definecolor{ptscolor}{named}{red}|. -% The display style is defined by |\ptsstyle|. -% -% \DescribeMacro{\displaypts} -% The display of the marking scheme, as above, is internally controlled by the -% \texttt{marginpts} boolean. -% The |\displaypts| command, which has to be placed in the preamble, -% defines \texttt{marginpts} to \texttt{true}, -% places marginal notes to the left (and not to the right which -% is the default behavior of \LaTeX) -% and shifts the text body right to increase the left margin compared -% with the right one, with a ratio 3:2, -% as it is in the present document. -% This ratio is defined by the -% |geometry| macro from the \textsf{geometry} package (by Hideo Umeki) -% and is valid for the whole document. +% The display style is defined by |\ptsstyle|: among other things, it adds parenthesis around. +% +% \bigskip +% \DescribeMacro{[display=\meta{opt}]} +% The display of the marking scheme is controlled by the +% option key \texttt{display}. +% By default |display=none| and the marking scheme will not be displayed. +% Use |display=pts| to make it appear. +% More details about this key are given in \ref{margin}. +% +% \medskip +% \DescribeMacro{[marginpos=\meta{opt}]} +% The side where to place the scale is controlled by the |marginpos| key option +% whose possible values are (first) \texttt{left} or \texttt{right}. +% The default is \texttt{left} +% (although the default behavior of \LaTeX{} is to place marginal notes on the right side). +% This option has no effect when +% |display=none|. +% +% For a \emph{two side} document, the default behavior is to typeset text in the outer margin +% which will be enlarged relatively to the inner margin (that contains the binding). +% The outer margin is on the right hand side for odd pages and on the left hand side +% for even pages. So the \texttt{marginpos} key option can take those two additional +% values. +% When you give a \texttt{left} or \texttt{right} value with a two side document, +% it will be converted to default value, \texttt{outer}, with a warning message. +% +% \medskip +% \DescribeMacro{twoside mode} +% For a document is in twoside mode, marginal notes sometimes appear on the wrong +% side of a page. This is a known bug of \LaTeX\ for which the solution +% is to call the package \textsf{mparhack} (what is done by \textsf{exesheet} +% for a twoside mode document) and to \emph{run \LaTeX\ twice}. +% If necessary you get a warning message to rerun. % -% \subsection{The \texttt{\bs totalexe}, \texttt{\bs note} -% and \texttt{\bs totalpoints} commands} -% \label{totalpoints} +% \subsection{Commands \texttt{\bs totalexe}, \texttt{\bs note*} and \texttt{\bs note}} +% +% \label{note} +% To give a more detailed marking scheme, we get +% the following commands. +% +% \medskip % \DescribeMacro{\totalexe} +% |\totalexe|\marg{num} displays the total number of points of an exercise, +% by default inside an oval box, with the word ``\ptsname'' (or ``\ptname'') +% added and in bold red. +% In the next example, the exercise title has been obtained with |\exercise[\totalexe{4}]|. +% +% \medskip +% \DescribeMacro{\note*} +% For each answer or solution in the correct version, the command +% |\note*|\marg{num} states the number of points of that question. +% The appearance is somewhat different from the one obtained with |\pts|: +% by default the number is displayed without being followed by ``\ptsname'' or ``\ptname'', +% without parenthesis, and in bold. +% In the answer 3 of the next example, just after |\item|, we used: |\note*{1.5}|. +% +% \medskip % \DescribeMacro{\note} -% To give a more detailed marking scheme, the \textsf{exesheet} package -% provides some extended commands: -% |\totalexe|\marg{num} to display the total number of points of an exercise -% and especially |\note|\oarg{pts}\marg{comment}, -% to indicate some marking detail in answers. -% The optional parameter \meta{pts} is the number of points of the question -% and the mandatory parameter \meta{comment} is used to give details about the marking scheme. -% Below the title has been obtained with |\exercise[\totalexe{4}]| -% and the first comment (on next page) with \\ -% |\note[1]{0,5 for the anti-derivative\\0,5 for simplification of $\ln$}|. +% The |\note|\marg{comment} macro is used to give details about the marking scheme +% and to indicate how points are awarded. +% In a comment argument you can use |\\| to get a line break, +% or even |\\[|\meta{height}|]| to increase the line break from \meta{height}. +% +% \DescribeMacro{\note\oarg{num}} +% It is often convenient to put |\note*|\marg{num}|\note|\marg{comment} +% at the beginning of an answer. In that case \LaTeX\ will place the margin +% notes one under the other and will protest with: +% \texttt{LaTeX Warning: Marginpar on page \ldots\@ moved.} \\ +% This is not a real problem because generally \LaTeX\ is able to +% manage the placement of these +% marginal notes, one below the other. Nevertheless, one can avoid unnecessary protests by +% compacting both commands in a single one and typing the number of points +% as an optional argument of note: +% |\note|\oarg{num}\marg{comment}. +% +% The first comment on the following example is obtained (just after |\item|) with\\ +% |\note[1]{0.5 for the anti-derivative\\0.5 for simplifying}|. % % \exercise[\totalexe{4}] \label{totalexe} % \begin{questions} -% \psframe(-3.5,1.3)(12.75,-3.1) +% \psframe(-3.5,1.3)(12.75,-14) % For each following question, say if the assertion is true or false. % Justify the answer carefully. % \begin{tablenum1} % \item $\ds \int_{0}^{\sqrt{3}}\frac{1}{x+\sqrt{3}} \,\mathrm{d}x = \ln 2$, % \item $\ds \int_{2}^{\mathrm{e}} \frac{1}{x\ln x} \,\mathrm{d}x = -\ln 2$, % \item* The function $F$ defined on $\mathbf{R}$ by -% $F(x) = \ds \int_{0}^{x}\frac{1}{,t^2+t+1}\,\mathrm{d} t$ is increasing on $\mathbf{R}$. +% $F(x) = \ds \int_{0}^{x}\frac{1}{t^2+t+1}\,\mathrm{d} t$ is increasing on $\mathbf{R}$. % \end{tablenum1} % \end{questions} % -% \pagebreak % \begin{answers} -% \vspace{-\baselineskip} -% \noindent\psframe(-4.7,0.9)(12.75,-10.25) % \begin{enumerate} -% \item \note[1]{0,5 for the anti-derivative\\0,5 for simplification of $\ln$} +% \item \note[1]{0.5 for the anti-derivative\\0.5 for simplifying} % We calculate: % \[ \int_{0}^{\sqrt{3}}\frac{1}{x+\sqrt{3}}\,\mathrm{d}x % = \bigg[ \ln\left(x+\sqrt{3}\right) \bigg]_0^{\sqrt{3}} @@ -742,9 +857,9 @@ % \] % \textbf{TRUE}. % -% \item \note[1.5]{1 for the anti-derivative \\0.5 for the integral value \\[2ex] -% we could also see that $\frac{1}{x \ln x} >0$ on $[2, \mathrm{e}]$ -% while $-\ln2<0$ +% \item \note[1.5]{1 for the anti-derivative \\0.5 for final value \\[2ex] +% other method: $\frac{1}{x \ln x} >0$ on $[2, \mathrm{e}]$ +% whereas $-\ln2<0$ % } % We have $\ds\frac{1}{x \ln x}= \frac{\frac{1}{x}}{\ln x}= \frac{u'(x)}{u(x)}$ % with $u(x)=\ln x$, which is positive on $[2, \mathrm{e}]$. Hence @@ -768,96 +883,260 @@ % \end{enumerate} % \end{answers} % In the comment of answer 2, a wider vertical space is produced at line break -% with the optional argument |\\[2ex]|\footnote{When a marginal note at the end of a page, -% is followed by another one at the top of the next page, -% the latter is shifted down. -% We can raise this note, by adding at the line break -% a negative vertical space : \texttt{\bs note*\{\bs\bs[-5ex] 2\}}.}. +% with the optional argument |\\[2ex]|. % The last comment, not placed beside the number of points of answer 3, % has been produced by placing on the first line after the formula: % |\note{0.5 for $F'$\\1 for the sign of $F'$ and conclusion}|. % -% \DescribeMacro{\note*} -% If we don't want to add comment, we have the -% |\note*|\marg{pts} command (better than |\note|\oarg{pts}|{}|), -% used here in answer 3: |\note*{1.5}|. -% +% \medskip % \DescribeMacro{markingcolor} \DescribeMacro{\markingstyle} \DescribeMacro{\ptsboxlength} -% The display color of the points, in |\totalexe| and |\note|, +% The points display color, in |\totalexe| and |\note*|, % is defined by \texttt{markingcolor} % and the style by |\markingstyle|, which are modifiable. % The oval box produced by |\totalexe| is obtained with the |\ovalbox| command -% of the \textsf{fancybox} package by Timothy Van Zandt, +% of the \textsf{fancybox} package (by Timothy Van Zandt), % with corner arcs set by |\cornersize{1}|. -% The box length is not adjusted to content but depends of the value -% of |\ptsboxlength| in order to keep a uniform appearance +% The length of the box is not adjusted to content but depends on the value +% of |\ptsboxlength| in order to keep uniform appearance % from one exercise to the other. % -% \DescribeMacro{notecolor} \DescribeMacro{\notestyle} \DescribeMacro{\noteragged} +% \medskip +% \DescribeMacro{notecolor} \DescribeMacro{\notestyle} % Comment notes are typeset by default in a dark green color % defined by |\definecolor{notecolor}{rgb}{0.0,0.4,0.0}|. -% The style of the comment is set by the |\notestyle| macro and itself uses the -% |\noteragged| macro. The latter is set by default as |\raggedleft| -% to obtain a \emph{right} alignment (what is customary for notes -% in the left margin). +% The style of the comment is set by the |\notestyle| macro. +% +% \subsection{Margin notes options} \label{margin} +% +% \DescribeMacro{[display=\meta{opt}]} +% The \texttt{display} key option controls how the marking scheme +% will be displayed: as seen previously (subsection \ref{pts}), +% \texttt{display=none} displays nothing. With \texttt{display=pts} +% the numbers passed as argument to |\pts|, |\totalexe|, |\note*| +% or as optional argument of |\note|\oarg{num}\texttt{\{...\}} will be displayed. +% The last possible value is \texttt{display=notes} which displays the full marginal +% notes with points and comments (the mandatory argument of |\note|) +% as seen in the previous example. +% +% \medskip +% \DescribeMacro{[marginpos=\meta{opt}]} +% As seen previously in subsection \ref{pts}, the side where to place the scale is controlled +% by the \texttt{marginpos} key option +% whose possible values are \texttt{left} and \texttt{right} +% (or \texttt{inner} and \texttt{outer} if the document is in two side mode). +% +% \medskip +% \DescribeMacro{[marginwidth=\meta{opt}]} +% The key option \texttt{marginwidth} controls margins layout. +% The possible values are +% \texttt{standard}, \texttt{expand} or \texttt{unset}. +% +% This option has no effect when \texttt{display=none}. +% In that case, left and right margins have same width, +% except for a two side mode document for which the ratio between left and right +% margin is 2:3. +% Otherwise the key \texttt{marginwidth} acts as follow: +% \begin{description} +% \item[\texttt{standard}] +% The left margin is enlarged and the +% right one is reduced, with a ratio of 3:2 (or 2:3 if \texttt{marginpos=left}). +% The text body is shifted without altering the text width. +% The margin paragraph width remains relatively short; it depends also on page geometry. +% This option is not suitable for verbose comments. % -% \DescribeMacro{\displaypoints} -% Display of points and comments is optional. It is internally controlled by the booleans -% \texttt{marginpoints} and \texttt{marginfullnotes}. -% The |\displaypoints| macro, to place in the preamble, sets \texttt{marginpoints} -% to \texttt{true}, chooses the left margin for display marginal notes -% and sets the ratio between left and right margins to 3:2\footnote{So -% that the effect on the margin ratio is correct, the -% \texttt{\bs displaypoints} macro must be placed after other commands -% that could alter the page geometry, for example the \texttt{\bs pagestyle} -% of the \textsf{schooldocs} package.}. -% Points will then be displayed without the comments. +% \item[\texttt{expand}] It is the default value. +% The behavior is the same than with the +% \texttt{standard} value if \texttt{display=pts}, but if \texttt{display=notes} +% the margin is expanded with a ratio of 3:1 (or 1:3) and margin paragraph width +% is increased. +% +% \item[\texttt{unset}] The previous settings may not suit to anyone, +% so you have this other option. +% In that case, no setting will be proceeded on the margin width and you +% can make your own setting. For that, you have the convenient macro |\geometry| +% from the \textsf{geometry} package (by Hideo Umeki). +% For example you can put in the preamble +% \centeredline{|\geometry{hmarginratio=2:1,marginparwidth=2.5cm}|.} +% +% If \texttt{marginpos=right}, you must invert the ratio, \eg 1:2 instead of 2:1. +% If \texttt{marginwidth} is not set to \texttt{unset}, +% such a command will have no effect. +% \end{description} + +% The margin settings are valid +% for the whole document and must be set in the preamble. +% +% \medskip +% \DescribeMacro{[noteragged=\meta{opt}]} +% For the mandatory argument of |\note|, text alignment in margins +% is controlled by the package option \texttt{noteragged}, +% which can take the following values: +% \texttt{left}, \texttt{right}, \texttt{center}, \texttt{justify} or \texttt{twoside}. +% The default value is \texttt{noteragged=left}. It means that the text +% is right aligned, which is a common behavior for text in the left margin; +% \texttt{noteragged=right} yields a left aligned text; +% \texttt{justify} means that the text is justified, which is the default setting +% of \LaTeX\ marginal notes. +% Finally \texttt{noteragged=twoside} is equivalent to \texttt{noteragged=left} for odd pages +% and \texttt{noteragged=right} for even pages, if the document is in two side mode. +% It has no effect otherwise (the default value \texttt{noteragged=left} will be taken +% and a warning message appears in the shell). +% +% When \texttt{display} is not set to \texttt{notes}, the \texttt{noteragged} option +% has no effect because it concerns only text put in mandatory argument of |\note|. % -% \DescribeMacro{\displaynotes} -% The |\displaynotes|\oarg{align} macro, to be placed also in the preamble, -% defines both booleans to \texttt{true} and allows then the complete display -% of points and comments. -% The ratio between left/right margins is then set to 5/1\footnote{The -% present document kept a ratio of 3/2 because -% the \textsf{ltxdoc} class, used here, leaves large enough margins -% and previous examples are not concerned with display of comments.}. -% The optional parameter \meta{align} is used to define alignment: -% |\raggedleft| by default, but we could use |\centering| or -% |\raggedright| (not recommended in left margin). -% -% \DescribeMacro{\displaynotesright} -% The |\displaynotesright|\oarg{align} macro displays a detailed marking scheme -% with comments in the right margin, with the same type of settings -% as |\displaynotes| but an optional parameter \meta{align} set by default -% to |\raggedleft|. +% \subsection{The \texttt{\bs totalpoints} command} \label{totalpoints} % -% \bigskip % \DescribeMacro{\totalpoints} % The |\totalpoints|\marg{num} macro is intended % to replace |\points| when using a detailed marking scheme. -% When the scale is not displayed (\texttt{marginpoints} boolean to \texttt{false}), -% it uses |\points| and when the scale is displayed, -% it uses |\totalexe|. +% When the scale is not displayed, +% it is equivalent to |\points| and when the scale is displayed, +% it is equivalent to |\totalexe|. % For example, in the exercise \ref{totalexe}, we should use % |\totalpoints| rather than |\totalexe|, % because, when the detailed marking scheme is not displayed, the total points will be typeset % as in the exercise \ref{points} rather than in the margin. % +% \subsection{Marking scheme consistency checking}\label{scale} +% +% \DescribeMacro{[checkpts=\meta{bool}]} +% The marking scheme can be checked +% \footnote{Thanks to Denis Bitouzé for his suggestion about this feature.} +% with the keyval option \texttt{[checkpts=true]}, +% the default value is \texttt{false}. +% +% \medskip +% For each exercise, the sum of points awarded for each question (with |\pts|, |\note*| +% or |\note[ ]| is compared to the total of the exercise given in +% |\points|, |\totalexe| or |totalpoints|. +% A warning message appear in the shell to indicate if the scale is valid or not +% for the exercise. For example: +% \begin{center} +% \texttt{Package exesheet warning: Exercise 3: sum of points is 4.5pt instead of 5pt.} +% \end{center} +% Depending on your language, you can use comma notation numbers (4,5 as well as 4.5). +% The checking takes place at the beginning of the next exercise. If no points are specified +% for the questions, no warning message will be displayed at this level. +% +% \medskip +% \DescribeMacro{\totalsheet} +% At the end of the sheet, the last exercise is checked, then a global checking +% is made on the whole sheet. For that, the total points of the sheet must be specified +% in the preamble with the |\totalsheet|\marg{total} macro +% (else you get a warning message). +% If subtotal points have been awarded for exercises, the global comparison +% is between the sum of these subtotals and the total of points recorded +% with the |\totalsheet| macro. +% If not, the audit covers the sum of points awarded for each individual question. +% A warning message indicates the result of this last checking. +% Finally a last message indicate if all the scale controls have been successfully +% passed or not. +% +% \section{Options} \label{options} +% +% \subsection{Summary of available options} +% +% Here we present a summary table of available options. Explanations of use +% are given in the corresponding sections. +% The default value is typeset in bold. +% +% \begin{center} \ttfamily +% \setlength{\extrarowheight}{1pt} +% \begin{tabular}{llc} +% \hline +% \textsf{Key} & \textsf{Possible values} & \textsf{See section} \\ +% \hline +% exetoc & \textbf{true}, false & \ref{toc} \\ +% setlist & \textbf{true}, false & \ref{setlist} \\ +% output & questions, answers, \textbf{both} & \ref{output} \\ +% answerspace & true, \textbf{false} & \ref{answerspace}\\ +% display & \textbf{none}, pts, notes & \ref{pts}, \ref{margin} \\ +% marginpos & \textbf{left} (inner), right (\textbf{outer}) & \ref{pts}, \ref{margin} \\ +% marginwidth & standard, \textbf{expand}, unset & \ref{margin} \\ +% noteragged & \textbf{left}, right, center, justify, twoside & \ref{margin} \\ +% checkpts & true, \textbf{false} & \ref{scale} \\ +% correct & true, \textbf{false}, conditional & \hyperlink{correct}{see below} \\ +% \hline +% \end{tabular} +% \end{center} +% +% When an invalid key is passed, an error is produced, but +% when a value is not recognized, a warning message occur:\\ +% \texttt{Value `\meta{value}'\ is not supported by option `\meta{key}'\ +% on input line \ldots} \\ +% For each option, you can set them with class or package calling: \eg \\ +% |\usepackage[output=answers,display=notes,noteragged=right]{exesheet}| +% +% \bigskip +% \DescribeMacro{\exesheetset} +% You can also use the |\exesheetset|\{list of \meta{key}=\meta{value} options\} +% command. +% Nevertheless, only the options \texttt{output}, \texttt{answerspace}, \texttt{display}, +% and \texttt{noteragged}, +% can be changed dynamically, even in the document body, although this is not really expected. +% The others are usable in the preamble only. +% Dynamic options are processed at each call, the others will be processed once, +% at begin document. +% \hypertarget{correct}{} +% +% \bigskip +% \DescribeMacro{[correct=\meta{opt}]} +% A special option, \texttt{correct}, can be used only when calling the \textsf{exesheet} +% class or in combination with the \textsf{schooldocs} package. +% Its effect is to add ``\correctname'' (or its translation) +% in the document title and headers. +% Possible values are: \texttt{true}, \texttt{false} (by default) or \texttt{conditional}. +% The value \texttt{correct=conditional}, means \texttt{true} if answers are displayed, +% \texttt{false} otherwise. +% +% \subsection{Alternative (deprecated) commands} +% +% Previously to version 2.0, we used some special commands to set output and display options. +% Thanks to a suggestion of Maxime Chupin, keyval options have been implemented +% in the package. +% Although the latter is more convenient, +% the old commands will be presented here +% and maintained for now, for compatibility reasons. +% When using them, a warning message will appear, but these commands still work. +% However previous options \texttt{nosetlist} and \texttt{notoc} +% are no longer supported. +% +% \bigskip +% \DescribeMacro{\questionsonly} \DescribeMacro{\answersonly} +% These two commands are equivalent to respectively \texttt{output=questions} +% and \texttt{output=answers}. +% +% \medskip +% \DescribeMacro{\displaypts} \DescribeMacro{\displaypoints} +% These two commands are now equivalent to \texttt{display=pts}. % +% \medskip +% \DescribeMacro{\displaynotes}\DescribeMacro{\displaynotesright} +% These two commands mean \texttt{display=notes} +% and moreover \texttt{marginpos=right} for the latter. % % \StopEventually{} % % \section{Implementation} % -% \subsection{Class and package basic instructions} +% \subsection{Options and required packages} % The \texttt{exesheet} class is based on the \texttt{article} class -% and gives it all its options, except explicit options -% \texttt{notoc} and \texttt{nosetlist}. -% +% and passes to it all its unknown options. +% |\ProcessKeyvalOptions*| is useless in class, will be done by the package. % \begin{macrocode} %<*class> -\DeclareOption{notoc}{\PassOptionsToPackage{notoc}{exesheet}} -\DeclareOption{nosetlist}{\PassOptionsToPackage{nosetlist}{exesheet}} +\RequirePackage{kvoptions} +\DeclareBoolOption[true]{exetoc} +\DeclareBoolOption[true]{setlist} +\DeclareStringOption[both]{output} +\DeclareStringOption[none]{display} +\DeclareBoolOption[false]{answerspace} +\DeclareStringOption[left]{marginpos} +\DeclareStringOption[expand]{marginwidth} +\DeclareStringOption[left]{noteragged} +\DeclareBoolOption[false]{checkpts} +\DeclareStringOption[false]{correct} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions \relax \LoadClass{article} @@ -866,40 +1145,100 @@ %</class> % \end{macrocode} % -% Then we define initialization instructions of the \textsf{exesheet} package. -% -% \medskip -% The \texttt{shortlabel} option in the \textsf{enumitem} package allows to use labels like in -% the \textsf{enumerate} package e.g. 1., a), A. etc. -% +% Then options are defined thanks to \textsf{kvoptions} package (based on \textsf{keyval}). +% String options are processed in separate macros +% defined in the corresponding sections of each. +% These process macros will be executed when package is loaded +% (at end of package because |\exs@process...| aren't recognized at the beginning), +% or at begin document for options whose +% effect cannot be changed dynamically +% and must be set in the preamble +% (they will be processed once). +% +% A special case is \texttt{setlist} when used with \textsf{babel-french}. +% It will then be processed immediately and disabled (see below for explanations). +% % \begin{macrocode} %<*package> +\@ifclassloaded{exesheet}{}{ + \RequirePackage{kvoptions} + \DeclareBoolOption[true]{exetoc} + \DeclareBoolOption[true]{setlist} + \DeclareStringOption[both]{output} + \DeclareStringOption[none]{display} + \DeclareBoolOption[false]{answerspace} + \DeclareStringOption[left]{marginpos} + \DeclareStringOption[expand]{marginwidth} + \DeclareStringOption[left]{noteragged} + \DeclareBoolOption[false]{checkpts} + \DeclareStringOption[false]{correct} +} + +\ProcessKeyvalOptions* + +\def\exs@process@dynoptions{ + \exs@process@output + \exs@process@display + \exs@process@noteragged +} + +\AtEndOfPackage{\exs@process@dynoptions} +\AtBeginDocument{ + \newif\ifexesheet@multicol + \@ifpackageloaded{multicol}{ + \exesheet@multicoltrue}{\exesheet@multicolfalse} + % to set the rule to the right color in answers environments + \exs@process@setlist + \exs@process@marginpos + \exs@process@marginwidth + \exs@process@checkpts + \exs@process@correct + \DisableKeyvalOption[action=warning,package=exesheet]{exesheet}{setlist} + \DisableKeyvalOption[action=warning,package=exesheet]{exesheet}{marginpos} + \DisableKeyvalOption[action=warning,package=exesheet]{exesheet}{marginwidth} + \DisableKeyvalOption[action=warning,package=exesheet]{exesheet}{checkpts} + \DisableKeyvalOption[action=warning,package=exesheet]{exesheet}{correct} +} + +% \end{macrocode} +% \begin{macro}{\exesheetset} +% The macro |\exesheetset| can receive keyval options. +% It can be used anywhere in the document to modify some settings, +% but has no effect on non dynamic options if called outside the preamble; +% thanks to |\DisableKeyValOption| a warning message occur in that case. +% \begin{macrocode} +\def\exesheetset#1{\setkeys{exesheet}{#1}\exs@process@dynoptions} + +% \end{macrocode} +% \end{macro} +% Now we load several packages. +% The \texttt{shortlabel} option in the \textsf{enumitem} package allows to use labels like in +% the \textsf{enumerate} package \eg 1., a), A. etc. +% The \textsf{mparhack} package (by Tom Sgouros and Stefan Ulrich) +% is loaded only for two side mode documents. +% \begin{macrocode} \RequirePackage{ifthen} -\newboolean{notoc} -\newboolean{nosetlist} -\DeclareOption{notoc}{\setboolean{notoc}{true}} -\DeclareOption{nosetlist}{\setboolean{nosetlist}{true}} -\ProcessOptions \relax +\RequirePackage{geometry} \RequirePackage{xcolor} \RequirePackage[shortlabels]{enumitem} \RequirePackage{tasks} \RequirePackage{versions} -%\@ifpackageloaded{doc}{}{\RequirePackage{verbatim}} -\RequirePackage{geometry} \RequirePackage{fancybox} \RequirePackage{translations} +\RequirePackage{ragged2e} +\ifthenelse{\boolean{@twoside}}{\RequirePackage{mparhack}}{} % \end{macrocode} % % \subsection{Internationalization} -% Here we define the keywords and their translation in French, German, Spanish +% Here we define keywords and their translation in French, German, Spanish % Italian, Portuguese, thanks to macros of the \textsf{translations} package % by Clemens Niederberger. It detects the used language % loaded by \textsf{babel} or \textsf{polyglossia}. % % Accented characters cannot be used here because they are not recognized % if \textsf{inputenc} is loaded after \textsf{exesheet}. -% So we have used the basic \LaTeX\ commands to produce them. +% So we have used basic \LaTeX\ control sequences to produce them. % % \begin{macrocode} \DeclareTranslationFallback{exesheet-exercise}{Exercise} @@ -939,8 +1278,8 @@ \DeclareTranslation{German}{exesheet-points}{Punkte} \DeclareTranslation{German}{exesheet-point}{Punkt} \DeclareTranslation{German}{exesheet-correction}{Verbesserung} -\DeclareTranslation{German}{exesheet-pts}{Pkte} -\DeclareTranslation{German}{exesheet-pt}{Pkt} +\DeclareTranslation{German}{exesheet-pts}{P.} +\DeclareTranslation{German}{exesheet-pt}{P.} \DeclareTranslation{Spanish}{exesheet-exercise}{Ejercicio} \DeclareTranslation{Spanish}{exesheet-subpart}{Parte} @@ -984,61 +1323,51 @@ % \end{macrocode} % -% \subsection{Colors} -% The color \texttt{pointscolor} is used by the macro |\points| -% and \texttt{markingcolor} by the macros |\totalexe|, |\note*| -% and also for the optional argument of |\note|; -% \texttt{notecolor} is used by the mandatory argument of |\note|. -% -% \begin{macrocode} -\definecolor{pointscolor}{named}{red} -\definecolor{ptscolor}{named}{red} -\definecolor{markingcolor}{named}{red} -\definecolor{notecolor}{rgb}{0.0, 0.4, 0.0} % kind of dark green -\definecolor{correctioncolor}{rgb}{0,0.2,0.6} % kind of dark blue - -% \end{macrocode} -% -% \medskip % \subsection{Titles} +% % The \texttt{exercise} counter numbers exercises for the whole document % regardless of any section. % To reset the counter at some point, just write |\setcounter{exercise}{0}| -% and if we want an automatic reset at each section, +% and for an automatic reset at each section, % add in the preamble \\ % |\makeatletter \@addtoreset{exercise}{section} \makeatother|. % % The parts counter depends on \texttt{exercise} and is reset % at each new exercise. % -% The |\labelexercisestyle| and |\labelsubpartstyle| commands -% are empty, but allow to customize the style, for instance:\\ +% Commands |\labelexercisestyle| and |\labelsubpartstyle| +% are empty, but allow to personalize the style, for instance:\\ % |\renewcommand\labelexercisestyle{\sffamily}|. % -% By default, the table of contents displays the titles of exercises and parts. -% The \texttt{notoc} boolean is used to modify this behavior. -% If we want to display only exercise titles but not parts, -% we can place in the preamble |\setcounter{tocdepth}{2}|. +% The |\exe@check| macro checks the marking scheme, it will be defined +% in section \ref{MSoptions}. +% By default, the table of contents displays the titles of exercises and parts, +% |\ifexesheet@exetoc| is \texttt{true}. +% To display in it only exercise titles but not parts, +% place in the preamble |\setcounter{tocdepth}{2}|. % % \begin{macro}{\exercise} % \begin{macrocode} \newcounter{exercise} -\newcommand{\labelexercise}{\exercisename~\theexercise} +\newcommand{\labelexercise}{\exercisename\space \theexercise} \newcommand{\labelexercisestyle}{} -\newcommand*{\@exercise}[1][]{% +\newcommand*{\@exercise}[1][]{% + \ifexesheet@checkpts \exe@check{\labelexercise} \fi + % curiously the \execheck must be done before \refstepcounter ! \refstepcounter{exercise} - \subsection*{\labelexercisestyle\labelexercise\ #1} - \ifthenelse{\boolean{notoc}}{}{ + \subsection*{\labelexercisestyle\labelexercise\enskip #1} + \ifexesheet@exetoc \addcontentsline{toc}{subsection}{\labelexercise} - } + \fi } \newcommand*{\@@exercise}[2][]{% - \subsection*{\labelexercisestyle #2 #1} + \ifexesheet@checkpts \exe@check{#2} \fi + \subsection*{\labelexercisestyle #2\enskip #1} \setcounter{subpart}{0} % resets the parts counter - \ifthenelse{\boolean{notoc}}{}{ + \ifexesheet@exetoc \addcontentsline{toc}{subsection}{#2} - } + \fi } \newcommand{\exercise}{\@ifstar{\@@exercise}{\@exercise}} @@ -1052,17 +1381,17 @@ \newcommand{\labelsubpart}{\subpartname~\thesubpart} \newcommand{\labelsubpartstyle}{} \newcommand*{\@subpart}[1][]{% - \refstepcounter{subpart}% - \subsubsection*{\labelsubpartstyle\labelsubpart\ #1} - \ifthenelse{\boolean{notoc}}{}{ + \refstepcounter{subpart}% + \subsubsection*{\labelsubpartstyle\labelsubpart\enskip #1} + \ifexesheet@exetoc \addcontentsline{toc}{subsubsection}{\labelsubpart} - } + \fi } \newcommand*{\@@subpart}[2][]{% - \subsubsection*{\labelsubpartstyle #2 #1} - \ifthenelse{\boolean{notoc}}{}{ + \subsubsection*{\labelsubpartstyle #2\enskip #1} + \ifexesheet@exetoc \addcontentsline{toc}{subsubsection}{#2} - } + \fi } \newcommand{\subpart}{\@ifstar{\@@subpart}{\@subpart}} @@ -1073,9 +1402,9 @@ \newcommand{\annexstyle}{\MakeUppercase} \newcommand*{\annex}[1][]{% \subsection*{\mbox{}\hfill\annexstyle{\annexname} #1\hfill\mbox{}} - \ifthenelse{\boolean{notoc}}{}{ + \ifexesheet@exetoc \addcontentsline{toc}{subsection}{\annexname} - } + \fi } % \end{macrocode} @@ -1092,58 +1421,13 @@ % \end{macrocode} % \end{macro} -% \begin{macro}{\points (ini)} -% \begin{macrocode} -\newcommand{\pointsstyle}{% - \small\mdseries\sffamily\color{pointscolor}\fbox} -\newcommand*{\points}[1]{\hfill - \pointsstyle{#1~% - \ifthenelse{\lengthtest{#1 cm < 2cm}}{\pointname}{\pointsname}% - } -} - -% \end{macrocode} -% Percent symbols are necessary to avoid spaces between the -% |\fbox| and its inner text. -% Note that, without |\lengthtest|, the test |#1 < 2| doesn't work with decimal numbers. -% % \end{macro} % % \subsection{Enumerations and lists} % -% When using \textsf{babel} with the \texttt{french} option\footnote{The \texttt{french} option -% of \textsf{babel} supersedes the \texttt{frenchb} option.}, -% \texttt{itemize} lists are modified with the same dash label for each list level. -% These modifications are canceled here to restore default -% \LaTeX\ \texttt{itemize} lists (labels and spaces). -% As for |\exetranslate|, -% we have create the |\standardfrenchlists| command who must be called into -% |AtBeginDocument| or not, depending on whether -% \textsf{exesheet} is loaded before \textsf{babel} or after. -% +% \begin{macro}{\exenumerate} % The |\setlist| command comes from the \textsf{enumitem} package -% (|\setenumerate| is deprecated). By default |itemsep=1ex| for lists of first level, +% (|\setenumerate| is obsolete). By default |itemsep=1ex| for lists of first level, % and |leftmargin=1.5em| allows to align labels on the start of lines. -% -% \begin{macrocode} -\newcommand\standardfrenchlists{% - \@ifpackagewith{babel}{frenchb}{ - \frenchbsetup{StandardLists=true}}{} - \@ifpackagewith{babel}{french}{ - \@ifundefined{frenchsetup}{ - \frenchbsetup{StandardLists=true}}{ - \frenchsetup{StandardLists=True}} - }{} -} -\ifthenelse{\boolean{nosetlist}}{}{ - \AtBeginDocument{% if loaded before babel package - \standardfrenchlists} - \standardfrenchlists % necessary when loaded after babel - \setlist[enumerate]{font=\bfseries} - \setlist[enumerate,1]{topsep=1.5ex plus 1ex minus 1ex,leftmargin=1.5em} -} - -% \end{macrocode} -% \begin{macro}{\exenumerate} % \begin{macrocode} \newenvironment{exenumerate}[1][]{% \setlist[enumerate]{font=\bfseries} @@ -1156,23 +1440,40 @@ % \end{macrocode} % \end{macro} +% When using \textsf{babel} with the option \texttt{french}, +% \texttt{itemize} lists are modified with the same dash label for each list level. +% These modifications are canceled here to restore default +% \LaTeX\ \texttt{itemize} lists (labels and spaces). +% We have create the |\standardfrenchlists| command which must be called into +% |AtBeginDocument| or not, depending on whether +% \textsf{exesheet} is loaded before \textsf{babel} or after. +% \begin{macrocode} +\newcommand\standardfrenchlists{% + \@ifpackagewith{babel}{french}{ + \frenchsetup{StandardLists=true} + }{} +} +\ifexesheet@setlist + \standardfrenchlists % necessary when exesheet is loaded after babel + \DisableKeyvalOption[action=warning,package=exesheet]{exesheet}{setlist} +\fi + +\def\exs@process@setlist{% must be executed at begin document + \ifexesheet@setlist + \standardfrenchlists % if exesheet is loaded before babel package + \setlist[enumerate]{font=\bfseries} + \setlist[enumerate,1]{topsep=1.5ex plus 1ex minus 1ex,leftmargin=1.5em} + \fi +% \end{macrocode} + % \DescribeEnv{tablenum1} \DescribeEnv{tablenuma} % The |\NewTasks| command comes from the \textsf{tasks} package. -% It allows to define the environments \texttt{tablenum1}, \texttt{tablenuma} +% It allows to define environments \texttt{tablenum1}, \texttt{tablenuma} % and \texttt{tablitem}. -% The horizontal spaces are adjusted to get a good alignment with +% Horizontal spaces are adjusted to get good alignments with % items of other \texttt{enumerate} (or \texttt{itemize}) environments. -% % \begin{macrocode} -\ifthenelse{\boolean{nosetlist}}{ - \NewTasksEnvironment[label=\arabic*., - column-sep=1em, - after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenum1}[\item](2) - \NewTasksEnvironment[label=(\alph*), - column-sep=1em,label-align=right, - item-indent=2.15em,label-width=1.6em,label-offset=0.5em, - after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenuma}[\item](2) -}{% by default + \ifexesheet@setlist \NewTasksEnvironment[label=\arabic*.,label-format=\bfseries, column-sep=1em,label-align=right, item-indent=1.5em,label-width=1em,label-offset=0.5em, @@ -1181,8 +1482,16 @@ column-sep=1em,label-align=right, item-indent=2.15em,label-width=1.6em,label-offset=0.5em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenuma}[\item](2) -} -\PackageWarning{exesheet}{Environment tablenum is deprecated and replaced by tablenum1} + \else + \NewTasksEnvironment[label=\arabic*., + column-sep=1em, + after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenum1}[\item](2) + \NewTasksEnvironment[label=(\alph*), + column-sep=1em,label-align=right, + item-indent=2.15em,label-width=1.6em,label-offset=0.5em, + after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenuma}[\item](2) + \fi +} % end of macro \exs@process@setlist % \end{macrocode} % \DescribeEnv{tablitem} @@ -1193,46 +1502,52 @@ after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablitem}[\item](2) % \end{macrocode} -% \DescribeEnv{colsenum} \DescribeEnv{colsenum*} +% \DescribeEnv{colsenum} % \begin{macrocode} \newenvironment{colsenum}[2][]{% \setlength{\multicolsep}{2ex} \raggedcolumns % default is \flushcolumns \begin{multicols}{#2} % #2 = number of columns - \begin{enumerate}[#1] % #1 = options of enumerate - }{ - \end{enumerate} + \begin{enumerate}[#1] % #1 = options of enumerate + }{ + \end{enumerate} \end{multicols} } +% \end{macrocode} +% \DescribeEnv{colsenum*} +% \begin{macrocode} \newenvironment{colsenum*}[2][]{% \setlength{\multicolsep}{2ex} \begin{multicols}{#2} % #2 = number of columns - \begin{enumerate}[#1] % #1 = options of enumerate - }{ - \end{enumerate} + \begin{enumerate}[#1] % #1 = options of enumerate + }{ + \end{enumerate} \end{multicols} } % \end{macrocode} -% \DescribeEnv{colsitem} \DescribeEnv{colsitem*} +% \DescribeEnv{colsitem} % \begin{macrocode} \newenvironment{colsitem}[2][]{% \setlength{\multicolsep}{2ex} \raggedcolumns \begin{multicols}{#2} - \begin{itemize}[#1] - }{ - \end{itemize} + \begin{itemize}[#1] + }{ + \end{itemize} \end{multicols} } +% \end{macrocode} +% \DescribeEnv{colsitem*} +% \begin{macrocode} \newenvironment{colsitem*}[2][]{% \setlength{\multicolsep}{2ex} \begin{multicols}{#2} - \begin{itemize}[#1] - }{ - \end{itemize} + \begin{itemize}[#1] + }{ + \end{itemize} \end{multicols} } @@ -1240,55 +1555,73 @@ % % \subsection{Questions and answers} % -% \DescribeMacro{\questionsonly} \DescribeMacro{\answersonly} -% The \texttt{questions} and \texttt{answers} booleans +% \begin{macro}{\exs@process@output} +% |exesheet@questions| and |exesheet@answers| booleans % control the display of corresponding environments. -% When created, a boolean has the \texttt{false} value by default, -% but we define them to \texttt{true}. -% The |\questionsonly| and |\answersonly| macros are used as user interface -% to display only one of the two environments. +% They are set by the \texttt{output} key option in the +% |\exs@process@output| macro. % \begin{macrocode} -\newboolean{questions} -\newboolean{answers} -\setboolean{questions}{true} -\setboolean{answers}{true} -\newcommand{\questionsonly}{ - \setboolean{questions}{true}\setboolean{answers}{false}} -\newcommand{\answersonly}{ - \setboolean{questions}{false}\setboolean{answers}{true}} +\newboolean{exesheet@questions}\setboolean{exesheet@questions}{true} +\newboolean{exesheet@answers}\setboolean{exesheet@answers}{true} + +\def\exs@process@output{ + \ifthenelse{\equal{\exesheet@output}{questions}}{ + \setboolean{exesheet@questions}{true} + \setboolean{exesheet@answers}{false} + }{% else if + \ifthenelse{\equal{\exesheet@output}{answers}}{ + \setboolean{exesheet@questions}{false} + \setboolean{exesheet@answers}{true} + }{% else if + \ifthenelse{\equal{\exesheet@output}{both}}{ + \setboolean{exesheet@questions}{true} + \setboolean{exesheet@answers}{true} + }{% else + \PackageWarning{exesheet}{Value `\exesheet@output' + is not supported by option `output'} + }}} +} % \end{macrocode} +% \end{macro} % % \begin{environment}{questions} -% It is the |\comment| and |\endcomment| macros, provided by the \textsf{versions} package, +% We use the \textsf{versions} package by Uwe Lück +% who provides |\comment| and |\endcomment| macros, % that allow the magic of conditional displays (we can also find them -% in the \textsf{verbatim} or \textsf{version} packages). +% in \textsf{verbatim} or \textsf{version} packages). % The noteworthy \textsf{codesection} package, allows to encapsulate % optional code between the macros |\BeginCodeSection|\marg{skip} % and |\EndCodeSection|\marg{skip}, % both in the text body and in the preamble, % but these macros cannot be used inside an environment % as we did here for |\comment| and |\endcomment|. +% +% Some tests are made by |\ifthenelse{\bolean{...}}| +% because |\comment| and |\endcomment| causes some hassle +% with the \TeX\ structure |\if| \ldots |\else| \ldots |\fi|. +% The two counters |exe@ini| and |subpart@ini| are used in +% the following |\set@toclevel| macro. % \begin{macrocode} \newcounter{exe@ini} \newcounter{subpart@ini} \newenvironment{questions}{ - \ifthenelse{\boolean{questions}}{ + \ifthenelse{\boolean{exesheet@questions}}{% \setcounter{exe@ini}{\value{exercise}} \setcounter{subpart@ini}{\value{subpart}} - }{\comment}}% -{\ifthenelse{\boolean{questions}}{}{\endcomment}} + }{\comment} +}{\ifthenelse{\boolean{exesheet@questions}}{}{\endcomment}} % \end{macrocode} % \end{environment} % \begin{environment}{answers} -% The internal macro |\set@toclevel| calculates the title level -% of the word \emph{\correctionname} to display at the start of an +% The internal macro |\set@toclevel| calculates the title level (counter |toc@level|) +% to get a correct typesetting of the word ``\correctionname'' at the start of an % \texttt{answers} environment (when \texttt{questions} and \texttt{answers} are -% displayed together). The principle is to compare the state of the counters +% displayed together). The principle is to compare the state of counters % \texttt{exercise} and \texttt{subpart} with those saved at the time of -% the call of \texttt{questions}. The |\@enumdepth| counter indicates the +% the call of the \texttt{questions} environment. The |\@enumdepth| counter indicates the % \texttt{enumerate} list level in which we are (0 = out of lists). % The optional parameter of the \texttt{answers} environment allows to force this title level. % \begin{macrocode} @@ -1297,219 +1630,680 @@ \ifthenelse{\equal{#1}{}}{ \ifthenelse{\value{exercise} > \value{exe@ini}}{ \setcounter{@toclevel}{1} - }{\ifthenelse{\equal{\the\@enumdepth}{0}}{ - % we're not in an enumerate environment - \ifthenelse{\(\value{subpart} > \value{subpart@ini}\) - \or \(\value{subpart} = 0\)}{ - \setcounter{@toclevel}{2} - }{\setcounter{@toclevel}{3}} - }{\setcounter{@toclevel}{4}}} + }{% else + \ifthenelse{\equal{\the\@enumdepth}{0}}{ + % we're not in an enumerate environment + \ifthenelse{\(\value{subpart} > \value{subpart@ini}\) + \or \(\value{subpart} = 0\)}{ + \setcounter{@toclevel}{2} + }{\setcounter{@toclevel}{3}} + }{\setcounter{@toclevel}{4}}} }{\setcounter{@toclevel}{#1}}} +% \end{macrocode} +% The internal macro |\typeset@correctionname|, +% typesets the word ``\correctionname'' at the right level. +% \begin{macrocode} +\definecolor{correctioncolor}{rgb}{0,0.2,0.6} % kind of dark blue \newcommand{\correctionstyle}{\color{correctioncolor}} +\newcommand{\typeset@correctionname}{ + \ifthenelse{\value{@toclevel} = 1}{ + \section*{\correctionstyle\correctionname} + \ifexesheet@exetoc + \addcontentsline{toc}{section}{\correctionname} + \fi + \setcounter{exercise}{0} + }{% else if + \ifthenelse{\value{@toclevel} = 2}{% + \subsection*{\correctionstyle\correctionname} + \ifexesheet@exetoc + \addcontentsline{toc}{subsection}{\correctionname} + \fi + \setcounter{subpart}{0} + }{% else if + \ifthenelse{\value{@toclevel} = 3}{% + \subsubsection*{\correctionstyle\correctionname} + \ifexesheet@exetoc + \addcontentsline{toc}{subsubsection}{\correctionname} + \fi + }{% else + \par\textbf{\correctionstyle\correctionname}\par + }}} +} + +% \end{macrocode} +% Then we can write the \texttt{answers} environment. +% \begin{macrocode} \newenvironment{answers}[1][]{% #1 is the optional level - \ifthenelse{\boolean{answers}}{% - \ifthenelse{\boolean{questions}}{% + \ifthenelse{\boolean{exesheet@answers}}{% + \ifthenelse{\boolean{exesheet@questions}}{ \set@toclevel[#1] - \ifthenelse{\value{@toclevel} = 1}{ - \section*{\correctionstyle\correctionname} - \ifthenelse{\boolean{notoc}}{}{ - \addcontentsline{toc}{section}{\correctionname}} - \setcounter{exercise}{0} - }{\ifthenelse{\value{@toclevel} = 2}{% - \subsection*{\correctionstyle\correctionname} - \ifthenelse{\boolean{notoc}}{}{ - \addcontentsline{toc}{subsection}{\correctionname}} - \setcounter{subpart}{0} - }{\ifthenelse{\value{@toclevel} = 3}{% - \subsubsection*{\correctionstyle\correctionname} - \ifthenelse{\boolean{notoc}}{}{ - \addcontentsline{toc}{subsubsection}{ - \correctionname}} - }{\par\textbf{\correctionstyle\correctionname}\par - }% - }% - }% + \typeset@correctionname \correctionstyle% - }{}% + \ifexesheet@multicol + \renewcommand{\columnseprulecolor}{\color{correctioncolor}} + \fi + }{} }{\comment} -}{\ifthenelse{\boolean{answers}}{}{\endcomment}} +}{\ifthenelse{\boolean{exesheet@answers}}{}{\endcomment}} -\newenvironment{answers*}{\ifthenelse{\boolean{answers}}{}{\comment}}% -{\ifthenelse{\boolean{answers}}{}{\endcomment}} +\newenvironment{answers*}{ + \ifthenelse{\boolean{exesheet@answers}}{}{\comment} +}{\ifthenelse{\boolean{exesheet@answers}}{}{\endcomment}} % \end{macrocode} -% In the \texttt{answers} environment, if we place |\correctionstyle| -% before |\subsubsection|, the preceding vertical space may be too wide. -% +% In the \texttt{answers} environment, when placing |\correctionstyle| +% before |\subsubsection| (case of |\typeset@correctionname|), +% the preceding vertical space may be too wide. % \end{environment} +% % \begin{macro}{\question} % \begin{macrocode} -\newcommand{\question}[2]{% - \ifthenelse{\boolean{questions}}{#1}{} - \bgroup - \ifthenelse{\boolean{answers}}{ - \ifthenelse{\boolean{questions}}{ - \ifx#2\empty\else - \par\correctionstyle\textbf{\correctionname}\par - \fi - }{} - #2}{} - \egroup +\newcommand{\question}[1]{\ifexesheet@questions #1\fi} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\answer} +% \begin{macrocode} +\newcommand{\answer}[1]{% + \ifexesheet@answers% + \ifexesheet@questions \correctionstyle #1\else #1\fi + \fi +} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\answerspace} +% The \texttt{answerspace} macro was a suggestion of Maxime Chupin +% to permit students to write answers on the given paper. +% \begin{macrocode} +\newcommand\answerspace[1]{ + \ifexesheet@answerspace \par\vspace{#1} \fi} + +% \end{macrocode} +% \end{macro} +% +% \subsection{Marking scheme options processing} \label{MSoptions} +% +% Options \texttt{display}, \texttt{marginpos}, \texttt{marginwidth} +% and \texttt{noteragged} are processed with the following internal commands. +% +% \medskip +% The \texttt{display} key option sets the value of the two booleans +% |exesheet@pts| and |exesheet@notes|. +% |exesheet@pts| controls the display of the content of |\pts| and of optional arguments +% of |\note|, +% whereas |exesheet@notes| controls mandatory arguments of |\note|. +% +% \begin{macro}{\exs@process@display} +% \begin{macrocode} +\newboolean{exesheet@pts} +\newboolean{exesheet@notes} + +\def\exs@process@display{ + \ifthenelse{\equal{\exesheet@display}{pts}}{ + \setboolean{exesheet@pts}{true} + \setboolean{exesheet@notes}{false} + }{% else if + \ifthenelse{\equal{\exesheet@display}{notes}}{ + \setboolean{exesheet@pts}{true} + \setboolean{exesheet@notes}{true} + }{% else if + \ifthenelse{\equal{\exesheet@display}{none}}{ + \setboolean{exesheet@pts}{false} + \setboolean{exesheet@notes}{false} + }{% else + \PackageWarning{exesheet}{Value `\exesheet@display' + is not supported by option `display'} + }}} } % \end{macrocode} % \end{macro} -% \begin{macro}{\points (patched)} +% \begin{macro}{\exs@process@marginpos} +% The \texttt{marginpos} key option takes value \texttt{left} (the default) or \texttt{right} +% (or \texttt{inner} and \texttt{outer}). In practice \texttt{inner} is equivalent to +% \texttt{left} +% but, in two side mode, \texttt{left} (the default value) or \texttt{right} +% are converted to \texttt{outer} (the default value for two side mode). % \begin{macrocode} -\let\@oldpoints\points -\renewcommand*{\points}[1]{% - \ifthenelse{\boolean{questions}}{\@oldpoints{#1}}{}} +\newboolean{exesheet@leftmargin} + +\def\exs@process@marginpos{ + \ifthenelse{\equal{\exesheet@marginpos}{left}}{ + \if@twoside% + \PackageWarningNoLine{exesheet}{Default `marginpos' option + \MessageBreak + for two side documents is `outer'.\MessageBreak + Use `inner' to change the side} + \def\exesheet@marginpos{outer} + \setboolean{exesheet@leftmargin}{false} + \normalmarginpar + \else% default + \setboolean{exesheet@leftmargin}{true} + \reversemarginpar + \fi + }{% else if + \ifthenelse{\equal{\exesheet@marginpos}{right}}{ + \if@twoside% + \PackageWarningNoLine{exesheet}{Default `marginpos' option + \MessageBreak + for two side documents is `outer'.\MessageBreak + Use `inner' to change the side} + \def\exesheet@marginpos{outer} + \fi + \setboolean{exesheet@leftmargin}{false} + \normalmarginpar + }{% else if + \ifthenelse{\equal{\exesheet@marginpos}{inner}}{ + \setboolean{exesheet@leftmargin}{true} + \reversemarginpar + }{% else if + \ifthenelse{\equal{\exesheet@marginpos}{outer}}{ + \setboolean{exesheet@leftmargin}{false} + \normalmarginpar + }{% else + \PackageWarningNoLine{exesheet}{Value `\exesheet@marginpos' + is not supported by option `marginpos'} + }}}} +} % \end{macrocode} % \end{macro} +% \begin{macro}{\exs@process@marginwidth} +% The \texttt{marginwidth} option changes the ratio between left and right margins +% depending on what has to be displayed in the margin (only points or full +% notes) +% \footnote{So that the effect on the margin ratio is correct, this option is processed +% at begin document, after other commands +% that also could alter page geometry.}. +% +% When \texttt{display=notes}, the additional length \texttt{1\,in} matches +% the default free space to the left of |\oddsidemargin|. +% +% The macros |\standardmarginwidthfactor| and |\largemarginwidthfactor| +% represent the ratio between total margin width and |\marginparwidth|. % -% \subsection{Marginal notes} +% \begin{macrocode} +\def\standardmarginwidthfactor{0.6} +\def\largemarginwidthfactor{0.8} + +\newcommand*{\leftnotemarginwidth}[1]{ + \setlength{\marginparwidth}{\oddsidemargin} + \addtolength{\marginparwidth}{1in} + \addtolength{\marginparwidth}{-\marginparsep} + \setlength{\marginparwidth}{#1\marginparwidth} +} + +\newcommand*\rightnotemarginwidth[1]{ + \setlength{\marginparwidth}{\paperwidth} + \addtolength{\marginparwidth}{-\textwidth} + \addtolength{\marginparwidth}{-\oddsidemargin} + \addtolength{\marginparwidth}{-\marginparsep} + \addtolength{\marginparwidth}{-1in} + \setlength{\marginparwidth}{#1\marginparwidth} +} + +\def\exesheet@smallmargins{ + \geometry{hmarginratio=1:1} + \leftnotemarginwidth{\standardmarginwidthfactor} % right gives the same +} +\def\exesheet@standardmargins{ + \ifexesheet@leftmargin + \geometry{hmarginratio=3:2} + \leftnotemarginwidth{\standardmarginwidthfactor} + \else + \geometry{hmarginratio=2:3} + \rightnotemarginwidth{\standardmarginwidthfactor} + \fi +} +\def\exesheet@largemargins{ + \ifexesheet@leftmargin + \geometry{hmarginratio=3:1} + \leftnotemarginwidth{\largemarginwidthfactor} + \else + \geometry{hmarginratio=1:3} + \rightnotemarginwidth{\largemarginwidthfactor} + \fi +} + +\def\exs@process@marginwidth{ + \ifthenelse{\equal{\exesheet@marginwidth}{standard}}{ + \ifthenelse{\equal{\exesheet@display}{none}}{ + \if@twoside + \exesheet@standardmargins + \else + \exesheet@smallmargins + \fi + }{% else display=pts or notes + \exesheet@standardmargins + } + }{% else if + \ifthenelse{\equal{\exesheet@marginwidth}{expand}}{ + \ifthenelse{\equal{\exesheet@display}{none}}{ + \if@twoside + \exesheet@standardmargins + \else + \exesheet@smallmargins + \fi + }{% else if + \ifthenelse{\equal{\exesheet@display}{pts}}{ + \exesheet@standardmargins + }{% else display=notes + \exesheet@largemargins + }} + }{% else if + \ifthenelse{\equal{\exesheet@marginwidth}{unset}}{ + % do nothing + }{% else + \PackageWarningNoLine{exesheet}{Value `\exesheet@marginwidth' + is not supported by option `marginwidth'} + }}} +} + +% \end{macrocode} +% \end{macro} +% For a two side mode document, the package \textsf{geometry} doesn't set the margin +% paragraph width correctly by default, it's too large. So we made here an explicit setting +% useful in the case of \texttt{marginwidth=unset}. Otherwise, the setting is +% made by the \texttt{marginwidth} key option. +% +% \begin{macrocode} +\if@twoside \rightnotemarginwidth{0.5} \fi + +% \end{macrocode} +% \begin{macro}{\exs@process@noteragged} +% The noteragged option takes one of the following values: +% \texttt{left}, \texttt{right}, \texttt{center}, \texttt{justify} or \texttt{twoside}. +% +% |\marginpar| with optional parameter makes the job for a two side document. +% We then use |\noteraggedleft| and |\noteraggedright| instead of |\noteragged|. +% % Commands |\RaggedLeft|, |\RaggedRight|, |\Centering| and |\justifying| +% come from the \textsf{ragged2e} package by Martin Schröder. +% They give better results as standard commands +% |\raggedleft|, |\raggedright| (or |\centering|). +% The default \LaTeX\ setting for marginal notes is justifying. +% \begin{macrocode} +\newcommand{\noteragged}{} +\newcommand{\noteraggedleft}{} +\newcommand{\noteraggedright}{} + +\def\exs@process@noteragged{ + \ifthenelse{\equal{\exesheet@noteragged}{left}}{ + \if@twoside + \renewcommand{\noteraggedleft}{\RaggedLeft} + \renewcommand{\noteraggedright}{\RaggedLeft} + \else + \renewcommand{\noteragged}{\RaggedLeft} + \fi + }{% else if + \ifthenelse{\equal{\exesheet@noteragged}{right}}{ + \if@twoside + \renewcommand{\noteraggedleft}{\RaggedRight} + \renewcommand{\noteraggedright}{\RaggedRight} + \else + \renewcommand{\noteragged}{\RaggedRight} + \fi + }{% else if + \ifthenelse{\equal{\exesheet@noteragged}{center}}{ + \if@twoside + \renewcommand{\noteraggedleft}{\Centering} + \renewcommand{\noteraggedright}{\Centering} + \else + \renewcommand{\noteragged}{\Centering} + \fi + }{% else if + \ifthenelse{\equal{\exesheet@noteragged}{justify}}{ + \renewcommand{\noteraggedleft}{\justifying} % equiv to nothing + \renewcommand{\noteraggedright}{\justifying} + \renewcommand{\noteragged}{\justifying} + % justify is the default LaTeX setting + }{% else if + \ifthenelse{\equal{\exesheet@noteragged}{twoside}}{ + \if@twoside + \renewcommand{\noteraggedleft}{\RaggedLeft} + \renewcommand{\noteraggedright}{\RaggedRight} + \else + \PackageWarning{exesheet}{Invalid option `noteragged=twoside' + when the document \MessageBreak is not in two side mode} + \fi + }{% else + \PackageWarning{exesheet}{Value `\exesheet@noteragged' + is not supported by option `noteragged'} + }}}}} +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\exs@process@checkpts} +% The scale control option is based on length calculus. +% By default these calculus are local but we need to make them global, +% therefore the two first macros |\gsetlength| and |\gaddtolength|. +% In them we must avoid to produce a too large space at the place +% where |\marginpar| is called, therefore all \% symbols at end of lines. +% +% For each question, points assigned will be added in |\sum@pts| +% and, for each exercise, points are accumulated in |\sum@exe|. +% These lengths are compared to |\exe@total| and |\sheet@total|. +% |\exe@check| is called at the beginning of each exercise +% (when macro |\points|, |\totalexe| or |\totalpoints| is called) +% to check the previous one, +% and also in the |\exs@process@checkpts| at end of document +% to check the last exercise. +% \begin{macrocode} +\newlength{\sheet@total} +\newlength{\sum@exe} +\newlength{\exe@total} +\newlength{\sum@pts} +\def\exe@label{none} +\newboolean{scale@valid} +\setboolean{scale@valid}{true} + +\gdef\gsetlength#1#2{% to get global length values + \begingroup + \setlength\skip@{#2}% local assignment to a scratch register + \global#1=\skip@% global assignment to #1 + \endgroup % \skip@ is restored by end of group +} + +\gdef\gaddtolength#1#2{% percent symbol necessary here ! + \begingroup + \setlength\skip@{#1}% + \addtolength\skip@{#2}% + \global#1=\skip@% + \endgroup +} + +\def\exe@check#1{ + \ifthenelse{\lengthtest{\sum@pts = 0pt}\or\equal{\exe@label}{none}}{ + % do not check, no \pts or first exercise begins + }{ + \ifthenelse{\lengthtest{\exe@total = \sum@pts}}{ + \PackageWarningNoLine{exesheet}{\exe@label: + scale \the\exe@total\space is valid} + }{ + \PackageWarningNoLine{exesheet}{\exe@label: + sum of points is + \the\sum@pts\space instead of \the\exe@total} + \setboolean{scale@valid}{false} + } + \gsetlength{\sum@pts}{0pt} + } + \def\exe@label{#1} % for the next exercise +} + +\def\exs@process@checkpts{ + \ifexesheet@checkpts + \ifthenelse{\lengthtest{\sheet@total = 0pt}}{ + \PackageWarningNoLine{exesheet}{Option checkpts is true; + \MessageBreak + but you didn't use \string\totalsheet\space + in the preamble. \MessageBreak + See the documentation for more information} + }{} + \gsetlength{\sum@exe}{0pt} + \gsetlength{\exe@total}{0pt} + \gsetlength{\sum@pts}{0pt} + \AtEndDocument{ + \ifthenelse{\equal{\exe@label}{none}}{ + \ifthenelse{\lengthtest{\sheet@total = \sum@pts}}{ + \PackageWarningNoLine{exesheet}{Sum of points + is valid: \the\sheet@total} + }{ + \PackageWarningNoLine{exesheet}{Inconsistent + sum of points: + \the\sum@pts\space instead of \the\sheet@total} + \setboolean{scale@valid}{false} + } + }{ + \exe@check{end} + \ifthenelse{\lengthtest{\sheet@total = \sum@exe}}{ + \PackageWarningNoLine{exesheet}{Sum of points + is valid: \the\sheet@total} + }{ + \PackageWarningNoLine{exesheet}{Inconsistent + sum of points: + \the\sum@exe\space instead of \the\sheet@total} + \setboolean{scale@valid}{false} + } + } + \ifthenelse{\boolean{scale@valid}}{ + \PackageWarningNoLine{exesheet}{Scale is valid} + }{ + \PackageWarningNoLine{exesheet}{Scale is NOT valid ! + See above} + } + } + \fi +} + +% \end{macrocode} +% \end{macro} % -% The commands |\displaypts|, |\displaypoints| and |\displaynotes| -% change the ratio between left and right margins\footnote{So -% that the effect on the margin ratio is correct, these -% macros must be called, in the preamble, after other commands -% that also could alter the page geometry.}. +% \subsection{Margin notes commands} % -% \DescribeMacro{\pts} \DescribeMacro{\displaypts} +% \begin{macro}{\points} +% \begin{macrocode} +\definecolor{pointscolor}{named}{red} +\newcommand{\pointsstyle}{% + \small\mdseries\sffamily\color{pointscolor}\fbox} +\newcommand*{\exesheet@points}[1]{\hfill + \pointsstyle{#1~% + \ifthenelse{\lengthtest{#1pt < 2pt}}{\pointname}{\pointsname}} + \ifexesheet@checkpts\gaddtolength{\sum@exe}{#1pt}\fi% +} +\newcommand*{\points}[1]{% + \ifthenelse{\boolean{exesheet@questions}}{\exesheet@points{#1}}{}} + +% \end{macrocode} +% Percent symbols are necessary to avoid spaces between the +% |\fbox| and its inner text. +% Without |\lengthtest|, the test |#1 < 2| doesn't work with decimal numbers +% but it works with lengths. +% \end{macro} +% \DescribeMacro{\pts} % \begin{macrocode} -\newboolean{marginpts} -\newcommand*{\pointmark}[1]{% - \ifthenelse{\lengthtest{#1 cm < 2cm}}{#1 \ptname}{#1 \ptsname}} +\definecolor{ptscolor}{named}{red} \newcommand{\ptsstyle}[1]{% \footnotesize\centering\sffamily\color{ptscolor} (#1)} +\newcommand*{\ptsmark}[1]{% + \ifthenelse{\lengthtest{#1pt < 2pt}}{#1 \ptname}{#1 \ptsname}} \newcommand*{\pts}[1]{% - \ifthenelse{\boolean{marginpts}}{% - \mbox{}% - \marginpar{\hspace{0pt}% - \ptsstyle{\pointmark{#1}}}% - }{}% + \ifexesheet@pts% + \mbox{}% + \marginpar{\hspace{0pt}\ptsstyle{\ptsmark{#1}}}% + \ifexesheet@checkpts% + \gaddtolength{\sum@pts}{#1pt}% + \fi% + \fi% \ignorespaces } -\newcommand{\displaypts}{% - \reversemarginpar - \geometry{hmarginratio=3:2} - \setboolean{marginpts}{true} -} % \end{macrocode} % % \begin{macro}{\totalexe} % In the following macros using % |\marginpar|, percent symbols and |\ignorespaces| are necessary -% to avoid too much space in the text (or the margin) +% to avoid an enlarged blank space in the text (or the margin) % where these macros are inserted. % \begin{macrocode} +\definecolor{markingcolor}{named}{red} +\newcommand{\markingstyle}[1]{\footnotesize\sffamily% + \centering\color{markingcolor}\textbf{#1}} + % inner arguments allow boxed styles \newlength{\ptsboxlength} \setlength{\ptsboxlength}{3.1em} \cornersize{1} -\newcommand*{\totalexe}[1]{% - \ifthenelse{\boolean{marginpoints}}{% +\newcommand*{\totalexe}[1]{% + \ifexesheet@pts% \mbox{}% - \marginpar{\markingstyle{\ovalbox{% - \makebox[\ptsboxlength]{\pointmark{#1}}}% - }}% - }{}% + \marginpar{\hspace{0pt}\markingstyle{\ovalbox{% + \makebox[\ptsboxlength]{\ptsmark{#1}}}}}% + \fi% + \ifexesheet@checkpts% + \gsetlength{\exe@total}{#1pt}% + \gaddtolength{\sum@exe}{#1pt}% + \fi% \ignorespaces } % \end{macrocode} % \end{macro} -% -% \begin{macro}{\note} -% The booleans \texttt{marginpoints} and \texttt{marginfullnotes} control -% the display of marginal notes. If \texttt{marginpoints} is \texttt{false}, -% \texttt{marginfullnotes} will be ignored. -% The |\noteragged| command is initialized outside |\displaynotes| -% such that we can use the |\note| command without |\displaynotes| (see further). +% \begin{macro}{\totalsheet} % \begin{macrocode} -\newboolean{marginpoints} -\newboolean{marginfullnotes} +\newcommand*{\totalsheet}[1]{ + \gsetlength{\sheet@total}{#1pt} +} -\newcommand{\markingstyle}[1]{\hspace{0pt}\footnotesize\sffamily% - \centering\color{markingcolor}\textbf{#1}} -\newcommand{\noteragged}{\raggedleft} -\newcommand{\notestyle}[1]{\hspace{0pt}\footnotesize\sffamily% - \noteragged\noindent\color{notecolor} #1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\note} +% Boolean \texttt{exesheet@pts} and \texttt{exesheet@notes} control +% the display of marginal notes. If \texttt{exesheet@pts} is \texttt{false}, +% \DescribeMacro{\note*} +% \texttt{exesheet@notes} will be ignored. +% |\noindent| is necessary when using |\justifying| from the \textsf{ragged2e} +% package. +% Inside the |\note@marginpar| macro, double braces around |\markingstyle| +% avoid some unattended style in the mandatory argument of |\note|. +% A vicious error occur when using |\if| \ldots |\fi| structure inside +% the |\note@marginpar| macro instead of |\ifthenelse| +% (but only if |@twoside| is \texttt{true}). +% \begin{macrocode} +\definecolor{notecolor}{rgb}{0.0, 0.4, 0.0} % kind of dark green +\newcommand{\notestyle}[1]{\footnotesize\sffamily\color{notecolor} #1} +\newcommand{\note@marginpar}[1]{% + \if@twoside% + \marginpar[\noteraggedleft #1]{\noteraggedright #1}% + \else% + \marginpar{\noteragged #1}% + \fi% +} \newcommand{\@note}[2][]{% - \ifthenelse{\boolean{marginpoints}}{% + \ifexesheet@pts% \mbox{}% - \marginpar{% - \ifthenelse{\equal{#1}{}}{}{\markingstyle{#1}\\}% - \ifthenelse{\boolean{marginfullnotes}}{\notestyle #2}{}% + \note@marginpar{% + \ifthenelse{\equal{#1}{}}{}{{% + \noindent\hspace{0pt}\markingstyle{#1}\\}}% + \ifthenelse{\boolean{exesheet@notes}}{% + \noindent\hspace{0pt}\notestyle #2% + }{}% }% - }{}% + \fi% + \ifexesheet@checkpts% + \ifthenelse{\equal{#1}{}}{}{% + \gaddtolength{\sum@pts}{#1pt}}% + \fi% \ignorespaces } \newcommand{\@@note}[1]{% - \ifthenelse{\boolean{marginpoints}}{% + \ifexesheet@pts% \mbox{}% - \marginpar{\markingstyle{#1}}% - }{}% + \marginpar{\noindent\hspace{0pt}\markingstyle{#1}}% + \fi% + \ifexesheet@checkpts% + \gaddtolength{\sum@pts}{#1pt}% + \fi% \ignorespaces } \newcommand{\note}{\@ifstar{\@@note}{\@note}} % \end{macrocode} % \end{macro} +% \begin{macro}{\totalpoints} +% \begin{macrocode} +\newcommand{\totalpoints}{% + \ifthenelse{\boolean{exesheet@pts}}{\totalexe}{\points}} + +% \end{macrocode} +% \end{macro} % -% \DescribeMacro{\displaypoints} \DescribeMacro{\displaynotes} -%\DescribeMacro{\displaynotesright} -% In |\displaynotes|, the additional length \texttt{1\,in} matches -% the default free space to the left of |\oddsidemargin|. +% \subsection{The \texttt{correct} option and other (deprecated) commands} % +% \begin{macro}{\exs@process@correct} % \begin{macrocode} -\newcommand{\displaypoints}{% - \reversemarginpar - \geometry{hmarginratio=3:2} - \setboolean{marginpoints}{true} +\def\exs@process@correct{ + \ifthenelse{\equal{\exesheet@correct}{false}}{ + % do nothing + }{% else + \@ifpackageloaded{schooldocs}{ + \ifthenelse{\equal{\exesheet@correct}{true}}{ + \correct + }{% else + \ifthenelse{\equal{\exesheet@correct}{conditional}}{ + \ifexesheet@answers \correct \fi + }{}} + }{ + \PackageWarningNoLine{exesheet}{Package `schooldocs' must be loaded + \MessageBreak + to use the `correct' option} + }} } -\newcommand*{\displaynotes}[1][\raggedleft]{% - \reversemarginpar +% \end{macrocode} +% \end{macro} +% +% The following macros are maintained for now +% only for compatibility reasons. +% \begin{macrocode} +\newcommand{\questionsonly}{ + \PackageWarning{exesheet}{Command \string\questionsonly\space + is deprecated, \MessageBreak + use `output=questions' as package option instead} + \renewcommand\exesheet@output{questions} + \exs@process@output +} +\newcommand{\answersonly}{ + \PackageWarning{exesheet}{Command \string\answersonly\space + is deprecated, \MessageBreak + use `output=answers' as package option instead} + \renewcommand\exesheet@output{answers} + \exs@process@output +} +\newcommand{\displaypts}{% + \PackageWarning{exesheet}{Command \string\displaypts\space + is deprecated, \MessageBreak + use `display=pts' as package option instead} + \renewcommand\exesheet@display{pts} + \exs@process@display +} +\newcommand{\displaypoints}{% + \PackageWarning{exesheet}{Command \string\displaypoints\space + is deprecated, \MessageBreak + use `display=pts' as package option instead} + \renewcommand\exesheet@display{pts} + \exs@process@display +} +\newcommand*{\displaynotes}[1][\RaggedLeft]{% + % \renewcommand{\noteragged}{#1} no effect now! + \PackageWarning{exesheet}{Command \string\displaynotes\space + is deprecated, \MessageBreak + use `display=notes' as package option instead} + \renewcommand\exesheet@display{notes} + \exs@process@display \renewcommand{\noteragged}{#1} - \geometry{hmarginratio=5:1} - \setlength{\marginparwidth}{\oddsidemargin} - \addtolength{\marginparwidth}{1in} - \addtolength{\marginparwidth}{-\marginparsep} - \setlength{\marginparwidth}{0.8\marginparwidth} - \setboolean{marginpoints}{true} - \setboolean{marginfullnotes}{true} } - -\newcommand*{\displaynotesright}[1][\raggedright]{% - \normalmarginpar +\newcommand*{\displaynotesright}[1][\RaggedRight]{% + % \renewcommand{\noteragged}{#1} no effect now! + \PackageWarning{exesheet}{Command \string\displaynotes\space + is deprecated, \MessageBreak + use `display=notes, margin=right' as package options instead} + \renewcommand\exesheet@display{notes} + \exs@process@display + \renewcommand\exesheet@margin{right} \renewcommand{\noteragged}{#1} - \geometry{hmarginratio=1:5} - \setlength{\marginparwidth}{\paperwidth} - \addtolength{\marginparwidth}{-\textwidth} - \addtolength{\marginparwidth}{-\oddsidemargin} - \addtolength{\marginparwidth}{-\marginparsep} - \addtolength{\marginparwidth}{-1in} - \setlength{\marginparwidth}{0.8\marginparwidth} - \setboolean{marginpoints}{true} - \setboolean{marginfullnotes}{true} } -% \end{macrocode} -% The formatting of marginal notes can possibly be made more regular -% with the \textsf{ragged2e} package, not loaded by \textsf{exesheet}. -% We will then have to enter, as an optional parameter of |\displaypoints|: -% |\RaggedLeft|, |\Centering|, |\RaggedRight| or |justifying|. -% -% \begin{macro}{\totalpoints} -% \begin{macrocode} -\newcommand{\totalpoints}{% - \ifthenelse{\boolean{marginpoints}}{\totalexe}{\points}} + +\PackageInfo{exesheet}{Environment `tablenum' is deprecated \MessageBreak + and replaced by `tablenum1'. \MessageBreak + Options `notoc' and `nosetlist' \MessageBreak + are no longer supported\@gobble} + % gobble allow to suppress line number %</package> % \end{macrocode} -% \end{macro} % % \Finale \endinput diff --git a/macros/latex/contrib/exesheet/exesheet.pdf b/macros/latex/contrib/exesheet/exesheet.pdf Binary files differindex 78e61ad984..1a88d761cb 100644 --- a/macros/latex/contrib/exesheet/exesheet.pdf +++ b/macros/latex/contrib/exesheet/exesheet.pdf diff --git a/macros/latex/contrib/gradient-text/README.md b/macros/latex/contrib/gradient-text/README.md index 730fe264f0..528b853e49 100644 --- a/macros/latex/contrib/gradient-text/README.md +++ b/macros/latex/contrib/gradient-text/README.md @@ -15,7 +15,7 @@ You can read the package manual for some explanations. Copyright and License --------------------- - Copyright (C) 2022 by Sicheng Du <siddsc@foxmail.com> + Copyright (C) 2022-2023 by Sicheng Du <siddsc@foxmail.com> ----------------------------------------------------------------- This work may be distributed and/or modified under the @@ -32,7 +32,7 @@ Copyright and License The Current Maintainer of this work is Sicheng Du. - This package consists of the files gradient-text.tex, - gradient-text.pdf, - gradient-text.sty and - README.md (this file).
\ No newline at end of file + This package consists of the files gradient-text.tex, + gradient-text.pdf, + gradient-text.sty and + README.md (this file).
\ No newline at end of file diff --git a/macros/latex/contrib/gradient-text/gradient-text.pdf b/macros/latex/contrib/gradient-text/gradient-text.pdf Binary files differindex 1956ba90ed..d0a42a61dc 100644 --- a/macros/latex/contrib/gradient-text/gradient-text.pdf +++ b/macros/latex/contrib/gradient-text/gradient-text.pdf diff --git a/macros/latex/contrib/gradient-text/gradient-text.sty b/macros/latex/contrib/gradient-text/gradient-text.sty index 62494481f4..56010b4c9b 100644 --- a/macros/latex/contrib/gradient-text/gradient-text.sty +++ b/macros/latex/contrib/gradient-text/gradient-text.sty @@ -1,31 +1,36 @@ +% Copyright (C) 2022-2023 by Sicheng Du <siddsc@foxmail.com> +% This project is distributed under the LaTeX Project Public License, version 1.3c. +%-------------------------% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{gradient-text}[2022/12/24] +\ProvidesPackage{gradient-text}[2023/1/17] \ExplSyntaxOn -\clist_new:N\l_FirstRGB_int \clist_new:N\l_LastRGB_int -\int_new:N\l_MaxIndex\int_new:N\l_Ratio -\newcommand{\@radientR@B}[7]{ - \int_set:Nn\l_MaxIndex{\int_eval:n{\str_count:n{#1}}} - \int_step_inline:nnn{1}{\l_MaxIndex}{ +\clist_new:N\l_gtext_FirstRGB_clist +\clist_new:N\l_gtext_LastRGB_clist +\int_new:N\l_gtext_MaxIndex_int +\int_new:N\l_gtext_Ratio_int +\newcommand{\gr@dientRGB}[7]{ + \int_set:Nn\l_gtext_MaxIndex_int{\int_eval:n{\str_count:n{#1}}} + \int_step_inline:nnn{1}{\l_gtext_MaxIndex_int}{ \exp_args:Ne\str_if_eq:nnTF{\str_item:Nn{#1}{##1}}{~}{}{ - \int_set:Nn\l_Ratio{\int_eval:n{\l_Ratio+1}} + \int_set:Nn\l_gtext_Ratio_int{\int_eval:n{\l_gtext_Ratio_int+1}} } \color_select:nn{RGB}{ - \int_eval:n{(\int_use:N\l_Ratio*#5+(\l_MaxIndex-##1)*#2)/\l_MaxIndex}, - \int_eval:n{(\int_use:N\l_Ratio*#6+(\l_MaxIndex-##1)*#3)/\l_MaxIndex}, - \int_eval:n{(\int_use:N\l_Ratio*#7+(\l_MaxIndex-##1)*#4)/\l_MaxIndex} + \int_eval:n{(\int_use:N\l_gtext_Ratio_int*#5+(\l_gtext_MaxIndex_int-##1)*#2)/\l_gtext_MaxIndex_int}, + \int_eval:n{(\int_use:N\l_gtext_Ratio_int*#6+(\l_gtext_MaxIndex_int-##1)*#3)/\l_gtext_MaxIndex_int}, + \int_eval:n{(\int_use:N\l_gtext_Ratio_int*#7+(\l_gtext_MaxIndex_int-##1)*#4)/\l_gtext_MaxIndex_int} }\str_item:Nn{#1}{##1} } } - \NewDocumentCommand\gradientRGB{mmm}{{ - \clist_set:Nn\l_FirstRGB_int #2 - \clist_set:Nn\l_LastRGB_int #3 - \@radientR@B{#1} - {\clist_item:Nn\l_FirstRGB_int{1}} - {\clist_item:Nn\l_FirstRGB_int{2}} - {\clist_item:Nn\l_FirstRGB_int{3}} - {\clist_item:Nn\l_LastRGB_int{1}} - {\clist_item:Nn\l_LastRGB_int{2}} - {\clist_item:Nn\l_LastRGB_int{3}} + \clist_set:Nn\l_gtext_FirstRGB_clist {#2} + \clist_set:Nn\l_gtext_LastRGB_clist {#3} + \gr@dientRGB{#1} + {\clist_item:Nn\l_gtext_FirstRGB_clist{1}} + {\clist_item:Nn\l_gtext_FirstRGB_clist{2}} + {\clist_item:Nn\l_gtext_FirstRGB_clist{3}} + {\clist_item:Nn\l_gtext_LastRGB_clist{1}} + {\clist_item:Nn\l_gtext_LastRGB_clist{2}} + {\clist_item:Nn\l_gtext_LastRGB_clist{3}} }} -\ExplSyntaxOff
\ No newline at end of file +\ExplSyntaxOff +%---End of package code---%
\ No newline at end of file diff --git a/macros/latex/contrib/gradient-text/gradient-text.tex b/macros/latex/contrib/gradient-text/gradient-text.tex index 59924a0a90..a00a0df80c 100644 --- a/macros/latex/contrib/gradient-text/gradient-text.tex +++ b/macros/latex/contrib/gradient-text/gradient-text.tex @@ -1,18 +1,30 @@ \documentclass{ltxdoc} -\title{The \textsf{\gradientRGB{gradient-text}{{255,63,63}}{{6,60,255}}} package\footnote{This project is under the \LaTeX~Project Public License.}} +\title{The \textsf{\gradientRGB{gradient-text}{255,63,63}{6,60,255}} package\footnote{This project is under the \LaTeX~Project Public License.}} +\usepackage{listings} +\lstset{ + basicstyle=\fontspec{Consolas},numbers=left, + numberstyle=\small,stepnumber=1,numbersep=5pt +} +\usepackage{indentfirst} \usepackage{fontspec} +\setmainfont{Times New Roman} \usepackage{tcolorbox} \usepackage[misc,geometry]{ifsym} -\author{Sicheng Du\thanks{\Letter~~\href{mailto:siddsc@foxmail.com}{\gradientRGB{siddsc@foxmail.com}{{0,224,238}}{{173,0,254}}}}} -\date{2022/12/24~~~~v1.1} -\setmainfont{Times New Roman} +\author{Sicheng Du\thanks{\Letter~~\href{mailto:siddsc@foxmail.com}{\gradientRGB{siddsc@foxmail.com}{0,224,238}{173,0,254}}}} +\date{\today~~~~v1.2} \usepackage[colorlinks,linkcolor=purple]{hyperref} \usepackage{gradient-text} \begin{document} \maketitle +\section{Changes in this version} +Thanks to the \TeX nicians who kindly gave valuable and earnest suggestions to this package, the version 1.2 is now released. The main changes include +\begin{enumerate} +\item Made the syntax of the user command more convenient; +\item Modified the format in the source code to improve compatibility; +\end{enumerate} +\section{User instructions} The \textsf{gradient-text} package enables writers to conveniently decorate text with linear gradient colors. It's effect can be seen from the title. -%\DescribeMacro{\xxx}xxxx \begin{macro}{\gradientRGB} \marg{text}\marg{first RGB}\marg{last RGB} This is the syntax of the command for putting gradient color on text . It takes three mandatory arguments. @@ -22,29 +34,88 @@ This is the syntax of the command for putting gradient color on text . It takes \begin{tcolorbox}[sidebyside,coltitle=black,colbacktitle=white,lower separated=false,title=A correct usage,oversize,boxrule=0.5pt] \begin{verbatim} \newcommand{\hello}{Hello!} -\gradientRGB{\hello}{{0,255,0}}{{255,0,0}} +\gradientRGB{\hello}{0,255,0}{255,0,0} \end{verbatim} \tcblower -\hfill\gradientRGB{Hello!}{{0,255,0}} -{{255,0,0}} +\hfill\gradientRGB{Hello!}{0,255,0}{255,0,0} \end{tcolorbox} \begin{tcolorbox}[sidebyside,coltitle=orange,colbacktitle=white,lower separated=false,title=\SmallCross~An incorrect usage,oversize,boxrule=0.5pt] \begin{verbatim} \newcommand{\hello}{\textit{Hello!}} -\gradientRGB{\hello}{{0,255,0}}{{255,0,0}} +\gradientRGB{\hello}{0,255,0}{255,0,0} \end{verbatim} \tcblower -\hfill\gradientRGB{\textit{Hello!}}{{0,255,0}}{{255,0,0}} +\hfill\gradientRGB{\textit{Hello!}}{0,255,0}{255,0,0} \end{tcolorbox} +For this wrong example, the intended result can be obtained by +\begin{quote} +\verb|\textit{\gradientRGB{hello!}{0,255,0}{255,0,0}}| +\end{quote} +just like how I created the title by typing +\begin{quote} +\verb|\textsf{\gradientRGB{gradient-text}{255,63,63}{6,60,255}}| +\end{quote} + In addition, for any space characters in \marg{text}, they will not be take a unique color, although they will still show up in their original position. \begin{tcolorbox}[coltitle=black,colbacktitle=white,lower separated=false,title=Example of space characters,oversize,boxrule=0.5pt] -\verb|\gradientRGB{Hello World}{{0,255,0}}{{255,0,0}}|\hfill\gradientRGB{Hello World}{{0,255,0}}{{255,0,0}} +\verb|\gradientRGB{Hello World}{0,255,0}{255,0,0}|\hfill\gradientRGB{Hello World}{0,255,0}{255,0,0} \tcblower -\verb|\gradientRGB{HelloWorld}{{0,255,0}}{{255,0,0}}|\hfill\gradientRGB{HelloWorld}{{0,255,0}}{{255,0,0}} +\verb|\gradientRGB{HelloWorld}{0,255,0}{255,0,0}|\hfill\gradientRGB{HelloWorld}{0,255,0}{255,0,0} \end{tcolorbox} \item[\marg{first RGB}] specifies the RGB value given to the first character of the \marg{text}. It should be formatted as a three-item comma list in brackets \verb|{}|, of which each item is a natural number not exceeding 255. -All of \verb|{{13,28,176}}|, \verb|{{0,59,2}}| and \verb|{{255,34,5}}| are correct examples. +All of \verb|{13,28,176}|, \verb|{0,59,2}| and \verb|{255,34,5}| are correct examples. \item[\marg{last RGB}] is similar to \marg{first RGB} except that it controls the RGB color of the last character in the \marg{text}. \end{description} + +\emph{\gradientRGB{Notice.}{11,45,14}{191,98,10}} The syntax of \marg{first RGB} and \marg{last RGB} have changed. Version 1.1 required an additional pair of curly brackets. + +\section{Code implementation} +Here is the heading, +\begin{lstlisting}[firstnumber=4] +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{gradient-text}[2022/12/24] +\ExplSyntaxOn +\end{lstlisting} + +Then we define some variables +\begin{lstlisting}[firstnumber=last] +\clist_new:N\l_gtext_FirstRGB_clist +\clist_new:N\l_gtext_LastRGB_clist +\int_new:N\l_gtext_MaxIndex_int % max index (detach spaces) +\int_new:N\l_gtext_Ratio_int +\end{lstlisting} + +Now we define the internal command \cs{gr@dientRGB} +\begin{lstlisting}[firstnumber=last,breaklines=true] +\newcommand{\gr@dientRGB}[7]{ + \int_set:Nn\l_gtext_MaxIndex_int{\int_eval:n{\str_count:n{#1}}} + \int_step_inline:nnn{1}{\l_gtext_MaxIndex_int}{ + \exp_args:Ne\str_if_eq:nnTF{\str_item:Nn{#1}{##1}}{~}{}{ + \int_set:Nn\l_gtext_Ratio_int{\int_eval:n{\l_gtext_Ratio_int+1}} + } + \color_select:nn{RGB}{ + \int_eval:n{(\int_use:N\l_gtext_Ratio_int*#5+(\l_gtext_MaxIndex_int-##1)*#2)/\l_gtext_MaxIndex_int}, + \int_eval:n{(\int_use:N\l_gtext_Ratio_int*#6+(\l_gtext_MaxIndex_int-##1)*#3)/\l_gtext_MaxIndex_int}, + \int_eval:n{(\int_use:N\l_gtext_Ratio_int*#7+(\l_gtext_MaxIndex_int-##1)*#4)/\l_gtext_MaxIndex_int} + }\str_item:Nn{#1}{##1} + } +} +\end{lstlisting} + +Lastly we define the user command. The \textsf{l3clist} package is used to interpret the parameters into three integers. +\begin{lstlisting}[firstnumber=last] +\NewDocumentCommand\gradientRGB{mmm}{{ + \clist_set:Nn\l_gtext_FirstRGB_clist {#2} + \clist_set:Nn\l_gtext_LastRGB_clist {#3} + \gr@dientRGB{#1} + {\clist_item:Nn\l_gtext_FirstRGB_clist{1}} + {\clist_item:Nn\l_gtext_FirstRGB_clist{2}} + {\clist_item:Nn\l_gtext_FirstRGB_clist{3}} + {\clist_item:Nn\l_gtext_LastRGB_clist{1}} + {\clist_item:Nn\l_gtext_LastRGB_clist{2}} + {\clist_item:Nn\l_gtext_LastRGB_clist{3}} +}} +\ExplSyntaxOff +\end{lstlisting} \end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/photobook/photobook.cls b/macros/latex/contrib/photobook/photobook.cls index f2d75270ad..4fb5c623ae 100644 --- a/macros/latex/contrib/photobook/photobook.cls +++ b/macros/latex/contrib/photobook/photobook.cls @@ -19,9 +19,11 @@ % we strictly need to define macros before they are used thus meta-macros % and other building blocks and components come before the user tools. % -% Docs are build by the Makefile, so reference it for more info. +% Docs are built by the Makefile, so reference it for more info. % -% $ make doc +% To make the reference use: + +% $ make pdf % % % NOTE: in a stripped code install this file may contain only code and @@ -31,8 +33,6 @@ % to edit it directly, edit the source instead. % % -% XXX Q: do we add the pdf to the repo and if so, should it be -% compressed (diff-able) or uncompressed (blob)?? % XXX revise \clearcaption / \captionclearpage... % XXX unify API -- see CellContent env... % XXX make this loadable both as a class and as a package... @@ -43,7 +43,7 @@ % - templates -- \ImagePage{..} % XXX see where we need to \ignorespaces... % XXX might be a good idea to add a spine calculator... -% XXX add list of dependencies to docs... +% XXX might be fun to add a 'box' layout to build book boxes... % XXX manual / book: % - basic usage % - setup @@ -58,8 +58,8 @@ %%% NOTE: \def\<module-name>@[A-Z]+ macros will be visible to both the %%% code and the generated docs... -\edef\photobook@FILEVERSION{v0.1.5} -\edef\photobook@FILEDATE{2022-11-14} +\edef\photobook@FILEVERSION{v0.1.6} +\edef\photobook@FILEDATE{2023-01-17} %% \documentclass{ltxdoc} @@ -234,7 +234,7 @@ %% + - - - - - - - - - - - - - - - - - - - - - + - + v %% . . %% | <-- textwidth --------------> . | -%% ^ binding line +%% ^ gutter %% %% \end{verbatim} %% \end{minipage} @@ -1628,15 +1628,17 @@ % XXX EXPERIMENTAL +% XXX revise docs... %% \DescribeEnv{zinlinecell} %% \DescribeEnv{zinlinecell*} % %% \EXPERIMENTAL %% -%% Like |inlinecell| / |inlinecell*| but will take up zero space. +%% Like |inlinecell| / |inlinecell*| but will take up zero space and +%% sized to |\cellwidth| x |\cellheight|. %% -%% >> \begin{zinlinecell}{<width>}{<height>} ... \end{zinlinecell} -%% >> \begin{zinlinecell}[<valign>]{<width>}{<height>} ... \end{zinlinecell} +%% >> \begin{zinlinecell} ... \end{zinlinecell} +%% >> \begin{zinlinecell}[<valign>] ... \end{zinlinecell} %% % XXX need to get rid of the raisebox here... \NewEnviron{zinlinecell*}[1][]{% diff --git a/macros/latex/contrib/photobook/photobook.pdf b/macros/latex/contrib/photobook/photobook.pdf Binary files differindex a01a74485a..5772d347a9 100644 --- a/macros/latex/contrib/photobook/photobook.pdf +++ b/macros/latex/contrib/photobook/photobook.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf Binary files differindex 46ea0f49ec..73bc0db237 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex index 6709f9cd2f..31fe280f55 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{article} -\def\PLversion{2.1.5} -\def\PLdate{09 Janvier 2023} +\def\PLversion{2.1.6} +\def\PLdate{17 Janvier 2023} \usepackage[pythontex]{ProfLycee} \usepackage{mathtools} \usepackage{lualatex-math} @@ -6242,6 +6242,8 @@ La grille, crĂ©Ă©e en \TikZ, est portĂ©e par le rectangle de \og coins \fg{} $(0 \part{Historique} +{\small \bverb|v 2.1.6|~:~~~~Correction d'un bug liĂ© au chargement de \textsf{hvlogos}, remplacĂ© par \textsf{hologo} + {\small \bverb|v 2.1.5|~:~~~~Combinatoire avec arrangements et combinaisons (page \pageref{combinatoire}) {\small \bverb|v 2.1.4|~:~~~~RĂ©solution approchĂ©e d'Ă©quations $f(x)=k$ (page \pageref{resolapprox}) diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index 993b88709e..bca822d00c 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}[2023/01/09 2.1.5 Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2023/01/17 2.1.6 Aide pour l'utilisation de LaTeX en lycee] +% 2.1.6 Chargement de hologo Ă la place de hvlogos (bug potentiel avec \bm) % 2.1.5 Ajout de commandes pour calculer arrangements et combinaisons % 2.1.4 Ajout d'une commande pour rĂ©soudre de manière approchĂ©e une Ă©quation f(x)=k % 2.1.3 Ajout de l'option auto-tabs-gobble sur piton (v1.0) + correction d'un bug sur CodePiton @@ -88,7 +89,8 @@ \RequirePackage{simplekv} \RequirePackage{listofitems} \RequirePackage{tabularray} -\RequirePackage{hvlogos} +%\RequirePackage{hvlogos} +\RequirePackage{hologo} \RequirePackage{fancyvrb} \RequirePackage{siunitx} %test avec v3 \sisetup{% diff --git a/macros/latex/contrib/ufrgscca/README.md b/macros/latex/contrib/ufrgscca/README.md index f3547a3c6c..54013c974a 100644 --- a/macros/latex/contrib/ufrgscca/README.md +++ b/macros/latex/contrib/ufrgscca/README.md @@ -46,7 +46,7 @@ Please do not use the issue page for generic help on how to use the package. * git: https://github.com/alceu-frigeri/ufrgscca ------------- -Copyright 2022 by Alceu Frigeri +Copyright 2022-23 by Alceu Frigeri This work may be distributed and/or modified under the conditions of @@ -118,7 +118,10 @@ The Current Maintainer of this work is Alceu Frigeri ------------- ## Changelog -* Version 1.0.6 (this) +* Version 1.0.7 (this) + - fixed a counter bug when mixing annex with appendix environments + +* Version 1.0.6 - added a package option: nonrequired (ref. internship, see documentation) - documentation update diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf index a0bce191fe..3987c61a66 100644 --- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf +++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf @@ -263,23 +263,33 @@ endobj endobj 236 0 obj << -/Length 4398 +/Length 4397 /Filter /FlateDecode >> stream -xÚí]K“Ü6ľĎŻĐQ]eĘő>&ÎŘ›lU’ŤgsIrhwkĆ]釷±˝ż~IQ=#R -ç˝XbŤK#ĆĎŚ¸†ĹjŽµůpa:ž¸0b¤ă…éYŢÂâÜ|uĚxnfĽ@ľ;7łR ă¤
,•¦í™RiĆU"=3Ă*‘Žeµ_lzV"s–šI)‘aĄ•_,q±ŕČ+BŢúĺ×Á•ĽöË=3+uŁeEÄN´ŘŁQ‚PHAčł ĚAÖ$c~S„#„„„„~*,˙=|ž!.ńÎůúVEŢ‘•‘wbňČ;ŻFŚ6ůUé„G%Šľß¸B‘WeäS缍|Öב×úQă¶ů,Yöm—¸ń:‘Č炲:ň:¸Ü+NŰpż„÷öű~˙Ćᓶ>©gPţńΦ%žV1Ă6xĎţîŃżęůőÖŻô~‹ń››×TÍ,x‚¸RFľ÷/~çä÷l^Żčő¨O‡GżÝÔîWôą‰:Cďž'Š¦'  üR˘’I^ĺv:U>ĄS{ĄśU÷î¬9ěĂ~ⱪ*Ěsa~:Z(‡h!™Č©űŞÓµ8Űĺ±ç÷Ő‡Ýną_OÜZĂ‚0g”QXvY^í2źÚĺ?÷¦Bko~ý‡©S9ü:= •Á00˙f;xQ¨ą‡B•MR6> -µjp…šgIQ;É"±|3”řąÔ)®ľ¦= \uÍž˛pnşjŠ+Żą\7PfN¦8™ŕ®DNFáŞkŞśŔÁÄŇTBtMqaVR¸üĘF8ż›Ŕ`p -ÉÄ)ä$'0„Úśâ`ţw‚»R$¦l§8ÉŔ‰YŔŠl™@ÖÜścź%ÇQWLp€Yg -Očkľ×?_o×-˛řˇ›śâCv#đ3MŃ… -·xz‡ÄŁ=żÚŢčżŘá{{„ĚÂ\a~ -c–Yg)lÍůÄš_ÜeµŃriĺߣ󬳄AřZî"‹S‹SR%Ωf˛ě¬ňq޵LŇvÖŰ ˛¶Nd6Íô©ú]5ÝŃ%Wy`”e…Ŕ(ÝŠ,F XŚq %' 0Jw -S„»˘Í -a&ÖÎ0v»p]íneân1˘,r)wâöiŻŹ\ËťlF¬}ŤłCr¶ZÓŇä%ůnAb¨őŕ¬+J -;Ac‘úĘQ|ŽqL‘cÓ8‡ć†Řd„ŤfnĐOÇü„÷ÄÉ1÷4Cf`2Ě=_yŹW¬»÷OWó»eH‚aţ•GŕĄÜę‘ór®ârŃMř÷A„Dj·ö¤vł:iręM‰}Ü2#µ+Ódl7§3™ŮµAČQÚÁ‡răď’)°ApÎÁĆ Ů„$B,’R±1HrĆ!y„¤Ś,–}˛AH"Ë!91g×,–§łAHĘĎÁÉCĄ!m’Ń´@XrÔU¤@‚ŹŞX¨– `MﮋŤ"×F°VŮs§Ĺ!Ś‚Bî°8(äîŠ"-K°ŚT°ěÝw9ĹA!ě’Ť˘ý™đp^Šr˛ľ['Šôüľ[& -!ąły2» ¨˘úÎč:śĚ(cBÁä!ľ-˘ŐÉşL´ˇÄphb[´i!™©‰Ĺű÷?On×uC´‚SwĎČpŚíb‘”äÄńÓ $I:ŮŽX;gŹäl¶4¦Ą1HfŰŤ#Č0B2 Ôşâą'Đ"ă,R_9ŠĎ± Ž)rl'~Ü(› -˛‘Ô®öÓQ?á=q‚Í=ĎĐÇńsĎWŢă+łkМ̮Ěûׂ0?ì’ÄóľőcŢř3‚“×/Ö!É„A„źŢ›9W¬ÝśXm—G’Ż*Ăʼn ÂżŻsh
N Ő*&R0–'ů,ú¬.YągÍRäŮ‚ä*Ç$é9…Lšc’†CŕtÇ$ż<‚`‰ę1ÉxŹ!Hę|Arđ#–ĚC’lA(˛1¦)F„í#ÖdŮ—cqĆś„`śŘRŃé‡.¦b`Zń`¦öO± WA0ÖŇw±aŚAWBh§`(ą`ŘŠ`ś`X®ď*…Y÷1„ňFľKĆď},á§=—,Roaa˝ÇCnŇßaŞżpÔ™=rňŔś,€đ.dD©śevt“TM8ĺíX -e(Hޱ[Ňla:Ŕv"”A¨ ÇŁ‘-˘Ü"¶8NšňŃ÷ălŚť‡ŢżčMB´!éě=ť@řgž^=”˝´B"Â!4‘VgÚ&hâçŞí –a.ʧ©hÚëóđZ +xÚí]K“ÜDľĎŻĐQá’Ą*=Ź`l/l°x–p»ĺqýđöŰűë·¤RϨJ™•© ŔxFůµş^ůUV~)MÝGiôň&%ţýňîćé‹Ľ‰dš”Ą,˘»7QVŐ‰ŞŁ*K“J_XG?Ĺwo»[ˇR_ŢďO«UűÄüÚî×ýYÜŢŠ,>Ýę˙·BVńjÓž»őcüţV–q»ę˙˙k{ßťnąű&ĘŇ:©ë,2Oš´2ßóămUÇÝń´9ěÍGłD7bŔ‹˘L¤’#ľ4řźÓ"í>ś»ýş[›űď/ăŐe×íű/<·g}3ŤËú»<}QČ(Ë•—˛ďjŮ$ąŠ„*’Ľ‘ć–_lWÝEßKöĹmťĹÇÍ}wÜ&d‰ŞJÝ‚*iĘqdľiő×TńĄ=~4’©T=z6ŇO_TJ÷Z7ľÉĚ0'2Ď#‘çIZ4ă—ż>ťŹíęŚÝ µn¤Rôµ(««DyT(•dŤŠîvämNşMużľě×Űa„Ş2ľ^l7»ëĄölţ}w4ł·ľôÓąŇÓąŮß´ľCwĽ?¶ë‹žXsétľ¬»ˇ÷çá–µž•ďŰi»±ú§úÚŘ*M +ý[‘5I©G`hěű[YLJăŻOŹÝ;݆ţgÝ()Mă¤,âżřˇÇĽ|őôůs}%χپżßě;=C}Ce^ÄŻV=ęíÁÜdkßăܯ㥧¶;ÝĄv;Ţ˝ďń~óŰl†xîďň뉜tĄi˘"-“´)LOoô`äiüĂF·A©&~yÔnŇ™‹ëńګ˶_“OĚŐŐöp궍éMß’Ăv«G˙Đ7â˝™
űâËoďćxŮv's±„/Źí7ŰM»7Ö/N§áĂhOŚ Ń˝Đ.ůŘ‹óŕ‚˛Vń›Ă±w©,ľĆlŐŹĐŰýf5Ś\YĹߎ»Sß™äVäJĹ_źÍő~ťÉZwî°gôÔŻ·ŢÔQ˙ok»v3|—ÔŃžNOĆŐź&J7ďŘ/~óăT–Ś]ČóT/|§W˛˛ĽÉ3y§1«ě›č)’M600Š™3„š:›¦4źlűŮPń©ë˝KĺfačíĺC?Yač_ßőĚXf|2~ä°ëĚOć3yüţíƬksye¦:Ź_ţÚ™_.Ă +b=ÂáM‚pFáweA xD4$ +?… +‚€ÁßăçćośŻmeäíYyFEŢq5fôć‘oRőšđ,‰|h7ľ ňČ»eä[ÎŞ‰|Ţ ŞČëLCŻq_Ś|ž,‡{8‹xI$ňQPVE^‚S^sÚDýěíç~˙Ćáł6>«§SţńŽ¦&g1Ă6xĎţîY=ţĄç_·ţEď÷ż»y]ŐŚ‚'+dä‹ +’…d"ç<öU××âlŰă ďëĎ»]»_Ďh-ÄaÁŚż3ĘČ-ż,®~©ć~ůĎ˝©ĐÚ›_˙aęTżÎHEpĚ`ƿٞCŞňH¨˛NŠÚ'ˇ–µ.“PU–ä•“,íë± ÄŻĄÎqŐ5íIŕĘkö”…sÓUs\qÍĺ¸Qň `°r2ÇÁ +Ěwr2 +W^Sĺ–ć8X šáˇkŽł‚©«Aŕ@ýnUŔ9ç8P“śÁisŽőßî*µ’8X˛ťă$'K.°aYc#pŤ}”\g1Ľr`„ +,÷żď'|÷îŐôŹM‡ńĆ`F:ď_@Ę˝zPîźAČo›ăaż{xA†sź&
ŚÁŚź.Š*a»:ÜőŹˇ÷ç¦×—m{4%ßvďÇ:đĂö˛â¨*Śx0ă_Ňß+¨°I%ůčď&Tąě6çngśüů‡ó±KťşŹ3gĎŇph +Ć`üś™`R¸”ă…K˛Č)oĺR§lIĺ’,Ş$s‚«Ă±ŁŞ–,R±daj% +AjŽ,Rbbaŕr•)«3˛0HÍŐY¤ÂÇÂH3)Ş˝ ’s'ŞŮ‚ÓÁČIýňb¨‰őŐ
Y ¤fČĆ őB6©˛AHťÂj„lĺÓľÚ DŚŕ•ŕ°ž`°§ŻČQtî©˙±1HíŹ
˘6*OÍ„)V“Ť†ŐYwéQ%câźŐ\pMŹ»\éŐ +Ëô®‘ţ¸.M{4\ŇŕpI1HÍŽKz4çEŢÍĚS§ă˛9IćHi‹»żp6*ƆGBJŇDÔîKőŻÁ±C +*˘ ¦»±c$*DgéŘČxŤp†Ç1Żq"b¨®Ć ¬©¸©§q˘|*ȇëhś#yâ€ëgśďüĂŞ›Ŕóš `&čVÁŚźˇfÝŕ%3ůă»3x`řŰý›ýŻrüŔy.ó0čÁŚź(‘Ű@nţř‰~ą=Ľî˙b‡ďí2cŚÁř)śYfeśĄ°7«™7ż˙¸ËjÓ˙ÉĄ•ŹVYF=ńôÜŰ,N-MuLA¸¦š5ÚłłŇ§©V2I›EoČš*‘Ů<˙1¤öďŞéŽ®¸ĘŁ*+FĺVdA 0*ŔB`LK€°¨8Qą +QŮŁB°^mD—‹Đě>ŠEĂ'ÍŚđ‰ţ ˝š„Ż,Łe › +ăČ–ż`Ç—Ń’8…¦,iÄ’Ţ-¶%óń0ĎŠ»ňCW¬j¶Ů±6ZÓźř‡¬ +ŁŚÁř˙I“ÇiKŹô›×IĎn>é7O˛¬\$ýYRÍNđo†NâyZ„$}m’G†@łs¤
B˛Ý6ÎźŰäť˙6Iň[ ěm˙6Q"l"nŘ D›µ@&k-Ö!¬
‚•'HY6Çl,·YLŔłAŠÂŢ}oJHR ÁG•,TĂAaŇ¨Ş¨aśą¬Yö=pkŁŐß‘kX°ÜA°<K°śT°üÝ÷Ü‚ĹKDó™O¬tPÉúľuP$ó{żu@Čó·ŠÜŮ<š#*¨¦Ó-‡ł¨łńd'ć1ÄGôbÓÚłĚXŔ°D8ó+Úe`ćíg‡µ—‚hB´•/2h1˘ y(wFű4ë#ŹĺÎ6#ÖľĆŮ!9[-Ťihň’|7Š 1Ô|pć…ť ‹Ś±ČőĘYřâ¸"ǧq
Í
±ÉÍÜ źŽů öÄĹ1÷4Cf`1Ě=_yŹW¬vß<>šG<±[„$x0ă_9q>”[>h^ÎŁ¸ÜDtţÄ}0ă‘Ú<©Ý¬JjE˝)q[¤vešĚB€íćt&3»69JŰ řPbüMB26Î9Ř${aDBR*6IÎŘ $Ďc”‘²O6IdŮ $'fŕěš…Áňt6IůŮ 8yha°4¤
B2šKŽÚ ’’HđQ%ŐP¬ađ=ëbŁČą¬Yö<ÓbEÁ!Ď°8(äŮEz–`9©`ů»ďá…¨K6Šć3áŃĽE˛ľ§NÉüľ§L"4:(rgódvAPIµťŃt80QĆ€‚É C|[D/$ë2[ĹŚEçfľE»’™šyĽ˙óäv]˘YNÝÍ‘AŚM±HJrFü4I’ζ#ÖÎĆŮ#9›-Ťih’Ůvă2Ś5Żxîß ´Č8‹\Żś…Ďń Ž+r|~Ü(› +˛‘Ô®öÓQ?Áž¸Ŕćžgčă¨řąç+ďńŠ•Ů5hNfWŞđîµ`ĆĎ0«$ńĽoő÷ţŚŕěő‹UHňc0ă§g3çďŠU“''VŰöHęUExp"ńďKĆ´JÇDćÓĎT˘ÉgU‘ČŇ=kŢëŠĎ¦$W9… IĎ9dvĐśB4ě§s§$-<… ůĺ KTO!HĆ{ +ARçS’ź@°dţ‚dS"‘M!°L1A jǨ&S¬ľLŠ3…(‚ibSHIC¤"¸’ih¦YĘ?Ä‚žÁKß
S"ĽZbu +Ć"_—Ďő=Ę`a`Ő} +ˇŘČ÷…ńSŁďCđ´çá‚Ô[Xbďń[ +ŃPD¤ł÷táyzöPőŇ +q‡X‰ôr¦}‚v,Ú;qÚb‰Ń˘ěpšŠ¦˝ś‡×Řgęh +Ć`Fu(đ3Ďďnţ¶’ʡ endstream endobj 177 0 obj @@ -561,16 +571,10 @@ l@,t+¦0âć1*3°D°? Ą™±TÉćŠ%˛&PšO…í‘š´(ęšźkF~*őăNá"2xFä<Ěž UF?}&ÎDiĆ" 3ĹCŐ;H¬cŞ!‰ ĹĚ9UŹgDŰ€…žfVŚÄ‚c3{K7âäů¬A6D ť˛hg,AĹ‘#CžśVi‡Uš8%Ś,´d=@V-‰ÄĂÔá!ů;Xpę•ť2ŠÚO$‚¦Î(ŃŤgަsÚ_¦‡[fŃ8+6¤ ‹:ç…ńţĄ
Ě…QAÝG>‹ úK7|5 -VKA†E‡đore좙@ôGĹ®!ĽkăµńÚxmü[†žÝób’x‘Câĺ[kHŇ)—yĆĄąR˙ÚřŻT˙,‚ËîPŁr©´Ë·fL4y]űSëüüŇ«ďě[sÎťű1ŐíóÄČţÚ‡=$Áaţ¶.ýA‰+8čéL•"×µpç¤ßżůá6’÷˝ÜW5ą®Txc÷ĽoÍł>R¬6ëűŕźwr_ţúĽ;űŹ6;ü°ŢďŰĂ˝{’.žŽŹľůĽ{ě»2çÁ®]ow'5ąz»{»ßď;XťŃţÉ!sóŮtůqß~ٵw,¶ -»ęÚ'óËŃŘľŤ|0OśOHoY©×XFvNlĚ×rőÔµl\÷?CŞßmɶŞó·¬}ăˇmÁőM•'
\Tř0ĂÓĄđčô»O odި:ět¬ßÎTćVŞ°§×ź´a
HI™ŇćصÔ)ɲ̕(?JR› -Î*ź?ĄFç•áÉĺ)ŹÝ–ĚŢUmËŞ>{NŞÖyÍcĽôô´!s7(RN¨;»4ĺTŮ‚lpî‹,Čßäć\.«ŐíĂÎ?ç?Dŕs×™żk}ËÚĐz7Ŕ¶oZ纸ď¨}–ecL”ŤńYâÖy<m`¬\ÓFÍłµ]K+U^*Žç`śJŰcr0Ž±ĎvYż;Řv‡vß:żŢ}»>ťÇ¶o Éđ+ŤëÁ*QŰcµÖţ<ńýłóBŠ•(„xí>:‹\[‹_×öŕ -§ę“űîN´ÍjŰ‚)ďüíOA!/\8ú·ČŰ/Ďţ1xs·;q5`Ľßě-ě?ĎŕîĆâ +–ôă•üÚ~$ËZÓ -×u ŕlܧ¨Ě›A"_~‡9şńţÓɉuthg?:A^|sSGŽ¤µăGh^IŤ»Ă˝ş‹Ć
J_Pż˘x\ď||řî‹“ż} -®50Î.¦ĚŠű›«žÜ(–¦‡w#!eŕýąh„ż×ńČg•EÁaKäKO`9¤É;~¸h;Ęh+űÖÝ/áC‚]MŰšŇcőÎnç–TĂ–ähÜ—ńŞ‚3EĺĂżľö#Ś•üÜě2®«*&…ü -ŽŘ}!Yä\ňx!˙e¦ĎŞj2«ęIA_b ›ĹÂżisiv†śăÍ:Ҭ—J)‡VµX]?4ű:Ě:ŇĽXQ:V4‹µ©“§ -"#ű -Pë{±Dw(wY®HźÔę—‘ľŐbťřPthvE®:2´p4Ń‘íđ•Ď:BßwdfÜEGÂýÝ‘‰űÍŚ6»ýĐÍB3Ł´#ÝłÄěXbq—ęr]ĆšU˘Ů–ŘV–ŕ -†óKp$1t¤‘†Q5µR±ö¸$ŽĘ–elňšÇŐ +VKA†E‡đore좙@ôGĹ®!ĽkăµńÚxmü[†žÝób’x‘Câĺ[kHŇ)—yĆĄąR˙ÚřŻT˙,‚ËîPŁr©´Ë·fL4y]űSëüüŇ«ďě[sÎťű1ŐíóÄČţÚ‡=$Áaţ¶.ýA‰+8čéL•"×µpç¤ßżůá6’÷˝ÜW5ą®Txc÷ĽoÍł>R¬6ëűŕźwr_ţúĽ;űŹ6;ü°ŢďŰĂ˝{’.žŽŹľůĽ{ě»2çÁ®]ow'5ąz»{»ßď;XťŃţÉ!sóŮtůqß~ٵw,¶ +ş×U~-xÇž˙żN
Ł@áę:ćżDű ;'*óśKvŐµOć—Ł±};ř`ž8źŢ˛RŻ±Ś<<ěśŘŻĺę©kŮţ¸î†TżŰ’#lUçoYűĆCŰ‚ë˙š*O¸¨đa†§KáŃéwź@ŢČĽQuŘéYż=ś©Ě-*¬TaOŻ?iĂ’&2ĄÍ±k©S’e™+Q~ţ”¤6ťŇ»¶ŁÎ |\ż™Ti”HdJ`_Odµ$+›ˇůě)qu€CKF”OćtßČĽdΓ~>‰•Ŕô‚üG&4řăĄü:Ł-?wN’»É—ç4{ +/|`ܡ“G˙)p…ŻŔďuóŕOíĐů¸O«ně®ŰÚ›Ö ˙§¬•’áěźźÎ'‘łĄÎ
oĂn2”cń›ÁYOرJÖąŐ)d‘—˝ÖiIQU~j˝rAóéÜ‚4oMła uă÷ +ů±űBţ˛ČąäńBţË$LźUŐdV[Ő“"‚ľÄ@7‹…Óć*Ňě*9Ç›u¤Y/•Rj±ş~höuu¤y±˘t(¬hkS'ODFö *Ö÷b‰îPî˛\‘>©Ő/#}«Ĺ:ńˇÜG/ţ4éĐěŠ\udháh˘#Űá+źu„(ľďČ̸#ŠŽ…ű»#÷›mvűˇ›…fFiGşg‰Ů±Äâ.Ő庌5«D;˛/,±,Áç)–ŕH6bčH3"
ŁjjĄbíqI•-ËŘä5Ź«–P",ˇ®ÁXB˙±„úd íëY2ŞĽýýhsť%zG'WečÚt†QFe(]]i^t[2lSË&ĂxÂß©8C˘üaܬ–ŞŹ/2C)ĂÄĐŐ|F…XڢǨv+Ł*DŘeĹ5ÚĘËÓ~ÜÖmF•gQáÍ"‹©îtkĽk|^ř˘‚Dlť'fĚNĆwßFśPţÁyď·<v AÎ3^^dô …śŁârŠĘ8®pĺ‚*&\©áU§A‰®Qę|^î§L"ŽŕQ'+ă,xŹň¶á]rÚţ-—Ť‹ş·ŮžÜďÔŔ‡˝ő@×6Fâűl_»ĹcÜĚaä
ŽrŚ5x?°íÁŰsűÁ3křčj/ŽűqhĘ7î}%LŰŔ¶WͲçö°ń1ćpä°8¤°o5ŕRą2č>-}ˇŠŚü÷§gŰťýfšźĎwőpÚíM=‰˙ä§×îŰĂô’M˘Í/šČD׾^\Ă´¸‹ÂF†íü|QEŰuíęŘ*Ř–c_zxOńîÎů±;°k?”Ńĺ]Ć‹ĺ$ŤÎ图*‹ŐĆěsŘÎ%FUe.¤Â™6‘c$Ľ(a+}NúO&ąS3áµÖĚYkW×ĎLKgjK*>eđ>ň#«&z:şK¶~íŞŐ·űÝŮö°u˘ [P÷q¸°ériľ
§Ý0/±uˇVĎ'7Ę%d,-)ëýţŁ¸mP«!Ż®ě.ŽÝŁőű˘ěT>%
VĺşQÁ_V( ¤¶3Ś{pÔ&ëóĺ^ĽÔáĄ;U•^-řŠWVŔžw>~}đ! ĄOŻ$)ÖáłVC\i»9Ź{<EŞäXzÜŽšŤ Vi#ú‚¤7~I’Ż\EŚËŔÜ%G9řеľĘ§;;„Żę±…fŽ’÷5yÜĂ}p5=Ţ]ĄwřĺŢ÷® mďgŕ‚ĶR‘U}©§éĽŔřj'Ř›§ýóhoú};]ŢŢ˙Ž¨ßĺqµŐ¬ĐňëŰW˙-kE endstream endobj 276 0 obj @@ -3796,118 +3800,113 @@ endobj endobj 658 0 obj << -/Length1 2053 -/Length2 24334 +/Length1 2055 +/Length2 24198 /Length3 0 -/Length 25595 +/Length 25420 /Filter /FlateDecode >> stream -xÚ´¸cx¤Űş5ŰV'«c۶ӱ*¶ťŽŤŽm[»ctlŁ“Žm}éµÎ>{í}Ţżß•+©Ś›cŢsĚůT9±˘ -ť‰ťPÜÎÖ™Ž‰ž‘ +§lgchËÄA§4s±6t0Ó32˛Â‘“‹8
ť-ělE
ťÜ -Ô¨©)« -«¸ŘŰŰ9ţU5‰Ď -tt˛řÓöż¸Q|0ü›ÚGŞ©ŁťÍ_
-@ÖÂhëü“$n÷·Óćc”Ivç˙%ö1ç?5˙8˙ŃĆÜĐéŻ\YEEY€Ťˇ…3ĐÖĐÖř#ĐŮĐŮĹ `đ—íăhBů7A @ÄĹŃńOąą˙·Íż¨Ű}¬LÇÚËÇĐíżwĚĐÖĹÉółůĎeŰŮ:Y89;ý]0µ°ţaďôgĎ,l˙˛É ÉK‰‹©¨ŇÉ~Ď–NÎîc:¶ôÎîÎE˙©'$*Ë
ŕdd0q±?D*fk"bgcóÁÚ îĎřD->ćälçčÁđ…mekçfëő˙pZŘšţ™˝‰‹=š…PJôÂ?Lp˙¶™ťŚ -üxór2tś]€>^˙tü'‚câ -Ń -Î˙€qů7dţ óď`VN -¨aaňńĚüGśˇłŁ…»6ăǡeú°üüë?Ý˙h@ţďűćŮÂÂvî^t¬űJÇüˇ&ÎŹ%0łůüG®ńßWř_Ƈ¨˙…˙Üź -Ő2ŹwźyZö,z0Xó-:ăËǬÉFxŮ!ÓśKô ÖX3_0ô:Đ˝÷Óç.şŮŞ‘ČwóšľH,"żµčÄ«@këB€im±Ęß›'6iËŐQ'ÁćÜÝa}ą %ĎiűQ/‰šÜJ´@ÚE¦µ [Ć@#taŻŞ›ŃÖ !eź ýÚjt6 -ĺeVçWľbéÓ3ŚŞöNV‹ťŤ)Df¨Ţ±~ck€y+Ýq«Ş’÷$ç⊡ §Ţji¦Úç}14.'Gßm˝9í*Ř>_‰OúăĆÖí°":<üňXDo Ö¤=Óç8Ś—TěÓÂŹbž
öv)—çĚ·N¸Ň 1Š|‘Ĺr)/‡Ţˇ{Ş·űjśx>yůG‡ŚŁ¤Ň„iFRnĄHIDÁ±GůŇmÝű‹e?‡ę›j|Á$ÉO(Jć)B“üŇ ĆôŇá§"ú -AÜÇ;SˇâŰöčěö϶9NřĐ:`źę/ÖPÝ.®řJX ¦~iś›ŇÎâ=B†j˙ą6‰†.ú=đj¦áäpç.x^O5*ëúśí ’ff‘žĐ~?„5§©ĄđmçY?^Ä®avXĎ‚»f)!z®ŤJ<7 Çż)č':ĘâËč9Îľˇ…?7ën:ŢŢŐ2Ö/?D(ăK®du#‡ţz÷ÚÂĄě.ń#řÁűSžÇ5%×\ůxs¸ÁJ ę:ű†&S1WĂ͆]Ŕ|ďó6űá’˙x|‹s´źqŹ
I–o8Ë=^Ťĺd_@…[gp‡‰÷L62?> ˇ‚˛LGu6‰‘1~Ëäń¸V_Ú[rČją÷4«9ňŽ>}†„^ű,g~q˘Ó»ý˘ĽKQŘ üÄŢC@ÉÍ@ń”e|óS˙„j
-ĺux4Űje«/Ă r Y84ú> L$@RJţ‰řať†eA©×Ąä7ŽÄ=«ťYŐh'X•Ĺ=YŠĄűW«yéŃO.v‚”ň_Ç\Ćt$Č˝ =öČ_D˘„ź ŢÇ`jËq?ą6‹!J0M7źý\r´äc–…ŮęśĚÇY$C§8řP-LĂ×ü†Âŕ„úcŇMŮî6çŐ -Ăzy•á!4[^Ôth¶W…¨’ĂZÎqbh%*€Ýř˛}űÁ—· +I”ŘČő•{yđµ@BěŰe–ŇŠ+č5‚ßUG#ó‰w˙Ło‡ŠĆ
…›c‚<
‚ Ďd0
ž7ť9÷;‹šošÄŮN«|xý—„.0Ç!Ch}Đľ;¨=23wč·9äŕC3Ä–; j9Üđ¤!˝Îť÷Ňo÷ýÇáťčo¸äi·˝]ĘUŔűH(ŞšéŚbľ=ňARś÷k -úź0íËĽľ”ḓ-)żY—P<\ Qo)`ťËh#Îł$ťÇá>„Jp%{ŘŤĐĺáăő–€Ţ'çëuŮR˛Ž§ź.dę0i×+yŚBĦÎ[®ę~¸źÎČź˛ŞŤ bßů¤śŹň6ŞŻhdG N0‹ë2eL†ŹĂ>_6šÚ%ŐçdŕK!I -$ŮR<řfLâaąË€ţâ,FRôâöĐ7wŤ8»Xĸ_ă×cŮ@źî‹ Űw -Ţq˛nđ#ôgě¶q€ać}Qi‚Hnś€Q6ĘÉ·¨ Ă3ńĘŕ%V°)‡çL4“T{ÂĽŢ”ÂĺŔ!ş’]teş<čĂN T†Ľ}Ă/ ow·ŢDęĎiÖI#38«sLó2L^Ł‚¶ľéŻ* -.–3!,ĚŹf˛aó»FĽ˝ë}ŤpE¬E»ĽĎ˙˛ĺ"$ČH´aLáębÚhC´Ł§Ć+F·ą'®“ü|x§f -\3擬{`…§~6:GÚŻÜzµäŇ°E$űz¦aKĽCLDnÂţ‡řü‹ř‚˝/Eî°jšŻ`i$Xr#pl&3H’«Źp*—[`·®š<ďDgüS«>ůľŠÝpťÜ†®/;{P“,9P@› -ŕ #˛ž]L[‚|ĹPżR>¶xň©Čŕe'´Ĺ–‹7@Ę`ó¦»vUt‹ËT
X‚ä\ÓdN~s`AÝŐvv·/‚Húâ–ďážü˛D¨Ć&Y)PÚÁ¤DźqxĄňgÄÖť†qĐśz‘5ČĐçÖńŁ őNôśëď•ňu”p\uúcÖ7¦#ëU;ď{-%I§;]ł` GůWĆCοȤĐ$ n1†7§šiuR”-ťĆ~×O±8“Ň‚ľşń‡8–ĹČ=NÖ$Ë8˙öľ„±ú¶ł±ýŞŕčQ.Ľ.¶«ýx3Ő„Eˇ-A‰Šxßp -LĹaÝňťĹýę9JR·zÍ~ׂˇ‰´^Őł°ŮöôeĚ9Ô$ą-Ł°aĎ?IĚő;É{ĄŘßNݦ~$şŇuŠ;ş™tń“Gş›Ž7Çě4ŐY´'Í3ŞPŕŠXcÖo·‘•ŞşŁé(ęŃ…g…”á'ßVyĚ^^K( îL\bIČ5‰h”ŐĎĆéĚq^¶´†OAŚ{Üyň’ŘáKÍ'Ý7ÇcćůłäźÝ9 "BÂäě‚É©ÂăBtČčcn͉7¶ş”lţĹ3A˘˘K€„gpIŞTŮö:B‰Ŕ‚8&5ĂrÔV3ť!ëaFkŽ8ây{رžeö»;†•Ű&đ)Łw_˝ĎO)FK’šł4÷ňß%«WfšďíGŔ_Îý%+:fG•Č‰
˘gi.dŮÄ.ZŇ ÖȫΡÖÇôĘujXśąyĐ5ťÜč¨Jqšü®Dć’=h!”%Ěn^C]ĐČÁE.ë5E%íźxťĐ’§u6#2˙imĐwä*ż€ĐĆ«Q=évČşŢß°nłŘ†hkŠĺKäÎ@˘ÜôĆ?' Ön¸Á_™”ˇ•’*ÚJçëß{źč»6ŇíŘ'u™ŢduXbMŞK`ĺś×o‚#RÚˇ>Óş°ÝšHÁ.~rÖ,˛Çi…ýaj[Xô Ţ“›{\Ťď×]9r'&†ŕÍŔ„ ·Ť žŔUů')Ťýw‡mż -ő˘f•µ5€ -2˛Ë -§ÜÄ”™¨°#ߎ…ÚO'śníó8Ĺ€ľćl0Ój2ôW
4çQ;Ş"U<qú"Ů–|ŐáÂZÇ{ÇÎĆ/ĐÓ–A±źNňIź˝jßŇ4P:vż{Äú©±e^BEťyéQSíńI»Ęß[˘E-›Fó–E‰˛z«Wí‚!ř<¦ŻEŹŇS–›f_Ů‘WęeĂyş¶ş°[¨(¬[Rúţ ö’W!ŁµdQßtłŔ¬ÎałńÍJyŹ!•a¸Lß=5¤Ŕo]ŽŤŚHKXu
µ{8o©f).DPcמŠ¦Ł'VŠsâk˘Â©*Ź ÔnožA:Żů>ĆÜvô®’Ă<öŇ棵}q›Ý(¦Kč%x¤îzŰ÷E}‹éWR^ĄŮŘ:Íń™ĹŘľüŚVő&mli‡FDĘ›6ŻĆtóp–°˝'µř–ú«mĘr'»âNť®,˘ś=Wó·lŐ ćôÁÚřëÖ‡jFŽţĐSÖ\Ą^|Ó°y—?đďwą$z6wÖľLNÚzg~‡RŚ,ĆVHnűé˘U"Bvĺs -;{1é ös@µŕ¦˙–¬x¨ -63™oš˛Ęß3jNôᆰMĺżµ`9˘=ÓQŢę™F€q„ňjžŐŘ F -ŮĚÚ¸ďLĹamW8,ţ¤ŁhK߯–4'ŘĘŔ/o›ß¸ę9nž7~aµrËúń{@ĺÂ5ÔŢăí3ežš=‡Đ -©ż˝]Íç;çŞĎwěő%rFíS.ô3żq”Á›ŘşyŰx»®·Oô§…ćíĹđ«.ŽKU—gjó=K f<â7młĄ”sO ŕ` ďL%×÷ÆîG‹Â2Ď$MţĹWwüŇň#řs7çnWî]{ą,ÜSłá^xŐé~{ݡiU -=]"_ĄÖ5â{’F‡ĺ[ ýżŇ?ÇvÚÍ,渔ĺýFzŢ ”âźóNÎwVűz:˘Q)üÍ . "mâlţŔj@m ˝ŞŠóŢÚs|żÄşę 5[kçŃÜĽ´căIŻ…îNÇĂ/Śb`úů@ ěţD(ÇŚ_ÖňjójǤUúžŃY<kt¬˘ü!Á幉,JÓH5ł˝Îó}}?ćő+ľÍä~ńŹC4‘_]şŃö"ĹśĎ~lD4HđENýn9ŘQ˝uz,Däŕ¬÷<L•{lBĄ=Óđ)ßÁ/Ě\A4H~ŘÖůÖ]jfíA–>÷ť1Á˛ß‘R*¶¨Ŕü”ą‚R»ZüIěs5ŤôňîJ=}‡2c÷ž÷ů)^˘SáóďÄśěbHŁ˝ČÝâ¬Äý’ËDűď8NL
ľT‰ŹĎ†ŇG0+R;đýź›¸«ČÄ=Ç“jŻÝH{ú»7w_Ąs´‚“ŽBYU)|˝Nġ!t)sÇ13˛®¦QPěC) ->yŁe†˛E]&Ňp6Ł!ĹČ}.â˛Xo@ç4řĚú@˙‡X:1̧÷‰9j ˛±úv›>=ôÝviŻÚńŕYćZ:*Ę<mĄ}őNT€eîlµÚpńČ9+·eFŔ;Óm9îm"ę)ůŘđFŤµ˛–«[iGcĂ -h·=GŇú‘ć'ńQ<ŔI‰j§íC -*X›Cýůĺżžďů÷ąKćxAÓöBYÖűč—jC_*‚9Ň»5gEš&y_r
RdH%޿ÀţŞQ%Žé¦pg|Í+Şđ]‘Ä?Üýmß™¸Cé¸1EíÝ'×’=dÁ8ĺPěqúÓ2· -.ó~ě$‹úęí.˙©ßDÜĎ—'húĂ{*¦ŚrbM!ë°ąš¬¶pDͦ€ORO
5ňAQ5P[–ôYĎkT˘L×yń7ĽHoŇz™U—[ÚC©’ó#ĎÔńňsÁ©S4^ů˘rÓµç+®A śÓfęťâÁÉŁľô"Štąč1ú`ÂŔ–X›Ů·Â2Wäě–Ýčar´=;t}UˇŻĽűd‹ŃĄđţĚ{mUćUłec …1XgşĎ¶z˝nQ`W•ßü‹űY•v°m…PĎ˝MÄŕSË…t.€G‰đÁÓ8ĹúJ„ÝDËi1®,Ď÷ľe1ú†źí˛q Ĺ™ďÚˇ¸vĘ?µ_KŔĽ¶ŔRÁŃ<´ -S( ç60‰ń˛¤3NŻŮÍ4:´ÚAÍ~Š%[jáÁŔqWsÖÓĹ«;Ľ÷B–ÖZ±¬”ľÇ…jú-SÎ(ßîp~¸¦ůB`SÎŮďňkÎiĽü¸4hAŠxí Ľď„…6C mÖ\2…˧;z”‰eő.ŕ®öÁÁ8,’Ńliü@ł1ŁŚ`]›ąnMĎ›~şäÔĹ"z‰h
Éä™k -ÖÓŐŮúV‘ďX&Ź;ŰŐ_›"3.ŔşRŔNńWm‚r—‘Ó!î«ęâ‹b"óąyžN|DľĄ?ἠ,µaiycŰĎŘá‹ŕČâíÚË®Ěú"éAҨŞFôŻ›îAf -bÂ:Ç|¶„Ëüv4ÔJaĚŔ”rfÉ,Ŕł;ą’đ¸Â_ľĄ;Ć„ăÁw…·\'ˆĺ§[÷Ážpęj“ű˘N"
ebĽk˝Ęí±ŔůRWËJ}Őľ”wdĹŽZT9`s¸~&hżŽłJ©Â(VUĚbrc0G’ř©Đěť82'Á[ ¦6ĎpŞŃ™…ŮřňŐ˝¨
ŃČš€ě*©0-s7pH ä¨3jŻg\±kÝ×3yŕQp’:č>ëÚë§^nu8˝ä»CĽ>J), ˘ä»¨•»€ö^$nŚŻç”·„N˛ú'¨żďďRdRĐ5é˛ăÖZ‡~†Ňüm›úC]AxćţĘ -ż)ZŢs]aÖ»Ŕüö=şĘŰ´9§]¶gý‚ž®|q‡Ň¨bŠOP -}Zquż˛3Ž€ÖáľŇd'MĘUŮń)ĎLô@± Ći(x;~“éʧ×ďząčH _‹H‹ŮrÖÁ©hĚÜ"™™ś™ľÔDŁá•mô»EWŘTEߢ^ĂAż™éVńh~H,]"™ôÇÝI˘î)6Č=€¬ĂOĽ`Łp]7䥄žr%çč?ŻŽĎ=ëĚęĂ.4łľbřÖĂ‹LD¦ăÂzďSíÓzgß*Ió_šFţ…LÓ×µŢ6ęDdi)é×ĉ:MZVź‚g4H›ňö™×"]É©ąLs8ŁZ™V’8UŹ§Ţ©_ë•(V•Iő®w{&ëŇ€fźAą¸f3a7?wíźC•ez:\NYxżYۢ2Ń”±% ôőž±ŮĎĹ·aRvF¦AfB#ŠW r;^îů"Şůµ”›}µĹIéŮ„°üuµ'ŕ—G®M73«ć×Č*Ä#YM@}…ó¤GvĂŕyľRűýä(f˝‚(ś`qN%ú.î‘ĎäŇď`ßç¬Ć©Ą…ąA‹zŁ@ĹÖ-¶xž¶Ăz‰ËĆkvˇn•‡ĎKű‹GK2R燻9;9ď=á‹´±fDY›”`ŻĎű_ŠYÉč-"«wFűÖX(‘ÓŹăË„{˝’Ä<´lŤp"Mxßßď2.†CˇÇĺ~µß™xN˙ĚžÍvVČ'ý˛ÚjyDeXh/˝D@$\SÚ—ćű éŤŃOq÷ ×"ŹÚ«°~ľ»6‡ĘR}ż¬«ŢĂoďďç$ĺoF ×A -RŮ{
u˱K÷%^3ĂăĐŇĺj©ňą-ŔččőŐŚĎŞ4ürľĚVN}†^śś÷GęŽä)˝rY¸F?j<˛ - tőµîµŽęSŠ%1 ¸ßüôĽo·Úđ\= „đ‡„WHZşŐŤ0Ł±Á7śńRČ_¨şŽ×锊6ýkQĚŽ–~Cî¸óŐÇç–ŕňč,cJ -ĂLWś…1DĆxëŮÝ)jľep·ęlŃąt2Ś»éQĄD•"¶+¨TôĽAŐ'ń&(ţrŐhp]fľš†Ö;ŹB#´J6Ř -}ë:~“‚A9n¨ŁőÂ.3¤‡Ű{Šh/ćx%Ł@‚“ÁRăJ”_=éol™‡5iËg‹Ă‡ÄFąăŹţŐ&‹.Śş˘'Ѩ®7L®ĘŇw9˘Fu,ĎĐiǬt\Ż›Ź-«&uÓŕ45,ś3„§%Í/ö¤#ëP6F„2µî"«?Ýx|4ˇ¨w[Ô9ł>\‰‰l•'Ľß÷Čf^Ó¦@‰Í,ś…äĂ@^8‘Źç -q8ţŚ‚4Ś§Tc@Á‹ż -˛>ľ;íŻ?ÜżÜBßË“ľtÎŐ|Oúýăâ÷čžő*şýV»öhQxëłřˇg-`ťsß+F—nޮʝę×ř5UU’V#KŞIJZmřnaB&&ÍĎŔC´1Ď™Żi)í\|ŢÁE/SiŠYđâާN6ŮŰ/ÖüÔ¬°ýńpz]N?LQíu/6\ÝÁhrłď1öş·óŘč|„ťÍĽPXÝ -Ů"ť<ŰJó,ĄŇć‹ŇŹő«íŠKeľěh¤¤Ĺ(eŘ˙0CŚ„ÔJ·YšÝ…3&ăĎńé"%ŕŰĄ
(ȨÚŕ°Ěˇ -ŇibŘÔ|=Cć}´D”{đúv@Éĺ•ç6kĚüÂ`,E/:ĂEŘiJ^}ZO&<~“ţ®9úŮ´v7ÍŚáü"iE’FA(—Ţ#ý1ëŘčň™Ó\íV-OÂhpű;Jđ•ymůěŮjžĂţůčdÚşß°Ú|Ţ|"ź6’gö}ä6•|ďd±·ŔuąŤ •“_ŤoE†ŚKVŹC’Ő'IµÍ}Á‰-@¨
]§6Úk3˝’vk; =WTY -[čmŐqĚwÓqßá1ÚÍŻfîp”ś_Ä›ÁšÓK2@‘Şxšát´<zpO&]±ĐŁµź] - ĺ‹Ę`ŠţľoäNfU[`kUőą_n~<ú´§~OĘ -ŐÂôVnµ[kZ2odĘ6 “ŠsILZ<ëôCĺŇHkg% -+śÁżŐź5¨a”XɲbńŃüĽđI—†ąic7Őú:´‚Y®ćv@Éš'·<ú„P]ďŁăł¶Ĺ7^OÝ/îá‰â_đľó).-%»Ó…ž˝ôĺV¤gĽrą_Ół?Iń±˙BŤ<ď]e¤r´Číu.÷Çš‘ŘZ:znWIÝÓŹwň€Y¸«…Ë|°b:ÖŢ]ú™ďMN Îßż×Á(¸O¨EO-‘äYV¨6¦Î¬® ŽÓVăZQ°FÍ|8µŹłfąçÔól„´űÖ-€ETšç:ŹBL
!SňÁl§\ -M~ŃYšT¤µ«!2‚ŞÜyt â{¦ăQb‡ľ$ës¬FHM…aAďÔyő4€ŔxCńŕűŤô93Ś'8bw|Çuî şŤD^Ú*÷-ÉźđAsÍ»e`ˇeTÚţ1¬A±ÄΗJű‰Z4EČŞ©‡F¤Í×H€Ü¤Ł#ÓĽHĆÄýŢC 4fwŐ-ěą>ÚŇ-@n¤I´†ĹŘWŐ;:~G5®)úç\ĎüUł2é´zRÓ)ÔÁ3‹‚Ťö±,ÜŘ«{=o”"oeŚĐ
áĎJćN#©ô”B˘wßßc·>$ئĹ.ôąńk— ąkHp^đÜ&ľ żj:çĘČż."Öqǵ4”†óˇ”؉°öűµFŇłµşç”ň<ů]†Ý+Ŕ$,ËĽ÷±j𕣆·xňZb2k={©ľ›ÇÝćÜ`đĎě’'Ő`ňůHę'G -èn`ÖP.¸łö*áňQ—Ű‚ŠOŞÚj®Śµ7_©‹Ş@Čô˝9Ô!F…ÖsôĚz&Rf镸ž‘Žµćm18n3~ÓÝ®Ńýqa3ý PGá…e˘˙Z[w6Bl„d
(ë‘IŇĺdkčÂs&EŔAčŹBβÚ2pT5őâĐßS/Iç4â{ńropŐ&ř¦ Ź„’’TB*{A”i÷´?~^Ö<;‚JÉ}ě>ľ«~yí íˇű“\žŚâ0{ĘoF
a§ĚPýXďđ±¬,II8”·I=Ĺ<<u®Ĺ<CťDD±ĚŮjĽŽŰśýĚť@ź…Óż—2^‚ŤLę]ÄÉş4vBžďöL˙5ŔV8ĺY„˙ÚZN~ŢÔő¤Ľí27 Ž^rLZ<Ú‚eý4Śă?qĺçp%ÓÝ?b~N‘•w®-· *–4}”D
ú:ĎŃ[w®şÍRK&PbÜ/É«4‡âÚ󖶶€¶Ńíľ2ĎŐmB:vMű¤¬ţČ\Č÷΋!ÇsҡzI(®Z@-®‚QĚÎ6ŠjĎŮ [(‹oÎQ"(u‡§tšŠmţ® Ł‘ş÷ĺűŁěŠHuîţŠőĄ´Ň—$&HńšSUçȧ_Ůßfw?{ŠK6hg=ďµĘZĂŻ7JŁ*íüąŕsđý™|Ě~7şálŹcă6¤qčDń(ă'
bo$hě•Ůăa¶óąsÉoÉÚ„ż·„L†ŽÂW¶U"4Ł¤—”Qí|1•?2`hEPł·PT›ČÄcŐ˙΢¦]Ô(PëçŐĄŚąâ„„ńpćŻO’ -ľR®ę yäëÂl‚m„βӖ…Qąĺb-šË! -ű3ŘJXôwxĂvŞSEDŮűNŐoÄ‚›Ł ŚŻî+>VmšŻú±<í…ť¸&éťůť_”FťNď="DR^¬¨î7›4“Š»KTxěJC‹CX\0ňnl´Ćqč©lä°ą~ɤ•==$Ézo/EvĄŃŢl@+ÝŻů°K˘d4€-9LnBLQV_†+B+-!¨jąŤŃÍÁćU”f†ŃýĆ”˝FîÇ+"$fͬ„éŻú¶h‹0O«“{Ů+:lP}°CżŠě.1ę+&)µŠP´¸ťIř¤_qď˝ęÇ~ǦM$1e”Á™¬%dź"úĂĄ5ż -#ĄdCýřŮĄ2rúd=-ţđa’Ż•t^ęH•j~oęGobÂ’źřOůLOU“˛îňrbK÷a„b”™íw¶‡˘I\î›|n[(hęŕ¦ć÷iĺšěú˘X|ÉíS8ľcüUib'wČ©ŢINţňńj€mĹí>aLS3^a]ÎWŽ ¸HÄ/űăäŢߍpYÖľPß‘ŽŰĎ6ţzňŽť±^tÖSצĄ®”ix˘L jf -Ęë_˝ň˙DŁ*¸‹äQ]¤Ý©m÷“‘Ľáüă‚TÓ‡Í×iŠiá(p=™ ŁýörżźŘ~&ŐŤ’Ç
_řžWš< O|Śâźoaq }Ae[ ˇh‚čĺĽF›. /ŚŢsAET‘š4{J PÂU˘ÎýtŁč7ŚÍŠzŁáłI™d%–DaĂŤ»aÚŐ‹qŘR -ˇßĵŰVţÎ[˛ĐÇwą~–ßážeŞĆÔ…#ş§i~}0˛Ąü -Yʸĺwáľk*żG–›D,H\R‹í8 -¦Y”—Ă«Ĺą;¬§vRÜ`ďˇnő}!Ç`Ěśşărk”đˇs*©×ŤďG`ÔB+<€SDOp·›‡Ó9č˙|ă_×ęf—p—¬ďHŔăasDÝĐNÜÎ"(Oa\îOľ:ô&ŐŰ -ŤÓÓPÔ‡@3„űŽ×óͧŘf¶_xTDSÎť'ĐŢ먂m|P±ă§š„Ű129™vÔĺ)4v˘™đŮ°ë9á -Ź´|Ä(®ý] -•wsčůmvHc
nę÷·3=˝áC˘ü˝çD0Ş!Aě™Ršfr')¬ýýŐ4ÚĎłŐHČ]¶¶Sýkăŕ±č¶±OĂH;SßLnxăLň¸†şŇ -ű ‹"O\Â𪒇·d¬ÇÍbňIĘ®šÂâ|(Đ‘śŃi.ĄĹ”ö 8AĆ´öﱳ
vĂE¦×ÍuľßR§šĄ¤túşép–Rą¤‰Ő#Š\¬ -µÄ~.ĎŃEŁl¬†x
˙‡Śţ¸¸¨ZL_ąś#:&ľ^e®Ń¦˙g†Ý=áÔéëŹ2ń"¦˘Éýę×iÉĘtyvp‡řQŕbä'řzĽ˛0ŘŔ×6ľÂ˘ýŁŁß7N¬.űăI¨ěČň%ľ"Ř#ň‘†jXŹ¦Î¶•3[úMé’GÉ[ÔÓüčŘ~ķ᫱łÝ7ß’Ţ‘‹«ź®ŢɆrŃńYú’#0üř6WµEµŔ䨱Ń7^c“4ť Á×Ĺ°˝ł1î˝@KćUÉÁśţZ±®Ú‰•ľ·ŚťGlý4hĘĘŞy…·ć…ŨP)`EwŚhň,(˝Ž2;Ph&ŻÖŤę¸ł7żq1ŔĄâô 7M&ŚŚX—AžŠLjPb01ZÄţlJĄWľŚ=Ý @SF ĐÍ)'ů>éWś†IŞ’QŁ»qĂäYłŃîI•·ąTź
¬o/u›Kňň‘ě4hůlŁÖ›ýVÎóBÁë_<˙Ö<·¨'Š’FËh¸Hřą¬ă×S{Š6آkáÜot˝Đ6*WňeÍ“,Q[öĄ+KźŤ -U%ű §lĹ~8q «Vg
± ąˇdhő˝Ě†ĹŤ»rŃn‰ĚwÚwšßé±6ďˇŇ|zcgďě]ÍÔDϧŽľjľ‰D7“Úe•E·jZpU8.‚ĂblŹDĺ%”có靤-©4•?o+;51Ľ»xx µ÷aVŢăvy¨ňôĹ{±ź*=•ľ}NuĎp
3ÎŕJŕł®{í’YSśkýşRĚšµž‰\&îoj âš`Ň4!ihRXć6I±1X^ZŤŚ|ňx'ąö÷˙Żm{~Ş`Ô8žm[[›m×ɶíÍnłq˛q˛]›ŰlŰŢ“ml›ßąsçţpgŢăű|žY+z–sü<S`á×é&Ý46 -ŤÄ„]»îßęR+›Ó»¤ŐAc<˛Üż(IcÚë)Ižđl)c5y\ŁŽ_i%ČQë×ęC<=$[JiĄŁWá "›OÇ;'¶ČŁ›Řë¦áŚő#†”AŁýú‡2x‰ť‡†6!ßZzľFKŁ˝B›'.óÂCě°ŞqjĚĺÖrÜüătńJň ă}ÓµËzmyđĚ‘©šµX
§ęQ &žŽčJHűRoµíôŔ4uÔÖŠŮ®@ěťçý_…”ĺá'óšŐź‘S\č×6ą4ÔŻH)[ĂĂ}¨źĐ™‚íWµ8®Ü‘¶†đ™cIh vĂvö\µ—ZĽoz7ŃMŠtx˘).ŐŠé“čşsŽBăăÖíATĆ
I±_.lȨÇrl$–¤R›‰č˘¶b*Üä ‹¬ńVŹ%pˇŃLa8ł=úp”*H]AŘ"ŚWâłńe#hůŕv™¶ĹąŇËÓŞ†q+üŃš04˛ęÁÔzŢkÄÔĄ„ýĎFGx2 zöŽ·8ę·1´6“Ä2ţEŚnšU٦F"m‚=[^-ŹĐţO?Bô}Â[•#5NţŤŞO–dKĚZ´ťd˝“ÇUŘŢŤ`ŤĚ„Ěçą»ĚÂ47Ę˝ˇµÝ¬•<â×nńŠĎŽ>†š‹ąÔj‚*'ď3fK° ±Ú‚~Ž.¬“źÂ8&lâD…Q¶Ş= Ŕ‰–âÁ@ôH -(›¸¶x§mĘ ˘aj6Wvč[ă@>çĂC1ĚŚąč?‰J|¨żí@nř o_4ë}e^Ö^ÚΩ’ÂuíCh’îtS±ýl<˝,|yäV0¸˝R€xpf:z´LľŽÔ8@OÄP’ó‡‰JW\ŇU÷ŁŘđťsR¶bŽIÇ˙zŞ”qştL†‰pŘv• ŁS}!ęŢľŰĚCŽü;÷ĎŚĄŚ‘Ör‘·Ĺˇ -Ŕ:CodýDBĄjśt»ŃŘę«…
ÉbĽ÷ł1´Ç‘D^)ŰsĚ{zq ĚD4üÜä$r1ÜőţŘOĄ_»ţ?%eşůĆ’-węá 0@ŚŘ˙a&“±ţjÚŕ€ZýUíU»s -a&ÎÇÝĚ˙ý˘ČL\Ó;ÓfáŚn$ŇWΨmPq+ÉĘ4#cUČľ÷J·XB~ÂfŔč«A·!†ę”ő˙Ű -Ľ¸\tÎi?ýďIA -Śčˇ0÷
\ -K0ˇÍö‚€ŐŚu˛<¸|4XI’ĺ=(ęţđ:A˘ŤóGż¶ Ěŧ/Q-žFŤŠQÖĺO¶ÔśU8¶Ýľüč›yg)f“/!YF«'IÚăGé欥}‡\>7ÎJ‰Ľ,Cî8©5Hź¬Ě¨čCęÉé&%j5x'3
$K¸SG˝ŃUĺ˛+-±ŚCáIYU
ńŃWx*üuł1©Gŕ"ň¸ŘÇ#¦‹Ë_Xm8'1-…@˝ţǡż<ŞĐzDłîׄiá kYzo - -Ţ -Mý)÷ë8ĆĎľşńt›Ť¶Ü"Ĺ+B¬˛g)éAuĺâ9%Ŕd[ě>
m_´ďťIĺÄ×°%đAa7ˇ…LXŽQµĽÜP źŮË86ÉѢö\÷@č:űşí÷Ćŕ÷\gIů ‡¦wü‘űŤhî€AčÖy•—Ćp¬nÇËĵĄ8}$Ô,pk~ÇËÔmÉٽu˙‰¤00®ßĂKŇvQJ6°˛‚¶#ľ—9ß_ąÍş¤ŤźbZ fŐމŽ<ˇI (űŮ8uŁđ.d™ž,j^=¦=řL»t ÇUÂśÝëV¸Äµ+ĺL®?nęőÔ)îwPŻ›¶č~5˘řf\w˘]äŹ%Lx޸ĂÝ‹ř˛ř+ŚÉü±ô¸;{śĐŚŔŚ›¤¦˘=Łs§FYö]_ÝňŮ{Ş˙‚ż8‚yTĂ€±×F§Ł)ŰxáĆ\â$Có«ĂĄëFUëÎĽqęúCř7&z“źÜˇ"NDýjyˇN^ý°)Kă%Hkă©ač$Y=Řv›xolX¨cG>•y˝nT¦“a•ĐĎSĚ$›{˝™öB+˘SpcÁĺÍÔ´úUlFkó`9HEÂ1žËÂt1ř7veo±ýĹéŻüčđ¸ZHé”ĆÁ€1“d yŤîŢÝô¨{[ßÄ/˝4”íŕb'8RVÓ‘Đ’Ý»Ś#KÖĄIýłŞŤÖ—qqCi€G˘/‰Ha·tÉTuŤ=Ő‹H…WuX´a4OúČD6ŞqʆiÇ*–˝™žţ·¦éVďgç(?ˇ7‰ąŁpÔŻV{©P„ŢŹµśőáŃc~ůĆx°ŃÓóôŠŮ¶o7_˘? -J(Eݶ!–×álçźfJýĺď„Ą™Ć¨4şćŢřBŹ)ŹŇĐČŞŔŃż˝˛ŁRŠŤ!‹i6ş†“_|:ˇŤf¤%ÔGŮşz'{ú•ř0,ź:KĂ/ľ°Śí(w…ú¨Ţ‘=•”˙
Żˇß/ăJYň}.4sľYĎńgŤ'U?ÉJŃ%cbaŕ&BM!íÖŤ?WŃî OG±o}ë`ĎŠK%ýÚBTMËB±}ŔUJĹN´…ßÇ•_ŁűG>
á®`|E&WŚ»Éýl”Řdł6Tm|őô‡B.Ëú™9]Ł®S@‚^ĐCô/`ëMc@Źiî*ËĂkň§¦8–“˝ ÜšN ńnL~ŹŤJ…š‰}¸ô1Ď@¬FëŘŰ÷XĄUJÂňńÝ®ź—\±’(G;GÉSßúUOĐ©mń)2k6ä[1~‰Š(˝ŚŻ(«z|Ř,ă§V˛ ćt«ťÁ9ý®š€¶łswseĚ›LnŽ¦ŞäO)"§ŻőÖż;lH·ČĚ˙ç˸Š¬Ó -rĘÚ’zŘCX8¨¬gv"rˇąGď„6áŻędÝWČ!^)Yâ'>NŤÓ}&¸
ŹD{
d"SÄ_?§NvË4®HđĽ0;"čůň¤Ç</ÄDÎÓsý,uµ«K˙!Ł0óÂ!†‰'tđĺAě˛˙:~‘aAfšúËĚÖVެ˝€–ߢt|Źx{ýa3j–ů·Mq°%%^0ţ“:Iű9ţ{›Ä&LfŠÖŁs–ICşl‘úc7[xÝóńż9 -Ms×iŚ´eß!Şc%űK©Mćë2Ťq¦6Ş3¬?’óÂŔť* -8«.’^žüĂ°›fž5Q{eĺxĺđ3*Č˙2˙Ú»ErÚ?˙ß—[>{yX -ńďíÓPÂíŢ[#…o&"ϸž÷öŤ=Tíw]2[:ŞLţ<<ó†0ŐíÔĄyëyĽÖâTŮńď”.»FĎX‘mýP|Ç°¨I -×`eúmÓöóŇ9ŢJłp’@ŻâůM~mÄňđAuK|…¸ÁëĘÜ׫sąÔˇţę2ďiůÝŹŮßąáí<2$ć9. ůđüŞüe>„'Ô?q’Áˇ9ŤŠ*‹ĂÇ°~GO#DÔPnćę°°ľ§ĹBž8Fgż&đď× -Ăâ›ČźŤR‘ŕą÷×) ~twŽTŹ]‰bÄUĐ(}Ž’®Ůy!4łP?Ńü˘h}%Ő«ěŘěä*`=fa2ňąÂ4şY%-!Aŕ…<^Ęż}‹«©ňâ:L‹-Ćy±,´ŃŹ”EZġô.Ňř…"5;7qQ+UĎ%GÖÖŁpŕ¦FÍŠn!©ŽŘÁç˙•b«›Ř«9pIz(s„{ľçú/ŠĺVCC–‡É,Ŕ´“Ç{śŇ @“9ś'N‹f§Ůög -€˛…{ŠvyňđĄe‹wťŇÚ'EO˘OW~,fćîÚ,tĽĹ•ުFP©'ú´GÝÁnuŁÇóµŹX¬
cş@HŇpIř]q´ÜÉŁ‡ĺćOĺ“@d›\T“]”—j)s dŔeµÔCdžt†˛p5őę8˙Ü=ćî<D¨±E¦J=BRôQó1ÂĺIB}I’iµWť)ä§%»o•ą…*÷[aŹ‡™ţ–Óc»¸ü·•BF¶Ě=âł«·|˙ʤ w9Že5¸ř„ÖeâTO:㧥®T{Xô‡»ŞŹ"côRŤ=Ö5|Ă*ÜsśźÜÁ5-Qhsnl ŐŻąjR\
,]»ěmlÇL´źř_ -˛ťĎŠj¨•ąś -ÁX.˘ńšĂ#×–vűűŕ}ď’šT˝Jďrĺd®_'”JsÓËëçÖ‚
٢ß'VP˙P´ qáŃűcÂóěŹ}ůĆÁ`Łťščč‹uşS(9µÔ~ć–[;¸·J2é?DT*´)ĐnęŘůsŁĐ™ć©ôŮ+XěsCČŹôźaHßµśęËó\c
,ŕýálnÉ}Đő™'pGź7ĺî7¨¸wiťťű‰Şę8#6‹óvŔ¨ľsß»ŤśÂQ¦E=Ŕ¨BA–ÁĄ8Źľ¦Ô¸ěQ‚Ţë?‰ýČf•0ŔĹ;ě)%ąÜµ¦<śÖužc\źč%4Ô©źh©P˛˘öłq -Ç›ľe-ĺ!Ť7x뵑ś„„×ý -đ˛-¦¨oBfq•u/Ödź—
üéŇ©f¦ś˙9.Ćióg¸I s>xĐ’ý(Ó%¶¦¨\ágČó@Yü -ÜŽý/ä]!¤ňîă°y‚iŻđ-1ő´ËcŠŰ=ŘŁ»ăóŢż8鱍¶ßębwňÇšÖP9µ(†ĐÍż ź~F[:¤AV˛ÚH˝fô;ľ˝,ĄYĺöA¨´Ă$Nşb‘ß“đŘÔ,?
ç`)'Ţ{ńS±ÚLŨWŤµĎ f^‹K‡E˙o$rĚD¶(Ď,öÍ„‘x}§f;ó é(†#qV -é×ÄOwü?óG~.d\Űźş-ú®Ëgŕ©h?éŐIA” ô»ăţ<śőă2HĐĘRŮ/:Ŕ3tďyó§˙IýZQZŻÄtPUÚŽüŘÂ\eĐ čÓOB’ŐjyúďTČß"Äթ꣒7ďW™¸ ť(&|‘¬6âQ>ţç‚ĆŠšIMŇPW<=őEż´ÓV´ěS·IÔ5lđć!»ä6l_Ňó^żˇÉ=ó4źÎČ>8ÜçD¶RK¶ý„\¬k‹şüIîôŻŽĹ‘Ü÷®,Ĺ›Ś˝Ö Ź´Pî™#ŽNÂÉ&ŠČŽ<§ő4˘Útp©Ŕe!÷üŹČ6¬űşx`—´©iP
üçá5c¸Ž»ky3`¨bEyŰőŰĎ«Iá˘K†“-A
>ÚžkŞeçÜ˸†šŘŻü8…bĺv†ĚŻóĐ'íŞř>ŕŢŕŕçWů -ˇ˘TLäl¬Z#¶ş4ż[đ(věo™1şŔÜ0fXWýn”ŰÚČí«MZ»ćn#.o¤qž8ă -ŽŚW$´Ń`}ěďŻÎŹ ]ȤŹi(U66·
©&í…·« -ו!NrFGĽ‰c÷Jţk ·ÇpďzŻŁšXŕßć@o¬C4‰J2’leś»oň1ô•řţĹô_śtúŕš”±Źp߼`±‰'gÍŐ€óĆĘ&ÎácŤ -齣承žˇŮ9>.Ë“óüAŰÁfßHPzp t†t -óř:kŕÄĐ^l̡‚\5Č4dÍ8bŚĄÝ•0njËEŰČźş5Ę^M§Ľ‘̸yC8#É -šŰÇT‰[ĚĄC¬©tí9…?±Ř§˝›Ř“]Ťk -Ťs]—RŻV˛Ň7’˝,Ľ@X -Ş~M,™·i]żłv=ú=iâß<«ôëĄ"\íÂÜ$Ţůe¸‡p+ŕ *ażç˘®őuwę$ -ęµ®zŁc+pšiTÔ$+W’ĘfĺUéđ˘ĘsŞĹhmÓăîű!GŻ¤Oß4]>:‚4Ľ$‘"Ş«Xŕ’Nđ3¸žG±ě
4bßTeN‚±=r벵¦EěC}wrdrFÖ»KKăŠüBÚĎPiÉd ˘p'M´t7ěN ‚ő$·2!÷~[\ĆÜRoĹu,|CB5¤‚J…ňJ#µ•Ă‰ÔofE‰˘Ťś°+B&0,jŚi·ţĺߤĂzÂě`ČčeŤjět;JSaČŤ÷÷˛ňR”L„8xęŁÁLxüI:ńŐc’M›Žae™Ţxf;D_sâ -¬yŐ“I΋Ýqâ ŇŁB8ÄÄZCˇ°ż–8]YÓ
c“~GÂk[Ěw˙äÂúkIÜDˇP»Đ±ŚUgŘkLXŕŔż„ṁ~LÓ!ň6^˙%Z‘ +xÚ´ąeTśËş5J°`ÁŤ»»—ŕ®ÁˇqhÜÝ!¸»wwwwwÜ—¬uöŮkďďü˝ŁÝĚGg=5«zŚ·Éä•čŤ@@1µ=#7@ZFdĄoÍÄA§4q´Ô·0Ó32˛Â‘‘ ŰőĚ@Ö"ú@n +@ÚĚhmü“$úŰiő>Ę÷¤w»Ă˙{„Ăźš–‡ěŔ˙hcŞo˙W®´ĽĽ4ŔJßĚÚhomřč ďŕhĐűËöţ4˘ř› ěhg÷§‡Ěż\v˙Űć_Ô…@ď+Ó˛t÷ÔwţďÓ·v´wűÇlţsن k{3{űż+Ćf–Ŕ?ěí˙ě™™ő_6AY 1Q%e:éwáYÓɀާcMďŕâđWôźz‚"ŇÜ +Hů˙ĚôżőĚ,]˙3ôżBÔ€ŘRĘ‚ě¬ô-˙Ëgf/fć4’7s04ý{´Ű%ôßő/hmb |ß–żL*Ž”ĺ»vßďł?×€Ž™Ťůż|ď˛4´°ÚŰŘ˙NľâżżO˙_ +ÜďQů{%Ó2ő +Ra˛Ë<ë]°˙ĄŹ#g¨:<Ş™ž¸9A¬ 9ĄNeÂĺŤpP"®‰’‹ÉÍ´Ł¬>—ŁĎM0Oź–T…H˘â`µY%©ČZ^’EŁ‘[Ž +g†říĽ•„ +—KěĎÎ2aŇëpjÁĂúŻ$ĘŮ3Ż2˝şĹ˘Ő°[4ĂS#QĘ˝ĐeÔc%†ĆW’zÜ˝;ő)}žGýMznm|íŔjŚŃđ^%Rö +oqOĂĚë@*`Bo»(Ĺz|MźSü;ŐĄzä¸Ţ+˝Ł@
–h{Ăëh(zÎÎ7ęďtŕŚ•ö#vĂ'´Ţě;ž`s¬žĎMÍÎK
=ł~'‘§T~,¬”0„°7äÍJ}óŁ"ë48 +X°–bÓ˝M’äź +BôľŇXdŽ5)™żx<™|Đ !±ˇY\Ú‰E<ĐNó«Ął7=Mµ˝[ŹĐN:úu‹hG©§EĂDáőâóIŤăőÖu=ˇ~Ś‹swâ'"źV4‰@ô›|^FõřKp˙î$¶XfŢĽĽqI¬LO6ÉÝčŢn@V=ňÍŽ/§é˝w‰w(hůUe>Ć#c™—¨o$ŃäéDwĚ{‡ó±‹[QGĚóÁA"ĐCŢ–K”Ôď¤Ö X5Ż¸´
ˇČ»zNJŘXö˘Ús€ ©&%¤aíך Ĺőé|Đl€Ëä>Ncş&MůY63SzWLŻ°ˇ+ ŃMţYGéJŕ!/˙ž¬…ň.ˇ'p¸ÖÜq´™-™‹™úž©Âšú<Ď8qk~€1cvĎăňIäWKˇj˝Ş>XÇƤÓqsçě$Š8Ŕ+JMŽůćWľBúدĽ +sČN]Ż)Ë!¨ťnM‘{E{>
…Ů=ËiQiŹnŔƸďMtÜ–anň&…ýFťÄ÷MÁĐčĹH<aR^ŹHŮ›ą0{}n甀9M®–ú·Á=V +˝Äş ŚĽŕ3585lŻÉ®łŰî"6V¸ť2¨ńâ@Ćâä_cś2eĄÄÔţz3®}BuëĐńöďzHĎ“ůÝŃđ«(¨Z;=†ĚésŢL÷Í8$ +9/°‚-›&k8Ţë_Tĺ'ě•ß@$¤ŞŘŹgÄ$„ˇĆ_ŞĚb©če +ţ”ńé‰VĐă¬Ë(r~DV”=»”Ł×^őŔńLc™3†PłHLő=n]žő<_şL·…klŔi}xEÔĺ<· +ĚçęQÓž)X.0ßąţ¤~0ľcúŇ)4WýßČ=›MoË0¦ý(›}5
]L0żęj0:lÚĆ-^QŽĂÚ>EŚ.Çż“bxµňQń¨e +%ìf‡Ľ
ć{ŚQ׿Ӻ–JŤHÉďçM‡Řç˝ŐÎąüb® š¶ŹÔër}í%aÔctămhc 1·çĂ5Š—’š&"xjęýqôŁ'…ÚęžrKY‡zc@ĐÉźCuzN×ôÂe÷ŞhîÉĚ'iţË"FôŢş)5X×p`WˇĆ·ŮXM;…SWéč§ŕĽßŘ9·`¦^Âś±aY]űĘą—ĺx +ĂŞěş_ÝŻýí.ÓW>Do7_ÄáČÄç‡óŻÉé"mgŁ“Zc…}CÁy„].Šď¨üIńŇŤGç^Ĺ3|ö˘ř‰ža>b<c`řµfTzň07'WËÚó‰Kă/Ć!Ţ×ý†ŘŞç;h§A¶DČ”˝zÓÁ”VâfŮć#â˝úr^Ňá›öZ|MN;"ó㯚0Y䮍€n8ÇxĂŕMŹ$·:ňË» Ďmš/Ŕ0‚#ytßy–š×´)íůHA}‹˘WąŤźG¸–ń¬î,`Ć<Ă€…łU'}˙*G«{C)Ödţ“··V#0>e¬ţVíş
übhaÓěOˇ[Ň› vĽ4°žP*=áôŚgç†wÉíďq`UÇ Ŕ‹üň]Ő&Eol¨ńP¦ć¦¬ô–Ëę}·×~]CQ‚Ҷ%i°ľ˛–śÓ€‚ňź9 m1">3L + ^ TóOâĆ_.˙ÖLؤVV°ďŠ6Uá +-â—"W˙H,,›Ł¸7akţAŽs—¶>űŔvX3eE‡ĽżĽ`6ým5/e$ÜŢߦ/ęíşu3|8§1ăZM1#ĄĂČh `´ĐĄ/X‡4Á§ŃvĽĽ†®µŰVł\= (,H}q _UM2ŚRóČ “~.°ýęqzË)ĘěĹŔ1żÎďl zőŁ‡KßRtÇë·YüočUב9‹b|éĺyJłăx Äw*ňş9~e›ž<čé‰Ë˘…Ôź˛ô8}Ři‚"öoUëĎ3Ż‡Ű#}ú€|>WÂb˘ň$şó =ŁÔ^Ő[uâóWO0ŕ1sŠegýS?!H>ĄřóćÝÝŻ—qRň‰ńw3Dďt2éśÉ
™vşď1î§z…úáĐ›i"ÂóĽ*@†&t‡ÉŃ÷ +č[úĂ“Ťwk‚MŐŰĚľ
ę-„,>c>źüĘuôńţ%ŠÉ+č#=>Ďťm›üŽ23„ŇţÚ ô˝“|>@<¬‚>»ë´±µ«nĄÂĂ +'młx̲˙%7•=sřĺ“ßî`ŽŽů0›ůqMŰ%B.66{¦+ +?°FÔ×ţă~ÓO҉<Í…Íł}ľ%hůq˘çăůçlĽ§KŠ×®ZŃ™Ćn—a˙gVÚÂj.Mč>XWłšNý9Ű_ÄŃ°«_†GőF//«‡K^0Ë%>]şîÚ“ąůJG®ů¸ŔĺĽéßb“Ůî˛Eó: űîn6ňĹÂKzXy:ď}v3ŐŻ\*3ôm–[ćPł?ŞăOúůÇ =ëú2\?á)ަ˛lI„aץ(«Ł·ŃđĐĎĂä+{H}Ǧí Ĺ«§g}Díh1UQs#÷<ŽůŃCť”Ç:Ż÷"9ßŮJşÝp°lČüÖé%áZ‰“Hpź„¸F—UGSČŇĹ+të‰NUaBŠÔćwk˘đzŢL\ΓAÄÖL]I’2Ą±‘OaŚ<žNľ zĺÔ¤˘äV¨S.F(¤ŠÁFJŮ‚H C®H-©ĎP®URšô=t*ŽšĆ,QĚąâeÝ›Ą~˘đ’±$’Ťs0ÓA’)·Ă™B,UË:Ş€¬"ôô…öjDĚ…˝ +ű¤•˛„ź1śÎÂR¨Ő˛ů:)ź˘ó™‡¨'XÚ»vňŃ'` ?…Ď·±ą/QvěȡT$Ĺ(psqŘ–Ó‘Đ…ôąđd7ŕ'ŇČ´±k5VĚl î‡N#Ȇ¦iĹ:zäö“}żhZ–a€ÖđF5ťÎk)¦¨D×ZŚ~iÁú'˛LjgĐ`ţr΋q‘÷\ÝÎhDóc0”L쟎ĺ@^•J®2|úXP:Z/ęÖđz†§Sż˘HŢę^,ap–ŐçAßÝ(oŽ{3¨A+NŘČ(~Ő#µŮYńŐô©ŕ®ĺD—í.y(Ůž-ˇLeE»Ż€ČM…gI›p.ăď2.ÉÝ~i(•M::îUi·ßsĺo\] ÍŞ¤u"{ą†ID§W¸8'—Bű¸})XÇmž#s•ú!Ą +Ç'äf–sh_µyË'f±ëź„~ł©¬ ]—D +<ËĄŞ}K÷źL *=‚’¦ă—w©N1O”Y,`®rŔ7©* ®žO€üŚÔM^˛ů)5–?ôë~Ń(;¬6µ|J×Ű×xÎŽĐůÎ2×”IŔ¦4äĆő4Ď`íöi]¨}re¬Z +?ĹşbuB±a´mk‘}V¦%î9Ż’dšgQ¤^Ái˛n”7%)
Ţ‚u[Q±ů±#,ÂÝ!¬UßÍtFó3«Ä`˛±Őß—NnĆlaëWägźˇýÓŃħ‘¸ĺ&Ü„#c¨nV)MŠ_@<Vů„1!ëA´ż»î«I`REIÇ<jW>qéĚ Âáž +ű ”cühIŃ$w—LÂż”-f¬h˝UÍ3†ŕÄ»ÎN‘gď9‡î\Ôv?Ľw&`đ-á@ů˛í˛¨- +{h·#>‹Űc5Í—U T˝-“u'{“•í† ŁÁŻý˝$őä‚5”¨BÓ?•’ŮQ¤É„©bcUĦįZ3[„K[‹ +GqEq +Tâ5,łRiŻ°řë +3ź¦MŘŐůú(—ô1Ćâ¦,šo*ÖpĆ46`Öń$ŽmqÔŔäÚöä$=¬HŔkâ +/˛üP7”˘ĺčjĄŮzóf¶6Z#Ë쵄EŁ†ő&€“÷©ôĐ›ľ‹á%ÇZˇ N!´z'×ĹWřmk¤š-nń
áŽo'bgÉ]%ĺ9ÂąîB-=HŹK‚«—¨ŘSLdˇ%y-ä!RŽbnCłöFćŔ’sN‰ŁŠŐR÷sNśtÓĂ;:c˘LąŽfys2×qůÖż!ýRż;(9‰4ńĐ»`ě•ł,ApćÎVăöeJ7WçÂ6ĄŤLSóťXŮé"}V‚äüd'·ż-7ťŤcf—îr0‚JcŠ-´AÝë—ZK×lŽÁÍŃrq˛’P×®Ż6#¸qôűFeI”ČŘ&~‡Yâ +Ív?nś¬ÖQíŐ?áťf†Đ0¸áę;ű¶î>g`Ç–S×*Fzâ;·řbJ`›†ą>tĄĂŰÜešĎ)[‡ +¨ŰUĐöĆŕńyp±wGKŰü`ź0č…Vń ća…Ă…źö~gy„˘Fç1ÂŢ÷ŕ"÷éĐĚö +§+”ď‚]c’pędE(a˙–Ă?€uŽ/#Ž_*AÝţ}»đfBľţĺŁö8˘^Ň={đ`lvƮ߇ŹĄ8ŁŰô¨±ĺ!»ÝżjsSí.ł«eĄ…+EcÍŕůUҬđv ř˝ŠĘŻłmîđx;÷î_kÉ€çsím3Ëî`í·}‡ţ ĹőôO›™•%&Wş>µY’ęRq<‰tst¨¤…‚ľM*ÇÉŹ"açµá~}^×ů›‡Ź&\Ě1¶8‰¨°Ç•^< Ą¨ĚĚń”č¨[,
yeo +vÔe‚őĄWţ]Ě”E»Yl"N×J2îIß̨n’eP€±=‚Šż’H®‡ęŁşĆLO‹]ëˇIśĐ.Ŕ“Č9OXZPwçnłĎ‹
l'W.$aĺÓR)ý6#˙Űż8ýŚ)ý^~’iwô’ĚbĺçŹţŃú=ÎBç"á;—ŇŻNÁ„ťB›‘őÎě,ĂDsh0;cKw˛Ní.:ŐwkçuŹeN÷ŽC~ç™Ŕ,zľÍ¶Ôp0ź÷ńŽ—ÝD"ç ÜGE ?č4é9,ôáK«×ĄTx‹Ę
ůă FĹ,Ű&k>t|‘9@q_ EËŽ˛ +¶ü"\ Ď…‰”Š€Ťżü!á>Žń¶w÷yBi0l‰ľÁLń()Lůݬř0u¸ZƲ®†'2\€Óűł4jí«+ŻE‚ßuáɲZťúą†â¤|¨J3$í¦ń"„ßžŤˇ&Ý ń!Ĺ%ż/Ků„ηë*·Üęű6î +»!ę®3!D©qoK×jĹ +§QKřąÚăŻ>ŹC˝…Ř3N·ÎĂ~LˬĺŮsp»üavÜÁx„89óşcČŃëk×˙ŽţSëô‹!M˝}&ĎÂâŃßçxíŠĹg–ß +DłÎđrřKÔ?eOŶ0:X¬ŤÎ˛OnRyPFŽĎýéK<żYÔ/ĎĚV
˘ľ¶úŐĚOŢPŇß‹‘ŤÎe`ÂGŹÜÔăľí#k1ŐŮ‘Ĺ©çĘ +ÝęÓŔK`é^$ÖRĽp±mĚľBQjžciY*“t%AWâDŔÄMš5)r›(1|X6‹˛Ý˘äµG:¶}EßâĂ$$¦íĎT°®â(mBĄ{ÇŞÁuí2b¨¬ä‚X/·Ő<†~´>–ršTŞä ¬xVý!tPB¶Ż?Šqlíń¨Ý"/u8NőĐeÜôŁ+ĄÉK2U~q“”bŽsřé¬yđ49tąq6-qx´n&DźDh.©‡łýľÉ˝ŐkÄŚ‡†€¸ô, +ĎŤB‚ő)…ßÎm|âˇ]ź:.dWú:uT*ś8ęÄÔÇ«* k"LzYw
!âŰŐá”äíŐKA:‡çFŘPý.¸“€—črJˇbĺNwëR¦‰‹Üb€&2Š"™Đu ń·ŤĘQ鏇(· žťÓ~&P@C“ü—_ś $<4Ęâ_ +Öî‚Ýŕ"čâ"xăő"g°Ĺ¶a8ŠÁ=G“VĎé÷^"w7{:#ˇ˝ôC‡ýÜ.ÝxĘ6hü¤Ť'pŇ!í‚ş÷Hđ·ţ±4~ű^ÔkŘZ˛Yŕb#-Lx¸|Ý©ŰQĘtź-ĽFŔoŹH©éŐ'Ś2+ +{¤·ş">z˛~šĹóCô¤7Š^ě «"}Ěőß&ˇČ=eËHp=¨źü>‡"0ë&’uÍĎnCĺdŕ©
E.ŹÜĂ~ý!A“dËŕ»Ĺ)ß„yŚ„ó9šP«*I3Đ’÷K‚\DIĂ‹ˇÇÔ«W§X1wÂďÖ݉ĽÇ Ó8cˇ Ěm„Ž€}ĐT˘šiÚýÖńł`cDn‡ĆLÔoµ‹hr›ČăĘÎá{ó¸óZĂçGř3ô<L™˘šxÚ|ęď_ŻżŔůzđ|9ńÓĎ—%`¸ě«˙)áT{'Ä7ĐĹ/ bđm±–‚Ŕp»aX%`Qóüam_„ÍÁ¬ćy$ąj3Q`Ën‡fhŃvř Ňj˛c‰©;€r&r
gŹĚ•Ă‘Î!ĺ/kB`7Ůî<şU¬ňĺöŰ·Ü‹C‘˛I’ăÚá-a7”’5ÁÍ’ÖO|Ž‘ÓżÚí-yĂ:9±0C(›Jí˝ĽÉ×ëĹe»`RÁňNQ1ĹŃlE«Ď—2i^©Ő!dĽ$ÜV>vJJGú¸@.#…“˘Ź`š9d˘8DŠoeĹőzčöČÓ‹¦aźáLş•ľxŠĆ$§ßŢ©BPÚL +©S‰I"‰‰Mý,ú8>®1žđşŮŚÜŔN<>eg¦5o“Ľ„fLöJ!m>]Ź9z)ßÓŘ`P š-Ľ7ťIQŔ´vłwH¸ćýlŻ©¨M UKçC/Ý.~0L’J]™ ©§Öř”ý<5ÖÂ
Uó
191Ş…ć-KÉ7CÜE-źkęÔ#,¦É“Ţď§×îvĽÁW]Ĺ•b™f±!±ţŁ#qŐĺ’ěŻV·ż
ť %ť”‡~÷ćłěÉ NĘ®^‰Z*ÜCM™Ŕ¸Ü—O·%®
‘¨“{ {µ˛QŢ:ă~śś˝«5ëgŚŰË .’$ÜňłňNa6ÄĐzqF +rö=_ű7ŹĎ~'Cy®ń#9ű0X÷¶YgÜhç~uŢű!ýFű<Ú[«ĎrĂČüńIřcÔ……ş‚˛‘ŻřôXpŰ›®I‘cü9‡”č0Uv"§ëc˝ä`=rĽX™jDŰâ^÷uÍyx6X<a˙–ŁŚł +jŹńzĺߥxy'‰‘Đ1+ž¤_><Óč;16Ç|(ÍzzćS“]śj)ůĄ“ʇą +ąŢsk'†çS ďýµĄę2Í.–•)qÁ©ÖčŽ×1$áŰ=?gạZćn‰”{,»ÔŽž\ž(őqĂ‚*«R`¦ÎńűDŰ"žwö×]„‚ŞMŹ
1"ˇ?r)îŔ(D“¶ç;ş»vµdah‡pi`§âQÝóÁÎô°Ôżň +2k÷çW-•×«˛…̆Ł(dŁ:gVÂ<ł8Ş—pErt&ËĹI'[Ňĺ#˙č_~¤ű]ÓĽG;>ťŐ,şL)(ëˇPů|[J¦y9jŐ î¶ŽO +Ë[ü1ÇĂČÍęĄăŰC¦–ęLJ~Ţ6ÜóŻę˝ń=Ö-ŹźÂ:>ž?·'V‚ăX'ąWDéÜŤşpé‘ĆľVÔˤq_'ăÍ÷C÷©3JÓ¤ŃŘesJęYÜS2©ŕë>F. »*2íľ¦íe»Ě8îěŠa!«ź2ň4É!żśÔD‹fwŕk:Öí<2Aµ5~ýÍ[}Ýň‚Q{dĆIYŇÔ$ź–ęáimŤ, ó ĘÚ +ĆćZ“ ç%FăĽf—“gu®ŔésVQ7°:¦uô}ę~K +†Źâh,67I©~?<ÝDĆ~¨rĺ®(1Ő/Á6Ŕăc$‡·ŐWáAŢöfăńĚÇŁŽL
Ne¤=¸9c‰´ćö(ţFň`Ý“Üf¨ĹćŘŕŔjůE8«gy0Âcj7:Űţľ>Rré†ÍaFpš”~×Wzj\oĄ,ş†5«\2đŘôď
ŔEæ¤.¬ŻĎŢḷěÎé˘kqÜÄ“ź,¨Đ1„8ýRĽ2«Şĺ™˙iűŽmóµ\5çőHâ'Żbꨳ±ßWÔU÷+dŇ'ÖĚ藝޼ AŁ‚i÷f\óµĂq¸˛ÚxT'źa„™ůT(8(Ŕ§;€®ČÜë:Ż”Ŕsއ]‘ďŢNdřYá cď^߸pn—¨łS‰ç†(„"BŰýç»ú}¸W%eÉPmcUS×·
P‰4|)´R¸Ĺ#*ĄĎń +ú…)ZÉą&ŐEŮ6{×Ý91ŻiîfčT)c2v+;Q–U˛ÁwÁ‰µ‚>16L“[W%¦3Ýy¸P–ŢÉâ˘*SĎH?wÜ>ťÁóaÚ¦şX]wîhę>"X““lŮ-*„aď´¬“"ţed$»š;RęŤm•*^úxż—N¸p
š®8l""çâŻM'„z‹bšŮ¸vonňg‘SťŮËE{ŔşŕŘWä ×,R|¦(×ýB{ĂYßK…*oŐy<Ť±Nţ5D¤ŮĆř·9Ä_ˇwBŚAĄGAŐü€/ÜŠçTdĺą5…îbęř•“9oTÓăőgľ\u0Üž˝ŮČĄ™ +‡A‡¸tŠ´+„—Žď˝<zŰWjnvăáÚa¸‡PÔŘ?69YFŮ$ôB„&{
®cű»ŤË{ +ĺÂVůů”ë7ľ$ÚĚ2…/%k>ă\ ±–ÎLFf.9‚˛kş“ů‹ĚKÎŇ&ç3÷Á“L¦€Ź™ł@Wř4< - ůÜ@eŚ˛Ó÷"3Ă3źC‚ˇ,8ëęţGôřŰĎĘżű0Öz˝ýÝý±7<ym¤(4Úę( +ř2–:2ťă± F^}®Ö†…Cŕ š8RßÓ»ĽóT~|ÔD%d2Ř8iÁ‰±s/R™´8ţcńM6Bw“*†ßv"?„1'l»¨üËĽ¸s'9˙¸đcbfK{cńF«˝Í~ŮxŠN_ôwÖvąźB*UĘů…śŠÖ®ŮüŤI•JR××6#˘íŘőÍŐw®öwŮŘÁ(Si÷@@§Ź( 铤ž.0>3ĐC$†ĚpÖdedY>PhŐ«žu"F˝Ł¦"–+-=ňa|I^98‘,Ąť8ň#'ŮLÍÔ.ĹÄŻ¶Ţ"q¶ŽˇÁgž=$ +gá~iöçŔ(Ć˝čń“D-Ȣ_ý"–°BÔ%zO® +Ú{-›ÉĹÝe©¨éVŐóCČ"«ž¶¸®„íú
š"6ŕ]Ă~_Ťáăs7~ĽjÝŁáO§€üŚóB=’¬ożŽŽx#>G<ɉ!˛1€žîUˇ!ďů<c˘Éo˛©Cd‰.yąxvť˛ü,zÔŤeŕŢßÝƬă–(Ň{]żčłÎßcG¤ Áćö)=ŹÄ0÷`6˛tI™¤?«/ËąuY·‰ČŽ':<U…˛Ýó`!zčČĘ^ńý>Šb/Ší::ŮŞžëË„TśFZ°&Ëł|™LwŁˇ…Ťvß°4PăăM~ŁÄÜnCŃ2Ä
×ič-‘˛ÜóUZÎ) ń½'7ťöĆ‹P ŘřE¨R=d’×8‡Íś·bű2 +Ŕe7Ňhi”ň:™nÔeŹj˘ß }CšŕňńÚŤ´1p +M4|rćRŢ|‰8Ŕď÷ŐŹôčÚŠlß"Šç[†<…=“ÝN ˝mČ#ěÎ’ß´ę6Ó‘{W10ťŇľąNTs#GęŘ©Ud ĺšŔ•=sĽ{» 6TŰÄ*ŰŞŚç@v iO~čSż#ď)÷ž«˛0cq).yŰ÷çUůfĄŘO(ÔĄÄ(íNjÔ÷E¨ĽI–VÁÂ÷SA®˝á^\iľuÍ´Boż•J+˝–!ŰÂvŕi0.łÂŔ(Ôg$vŘ'…×µuIĽŤâ;Ůó°V3ŐBěJ”f—¤Ű2›Űđ#§ řµČĆoHŐm:îĄ3ĺĐö985ŘăbŔŢd¸1§Yxó
%ΑŃCăűŽ}ĺŽ<ć‘«J"s–ńľ_ÍWŞŮő|nř˘~Ť¶PQĺ]yÍUcńá'ĄqaĚ‘d¬qÝa‘h>g›żŁŁ0»*śäq•'ď÷Jžá®DõŮÖ)‹ęR¸ăPM5Ľ±ęF8¶ëuzżŹbĎĘ$î!^á \ćŢ téÎţ¦ˇ#\{ˇ”®'V˝I&a8çř‡Fa÷F_)µéĘ<S<Áç`« 2rÂąťúěě{)ă®üŚ{+ˇTůa'5†=Ĺł“qę‹y+Úe¸ź©ŮV¸S¬‘EÂSZ»·®čÝK˙×ÆX_Zg#(8$ME†OÓ8Ş^…i˘ü/- sĚ2ę9ĄÚ’â^Şt4 +řČţ˘Ćť©ů‡űÄžŔŞŽ„Y€[înűg3Ç4#rŐe•rĚýŠź_Ph‰ĄI—2
_ÝH ç$S>G›Űü>ă\“śĆHş“űĐ˙!¶B@§Ü¨‚0n”Aú†3v˪щşÔf&6¸ßď5—pU7•
žo‡Ř’ĚŐM)¤kűK#řC8ăŮďo +«8 G$Ś±·”…%^5zŐTJřÚl…Ön=ĹX¬{Ę|xŇ_Q3#swĆZđÍ•ÂęÂ=îőE
éW-‚ól?Â@űÚYĘpxĄ¶ăťó¦-IBŁL÷]éoŚâKÉž+OËĂqŐîöťůř"EÂ`?Áŕµ+Fˇx÷qYPµń.WGQ¦ZjGů@żR‹±Z‹ąó‘ѬŕßÉL/Ć{O1^°¦1ś¶3Ę^(ŠÎüÎŐîÔŁ
Ó3“ML9˝7¦5účÜé4™6Ç[ß·Ó¸Eręňji-cBŞřŰ.±4©îÚ÷˙kăśš+a%gbŰ۶m۶m›ŰÚ±věLl۶'şçőV} źWWŻjńűŤ‰¦§ÁN·ut»ąhˇ4¤ť˙!Š@“ip8ެ=‚ŹI
[`§1Ľ[řk[3U1ŕéĘl‹"Ä+Ó÷. bť\uťŃŤ—Ěí°4Ę\Clşg‘Şo™ń#čó07ěëćňŽg<qđőĽ“#„»ä/ßđF‘őőY‡{Tçď’|2UŘĹč F2‰SXUGLş&z[ŰťëÁrě«2Qcńľ°dŹ‹zVÍ;ÇX6‰ĘŐśLD×0˘°ç|Hi‡°/ě +źr’”ĺ*éeŤŻđVšsÎ(˙XcÄ3ec'P‡öňŞâ +9V4×y´Wąj\>÷í.Ρ>Kă%™®%ăGLLâîŕˇxö=ťĎX`á¶ăÖŘĺ'nöˇöi笞 ‡›—z^>’'ÔčQúÜOËwX<É
ŕťŘŠ7Ĺ1ZüBéŔ›ŁVŞP}6şSˇn‰RËđŃ-˙ř·˙
”?ëĹ~ţÝ`”‚˝T´ĽpŇ€Zy˛5áH wacŰŔ>JLź/Ąw:ýŽ +t+„uěs ?3˙Ńű_MöwĘHő3Ľţ‰Í/‘dđ×”H<ÖŹ!÷Ĺ +
łJ…%HYdâl"͇/XŇw®ś™µ§oĄ“ąP; +Ki=bÇVŇîÝu‡ľ«~*ßĺź;-ś7
?_ŢDA4FŘo&fÝńŘ?ĐšűűŔőNEY¤ŞÍÔ˛Uí¤L’.˘j3b<ý¤vFzGněl\č4Kâ!|}Tš×)¬äX8PRťĘ1Z0,µźî¤bÔąD×ĘÔ¨BhËŇíÂ\9ów¸é#චć)tj÷&®ŃćÇ´ć%¦&0ŻpřŹžGr;Í’HĎĆ|"Ó&˘<3±6ÇŹ1óŇäZ”K<â> +í45ˇvxţzÁ㝯öuÝÎT7x‰ß¤¬¦aŻąůw™Í/ŠÂHÉÍ‚Â5ůl3żź=¸BGµ0,;ĄHšĎŐŚ;q{W%W™vŃ‚·3Đ6ő&ŠüÚ«7aqh*řá*‚'ȱ[«']×Ő¬ÚÍâď×I5l¦¦ĄôH+.ůCXĄ±ÖĎÁ4·1Y“iŃęщ;·Î
żĘga$Ócřl/źnÎ.ęhĘÉzDg2\g>S˘Ňŕ.•S1đßxz?µÍ\ +V"®¦Ů<LťÂh!śjŕĽzÓ©”oBŘýŵłŕłPßżęZÎ +ÍŢ<ąm+ą`ÄěW˛,sŰm]»Ś@5y‚Šé9ć“ŞĚÇś<~ÍQ¶|ćçކkF"D¤[Ő}ńŁ–"kTĘë3˙Wîą.^—IÇöÝt”ŽůçľÄ´qđ0é$‰TLŰ“`ŔëĂq˝Ćs$O[íŢťPP]1Xď*zK¨hQâ6·Đ%Oçž!+†ťlö}ůB:“+ć5¶ÎömϢŚ ŻpI´ůź˙ę*éđÇb’y6że”m5”Ţ+»
<·«ŃÓ?њϰŔ÷1–eTí…wĂň…Z˛Ŕ‹/ +Mk8Q¸ +a[+·é/ňů~TÜk˘¬ZÇbű]Â:¬gƱ™k3yóóÂ3îi—˦b¦ +Řĺ‚Oüg"7Ž"Ö†„+wvËp¨ž0oępĘç÷ü o˙nç
µ%/,ę4Í‹;sśX·*5!=YzGŚé•&Ś!ťA¶„¤_¬L\?ŽÖ:J‰±+4 |Jqśśď'Yř,Úňď4űšWÍŃć·hăŐ
[›ľéţBs´ÜffmŠWĘ5ŁôÉţ"ĺî©%rŐŚLݱďńźiÔU"Ňż®ĆľÂČn»c†>IŮRMë«ţvG;O´¨[=+ý׏WtţjO9gŢÜEËş!X*\Ě]˘‰ +ôź«Lp@´[xbŻVt@Ą(ă, +‚Úş(CƲů™đ˙ńđGçµÁé*.ÖüíQSăâ0€żP{ŘacŤŻYc\e
˙×ÓŰÖ2ćÄÉF=E6#âÓý6đÂM†·xÚx¶
„# ż|ůÉ.ý˘žq%ŐěÝĐĚúŤń1NC§!W`±ą¸!?3ÝĎÓ¦SuYĆz¬8Ô¶‰9™¸/ç¬ć™ÇÁŠß?ĚŻ¦ +–‡ú~ΕĽÖ 5úĆń÷›Ľó’UŻr ĚŕĹ´JŐdŤ’s¨\5G{żĆ˝aI€§Íő„ťĚ" ]ÓÉ*ślŻeß@yEhLňvOĹQť¤,ítë'YĹ/ßxż{XN…Ai‡š„»l©Ŕ®~¸‡ +x¤~ÂoA~UźĹ>Gž$őMŘ8[88˙N± šŮÂV`ÁGWxđdŘĽRí°Żż™7ŠýQĽń-\ú˘ě +DÂĆw©÷Rďőd–Żőâ‘ĺ˛ń_¦ý¶•ĄŚ_·Á1’=чˇ.3ô!ÔpkßřNjI×Ŕ +<kC&;Ţű –ĄË¨^@ü®1ďg®żÁ„ťd,P‰Ő7‡gę˘úĽ*Ü&®Jµđ–c6mŐ6NS3ź&XÚĚŠÉĹ€%ţ-rIčŤ<í]
"ŚM§MLđ„˘ä vŕáÍJ
EŻľpäĆŤ>ă×ءI!č:Š±*ä@ňMŁ‹JŢ{ţö +[9Úl@c"˙ú/sęYpiČ +c9ůůĆů:·M#űußm“A! CZ4hÁVa™Sr)t—ÇIôţç®űJÇ!,Ţ‹$«ŢU,w6>ăî†%ÔN·¨á%ĘŐ¸•˝Č‚‘©ć"~îËî#‘vXŰ®!†Ę»#ĹĐÍHF>‡•F§˝źż;*F>Hă-ÄGuĺw_©´L=)Îwřk$5;Ű5WÂĘ˝%+iv«ďžśHF\ý{
Ň3#ý•Ó)†{ÝAÓsˇ•Ăm^ °ęőą+GŇšďńT"\ŰFő8úaş¦,=]2†łAźýąV¬_ďă†3ş_n,ÄĎÓg:ąbă/Îo[úWb¤QJý,ËI
Öč/$é.ř)?›–ČňiMdH¸xŰűŠTé†ĐSÇsTr´.Á{Js˙›*i»#Îżj9YŠE!‡–ç>rŚ%çř>ź>ĂÓ9ĎUß—ŘKéö“M[íňl÷čk!ýjë‘YUŁEńŢÄ0ý{•Üë÷şÜ˛Í21ß’Aé*1#©r¸x…şŐř&S·8đÔ@:[,«Ś&@-űh›¨¨±ĚF!AKF®¬ˇÁ€©<—Ąó$c0=çaµ"9Ču-Ż¨ěÖësţý‘ĆäAXY|("¸ťĘ¦)ş8l{ÁÄ3“é^Ľ±/ý"ĹNE¸¶q]'pN… .ü şśîś4ęÎ$^9@wńpÄ{ÎRť•îčguÄoĘuT-§¬8Tđ;Ó="zK'sC¸igţ“«óo”˙ýfâ{°bZ=iZ +Ag9MGo#nˇčäß˝ÂŐjĄ;ś¤(ľő$:<ř˛WlGŃĹd<!‚ä^5=Ö˝3©ÝAWĆ;Ű„2\pZĆď`â2Í5N˘é‰ŐXp¬ťvę¤HnÎ|ü—®n"ŕţK\mM±O›„‘H+ęąJËĆť†ÁÂłčÁŇ„Ľ:gđDŔ¨Ľ@’8|ěť±Ö2Ż‹¶}±ÖĎg‰B_łÝ0ÜŐKŃٵÝÄâÄ"ĐF‘Č~ͲăučdŢćO]fJiU>B ŻÁ‰JŽÝ¨nC+{µ""Ą¶P‰xÉaEÇBÁŢGí¸&fţ¤H—âđU[0Ű2@ŕ ąh!b(ŢăąK°2°ßŰ(2Őş)‰č×l +Ń,FKh™8ÇGtŃ=5%ŐkŹf;ţúľĆŃłCa˙9śÉËÖÍëáPjwţüäÎńOG*HM8˝ćU•üp&Š{d[áqź.GÉ}üŹýż˝é“ý<ŠśÍ,Ú€±FŞˇÎßE}[ş‰›îîäăĺó8˛ P멄Ÿ+\×ġ¦–eÖü›ŁtZ)„0×é>yęžxˇ3{Ň7pq&ë+HÚŽ]ßp<NŚyćÍvŤOOéýüÔ×:äčëÖ”A&úZÔP1Śçá`.Rb?Ć #»˝Ô¨xG,óA'xgśÂ Ńŕy©Ę/řG߂‡Z“kě-â1†¤Dťńě/JhX÷+›d`);zÓYx:NVWÔĂ.zçŕ„[Y®qÖ‡ˇĽ/źČFň^As–ś‹§i8˘i5Us÷*ś‰~çÍ,śgiűµ[ëN™ó-WĆĽEyZ +·VĹ6ŤőüĐ%Ň +ŻjŰĘ›Ë_^˝h4ŠhA‹Ű"wöf1†ć¶8hŃą¶ś\8îët%Ţ}·śPJ
.BjłÇĂ]pI›hc[duŰGj—_‡Íľą‡÷sŁëĘťNô]_KP^&$ĂÍRHg;}ÜňŘ)řF·Ő«(¦5M>m§šOXłśŞh0™ŐZRŐL[Ů&·Č Ž,g·H\7—µM9ú(ő!pŁpŠăď%ť#lîđEüśnȎ䎓[q5@Tř¶ď\FÔđθŮîż“Äúg.AÄ=,]Ś!ňĹJuĆ:Đw¨`źĂAż?\{č˛<ůÖč»Xä’}AÝą#lÚCSŤkÎ{ĄRáÉôüd±a1w‘°ńžu(kÍ©‰Ź<‚«şˇ‚Ľ¸jşŕáAAU©š\‰7÷2 +úî,hS›`LŐ·AČĚ€×Ů·ňÖĄDĺŁ0ŻűŚ7Îź¨”´Ę˛›„ÇÓ€Ül–¬rV4˘Ňs´FžăGó1ŹÚ€ë–s‡y'NpˇęEÇëAFŁíŮŃÍŠjÂ®Ô +ä2QFŰŘ7=.çŔ'›iRĎ·żÍuK‹»s¬)Ż?*wŢe;ć—ˇAHcă`TčĎ1Ö•f<ę»vaqĽ`ý’Gĺib~Ş) ˝{fŻ:ĹcÖ +ŰéŹ +t˝ĘRxˇÓl^•^9–eV×8 +dŔ¤ě›ăôľNí
9ťŽq*Ż{ŢP|.G:mÇö%‘i›łeÇVÍBZĂŕP3ô¨ëzŃKżŁĂďăköÍËčIA{9s«|¸Ů¶ŤĂORŮ7&áĄd¶¨ŮL®3ņZďăpWg +L©Ç36YĂT€
‚ŻžOI—22‡çfŘŕgĂ;”·×Ý:őé×^˙‘öżá8ÓH—úżh
+ŐÓ–qËôHÚ^Éň4»_[ůó„§úe×â!€üÂú ’šíăäĚŽď°í/N +…}<ëßňl—‹KXüBÁ›e˙ňÓđ.ƦĘŔ”ý}]!˘ŹrDBěˇjZĹŰ,kô¦Ńťoă[ÇëęýŮ+«ZÎď;ýĘőGžB'˛ŢÂË?ô±šŮhôßË×gJņ=Ç+mNôv/źĆ©l‹jŕ´ÉůŰóN˝‹Ië]«ę¶7đ;…n2‚7µq˝ 5 Ü °\¸ńbfÁ)l'hR¶Ö@ëŘ»-ÓtśúďyÔ}Dňž¨©¦_©Ń“Š^©×#)Hś™*,Ť“Gî4LÇÁi†”ÜI?ńm6SCˇżo§ÜM¬Ś˙Ú€Ő!˘ÇlWOĄł˘ŐżXç˘]ŐĐ>ŐBžGś Ľ×ĹÖ(CîÝŻ3ÝŠrű_7™cťĆm"Ęú>…©ŕCú4ŮńŞę٢t\_Eä†ăĆ °÷Vľ¸b•rňł"]…Ś¦{»Ńlýu2św‘ŹDyšŹMPú'eB¤ď}P„Źu3qIkǬlC¦Ł
ŤÉlřd‡ôŇ”ŻN¸+qŕJ|©m|˝(‚˛2‘>'?ű{+,îĂTöč,^í‘g»†`oŐĐrŇ +”3ŠZĽÝŔu×ĹüFШöţQĚľ)B×*Ýé]
ôN»Íĺ`Ҭ‘Ű‚Jô ߤjŤű;A›Ű'Ţćiăţ¬Źe»×É\3!(U.ČP8(×óź.~n ý6Öî`ăŮ.4ÍV9wa¤ŢmČa¸ăj?ç,j±>kN âOŚ W§V»Ŕ}źj.·g +Óě§ÝŐAÝ!Ďő +Źřşpä˘k¨ň0aröĺâxą¸łăČ€RR7o đ2|Ř|lÍ,4ůsÚZĽĘÇüz>IÄ+^4Gň
ń0ăÂß}˝ňżBúů/
Ą˛ę
™ß—
Ű«yądţIŇV endstream endobj 659 0 obj << /Type /FontDescriptor -/FontName /ZSYAVJ+LMRoman17-Regular +/FontName /PVFVJD+LMRoman17-Regular /Flags 4 /FontBBox [-400 -286 1338 1125] /Ascent 683 @@ -3916,7 +3915,7 @@ endobj /ItalicAngle 0 /StemV 18 /XHeight 430 -/CharSet (/P/T/V/a/c/comma/d/e/f/g/h/i/k/m/n/o/one/parenleft/parenright/period/r/s/six/t/u/x/zero) +/CharSet (/P/T/V/a/c/comma/d/e/f/g/h/i/k/m/n/o/one/parenleft/parenright/period/r/s/seven/t/u/x/zero) /FontFile 658 0 R >> endobj @@ -5223,7 +5222,7 @@ endobj << /Type /Font /Subtype /Type1 -/BaseFont /ZSYAVJ+LMRoman17-Regular +/BaseFont /PVFVJD+LMRoman17-Regular /FontDescriptor 659 0 R /FirstChar 40 /LastChar 120 @@ -6412,8 +6411,8 @@ endobj << /Producer (MiKTeX pdfTeX-1.40.24) /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() -/CreationDate (D:20230113111724-03'00') -/ModDate (D:20230113111724-03'00') +/CreationDate (D:20230117125556-03'00') +/ModDate (D:20230117125556-03'00') /Trapped /False /PTEX.Fullbanner (This is MiKTeX-pdfTeX 4.13.0 (1.40.24)) >> @@ -6421,775 +6420,775 @@ endobj xref 0 765 0000000178 65535 f -0000125565 00000 n -0000125585 00000 n -0000125605 00000 n +0000125564 00000 n +0000125584 00000 n +0000125604 00000 n 0000000015 00000 n -0000026551 00000 n -0000525249 00000 n +0000026550 00000 n +0000525075 00000 n 0000000060 00000 n 0000000146 00000 n -0000026611 00000 n -0000525190 00000 n +0000026610 00000 n +0000525016 00000 n 0000000194 00000 n 0000000299 00000 n -0000026671 00000 n -0000525066 00000 n +0000026670 00000 n +0000524892 00000 n 0000000345 00000 n 0000000445 00000 n -0000031336 00000 n -0000524992 00000 n +0000031335 00000 n +0000524818 00000 n 0000000494 00000 n 0000000589 00000 n -0000035599 00000 n -0000524905 00000 n +0000035598 00000 n +0000524731 00000 n 0000000638 00000 n 0000000786 00000 n -0000035660 00000 n -0000524831 00000 n +0000035659 00000 n +0000524657 00000 n 0000000835 00000 n 0000000953 00000 n -0000035721 00000 n -0000524706 00000 n +0000035720 00000 n +0000524532 00000 n 0000000999 00000 n 0000001134 00000 n -0000040062 00000 n -0000524632 00000 n +0000040061 00000 n +0000524458 00000 n 0000001183 00000 n 0000001288 00000 n -0000045204 00000 n -0000524545 00000 n +0000045203 00000 n +0000524371 00000 n 0000001338 00000 n 0000001425 00000 n -0000048497 00000 n -0000524458 00000 n +0000048496 00000 n +0000524284 00000 n 0000001475 00000 n 0000001603 00000 n -0000048558 00000 n -0000524384 00000 n +0000048557 00000 n +0000524210 00000 n 0000001653 00000 n 0000001781 00000 n -0000059867 00000 n -0000524259 00000 n +0000059866 00000 n +0000524085 00000 n 0000001829 00000 n 0000001964 00000 n -0000059928 00000 n -0000524185 00000 n +0000059927 00000 n +0000524011 00000 n 0000002015 00000 n 0000002143 00000 n -0000063712 00000 n -0000524098 00000 n +0000063711 00000 n +0000523924 00000 n 0000002194 00000 n 0000002327 00000 n -0000063773 00000 n -0000524024 00000 n +0000063772 00000 n +0000523850 00000 n 0000002378 00000 n 0000002521 00000 n -0000063834 00000 n -0000523899 00000 n +0000063833 00000 n +0000523725 00000 n 0000002569 00000 n 0000002709 00000 n -0000067280 00000 n -0000523825 00000 n +0000067279 00000 n +0000523651 00000 n 0000002760 00000 n 0000002865 00000 n -0000067341 00000 n -0000523751 00000 n +0000067340 00000 n +0000523577 00000 n 0000002916 00000 n 0000003026 00000 n -0000067402 00000 n -0000523626 00000 n +0000067401 00000 n +0000523452 00000 n 0000003074 00000 n 0000003214 00000 n -0000067462 00000 n -0000523565 00000 n +0000067461 00000 n +0000523391 00000 n 0000003265 00000 n 0000003408 00000 n -0000071457 00000 n -0000523440 00000 n +0000071456 00000 n +0000523266 00000 n 0000003456 00000 n 0000003596 00000 n -0000071518 00000 n -0000523366 00000 n +0000071517 00000 n +0000523192 00000 n 0000003647 00000 n 0000003729 00000 n -0000072385 00000 n -0000523292 00000 n +0000072384 00000 n +0000523118 00000 n 0000003780 00000 n 0000003895 00000 n -0000072940 00000 n -0000523164 00000 n +0000072939 00000 n +0000522990 00000 n 0000003943 00000 n 0000004210 00000 n -0000073001 00000 n -0000523086 00000 n +0000073000 00000 n +0000522912 00000 n 0000004262 00000 n 0000004368 00000 n -0000077671 00000 n -0000523008 00000 n +0000077670 00000 n +0000522834 00000 n 0000004420 00000 n 0000004531 00000 n -0000078229 00000 n -0000522877 00000 n +0000078228 00000 n +0000522703 00000 n 0000004580 00000 n 0000004858 00000 n -0000078291 00000 n -0000522798 00000 n +0000078290 00000 n +0000522624 00000 n 0000004910 00000 n 0000005051 00000 n -0000083163 00000 n -0000522680 00000 n +0000083162 00000 n +0000522506 00000 n 0000005103 00000 n 0000005214 00000 n -0000083535 00000 n -0000522601 00000 n +0000083534 00000 n +0000522427 00000 n 0000005269 00000 n 0000005388 00000 n -0000090418 00000 n -0000522508 00000 n +0000090417 00000 n +0000522334 00000 n 0000005443 00000 n 0000005567 00000 n -0000097236 00000 n -0000522429 00000 n +0000097235 00000 n +0000522255 00000 n 0000005622 00000 n 0000005781 00000 n -0000108035 00000 n -0000522297 00000 n +0000108034 00000 n +0000522123 00000 n 0000005830 00000 n 0000006142 00000 n -0000108097 00000 n -0000522218 00000 n +0000108096 00000 n +0000522044 00000 n 0000006194 00000 n 0000006300 00000 n -0000108159 00000 n -0000522125 00000 n +0000108158 00000 n +0000521951 00000 n 0000006352 00000 n 0000006463 00000 n -0000117647 00000 n -0000522046 00000 n +0000117646 00000 n +0000521872 00000 n 0000006515 00000 n 0000006603 00000 n -0000117709 00000 n -0000521914 00000 n +0000117708 00000 n +0000521740 00000 n 0000006652 00000 n 0000006969 00000 n -0000121926 00000 n -0000521835 00000 n +0000121925 00000 n +0000521661 00000 n 0000007021 00000 n 0000007221 00000 n -0000121988 00000 n -0000521756 00000 n +0000121987 00000 n +0000521582 00000 n 0000007273 00000 n 0000007427 00000 n -0000125127 00000 n -0000521624 00000 n +0000125126 00000 n +0000521450 00000 n 0000007476 00000 n 0000007818 00000 n -0000125189 00000 n -0000521559 00000 n +0000125188 00000 n +0000521385 00000 n 0000007870 00000 n 0000008049 00000 n -0000125251 00000 n -0000521441 00000 n +0000125250 00000 n +0000521267 00000 n 0000008098 00000 n 0000008450 00000 n -0000125313 00000 n -0000521376 00000 n +0000125312 00000 n +0000521202 00000 n 0000008502 00000 n 0000008666 00000 n -0000013195 00000 n +0000013194 00000 n 0000000180 00000 f -0000013534 00000 n +0000013533 00000 n 0000000182 00000 f -0000013686 00000 n +0000013685 00000 n 0000000184 00000 f -0000013840 00000 n +0000013839 00000 n 0000000186 00000 f -0000013991 00000 n +0000013990 00000 n 0000000188 00000 f -0000014146 00000 n +0000014145 00000 n 0000000190 00000 f -0000014301 00000 n +0000014300 00000 n 0000000192 00000 f -0000014456 00000 n +0000014455 00000 n 0000000194 00000 f -0000014606 00000 n +0000014605 00000 n 0000000196 00000 f -0000014761 00000 n +0000014760 00000 n 0000000198 00000 f -0000014917 00000 n +0000014916 00000 n 0000000200 00000 f -0000015073 00000 n +0000015072 00000 n 0000000202 00000 f -0000015229 00000 n +0000015228 00000 n 0000000204 00000 f -0000015383 00000 n +0000015382 00000 n 0000000206 00000 f -0000015539 00000 n +0000015538 00000 n 0000000208 00000 f -0000015695 00000 n +0000015694 00000 n 0000000210 00000 f -0000015852 00000 n +0000015851 00000 n 0000000212 00000 f -0000016006 00000 n +0000016005 00000 n 0000000214 00000 f -0000016162 00000 n +0000016161 00000 n 0000000216 00000 f -0000016319 00000 n +0000016318 00000 n 0000000218 00000 f -0000016473 00000 n +0000016472 00000 n 0000000220 00000 f -0000016630 00000 n +0000016629 00000 n 0000000222 00000 f -0000016784 00000 n +0000016783 00000 n 0000000224 00000 f -0000016941 00000 n +0000016940 00000 n 0000000226 00000 f -0000017097 00000 n +0000017096 00000 n 0000000228 00000 f -0000017247 00000 n +0000017246 00000 n 0000000230 00000 f -0000017402 00000 n +0000017401 00000 n 0000000232 00000 f -0000023679 00000 n +0000023678 00000 n 0000000234 00000 f -0000023832 00000 n +0000023831 00000 n 0000000247 00000 f -0000017680 00000 n +0000017679 00000 n 0000008716 00000 n -0000017556 00000 n -0000017618 00000 n -0000505394 00000 n -0000504280 00000 n -0000500941 00000 n -0000503166 00000 n -0000515441 00000 n -0000502055 00000 n -0000520762 00000 n -0000023989 00000 n +0000017555 00000 n +0000017617 00000 n +0000505220 00000 n +0000504106 00000 n +0000500767 00000 n +0000502992 00000 n +0000515267 00000 n +0000501881 00000 n +0000520588 00000 n +0000023988 00000 n 0000000249 00000 f -0000024146 00000 n +0000024145 00000 n 0000000251 00000 f -0000024306 00000 n +0000024305 00000 n 0000000253 00000 f -0000024465 00000 n +0000024464 00000 n 0000000255 00000 f -0000024625 00000 n +0000024624 00000 n 0000000257 00000 f -0000024779 00000 n +0000024778 00000 n 0000000259 00000 f -0000024935 00000 n +0000024934 00000 n 0000000261 00000 f -0000025092 00000 n +0000025091 00000 n 0000000263 00000 f -0000025247 00000 n +0000025246 00000 n 0000000265 00000 f -0000025401 00000 n +0000025400 00000 n 0000000267 00000 f -0000025558 00000 n +0000025557 00000 n 0000000269 00000 f -0000025715 00000 n +0000025714 00000 n 0000000271 00000 f -0000025869 00000 n +0000025868 00000 n 0000000273 00000 f -0000026025 00000 n +0000026024 00000 n 0000000000 00000 f -0000026332 00000 n -0000026732 00000 n -0000023404 00000 n -0000017869 00000 n -0000026489 00000 n -0000026179 00000 n -0000507622 00000 n -0000506508 00000 n -0000514324 00000 n -0000510971 00000 n -0000509854 00000 n -0000031397 00000 n -0000031155 00000 n -0000026937 00000 n -0000031274 00000 n -0000518625 00000 n -0000517385 00000 n -0000516318 00000 n -0000035782 00000 n -0000035418 00000 n -0000031614 00000 n -0000035537 00000 n -0000512087 00000 n -0000040309 00000 n -0000039881 00000 n -0000035987 00000 n -0000040000 00000 n -0000040123 00000 n -0000040185 00000 n -0000040247 00000 n -0000520572 00000 n -0000045761 00000 n -0000044713 00000 n -0000040554 00000 n -0000044832 00000 n -0000044894 00000 n -0000044956 00000 n -0000045018 00000 n -0000045080 00000 n -0000045142 00000 n -0000045265 00000 n -0000045327 00000 n -0000045389 00000 n -0000045451 00000 n -0000045513 00000 n -0000045575 00000 n -0000045637 00000 n -0000045699 00000 n -0000050291 00000 n -0000048316 00000 n -0000045992 00000 n -0000048435 00000 n -0000048619 00000 n -0000048681 00000 n -0000048742 00000 n -0000048804 00000 n -0000048866 00000 n -0000048928 00000 n -0000048990 00000 n -0000049052 00000 n -0000049114 00000 n -0000049176 00000 n -0000049238 00000 n -0000049300 00000 n -0000049362 00000 n -0000049424 00000 n -0000049486 00000 n -0000049548 00000 n -0000049610 00000 n -0000049672 00000 n -0000049734 00000 n -0000049796 00000 n -0000049857 00000 n -0000049919 00000 n -0000049981 00000 n -0000050043 00000 n -0000050105 00000 n -0000050167 00000 n -0000050229 00000 n -0000520879 00000 n -0000053627 00000 n -0000052271 00000 n -0000050509 00000 n -0000052390 00000 n -0000052452 00000 n -0000052514 00000 n -0000052576 00000 n -0000052638 00000 n -0000052700 00000 n -0000052762 00000 n -0000052824 00000 n -0000052886 00000 n -0000052947 00000 n -0000053009 00000 n -0000053070 00000 n -0000053132 00000 n -0000053193 00000 n -0000053255 00000 n -0000053317 00000 n -0000053379 00000 n -0000053441 00000 n -0000053503 00000 n -0000053565 00000 n -0000059989 00000 n -0000056469 00000 n -0000053818 00000 n -0000056588 00000 n -0000056650 00000 n -0000056711 00000 n -0000056773 00000 n -0000056835 00000 n -0000056897 00000 n -0000056959 00000 n -0000057021 00000 n -0000057083 00000 n -0000057145 00000 n -0000057207 00000 n -0000057269 00000 n -0000057331 00000 n -0000057393 00000 n -0000057454 00000 n -0000057516 00000 n -0000057576 00000 n -0000057638 00000 n -0000057699 00000 n -0000057761 00000 n -0000057823 00000 n -0000057885 00000 n -0000057947 00000 n -0000058009 00000 n -0000058071 00000 n -0000058133 00000 n -0000058195 00000 n -0000058257 00000 n -0000058319 00000 n -0000058381 00000 n -0000058443 00000 n -0000058504 00000 n -0000058566 00000 n -0000058628 00000 n -0000058690 00000 n -0000058752 00000 n -0000058813 00000 n -0000058875 00000 n -0000058937 00000 n -0000058999 00000 n -0000059061 00000 n -0000059123 00000 n -0000059185 00000 n -0000059247 00000 n -0000059309 00000 n -0000059371 00000 n -0000059433 00000 n -0000059495 00000 n -0000059557 00000 n -0000059619 00000 n -0000059681 00000 n -0000059743 00000 n -0000059805 00000 n -0000519597 00000 n -0000063895 00000 n -0000063531 00000 n -0000060208 00000 n -0000063650 00000 n -0000067523 00000 n -0000067099 00000 n -0000064059 00000 n -0000067218 00000 n -0000513203 00000 n -0000073063 00000 n -0000071276 00000 n -0000067727 00000 n -0000071395 00000 n -0000071579 00000 n -0000071641 00000 n -0000071703 00000 n -0000071765 00000 n -0000071827 00000 n -0000071889 00000 n -0000071951 00000 n -0000072013 00000 n -0000072075 00000 n -0000072137 00000 n -0000072199 00000 n -0000072261 00000 n -0000072323 00000 n -0000072446 00000 n -0000072508 00000 n -0000072570 00000 n -0000072632 00000 n -0000072694 00000 n -0000072755 00000 n -0000072817 00000 n -0000072878 00000 n -0000077296 00000 n -0000077452 00000 n -0000078352 00000 n -0000077149 00000 n -0000073321 00000 n -0000077609 00000 n -0000077733 00000 n -0000077795 00000 n -0000077857 00000 n -0000077919 00000 n -0000077981 00000 n -0000078043 00000 n -0000078105 00000 n -0000078167 00000 n -0000520996 00000 n -0000082632 00000 n -0000082788 00000 n -0000084527 00000 n -0000082477 00000 n -0000078570 00000 n -0000083101 00000 n -0000083225 00000 n -0000083287 00000 n -0000083349 00000 n -0000083411 00000 n -0000083473 00000 n -0000082944 00000 n -0000083597 00000 n -0000083659 00000 n -0000083721 00000 n -0000083783 00000 n -0000083845 00000 n -0000083907 00000 n -0000083969 00000 n -0000084031 00000 n -0000084093 00000 n -0000084155 00000 n -0000084217 00000 n -0000084279 00000 n -0000084341 00000 n -0000084403 00000 n -0000084465 00000 n -0000508737 00000 n -0000088725 00000 n -0000089038 00000 n -0000089194 00000 n -0000089353 00000 n -0000089669 00000 n -0000089823 00000 n -0000089978 00000 n -0000090136 00000 n -0000091717 00000 n -0000088514 00000 n -0000084760 00000 n -0000090294 00000 n -0000090356 00000 n -0000088882 00000 n -0000089512 00000 n -0000090480 00000 n -0000090542 00000 n -0000090604 00000 n -0000090666 00000 n -0000090728 00000 n -0000090790 00000 n -0000090852 00000 n -0000090914 00000 n -0000090976 00000 n -0000091038 00000 n -0000091100 00000 n -0000091162 00000 n -0000091223 00000 n -0000091285 00000 n -0000091346 00000 n -0000091408 00000 n -0000091469 00000 n -0000091531 00000 n -0000091593 00000 n -0000091655 00000 n -0000097359 00000 n -0000095695 00000 n -0000091948 00000 n -0000095814 00000 n -0000095876 00000 n -0000095938 00000 n -0000096000 00000 n -0000096062 00000 n -0000096124 00000 n -0000096186 00000 n -0000096248 00000 n -0000096310 00000 n -0000096371 00000 n -0000096433 00000 n -0000096493 00000 n -0000096555 00000 n -0000096616 00000 n -0000096678 00000 n -0000096740 00000 n -0000096802 00000 n -0000096864 00000 n -0000096926 00000 n -0000096988 00000 n -0000097050 00000 n -0000097112 00000 n -0000097174 00000 n -0000097297 00000 n -0000101619 00000 n -0000101778 00000 n -0000102095 00000 n -0000102252 00000 n -0000107345 00000 n -0000107502 00000 n -0000103493 00000 n -0000101440 00000 n -0000097564 00000 n -0000102566 00000 n -0000102628 00000 n -0000102689 00000 n -0000102750 00000 n -0000102812 00000 n -0000102874 00000 n -0000102936 00000 n -0000102998 00000 n -0000103060 00000 n -0000103122 00000 n -0000103184 00000 n -0000103246 00000 n -0000103308 00000 n -0000103370 00000 n -0000103431 00000 n -0000101937 00000 n -0000102409 00000 n -0000107659 00000 n -0000107816 00000 n -0000108221 00000 n -0000107182 00000 n -0000103685 00000 n -0000107973 00000 n -0000112970 00000 n -0000112789 00000 n -0000108425 00000 n -0000112908 00000 n -0000521113 00000 n -0000117771 00000 n -0000117344 00000 n -0000113173 00000 n -0000117463 00000 n -0000117525 00000 n -0000117586 00000 n -0000122050 00000 n -0000121745 00000 n -0000117975 00000 n -0000121864 00000 n -0000125375 00000 n -0000124946 00000 n -0000122240 00000 n -0000125065 00000 n -0000499095 00000 n -0000125658 00000 n -0000126179 00000 n -0000499917 00000 n -0000126426 00000 n -0000126571 00000 n -0000126594 00000 n -0000499673 00000 n -0000126833 00000 n -0000499748 00000 n -0000126994 00000 n -0000499854 00000 n -0000127602 00000 n -0000127627 00000 n -0000128180 00000 n -0000128725 00000 n -0000129578 00000 n -0000129603 00000 n -0000130056 00000 n -0000130501 00000 n -0000130864 00000 n -0000131400 00000 n -0000131713 00000 n -0000132287 00000 n -0000132786 00000 n -0000154292 00000 n -0000154535 00000 n -0000176070 00000 n -0000176335 00000 n -0000178920 00000 n -0000179171 00000 n -0000208130 00000 n -0000208481 00000 n -0000242210 00000 n -0000242738 00000 n -0000268454 00000 n -0000268772 00000 n -0000283321 00000 n -0000283553 00000 n -0000302528 00000 n -0000302844 00000 n -0000320381 00000 n -0000320660 00000 n -0000344956 00000 n -0000345303 00000 n -0000371285 00000 n -0000371659 00000 n -0000374330 00000 n -0000374613 00000 n -0000400511 00000 n -0000400799 00000 n -0000434513 00000 n -0000434807 00000 n -0000468365 00000 n -0000469012 00000 n -0000498721 00000 n -0000500016 00000 n -0000501130 00000 n -0000502244 00000 n -0000503358 00000 n -0000504472 00000 n -0000505586 00000 n -0000506698 00000 n -0000507813 00000 n -0000508928 00000 n -0000510045 00000 n -0000511162 00000 n -0000512277 00000 n -0000513400 00000 n -0000514515 00000 n -0000515637 00000 n -0000516514 00000 n -0000517582 00000 n -0000518816 00000 n -0000519790 00000 n -0000521214 00000 n -0000521300 00000 n -0000525358 00000 n -0000525538 00000 n -0000525716 00000 n +0000026331 00000 n +0000026731 00000 n +0000023403 00000 n +0000017868 00000 n +0000026488 00000 n +0000026178 00000 n +0000507448 00000 n +0000506334 00000 n +0000514150 00000 n +0000510797 00000 n +0000509680 00000 n +0000031396 00000 n +0000031154 00000 n +0000026936 00000 n +0000031273 00000 n +0000518451 00000 n +0000517211 00000 n +0000516144 00000 n +0000035781 00000 n +0000035417 00000 n +0000031613 00000 n +0000035536 00000 n +0000511913 00000 n +0000040308 00000 n +0000039880 00000 n +0000035986 00000 n +0000039999 00000 n +0000040122 00000 n +0000040184 00000 n +0000040246 00000 n +0000520398 00000 n +0000045760 00000 n +0000044712 00000 n +0000040553 00000 n +0000044831 00000 n +0000044893 00000 n +0000044955 00000 n +0000045017 00000 n +0000045079 00000 n +0000045141 00000 n +0000045264 00000 n +0000045326 00000 n +0000045388 00000 n +0000045450 00000 n +0000045512 00000 n +0000045574 00000 n +0000045636 00000 n +0000045698 00000 n +0000050290 00000 n +0000048315 00000 n +0000045991 00000 n +0000048434 00000 n +0000048618 00000 n +0000048680 00000 n +0000048741 00000 n +0000048803 00000 n +0000048865 00000 n +0000048927 00000 n +0000048989 00000 n +0000049051 00000 n +0000049113 00000 n +0000049175 00000 n +0000049237 00000 n +0000049299 00000 n +0000049361 00000 n +0000049423 00000 n +0000049485 00000 n +0000049547 00000 n +0000049609 00000 n +0000049671 00000 n +0000049733 00000 n +0000049795 00000 n +0000049856 00000 n +0000049918 00000 n +0000049980 00000 n +0000050042 00000 n +0000050104 00000 n +0000050166 00000 n +0000050228 00000 n +0000520705 00000 n +0000053626 00000 n +0000052270 00000 n +0000050508 00000 n +0000052389 00000 n +0000052451 00000 n +0000052513 00000 n +0000052575 00000 n +0000052637 00000 n +0000052699 00000 n +0000052761 00000 n +0000052823 00000 n +0000052885 00000 n +0000052946 00000 n +0000053008 00000 n +0000053069 00000 n +0000053131 00000 n +0000053192 00000 n +0000053254 00000 n +0000053316 00000 n +0000053378 00000 n +0000053440 00000 n +0000053502 00000 n +0000053564 00000 n +0000059988 00000 n +0000056468 00000 n +0000053817 00000 n +0000056587 00000 n +0000056649 00000 n +0000056710 00000 n +0000056772 00000 n +0000056834 00000 n +0000056896 00000 n +0000056958 00000 n +0000057020 00000 n +0000057082 00000 n +0000057144 00000 n +0000057206 00000 n +0000057268 00000 n +0000057330 00000 n +0000057392 00000 n +0000057453 00000 n +0000057515 00000 n +0000057575 00000 n +0000057637 00000 n +0000057698 00000 n +0000057760 00000 n +0000057822 00000 n +0000057884 00000 n +0000057946 00000 n +0000058008 00000 n +0000058070 00000 n +0000058132 00000 n +0000058194 00000 n +0000058256 00000 n +0000058318 00000 n +0000058380 00000 n +0000058442 00000 n +0000058503 00000 n +0000058565 00000 n +0000058627 00000 n +0000058689 00000 n +0000058751 00000 n +0000058812 00000 n +0000058874 00000 n +0000058936 00000 n +0000058998 00000 n +0000059060 00000 n +0000059122 00000 n +0000059184 00000 n +0000059246 00000 n +0000059308 00000 n +0000059370 00000 n +0000059432 00000 n +0000059494 00000 n +0000059556 00000 n +0000059618 00000 n +0000059680 00000 n +0000059742 00000 n +0000059804 00000 n +0000519423 00000 n +0000063894 00000 n +0000063530 00000 n +0000060207 00000 n +0000063649 00000 n +0000067522 00000 n +0000067098 00000 n +0000064058 00000 n +0000067217 00000 n +0000513029 00000 n +0000073062 00000 n +0000071275 00000 n +0000067726 00000 n +0000071394 00000 n +0000071578 00000 n +0000071640 00000 n +0000071702 00000 n +0000071764 00000 n +0000071826 00000 n +0000071888 00000 n +0000071950 00000 n +0000072012 00000 n +0000072074 00000 n +0000072136 00000 n +0000072198 00000 n +0000072260 00000 n +0000072322 00000 n +0000072445 00000 n +0000072507 00000 n +0000072569 00000 n +0000072631 00000 n +0000072693 00000 n +0000072754 00000 n +0000072816 00000 n +0000072877 00000 n +0000077295 00000 n +0000077451 00000 n +0000078351 00000 n +0000077148 00000 n +0000073320 00000 n +0000077608 00000 n +0000077732 00000 n +0000077794 00000 n +0000077856 00000 n +0000077918 00000 n +0000077980 00000 n +0000078042 00000 n +0000078104 00000 n +0000078166 00000 n +0000520822 00000 n +0000082631 00000 n +0000082787 00000 n +0000084526 00000 n +0000082476 00000 n +0000078569 00000 n +0000083100 00000 n +0000083224 00000 n +0000083286 00000 n +0000083348 00000 n +0000083410 00000 n +0000083472 00000 n +0000082943 00000 n +0000083596 00000 n +0000083658 00000 n +0000083720 00000 n +0000083782 00000 n +0000083844 00000 n +0000083906 00000 n +0000083968 00000 n +0000084030 00000 n +0000084092 00000 n +0000084154 00000 n +0000084216 00000 n +0000084278 00000 n +0000084340 00000 n +0000084402 00000 n +0000084464 00000 n +0000508563 00000 n +0000088724 00000 n +0000089037 00000 n +0000089193 00000 n +0000089352 00000 n +0000089668 00000 n +0000089822 00000 n +0000089977 00000 n +0000090135 00000 n +0000091716 00000 n +0000088513 00000 n +0000084759 00000 n +0000090293 00000 n +0000090355 00000 n +0000088881 00000 n +0000089511 00000 n +0000090479 00000 n +0000090541 00000 n +0000090603 00000 n +0000090665 00000 n +0000090727 00000 n +0000090789 00000 n +0000090851 00000 n +0000090913 00000 n +0000090975 00000 n +0000091037 00000 n +0000091099 00000 n +0000091161 00000 n +0000091222 00000 n +0000091284 00000 n +0000091345 00000 n +0000091407 00000 n +0000091468 00000 n +0000091530 00000 n +0000091592 00000 n +0000091654 00000 n +0000097358 00000 n +0000095694 00000 n +0000091947 00000 n +0000095813 00000 n +0000095875 00000 n +0000095937 00000 n +0000095999 00000 n +0000096061 00000 n +0000096123 00000 n +0000096185 00000 n +0000096247 00000 n +0000096309 00000 n +0000096370 00000 n +0000096432 00000 n +0000096492 00000 n +0000096554 00000 n +0000096615 00000 n +0000096677 00000 n +0000096739 00000 n +0000096801 00000 n +0000096863 00000 n +0000096925 00000 n +0000096987 00000 n +0000097049 00000 n +0000097111 00000 n +0000097173 00000 n +0000097296 00000 n +0000101618 00000 n +0000101777 00000 n +0000102094 00000 n +0000102251 00000 n +0000107344 00000 n +0000107501 00000 n +0000103492 00000 n +0000101439 00000 n +0000097563 00000 n +0000102565 00000 n +0000102627 00000 n +0000102688 00000 n +0000102749 00000 n +0000102811 00000 n +0000102873 00000 n +0000102935 00000 n +0000102997 00000 n +0000103059 00000 n +0000103121 00000 n +0000103183 00000 n +0000103245 00000 n +0000103307 00000 n +0000103369 00000 n +0000103430 00000 n +0000101936 00000 n +0000102408 00000 n +0000107658 00000 n +0000107815 00000 n +0000108220 00000 n +0000107181 00000 n +0000103684 00000 n +0000107972 00000 n +0000112969 00000 n +0000112788 00000 n +0000108424 00000 n +0000112907 00000 n +0000520939 00000 n +0000117770 00000 n +0000117343 00000 n +0000113172 00000 n +0000117462 00000 n +0000117524 00000 n +0000117585 00000 n +0000122049 00000 n +0000121744 00000 n +0000117974 00000 n +0000121863 00000 n +0000125374 00000 n +0000124945 00000 n +0000122239 00000 n +0000125064 00000 n +0000498921 00000 n +0000125657 00000 n +0000126178 00000 n +0000499743 00000 n +0000126425 00000 n +0000126570 00000 n +0000126593 00000 n +0000499499 00000 n +0000126832 00000 n +0000499574 00000 n +0000126993 00000 n +0000499680 00000 n +0000127601 00000 n +0000127626 00000 n +0000128179 00000 n +0000128724 00000 n +0000129577 00000 n +0000129602 00000 n +0000130055 00000 n +0000130500 00000 n +0000130863 00000 n +0000131399 00000 n +0000131712 00000 n +0000132286 00000 n +0000132785 00000 n +0000154291 00000 n +0000154534 00000 n +0000176069 00000 n +0000176334 00000 n +0000178919 00000 n +0000179170 00000 n +0000208129 00000 n +0000208480 00000 n +0000242209 00000 n +0000242737 00000 n +0000268278 00000 n +0000268598 00000 n +0000283147 00000 n +0000283379 00000 n +0000302354 00000 n +0000302670 00000 n +0000320207 00000 n +0000320486 00000 n +0000344782 00000 n +0000345129 00000 n +0000371111 00000 n +0000371485 00000 n +0000374156 00000 n +0000374439 00000 n +0000400337 00000 n +0000400625 00000 n +0000434339 00000 n +0000434633 00000 n +0000468191 00000 n +0000468838 00000 n +0000498547 00000 n +0000499842 00000 n +0000500956 00000 n +0000502070 00000 n +0000503184 00000 n +0000504298 00000 n +0000505412 00000 n +0000506524 00000 n +0000507639 00000 n +0000508754 00000 n +0000509871 00000 n +0000510988 00000 n +0000512103 00000 n +0000513226 00000 n +0000514341 00000 n +0000515463 00000 n +0000516340 00000 n +0000517408 00000 n +0000518642 00000 n +0000519616 00000 n +0000521040 00000 n +0000521126 00000 n +0000525184 00000 n +0000525364 00000 n +0000525542 00000 n +0000525720 00000 n 0000525894 00000 n -0000526068 00000 n -0000526238 00000 n -0000526422 00000 n -0000526645 00000 n -0000526868 00000 n -0000527082 00000 n -0000527300 00000 n -0000527517 00000 n -0000527735 00000 n -0000527951 00000 n -0000528169 00000 n -0000528386 00000 n -0000528604 00000 n -0000528822 00000 n -0000529039 00000 n -0000529256 00000 n -0000529474 00000 n -0000529691 00000 n -0000529907 00000 n -0000530125 00000 n -0000530343 00000 n -0000530561 00000 n -0000530777 00000 n -0000530994 00000 n -0000531207 00000 n -0000531417 00000 n -0000531627 00000 n -0000531837 00000 n -0000532047 00000 n -0000532257 00000 n -0000532467 00000 n -0000532677 00000 n -0000532887 00000 n -0000533076 00000 n -0000533246 00000 n -0000533415 00000 n -0000533577 00000 n -0000533787 00000 n -0000533978 00000 n -0000534175 00000 n -0000534385 00000 n -0000534605 00000 n -0000534827 00000 n -0000535047 00000 n -0000535268 00000 n -0000535378 00000 n -0000535496 00000 n -0000535617 00000 n -0000535738 00000 n -0000535859 00000 n -0000535979 00000 n -0000536098 00000 n -0000536216 00000 n -0000536339 00000 n -0000536428 00000 n -0000536544 00000 n -0000536644 00000 n -0000536733 00000 n -0000536771 00000 n -0000536899 00000 n +0000526064 00000 n +0000526248 00000 n +0000526471 00000 n +0000526694 00000 n +0000526908 00000 n +0000527126 00000 n +0000527343 00000 n +0000527561 00000 n +0000527777 00000 n +0000527995 00000 n +0000528212 00000 n +0000528430 00000 n +0000528648 00000 n +0000528865 00000 n +0000529082 00000 n +0000529300 00000 n +0000529517 00000 n +0000529733 00000 n +0000529951 00000 n +0000530169 00000 n +0000530387 00000 n +0000530603 00000 n +0000530820 00000 n +0000531033 00000 n +0000531243 00000 n +0000531453 00000 n +0000531663 00000 n +0000531873 00000 n +0000532083 00000 n +0000532293 00000 n +0000532503 00000 n +0000532713 00000 n +0000532902 00000 n +0000533072 00000 n +0000533241 00000 n +0000533403 00000 n +0000533613 00000 n +0000533804 00000 n +0000534001 00000 n +0000534211 00000 n +0000534431 00000 n +0000534653 00000 n +0000534873 00000 n +0000535094 00000 n +0000535204 00000 n +0000535322 00000 n +0000535443 00000 n +0000535564 00000 n +0000535685 00000 n +0000535805 00000 n +0000535924 00000 n +0000536042 00000 n +0000536165 00000 n +0000536254 00000 n +0000536370 00000 n +0000536470 00000 n +0000536559 00000 n +0000536597 00000 n +0000536725 00000 n trailer << /Size 765 /Root 763 0 R /Info 764 0 R -/ID [<C9538CA1CF21543D35D755BBB491BEDC> <C9538CA1CF21543D35D755BBB491BEDC>] >> +/ID [<ED4BAD1F122AADAD05D542AC9440BA63> <ED4BAD1F122AADAD05D542AC9440BA63>] >> startxref -537173 +536999 %%EOF diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex index 61fce8c768..d02cdeae22 100644 --- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex +++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -39,7 +39,8 @@ \fi \dcAuthor{Alceu Frigeri} -\dcDate{December 2022} +%\dcDate{January 2023} +\dcDate{\monthname\space\number\year} \makeatletter diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty index 40b21d272f..849379e0c9 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-abnt} \def\tc@tmp@altpackname{ufrgsccaabnt} \def\tc@tmp@packdesc{UFRGS/CCA ABNT layout} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] @@ -217,6 +217,7 @@ \dottedcontents{figure}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} \dottedcontents{table}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} +\renewcommand{\restoreapp}{} % to reset appendix counters each time (from appendix doc) \RenewDocumentEnvironment{appendix}{O{\defappendixpagename}O{\defappendixname}}{% \titleformat{\chapter}{\bfseries\Large\sffamily}{#2 \thechapter\hspace{1.5ex}-}{2ex}{\MakeUppercase}% \titlecontents{chapter}[\tc@lblmargin]{\vspace{3mm}\sc}{\hspace{-\tc@lblmargin}{#2~\thecontentslabel\ -\enspace}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\normalsize\normalfont\contentspage} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty index ed6cd3a304..3ed99c18d1 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-coord} \def\tc@tmp@altpackname{ufrgsccacoord} \def\tc@tmp@packdesc{UFRGS/CCA coord commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty index fce9b66cd6..8851d12122 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-core} \def\tc@tmp@altpackname{ufrgsccacore} \def\tc@tmp@packdesc{UFRGS/CCA core commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty index 0af3d8eab2..ac8cd4a7a3 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-cover} \def\tc@tmp@altpackname{ufrgsccacover} \def\tc@tmp@packdesc{UFRGS/CCA cover commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty index 62437c5456..d7861c137c 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-curr-graph} \def\tc@tmp@altpackname{tccurrgraph} \def\tc@tmp@packdesc{UFRGS/CCA graph curricula commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6alpha} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7alpha} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty index d3f7d6d2de..b53d7fa259 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-curr-tab} \def\tc@tmp@altpackname{ufrgsccacurrtab} \def\tc@tmp@packdesc{UFRGS/CCA curricula tabular commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6alpha} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7alpha} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty index 6a3cafa28d..631e66b950 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-curr} \def\tc@tmp@altpackname{ufrgsccacurr} \def\tc@tmp@packdesc{UFRGS/CCA curricula commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6beta} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7beta} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def index cf98baa641..b95e6805a7 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,9 +12,9 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% -%% The list of files that compose this work can be found in the README.md file at +%% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca %% %%%============================================================================== @@ -23,12 +23,11 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== \makeatletter - \def\tc@tmp@packname{ufrgscca-en-base} \def\tc@tmp@altpackname{ufrgsccaenbase} \def\tc@tmp@packdesc{UFRGS/CCA English base defs} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def index 737571226a..4f1a1452c1 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,9 +12,9 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% -%% The list of files that compose this work can be found in the README.md file at +%% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca %% %%%============================================================================== @@ -23,12 +23,11 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== \makeatletter - \def\tc@tmp@packname{ufrgscca-en-coord} \def\tc@tmp@altpackname{ufrgsccaencoord} \def\tc@tmp@packdesc{UFRGS/CCA English coord defs} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def index 1ee3b969ee..a4eb1e1c2f 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,9 +12,9 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% -%% The list of files that compose this work can be found in the README.md file at +%% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca %% %%%============================================================================== @@ -23,12 +23,11 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== \makeatletter - \def\tc@tmp@packname{ufrgscca-en-core} \def\tc@tmp@altpackname{ufrgsccaencore} \def\tc@tmp@packdesc{UFRGS/CCA English core defs} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def index e7530a66cf..07037e65a1 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,9 +12,9 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% -%% The list of files that compose this work can be found in the README.md file at +%% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca %% %%%============================================================================== @@ -23,12 +23,11 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== \makeatletter - \def\tc@tmp@packname{ufrgscca-en-forms} \def\tc@tmp@altpackname{ufrgsccaenforms} \def\tc@tmp@packdesc{UFRGS/CCA English forms defs} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty index ad8ab1604b..f511db2c89 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-forms} \def\tc@tmp@altpackname{ufrgsccaforms} \def\tc@tmp@packdesc{UFRGS/CCA forms commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty index 01374c129f..365ceea3c3 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-gen} \def\tc@tmp@altpackname{ufrgsccagen} \def\tc@tmp@packdesc{UFRGS/CCA generic/miscellany commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty index 27c9cb9484..e85b553335 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-lists} \def\tc@tmp@altpackname{ufrgsccalists} \def\tc@tmp@packdesc{UFRGS/CCA auxiliary lists commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty index d5e7e3bcbc..67d38ad08b 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-ppc} \def\tc@tmp@altpackname{ufrgsccappc} \def\tc@tmp@packdesc{UFRGS/CCA PPC commands} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def index c847f32159..393dcf9c99 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,9 +12,9 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% -%% The list of files that compose this work can be found in the README.md file at +%% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca %% %%%============================================================================== @@ -23,12 +23,11 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== \makeatletter - \def\tc@tmp@packname{ufrgscca-ptBR-base} \def\tc@tmp@altpackname{ufrgsccaptbrbase} \def\tc@tmp@packdesc{UFRGS/CCA Portuguese base defs} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def index 1e9c8b669d..45e2edb24f 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,9 +12,9 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% -%% The list of files that compose this work can be found in the README.md file at +%% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca %% %%%============================================================================== @@ -23,12 +23,11 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== \makeatletter - \def\tc@tmp@packname{ufrgscca-ptBR-coord} \def\tc@tmp@altpackname{ufrgsccaptbrcoord} \def\tc@tmp@packdesc{UFRGS/CCA Portuguese coord defs} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def index 61f7327009..b99093c89a 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,9 +12,9 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% -%% The list of files that compose this work can be found in the README.md file at +%% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca %% %%%============================================================================== @@ -23,12 +23,11 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== \makeatletter - \def\tc@tmp@packname{ufrgscca-ptBR-core} \def\tc@tmp@altpackname{ufrgsccaptbrcore} \def\tc@tmp@packdesc{UFRGS/CCA Portuguese core defs} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def index 1c33570339..f64f5a5956 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,9 +12,9 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% -%% The list of files that compose this work can be found in the README.md file at +%% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca %% %%%============================================================================== @@ -23,12 +23,11 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== \makeatletter - \def\tc@tmp@packname{ufrgscca-ptBR-forms} \def\tc@tmp@altpackname{ufrgsccaptbrforms} \def\tc@tmp@packdesc{UFRGS/CCA Portuguese forms defs} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls index a0516ace52..d3d95d7002 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls @@ -1,5 +1,5 @@ %%%============================================================================== -%% Copyright 2022 by Alceu Frigeri +%% Copyright 2022-23 by Alceu Frigeri %% %% This work may be distributed and/or modified under the conditions of %% @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.6 (2023/01/13) +%% This is version 1.0.7 (2023/01/17) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca} \def\tc@tmp@altpackname{ufrgscca} \def\tc@tmp@packdesc{UFRGS/CCA class} -\def\tc@tmp@packdate{2023/01/13} -\def\tc@tmp@packversion{1.0.6} +\def\tc@tmp@packdate{2023/01/17} +\def\tc@tmp@packversion{1.0.7} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/writeongrid/README.md b/macros/latex/contrib/writeongrid/README.md new file mode 100644 index 0000000000..7d037bc12a --- /dev/null +++ b/macros/latex/contrib/writeongrid/README.md @@ -0,0 +1,7 @@ +WriteOnGrid is a package to work with a grid, with text on the lines. +----------------------------------------------------------------------- +WriteOnGrid est un package pour Ă©crire sur les lignes d'un quadrillage. +----------------------------------------------------------------------- +Author : CĂ©dric Pierquet +email : cpierquet@outlook.fr +Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
\ No newline at end of file diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf Binary files differnew file mode 100644 index 0000000000..bcd238b1e0 --- /dev/null +++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex new file mode 100644 index 0000000000..624789e987 --- /dev/null +++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex @@ -0,0 +1,359 @@ +% !TeX TXS-program:compile = txs:///arara +% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} +% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') + +\documentclass[a4paper]{article} +\usepackage[svgnames]{xcolor} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{WriteOnGrid} +\usetikzlibrary{decorations.pathreplacing} +\usepackage{amsmath,amssymb} +\usepackage{fontawesome5} +\usepackage{enumitem} +\usepackage{frcursive} +\usepackage{tabularray} +\usepackage{fancyvrb} +\usepackage{fancyhdr} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\lfoot{\sffamily\small [WriteOnGrid]} +\cfoot{\sffamily\small - \thepage{} -} +\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} + +\usepackage{hvlogos} +\usepackage{hyperref} +\urlstyle{same} +\hypersetup{pdfborder=0 0 0} +\usepackage[margin=1.5cm]{geometry} +\setlength{\parindent}{0pt} +\definecolor{LightGray}{gray}{0.9} + +\def\TPversion{0.1.0} +\def\TPdate{16/01/2023} + +\usepackage[most]{tcolorbox} +\tcbuselibrary{minted} +\NewTCBListing{PresentationCode}{ O{blue} m }{% + sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,% + colback=#1!1!white,colframe=#1!75!black,colbacklower=white,% + attach boxed title to top right={yshift=-\tcboxedtitleheight},title=Code \LaTeX,% + boxed title style={% + colframe=#1!75!black,colback=#1!15!white,% + ,sharp corners=downhill,arc=12pt,% + },% + fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,% + listing engine=minted,minted style=colorful, + minted language=tex,minted options={tabsize=4,fontsize=\footnotesize,autogobble}, + #2 +} + +\newcommand\Cle[1]{{\bfseries\sffamily\textlangle #1\textrangle}} + +\begin{document} + +\pagestyle{fancy} + +\thispagestyle{empty} + +\vspace{2cm} + +\begin{center} + \begin{minipage}{0.75\linewidth} + \begin{tcolorbox}[colframe=yellow,colback=yellow!15] + \begin{center} + \begin{tabular}{c} + {\Huge \texttt{WriteOnGrid [en]}}\\ + \\ + {\LARGE To write on lines} \\ + {\LARGE of a grid.} + \end{tabular} + + \medskip + + {\small \texttt{Version \TPversion{} -- \TPdate}} + \end{center} + \end{tcolorbox} +\end{minipage} +\end{center} + +\vspace{0.5cm} + +\begin{center} + \begin{tabular}{c} + \texttt{Cédric Pierquet}\\ + {\ttfamily c pierquet -- at -- outlook . fr}\\ + \texttt{\url{https://github.com/cpierquet/WriteOnGrid}} +\end{tabular} +\end{center} + +\vspace{0.5cm} + +{$\blacktriangleright$~~Some commands to create a grid (5x5 or Seyes) and to write \og on \fg{} the lines.} + +\smallskip + +{$\blacktriangleright$~~Possibility to personnalize size, margins, ...} + +\vspace{1cm} + +\begin{center} + \begin{EnvGrid}[NumSquares=22x8] + \WriteLine{my text on line 1\ldots} + \WriteLine<center>{my centered text on line 2\ldots} + \WriteLine<right>{my right-align text on ligne 3\ldots} + \WriteLine[OffsetH=2]{my 2-squares shifted text on line 4\ldots} + \PassLine + \WriteLine{\sffamily my text, sans serif, on line 6\ldots} + \WriteLine[OffsetH=-1]{\small\cursive my -1-square shifted text on line 7\ldots} +\end{EnvGrid} +\end{center} + +\begin{EnvGrid}[NumSquares=24x5,Margin=1,Enlarge=2/2,Seyes] + \WriteLine[Scale=1.5]{\textcolor{red}{my text on line 1\ldots}} + \WriteLine[Scale=1.5]{\textcolor{blue}{my text on line 2\ldots}} + \WriteLine[Scale=1.5,OffsetH=-1]{$1+\frac{1}{2}=\frac32$ et $(1+x)^2=1+2x+x^2$ on line 3\ldots} + \WriteLine[Scale=1.5]{\cursive my text on line 4\ldots} +\end{EnvGrid} + +\vspace{0.5cm} + +%\hfill{}\textit{Merci à Denis Bitouzé et à Patrick Bideault pour leurs retours et idées !} + +\vfill + +\hrule + +\medskip + +\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}} +{\huge \LaTeX} & & & & &\\ +& {\huge \pdfLaTeX} & & & & \\ +& & {\huge \LuaLaTeX} & & & \\ +& & & {\huge \TikZ} & & \\ +& & & & {\huge \TeXLive} & \\ +& & & & & {\huge \MiKTeX} \\ +\end{tblr} + +\medskip + +\hrule + +\medskip + +\newpage + +\part*{Introduction} + +\section{The package} + +\subsection{Loading of the package, used packages} + +The package \textsf{writeongrid} loads within the preamble : + +\begin{PresentationCode}{listing only} +\usepackage{writeongrid} +\end{PresentationCode} + +It’s mostly compatible with \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} or \textsf{xelatex} compilation ! + +\medskip + +It loads the following packages and libraries : + +\begin{itemize} + \item \texttt{tikz} with the librairies \Cle{calc} and \Cle{positionning} ; + \item \texttt{xstring}, \texttt{xparse} and \texttt{simplekv}. +\end{itemize} + +\subsection{The package itself} + +The idea is to, thanks to TikZ, propose commands and environment to work with a grid, and to write on the lines. + +\begin{PresentationCode}{listing only} +%environment, with keys to prepare the grid +%commands to write or pass a line + +\begin{EnvGrid}[keys]<color> + \WriteLine[keys]<alignment>{text} + \PassLine +\end{EnvGrid} +\end{PresentationCode} + +\subsection{Overall functioning} + +The grid is given by the number of squares (nbCol$\times$nbRow), and after we can adjust with \textit{overtakings} to enlarge the grid onto the margins of the paper (left or right). We can also \textit{adjust} the global margin, to begin the lines differently. + +\medskip + +For example, a $5\times5$ grid : + +\begin{itemize} + \item with a size 24x5 squares ; + \item with an overtaking by \textcolor{red}{2 squares at the left} and \textcolor{blue}{3 squares at the right} ; + \item with a global margin of \textcolor{orange}{1 square} ; + \item with a \textcolor{ForestGreen}{\textit{border}} to show the \textit{basis} grid. +\end{itemize} + +\medskip + +\begin{tikzpicture} + \useasboundingbox (0,0) rectangle ({0.5*24},{-0.5*5}) ; + \draw[xstep=0.5,ystep=0.5,thin,lightgray!75] ({-0.5*2},0) grid ({0.5*24+0.5*3},{-0.5*5}) ; + \draw[thick,decorate,decoration={brace,amplitude=8pt,mirror}](0,{-0.5*5-0.25})--({0.5*24},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {24C} ; + \draw[red,thick,decorate,decoration={brace,amplitude=8pt,mirror}] ({-2*0.5},{-0.5*5-0.25})--({0},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {2C} ; + \draw[blue,thick,decorate,decoration={brace,amplitude=8pt,mirror}] ({0.5*24},{-0.5*5-0.25})--({0.5*24+3*0.5},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {3C} ; + \draw[thick,decorate,decoration={brace,amplitude=8pt}] ({0.5*24+3*0.5+0.25},0)--({0.5*24+3*0.5+0.25},{-0.5*5}) node[midway,right=8pt,font=\small\sffamily] {5C} ; + \draw[very thick,orange,densely dashed] ({0.5*1},0)--({0.5*1},{-0.5*5}) ; + \draw[ForestGreen,thick] (0,0) rectangle ({0.5*24},{-0.5*5}) ; +\end{tikzpicture} + +\vspace{1.5cm} + +The \texttt{tikzpicture} is \textit{bounded} by the \textcolor{ForestGreen}{\textit{border}}, in order to specify overtakings or alignment. + +\medskip + +Le left-border of the \textcolor{ForestGreen}{\textit{border}} is aligned on the left-margin of the page, so take care of the \texttt{\textbackslash parindent}. + +\pagebreak + +\section{Commands, keys and options} + +\subsection{The environement} + +\begin{PresentationCode}{listing only} +%environment, with keys to prepare the grid + +\begin{EnvGrid}[keys]<color> + ... +\end{EnvGrid} +\end{PresentationCode} + +The first argument, \textit{optional}, between \texttt{[...]} give the \Cle{keys} : + +\begin{itemize} + \item \Cle{NumSwuares} to specify the size of the grid, under \texttt{(nbCol)x(nbRow)} ; \hfill~default : \Cle{17x5} + \item \Cle{Unit} to specify the scale of the grid ; \hfill~default : \Cle{1} + \item \Cle{Margin} to specify the global \textcolor{orange}{margin} at the beginning of the lines ; \hfill~default : \Cle{0} + \item \Cle{Enlarge} to specify the squares-overtakings, globally with \texttt{\textcolor{red}{L}\textcolor{blue}{R}} or side by side with \texttt{\textcolor{red}{L}/\textcolor{blue}{R}} ;\hfill~default : \Cle{0} + \item the boolean \Cle{Border} to display the basis border of the grid ;\hfill~default : \Cle{false} + \item the boolean \Cle{Seyes} to work with a Seyes grid.\hfill~default : \Cle{false} +\end{itemize} + +The second argument, \textit{optional}, between \texttt{<...>} is the major color of the grid, \Cle{lightgray} by default. + +\medskip + +\begin{PresentationCode}{listing only} +%the borders are added to show the basis grid + +%30x5 small squares, w/o overtakings, basis color +\begin{EnvGrid}[NumSquares=30x5] +\end{EnvGrid} + +%36x8 small squares, overtakings 3/3, LightSteelBlue color +\begin{EnvGrid}[NumSquares=36x8,Enlarge=3/3]<LightSteelBlue> +\end{EnvGrid} + +%15x5 big squares, overtakings 1/2, orange, centered +\begin{center} + \begin{EnvGrid}[NumSquares=15x5,Enlarge=1/2,Seyes]<orange> + \end{EnvGrid} +\end{center} +\end{PresentationCode} + +\medskip + +\begin{EnvGrid}[NumSquares=30x5,Border] +\end{EnvGrid} + +\smallskip + +\begin{EnvGrid}[NumSquares=36x8,Enlarge=3/3,Border]<LightSteelBlue> +\end{EnvGrid} + +\begin{center} + \begin{EnvGrid}[NumSquares=15x5,Enlarge=1/2,Seyes,Border]<orange> + \end{EnvGrid} +\end{center} + +\pagebreak + +\subsection{Write on the lines} + +The idea is to write on the created grid. In order to write \textit{right} on the lines, we can : + +\begin{itemize} + \item give the lines one by one ; + \item avoid using multilines paragraps, items ; + \item pass a line. +\end{itemize} + +\begin{PresentationCode}{listing only} +... + %to write the lines, one by one + \WriteLine[keys]<alignment>{text} + %to pass the ligne + \PassLine +... +\end{PresentationCode} + +The fisrt argument, \textit{optional}, between \texttt{[...]} give the \Cle{keys} : + +\begin{itemize} + \item \Cle{OffsetH}, in squares, to shift the text from the \textcolor{orange}{margin} ; \hfill~default : \Cle{0} + \item \Cle{OffsetV} to shift vertically the line ; \hfill~default : \Cle{0pt} + \item \Cle{Scale} to specify the scale of the given text.\hfill~default : \Cle{1} +\end{itemize} + +the second argument, \textit{optional}, between \texttt{<...>} is the horizontal alignment (\Cle{left/center/right}) of the text in the basis \textcolor{ForestGreen}{\textit{border}}, \Cle{left} by default. + +\medskip + +Le third argument, \textit{mandatory} and between \texttt{\{...\}} is the text, eventually with options. + +\begin{PresentationCode}{listing only} +\begin{EnvGrid}[NumSquares=36x8] + \WriteLine{my text on ligne 1\ldots} + \WriteLine<center>{\ttfamily my tetetype text centered on line 2\ldots} + \WriteLine<right>{right-align text on line 3\ldots} + \WriteLine[OffsetH=0.1]{\textcolor{red}{red text, 1mm-shifted\ldots}} + \PassLine + \WriteLine[Scale=0.5]{\sffamily sans serif text, reduced by 50\,\%, on line 6\ldots} + \WriteLine[OffsetH=3]{\cursive 3 squares-shited text\ldots} +\end{EnvGrid} +\end{PresentationCode} + +\begin{EnvGrid}[NumSquares=36x8] + \WriteLine{my text on ligne 1\ldots} + \WriteLine<center>{\ttfamily my tetetype text centered on line 2\ldots} + \WriteLine<right>{right-align text on line 3\ldots} + \WriteLine[OffsetH=0.1]{\textcolor{red}{red text, 1mm-shifted\ldots}} + \PassLine + \WriteLine[Scale=0.5]{\sffamily sans serif text, reduced by 50\,\%, on line 6\ldots} + \WriteLine[OffsetH=3]{\cursive 3 squares-shited text\ldots} +\end{EnvGrid} + +\begin{PresentationCode}{listing only} +\begin{EnvGrid}[NumSquares=22x4,Margin=1,Enlarge=2/3,Seyes,Border] + \WriteLine[Scale=1.5]{\textcolor{red}{red text on line 1\ldots}} + \WriteLine[Scale=1.15,OffsetH=1]{$(1+x)^2=1+2x+x^2$ on line 2, with 1-square offset\ldots} + \WriteLine[OffsetH=-1]{\textcolor{blue}{blue text, back to left, on line 3\ldots}} +\end{EnvGrid} + +\end{PresentationCode} +\begin{EnvGrid}[NumSquares=22x4,Margin=1,Enlarge=2/3,Seyes,Border] + \WriteLine[Scale=1.5]{\textcolor{red}{red text on line 1\ldots}} + \WriteLine[Scale=1.15,OffsetH=1]{$(1+x)^2=1+2x+x^2$ on line 2, with 1-square offset\ldots} + \WriteLine[OffsetH=-1]{\textcolor{blue}{blue text, back to left, on line 3\ldots}} +\end{EnvGrid} + +\newpage + +\part*{History} + +\verb|v0.1.0|~:~~~~Initial version + +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf Binary files differnew file mode 100644 index 0000000000..3604f845ea --- /dev/null +++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex new file mode 100644 index 0000000000..57975ee6a6 --- /dev/null +++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex @@ -0,0 +1,359 @@ +% !TeX TXS-program:compile = txs:///arara +% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} +% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') + +\documentclass[a4paper]{article} +\usepackage[svgnames]{xcolor} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{WriteOnGrid} +\usetikzlibrary{decorations.pathreplacing} +\usepackage{amsmath,amssymb} +\usepackage{fontawesome5} +\usepackage{enumitem} +\usepackage{frcursive} +\usepackage{tabularray} +\usepackage{fancyvrb} +\usepackage{fancyhdr} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\lfoot{\sffamily\small [WriteOnGrid]} +\cfoot{\sffamily\small - \thepage{} -} +\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} + +\usepackage{hvlogos} +\usepackage{hyperref} +\urlstyle{same} +\hypersetup{pdfborder=0 0 0} +\usepackage[margin=1.5cm]{geometry} +\setlength{\parindent}{0pt} +\definecolor{LightGray}{gray}{0.9} + +\def\TPversion{0.1.0} +\def\TPdate{16 Janvier 2023} + +\usepackage[most]{tcolorbox} +\tcbuselibrary{minted} +\NewTCBListing{PresentationCode}{ O{blue} m }{% + sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,% + colback=#1!1!white,colframe=#1!75!black,colbacklower=white,% + attach boxed title to top right={yshift=-\tcboxedtitleheight},title=Code \LaTeX,% + boxed title style={% + colframe=#1!75!black,colback=#1!15!white,% + ,sharp corners=downhill,arc=12pt,% + },% + fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,% + listing engine=minted,minted style=colorful, + minted language=tex,minted options={tabsize=4,fontsize=\footnotesize,autogobble}, + #2 +} + +\newcommand\Cle[1]{{\bfseries\sffamily\textlangle #1\textrangle}} + +\begin{document} + +\pagestyle{fancy} + +\thispagestyle{empty} + +\vspace{2cm} + +\begin{center} + \begin{minipage}{0.75\linewidth} + \begin{tcolorbox}[colframe=yellow,colback=yellow!15] + \begin{center} + \begin{tabular}{c} + {\Huge \texttt{WriteOnGrid [fr]}}\\ + \\ + {\LARGE Pour écrire sur les} \\ + {\LARGE lignes d'une grille.} + \end{tabular} + + \medskip + + {\small \texttt{Version \TPversion{} -- \TPdate}} + \end{center} + \end{tcolorbox} +\end{minipage} +\end{center} + +\vspace{0.5cm} + +\begin{center} + \begin{tabular}{c} + \texttt{Cédric Pierquet}\\ + {\ttfamily c pierquet -- at -- outlook . fr}\\ + \texttt{\url{https://github.com/cpierquet/WriteOnGrid}} +\end{tabular} +\end{center} + +\vspace{0.5cm} + +{$\blacktriangleright$~~Quelques commandes créer une grille (5x5 ou Seyes) et écrire \og sur \fg{} les lignes.} + +\smallskip + +{$\blacktriangleright$~~Personnalisation de la taille de la grille, des marges, etc.} + +\vspace{1cm} + +\begin{center} + \begin{EnvQuadrillage}[NbCarreaux=22x8] + \EcrireLigne{mon texte sur la ligne 1\ldots} + \EcrireLigne<center>{mon texte centré sur la ligne 2\ldots} + \EcrireLigne<right>{mon texte aligné à droite sur la ligne 3\ldots} + \EcrireLigne[DecalH=2]{mon texte décalé de 2 carreaux sur la ligne 4\ldots} + \PasseLigne + \EcrireLigne{\sffamily mon texte sur la ligne 6\ldots} + \EcrireLigne[DecalH=-1]{\small\cursive mon texte, décalé à gauche de 1 carreau, sur la ligne 7\ldots} +\end{EnvQuadrillage} +\end{center} + +\begin{EnvQuadrillage}[NbCarreaux=24x5,Marge=1,Elargir=2/2,Seyes] + \EcrireLigne[Echelle=1.5]{\textcolor{red}{mon texte sur la ligne 1\ldots}} + \EcrireLigne[Echelle=1.5]{\textcolor{blue}{mon texte sur la ligne 2\ldots}} + \EcrireLigne[Echelle=1.5,DecalH=-1]{$1+\frac{1}{2}=\frac32$ et $(1+x)^2=1+2x+x^2$ sur la ligne 3\ldots} + \EcrireLigne[Echelle=1.5]{\cursive mon texte sur la ligne 4\ldots} +\end{EnvQuadrillage} + +\vspace{0.5cm} + +%\hfill{}\textit{Merci à Denis Bitouzé et à Patrick Bideault pour leurs retours et idées !} + +\vfill + +\hrule + +\medskip + +\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}} +{\huge \LaTeX} & & & & &\\ +& {\huge \pdfLaTeX} & & & & \\ +& & {\huge \LuaLaTeX} & & & \\ +& & & {\huge \TikZ} & & \\ +& & & & {\huge \TeXLive} & \\ +& & & & & {\huge \MiKTeX} \\ +\end{tblr} + +\medskip + +\hrule + +\medskip + +\newpage + +\part*{Introduction} + +\section{Le package writeongrid} + +\subsection{Chargement du package, packages utilisés} + +Le package \textsf{writeongrid} se charge dans le préambule via la commande : + +\begin{PresentationCode}{listing only} +\usepackage{writeongrid} +\end{PresentationCode} + +Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}. + +\medskip + +Il charge les packages et librairies suivantes : + +\begin{itemize} + \item \texttt{tikz} avec les librairies \Cle{calc} et \Cle{positionning} ; + \item \texttt{xstring}, \texttt{xparse} et \texttt{simplekv}. +\end{itemize} + +\subsection{\og Philosophie \fg{} du package} + +L'idée est de proposer, grâce à \TikZ, des \textsf{commandes} et \textsf{environnements} pour travailler sur un quadrillage et écrire \og sur les lignes \fg. + +\begin{PresentationCode}{listing only} +%environnement francisé, avec clés en français pour préparer la grille +%commandes pour placer ou passer une ligne + +\begin{EnvQuadrillage}[clés]<couleur> + \EcrireLigne[clés]<alignement>{texte} + \PasseLigne +\end{EnvQuadrillage} +\end{PresentationCode} + +\subsection{Fonctionnement global} + +La grille est créée en spécifiant le nombre de carreaux (sous la forme nbCol$\times$nbLig), et on peut ensuite spécifier des \textit{débordements} latéraux pour éventuellement étendre le quadrillage dans les marges (gauche et droite). On peut également \textit{jouer} sur la marge, pour commencer les lignes à un niveau donné. + +\medskip + +Ci-dessous on représente une grille $5\times5$ : + +\begin{itemize} + \item de taille 24x5 ; + \item avec un élargissement de \textcolor{red}{2 carreaux à gauche} et \textcolor{blue}{3 carreaux à droite} ; + \item en commençant à écrire au niveau du \textcolor{orange}{1\up{er} carreau} ; + \item un \textcolor{ForestGreen}{\textit{cadre}} est rajouté pour visualiser la grille \textit{de base}. +\end{itemize} + +\medskip + +\begin{tikzpicture} + \useasboundingbox (0,0) rectangle ({0.5*24},{-0.5*5}) ; + \draw[xstep=0.5,ystep=0.5,thin,lightgray!75] ({-0.5*2},0) grid ({0.5*24+0.5*3},{-0.5*5}) ; + \draw[thick,decorate,decoration={brace,amplitude=8pt,mirror}](0,{-0.5*5-0.25})--({0.5*24},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {24C} ; + \draw[red,thick,decorate,decoration={brace,amplitude=8pt,mirror}] ({-2*0.5},{-0.5*5-0.25})--({0},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {2C} ; + \draw[blue,thick,decorate,decoration={brace,amplitude=8pt,mirror}] ({0.5*24},{-0.5*5-0.25})--({0.5*24+3*0.5},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {3C} ; + \draw[thick,decorate,decoration={brace,amplitude=8pt}] ({0.5*24+3*0.5+0.25},0)--({0.5*24+3*0.5+0.25},{-0.5*5}) node[midway,right=8pt,font=\small\sffamily] {5C} ; + \draw[very thick,orange,densely dashed] ({0.5*1},0)--({0.5*1},{-0.5*5}) ; + \draw[ForestGreen,thick] (0,0) rectangle ({0.5*24},{-0.5*5}) ; +\end{tikzpicture} + +\vspace{1.5cm} + +Il est à noter que le figure \texttt{tikzpicture} est \textit{délimitée} par le \textcolor{ForestGreen}{\textit{cadre}}, afin de pouvoir gérer les débordements et l'alignement de l'environnement ! + +\medskip + +De plus, le bord gauche du \textcolor{ForestGreen}{\textit{cadre}} est aligné sur la marge gauche de la page, donc la position du quadrillage dépend en partie de la configuration de \texttt{\textbackslash parindent}. + +\pagebreak + +\section{Commandes, clés et options} + +\subsection{L'environnement} + +\begin{PresentationCode}{listing only} +%environnement francisé, avec clés en français pour préparer la grille + +\begin{EnvQuadrillage}[clés]<couleur> + ... +\end{EnvQuadrillage} +\end{PresentationCode} + +Le premier argument, \textit{optionnel}, entre \texttt{[...]} propose les \Cle{clés} : + +\begin{itemize} + \item \Cle{NbCarreaux} pour spécifier le nombre de carreaux, sous la forme \texttt{(nbCol)x(nbLig)} ; \hfill~défaut : \Cle{17x5} + \item \Cle{Unite} pour spécifier l'échelle de la figure ; \hfill~défaut : \Cle{1} + \item \Cle{Marge} pour spécifier la \textcolor{orange}{marge} du début des lignes ; \hfill~défaut : \Cle{0} + \item \Cle{Elargir} pour préciser les carreaux de débordements, sous la forme unique \texttt{\textcolor{red}{G}\textcolor{blue}{D}} ou par côté \texttt{\textcolor{red}{G}/\textcolor{blue}{D}} ;\hfill~défaut : \Cle{0} + \item le booléen \Cle{Cadre} pour afficher le cadre de base du quadrillage ;\hfill~défaut : \Cle{false} + \item le booléen \Cle{Seyes} pour afficher un quadrillage de type Seyes.\hfill~défaut : \Cle{false} +\end{itemize} + +Le second argument, \textit{optionnel}, entre \texttt{<...>} est quant à lui la couleur de base du quadrillage, \Cle{lightgray} par défaut. + +\medskip + +\begin{PresentationCode}{listing only} +%les cadres ont été rajoutés pour la sortie + +%30x5 petits carreaux, sans dépassement, couleur de base +\begin{EnvQuadrillage}[NbCarreaux=30x5] +\end{EnvQuadrillage} + +%36x8 petits carreaux, avec débordements 3/3, couleur LightSteelBlue +\begin{EnvQuadrillage}[NbCarreaux=36x8,Elargir=3/3]<LightSteelBlue> +\end{EnvQuadrillage} + +%15x5 grand carreaux, avec débordements 1/2, couleur orange, centré +\begin{center} + \begin{EnvQuadrillage}[NbCarreaux=15x5,Elargir=1/2,Seyes]<orange> + \end{EnvQuadrillage} +\end{center} +\end{PresentationCode} + +\medskip + +\begin{EnvQuadrillage}[NbCarreaux=30x5,Cadre] +\end{EnvQuadrillage} + +\smallskip + +\begin{EnvQuadrillage}[NbCarreaux=36x8,Elargir=3/3,Cadre]<LightSteelBlue> +\end{EnvQuadrillage} + +\begin{center} + \begin{EnvQuadrillage}[NbCarreaux=15x5,Elargir=1/2,Seyes,Cadre]<orange> +\end{EnvQuadrillage} +\end{center} + +\pagebreak + +\subsection{Écrire sur les lignes} + +L'idée est maintenant de pouvoir écrire sur les lignes du quadrillage créé, et pour garantir le fait d'écrire \textit{pile} sur le ligne, on applique les recommandations suivantes : + +\begin{itemize} + \item les lignes doivent être saisies une par une, du \og haut \fg{} vers le \og bas \fg{} ; + \item pas de paragraphe \textit{multilignes}, pas de puce ou de numérotation ; + \item une ligne peut être passée. +\end{itemize} + +\begin{PresentationCode}{listing only} +... + %pour saisir les lignes, une par une + \EcrireLigne[clés]<alignement>{texte} + %pour passer la ligne + \PasseLigne +... +\end{PresentationCode} + +Le premier argument, entre \texttt{[...]} propose les \Cle{clés} : + +\begin{itemize} + \item \Cle{DecalH} pour spécifier le décalage horizontal (en carreaux) de la ligne, par rapport à la \textcolor{orange}{marge} ; \hfill~défaut : \Cle{0} + \item \Cle{DecalV} pour spécifier le décalage vertical du texte par rapport à la ligne ; \hfill~défaut : \Cle{0pt} + \item \Cle{Echelle} pour spécifier l'échelle du texte à écrire.\hfill~défaut : \Cle{1} +\end{itemize} + +Le deuxième argument, \textit{optionnel}, entre \texttt{<...>} permet de spécifier l'alignement horizontal (parmi \Cle{left/center/right}) du texte dans le \textcolor{ForestGreen}{\textit{cadre}} de base, \Cle{left} par défaut. + +\medskip + +Le troisième argument, \textit{mandataire} et entre \texttt{\{...\}} est quant à lui le texte à saisir, avec possibilité de spécifier taille, couleur, fonte, etc + +\begin{PresentationCode}{listing only} +\begin{EnvQuadrillage}[NbCarreaux=36x8] + \EcrireLigne{mon texte sur la ligne 1\ldots} + \EcrireLigne<center>{\ttfamily mon texte, en fonte teletype augmentée de 25\,\%, centré sur la ligne 2\ldots} + \EcrireLigne<right>{mon texte aligné à droite sur la ligne 3\ldots} + \EcrireLigne[DecalV=0.1]{\textcolor{red}{mon texte rouge sur la ligne 4, décalé de 1mm vers le haut\ldots}} + \PasseLigne + \EcrireLigne[Echelle=0.5]{\sffamily mon texte, en fonte sans réduite de 50\,\%, sur la ligne 6\ldots} + \EcrireLigne[DecalH=3]{\cursive mon texte sur la ligne 7, décalé de 3 carreaux\ldots} +\end{EnvQuadrillage} +\end{PresentationCode} + +\begin{EnvQuadrillage}[NbCarreaux=36x8] + \EcrireLigne{mon texte sur la ligne 1\ldots} + \EcrireLigne<center>{\ttfamily mon texte, en fonte teletype augmentée de 25\,\%, centré sur la ligne 2\ldots} + \EcrireLigne<right>{mon texte aligné à droite sur la ligne 3\ldots} + \EcrireLigne[DecalV=0.1]{\textcolor{red}{mon texte rouge sur la ligne 4, décalé de 1mm vers le haut\ldots}} + \PasseLigne + \EcrireLigne[Echelle=0.5]{\sffamily mon texte, en fonte sans réduite de 50\,\%, sur la ligne 6\ldots} + \EcrireLigne[DecalH=3]{\cursive mon texte sur la ligne 7, décalé de 3 carreaux\ldots} +\end{EnvQuadrillage} + +\begin{PresentationCode}{listing only} +\begin{EnvQuadrillage}[NbCarreaux=22x4,Marge=1,Elargir=2/3,Seyes,Cadre] + \EcrireLigne[Echelle=1.5]{\textcolor{red}{mon texte rouge, un peu agrandi,sur la ligne 1\ldots}} + \EcrireLigne[Echelle=1.15,DecalH=1]{$(1+x)^2=1+2x+x^2$ sur la l2, avec un décal de 1 en plus de la marge\ldots} + \EcrireLigne[DecalH=-1]{\textcolor{blue}{mon texte bleu, remis à gauche, sur la ligne 3\ldots}} +\end{EnvQuadrillage} + +\end{PresentationCode} +\begin{EnvQuadrillage}[NbCarreaux=22x4,Marge=1,Elargir=2/3,Seyes,Cadre] + \EcrireLigne[Echelle=1.5]{\textcolor{red}{mon texte rouge, un peu agrandi,sur la ligne 1\ldots}} + \EcrireLigne[Echelle=1.15,DecalH=1]{$(1+x)^2=1+2x+x^2$ sur la ligne 2, avec un décalage de 1 carreau en plus de la marge\ldots} + \EcrireLigne[DecalH=-1]{\textcolor{blue}{mon texte bleu, remis à gauche, sur la ligne 3\ldots}} +\end{EnvQuadrillage} + +\newpage + +\part*{Historique} + +\verb|v0.1.0|~:~~~~Version initiale + +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty b/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty new file mode 100644 index 0000000000..096ea98be1 --- /dev/null +++ b/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty @@ -0,0 +1,116 @@ +% Author : C. Pierquet +% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{WriteOnGrid}[2023/01/16 v0.1.0 package to write on grid lines] +% 0.1.0 Version initiale [fr] & [en] + +%------Packages utiles +\RequirePackage{tikz} +\RequirePackage{simplekv} +\RequirePackage{xstring} +\RequirePackage{xparse} +%librairies tikz +\usetikzlibrary{calc,positioning} + +%------Variables +\newcounter{lgquadri}%compteur des lignes, qui sera incrémenté + +%------Commandes [fr] +\newcommand\PasseLigne{\addtocounter{lgquadri}{1}}%passer une ligne + +\defKV[LigneQuadrill]{Echelle=\xdef\QuadEchelle{#1}}%déf des clés +\setKVdefault[LigneQuadrill]{DecalV=0pt,DecalH=0,Sep=0pt,Echelle=1}%valeurs par défaut + +\NewDocumentCommand\EcrireLigne{ O{} D<>{left} m }{%écrire sur les lignes l'une après l'autre + \addtocounter{lgquadri}{1} + \useKVdefault[LigneQuadrill] + \setKV[LigneQuadrill]{#1} + \node[text width=\fpeval{\ValeurCarreau*\QuadNbCol-\ValeurCarreau*\useKV[Quadrill]{Marge}}cm,align=#2,scale=\QuadEchelle,anchor=base west,inner sep={\useKV[LigneQuadrill]{Sep}}] at ($({\ValeurCarreau*\useKV[Quadrill]{Marge}+\ValeurCarreau*\useKV[LigneQuadrill]{DecalH}},{-\ValeurCarreau*\thelgquadri})+(0,\useKV[LigneQuadrill]{DecalV})$) {\strut #3} ; +} + +\defKV[Quadrill]{NbCarreaux=\xdef\QuadNbCar{#1},Elargir=\xdef\QuadElar{#1}}%déf des clés +\setKVdefault[Quadrill]{NbCarreaux=17x5,Unite=1,Marge=0,Elargir=0,Cadre=false,Seyes=false}%valeurs par défaut (nbc x nbl) + +\NewDocumentEnvironment{EnvQuadrillage}{ O{} D<>{gray} }%créer le quadrillage +{% + \setcounter{lgquadri}{0}%on réinitialise les lignes + \useKVdefault[Quadrill]%on met les clés par défaut + \setKV[Quadrill]{#1}%on lit les clés + \StrCut{\QuadNbCar}{x}{\QuadNbCol}{\QuadNbLig}% + \ifboolKV[Quadrill]{Seyes}%seyes ou 5x5 + {\xdef\ValeurCarreau{0.8}}% + {\xdef\ValeurCarreau{0.5}}% + \IfSubStr{\QuadElar}{/}%on récupère les élargissements G et D + {\StrCut{\QuadElar}{/}{\QuadElarG}{\QuadElarD}}% + {\def\QuadElarG{\QuadElar}\def\QuadElarD{\QuadElar}}% + %\begin{tikzpicture}[xscale={\useKV[Quadrill]{Unite}},yscale={\useKV[Quadrill]{Unite}},trim left={(0,0)},trim right={({\QuadNbCol},0)}] + \begin{tikzpicture}[xscale={\useKV[Quadrill]{Unite}},yscale={\useKV[Quadrill]{Unite}}] + \useasboundingbox (0,0) rectangle ({\ValeurCarreau*\QuadNbCol},{-\ValeurCarreau*\QuadNbLig}) ;%on fixe la grille de base, avant élargissement éventuel + \ifboolKV[Quadrill]{Seyes}%seyes ou 5x5 + {% + \draw[xstep=0.8,ystep=0.2,thin,#2!50] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille seyes + \draw[xstep=0.8,ystep=0.8,#2!85] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille seyes + + }% + {% + \draw[xstep=0.5,ystep=0.5,thin,#2!50] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille 5x5 + }% + + \ifboolKV[Quadrill]{Cadre}%cadre pour visualiser la "marge" (officielle) + {\draw[thick] (0,0) rectangle ({\ValeurCarreau*\QuadNbCol},{-\ValeurCarreau*\QuadNbLig}) ;}% + {}% + }% + {% + \end{tikzpicture}% +}% + +%------Commandes [en] +\newcommand\PassLine{\addtocounter{lgquadri}{1}}%passer une ligne + +\defKV[LineQuadril]{Scale=\xdef\QuadEchelle{#1}}%déf des clés +\setKVdefault[LineQuadril]{OffsetV=0pt,OffsetH=0,Sep=0pt,Scale=1}%valeurs par défaut + +\NewDocumentCommand\WriteLine{ O{} D<>{left} m }{%écrire sur les lignes l'une après l'autre + \addtocounter{lgquadri}{1} + \useKVdefault[LineQuadril] + \setKV[LineQuadril]{#1} + \node[text width=\fpeval{\ValeurCarreau*\QuadNbCol-\ValeurCarreau*\useKV[Quadril]{Margin}}cm,align=#2,scale=\QuadEchelle,anchor=base west,inner sep={\useKV[LineQuadril]{Sep}}] at ($({\ValeurCarreau*\useKV[Quadril]{Margin}+\ValeurCarreau*\useKV[LineQuadril]{OffsetH}},{-\ValeurCarreau*\thelgquadri})+(0,\useKV[LineQuadril]{OffsetV})$) {\strut #3} ; +} + +\defKV[Quadril]{NumSquares=\xdef\QuadNbCar{#1},Enlarge=\xdef\QuadElar{#1}}%déf des clés +\setKVdefault[Quadril]{NumSquares=17x5,Unit=1,Margin=0,Enlarge=0,Border=false,Seyes=false}%valeurs par défaut + +\NewDocumentEnvironment{EnvGrid}{ O{} D<>{gray} }%créer le quadrillage +{% + \setcounter{lgquadri}{0}%on réinitialise les lignes + \useKVdefault[Quadril]%on met les clés par défaut + \setKV[Quadril]{#1}%on lit les clés + \StrCut{\QuadNbCar}{x}{\QuadNbCol}{\QuadNbLig}% + \ifboolKV[Quadril]{Seyes}%seyes ou 5x5 + {\xdef\ValeurCarreau{0.8}}% + {\xdef\ValeurCarreau{0.5}}% + \IfSubStr{\QuadElar}{/}%on récupère les élargissements G et D + {\StrCut{\QuadElar}{/}{\QuadElarG}{\QuadElarD}}% + {\def\QuadElarG{\QuadElar}\def\QuadElarD{\QuadElar}}% + %\begin{tikzpicture}[xscale={\useKV[Quadril]{Unit}},yscale={\useKV[Quadril]{Unit}},trim left={(0,0)},trim right={({\QuadNbCol},0)}] + \begin{tikzpicture}[xscale={\useKV[Quadrill]{Unite}},yscale={\useKV[Quadrill]{Unite}}] + \useasboundingbox (0,0) rectangle ({\ValeurCarreau*\QuadNbCol},{-\ValeurCarreau*\QuadNbLig}) ;%on fixe la grille de base, avant élargissement éventuel + \ifboolKV[Quadril]{Seyes}%seyes ou 5x5 + {% + \draw[xstep=0.8,ystep=0.2,thin,#2!75] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille seyes + \draw[xstep=0.8,ystep=0.8,#2] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille seyes + + }% + {% + \draw[xstep=0.5,ystep=0.5,thin,#2!75] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille 5x5 + }% + + \ifboolKV[Quadril]{Border}%cadre pour la "marge" + {\draw[thick] (0,0) rectangle ({\ValeurCarreau*\QuadNbCol},{-\ValeurCarreau*\QuadNbLig}) ;}% + {}% + }% + {% + \end{tikzpicture}% +}% +\endinput
\ No newline at end of file diff --git a/macros/xetex/latex/bidi/README b/macros/xetex/latex/bidi/README index 6f399323ad..60fcee8d1c 100644 --- a/macros/xetex/latex/bidi/README +++ b/macros/xetex/latex/bidi/README @@ -1,6 +1,6 @@ ___________________ The bidi package -v39.6 +v39.7 This package provides a convenient interface for typesetting bidirectional texts in Plain TeX and LaTeX, using XeTeX engine. @@ -25,12 +25,12 @@ The announcements for the new releases of the package will also appear in the Discussions space under the Announcements category. -Current version release date: 2022/11/06 +Current version release date: 2023/01/18 ___________________________________________ Vafa Khalighi -Copyright (c) Vafa Khalighi 2007--2022 +Copyright (c) Vafa Khalighi 2007--2023 Copyright (c) bidi-tex GitHub Organization 2018--2020 It may be distributed and/or modified under the LaTeX Project Public License, diff --git a/macros/xetex/latex/bidi/bidi-doc-intro.ltx b/macros/xetex/latex/bidi/bidi-doc-intro.ltx index cb32bf3435..91de6e02ef 100644 --- a/macros/xetex/latex/bidi/bidi-doc-intro.ltx +++ b/macros/xetex/latex/bidi/bidi-doc-intro.ltx @@ -17,10 +17,10 @@ If you use \textsf{bidi} package to write any input \TeX\ document, and then run * and LaTeX. The package includes adaptations * for use with many other commonly-used packages. * -* Copyright (c) 2007--2022 Vafa Khalighi +* Copyright (c) 2007--2023 Vafa Khalighi * Copyright (c) 2018--2020 bidi-tex GitHub Organization * -* v39.6 (Release Women, Life, and Liberty), 2022/11/06 +* v39.7 (Release Serge Lang), 2023/01/18 * * License: LaTeX Project Public License, version * 1.3c or higher (your choice) diff --git a/macros/xetex/latex/bidi/bidi-doc-title.ltx b/macros/xetex/latex/bidi/bidi-doc-title.ltx index 8e73033544..49d6163ff2 100644 --- a/macros/xetex/latex/bidi/bidi-doc-title.ltx +++ b/macros/xetex/latex/bidi/bidi-doc-title.ltx @@ -3,7 +3,7 @@ \begin{document} \title{\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}\\ \LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt] -\large User documentation for \textcolor{blue!65!black}{version 39.6}} +\large User documentation for \textcolor{blue!65!black}{version 39.7}} \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}} \setcounter{page}{0} \thispagestyle{empty} @@ -13,7 +13,7 @@ \textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}} \Large -User documentation for \textcolor{blue!65!black}{version 39.6}} +User documentation for \textcolor{blue!65!black}{version 39.7}} \vskip 0pt plus 3fill \textit{\large to my Master, \textbf{Ferdowsi The Great}} diff --git a/macros/xetex/latex/bidi/bidi-doc.ltx b/macros/xetex/latex/bidi/bidi-doc.ltx index 4e7de4c0c0..76d56ae9ef 100644 --- a/macros/xetex/latex/bidi/bidi-doc.ltx +++ b/macros/xetex/latex/bidi/bidi-doc.ltx @@ -1,7 +1,7 @@ \documentclass{ltxdoc} \input{bidi-doc-preamble.ltx} \hypersetup{% - pdftitle={User documentation for version 39.6 of the bidi + pdftitle={User documentation for version 39.7 of the bidi package}% } \begin{document} diff --git a/macros/xetex/latex/bidi/bidi-doc.pdf b/macros/xetex/latex/bidi/bidi-doc.pdf Binary files differindex 441290ecf1..c861748d85 100644 --- a/macros/xetex/latex/bidi/bidi-doc.pdf +++ b/macros/xetex/latex/bidi/bidi-doc.pdf diff --git a/macros/xetex/latex/bidi/bidi.dtx b/macros/xetex/latex/bidi/bidi.dtx index 1eae23846f..a24d9572f4 100644 --- a/macros/xetex/latex/bidi/bidi.dtx +++ b/macros/xetex/latex/bidi/bidi.dtx @@ -5,7 +5,7 @@ %<*readme> ___________________ The bidi package -v39.6 +v39.7 This package provides a convenient interface for typesetting bidirectional texts in Plain TeX and LaTeX, using XeTeX engine. @@ -30,12 +30,12 @@ The announcements for the new releases of the package will also appear in the Discussions space under the Announcements category. -Current version release date: 2022/11/06 +Current version release date: 2023/01/18 ___________________________________________ Vafa Khalighi -Copyright (c) Vafa Khalighi 2007--2022 +Copyright (c) Vafa Khalighi 2007--2023 Copyright (c) bidi-tex GitHub Organization 2018--2020 It may be distributed and/or modified under the LaTeX Project Public License, @@ -57,7 +57,7 @@ by Vafa Khalighi. __________________________________________________ Vafa Khalighi - Copyright (c) 2007--2022 Vafa Khalighi + Copyright (c) 2007--2023 Vafa Khalighi Copyright (c) 2018--2020 bidi-tex GitHub Organization It may be distributed and/or modified under the LaTeX Project Public License, @@ -267,7 +267,7 @@ by Vafa Khalighi. \documentclass{ltxdoc} \input{bidi-doc-preamble.ltx} \hypersetup{% - pdftitle={Source documentation for version 39.6 of the bidi + pdftitle={Source documentation for version 39.7 of the bidi package}% } \EnableCrossrefs @@ -286,7 +286,7 @@ by Vafa Khalighi. % \GetFileInfo{\jobname.dtx} % \title{\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}\\ %\LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt] -%\large Source documentation for \textcolor{blue!65!black}{version 39.6}} +%\large Source documentation for \textcolor{blue!65!black}{version 39.7}} % \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}} %\setcounter{page}{0} %\thispagestyle{empty} @@ -296,7 +296,7 @@ by Vafa Khalighi. %\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}} % %\Large -%Source documentation for \textcolor{blue!65!black}{version 39.6}} +%Source documentation for \textcolor{blue!65!black}{version 39.7}} % %\vskip 0pt plus 3fill %\textit{\large to my Master, \textbf{Ferdowsi The Great}} @@ -329,7 +329,7 @@ by Vafa Khalighi. % %\vskip 0pt plus 3fill % -%Copyright (c) 2007--2022 Vafa Khalighi +%Copyright (c) 2007--2023 Vafa Khalighi % %Copyright (c) 2018--2020 bidi-tex GitHub Organization % @@ -345,7 +345,7 @@ by Vafa Khalighi. %\iffalse %<*table> %\fi -%% \CheckSum{55469} +%% \CheckSum{58794} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -2430,7 +2430,7 @@ by Vafa Khalighi. %\fi % \section{File \texttt{beamerbaseframecomponents-xetex-bidi.def}} % \begin{macrocode} -\ProvidesFile{beamerbaseframecomponents-xetex-bidi.def}[2022/06/13 v0.4 bidi adaptations for beamerbaseframecomponents package for XeTeX engine] +\ProvidesFile{beamerbaseframecomponents-xetex-bidi.def}[2023/01/18 v0.5 bidi adaptations for beamerbaseframecomponents package for XeTeX engine] \renewcommand{\setbeamersize}[1]{% \beamer@dogeometryfalse% \setkeys{beamer@margin}{#1}% @@ -2696,8 +2696,8 @@ by Vafa Khalighi. \renewcommand<>\@mpfootnotetext[1]{% \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\if@RTL@footnote\global\let\bidi@mpfootnoterule\right@footnoterule\else\global\let\bidi@mpfootnoterule\left@footnoterule\fi\fi\fi \global\setbox\@mpfootins\vbox{% - \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \unvbox\@mpfootins + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \reset@font \bidi@@footnotetext@font \hsize\columnwidth @@ -2712,8 +2712,8 @@ by Vafa Khalighi. \renewcommand<>\@mpRTLfootnotetext[1]{% \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\global\let\bidi@mpfootnoterule\right@footnoterule\fi\fi \global\setbox\@mpfootins\vbox{% + \unvbox\@mpfootins \@RTLtrue - \unvbox\@mpfootins \reset@font \bidi@@RTLfootnotetext@font \hsize\columnwidth @@ -2728,8 +2728,8 @@ by Vafa Khalighi. \renewcommand<>\@mpLTRfootnotetext[1]{% \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\global\let\bidi@mpfootnoterule\left@footnoterule\fi\fi \global\setbox\@mpfootins\vbox{% + \unvbox\@mpfootins \@RTLfalse - \unvbox\@mpfootins \reset@font \bidi@@LTRfootnotetext@font \hsize\columnwidth @@ -4589,9 +4589,9 @@ by Vafa Khalighi. % \section{File \texttt{bidi.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\def\bididate{2022/11/06} -\def\bidi@version{39.6} -\def\bidi@releasename{Women, Life, and Liberty} +\def\bididate{2023/01/18} +\def\bidi@version{39.7} +\def\bidi@releasename{Serge Lang} \newcommand*{\bidireleasename}{\bidi@releasename} \ProvidesPackage{bidi}[\bididate\space v\bidi@version\space (Release \bidi@releasename)\space Bidirectional typesetting in plain TeX and LaTeX] @@ -4605,7 +4605,7 @@ Bidirectional typesetting in plain TeX and LaTeX] * and LaTeX. The package includes adaptations^^J% * for use with many other commonly-used packages.^^J% * ^^J% -* Copyright (c) 2007--2022 Vafa Khalighi^^J% +* Copyright (c) 2007--2023 Vafa Khalighi^^J% * Copyright (c) 2018--2020 bidi-tex GitHub organization^^J% * ^^J% * v\bidi@version\space (Release \bidi@releasename), \bididate^^J% @@ -4679,7 +4679,7 @@ Bidirectional typesetting in plain TeX and LaTeX] } \newcommand*{\@bidi@pdfcustomproperties}{% This is the bidi package, Version \bidi@version\space (Release \bidi@releasename), - Released November 6, 2022. + Released January 18, 2023. } \newcommand*{\bidi@beamer@ragged}{} \@RTLmainfalse @@ -4923,10 +4923,10 @@ Bidirectional typesetting in plain TeX and LaTeX] %\fi % \section{File \texttt{bidi.tex}} % \begin{macrocode} -\def\bididate{2022/11/06} +\def\bididate{2023/01/18} \catcode`@=11 -\def\bidi@version{39.6} -\def\bidi@releasename{Women, Life, and Liberty} +\def\bidi@version{39.7} +\def\bidi@releasename{Serge Lang} \def\bidireleasename{\bidi@releasename} \let \protect \relax \newlinechar`\^^J @@ -4940,7 +4940,7 @@ Bidirectional typesetting in plain TeX and LaTeX] * and LaTeX. The package includes adaptations^^J% * for use with many other commonly-used packages.^^J% * ^^J% -* Copyright (c) 2007--2022 Vafa Khalighi^^J% +* Copyright (c) 2007--2023 Vafa Khalighi^^J% * Copyright (c) 2018--2020 bidi-tex GitHub organization^^J% * ^^J% * v\bidi@version\space (Release \bidi@releasename), \bididate^^J% @@ -5029,7 +5029,7 @@ Bidirectional typesetting in plain TeX and LaTeX] } \def\@bidi@pdfcustomproperties{% This is the bidi package, Version \bidi@version\space (Release \bidi@releasename), - Released November 6, 2022. + Released January 18, 2023. } \def\bidi@pdfm@mark{% \special{pdf:% @@ -12545,12 +12545,11 @@ bidi implementation of tufte title] %\fi % \section{File \texttt{extrafootnotefeatures-xetex-bidi.def}} % \begin{macrocode} -\ProvidesFile{extrafootnotefeatures-xetex-bidi.def}[2022/07/14 v2.4 bidi extra footnote features for XeTeX engine] +\ProvidesFile{extrafootnotefeatures-xetex-bidi.def}[2023/01/18 v2.5 bidi extra footnote features for XeTeX engine] \newdimen\bidi@columnwidth \def\bidi@floathook{% \bidi@columnwidth\columnwidth } -\newif\if@bidi@void@@mpfootins \newcommand*{\@bidi@before@Hy@hyperfootnotes}{% \if@bidi@csundef{ifHy@hyperfootnotes}{}{% \if@bidi@csundef{HLTR@@LTRfootnotetext}{}{% @@ -12628,6 +12627,23 @@ bidi implementation of tufte title] \@normalfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\bidi@bidiold@footnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \insert\footins{% + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font + \foottextfont + \@preamfntext + \hsize\columnwidth + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@normalfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare +} \renewcommand{\@RTLfootnotetext}[1]{% \insert\footins{% \@RTLtrue% @@ -12642,6 +12658,23 @@ bidi implementation of tufte title] \@normalRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\bidi@bidiold@RTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \insert\footins{% + \@RTLtrue% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font + \RTLfoottextfont + \@preamfntext + \hsize\columnwidth + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@normalRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare +} \renewcommand{\@LTRfootnotetext}[1]{% \insert\footins{% \@RTLfalse% @@ -12657,8 +12690,22 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \renewcommand{\@mpfootnotetext}[1]{% - \global\setbox\@mpfootins\vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \global\setbox\@mpfootins\vbox{% \unvbox\@mpfootins + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font% + \foottextfont \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@normalfootfmt{#1}% + \color@endgroup}} +\newcommand{\bidi@bidiold@mpfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootins\vbox{% + \unvbox\@mpfootins + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font% \foottextfont \hsize\columnwidth \@parboxrestore @@ -12668,8 +12715,9 @@ bidi implementation of tufte title] \@normalfootfmt{#1}% \color@endgroup}} \renewcommand{\@mpLTRfootnotetext}[1]{% - \global\setbox\@mpfootins\vbox{\@RTLfalse% + \global\setbox\@mpfootins\vbox{% \unvbox\@mpfootins + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font% \LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -12679,8 +12727,22 @@ bidi implementation of tufte title] \@normalLTRfootfmt{#1}% \color@endgroup}} \renewcommand{\@mpRTLfootnotetext}[1]{% - \global\setbox\@mpfootins\vbox{\@RTLtrue% + \global\setbox\@mpfootins\vbox{% + \unvbox\@mpfootins + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font% + \RTLfoottextfont \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@normalRTLfootfmt{#1}% + \color@endgroup}} +\newcommand{\bidi@bidiold@mpRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootins\vbox{% \unvbox\@mpfootins + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font% \RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -12809,48 +12871,103 @@ bidi implementation of tufte title] \fi \fi } -\bidi@ensure@newcommand{\m@mdoextrafeetmini}{% - \extrafeetminihook} -\bidi@ensure@newcommand{\extrafeetendmini}{% - \ifvoid\@mpfootinsv@r - \ifvoid\@mpfootinsv@l +\def\bidi@reinsertfootnote#1#2#3{% + \ifvoid#1 + \else + \insert\footins{#2#3}% + \fi +} +\def\bidi@joinmpfootnotes#1#2#3{% + \ifvoid#1 + \else + \@tempskipa\skip#1% + \bidi@ifmulticol{\divide\@tempskipa\col@number}{}% + \edef\bidi@footskip{\vskip\the\@tempskipa\relax}% + \bidi@removexfootskip + \ifvoid\@mpfootins + \global\setbox\@mpfootins\vbox{#2#3}% \else - \vskip\skip\@mpfootins - \normalcolor - \if@bidi@void@@mpfootins - \footnoterule - \fi - \mp@LTRfootgroupv@l + \global\setbox\@mpfootins\vbox{% + \unvbox\@mpfootins + \bidi@footskip + #2#3% + }% \fi - \else - \vskip\skip\@mpfootins - \normalcolor - \if@bidi@void@@mpfootins - \footnoterule + \fi +} +\newcount\bidi@absolutepage@count +\bidi@absolutepage@count\@ne +\newcount\bidi@absolutefootnote@count +\bidi@AfterOutputBoxOutputPage{% + \if@filesw + \edef\@tempa{% + \write\@auxout{% + \string\bidi@finalfootnoteperpage% + {\noexpand\number\noexpand\bidi@absolutepage@count}% + {\noexpand\number\noexpand\bidi@absolutefootnote@count}% + }% + }% + \@tempa \fi - \mp@footgroupv@r - \ifvoid\@mpfootinsv@l +} +\bidi@AtEndOutputPage{% + \global\advance\bidi@absolutepage@count\@ne +} +\newcommand*{\bidi@finalfootnoteperpage}[2]{% + \expandafter\gdef\csname bidi@currentpagefinalfootnote@@#1\endcsname{#2}% +} +\newif\if@bidi@finalfootnoteperpage +\newcommand{\bidi@ifafterfinalfootnoteperpage}[2]{% + \if@bidi@csundef{bidi@currentpagefinalfootnote@@\number\bidi@absolutepage@count}{% + \global\@bidi@finalfootnoteperpagetrue + }{% + \global\@bidi@finalfootnoteperpagefalse + \ifnum\bidi@absolutefootnote@count=\bidi@csuse{bidi@currentpagefinalfootnote@@\number\bidi@absolutepage@count}% + #1% \else - \vskip\skip\@mpfootins - \normalcolor\mp@LTRfootgroupv@l + #2% \fi + }% +} +\newcommand{\bidi@reinsertfinalfootnoteperpage}[3]{% + \bidi@ifafterfinalfootnoteperpage{% + \bidi@reinsertfootnote{#1}{#2}{#3}% + }{% + }% +} +\newcommand*{\bidi@step@absolutefootnote@count}{% + \global\advance\bidi@absolutefootnote@count\@ne +} +\bidi@AfterEndDocumentCheckLabelsRerun{% + \if@bidi@finalfootnoteperpage + \PackageWarningNoLine{bidi}{% + The absolute final footnote is not + known on every page of your + document. Rerun TeX to get the + absolute final footnote on every page + of your document% + }% \fi +} +\bidi@ensure@newcommand{\m@mdoextrafeetmini}{% + \extrafeetminihook} +\bidi@ensure@newcommand{\extrafeetendmini}{% +\bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l \extrafeetendminihook} \bidi@ensure@newcommand{\extrafeetendminihook}{} \bidi@ensure@newcommand{\m@mdoextrafeetendmini}{\extrafeetendmini} \def\endminipage{% \par \unskip + \m@mdoextrafeetendmini \ifvoid\@mpfootins - \global\@bidi@void@@mpfootinstrue \else - \global\@bidi@void@@mpfootinsfalse \vskip\skip\@mpfootins \normalcolor \footnoterule \unvbox\@mpfootins \fi - \m@mdoextrafeetendmini \@minipagefalse \color@endgroup \egroup @@ -12874,7 +12991,9 @@ bidi implementation of tufte title] \m@make@footstart{v@l} \bidi@ensure@newcommand{\@footgroupv@r}{} \newinsert\@mpfootinsv@r +\skip\@mpfootinsv@r\skip\@mpfootins \newinsert\@mpfootinsv@l +\skip\@mpfootinsv@l\skip\@mpfootins \bidi@ensure@newcommand{\mp@footgroupv@r}{} \newcount\m@m@k \newdimen\m@m@h \bidi@ensure@newcommand*{\m@mrigidbalance}[3]{\setbox0=\box#1 \m@m@k=#2 \m@m@h=#3 @@ -12914,6 +13033,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mptwocol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\TwoColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@TwoColfootnotetext + \let\@LTRfootnotetext\@TwoColLTRfootnotetext + \let\@RTLfootnotetext\@TwoColRTLfootnotetext + \dimen\footinsv@r=2\footinsdim + \count\footinsv@r=500\relax + \m@make@twocol@footgroup{v@r}% + \let\@footgroupv@r\@twocol@footgroupv@r + \dimen\footinsv@l=2\footinsdim + \count\footinsv@l=500\relax + \bidi@make@twocol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@twocol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpTwoColfootnotetext + \let\@mpLTRfootnotetext\@mpTwoColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpTwoColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mptwocol@footgroup{v@r}% + \let\mp@footgroupv@r\@mptwocol@footgroupv@r + \bidi@make@mptwocol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mptwocol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@twocolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -12930,6 +13074,42 @@ bidi implementation of tufte title] \@twocolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@TwoColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@twocolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@twocolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -12940,6 +13120,23 @@ bidi implementation of tufte title] \@twocolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@TwoColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count +\bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@twocolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@twocolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -12950,6 +13147,23 @@ bidi implementation of tufte title] \@twocolRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@TwoColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count +\bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@twocolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preamtwofmt}{% \hsize .45\hsize \parindent=\z@ @@ -12971,13 +13185,43 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi - \vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@twocolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpTwoColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% \unvbox \if@RTL@footnote \@mpfootinsv@r \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -12988,8 +13232,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mptwocolLTRfootnotetext}[1]{% - \global\setbox\@mpfootinsv@l\vbox{\@RTLfalse% + \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@twocolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpTwoColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -13000,8 +13259,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mptwocolRTLfootnotetext}[1]{% - \global\setbox\@mpfootinsv@r\vbox{\@RTLtrue% + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@twocolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpTwoColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -13058,6 +13332,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mpthreecol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\ThreeColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% % [RS] + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@ThreeColfootnotetext + \let\@LTRfootnotetext\@ThreeColLTRfootnotetext + \let\@RTLfootnotetext\@ThreeColRTLfootnotetext + \dimen\footinsv@r=3\footinsdim + \count\footinsv@r=333\relax + \m@make@threecol@footgroup{v@r}% + \let\@footgroupv@r\@threecol@footgroupv@r + \dimen\footinsv@l=3\footinsdim + \count\footinsv@l=333\relax + \bidi@make@threecol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@threecol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpThreeColfootnotetext + \let\@mpLTRfootnotetext\@mpThreeColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpThreeColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mpthreecol@footgroup{v@r}% + \let\mp@footgroupv@r\@mpthreecol@footgroupv@r + \bidi@make@mpthreecol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mpthreecol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@threecolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -13073,6 +13372,41 @@ bidi implementation of tufte title] \color@begingroup \@threecolfootfmt{#1}% \color@endgroup}\m@mmf@prepare} +\newcommand{\@ThreeColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@threecolfootfmt{#1}% + \color@endgroup}\m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@threecolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -13082,6 +13416,22 @@ bidi implementation of tufte title] \color@begingroup \@threecolLTRfootfmt{#1}% \color@endgroup}\m@mmf@prepare} +\newcommand{\@ThreeColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@threecolLTRfootfmt{#1}% + \color@endgroup}\m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@threecolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -13091,6 +13441,22 @@ bidi implementation of tufte title] \color@begingroup \@threecolRTLfootfmt{#1}% \color@endgroup}\m@mmf@prepare} +\newcommand{\@ThreeColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@threecolRTLfootfmt{#1}% + \color@endgroup}\m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preamthreefmt}{% \hsize .3\hsize \parindent=\z@ @@ -13112,13 +13478,42 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi - \vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \vbox{% \unvbox \if@RTL@footnote \@mpfootinsv@r \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@threecolfootfmt{#1}% + \color@endgroup}\m@mmf@prepare} +\newcommand{\@mpThreeColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -13128,8 +13523,22 @@ bidi implementation of tufte title] \@threecolfootfmt{#1}% \color@endgroup}\m@mmf@prepare} \bidi@ensure@newcommand{\@mpthreecolLTRfootnotetext}[1]{% - \global\setbox\@mpfootinsv@l\vbox{\@RTLfalse% + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@threecolLTRfootfmt{#1}% + \color@endgroup}\m@mmf@prepare} +\newcommand{\@mpThreeColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -13139,8 +13548,22 @@ bidi implementation of tufte title] \@threecolLTRfootfmt{#1}% \color@endgroup}\m@mmf@prepare} \bidi@ensure@newcommand{\@mpthreecolRTLfootnotetext}[1]{% - \global\setbox\@mpfootinsv@r\vbox{\@RTLtrue% + \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@threecolRTLfootfmt{#1}% + \color@endgroup}\m@mmf@prepare} +\newcommand{\@mpThreeColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -13196,6 +13619,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mpfourcol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\FourColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% % [RS] + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@FourColfootnotetext + \let\@LTRfootnotetext\@FourColLTRfootnotetext + \let\@RTLfootnotetext\@FourColRTLfootnotetext + \dimen\footinsv@r=4\footinsdim + \count\footinsv@r=250\relax + \m@make@fourcol@footgroup{v@r}% + \let\@footgroupv@r\@fourcol@footgroupv@r + \dimen\footinsv@l=4\footinsdim + \count\footinsv@l=250\relax + \bidi@make@fourcol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@fourcol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpFourColfootnotetext + \let\@mpLTRfootnotetext\@mpFourColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpFourColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mpfourcol@footgroup{v@r}% + \let\mp@footgroupv@r\@mpfourcol@footgroupv@r + \bidi@make@mpfourcol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mpfourcol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@fourcolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -13212,6 +13660,42 @@ bidi implementation of tufte title] \@fourcolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@FourColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@fourcolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@fourcolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -13222,6 +13706,23 @@ bidi implementation of tufte title] \@fourcolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@FourColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@fourcolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@fourcolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -13232,6 +13733,23 @@ bidi implementation of tufte title] \@fourcolRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@FourColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@fourcolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preamfourfmt}{% \hsize .25\hsize \parindent=\z@ @@ -13253,13 +13771,43 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi - \vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \vbox{% \unvbox \if@RTL@footnote \@mpfootinsv@r \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@fourcolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpFourColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -13270,8 +13818,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mpfourcolLTRfootnotetext}[1]{% - \global\setbox\@mpfootinsv@l\vbox{\@RTLfalse% + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@fourcolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpFourColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -13282,8 +13845,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mpfourcolRTLfootnotetext}[1]{% - \global\setbox\@mpfootinsv@r\vbox{\@RTLtrue% + \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@fourcolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpFourColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -13340,6 +13918,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mpfivecol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\FiveColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% % [RS] + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@FiveColfootnotetext + \let\@LTRfootnotetext\@FiveColLTRfootnotetext + \let\@RTLfootnotetext\@FiveColRTLfootnotetext + \dimen\footinsv@r=5\footinsdim + \count\footinsv@r=200\relax + \m@make@fivecol@footgroup{v@r}% + \let\@footgroupv@r\@fivecol@footgroupv@r + \dimen\footinsv@l=5\footinsdim + \count\footinsv@l=200\relax + \bidi@make@fivecol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@fivecol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpFiveColfootnotetext + \let\@mpLTRfootnotetext\@mpFiveColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpFiveColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mpfivecol@footgroup{v@r}% + \let\mp@footgroupv@r\@mpfivecol@footgroupv@r + \bidi@make@mpfivecol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mpfivecol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@fivecolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -13356,6 +13959,42 @@ bidi implementation of tufte title] \@fivecolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@FiveColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@fivecolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@fivecolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -13366,6 +14005,23 @@ bidi implementation of tufte title] \@fivecolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@FiveColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@fivecolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@fivecolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -13376,6 +14032,23 @@ bidi implementation of tufte title] \@fivecolRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@FiveColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@fivecolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preamfivefmt}{% \hsize .2\hsize \parindent=\z@ @@ -13397,13 +14070,43 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi - \vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \vbox{% \unvbox \if@RTL@footnote \@mpfootinsv@r \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@fivecolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpFiveColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -13414,8 +14117,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mpfivecolLTRfootnotetext}[1]{% - \global\setbox\@mpfootinsv@l\vbox{\@RTLfalse% + \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@fivecolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpFiveColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -13426,8 +14144,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mpfivecolRTLfootnotetext}[1]{% - \global\setbox\@mpfootinsv@r\vbox{\@RTLtrue% + \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@fivecolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpFiveColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -13484,6 +14217,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mpsixcol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\SixColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% % [RS] + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@SixColfootnotetext + \let\@LTRfootnotetext\@SixColLTRfootnotetext + \let\@RTLfootnotetext\@SixColRTLfootnotetext + \dimen\footinsv@r=6\footinsdim + \count\footinsv@r=166\relax + \m@make@sixcol@footgroup{v@r}% + \let\@footgroupv@r\@sixcol@footgroupv@r + \dimen\footinsv@l=6\footinsdim + \count\footinsv@l=166\relax + \bidi@make@sixcol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@sixcol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpSixColfootnotetext + \let\@mpLTRfootnotetext\@mpSixColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpSixColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mpsixcol@footgroup{v@r}% + \let\mp@footgroupv@r\@mpsixcol@footgroupv@r + \bidi@make@mpsixcol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mpsixcol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@sixcolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -13500,6 +14258,42 @@ bidi implementation of tufte title] \@sixcolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@SixColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@sixcolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@sixcolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -13510,6 +14304,23 @@ bidi implementation of tufte title] \@sixcolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@SixColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@sixcolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@sixcolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -13520,6 +14331,23 @@ bidi implementation of tufte title] \@sixcolRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@SixColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@sixcolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preamsixfmt}{% \hsize .16\hsize \parindent=\z@ @@ -13534,7 +14362,7 @@ bidi implementation of tufte title] \bidi@ensure@newcommand{\@sixcolRTLfootfmt}[1]{% \@preamsixfmt {\RTLfootfootmark\strut {\RTLfoottextfont #1}\strut\par}\allowbreak} -\bidi@ensure@newcommand{\@mpsixcolfootnotetext}[1]{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% +\bidi@ensure@newcommand{\@mpsixcolfootnotetext}[1]{% \global\setbox \if@RTL@footnote \@mpfootinsv@r @@ -13548,6 +14376,36 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@sixcolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpSixColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -13557,9 +14415,10 @@ bidi implementation of tufte title] \@sixcolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} -\bidi@ensure@newcommand{\@mpsixcolLTRfootnotetext}[1]{\@RTLfalse% +\bidi@ensure@newcommand{\@mpsixcolLTRfootnotetext}[1]{% \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -13569,9 +14428,38 @@ bidi implementation of tufte title] \@sixcolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} -\bidi@ensure@newcommand{\@mpsixcolRTLfootnotetext}[1]{\@RTLtrue% +\newcommand{\@mpSixColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@sixcolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\bidi@ensure@newcommand{\@mpsixcolRTLfootnotetext}[1]{% + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@sixcolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpSixColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -13628,6 +14516,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mpsevencol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\SevenColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% % [RS] + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@SevenColfootnotetext + \let\@LTRfootnotetext\@SevenColLTRfootnotetext + \let\@RTLfootnotetext\@SevenColRTLfootnotetext + \dimen\footinsv@r=7\footinsdim + \count\footinsv@r=142\relax + \m@make@sevencol@footgroup{v@r}% + \let\@footgroupv@r\@sevencol@footgroupv@r + \dimen\footinsv@l=7\footinsdim + \count\footinsv@l=142\relax + \bidi@make@sevencol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@sevencol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpSevenColfootnotetext + \let\@mpLTRfootnotetext\@mpSevenColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpSevenColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mpsevencol@footgroup{v@r}% + \let\mp@footgroupv@r\@mpsevencol@footgroupv@r + \bidi@make@mpsevencol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mpsevencol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@sevencolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -13644,6 +14557,42 @@ bidi implementation of tufte title] \@sevencolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@SevenColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@sevencolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@sevencolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -13654,6 +14603,23 @@ bidi implementation of tufte title] \@sevencolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@SevenColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@sevencolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@sevencolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -13664,6 +14630,23 @@ bidi implementation of tufte title] \@sevencolRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@SevenColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@sevencolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preamsevenfmt}{% \hsize .142\hsize \parindent=\z@ @@ -13678,7 +14661,7 @@ bidi implementation of tufte title] \bidi@ensure@newcommand{\@sevencolRTLfootfmt}[1]{% \@preamsevenfmt {\RTLfootfootmark\strut {\RTLfoottextfont #1}\strut\par}\allowbreak} -\bidi@ensure@newcommand{\@mpsevencolfootnotetext}[1]{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% +\bidi@ensure@newcommand{\@mpsevencolfootnotetext}[1]{% \global\setbox \if@RTL@footnote \@mpfootinsv@r @@ -13692,6 +14675,7 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -13701,9 +14685,39 @@ bidi implementation of tufte title] \@sevencolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} -\bidi@ensure@newcommand{\@mpsevencolLTRfootnotetext}[1]{\@RTLfalse% +\newcommand{\@mpSevenColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@sevencolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\bidi@ensure@newcommand{\@mpsevencolLTRfootnotetext}[1]{% \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -13713,9 +14727,38 @@ bidi implementation of tufte title] \@sevencolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} -\bidi@ensure@newcommand{\@mpsevencolRTLfootnotetext}[1]{\@RTLtrue% +\newcommand{\@mpSevenColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@sevencolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\bidi@ensure@newcommand{\@mpsevencolRTLfootnotetext}[1]{% \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@sevencolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpSevenColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -13772,6 +14815,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mpeightcol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\EightColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% % [RS] + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@EightColfootnotetext + \let\@LTRfootnotetext\@EightColLTRfootnotetext + \let\@RTLfootnotetext\@EightColRTLfootnotetext + \dimen\footinsv@r=8\footinsdim + \count\footinsv@r=125\relax + \m@make@eightcol@footgroup{v@r}% + \let\@footgroupv@r\@eightcol@footgroupv@r + \dimen\footinsv@l=8\footinsdim + \count\footinsv@l=125\relax + \bidi@make@eightcol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@eightcol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpEightColfootnotetext + \let\@mpLTRfootnotetext\@mpEightColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpEightColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mpeightcol@footgroup{v@r}% + \let\mp@footgroupv@r\@mpeightcol@footgroupv@r + \bidi@make@mpeightcol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mpeightcol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@eightcolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -13788,6 +14856,42 @@ bidi implementation of tufte title] \@eightcolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@EightColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@eightcolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@eightcolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -13798,6 +14902,23 @@ bidi implementation of tufte title] \@eightcolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@EightColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@eightcolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@eightcolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -13808,6 +14929,23 @@ bidi implementation of tufte title] \@eightcolRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@EightColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@eightcolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preameightfmt}{% \hsize .125\hsize \parindent=\z@ @@ -13829,13 +14967,43 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi - \vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@eightcolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpEightColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% \unvbox \if@RTL@footnote \@mpfootinsv@r \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -13846,8 +15014,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mpeightcolLTRfootnotetext}[1]{% - \global\setbox\@mpfootinsv@l\vbox{\@RTLfalse% + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@eightcolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpEightColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -13858,8 +15041,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mpeightcolRTLfootnotetext}[1]{% - \global\setbox\@mpfootinsv@r\vbox{\@RTLtrue% + \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@eightcolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpEightColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -13916,6 +15114,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mpninecol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\NineColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% % [RS] + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@NineColfootnotetext + \let\@LTRfootnotetext\@NineColLTRfootnotetext + \let\@RTLfootnotetext\@NineColRTLfootnotetext + \dimen\footinsv@r=9\footinsdim + \count\footinsv@r=111\relax + \m@make@ninecol@footgroup{v@r}% + \let\@footgroupv@r\@ninecol@footgroupv@r + \dimen\footinsv@l=9\footinsdim + \count\footinsv@l=111\relax + \bidi@make@ninecol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@ninecol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpNineColfootnotetext + \let\@mpLTRfootnotetext\@mpNineColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpNineColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mpninecol@footgroup{v@r}% + \let\mp@footgroupv@r\@mpninecol@footgroupv@r + \bidi@make@mpninecol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mpninecol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@ninecolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -13932,6 +15155,42 @@ bidi implementation of tufte title] \@ninecolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@NineColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@ninecolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@ninecolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -13942,6 +15201,23 @@ bidi implementation of tufte title] \@ninecolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@NineColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@ninecolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@ninecolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -13952,6 +15228,23 @@ bidi implementation of tufte title] \@ninecolRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@NineColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@ninecolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preamninefmt}{% \hsize .1\hsize \parindent=\z@ @@ -13973,13 +15266,43 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi - \vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@ninecolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpNineColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% \unvbox \if@RTL@footnote \@mpfootinsv@r \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -13990,8 +15313,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mpninecolLTRfootnotetext}[1]{% - \global\setbox\@mpfootinsv@l\vbox{\@RTLfalse% + \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@ninecolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpNineColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -14002,8 +15340,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mpninecolRTLfootnotetext}[1]{% - \global\setbox\@mpfootinsv@r\vbox{\@RTLtrue% + \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@ninecolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpNineColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -14060,6 +15413,31 @@ bidi implementation of tufte title] \let\mp@LTRfootgroupv@l\@mptencol@LTRfootgroupv@l \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\TenColumnFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% % [RS] + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@TenColfootnotetext + \let\@LTRfootnotetext\@TenColLTRfootnotetext + \let\@RTLfootnotetext\@TenColRTLfootnotetext + \dimen\footinsv@r=10\footinsdim + \count\footinsv@r=100\relax + \m@make@tencol@footgroup{v@r}% + \let\@footgroupv@r\@tencol@footgroupv@r + \dimen\footinsv@l=10\footinsdim + \count\footinsv@l=100\relax + \bidi@make@tencol@LTRfootgroup{v@l}% + \let\@LTRfootgroupv@l\@tencol@LTRfootgroupv@l + \let\@mpfootnotetext\@mpTenColfootnotetext + \let\@mpLTRfootnotetext\@mpTenColLTRfootnotetext + \let\@mpRTLfootnotetext\@mpTenColRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mptencol@footgroup{v@r}% + \let\mp@footgroupv@r\@mptencol@footgroupv@r + \bidi@make@mptencol@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mptencol@LTRfootgroupv@l + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@tencolfootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -14076,6 +15454,42 @@ bidi implementation of tufte title] \@tencolfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@TenColfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi +\vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@tencolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@tencolLTRfootnotetext}[1]{\insert\footinsv@l{\@RTLfalse% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont @@ -14086,6 +15500,23 @@ bidi implementation of tufte title] \@tencolLTRfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@TenColLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \@RTLfalse% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@tencolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@tencolRTLfootnotetext}[1]{\insert\footinsv@r{\@RTLtrue% \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont @@ -14096,6 +15527,23 @@ bidi implementation of tufte title] \@tencolRTLfootfmt{#1}% \color@endgroup}% \m@mmf@prepare} +\newcommand{\@TenColRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@tencolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@preamtenfmt}{% \hsize .1\hsize \parindent=\z@ @@ -14117,13 +15565,43 @@ bidi implementation of tufte title] \else \@mpfootinsv@l \fi - \vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \vbox{% \unvbox \if@RTL@footnote \@mpfootinsv@r \else \@mpfootinsv@l \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@tencolfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpTenColfootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore @@ -14134,8 +15612,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mptencolLTRfootnotetext}[1]{% - \global\setbox\@mpfootinsv@l\vbox{\@RTLfalse% + \global\setbox\@mpfootinsv@l\vbox{% \unvbox\@mpfootinsv@l + \@RTLfalse + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@tencolLTRfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpTenColLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \@RTLfalse \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore @@ -14146,8 +15639,23 @@ bidi implementation of tufte title] \color@endgroup}% \m@mmf@prepare} \bidi@ensure@newcommand{\@mptencolRTLfootnotetext}[1]{% - \global\setbox\@mpfootinsv@r\vbox{\@RTLtrue% + \global\setbox\@mpfootinsv@r\vbox{% \unvbox\@mpfootinsv@r + \@RTLtrue + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@tencolRTLfootfmt{#1}% + \color@endgroup}% + \m@mmf@prepare} +\newcommand{\@mpTenColRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \@RTLtrue \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore @@ -14270,6 +15778,59 @@ bidi implementation of tufte title] } \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\ParagraphFootnotes}{% + \@namedef{foottextfontv@r}{\foottextfont}% + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \let\@footnotetext\@Parafootnotetext + \let\@LTRfootnotetext\@ParaLTRfootnotetext + \let\@RTLfootnotetext\@ParaRTLfootnotetext + \dimen\footinsv@r=\footinsdim + \count\footinsv@r=1000\relax + \let\bidi@removexfootskip\bidi@removexparafootskip + \m@make@para@footgroup{v@r}% + \m@make@para@footstart{v@r}% + \let\@footgroupv@r\@para@footgroupv@r + \let\@footstartv@r\@para@footstartv@r + \dimen\footinsv@l=\footinsdim + \count\footinsv@l=1000\relax + \bidi@make@para@LTRfootgroup{v@l}% + \m@make@para@footstart{v@l}% + \let\@LTRfootgroupv@l\@para@LTRfootgroupv@l + \let\@footstartv@l\@para@footstartv@l + \let\@mpfootnotetext\@mpParafootnotetext + \let\@mpLTRfootnotetext\@mpParaLTRfootnotetext + \let\@mpRTLfootnotetext\@mpParaRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \m@make@mppara@footgroup{v@r}% + \bidi@make@mppara@LTRfootgroup{v@l}% + \let\mp@footgroupv@r\@mppara@footgroupv@r + \let\mp@LTRfootgroupv@l\@mppara@LTRfootgroupv@l + \g@addto@macro\bidi@floathook{% + \begingroup + \foottextfont \@tempdima\normalbaselineskip + \multiply \@tempdima \@cclvi + \@tempdimb \columnwidth + \divide \@tempdimb \@cclvi + \divide \@tempdima \@tempdimb + \xdef\footfudgefactor{\strip@pt\@tempdima}% + \endgroup + } + \AtBeginDocument{% + \begingroup + \foottextfont + \@tempdima\footnotesep + \advance\@tempdima -\ht\strutbox + \ifdim\@tempdima<\z@ \@tempdima\z@ \fi + \advance\@tempdima.5\normalbaselineskip + \bidi@xparaskip + \xdef\bidi@paraskip{\the\@tempdima\relax}% + \endgroup + \bidi@startparafootskip\footinsv@r + \bidi@startparafootskip\footinsv@l + } + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \newcommand{\normalRTLparaLTRfootnotes}{% \@namedef{foottextfontv@l}{\LTRfoottextfont}% \@bidi@before@Hy@hyperfootnotes @@ -14321,6 +15882,57 @@ bidi implementation of tufte title] } \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth } +\newcommand{\NormalRTLParaLTRFootnotes}{% + \@namedef{foottextfontv@l}{\LTRfoottextfont}% + \@bidi@before@Hy@hyperfootnotes + \if@RTL@footnote + \let\@footnotetext\bidi@bidiold@footnotetext + \else + \let\@footnotetext\@Parafootnotetext + \fi + \let\@LTRfootnotetext\@ParaLTRfootnotetext + \let\@RTLfootnotetext\bidi@bidiold@RTLfootnotetext + \dimen\footinsv@l=\footinsdim + \count\footinsv@l=1000\relax + \let\bidi@removexfootskip\bidi@removexparafootskip + \bidi@make@para@LTRfootgroup{v@l}% + \m@make@para@footstart{v@l}% + \let\@LTRfootgroupv@l\@para@LTRfootgroupv@l + \let\@footstartv@l\@para@footstartv@l + \if@RTL@footnote + \let\@mpfootnotetext\bidi@bidiold@mpfootnotetext + \else + \let\@mpfootnotetext\@mpParafootnotetext + \fi + \let\@mpLTRfootnotetext\@mpParaLTRfootnotetext + \let\@mpRTLfootnotetext\bidi@bidiold@mpRTLfootnotetext + \@bidi@after@Hy@hyperfootnotes + \bidi@make@mppara@LTRfootgroup{v@l}% + \let\mp@LTRfootgroupv@l\@mppara@LTRfootgroupv@l + \g@addto@macro\bidi@floathook{% + \begingroup + \LTRfoottextfont \@tempdima\normalbaselineskip + \multiply \@tempdima \@cclvi + \@tempdimb \columnwidth + \divide \@tempdimb \@cclvi + \divide \@tempdima \@tempdimb + \xdef\footfudgefactor{\strip@pt\@tempdima}% + \endgroup + } + \AtBeginDocument{% + \begingroup + \LTRfoottextfont + \@tempdima\footnotesep + \advance\@tempdima -\ht\strutbox + \ifdim\@tempdima<\z@ \@tempdima\z@ \fi + \advance\@tempdima.5\normalbaselineskip + \bidi@xparaskip + \xdef\bidi@paraskip{\the\@tempdima\relax}% + \endgroup + \bidi@startparafootskip\footinsv@l + } + \@ifstar\bidi@star@footmarkwidth\bidi@normal@footmarkwidth +} \bidi@ensure@newcommand{\@parafootnotetext}[1]{\insert \if@RTL@footnote \footinsv@r @@ -14339,6 +15951,43 @@ bidi implementation of tufte title] \noindent \@parafootfmt{#1}% \color@endgroup}% \m@mungebox}\m@mmf@prepare} +\newcommand{\@Parafootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \if@RTL@footnote + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \else + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \vbox{% + \unvbox + \if@RTL@footnote + \footinsv@r + \else + \footinsv@l + \fi + \let\bidi@RTL@everypar\@empty% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \setbox0=\vbox{\hsize=\maxdimen + \color@begingroup + \noindent \@parafootfmt{#1}% + \color@endgroup}% + \m@mungebox}\m@mmf@prepare + \if@RTL@footnote + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r + \else + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \fi +} \bidi@ensure@newcommand{\@paraLTRfootnotetext}[1]{\insert\footinsv@l{% \let\bidi@RTL@everypar\@empty% \def\baselinestretch{\m@m@footnote@spacing}% @@ -14351,6 +16000,24 @@ bidi implementation of tufte title] \noindent \@paraLTRfootfmt{#1}% \color@endgroup}% \m@mungebox}\m@mmf@prepare} +\newcommand{\@ParaLTRfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@r\@footstartv@r\@footgroupv@r + \global\setbox\footinsv@l\vbox{% + \unvbox\footinsv@l + \let\bidi@RTL@everypar\@empty% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \setbox0=\vbox{\hsize=\maxdimen + \color@begingroup + \noindent \@paraLTRfootfmt{#1}% + \color@endgroup}% + \m@mungebox}\m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@l\@footstartv@l\@LTRfootgroupv@l +} \bidi@ensure@newcommand{\@paraRTLfootnotetext}[1]{\insert\footinsv@r{% \let\bidi@RTL@everypar\@empty% \def\baselinestretch{\m@m@footnote@spacing}% @@ -14363,6 +16030,24 @@ bidi implementation of tufte title] \noindent \@paraRTLfootfmt{#1}% \color@endgroup}% \m@mungebox}\m@mmf@prepare} +\newcommand{\@ParaRTLfootnotetext}[1]{% + \bidi@step@absolutefootnote@count + \bidi@reinsertfootnote\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \global\setbox\footinsv@r\vbox{% + \unvbox\footinsv@r + \let\bidi@RTL@everypar\@empty% + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \@preamfntext + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \setbox0=\vbox{\hsize=\maxdimen + \color@begingroup + \noindent \@paraRTLfootfmt{#1}% + \color@endgroup}% + \m@mungebox}\m@mmf@prepare + \bidi@reinsertfinalfootnoteperpage\footinsv@r\@footstartv@r\@footgroupv@r +} \bidi@ensure@newcommand{\@parafootfmt}[1]{% \parindent=\z@ \parfillskip=0pt \@plus 1fil @@ -14383,14 +16068,44 @@ bidi implementation of tufte title] \@mpfootinsv@l \fi \vbox{% - \let\bidi@RTL@everypar\@empty% + \unvbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \let\bidi@RTL@everypar\@empty \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\foottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \setbox0=\vbox{\hsize=\maxdimen + \color@begingroup + \noindent \@parafootfmt{#1}% + \color@endgroup}% + \m@mungebox}\m@mmf@prepare} +\newcommand{\@mpParafootnotetext}[1]{% + \if@RTL@footnote + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \else + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \fi + \global\setbox + \if@RTL@footnote + \@mpfootinsv@r + \else + \@mpfootinsv@l + \fi + \vbox{% \unvbox \if@RTL@footnote \@mpfootinsv@r \else \@mpfootinsv@l \fi + \let\bidi@RTL@everypar\@empty + \def\baselinestretch{\m@m@footnote@spacing}% \reset@font\foottextfont \hsize\columnwidth \@parboxrestore \protected@edef\@currentlabel{% @@ -14402,9 +16117,24 @@ bidi implementation of tufte title] \m@mungebox}\m@mmf@prepare} \bidi@ensure@newcommand{\@mpparaLTRfootnotetext}[1]{% \global\setbox\@mpfootinsv@l\vbox{% - \let\bidi@RTL@everypar\@empty% + \unvbox\@mpfootinsv@l + \let\bidi@RTL@everypar\@empty + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\LTRfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \setbox0=\vbox{\hsize=\maxdimen + \color@begingroup + \noindent \@paraLTRfootfmt{#1}% + \color@endgroup}% + \m@mungebox}\m@mmf@prepare} +\newcommand{\@mpParaLTRfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@r\@footstartv@r\mp@footgroupv@r + \global\setbox\@mpfootinsv@l\vbox{% + \unvbox\@mpfootinsv@l + \let\bidi@RTL@everypar\@empty \def\baselinestretch{\m@m@footnote@spacing}% - \unvbox\@mpfootinsv@l \reset@font\LTRfoottextfont \hsize\columnwidth \@parboxrestore \protected@edef\@currentlabel{% @@ -14416,9 +16146,24 @@ bidi implementation of tufte title] \m@mungebox}\m@mmf@prepare} \bidi@ensure@newcommand{\@mpparaRTLfootnotetext}[1]{% \global\setbox\@mpfootinsv@r\vbox{% - \let\bidi@RTL@everypar\@empty% + \unvbox\@mpfootinsv@r + \let\bidi@RTL@everypar\@empty + \def\baselinestretch{\m@m@footnote@spacing}% + \reset@font\RTLfoottextfont + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% + \setbox0=\vbox{\hsize=\maxdimen + \color@begingroup + \noindent \@paraRTLfootfmt{#1}% + \color@endgroup}% + \m@mungebox}\m@mmf@prepare} +\newcommand{\@mpParaRTLfootnotetext}[1]{% + \bidi@joinmpfootnotes\@mpfootinsv@l\@footstartv@l\mp@LTRfootgroupv@l + \global\setbox\@mpfootinsv@r\vbox{% + \unvbox\@mpfootinsv@r + \let\bidi@RTL@everypar\@empty \def\baselinestretch{\m@m@footnote@spacing}% - \unvbox\@mpfootinsv@r \reset@font\RTLfoottextfont \hsize\columnwidth \@parboxrestore \protected@edef\@currentlabel{% @@ -15146,7 +16891,7 @@ bidi implementation of tufte title] %\fi % \section{File \texttt{footnote-xetex-bidi.def}} % \begin{macrocode} -\ProvidesFile{footnote-xetex-bidi.def}[2017/08/09 v1.1 bidi footnote macros for XeTeX engine] +\ProvidesFile{footnote-xetex-bidi.def}[2023/01/18 v1.2 bidi footnote macros for XeTeX engine] \if@RTLmain\@RTL@footnotetrue\else\@RTL@footnotefalse\fi \newif\ifbidi@autofootnoterule \def\bidi@mpfootnoterule{\footnoterule} @@ -15384,8 +17129,9 @@ bidi implementation of tufte title] \long\def\@mpRTLfootnotetext#1{% \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\global\let\bidi@mpfootnoterule\right@footnoterule\fi\fi% - \global\setbox\@mpfootins\vbox{\@RTLtrue% + \global\setbox\@mpfootins\vbox{% \unvbox\@mpfootins + \@RTLtrue \reset@font% \bidi@@RTLfootnotetext@font% \reset@font\footnotesize \hsize\columnwidth @@ -15398,8 +17144,9 @@ bidi implementation of tufte title] \color@endgroup}} \long\def\@mpLTRfootnotetext#1{% \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\global\let\bidi@mpfootnoterule\left@footnoterule\fi\fi% - \global\setbox\@mpfootins\vbox{\@RTLfalse% + \global\setbox\@mpfootins\vbox{% \unvbox\@mpfootins + \@RTLfalse \reset@font% \bidi@@LTRfootnotetext@font% \reset@font\footnotesize \hsize\columnwidth @@ -15412,8 +17159,9 @@ bidi implementation of tufte title] \color@endgroup}} \long\def\@mpfootnotetext#1{% \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\if@RTL@footnote\global\let\bidi@mpfootnoterule\right@footnoterule\else\global\let\bidi@mpfootnoterule\left@footnoterule\fi\fi\fi% - \global\setbox\@mpfootins\vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi% + \global\setbox\@mpfootins\vbox{% \unvbox\@mpfootins + \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi \reset@font% \bidi@@footnotetext@font% \reset@font\footnotesize \hsize\columnwidth diff --git a/macros/xetex/latex/bidi/bidi.pdf b/macros/xetex/latex/bidi/bidi.pdf Binary files differindex 1f0376809e..7b6538b76f 100644 --- a/macros/xetex/latex/bidi/bidi.pdf +++ b/macros/xetex/latex/bidi/bidi.pdf |