From becf79ac9bbdddd15ef9d66a35c6d64252a2cd46 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 12 Sep 2023 03:01:04 +0000 Subject: CTAN sync 202309120301 --- .../biblatex-gb7714-2015/README.md | 3 +- .../biblatex-gb7714-2015-preamble.tex | 2 +- .../biblatex-gb7714-2015/biblatex-gb7714-2015.pdf | Bin 1722838 -> 1727093 bytes .../biblatex-gb7714-2015/biblatex-gb7714-2015.tex | 830 +++--- .../biblatex-gb7714-2015/gb7714-2015.bbx | 60 +- .../biblatex-gb7714-2015/gb7714-2015.cbx | 6 +- .../biblatex-gb7714-2015/gb7714-2015ay.bbx | 61 +- macros/latex/contrib/mathfont/README.txt | 13 +- macros/latex/contrib/mathfont/mathfont_code.dtx | 917 ++++--- macros/latex/contrib/mathfont/mathfont_code.pdf | Bin 371600 -> 377615 bytes .../mathfont/mathfont_example_cormorant.pdf | Bin 51345 -> 51361 bytes .../contrib/mathfont/mathfont_example_kelvinch.pdf | Bin 85079 -> 84682 bytes .../contrib/mathfont/mathfont_example_roboto.pdf | Bin 54420 -> 54396 bytes .../contrib/mathfont/mathfont_example_typey.pdf | Bin 47470 -> 47469 bytes .../contrib/mathfont/mathfont_symbol_list.pdf | Bin 180972 -> 181157 bytes .../latex/contrib/mathfont/mathfont_user_guide.pdf | Bin 116189 -> 118518 bytes macros/latex/contrib/newpax/README.md | 7 +- macros/latex/contrib/newpax/doc-input1.pdf | 648 +++-- macros/latex/contrib/newpax/doc-input2.pdf | 642 +++-- macros/latex/contrib/newpax/doc-use-newpax.pdf | 1252 +++++---- macros/latex/contrib/newpax/doc-use-pax.pdf | Bin 45012 -> 44968 bytes macros/latex/contrib/newpax/newpax.dtx | 534 ++-- macros/latex/contrib/newpax/newpax.pdf | 2644 ++++++++++++-------- macros/latex/contrib/newpax/newpax.tex | 74 +- macros/latex/contrib/photobook/photobook.cls | 88 +- macros/latex/contrib/photobook/photobook.pdf | Bin 144593 -> 144969 bytes macros/latex/contrib/spreadtab/README | 14 +- macros/latex/contrib/spreadtab/spreadtab-en.pdf | Bin 578154 -> 327599 bytes macros/latex/contrib/spreadtab/spreadtab-en.tex | 25 +- macros/latex/contrib/spreadtab/spreadtab-fr.pdf | Bin 609980 -> 346204 bytes macros/latex/contrib/spreadtab/spreadtab-fr.tex | 27 +- macros/latex/contrib/spreadtab/spreadtab.sty | 1001 ++++---- macros/luatex/generic/luatexko/ChangeLog | 8 + macros/luatex/generic/luatexko/README | 2 +- macros/luatex/generic/luatexko/luatexko-doc.pdf | Bin 339436 -> 339895 bytes macros/luatex/generic/luatexko/luatexko-doc.tex | 2 +- .../luatex/generic/luatexko/luatexko-normalize.lua | 6 +- .../luatex/generic/luatexko/luatexko-uhc2utf8.lua | 6 +- macros/luatex/generic/luatexko/luatexko.lua | 90 +- macros/luatex/generic/luatexko/luatexko.sty | 19 +- 40 files changed, 5497 insertions(+), 3484 deletions(-) (limited to 'macros') diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md index 73958edc29..df74edf5c8 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md @@ -1,4 +1,4 @@ -Date of last change: 2023-05-24 to version v1.1n +Date of last change: 2023-09-10 to version v1.1o # biblatex-gb7714-2015: a biblatex style package @@ -1601,6 +1601,7 @@ please see the file 'biblatex-gb7714-2015.pdf' for further information! * 2023/03/31 v1.1l,ctan,github * 2023/04/24 v1.1m,ctan,github * 2023/05/24 v1.1n,ctan,github +* 2023/09/10 v1.1o,ctan,github --------------------------------------------------------- diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex index cae76042ca..ab9409b3f8 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex @@ -14,7 +14,7 @@ %\usepackage{unicode-math} %\setmathfont[math-style=ISO,bold-style=ISO]{TeX Gyre Pagella Math} -\setmainfont{CMU Serif} +%\setmainfont{CMU Serif} \IfFileExists{SourceHanSerifSC-Regular.otf} {\setCJKmainfont[BoldFont=SourceHanSansSC-Regular.otf, ItalicFont=simkai.ttf]{SourceHanSerifSC-Regular.otf}}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf index 23f368025f..9226cb0107 100644 Binary files a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf and b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf differ diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex index 962aaae18a..bab5e1f479 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex @@ -36,7 +36,7 @@ Style Files (gb7714-2015*.*) have version number: \versionofgbtstyle.} \titleandauthor \begin{quotation} -biblatex-gb7714-2015 宏包是为满足《GB/T 7714-2015~~信息与文献~~参考文献著录规则》要求而开发的 biblatex 样式包。宏包主要提供两种编制样式: 一、顺序编码制(gb7714-2015);二、著者-出版年制(gb7714-2015ay),能够精确地实现国标提出的著录和标注格式。另外提供gb7714-2005和gb7714-1987两个老版本的国标样式,和经济学研究(chinese-erj)、社会科学(chinese-css)、管理世界(chinese-jmw)等期刊的文献样式,以及西北农林(gb7714-NWAFU)、华中师范(gb7714-CCNU)、东南大学(gb7714-SEU)等几个明显有别于国标的特殊学位论文文献样式。 +biblatex-gb7714-2015 宏包是为满足《GB/T 7714-2015~~信息与文献~~参考文献著录规则》要求而开发的 biblatex 样式包。宏包主要提供两种编制样式: 一、顺序编码制(gb7714-2015);二、著者-出版年制(gb7714-2015ay),能够精确地实现国标提出的著录和标注格式。另外提供gb7714-2005和gb7714-1987两个老版本的国标样式,gb7714-2015ms(一个文献表中英文不同)和gb7714-2015mx(一个文档顺序编码和作者年制混用)两个特殊样式,和经济学研究(chinese-erj)、社会科学(chinese-css)、管理世界(chinese-jmw)等典型文科期刊样式,以及西北农林(gb7714-NWAFU)、华中师范(gb7714-CCNU)、东南大学(gb7714-SEU)等几个明显有别于国标的特殊学位论文样式。 具备灵活、易用、兼容性好等特点,能为国内\LaTeX{}用户提供一个可靠的参考文献生成工具。 %old: %biblatex-gb7714-2015 样式宏包提供了符合《GB/T 7714-2015 信息与文献 参考文献 @@ -324,7 +324,10 @@ latexmk -xelatex jobname.tex \subsubsection{几种样式} -例\ref{code:doc:structrue}中给出了宏包和样式的基本加载方式,选项的加载也类似。比如: +本样式包提供了两种基本样式(gb7714-2015样式(例\ref{eg:gb7714numeric})实现顺序编码制国标,gb7714-2015ay样式(例\ref{eg:gb7714authoryear})实现著者年份制国标)和其他一些为不同应用目的和格式要求而实现的样式 +(例\ref{eg:gb7714ms},\ref{eg:gb7714mx},\ref{eg:gb87and2005}等), +以及一个将顺序编码制国标文本转换为bib文件的工具(例\ref{eg:transtobib})。 + \pdfbookmark[4]{gb7714-2015}{stygb7714-2015} \begin{example}{顺序编码制(gb7714-2015)加载方式}{eg:gb7714numeric} @@ -380,12 +383,12 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename \end{texlist} \end{example} -其中, -v1.0m版本增加的gb7714-2015ms样式文件,主要是为了在一个文献表中针对不同语言使用不同的样式,即中文文献使用GB/T 7714-2015规定的著录格式,而其它语言文献使用biblatex提供的标准样式。 -v1.0r版本增加了gb7714-2015mx样式,主要是为了在一个文档中针对不同参考文献分节使用不同的样式,比如某些节使用著者年份制,某些节使用顺序编码制。 +其中,v1.0m版本增加的gb7714-2015ms样式文件,主要是为了在一个文献表中针对不同语言使用不同的样式,即中文文献使用GB/T 7714-2015规定的著录格式,而其它语言文献使用biblatex提供的标准样式。 +v1.0r版本增加的gb7714-2015mx样式,主要是为了在一个文档中针对不同参考文献分节使用不同的样式,比如某些节使用著者年份制,某些节使用顺序编码制。 +v1.0z版本增加的gb7714-1987和gb7714-2005两个版本的顺序编码和著者年份制样式,用于仍在使用 +1987和2005版国标的情况,尽管两者已经过时。 %尽管这些方式不常用,但偶尔也有需求,所以都做了实现。 -尽管国标1987和2005版本已经过时,但仍然有些地方还在使用,所以1.0z版本增加了gb7714-1987和gb7714-2005两个版本的样式,也分顺序编码和著者年份制: \pdfbookmark[4]{gb7714-1987}{gb7714-1987} \pdfbookmark[4]{gb7714-1987ay}{gb7714-1987ay} @@ -411,7 +414,7 @@ v1.0r版本增加了gb7714-2015mx样式,主要是为了在一个文档中针 v1.0r版本增加了chinese-erj样式用于生成经济研究期刊的文献; v1.1l版本增加了chinese-css样式用于生成社会科学期刊的脚注注释文献; v1.1m版本增加了chinese-jmw样式用于生成管理世界期刊的文献。 -而理工类期刊文献通常与国标差别不大,部分期刊与国标的最大的差异主要是在双语对照文献中,比如计算机学报等,可以通过简单的设置来满足要求,具体可以参考github上的问题。 +而理工类期刊文献通常与国标差别不大,部分期刊与国标的最大的差异主要是双语对照文献的格式,比如计算机学报等,这可以通过简单的设置实现格式调整(可以参考github上的问题)。 \pdfbookmark[4]{chinese-erj}{chinese-erj} \begin{example}{经济研究期刊文献样式(chinese-erj)}{eg:gbchineseerj} @@ -448,7 +451,7 @@ v1.1m版本增加了chinese-jmw样式用于生成管理世界期刊的文献。 \begin{description} \pdfbookmark[4]{gbalign}{gbalign} - \item[gbalign]=\textbf{right},left,center,gb7714-2015,\textbf{gb7714-2015ay}. \hfill default: right for numeric style and gb7714-2015ay for author-year style + \item[gbalign]=\textbf{right},left,center,centpos,gb7714-2015,\textbf{gb7714-2015ay}. \hfill default: right for numeric style and gb7714-2015ay for author-year style 为控制文献表数字序号标签增加的选项,用于选择是否生成序号标签及其对齐方式。 \begin{itemize} @@ -594,6 +597,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \item gbnamefmt=pinyin 时,姓名的格式采用一种常见的中文拼音方式,比如对于 Zhao, Yu Xin 或 Yu Xin Zhao 这个姓名拼音格式化为ZHAO Yu-xin。 \item gbnamefmt=quanpin 时,姓名的格式采用另一种常见的中文拼音方式,比如对于 Zhao, Yu Xin 或 Yu Xin Zhao 这个姓名拼音格式化为Zhao Yuxin。 \item gbnamefmt=reverseorder 时,姓名的格式与biblatex 标准样式的family-given/ given-family格式一致,常用于经济学类的文献。 + \item gbnamefmt=fullname 时,姓名的格式采用英文默认的名在前姓在后的全拼模式。 + 比如对于 Zhao, Yu Xin 或 Yu Xin Zhao 格式化后为YuXin Zhao \end{itemize} \bc{注意:还可以利用 nameformat 域为某一具体条目设置该条目的姓名格式,比如:要在一个文献表中实现英文文献是givenahead 格式,而拼音的文献是pinyin风格,那么可以设置拼音文献的 nameformat 域为pinyin,而gbnamefmt设置为givenahead。条目中nameformat 域的局部设置优先于gbnamefmt的全局设置。}\par \emph{注意:使用pinyin选项时,bib文件中文献的作者应给出完整的名而不是缩写,否则出来的效果未必令人满意}。 @@ -601,9 +606,14 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \verb|\apptocmd{\gbpinyinlocalset}{\renewrobustcmd*{\bibnamedelima}{}}{}{}| - 而全拼格式的名中间的短横线可以用相反的设置加上。 + 而quanpin格式的名中间的短横线可以用相反的设置加上。 + + \verb|\apptocmd{\gbquanpinlocalset}{\renewrobustcmd*{\bibnamedelima}{\mbox{-}}}{}{}| + + 而fullname格式的名中间也可以加上空格: + + \verb|\apptocmd{\gbfullnamelocalset}{\renewrobustcmd*{\bibnamedelima}{\space}}{}{}| - \verb|\apptocmd{\gbpinyinlocalset}{\renewrobustcmd*{\bibnamedelima}{\mbox{-}}}{}{}| 测试结果见: \href{run:./example/opt-gbnamefmt.tex}{opt-gbnamefmt.tex}, @@ -1037,7 +1047,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] 注意,若要让脚注计数器与其它计数器比如chapter等关联,那么采用latex的常规方法就能解决,比如使用latex内核常用的\verb|\@addtoreset|命令。 - + \item[gbstrict]=\textbf{true},false. \hfill default is true 为避免输出bib文件中多余的域信息而增加选项,目的是为了兼容一些bib文件,因为某些bst样式文件进行中英文判断需要在bib文件中增加类似language这样的域作为支撑,而其中某些域在标准的biblatex样式文件中是默认输出的。 @@ -1066,7 +1076,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] 用于定义双语对照文献,将entrykey2条目和entrykey1条目关联起来,在文献表中对照输出。比如:\verb|\defdblanentry{entrykey1}{entrykey2}|或 \verb|\defdoublelangentry{entrykey1}{entrykey2}|,若entrykey1条目是中文的文献,entrykey2条目是对应entrykey1条目的英文形式,那么该命令会使得在文献表中,entrykey2的英文内容紧跟在entrykey1的中文内容后对照输出。该命令也只能出现在导言区中。 - + \pdfbookmark[4]{addEntryField}{addEntryField} \item[addEntryField] \{entrykey or entrykey comma list\}\{field\}\{fieldvalue\} @@ -1076,8 +1086,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] 将会为author2007en,author2014en两个条目添加nameformat域信息。 该命令也只能出现在导言区中。 - - + + \pdfbookmark[4]{setlocalbibstring}{setlocalbibstring} \item[setlocalbibstring] \{bibstringkey\}\{bibstringval\} @@ -1247,7 +1257,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \verb|\authornumcite|、\verb|\cite|、\verb|\textcite|、\verb|\parencite|、 \verb|\cite|、\verb|\parencite|。 -上述命令均可指定页码等信息用于输出,即在{entrykey}前面的[]内或第二个[]内(当有两个[]时)给出需要附加输出的信息,比如:\verb|\cite[p. 9]{entrykey}|或\verb|\cite[第九页]{中文entrykey}|。若不指定页码,则仅有\verb|\pagescite|命令默认提取参考文献的页码信息进行输出。 +上述命令均可指定页码等信息用于输出,即在{entrykey}前面的[]内或第二个[]内(当有两个[]时)给出需要附加输出的信息,比如:\verb|\cite[p. 9]{entrykey}| 或 \verb|\cite[第九页]{中文entrykey}|。若不指定页码,则仅有\verb|\pagescite|命令默认提取参考文献的页码信息进行输出。 各引用命令的使用方式如表\ref{tab:cite:num}所示。 测试文档见\href{run:example/testallformat.tex}{testallformat.tex}。 @@ -1263,22 +1273,23 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{tabular}{l@{\quad$\Rightarrow$\quad}ll} \hline \heiti{命令} & \heiti{标注标签} & \heiti{说明} \\ \hline - \verb|\cite{Peebles2001-100-100}| & \cite{Peebles2001-100-100} & 不带页码上标 \\ - \verb|\upcite{Peebles2001-100-100}| & \upcite{Peebles2001-100-100} & 不带页码上标 \\ - \verb|\supercite{Peebles2001-100-100}| & \supercite{Peebles2001-100-100} & 不带页码上标 \\ - \verb|\parencite{Miroslav2004--}| & \parencite{Miroslav2004--} & 不带页码非上标 \\ - \verb|\cite[49]{蔡敏2006--}| & \cite[49]{蔡敏2006--} & 带页码上标 \\ - \verb|\pagescite{Peebles2001-100-100}| & \pagescite{Peebles2001-100-100} & 自动页码上标 \\ - \verb|\pagescite[150]{Peebles2001-100-100}| & \pagescite[150]{Peebles2001-100-100} & 带页码的上标 \\ - \verb|\parencite[49]{Miroslav2004--}| & \parencite[49]{Miroslav2004--} & 带页码非上标 \\ + \verb|\cite{Peebles2001-100-100}| & \cite{Peebles2001-100-100} & 上标不带页码 \\ + \verb|\upcite{Peebles2001-100-100}| & \upcite{Peebles2001-100-100} & 上标不带页码 \\ + \verb|\supercite{Peebles2001-100-100}| & \supercite{Peebles2001-100-100} & 上标不带页码 \\ + \verb|\parencite{Miroslav2004--}| & \parencite{Miroslav2004--} & 非上标不带页码 \\ + \verb|\cite[49]{蔡敏2006--}| & \cite[49]{蔡敏2006--} & 上标带页码 \\ + \verb|\pagescite{Peebles2001-100-100}| & \pagescite{Peebles2001-100-100} & 上标自动页码 \\ + \verb|\pagescite[150]{Peebles2001-100-100}| & \pagescite[150]{Peebles2001-100-100} & 上标带页码 \\ + \verb|\parencite[49]{Miroslav2004--}| & \parencite[49]{Miroslav2004--} & 非上标带页码 \\ \verb|\textcite{Miroslav2004--}| & \textcite{Miroslav2004--} & 提供主语非上标标签 \\ \verb|\authornumcite{Miroslav2004--}| & \authornumcite{Miroslav2004--} & 提供主语上标标签 \\ \verb|\citeauthor{蔡敏2006--}\cite{蔡敏2006--}| & \citeauthor{蔡敏2006--}\cite{蔡敏2006--} & 提供主语上标标签 \\ \verb|\footfullcite{赵学功2001--}| & \footfullcite{赵学功2001--} & 脚注方式文献条目 \\ 引用单篇文献: & 文献\cite{Peebles2001-100-100} & 国标示例 \\ 同一处引用两篇文献: & 文献\cite{Peebles2001-100-100,Miroslav2004--} & 国标示例\\ - 同一处引用多篇文献: & 文献\cite{蔡敏2006--,Miroslav2004--,赵学功2001--} & 国标示例:三篇以上压缩\\ - 同一处引用多篇文献: & 文献\citec{蔡敏2006--,Miroslav2004--,赵学功2001--} & 另一种形式的压缩\\ + 同一处引用多篇文献: & 文献\cite{蔡敏2006--,Miroslav2004--,赵学功2001--} & 国标示例:三篇以上\\ + 同一处引用多篇文献: & 文献\citec{蔡敏2006--,Miroslav2004--,赵学功2001--} & + 由\verb|\citec|实现的另一种压缩\\ 多次引用同一作者的同一文献: & 文献\cite[20-22]{Miroslav2004--}, 文献\cite[55-60]{Miroslav2004--} & 国标示例 \\ @@ -1302,6 +1313,9 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \verb|\cites[p.2]{entrykey1}[p.5]{entrykey2}|, 而不是\verb|\cite[p.5]{entrykey1,entrykey2}|。 +注意:在同一处引用多篇序号连续的文献时,标注标签默认是从两篇文献开始压缩的,比如同时连续引用两篇和三篇文献时标注分别为[1-2]和[1-3]。若需要修改从三篇文献开始压缩,比如:两篇和三篇文献分别标注为[1,2]和[1-3]。则只需要在导言区设置计数器gbrefcompress的值为3,即: +\verb|\setcounter{gbrefcompress}{3}| + %当然除了这种多次使用标注命令外,也可以使用对应标注命令的复数形式来为每篇文献提供相应的页码信息。 @@ -1326,7 +1340,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{table}[!htb] \centering \caption{著者年份制常用命令示例}\label{tab:cite:authoryear} -\hspace{-1cm}{\parbox{\linewidth}{\includegraphics[scale=0.95,page=2]{egciteaytab.pdf}}} +\hspace{-1cm}{\parbox{\linewidth}{\includegraphics[scale=0.95,page=1]{egciteaytab.pdf}}} \end{table} @@ -1375,18 +1389,19 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \paragraph{标注中“等”“和”等本地化字符串调整} -在中科院某类学位论文中,正文的标注标签要求两个英文作者之间用“和”而不是“and”连接,多个英文作者则截断成一个作者时后面用“等.”而不是“et al.”表示。这可以容易通过设置本地化字符串来实现。然而对于双语的图题,英文图题中不适合出现“等”与“和”这样的字符,所以又要求在这种全英文的环境中将“和”与“等.”更换为英文符号,这就需要利用本地化字符串的局部调整。这种本地化字符串的局部调整其实已经是比较深入的内容,因为biblatex提供的接口DefineBibliographyStrings是全局的设置,而局部调整则需要使用其它方式。 +在中科院某类学位论文中,正文的标注标签要求两个英文作者之间用“和”而不是“and”连接,多个英文作者则截断成一个作者时后面用“等.”而不是“et al.”表示。这可以容易通过设置本地化字符串来实现。然而对于双语的图题,英文图题中不适合出现“等”与“和”这样的字符,所以又要求在这种全英文的环境中将“和”与“等.”更换为英文符号,这就需要对本地化字符串做局部调整。而这种局部调整其实已经是比较底层的处理,biblatex提供的接口DefineBibliographyStrings仅用于全局设置,因此局部调整则需采用其它方式。 %如何进行局部调整并没有非常方便的接口,要解决这一需求,需要对biblatex以及gb7714-2015样式有比较深入的了解。 -因为gb7714-2015通过gbcitelocalcase计数器来选择使用中文或英文的本地化字符串,因此通过局部设置gbcitelocalcase可以局部的选择不同语言的本地化字符串,比如在一个编组内,局部化设置计数器为:\verb|\defcounter{gbcitelocalcase}{1}|,那么这个编组内的所有本地化字符串会使用默认的中文字符串,反之若设置为2,则本地化字符串会使用默认的英文字符串。 +gb7714-2015通过gbcitelocalcase计数器来选择使用中文或英文的本地化字符串,因此通过局部设置gbcitelocalcase可以局部的选择不同语言的本地化字符串,比如在一个编组内,局部化设置计数器为:\verb|\defcounter{gbcitelocalcase}{1}|,那么这个编组内的所有本地化字符串会使用默认的中文字符串,反之若设置为2,则本地化字符串会使用默认的英文字符串。 -然而因为本地化字符串的内容通常是全局设置的,所以当中文的或者英文的本地化字符串设置都不满足要求时,就需要局部的调整本地化字符串的内容,如例\ref{eg:str:localset}所示,对本地化字符串andothersincite的内容做了调整,从全局设置的“等.”转换为“et al.”,“和”转换为“and”,这种局部设置可通过csdef对保存字符串信息的命令直接做的调整,比如\verb|\csdef{abx@sstr@andothersincite}{et al.}|就是将andothersincite本地化字符串的内容临时调整为“et al.”。 -但为方便用户使用,提供了 +然而因为本地化字符串的默认内容通常是全局设置的,所以当中文的或者英文的本地化字符串设置都不满足要求时,就需要局部的调整本地化字符串的内容,如例\ref{eg:str:localset}所示,对本地化字符串andothersincite的内容做了调整,从全局设置的“等.”转换为“et al.”,“和”转换为“and”,这种局部设置可通过csdef直接重定义保存字符串信息的命令来进行调整, +比如\verb|\csdef{abx@sstr@andothersincite}{et al.}|就是将andothersincite本地化字符串的内容临时调整为“et al.”。 +但为方便用户使用, 宏包提供了\verb|\setlocalbibstring|命令来替代上述直接定义的csdef命令, 如例\ref{eg:str:localset}所示。 具体的测试见\href{egthesis/thesis-ucas-m.tex}{thesis-ucas-m.tex} - \begin{example}{双语图题内的标注标签的本地化字符串局部设置}{eg:str:localset} +\begin{example}{双语图题内的标注标签的本地化字符串局部设置}{eg:str:localset} \begin{texlist} \begin{figure}[!htbp] \centering @@ -1396,14 +1411,14 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \cite{betts2005aging}}}\label{fig:bi:lang} \end{figure} \end{texlist} - \end{example} +\end{example} \paragraph{标注中的全半角标点和括号调整} -除了本地化字符串外,标注中的括号和标点也是需要调整的内容。这里两个默认采用英文的半角符号。首先可以通过选项调整,gbcitelabel选项提供了不同的选择,可以设置标注的括号,为全局或半角,同时提供了一个gbcitelabel=quanjiao,可以将标点和括号全部改为全角。 +除了本地化字符串外,标注中的括号和标点(默认采用英文的半角符号)也常是需要调整的内容。这两者首先可以通过选项调整,gbcitelabel选项提供了不同的选择比如bracketqj等,用来设置标注的括号为全局或半角,同时提供了一个gbcitelabel=quanjiao,可以将标点和括号全部改为全角。 -如果选项提供的效果还不够,那么可以局部调整mkbibleftborder和mkbibrightborder,来更换需要的括号。例\ref{eg:parens:localset}中的局部调整可以将标注中的括号改变为『和』。 +如果选项提供的效果还不够,那么可以通过局部调整mkbibleftborder和mkbibrightborder来更换需要的括号。例\ref{eg:parens:localset}中的局部调整将标注中的括号改变为『和』。 \begin{example}{局部调整标注标签中的括号}{eg:parens:localset} \begin{texlist} @@ -1415,27 +1430,41 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \end{texlist} \end{example} -对于标点来说,若默认的设定不满足要求,则可以在导言区进行调整, -如例\ref{eg:punct:globalset}中的第一段代码所示,除了其中标点外,有时还需要设置finalnamedelim。这是标签中除姓名外的标点调整,至于姓名内的标点调整则是需要从另外的接口修改,比如:通过gbcaselocalset等来修改revsdnamepunct,bibinitperiod等等,这些在标注标签中通常不太需要修改。 +对于标点来说,若默认的设定不满足要求,则首先可以在导言区进行调整, +如例\ref{eg:punct:globalset}中的第一段代码所示,主要是标签中非姓名内中(即姓名之间,姓名之后)的标点调整。 +至于姓名内的标点调整则需利用另外的接口,比如:通过gbcaselocalset等来修改revsdnamepunct,bibinitperiod等(见例\ref{eg:biblist:separator}),但这些在标注标签中通常不太需要修改。 + -但有的时候,我们需要对中英文文献的标注标签使用不同的符号,比如中文的标签使用中文全角标点,而英文的标签使用英文的标点,那么可以在标点设置时做一个判断,如例 +第一段代码是一种全局的设置,不考虑中英文文献以及环境的差异。 +但有时我们需要对中英文文献的标注标签使用不同的符号,比如中文的标签使用中文全角标点,而英文的标签使用英文的标点,那么可以在标点设置时做一个判断(括号若有类似需求也可采用类似处理),如例 \ref{eg:punct:globalset}中的第二段代码所示。 +值得注意的是:当同一处引用多篇文献时,且起始和终止的两篇文献的中英文不同,则标注标签周围的括号会变得不一致。此时可以用例\ref{eg:punct:globalset}第三段代码所采用的方式,利用局部设置gbcitelocalcase来临时统一符号。 -而还有的时候,文档中存在独立的中文段落和英文段落,期望在中文段落中使用中文的标点,而在英文段落中则使用英文的标点,此时可以利用gbcitelocal选项的内部设置的计数器gbcitelocalcase来局部化调整。如例 -\ref{eg:punct:globalset}中的第三段代码所示,做如此设置后,那么只要在指定的段落局部化计数器gbcitelocalcase的值就可以达到临时调整标点的目的。 +此外,当文档中存在独立的中文段落和英文段落时,期望在中文段落中使用中文的标点,而在英文段落中使用英文的标点,则可以利用gbcitelocal选项的内部设置的计数器gbcitelocalcase来局部化调整。如例 +\ref{eg:punct:globalset}中的第三段代码所示。做此设置后,只要在指定的段落局部化计数器gbcitelocalcase的值就可以达到临时调整标点的目的。 \begin{example}{标注标签中的标点的全局和局部设置}{eg:punct:globalset} \begin{texlist} %第一段代码:导言区重设标注标签的标点 +%多个引用间的标点 \renewcommand*{\multicitedelim}{;}%\addsemicolon\addspace; -\renewcommand*{\compcitedelim}{,} +\renewcommand*{\compcitedelim}{,}%\addcomma\space \renewcommand{\compextradelim}{,} -\DeclareDelimFormat[cite,parencite,pagescite]{nameyeardelim}{,}%\addcomma\space -\DeclareDelimFormat[textcite]{nameyeardelim}{,}%\addcomma\space +%姓名与年份之间的标点(间隔符) +\DeclareDelimFormat[cite,parencite,pagescite]{nameyeardelim}{,} +\DeclareDelimFormat[textcite]{nameyeardelim}{,}% +%最后一个姓名与等之间的符号(间隔符) \DeclareDelimFormat[cite,parencite,pagescite]{andothersdelim}{,}% \DeclareDelimFormat[textcite]{andothersdelim}{,}% +%除此之外,有时还需要设置finalnamedelim等来调整姓名间的标点。 +% multinamedelim是各姓名之间的标点 +% finalnamedelim是最后一个姓名前的取代multinamedelim的标点 %第二段代码:导言区重设标注标签的标点,根据文献的中英文调整标点形式 +\renewrobustcmd{\mkbibleftborder} +{\iffieldequalstr{userf}{chinese}{(}{(}}% +\renewrobustcmd{\mkbibrightborder} +{\iffieldequalstr{userf}{chinese}{)}{)}}% \renewcommand*{\multicitedelim}{\iffieldequalstr{userf}{chinese}{;}{\addsemicolon\addspace}}%; \renewcommand*{\compcitedelim}{\iffieldequalstr{userf}{chinese}{,}{\addcomma\space}} \renewcommand{\compextradelim}{\iffieldequalstr{userf}{chinese}{,}{\addcomma\space}} @@ -1449,6 +1478,13 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] {\iffieldequalstr{userf}{chinese}{,}{\addcomma\space}}% %第二段代码:导言区重设标注标签的标点,可根据计数器gbcitelocalcase局部设置调整中英文标点 +%也包括同时设置括号 +\renewrobustcmd{\mkbibleftborder} +{\ifcase\value{gbcitelocalcase}\iffieldequalstr{userf}{chinese}{(}{(}% +\or (\or (\fi}% +\renewrobustcmd{\mkbibrightborder} +{\ifcase\value{gbcitelocalcase}\iffieldequalstr{userf}{chinese}{)}{)}% +\or )\or )\fi}% \renewcommand*{\multicitedelim} {\ifcase\value{gbcitelocalcase}\iffieldequalstr{userf}{chinese}{;}{\addsemicolon\addspace}% \or ;\or\addsemicolon\addspace\fi}%; @@ -1508,7 +1544,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subsubsection{标题格式控制} -标题内容的设置有三种方式,这里再重复一下:一是直接在printbibliography命令中利用选项title设置,二是gbctexset=true时,重定义bibname和refname来设置,三是gbctexset=false时,利用本地化字符串进行设置。具体参见gbctexset选项。 +标题内容的设置有三种方式%,这里再重复一下 +:一是直接在printbibliography命令中利用选项title设置,二是gbctexset=true时,重定义bibname和refname来设置,三是gbctexset=false时,利用本地化字符串进行设置。具体参见gbctexset选项。 标题格式的设置主要是通过重定义参考文献环境的heading进行,比如: @@ -1528,7 +1565,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \paragraph{\heiti 文献表字体、颜色} 为方便用户改变文献表段落格式、内容字体和颜色等,在 biblatex 提供的 \verb|\bibfont| 命令基础上, 增加了\verb|\bibauthorfont|、\verb|\bibtitlefont|、\verb|\bibpubfont| 等命令用于控制文献部分著录项的格式,比如作者,标题,出版项等。增加了\verb|\SlashFont|用于控制斜杠的字体。 -具体用法见例\ref{eg:biblist:fontset},结果如图\ref{fig:par:fmt}所示。 +具体用法见例\ref{eg:biblist:fontset},结果如图\ref{fig:par:fmt}所示, 测试用例见\href{run:example/testfontinbiblio.tex}{testfontinbiblio.tex}。 \begin{example}{文献表段落格式、字体、颜色}{eg:biblist:fontset} @@ -1562,7 +1599,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \end{figure} \paragraph{\heiti 文献表竖直间距控制} -文献表各条目之间的竖直间距控制如例\ref{eg:biblist:vspace}所示,此外,还可以调整方括号和圆括号的竖直位置,使其与无基线以下部分的字体的文本相配合。 +文献表各条目之间的竖直间距控制如例\ref{eg:biblist:vspace}所示,此外,还可以调整方括号和圆括号的竖直位置,使其与使用无基线以下部分字体的文本相配合。 \begin{example}{文献表竖直间距控制}{eg:biblist:vspace} \begin{texlist} @@ -1681,16 +1718,25 @@ bibitemindent表示 %\hspace{\biblabelsep}} -\paragraph{\heiti 文献表中的标点控制} 文献表中有时需要调整标点为中文的全角标点,可以通过不同机制下的标点设置来调整。 -调整方式如例\ref{eg:biblist:separator}所示。有时在本地化字符串中也可以实现标点调整,比如and,in等本地化字符串。有时在域格式中也可能出现标点调整,比如title域格式。而且因为不同语言的处理,可能内部也存在标点的调整。具体情况是比较复杂的,这里不再一一列举,一些修改示例可以参考: +\paragraph{\heiti 文献表中的标点或间隔符控制} 文献表中有时需要调整标点为中文的全角标点等其它形式,则需要通过不同机制下的标点(或间隔符)设置来调整。 +有时通过间隔符设置直接调整,比如标题与类型标识符之间间隔符。 +有时则通过设置本地化字符串进行,比如and,in等本地化字符串。 +有时则需要在域格式设置中进行调整,比如title,doi等域的DeclareFieldFormat格式定义。 +此外,因为不同语言的存在,可能需要区分语言进行调整,比如bibrangedash等符号。 +具体情况是比较复杂的,这里不再一一列举, +常见的调整方式如例\ref{eg:biblist:separator}所示。 +其它一些修改示例可以参考: \href{run:./chinese-erj.bbx}{chinese-erj.bbx}, \href{run:./gb7714-CCNU.bbx}{gb7714-CCNU.bbx}, -\href{run:./egthesis/thesis-uibe-numeric.tex}{thesis-uibe-numeric.tex}。具体的标点命令的意义详见biblatex手册。 +\href{run:./egthesis/thesis-uibe-numeric.tex}{thesis-uibe-numeric.tex}。各标点命令的意义详见biblatex手册。 -\begin{example}{文献表常见标点控制}{eg:biblist:separator} +\begin{example}{文献表常见标点(间隔符)控制}{eg:biblist:separator} \begin{texlist} % 标点类型的控制(注意:全局字体能控制标点的字体) +% 标题与文献类型表示符之间的间隔符 title[J] +\DeclareDelimFormat[bib,biblist]{titletypedelim}{\space} + %文献表各条文献中各单元间隔标点设置(与异步标点机制相关的) \renewcommand*{\newunitpunct}{,}%\addcomma\space %, \renewcommand*{\finentrypunct}{\iffieldequalstr{userd}{chinese}{。}{\adddot}} @@ -1713,17 +1759,49 @@ bibitemindent表示 \end{texlist} \end{example} -\subsubsection{条目著录格式控制}\label{sec:entry:fmt} +\subsubsection{条目著录项格式控制}\label{sec:entry:fmt} -文献表输出的格式即参考文献著录样式,除了整体的段落格式外,还有条目内部的格式可以控制,条目内部的这些项称为著录项,这些著录项的格式通常可由选项控制。 +文献表输出的格式即参考文献著录样式,除了各条目构成的文献表整体的格式外,还有条目内部的格式可以控制,包括:条目内部各个项(称为著录项); 项之间或内部的内容、标点、字体和颜色等。其中标点字体颜色等的修改已经部分包含在前一小节介绍的接口中,而更为复杂的著录项修改则需要通过域格式的修改来实现,前面介绍的接口实际就是定义在这些域格式中。 -可用选项除了biblatex 提供的标准选项外,也包括样式包提供的选项。 +一些简单的域格式修改如例\ref{eg:bib:fieldsetlocal}所示,其中将期刊文献的volume域的格式设置为粗体,将会议论文的日期设置为粗体。 + +\begin{example}{域格式的局部调整示例}{eg:bib:fieldsetlocal} +\begin{texlist} +%期刊文献的卷加粗 +\DeclareFieldFormat[article,periodical]{volume}{\textbf{#1}} +%会议论文年份加粗 +\DeclareFieldFormat[inproceedings]{date}{\mkbibbold{#1}} +\end{texlist} + \end{example} + +值得注意的是,由于本样式包已经根据常见需求定义了很多著录项相关的格式控制,因此用户往往不需要关注域格式的定义,而通常只要使用前面介绍的接口和选项就能大体满足要求。 + +可用选项除了样式包提供的选项外,也包括 biblatex 提供的标准选项。 图\ref{fig:content:fmta}、\ref{fig:content:fmtb}、\ref{fig:content:fmtc}给出了一些选项设置后的格式控制效果, 更多选项的详细说明见第\ref{sec:added:opt}、\ref{sec:old:opt}小节。 图\ref{fig:content:fmta}给出了选项设置为 style=gb7714-2015, gbnamefmt=givenahead, gbpub=false, gbbiblabel=dot, gbtitlelink=true 时的文献表,可以看到作者姓名、序号标签、标题超链接的设置。 +图\ref{fig:content:fmtb}给出了选项设置为 style=gb7714-2015ms, gbnamefmt=lowercase, +gbpub=false, gbtitlelink=true, gbstyle=false, sorting=nyt 时的文献表,可以看到作者姓名、标题超链接、中英文不同文献格式、文献排序的设置。 + +图\ref{fig:content:fmtc}为选项和本地化字符串如例\ref{eg:localstr:diff}设置时的引用标注和文献表,注意其中引用标注和文献表中的不同本地化字符串输出效果,引用标注中英文作者和中文作者缩略词的不同。这是中科院大学资环类学位论文的要求格式,可以看到尽管有些特殊,但通过选项设置和本地化字符串设置也能实现。 + +\begin{example}{著者-出版年制标注和文献表不同本地字符串效果}{eg:localstr:diff} +\begin{texlist} +\usepackage[backend=biber,style=gb7714-2015ay,gbnamefmt=lowercase,maxcitenames=2,mincitenames=1, +sortcites=false,sorting=gbynta]{biblatex} + \renewcommand{\bibauthorfont}{\color{violet}}% +\DefineBibliographyStrings{english}{ + andincite = {和}, + andincitecn = {和}, + andothersincite = {等{\adddot}},%adddot才能避开标点追踪 + andothersincitecn = {等}, } +\end{texlist} +\end{example} + + \begin{figure}[!htb] \begin{tcolorbox}[left skip=0pt,right skip=0pt,% width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% @@ -1735,9 +1813,6 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \caption{文献表条目著录格式示例一}\label{fig:content:fmta} \end{figure} -图\ref{fig:content:fmtb}给出了选项设置为 style=gb7714-2015ms, gbnamefmt=lowercase, -gbpub=false, gbtitlelink=true, gbstyle=false, sorting=nyt 时的文献表,可以看到作者姓名、标题超链接、中英文不同文献格式、文献排序的设置。 - \begin{figure}[!htb] \begin{tcolorbox}[left skip=0pt,right skip=0pt,% width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% @@ -1749,22 +1824,6 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \caption{文献表条目著录格式示例二}\label{fig:content:fmtb} \end{figure} -图\ref{fig:content:fmtc}为选项和本地化字符串如例\ref{eg:localstr:diff}设置时的引用标注和文献表,注意其中引用标注和文献表中的不同本地化字符串输出效果,引用标注中英文作者和中文作者缩略词的不同。这是中科院大学资环类学位论文的要求格式,可以看到尽管有些特殊,但通过选项设置和本地化字符串设置也能实现。 - -\begin{example}{著者-出版年制标注和文献表不同本地字符串效果}{eg:localstr:diff} -\begin{texlist} -\usepackage[backend=biber,style=gb7714-2015ay,gbnamefmt=lowercase,maxcitenames=2,mincitenames=1, -sortcites=false,sorting=gbynta]{biblatex} - \renewcommand{\bibauthorfont}{\color{violet}}% -\DefineBibliographyStrings{english}{ - andincite = {和}, - andincitecn = {和}, - andothersincite = {等{\adddot}},%adddot才能避开标点追踪 - andothersincitecn = {等}, } -\end{texlist} -\end{example} - - \begin{figure}[!htb] \begin{tcolorbox}[left skip=0pt,right skip=0pt,% width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% @@ -1780,9 +1839,9 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subsubsection{参考文献表的局部调整}\label{sec:entry:fmtlocal} 文档中有时需要多个文献表,而且可能具有不同的格式,因此全局的设置不一定满足要求,所以需要进行局部的调整,调整的内容也包括:文献表的标题、段落格式和著录格式。 -得益于biblatex利用tex宏控制著录格式的特点,加上tex语言本身编组的局部化特性,所以在利用biblatex生成参考文献的过程中可以有丰富手段来进行参考文献表的局部调整。因为是局部的格式调整,所以通常是结合refsection或者refsegment来操作的。前面提到过的一个很简单的例子,当在学位论文的写作中需要正文部分的参考文献使用顺序编码制,而附录中研究成果部分使用作者年制这样的需求就是一个典型的局部化格式调整。这一问题的解决方式为:在研究成果部分使用refsection将其局部化,并结合gb7714-2015mx样式,并利用setaystylesection命令设置该refsection为作者年制样式。 +得益于biblatex利用tex宏控制著录格式的特点,加上tex语言本身编组的局部化特性,所以在利用biblatex生成参考文献的过程中可以有丰富手段来进行参考文献表的局部调整。因为是局部的格式调整,所以通常是结合refsection或者refsegment来操作的。前面提到过的一个很简单的例子的需求(在一篇学位论文的写作中需要正文部分的参考文献使用顺序编码制,而附录中研究成果部分使用作者年制),是一个典型的局部化格式调整。这一需求的典型解决方式为:在研究成果部分使用refsection将其局部化,并结合gb7714-2015mx样式,并利用setaystylesection命令设置该refsection为作者年制样式。 -因为tex宏的局部化调整特性,因此几乎biblatex中所有格式设置都是可以做局部调整的,限于篇幅,这里仅介绍一些常见的简单的调整方式: +因为tex宏的局部化调整特性,因此几乎biblatex中所有格式设置,特别是前面介绍过的设置,都是可以做局部调整的。限于篇幅,这里仅介绍一些常用的方式: \begin{enumerate} \item 文献表标题 @@ -1797,173 +1856,292 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] 局部重定义bibitemsep、bibnamesep、bibinitsep可以设置文献表的各条目的间距 - \item 文献表条目著录格式 + \item 文献表条目著录项格式 + 因为著录项格式可以由选项控制,因此也可以通过选项底层控制接口进行局部化。 biblatex中绝大部分的控制选项都是使用toggle的方式,比如url选项,gbtype选项,gbannote选项等,因此在局部设置选项对应的toggle 值可以局部设置选项控制的格式。 另外也有一些选项使用的是计数器,比如gbnamefmt选项,因此局部设置选项对应的计数器的值可以局部设置选项控制的格式。 当然由于一些选项的特殊性,它无法简单的进行利用toggle值或计数器值进行设置,而可能需要调整选项对应的宏的内容,因此复杂度会明显提升,如果不是非常必要,建议不要去局部化重设这些选项的所对应的格式。 - 示例见\href{run:./example/opt-gbannote.tex}{opt-gbannote.tex}。 + 除了选项提供的接口外,著录项和著录项之间的格式设置,可以使用前述介绍过的命令或者域格式来具体不调整,只要相关的设置命令不限制一定要在导言区中,就可以局部化调整。比如前面设置volume为粗体的调整,就可以在不同的refsection做不同形式的调整。 - \item 文献表条目中域或标点的格式 - - biblatex中域和标点的格式设置其实是比较简单的,且设置命令不限制一定要在导言区中,因此做局部化调整也是合适的。比如在一个refsection中需要将期刊文献的volume域的格式设置为粗体,那么可以做设置为: - - \begin{example}{域格式的局部调整示例}{eg:bib:fieldsetlocal} - \begin{texlist} - %期刊文献的卷加粗 - \DeclareFieldFormat[article,periodical]{volume}{\textbf{#1}} - %会议论文年份加粗 - \DeclareFieldFormat[inproceedings]{date}{\mkbibbold{#1}} - \end{texlist} - \end{example} + 示例见\href{run:./example/opt-gbannote.tex}{opt-gbannote.tex}。 \end{enumerate} -实施上格式的局部调整和全局调整本质上是一致的,文献样式中几乎所有格式设置,都可以做局部化处理。当然做全面的样式设计会稍微往深里去一点,考虑的问题也会更多,但局部格式调整是可以借鉴的,关于样式中的格式设置和说明请参考: +实际上,全局格式调整和局部格式调整本质上是一致的,所以文献样式中几乎所有的格式设置都可以做局部化处理,借鉴其高层或底层的实现总能找到合适的方式来实现局部化。当然,面向全局样式设计的全局格式设置,会因为问题和要求的不同,在文献表、条目、著录项等不同层面有一些深入设计,所以局部格式调整要考虑全局设计中的不同的实现作区分处理。 +关于样式中的格式设置和说明请参考: \href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography/blob/master/biblatex-solution-to-latex-bibliography.pdf}% {biblatex高级使用方法和样式包设计实现方法}。 +\subsection{多样式支持} +\subsubsection{一个文献表采用多种著录样式} +一个文献表采用多种著录样式主要针对的是在一个tex文档生成参考文献表中,不同语言的文献采用不同的著录格式,比如中文文献采用GB/T 7714-2015 样式,而西文文献采用西文习惯的样式。这种情况目前由gb7714-2015ms样式解决,选项加载方式如例\ref{eg:gb7714ms}所示。 -\subsection{文献表排序与调整} +目前gb7714-2015ms样式中,有两种应用方式,一是全部文献都采用GB/T 7714-2015 标准样式,二是中文西文分别采用GB/T 7714-2015 标准样式和biblatex的默认样式。两种方式的选择通过gbstyle选项设置。区分语言使用不同样式的情况下,如有其它需要,完全可以通过定义中文和西文的格式做进一步的修改,比如将英文文献的样式修改为IEEE格式。图\ref{fig:eg:ms}展示了两种不同语言不同的著录格式。 -\subsubsection{国标要求的排序方式} +\begin{figure}[!htb] +\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +\centering +\deflength{\textparwd}{\linewidth-1cm} +\includegraphics[width=\textparwd]{egmsinabiblio.pdf} +\end{tcolorbox} +\caption{一个文献表采用多种著录样式示例}\label{fig:eg:ms} +\end{figure} -排序是文献表格式的重要内容。国标的两种编制方式中,顺序编码制要求文献表中的文献按照正文中文献引用的先后顺序进行排序,而著者-出版年制则要求文献表首先按照文种对不同语言的文献进行分组,中文在前英文在后,分组内的中文文献则以拼音或笔画进行排序,而西文文献则按照字母顺序进行排列。在gb7714-2015国标样式中两种编制方式的排序分别以如下选项设置来实现: +测试见文档\href{run:egfigure/egmsinabiblio.tex}{egmsinabiblio.tex}。 -\begin{example}{两种编制方式的排序设置}{eg:bib:sorting} -\begin{texlist} -%顺序编码制: -sorting=none -%著者-出版年制: -sorting=gb7714-2015,gblanorder=chineseahead,sortlocale=zh__pinyin -\end{texlist} -\end{example} -这些设置是样式的默认设置,用户如果没有其他需求则无需调整,若需调整详见下一节。 +\subsubsection{不同参考文献分节采用不同著录样式} -\subsubsection{排序的逻辑和调整方法} +不同参考文献分节采用不同著录样式主要针对一个tex文档中存在多个参考文献表,且各参考文献表的格式需求不同。比如一些学位论文写作中,正文的参考文献表为著者-出版年制,而附录中的作者论著情况则用顺序编码制。这种情况目前由gb7714-2015mx样式解决,选项加载方式如例\ref{eg:gb7714mx}所示。 -文献表中文献的排序通常是由处理bib文件的后端程序实施的,比如bibtex或biber程序。通常biblatex选择biber作为后端程序来实现更灵活的排序机制。biber在处理过程中读取bib文件信息并根据biblatex宏包和文献样式在bcf文件中输出设置信息执行排序。而bibtex程序则在读取bib文件后根据bst样式进行排序,尽管可以让bibtex读入特殊格式bib文件来提供一些设置参数,但总的来说基于bibtex的文献排序是由bst样式决定的。而biber程序则是提供了一套工具,具体的排序方式是由biblatex宏包和样式文件中的设置决定的,biber根据这些设置执行特定的逻辑来实现排序。 +gb7714-2015mx样式默认使用顺序编码样式,当要使用著者-出版年制样式时,则利用命令 +\verb|\setaystylesection|进行设置,该命令有一个必选参数,表示采用著者-出版年制样式的参考文献节的编号。注意该命令一次只能设置一个文献节,因此设置多个参考文献节时,需要多次使用\verb|\setaystylesection|命令,比如节2节4都采用著者-出版年制样式, +那么设置\verb|\setaystylesection{2}\setaystylesection{4}|。 -biblatex通过sorting选项选择排序模板来进行排序,而排序模板是可以自定义的。gb7714-2015及 -gb7714-2015ay样式提供了gblanorder选项来选择文种的排列顺序,其本质是对排序模板中与语言相关的域进行设置,因此它是与sorting选项选择的排序模板密切相关的,biblatex提供的标准样式排序模板并不支持该选项。 -而sortlocale选项则是针对字符排序选择本地化调整方案,比如选项zh\_\_pinyin就是选择针对中文字符根据拼音进行排序。本地化调整方案是由perl模块提供,中文字符排序的可用选项值详见前面的sortlocale选项说明。需要注意的是本地化字符排序调整方案设置也可以通过biber命令行选项提供,biblatex设置和biber命令行设置两种方式见例\ref{eg:sort:opts}、例\ref{eg:sort:bibercmd}。 +目前gb7714-2015mx样式中的两种格式:顺序编码和著者-出版年制样式默认都是符合GB/T 7714-2015 标准的,如果需要做格式的修改,则完全可以通过自定义实现。图\ref{fig:eg:ms}展示了3个参考文献分节的文档,其中节2使用了著者-出版年制。 -\begin{example}{中文字符排序调整可利用biblatex选项}{eg:sort:opts} -\begin{texlist} -%按拼音排序,biblatex加载选项 -\usepackage[backend=biber,style=gb7714-2015ay,sortlocale=zh__pinyin]{biblatex} -%按笔画排序,biblatex加载选项 -\usepackage[backend=biber,style=gb7714-2015ay,sortlocale=zh__stroke]{biblatex}% -%此时,biber则正常编译不需手动加选项,因为排序调整方案(sort tailoring)已由biblatex 给出。 -biber jobname -\end{texlist} -\end{example} +\begin{figure}[!htb] +\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +\centering +\deflength{\textparwd}{\linewidth-1cm} +\includegraphics[width=\textparwd]{egmsindfrefsec.pdf} +\end{tcolorbox} +\caption{不同参考文献分节采用不同著录样式}\label{fig:eg:mx} +\end{figure} -\begin{example}{中文字符排序调整也可利用biber选项}{eg:sort:bibercmd} +测试见文档\href{run:egfigure/egmsindfrefsec.tex}{egmsindfrefsec.tex}。 + +\subsubsection{局部定义的不同样式的文献表}\label{sec:local:biblist:set} + +在一些学位论文中,除了正文后面的全局文献表外,有时需要给出攻读学位期间的学术成果,这部分内容可以直接按正文的方式写,有时也可以利用文献表的方式写,即将学术成果内容写成bibtex格式,然后利用类似生成参考文献表的方式输出。 + +这一局部定义的文献表可以利用不同的方式来得到,比如使用refsection分节,或者使用category/type等筛选输出指定的文献。若该文献表的格式不同于正文的文献表,那么就需要做局部调整,此时利用一些能够局部调整的选项来实现会比较方便,如果需要的话也可以引入一些其它设置来实现特殊的格式,比如论文作者加粗等。例\ref{eg:resume:localset}给出了一个简单示例,其中故意做了一些局部设置,使用时需注意局部选项设置和数据注解与bib文件内容的配合。 + +\begin{example}{为研究成果表局部设置格式}{eg:resume:localset} \begin{texlist} -%biblatex正常加载,即不设置排序的本地化调整方案 -\usepackage[backend=biber,style=gb7714-2015ay]{biblatex} +\begin{filecontents}{resume.bib} +@article{ref-1-1-Yang, +author = {Yang, Y and Ren, T L and Zhang, L T and others}, +title = {Miniature microphone with silicon-based ferroelectric thin films}, +journal = {Integrated Ferroelectrics}, +date = {2003}, +pages = {229-235}, +volume = {52}, +annotation = {SCI 收录, 检索号:758FZ}, +AUTHOR+an={1=thesisauthor}, +OPTIONS = {maxbibnames=1,minbibnames=1} +} -%此时需利用biber选项给出本地化排序调整方案: -%按拼音排序,则设置-l zh__pinyin -biber -l zh__pinyin jobname -%按笔画排序,则设置-l zh__pinyin -biber -l zh__stroke jobname +@article{ref-2-1-杨轶, +author = {杨轶 and 张宁欣 and 任天令 and others}, +title = {硅基铁电微声学器件中薄膜残余应力的研究}, +journal = {中国机械工程}, +pages= {1289-1291}, +date = {2005}, +volume = {16}, +number ={14}, +annotation ={EI 收录, 检索号:0534931 2907}, +AUTHOR+an={1=thesisauthor} +} + +@patent{ref-8-1-任天令, +author = {任天令 and 杨轶 and 朱一平 and others}, +title = {硅基铁电微声学传感器畴极化区域控制和电极连接的方法}, +number ={中国, CN1602118A}, +annotation = {中国专利公开号.}, +} + +@patent{ref-9-1-Ren, +author = {Ren, T L and Yang, Y and Zhu, Y P and others}, +title = {Piezoelectric micro acoustic sensor based on ferroelectric materials}, +number ={USA, No.11/215, 102}, +annotation = {美国发明专利申请号.}, +} +\end{filecontents} + +\begin{refsection}[resume.bib] +\nocite{ref-8-1-任天令,ref-9-1-Ren}% +\printbibliography[heading=subbibliography,title={研究成果}] +\end{refsection} + + +\begin{refsection}[ref/resume.bib] +\settoggle{bbx:gbtype}{false}%局部设置不输出文献类型和载体标识符 +\settoggle{bbx:gbannote}{true}%局部设置输出附加的annote/annotation信息 +\setcounter{gbnamefmtcase}{1}%局部设置作者的格式为familyahead格式 +\makeatletter +\renewcommand*{\mkbibnamegiven}[1]{%通过作者注释(AUTHOR+an)局部调整作者的格式需与bib配合 +\ifitemannotation{thesisauthor} +{\ifbibliography{\textcolor{blue}{\textbf{#1}}}{#1}}% +{#1}\ifbibliography{\ifitemannotation{corresponding}{\textsuperscript{*}}{}}{}% +} +\renewcommand*{\mkbibnamefamily}[1]{% +\ifitemannotation{thesisauthor} +{\ifbibliography{\textcolor{blue}{\textbf{#1}}}{#1}} +{#1}} +\def\blx@maxbibnames{2} %局部调整作者数量,bib文件中加入选项也可以调整 +\def\blx@minbibnames{2} +%\defcounter{gbbiblocalcase}{1} %局部强迫中文本地化字符串 +%\defcounter{gbbiblocalcase}{2} %局部强迫英文本地化字符串 +\setlocalbibstring{andotherscn}{et al.} %另一种调整方式 +\setlocalbibstring{andothers}{等} +\makeatother + +\nocite{ref-1-1-Yang,ref-2-1-杨轶} + +\setlength{\biblabelsep}{12pt} +\printbibliography[heading=subbibliography,title={发表的学术论文}] %发表和录用的合在一起 +\end{refsection} \end{texlist} \end{example} -对于sorting选项,biblatex提供了标准的排序模板包括: +其它示例可以参考:\href{https://blog.csdn.net/xenonhu/article/details/120853247}{修改指定作者的格式来突出显示},nudtpaper,BIThesis等。 +测试文档见\href{run:example/test-resume.tex}{test-resume.tex}。 -\begin{description} - \item[nty] 按照姓名、标题、年份排序。 - \item[nyt] 按照姓名、年份、标题排序。 - \item[nyvt] 按照姓名、年份、卷数、标题排序。 - \item[anyt] 按照字母标签、姓名、年份、标题排序。 - \item[anyvt] 按照字母标签、姓名、年份、卷数、标题排序。 - \item[ynt] 按照年份、姓名、标题排序。 - \item[ydnt] 按照年份(降序)、姓名、标题排序。 - \item[none] 不进行排序。所有的条目按照引用顺序处理。 -\end{description} -而gb7741-2015和gb7741-2015ay样式提供了4个排序模板: +\subsubsection{完全自定义的条目内容样式} -\begin{description} - \item[gb7714-2015] 以语言、作者、年份、标题、升序排列 - \item[gbnytd] 以语言、作者、年份、标题、降序排列 - \item[gbynta] 以语言、年份、作者、标题、升序排列 - \item[gbyntd] 以语言、年份、作者、标题、降序排列 -\end{description} +完全自定义的条目内容样式分两类: +一类是对已知类型文献的做针对性的调整。 +比如上交图书馆要求 arXiv 文献使用 [EB/OL] 而 [J] 类型,要求的著录格式如下: -在使用gb7714-2015和gb7714-2015ay样式时可以使用上述排序模板。用户也可以增加自定义模板,比如为了处理多音字的问题,用户可以手动设置key域用来对中文文献进行排序,定义如下的排序模板: +\begin{texlist} +主要责任者.题名:其他题名信息[EB/OL].预印本平台:预印本编号(更新或修改日期)[引用日期].获取和访问路径 +\end{texlist} -\begin{example}{针对多音字问题的排序模板}{eg:sort:multipinyin} +若直接使用 arXiv 网站导出的bib信息,则文献类型是misc,通常无法生成需要的格式,此时我们可以arXiv文献根据上述要求做自定义调整。因为 arXiv 导出的bib信息中包含archivePrefix=\{arXiv\}的特殊域,该域在biber处理后还会转换为eprinttype域,所以可以作为识别的关键。由于 arXiv 网站导出的bib信息中不含有网址,访问日期等信息,也可以通过sourcemap批量添加。因此我们自定义的方式如例\ref{eg:arXiv:localset}所示,如此处理在不影响其它文献的情况下可以生成arXiv 文献的专门格式。 +\begin{example}{arXiv 文献的特殊格式定制}{eg:arXiv:localset} \begin{texlist} -\DeclareSortingTemplate{multipinyin}{ - \sort{ - \field{presort} - } - \sort{ - \field{lansortorder}%language - } - \sort{ - \field{sortkey} - } - \sort{%[direction=descending] - \field{sortname} - \field{author} - \field{editor} - \field{translator} - } - \sort{ - \field{sortyear} - \field{year} - } - \sort{ - \field{sorttitle} - \field{title} - } - \sort{ - \field{volume} - \literal{0} +%自动添加一些信息 +\DeclareStyleSourcemap{ + \maps[datatype=bibtex]{ + \map[overwrite]{ + \pertype{misc} + \step[fieldsource=archivePrefix,match=arXiv,final] + \step[fieldset=usera,fieldvalue={EB}] + \step[fieldset=primaryClass,fieldvalue={}] + \step[fieldset=url,fieldvalue={https://arxiv.org/abs/}] + \step[fieldsource=eprint] + \step[fieldset=url,origfieldval, append] + \step[fieldset=urldate,fieldvalue={2023-02-03}] } } -\end{texlist} -\end{example} - -其中,排序模板优先使用persort域进行排序,接着是与文种相关的lansortorder域,接着是sortkey域(该域在biblatex中就是key域的别名),接着是sortname等作者姓名相关的域,要让文献根据多音字习惯音进行排序,那么就在key域中设置文献作者姓名的习惯音。比如三篇文献作者分别是[李四]、[J. B. Conway]、[曾三]。在设置sorting=multipinyin, gblanorder=chineseahead, sortlocale=zh\_\_pinyin的情况下,根据上述的multipinyin排序模板,首先根据文种和作者信息将中文文献[曾三][李四]排在前面,接着是[J. B. Conway],因为默认情况下,曾字考虑的读音是ceng2,但这不是我们希望得到的。 - -所以需要手动将key域设置为中文的拼音,比如[李四]文献设置key=\{li3si4\},而[曾三]文献设置key=\{zeng1san1\},那么中文文献仍然排在前面,但根据key域的设置会将[李四]文献排列在[曾三]前面。因此手动设置作者姓名的习惯拼音后,文献排列正确,顺序为:[李四][曾三][J. B. Conway]。 需要注意的是:若要手动设置拼音则需要对文献表中的全部中文文献设置否则利用key域排序就会失效,而这并是一个轻松的活,此时我们可以使用自动设置拼音的工具,详见 -\href{https://www.latexstudio.net/index/details/index/ids/1546}{为中文参考文献自动添加排序用的拼音信息域},\href{https://github.com/hushidong/biblatex-map}{bibmap宏包}。 +} +%添加更新日期 +\renewbibmacro*{doi+eprint+url}{% + \iftoggle{bbx:eprint} + {\iffieldundef{eprint}{}{\newunit\usebibmacro{eprint}}} + {}% + \iffieldundef{eprinttype}{}%%注意:archivePrefix映射成了eprinttype + {\iffieldequalstr{eprinttype}{arXiv}% + {\mkbibparens{\usebibmacro{newsdate}}}{}}% + \iftoggle{bbx:url} + {\usebibmacro{url+urldate}} + {} + \newunit\newblock + \iftoggle{bbx:doi} + {\printfield{doi}} + {}} +% +% 备选类型驱动 +% +% 利用biblatex的misc驱动 +\DeclareBibliographyDriver{misc}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}% + \usebibmacro{title}% + \newunit\newblock + \printfield{howpublished}% + \newunit\newblock + \printfield{type}% + \newunit + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \iffieldundef{eprinttype}{\usebibmacro{institution+location+date}}% + {}%注意:archivePrefix映射成了eprinttype + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{annotation}\usebibmacro{finentry}} +\end{texlist} +\end{example} -其中,与文种相关的排序域lansortorder是由gblanorder选项设置的,当选项值为chineseahead时,语言顺序为cn;jp;kr;en;fr;ru,会将中文文献的lansortorder域设置为1,日语文献设置为2,韩语文献设置为3,英文文献设置为4,法语文献设置为5,俄语文献设置为6。排序过程中按升序排序,那么自然中文文献在前英文文献在后。若对gblanorder选择设置一个自定义的字符串如:cn;en;ru;fr;jp;kr,那么文种的排列顺序为中文、英文、俄语、法语、日语、韩语。 +第二类则是不完全(或无规范)的自定义输出,主要用于输出部分参考文献信息。这时可以采用文献缩略信息打印的方法实现。比如只输出题名信息如例\ref{eg:partial:info}所示。 -根据上述的排序逻辑可知,要做排序的调整首先可以考虑合理地设置选项,来选择合适的排序模板、文种顺序和本地化字符排序调整方案。当不满足要求时,可以自定义排序模板,并设置sorting选项为该模板,来实现用户需要的排序方式。 +\begin{example}{部分文献信息自定义输出}{eg:partial:info} +\begin{texlist} +%定义驱动 +\DeclareBibliographyDriver{titlexample}{% +\usebibmacro{begentry}% +\iffieldundef{title}{\usebibmacro{journal+issuetitle}}{\usebibmacro{title}} +\usebibmacro{finentry} +} +%定义环境 +\defbibenvironment{exampleenv} + {\list + {示例\printfield{labelnumber}:\space} + {\setlength{\labelwidth}{1cm}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +%正文中 +\subsection{题名} +\begin{refsection} +\nocite{王夫之的诠释--} +\nocite{张子正蒙注--} +\nocite{化学动力学和反应器原理--} +\nocite{袖珍神学--} +\nocite{北京师范大学学报--} +\nocite{Gasesinsea--} +\nocite{jmath--} +\printbiblist[title={题名示例},env=exampleenv]{titlexamplea} +\end{refsection} +\end{texlist} +\end{example} +更多的实现方法见 +\href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography/blob/master/biblatex-solution-to-latex-bibliography.pdf}% +{biblatex-solution-to-latex-bibliography}中的第2.10节。 -\subsubsection{姓名中的多音字排序调整} +具体例子则可以参考\href{run:./stdgbT7714-2015.pdf}{stdgbT7714-2015.pdf}。其中第8节中大量使用这种方式。 -前一小节在介绍排序模板时,附带介绍了姓名多音字处理的一种方法,具体来说,就是人工或者利用bibmap工具为bib文件中的各个中文条目添加key域,用于指定中文的多音字的拼音,从而使排序时使用这个在key域指定的拼音进行排序。 -为避免这一添加拼音到key域的操作,这里提供另一种可能更为方便的方法。biber在做排序时实际上是利用 perl 的 Unicode::Collation::locale 模块,其中的Pinyin.pm提供了汉字的拼音顺序,对该文件做临时的修改,可以调整多音字的顺序。 -因为在参考文献排序中通常会使用字的姓名音,所以我们对这个文件做非正式的修改,并放到github上(\href{https://github.com/hushidong/biblatex-gb7714-2015/files/11147697/Pinyin-modified-zhai.zip}{Pinyin.zip}),若用户需要正确的姓的多音字排序,那么只要用该文件替换biber临时工作目录中的文件即可。 -%注意:目前该文件只修改了“曾”“沈”两个字,而“翟”“仇”等没有做修改,若用户有需求后面再增加。 -通常biber在第一次运行的时候,会构建一个依赖目录,这也是biber的临时工作路径,而所有的依赖文件就在其中。 -在windows下通常会在临时目录temp下构建类似\verb|par-/cache-|的目录(其它系统也是类似命名,可以搜索一下),所有的依赖包括Pinyin.pm都会在其内部,找到并替换即可(Pinyin.pm文件通常在\verb|cache-\inc\lib\Unicode\Collate\CJK|下)。 +\subsection{多语言支持} -\subsection{多语言支持} \subsubsection{多语言混合文献表}\label{sec:multilan:combine} @@ -2210,145 +2388,148 @@ language={chinese} 更多的示例可以参考:\href{https://github.com/hushidong/biblatex-gb7714-2015/issues/154} {双语参考文献中note注释}。 -\subsection{多样式支持} -\subsubsection{一个文献表采用多种著录样式} -一个文献表采用多种著录样式主要针对的是在一个tex文档生成参考文献表中,不同语言的文献采用不同的著录格式,比如中文文献采用GB/T 7714-2015 样式,而西文文献采用西文习惯的样式。这种情况目前由gb7714-2015ms样式解决,选项加载方式如例\ref{eg:gb7714ms}所示。 -目前gb7714-2015ms样式中,有两种应用方式,一是全部文献都采用GB/T 7714-2015 标准样式,二是中文西文分别采用GB/T 7714-2015 标准样式和biblatex的默认样式。两种方式的选择通过gbstyle选项设置。区分语言使用不同样式的情况下,如有其它需要,完全可以通过定义中文和西文的格式做进一步的修改,比如将英文文献的样式修改为IEEE格式。图\ref{fig:eg:ms}展示了两种不同语言不同的著录格式。 -\begin{figure}[!htb] -\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -\centering -\deflength{\textparwd}{\linewidth-1cm} -\includegraphics[width=\textparwd]{egmsinabiblio.pdf} -\end{tcolorbox} -\caption{一个文献表采用多种著录样式示例}\label{fig:eg:ms} -\end{figure} -测试见文档\href{run:egfigure/egmsinabiblio.tex}{egmsinabiblio.tex}。 +\subsection{文献表排序与调整} +\subsubsection{国标要求的排序方式} +排序是文献表格式的重要内容。国标的两种编制方式中,顺序编码制要求文献表中的文献按照正文中文献引用的先后顺序进行排序,而著者-出版年制则要求文献表首先按照文种对不同语言的文献进行分组,中文在前英文在后,分组内的中文文献则以拼音或笔画进行排序,而西文文献则按照字母顺序进行排列。在gb7714-2015国标样式中两种编制方式的排序分别以如下选项设置来实现: -\subsubsection{不同参考文献分节采用不同著录样式} +\begin{example}{两种编制方式的排序设置}{eg:bib:sorting} +\begin{texlist} +%顺序编码制: +sorting=none -不同参考文献分节采用不同著录样式主要针对一个tex文档中存在多个参考文献表,且各参考文献表的格式需求不同。比如一些学位论文写作中,正文的参考文献表为著者-出版年制,而附录中的作者论著情况则用顺序编码制。这种情况目前由gb7714-2015mx样式解决,选项加载方式如例\ref{eg:gb7714mx}所示。 +%著者-出版年制: +sorting=gb7714-2015,gblanorder=chineseahead,sortlocale=zh__pinyin +\end{texlist} +\end{example} -gb7714-2015mx样式默认使用顺序编码样式,当要使用著者-出版年制样式时,则利用命令 -\verb|\setaystylesection|进行设置,该命令有一个必选参数,表示采用著者-出版年制样式的参考文献节的编号。注意该命令一次只能设置一个文献节,因此设置多个参考文献节时,需要多次使用\verb|\setaystylesection|命令,比如节2节4都采用著者-出版年制样式,那么设置\verb|\setaystylesection{2}\setaystylesection{4}|。 +这些设置是样式的默认设置,用户如果没有其他需求则无需调整,若需调整详见下一节。 -目前gb7714-2015mx样式中的两种格式:顺序编码和著者-出版年制样式默认都是符合GB/T 7714-2015 标准的,如果需要做格式的修改,则完全可以通过自定义实现。图\ref{fig:eg:ms}展示了3个参考文献分节的文档,其中节2使用了著者-出版年制。 +\subsubsection{排序的逻辑和调整方法} -\begin{figure}[!htb] -\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -\centering -\deflength{\textparwd}{\linewidth-1cm} -\includegraphics[width=\textparwd]{egmsindfrefsec.pdf} -\end{tcolorbox} -\caption{不同参考文献分节采用不同著录样式}\label{fig:eg:mx} -\end{figure} +文献表中文献的排序通常是由处理bib文件的后端程序实施的,比如bibtex或biber程序。通常biblatex选择biber作为后端程序来实现更灵活的排序机制。biber在处理过程中读取bib文件信息并根据biblatex宏包和文献样式在bcf文件中输出设置信息执行排序。而bibtex程序则在读取bib文件后根据bst样式进行排序,尽管可以让bibtex读入特殊格式bib文件来提供一些设置参数,但总的来说基于bibtex的文献排序是由bst样式决定的。而biber程序则是提供了一套工具,具体的排序方式是由biblatex宏包和样式文件中的设置决定的,biber根据这些设置执行特定的逻辑来实现排序。 -测试见文档\href{run:egfigure/egmsindfrefsec.tex}{egmsindfrefsec.tex}。 +biblatex通过sorting选项选择排序模板来进行排序,而排序模板是可以自定义的。gb7714-2015及 +gb7714-2015ay样式提供了gblanorder选项来选择文种的排列顺序,其本质是对排序模板中与语言相关的域进行设置,因此它是与sorting选项选择的排序模板密切相关的,biblatex提供的标准样式排序模板并不支持该选项。 +而sortlocale选项则是针对字符排序选择本地化调整方案,比如选项zh\_\_pinyin就是选择针对中文字符根据拼音进行排序。本地化调整方案是由perl模块提供,中文字符排序的可用选项值详见前面的sortlocale选项说明。需要注意的是本地化字符排序调整方案设置也可以通过biber命令行选项提供,biblatex设置和biber命令行设置两种方式见例\ref{eg:sort:opts}、例\ref{eg:sort:bibercmd}。 -\subsubsection{局部定义的不同文献表的样式} +\begin{example}{中文字符排序调整可利用biblatex选项}{eg:sort:opts} +\begin{texlist} +%按拼音排序,biblatex加载选项 +\usepackage[backend=biber,style=gb7714-2015ay,sortlocale=zh__pinyin]{biblatex} +%按笔画排序,biblatex加载选项 +\usepackage[backend=biber,style=gb7714-2015ay,sortlocale=zh__stroke]{biblatex}% +%此时,biber则正常编译不需手动加选项,因为排序调整方案(sort tailoring)已由biblatex 给出。 +biber jobname +\end{texlist} +\end{example} -在一些学位论文中,除了正文后面的全局文献表外,有时需要给出攻读学位期间的学术成果,这部分内容可以直接按正文的方式写,有时也可以利用文献表的方式写,即将学术成果内容写成bibtex格式,然后利用类似生成参考文献的方式输出。 +\begin{example}{中文字符排序调整也可利用biber选项}{eg:sort:bibercmd} +\begin{texlist} +%biblatex正常加载,即不设置排序的本地化调整方案 +\usepackage[backend=biber,style=gb7714-2015ay]{biblatex} -该文献表可以利用不同的形式来得到,比如使用refsection分节,或者使用category/type等筛选输出指定的文献。若该文献表的格式不同于正文的文献表,那么就需要做局部调整,此时利用一些能够局部调整的选项来实现会比较方便,如果需要的话也可以引入一些其它设置来实现特殊的格式,比如论文作者加粗等。例\ref{eg:resume:localset}给出了一个简单示例,其中故意做了一些局部设置,使用时需注意局部选项设置和数据注解与bib文件内容的配合。 +%此时需利用biber选项给出本地化排序调整方案: +%按拼音排序,则设置-l zh__pinyin +biber -l zh__pinyin jobname +%按笔画排序,则设置-l zh__pinyin +biber -l zh__stroke jobname +\end{texlist} +\end{example} -\begin{example}{为研究成果表局部设置格式}{eg:resume:localset} -\begin{texlist} - \begin{filecontents}{resume.bib} - @article{ref-1-1-Yang, - author = {Yang, Y and Ren, T L and Zhang, L T and others}, - title = {Miniature microphone with silicon-based ferroelectric thin films}, - journal = {Integrated Ferroelectrics}, - date = {2003}, - pages = {229-235}, - volume = {52}, - annotation = {SCI 收录, 检索号:758FZ}, - AUTHOR+an={1=thesisauthor}, - OPTIONS = {maxbibnames=1,minbibnames=1} - } +对于sorting选项,biblatex提供了标准的排序模板包括: - @article{ref-2-1-杨轶, - author = {杨轶 and 张宁欣 and 任天令 and others}, - title = {硅基铁电微声学器件中薄膜残余应力的研究}, - journal = {中国机械工程}, - pages= {1289-1291}, - date = {2005}, - volume = {16}, - number ={14}, - annotation ={EI 收录, 检索号:0534931 2907}, - AUTHOR+an={1=thesisauthor} - } +\begin{description} + \item[nty] 按照姓名、标题、年份排序。 + \item[nyt] 按照姓名、年份、标题排序。 + \item[nyvt] 按照姓名、年份、卷数、标题排序。 + \item[anyt] 按照字母标签、姓名、年份、标题排序。 + \item[anyvt] 按照字母标签、姓名、年份、卷数、标题排序。 + \item[ynt] 按照年份、姓名、标题排序。 + \item[ydnt] 按照年份(降序)、姓名、标题排序。 + \item[none] 不进行排序。所有的条目按照引用顺序处理。 +\end{description} - @patent{ref-8-1-任天令, - author = {任天令 and 杨轶 and 朱一平 and others}, - title = {硅基铁电微声学传感器畴极化区域控制和电极连接的方法}, - number ={中国, CN1602118A}, - annotation = {中国专利公开号.}, - } +而gb7741-2015和gb7741-2015ay样式提供了4个排序模板: - @patent{ref-9-1-Ren, - author = {Ren, T L and Yang, Y and Zhu, Y P and others}, - title = {Piezoelectric micro acoustic sensor based on ferroelectric materials}, - number ={USA, No.11/215, 102}, - annotation = {美国发明专利申请号.}, - } - \end{filecontents} - - \begin{refsection}[resume.bib] - \nocite{ref-8-1-任天令,ref-9-1-Ren}% - \printbibliography[heading=subbibliography,title={研究成果}] - \end{refsection} - - - \begin{refsection}[ref/resume.bib] - \settoggle{bbx:gbtype}{false}%局部设置不输出文献类型和载体标识符 - \settoggle{bbx:gbannote}{true}%局部设置输出注释信息 - \setcounter{gbnamefmtcase}{1}%局部设置作者的格式为familyahead格式 - \makeatletter - \renewcommand*{\mkbibnamegiven}[1]{%通过作者注释局部调整作者的格式需与bib配合 - \ifitemannotation{thesisauthor} - {\ifbibliography{\textcolor{blue}{\textbf{#1}}}{#1}}% - {#1}\ifbibliography{\ifitemannotation{corresponding}{\textsuperscript{*}}{}}{}% +\begin{description} + \item[gb7714-2015] 以语言、作者、年份、标题、升序排列 + \item[gbnytd] 以语言、作者、年份、标题、降序排列 + \item[gbynta] 以语言、年份、作者、标题、升序排列 + \item[gbyntd] 以语言、年份、作者、标题、降序排列 +\end{description} + +在使用gb7714-2015和gb7714-2015ay样式时可以使用上述排序模板。用户也可以增加自定义模板,比如为了处理多音字的问题,用户可以手动设置key域用来对中文文献进行排序,定义如下的排序模板: + +\begin{example}{针对多音字问题的排序模板}{eg:sort:multipinyin} +\begin{texlist} +\DeclareSortingTemplate{multipinyin}{ + \sort{ + \field{presort} + } + \sort{ + \field{lansortorder}%language + } + \sort{ + \field{sortkey} + } + \sort{%[direction=descending] + \field{sortname} + \field{author} + \field{editor} + \field{translator} + } + \sort{ + \field{sortyear} + \field{year} + } + \sort{ + \field{sorttitle} + \field{title} + } + \sort{ + \field{volume} + \literal{0} + } } - \renewcommand*{\mkbibnamefamily}[1]{% - \ifitemannotation{thesisauthor} - {\ifbibliography{\textcolor{blue}{\textbf{#1}}}{#1}} - {#1}} - \def\blx@maxbibnames{2} %局部调整作者数量,bib文件中加入选项也可以调整 - \def\blx@minbibnames{2} - %\defcounter{gbbiblocalcase}{1} %局部强迫中文本地化字符串 - %\defcounter{gbbiblocalcase}{2} %局部强迫英文本地化字符串 - \setlocalbibstring{andotherscn}{et al.} %另一种调整方式 - \setlocalbibstring{andothers}{等} - \makeatother - - \nocite{ref-1-1-Yang,ref-2-1-杨轶} - - \setlength{\biblabelsep}{12pt} - \printbibliography[heading=subbibliography,title={发表的学术论文}] % 发表的和录用的合在一起 - \end{refsection} \end{texlist} \end{example} -其它示例可以参考:\href{https://blog.csdn.net/xenonhu/article/details/120853247}{修改指定作者的格式来突出显示},nudtpaper,BIThesis等。 -测试文档见\href{run:example/test-resume.tex}{test-resume.tex}。 +其中,排序模板优先使用persort域进行排序,接着是与文种相关的lansortorder域,接着是sortkey域(该域在biblatex中就是key域的别名),接着是sortname等作者姓名相关的域,要让文献根据多音字习惯音进行排序,那么就在key域中设置文献作者姓名的习惯音。比如三篇文献作者分别是[李四]、[J. B. Conway]、[曾三]。在设置sorting=multipinyin, gblanorder=chineseahead, sortlocale=zh\_\_pinyin的情况下,根据上述的multipinyin排序模板,首先根据文种和作者信息将中文文献[曾三][李四]排在前面,接着是[J. B. Conway],因为默认情况下,曾字考虑的读音是ceng2,但这不是我们希望得到的。 + +所以需要手动将key域设置为中文的拼音,比如[李四]文献设置key=\{li3si4\},而[曾三]文献设置key=\{zeng1san1\},那么中文文献仍然排在前面,但根据key域的设置会将[李四]文献排列在[曾三]前面。因此手动设置作者姓名的习惯拼音后,文献排列正确,顺序为:[李四][曾三][J. B. Conway]。 需要注意的是:若要手动设置拼音则需要对文献表中的全部中文文献设置否则利用key域排序就会失效,而这并是一个轻松的活,此时我们可以使用自动设置拼音的工具,详见 +\href{https://www.latexstudio.net/index/details/index/ids/1546}{为中文参考文献自动添加排序用的拼音信息域},\href{https://github.com/hushidong/biblatex-map}{bibmap宏包}。 + + + +其中,与文种相关的排序域lansortorder是由gblanorder选项设置的,当选项值为chineseahead时,语言顺序为cn;jp;kr;en;fr;ru,会将中文文献的lansortorder域设置为1,日语文献设置为2,韩语文献设置为3,英文文献设置为4,法语文献设置为5,俄语文献设置为6。排序过程中按升序排序,那么自然中文文献在前英文文献在后。若对gblanorder选择设置一个自定义的字符串如:cn;en;ru;fr;jp;kr,那么文种的排列顺序为中文、英文、俄语、法语、日语、韩语。 + +根据上述的排序逻辑可知,要做排序的调整首先可以考虑合理地设置选项,来选择合适的排序模板、文种顺序和本地化字符排序调整方案。当不满足要求时,可以自定义排序模板,并设置sorting选项为该模板,来实现用户需要的排序方式。 + + +\subsubsection{姓名中的多音字排序调整} + +前一小节在介绍排序模板时,附带介绍了姓名多音字处理的一种方法,具体来说,就是人工或者利用bibmap工具为bib文件中的各个中文条目添加key域,用于指定中文的多音字的拼音,从而使排序时使用这个在key域指定的拼音进行排序。 + +为避免这一添加拼音到key域的操作,这里提供另一种可能更为方便的方法。biber在做排序时实际上是利用 perl 的 Unicode::Collation::locale 模块,其中的Pinyin.pm提供了汉字的拼音顺序,对该文件做临时的修改,可以调整多音字的顺序。 + +因为在参考文献排序中通常会使用字的姓名音,所以我们对这个文件做非正式的修改,并放到github上(\href{https://github.com/hushidong/biblatex-gb7714-2015/files/11147697/Pinyin-modified-zhai.zip}{Pinyin.zip}),若用户需要正确的姓的多音字排序,那么只要用该文件替换biber临时工作目录中的文件即可。 +%注意:目前该文件只修改了“曾”“沈”两个字,而“翟”“仇”等没有做修改,若用户有需求后面再增加。 + +通常biber在第一次运行的时候,会构建一个依赖目录,这也是biber的临时工作路径,而所有的依赖文件就在其中。 +在windows下通常会在临时目录temp下构建类似\verb|par-/cache-|的目录(其它系统也是类似命名,可以搜索一下),所有的依赖包括Pinyin.pm都会在其内部,找到并替换即可(Pinyin.pm文件通常在\verb|cache-\inc\lib\Unicode\Collate\CJK|下)。 + + -\subsubsection{完全自定义的条目内容样式} -完全自定义的条目内容样式,针对不完全和不规范的文献表输出,主要用于输出部分参考文献信息。这时可以采用文献缩略信息打印的方法实现。具体的实现方法见\href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography/blob/master/biblatex-solution-to-latex-bibliography.pdf}% -{biblatex-solution-to-latex-bibliography}中的第2.10节。 -具体例子则可以参考\href{run:./stdgbT7714-2015.pdf}{stdgbT7714-2015.pdf}。其中第8节中大量使用这种方式。 \subsection{bib文件与文献条目数据} @@ -2570,8 +2751,7 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 \subsection{其它事项}\label{sec:pkg:hints} -\begin{enumerate} - \item biblatex 的优点 +\subsubsection{biblatex 的优点} 基于 biblatex 宏包的参考文献生成方法,具有很多明显的优点,读者可以从 \href{https://github.com/CTeX-org/lshort-cn}{lshort-cn}、 @@ -2581,15 +2761,7 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 %[也由于对bibtex语言不熟悉,偷懒不想学$( \hat{} \bot \hat{} )$] \begin{itemize} - \item 使用简单。代码结构很简单,格式控制很简单,功能设置很简单,编译方式很简单,编译命令无限制(xelatex、pdflatex等均可)。例\ref{eg:func:backref} 给出了后向超链接功能的设置。 - - \begin{example}{文献条目的后向超链接设置}{eg:func:backref} - \begin{texlist} - %加上后向超链接设置,需要4步编译。 - \usepackage[backend=biber,style=gb7714-2015,backref=true]{biblatex} - \end{texlist} - \end{example} - + \item 使用简单。代码结构很简单,格式控制很简单,功能设置很简单,编译方式很简单,编译命令无限制(xelatex、pdflatex等均可)。 %使用够方便 \item 划分自由。在一个文档中可以生成任意数量的文献表,无需用将分档划分成不同的文件来辅助生成分章参考文献。利用refsection 和refsegment方便划分,具有嵌套、遍历等多种灵活处理方式。 @@ -2605,7 +2777,18 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 \end{itemize} %上述这些优点也是笔者决定编写符合GB/T 7714-2015标准的参考文献样式文件的原因之一。 - \item biber 输出引用文献bib文件 +\subsubsection{文献表后向超链接功能} + +文献表后向超链接功能由backref选项启用,如例\ref{eg:func:backref} 所示。 + +\begin{example}{文献条目的后向超链接设置}{eg:func:backref} +\begin{texlist} +%加上后向超链接设置,需要4步编译。 +\usepackage[backend=biber,style=gb7714-2015,backref=true]{biblatex} +\end{texlist} +\end{example} + +\subsubsection{biber 抽取当前引用文献到新的bib文件} 利用biber可以实现引用文献数据的bib输出,常用于从一个大的bib文件中导出仅被引用的文献信息到一个小的bib 文件,比如:要提交一个小论文附带的bib文件时。 @@ -2615,8 +2798,7 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 \end{texlist} \end{example} - - \item biber 控制特殊符号的tex宏的转换 +\subsubsection{biber 控制特殊符号的tex宏的转换} 默认情况下biber为了实现更好的排序,会将一些latex提供的特殊宏转换为utf-8编码字符。但有时我们可能并不需要做这样的转换,因为转换后符号的形式就变了。由于biber依赖一个字符映射表recode\_data.xml进行转换,因此我们可以利用它来构建一个自定义映射表,从而避免biber 对一些特殊宏的转换。具体做法如下: \begin{itemize} @@ -2632,8 +2814,7 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 \end{example} \end{itemize} - - \item 不同tex引擎下的编译 +\subsubsection{不同tex引擎下的编译方式} tex源文档既可以用xelatex编译,也可以利用pdflatex或latex进行编译。但要注意的是pdflatex编译可能因为某些样式比如authoryear,使用了xstring宏包中的一些命令而导致错误,但numeric类样式通常没有问题。该问题在biblatex更新到3.12版本后取消xstring 宏包后得以解决。 @@ -2641,14 +2822,17 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 utf-8编码的文档,采用xelatex 编译没有任何注意事项,但使用pdflatex编译时,需要给ctex 宏包加载UTF8选项,比如 \verb|\usepackage[UTF8]{ctex}| 。 该选项在文档类加载时给出也可,比如 \verb|\documentclass[UTF8]{article}| , - 同时\bc{文献引用时所用关键词应采用英文},比如 \verb|\cite{zhangml2008}| 而不能包含中文,比如 \verb|\cite{张敏莉2008}|。 + 同时\bc{文献引用时所用关键词应采用英文},比如 \verb|\cite{zhangml2008}| 而不能包含中文,比如 \verb|\cite{张敏莉2008}|,因为参考文献entrykey用中文时,bbl中会包含中文的entrykey,所以pdflatex编译时ctex宏包对中文的附加处理会让biblatex读入bbl进行排序时会报错,但若忽略错误也能正确输出参考文献,但正文会有额外输出。 + + 当文档使用其他编码时,可以利用notepad++ 或notepad2 等编辑器将其转换为UTF-8编码。 - 当文档使用其他编码时,可以利用notepad++ 或notepad2 等编辑器将其转换为UTF-8编码。若不进行转换,使用xelatex编译通常需要指定一个文档编码,比如windows 环境下的GB2312 编码的文档需要指定\verb|\XeTeXinputencoding "GBK"|,否则会显示乱码。使用pdflatex 进行编译时,如果biblatex不能正确的处理编码问题,那么需要为其明确的指定texencoding 和bibencoding 选项。比如windows环境下的GB2312编码的文档, + 若不进行转换,使用xelatex编译通常需要指定一个文档编码,比如windows 环境下的GB2312 编码的文档需要指定\verb|\XeTeXinputencoding "GBK"|,否则会显示乱码。使用pdflatex 进行编译时,如果biblatex不能正确的处理编码问题,那么需要为其明确的指定texencoding 和bibencoding 选项。比如windows环境下的GB2312编码的文档, 需要指定\verb|\usepackge[texencoding=GBK]{biblatex}|。 %增加了对GBK支持的说明,2018-05-11 - \item 容易出现的错误和解决 +\subsubsection{容易出现的错误和解决方式} + \begin{itemize} \item 当顺序编码和著者-出版年制切换,或者biblatex版本切换,或者不同样式切换时,如果编译出错,可先清理一下辅助文件,完成后再重新编译。 @@ -2668,17 +2852,17 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 若要自己去解决问题,则可以从如下查找顺序来研究。 biblatex自身相关的包括各种bbx,cbx文件,重点是biblatex.sty,biblatex.def,standard.bbx,还有blx-dm.def 等一些设置文件。另外不要忘记lbx文件,这里面也有一些语言相关的命令, 比如\verb|\bibrangedash|,\verb|\finalandcomma|等。至于其它一些tex 原始命令可以从tex、xetex的相关书籍文档查找,latex 相关代码则可以从latex2e,etoolbox等说明文档或latex.ltx,etoolbox.STY等源代码文档中查找。注意多使用meaning 命令来获取命令的定义。 - \end{itemize} - \item 宏包设计方法说明 + +\subsubsection{其它说明} + %宏包设计方法说明 关于宏包的设计说明,读者可以直接查看bbx,cbx文件,其中有详细的注释说明。 更一般的思路性质的设计与实现方法以及涉及到的一些biblatex功能介绍,以项目示例的形式总结在 \href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography}{\LaTeX 文档中文参考文献的biblatex解决方案}中,本文档不再重复给出,有需要了解的用户参考。 - \item 其它biblatex中文样式 - + 关于其它biblatex中文样式, 目前符合 GB/T 7714-2005 或 GB/T 7714-2015 参考文献著录规则的 biblatex 样式有多个实现,除本样式外,还有李志奇(icetea)\footnote{\url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=74474}} 和沈周(szsdk)\footnote{\url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=152561&extra=page\%3D1}} ,其效果是类似的。此外,Casper Ti. Vector提供的biblatex 样式caspervector 也是不错的中文参考文献样式 \footnote{\url{https://gitlab.com/CasperVector/biblatex-caspervector}}。感谢各位作者的分享! @@ -2697,7 +2881,7 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 % \item windows7x64+texlive 2017,采用xelatex编译; % \end{itemize} -\end{enumerate} + \section{参考文献著录格式示例}\label{sec:eg:gb77142015} @@ -3247,6 +3431,8 @@ gb7714-2015实现了GB/T 7714-2015第8.8节要求的析出文献相关格式。 %\item 打算翻译biblatex宏包的说明文档和biber的说明文档,这个已经在进行中,完成了一部分,但因为只是业余时间做,可能最终完成的时间会比较长。如果有朋友觉得这个事情有意义,愿意一起来完成这个事情,非常欢迎,请email联系。 %\item 进一步完善上一节提到的问题。 + + \item biblatex宏包完全用tex宏来定义参考文献样式的带来的一个遗憾是在一个文档内切换使用多种不同的样式不是很方便,尽管本宏包提供了gb7714-2015mx样式可以在一个文档内使用国标的顺序编码制和作者年制切换。但若在使用国标样式的同时又要使用类似APA 等样式则还不能直接切换,目前解决思路是通过局部定制样式来实现,即在局部实现一套APA 的样式,类似于前面第\ref{sec:local:biblist:set}小节提过的一种情况:在文档末尾使用国标样式,但在成果列表中使用另一种样式。显然这种实现方式目前看效果是可以的。对于APA等其它样式来说,也许我们也不用完全按标准去实现,只要利用局部定制实现一个大概就可以了,但即便如此也还需要对这些样式标准做一定的了解。 \end{enumerate} \section{更新历史} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx index d68a55d403..2ce88b01ad 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2023/05/24 v1.1n} +\def\versionofgbtstyle{2023/09/10 v1.1o} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -800,6 +800,7 @@ \ifstrequal{#1}{pinyin}{\setcounter{gbnamefmtcase}{4}}{}%family-given \ifstrequal{#1}{reverseorder}{\setcounter{gbnamefmtcase}{5}}{}%family-given/given-family \ifstrequal{#1}{quanpin}{\setcounter{gbnamefmtcase}{6}}{}%全拼 + \ifstrequal{#1}{fullname}{\setcounter{gbnamefmtcase}{7}}{}%英文的全拼,名在前-姓在后 } \ExecuteBibliographyOptions{gbnamefmt} @@ -2336,6 +2337,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 %===================================================================== % 修改域的格式,重定义域的输出宏 %===================================================================== +\DeclareDelimFormat{titletypedelim}{\allowbreak} %标题内容和文献标识符之间的标点 % % 新增文献类型标识符的格式 % []前的nobreak,从GB4.1节的例子看不应该加,所以去掉 @@ -2346,14 +2348,14 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \iftoggle{bbx:gbmedium}% {\iftoggle{bbx:url}% {\iffieldundef{url}%当存在url时,增加一个OL标识符 - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}% - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}% }% {\ifentrytype{online}% - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}% - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}% }}% - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\gbrightbracket}}% } % @@ -2363,11 +2365,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \iftoggle{bbx:gbmedium}% {\iftoggle{bbx:url}% {\iffieldundef{url}%当存在url时,增加一个OL标识符 - {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% - {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak N\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}% }% - {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% -}{\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% +}{\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak N\printtext{\gbrightbracket}\nobreak}% } % @@ -2377,11 +2379,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \iftoggle{bbx:gbmedium}% {\iftoggle{bbx:url}% {\iffieldundef{url}%当存在url时,增加一个OL标识符 - {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% - {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak S\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}% }% - {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% -}{\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% +}{\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak S\printtext{\gbrightbracket}\nobreak}% } % @@ -2773,6 +2775,12 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\namepartgiven} {\namepartprefix} {\namepartsuffix}% +\or +\usebibmacro{name:gbfullname} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}% \fi \usebibmacro{name:andothers}} @@ -2902,6 +2910,30 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% } +%英文风格,全名模式 +\def\gbfullnamelocalset{\renewrobustcmd*{\bibinitperiod}{}%将名字简写后的点去掉,%来源biblatex2.STY +\renewcommand*{\revsdnamepunct}{}%%来源biblatex.def +\renewrobustcmd*{\bibnamedelima}{}} +\newbibmacro*{name:gbfullname}[4]{\bibauthorfont% +\gbfullnamelocalset% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \ifdefvoid{#2}{}{\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot\bibnamedelimd}%\MakeCapital + \ifdefvoid{#3}{}{% + \ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}% + \mkbibnamefamily{\MakeCapital{#1}}\isdot% + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \ifdefvoid{#2}{}{\mkbibnamegiven{\MakeCapital{#2}}\isdot\bibnamedelimd}%\MakeCapital + \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeUppercase{#1}}}\isdot% + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% +} + \@ifpackagelater{biblatex}{2016/03/27}%biblatex<3.2版的情况 {}{ diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx index 7d9d75eefe..4be08f7985 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx @@ -177,9 +177,11 @@ %一般情况下cbx@tempcnta为0,所以该宏不输出任何内容。当cbx@tempcnta在cite:comp:comp宏中更改变大后 %说明开始进入需要压缩的范围,当到压缩终点时,cbx@tempcnta必然大于1,则输出内容。 %修改第二行的数字1为0即可将默认的3个开始压缩变为2个开始压缩。 +\newcounter{gbrefcompress} +\setcounter{gbrefcompress}{2} \renewbibmacro*{cite:dump}{% \ifnumgreater{\value{cbx@tempcnta}}{0}% - {\ifnumgreater{\value{cbx@tempcnta}}{0}%1改为0,可以将压缩起始3个编号改为2个编号 + {\ifnumgreater{\value{cbx@tempcnta}}{\thegbrefcompress-2}%1改为0,可以将压缩起始3个编号改为2个编号 {\bibrangedash}% {\multicitedelim}% \bibhyperref[\cbx@lastkey]{% @@ -200,7 +202,7 @@ \usebibmacro{cite:dump:inset}% % dump labelnumber (+labelprefix) \ifnumgreater{\value{cbx@tempcnta}}{0} - {\ifnumgreater{\value{cbx@tempcnta}}{0}%1改为0,可以将压缩起始3个编号改为2个编号 + {\ifnumgreater{\value{cbx@tempcnta}}{\thegbrefcompress-2}%1改为0,可以将压缩起始3个编号改为2个编号 {\setunit{\multiciterangedelim}} {\setunit{\multicitedelim}}% \usebibmacro{cite:print:last:labelnumber}% diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx index 3ebe52afca..fa23a27dcf 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx @@ -10,7 +10,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2023/05/24 v1.1n} +\def\versionofgbtstyle{2023/09/10 v1.1o} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -743,6 +743,7 @@ \ifstrequal{#1}{pinyin}{\setcounter{gbnamefmtcase}{4}}{}% \ifstrequal{#1}{reverseorder}{\setcounter{gbnamefmtcase}{5}}{}%family-given/given-family \ifstrequal{#1}{quanpin}{\setcounter{gbnamefmtcase}{6}}{}% + \ifstrequal{#1}{fullname}{\setcounter{gbnamefmtcase}{7}}{}%英文的全拼,名在前-姓在后 } \ExecuteBibliographyOptions{gbnamefmt} @@ -2194,6 +2195,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 %===================================================================== % 修改域的格式,重定义域的输出宏 %===================================================================== +\DeclareDelimFormat{titletypedelim}{\allowbreak} %标题内容和文献标识符之间的标点 % % 新增文献类型标识符的格式 % []前的nobreak,从GB4.1节的例子看不应该加,所以去掉 @@ -2204,14 +2206,14 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \iftoggle{bbx:gbmedium}% {\iftoggle{bbx:url}% {\iffieldundef{url}%当存在url时,增加一个OL标识符 - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}% - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}% }% {\ifentrytype{online}% - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}% - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}% }}% - {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\gbrightbracket}}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\gbrightbracket}}% } % @@ -2221,11 +2223,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \iftoggle{bbx:gbmedium}% {\iftoggle{bbx:url}% {\iffieldundef{url}%当存在url时,增加一个OL标识符 - {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% - {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak N\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}% }% - {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% -}{\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% +}{\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak N\printtext{\gbrightbracket}\nobreak}% } % @@ -2235,11 +2237,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \iftoggle{bbx:gbmedium}% {\iftoggle{bbx:url}% {\iffieldundef{url}%当存在url时,增加一个OL标识符 - {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% - {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak S\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}% }% - {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% -}{\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\gbrightbracket}\nobreak}% + {\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}% +}{\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak S\printtext{\gbrightbracket}\nobreak}% } % @@ -2629,6 +2631,12 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\namepartgiven} {\namepartprefix} {\namepartsuffix}% +\or +\usebibmacro{name:gbfullname} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}% \fi \usebibmacro{name:andothers}} @@ -2757,6 +2765,31 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% } +%英文风格,全名模式 +\def\gbfullnamelocalset{\renewrobustcmd*{\bibinitperiod}{}%将名字简写后的点去掉,%来源biblatex2.STY +\renewcommand*{\revsdnamepunct}{}%%来源biblatex.def +\renewrobustcmd*{\bibnamedelima}{}} +\newbibmacro*{name:gbfullname}[4]{\bibauthorfont% +\gbfullnamelocalset% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \ifdefvoid{#2}{}{\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot\bibnamedelimd}%\MakeCapital + \ifdefvoid{#3}{}{% + \ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}% + \mkbibnamefamily{\MakeCapital{#1}}\isdot% + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \ifdefvoid{#2}{}{\mkbibnamegiven{\MakeCapital{#2}}\isdot\bibnamedelimd}%\MakeCapital + \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeUppercase{#1}}}\isdot% + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% +} + + \@ifpackagelater{biblatex}{2016/03/27}%biblatex<3.2版的情况 {}{ diff --git a/macros/latex/contrib/mathfont/README.txt b/macros/latex/contrib/mathfont/README.txt index 497feab233..de934e84c4 100644 --- a/macros/latex/contrib/mathfont/README.txt +++ b/macros/latex/contrib/mathfont/README.txt @@ -1,12 +1,13 @@ -LaTeX package mathfont version 2.2b installation information, -released August 2023. + LaTeX Package mathfont v. 2.3 + Installation Guide/README + Conrad Kosowsky -This file is README.txt from version 2.2b of the free and + +This file is README.txt from version 2.3 of the free and open-source LaTeX package "mathfont," to be used with the XeTeX or LuaTeX engines. The package is designed to adapt -text fonts for use in math mode, and if you typeset your -document with LuaLaTeX, mathfont adds resizable delimiters, -big operators, and a MathConstants table to your font. +text fonts for use in math mode. See the user guide for +more information. See below for installation instructions. ********************************************************* diff --git a/macros/latex/contrib/mathfont/mathfont_code.dtx b/macros/latex/contrib/mathfont/mathfont_code.dtx index c2e87863dd..a3acd6fecf 100644 --- a/macros/latex/contrib/mathfont/mathfont_code.dtx +++ b/macros/latex/contrib/mathfont/mathfont_code.dtx @@ -1,9 +1,9 @@ % \iffalse ---!!! FIRST META-COMMENT !!!--- % % -% This file is mathfont_code.dtx from version 2.2b of the +% This file is mathfont_code.dtx from version 2.3 of the % free and open-source LaTeX package "mathfont," released -% August 2023, to be used with the XeTeX or LuaTeX engines. +% September 2023, to be used with the XeTeX or LuaTeX engines. % % Running Plain TeX on mathfont_code.dtx will produce the % following files: @@ -43,8 +43,8 @@ % \iffalse ---!!! SECOND META-COMMENT !!!--- % % -% This file is from version 2.2b of the free and open-source -% LaTeX package "mathfont," released August 2023, to be used +% This file is from version 2.3 of the free and open-source +% LaTeX package "mathfont," released September 2023, to be used % with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX % is recommended.) % @@ -154,8 +154,8 @@ \askforoverwritefalse \preamble -This file is from version 2.2b of the free and open-source -LaTeX package "mathfont," released August 2023, to be used +This file is from version 2.3 of the free and open-source +LaTeX package "mathfont," released September 2023, to be used with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) @@ -238,7 +238,7 @@ For more information, see mathfont_code.dtx. Happy TeXing! \fi % %<*driver> -\documentclass[12pt,doc2,letterpaper]{ltxdoc} +\documentclass[12pt,doc2,letterpaper,twoside]{ltxdoc} \makeatletter \usepackage[margin=1in]{geometry} \usepackage[factor=700,stretch=14,shrink=14,step=1]{microtype} @@ -247,6 +247,9 @@ For more information, see mathfont_code.dtx. Happy TeXing! \usepackage{booktabs} \usepackage{multirow} \usepackage{enumitem} +\usepackage{soul} +\setlist{itemsep=\smallskipamount,topsep=\smallskipamount, + parsep=\z@,partopsep=\z@} \c@IndexColumns=2 \c@topnumber\@ne \columnsep=20pt @@ -285,7 +288,7 @@ For more information, see mathfont_code.dtx. Happy TeXing! % \fi % % -% \CheckSum{6631} +% \CheckSum{6640} % \init@checksum % % @@ -330,7 +333,7 @@ For more information, see mathfont_code.dtx. Happy TeXing! % \mathgroup,\nolimits,\on@line,\PackageWarningNoLine,\RequirePackage,% % \thr@@,\M@toks,\inputlineno,\mathchar@type,\DeclareMathAccent,% % \ifM@EasterEgg@declare,\M@EasterEgg@declaretrue,\M@EasterEgg@declarefalse,% -% \IfFileExists,\E@sterEggHook,\@gobblefour,\@gobbletwo@brackets,% +% \IfFileExists,\E@sterEggHook,\@gobblefour,\@gobble@brackets,% % \protected,\@eha,\@cclv,\new@mathgroup,\new@symbolfont,\@latex@error,% % \ifcase,\or,\thr@@,\gdef,\rmdefault,\openin,\closein,\immediate,% % \M@Decl@reF@milytrue,\M@Decl@reF@milyfalse,\itdefault,\shapedefault,% @@ -394,52 +397,74 @@ For more information, see mathfont_code.dtx. Happy TeXing! % First and foremost, the package needs to declare itself. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{mathfont}[2023/08/21 v. 2.2b Package mathfont] +\ProvidesPackage{mathfont}[2023/09/09 v. 2.3 Package mathfont] % \end{macrocode} -% We specify conditionals that we will use later in handling options and setup. +% We specify conditionals and one count variable that we use later in handling options and setup. % \begin{macrocode} \newif\ifM@XeTeXLuaTeX % is engine one of xetex or luatex? \newif\ifM@Noluaotfload % cannot find luaotfload.sty? \newif\ifM@adjust@font % should adjust fonts with lua script? \newif\ifM@font@loaded % load mathfont with font specified? \newif\ifE@sterEggDecl@red % already did easter egg? +\newcount\M@loader % specifies which font-loader to use % \end{macrocode} -% We disable the twenty user-level commands. If \textsf{mathfont} runs normally, it will overwrite these ``bad'' definitions later, but if it throws one of its two fatal errors, it will |\endinput| while the user-level commands are error messages. That way the commands don't do anything in the user's document, and the user gets information on why not. The bad definitions gobble their original arguments to avoid a ``missing |\begin{document}|'' error.\indexpage{invalid command} +% We disable the twenty user-level commands. If \textsf{mathfont} runs normally, it will overwrite these ``bad'' definitions later, but if it throws one of its two fatal errors, it will |\endinput| while the user-level commands are error messages. That way the commands don't do anything in the user's document, and the user gets information on why not. The bad definitions gobble their original arguments to avoid a ``missing |\begin{document}|'' error. To streamline the process, we metacode most of the error messages. We do so in three batches: those that |\@gobble| their argument, those that |\@gobbletwo| their argument, and those that accept an optional argument.\indexpage{invalid command} % \begin{macrocode} -\long\def\@gobbletwo@brackets[#1]#2{} +\long\def\@gobble@brackets[#1]{} \def\M@NoMathfontError#1{\PackageError{mathfont} {\MessageBreak Invalid command\MessageBreak \string#1 on line \the\inputlineno} {Your command was ignored. I couldn't\MessageBreak load mathfont, so I never defined this\MessageBreak control sequence.}} -\protected\def\mathfont{\M@NoMathfontError\mathfont - \@ifnextchar[\@gobbletwo@brackets\@gobble} -\protected\def\setfont{\M@NoMathfontError\setfont\@gobble} -\protected\def\mathconstantsfont{\M@NoMathfontError\mathconstantsfont - \@ifnextchar[\@gobbletwo@brackets\@gobble} -\protected\def\newmathrm{\M@NoMathfontError\newmathrm\@gobbletwo} -\protected\def\newmathit{\M@NoMathfontError\newmathit\@gobbletwo} -\protected\def\newmathbf{\M@NoMathfontError\newmathbf\@gobbletwo} -\protected\def\newmathbfit{\M@NoMathfontError\newmathbf\@gobbletwo} -\protected\def\newmathbold{\M@NoMathfontError\newmathbold\@gobbletwo} -\protected\def\newmathboldit{\M@NoMathfontError\newmathbold\@gobbletwo} -\protected\def\newmathsc{\M@NoMathfontError\newmathsc\@gobbletwo} -\protected\def\newmathscit{\M@NoMathfontError\newmathscit\@gobbletwo} -\protected\def\newmathbfsc{\M@NoMathfontError\newmathbfsc\@gobbletwo} -\protected\def\newmathbfscit{\M@NoMathfontError\newmathbfscit\@gobbletwo} +% \end{macrocode} +% First the commands that normally accept a single argument---the ``bad'' versions |\@gobble| the argument. To keep the syntax straightforward, we put the |\def| declaration inside |\@tempa| and the definition itself inside |\@tempb|. We need to do this because the macro name is stored in |\@i|, and otherwise, we would end up with a mess of |\expandafter|s to expand all instances of |\@i|. +% \begin{macrocode} +\@tfor\@i:=\setfont + \RuleThicknessFactor + \IntegralItalicFactor + \SurdVerticalFactor + \SurdHorizontalFactor + \CharmLine + \CharmFile\do{% + \edef\@tempa{\protected\def\expandafter\noexpand\@i}% + \edef\@tempb{\noexpand\M@NoMathfontError + \expandafter\noexpand\@i + \noexpand\@gobble}% + \expandafter\@tempa\expandafter{\@tempb}} +% \end{macrocode} +% Now for the macros that |\@gobbletwo| their argument. The code is essentially the same. +% \begin{macrocode} +\@tfor\@i:=\newmathrm + \newmathit + \newmathbf + \newmathbfit + \newmathbold + \newmathboldit + \newmathsc + \newmathscit + \newmathbfsc + \newmathbfscit\do{% + \edef\@tempa{\protected\def\expandafter\noexpand\@i}% + \edef\@tempb{\noexpand\M@NoMathfontError + \expandafter\noexpand\@i + \noexpand\@gobbletwo}% + \expandafter\@tempa\expandafter{\@tempb}} +% \end{macrocode} +% For the optional argument, we check if the following character is a |[|. If yes, we gobble first the brackets and then the mandatory argument. If not, we gobble the single mandatory argument. +% \begin{macrocode} +\@tfor\@i:=\mathfont\mathconstantsfont\do{% + \edef\@tempa{\protected\def\expandafter\noexpand\@i}% + \edef\@tempb{\noexpand\M@NoMathfontError + \expandafter\noexpand\@i + \noexpand\@ifnextchar[{\noexpand\expandafter + \noexpand\@gobble\noexpand\@gobble@brackets}{\noexpand\@gobble}} + \expandafter\@tempa\expandafter{\@tempb}} +% \end{macrocode} +% We code |\newmathfontcommand| by hand because it is the only command with four arguments. +% \begin{macrocode} \protected\def\newmathfontcommand{% \M@NoMathfontError\newmathfontcommand\@gobblefour} -\protected\def\RuleThicknessFactor{% - \M@NoMathfontError\RuleThicknessFactor\@gobble} -\protected\def\IntegralItalicFactor{% - \M@NoMathfontError\IntegralItalicFactor\@gobble} -\protected\def\SurdVerticalFactor{% - \M@NoMathfontError\SurdVerticalFactor\@gobble} -\protected\def\SurdHorizontalFactor{% - \M@NoMathfontError\SurdHorizontalFactor\@gobble} -\protected\def\CharmLine{\M@NoMathfontError\CharmLine\@gobble} -\protected\def\CharmFile{\M@NoMathfontError\CharmFile\@gobble} % \end{macrocode} % Check that the engine is \XeTeX\ or Lua\TeX. If yes, set |\ifM@XeTeXLuaTeX| to true. (Otherwise the conditional will be false by default.) % \begin{macrocode} @@ -450,7 +475,7 @@ For more information, see mathfont_code.dtx. Happy TeXing! \M@XeTeXLuaTeXtrue \fi % \end{macrocode} -% The package can raise two fatal errors: one if the engine is not \XeTeX\ or Lua\TeX\ (and cannot load OpenType fonts) and one if \TeX\ cannot find the \textsf{luaotfload} package. In both cases, the package will stop loading, so we want a particularly conspicuous error message. For each message, we check the appropriate conditional to determine if we need to raise the error. If yes, we change space to catcode 12 inside a group.\indexpage{catcode changes} We define a |\GenericError| inside a macro and then call the macro for a cleaner error context line. The |\@gobbletwo| eats the extra period and return that \LaTeX\ adds to the error message. Notice that we expand the error before the |\endgroup|\textemdash this is because we need to switch |\M@NoFontspecError| with its replacement text while it is still defined before we leave the group. At the same time, we want |\AtBeginDocument| and |\endinput| outside the group. The second |\expandafter| means that we expand the final |\fi| before |\endinput|, which balances the original conditional.\indexpage{unable to load}\indexpage{missing xetex or luatex=missing \XeTeX\ or Lua\TeX} +% The package can raise two fatal errors: one if the engine is not \XeTeX\ or Lua\TeX\ (and cannot load OpenType fonts) and one if \TeX\ cannot find the \textsf{luaotfload} package. In both cases, the package will stop loading, so we want a particularly conspicuous error message. For each message, we check the appropriate conditional to determine if we need to raise the error. If yes, we change space to catcode 12 inside a group.\indexpage{catcode changes} We define a |\GenericError| inside a macro and then call the macro for a cleaner error context line. The |\@gobbletwo| eats the extra period and return that \LaTeX\ adds to the error message. Notice that we expand the error before the |\endgroup|\textemdash this is because we need to switch |\M@XeTeXLuaTeXError| with its replacement text while it is still defined before we leave the group. At the same time, we want |\AtBeginDocument| and |\endinput| outside the group. The second |\expandafter| means that we expand the final |\fi| before |\endinput|, which balances the original conditional.\indexpage{unable to load}\indexpage{missing xetex or luatex=missing \XeTeX\ or Lua\TeX} % \begin{macrocode} \ifM@XeTeXLuaTeX\else \begingroup @@ -489,12 +514,12 @@ document with one of those two engines.^^J}}% \IfFileExists{luaotfload.sty} {\M@Noluaotfloadfalse\RequirePackage{luaotfload}}{\M@Noluaotfloadtrue} \else - \PackageWarningNoLine{mathfont}{% + \AtEndOfPackage{\PackageWarningNoLine{mathfont}{% The current engine is XeTeX, but as\MessageBreak of mathfont version 2.0, LuaTeX is\MessageBreak recommended. Consider compiling with\MessageBreak LuaLaTeX. Certain features will not\MessageBreak - work with XeTeX} + work with XeTeX}} \fi % \end{macrocode} % If the engine is Lua\TeX, we absolutely must have \textsf{luaotfload} because Lua\TeX\ needs this package to load OpenType fonts. Before anything else, \TeX\ should check whether it can find |luaotfload.sty| and stop reading in \textsf{mathfont} if it cannot. Same command structure as before. Newer \LaTeX\ versions load \textsf{luaotfload} as part of the format, but it never hurts to double check.\indexpage{unable to load}\indexpage{cannot not find the file luaotfloadsty=cannot find the file \texttt{luaotfload}} @@ -594,7 +619,12 @@ by TeX or compile with XeLaTeX.^^J}}% \let\EasterEggUpdate\relax} \fi}% my easter egg :) % \end{macrocode} -% The three real package options. The options |adjust| and |no-adjust| overwrite \textsf{mathfont}'s default decision about whether to apply Lua-based font adjustments to all future fonts loaded. +% The five real package options. The |default-loader| and |fontspec-loader| tell \textsf{mathfont} what to use as a backend for loading fonts. +% \begin{macrocode} +\DeclareOption{default-loader}{\M@loader\z@} +\DeclareOption{fontspec-loader}{\M@loader\@ne} +% \end{macrocode} +% The options |adjust| and |no-adjust| overwrite \textsf{mathfont}'s default decision about whether to apply Lua-based font adjustments to all future fonts loaded. % \begin{macrocode} \DeclareOption{adjust}{\M@adjust@fonttrue} \DeclareOption{no-adjust}{\M@adjust@fontfalse} @@ -604,32 +634,91 @@ by TeX or compile with XeLaTeX.^^J}}% \DeclareOption*{\M@font@loadedtrue\edef\M@font@load{\CurrentOption}} \ProcessOptions* % \end{macrocode} +% For the font-loader, we have a bit of processing to do. First print an informational message in the |log| file. The default loader is easy, but if the user requests \textsf{fontspec}, we have to make sure to load everything properly. +% \begin{macrocode} +\ifcase\M@loader + \wlog{Package mathfont Info: Default font-loader was + requested for font loading.} +\or + \wlog{Package mathfont Info: Package fontspec was + requested for font loading.} +% \end{macrocode} +% If \textsf{fontspec} was already loaded, check whether |\g__fontspec_math_bool| is true or not. If it is, change it to false. +% \begin{macrocode} + \@ifpackageloaded{fontspec} + {\wlog{Package mathfont Info: Package fontspec detected.} + \csname bool_if:NTF\expandafter\endcsname + \csname g__fontspec_math_bool\endcsname + {\wlog{Package mathfont Info: Setting + \string\g__fontspec_math_bool to false.} + \csname bool_set_false:N\expandafter\endcsname + \csname g__fontspec_math_bool\endcsname}{\relax}} +% \end{macrocode} +% If \textsf{fontspec} was not loaded, check that the package file exists. +% \begin{macrocode} + {\wlog{Package mathfont Info: Package fontspec not detected.} + \IfFileExists{fontspec.sty} + {\wlog{Package mathfont Info: File fontspec.sty was found.} + \wlog{Package mathfont Info: Loading fontspec.} + \RequirePackage[no-math]{fontspec}} + {\PackageError{mathfont}{Missing package fontspec;\MessageBreak + using default font-loader instead} + {You requested fontspec as the font-loader for\MessageBreak + mathfont. However, I can't find the fontspec\MessageBreak + package file, so I'm going to use the default\MessageBreak + font-loader instead. (This likely means that\MessageBreak + something is wrong with your TeX installation.)\MessageBreak + Check your TeX distribution for a list of the\MessageBreak + packages installed on your system. To resolve\MessageBreak + this error, make sure fontspec is installed in\MessageBreak + a directory searchable by TeX or load mathfont\MessageBreak + with the default-loader option.^^J} + \M@loader\z@}} +\fi +% \end{macrocode} +% We print an informational message specifying the font-loader in use. We store default OpenType features in |\M@otf@features|. The contents depend on the font-loader because we use \XeTeX/\textsf{luaotfload} syntax versus \textsf{fontspec} syntax. By default, \textsf{mathfont} loads fonts with Latin script, default language, \TeX\ and common ligatures, and lining numbers. +% \begin{macrocode} +\ifcase\M@loader + \wlog{Package mathfont Info: Using default font-loader.} + \AtEndOfPackage{\typeout{:: mathfont :: Using default font-loader.}} + \def\M@otf@features{script=latin;language=DFLT;+tlig;+liga;+lnum} +\or + \wlog{Package mathfont Info: Using fontspec as font-loader.} + \AtEndOfPackage{\typeout{:: mathfont :: Using fontspec as font-loader.}} + \def\M@otf@features{Script=Latin, + Language=Default, + Ligatures={TeX,Common}, + Numbers=Lining} +\fi +% \end{macrocode} % We print an informational message depending on whether the user enabled Lua-based font adjustments. If |\directlua| is defined, that means we are using Lua\TeX, so we print a message depending on |\ifM@adjust@font|. % \begin{macrocode} \ifdefined\directlua \ifM@adjust@font + \wlog{Package mathfont Info: Enabling Lua-based font adjustments.} \AtEndOfPackage{% \typeout{:: mathfont :: Lua-based font adjustments enabled.}} \else + \wlog{Package mathfont Info: Disabling Lua-based font adjustments.} \AtEndOfPackage{% \typeout{:: mathfont :: Lua-based font adjustments disabled.}} \fi \else % \end{macrocode} -% If |\directlua| is undefined, we say that Lua-based font adjustments are disabled, and we issue an error if the user tried to manually enable them. +% If |\directlua| is undefined, we make sure Lua-based font adjustments are disabled, and we issue an error if the user tried to manually enable them. % \begin{macrocode} - \AtEndOfPackage{% - \typeout{:: mathfont :: Lua-based font adjustments disabled.}} \ifM@adjust@font - \AtEndOfPackage{% \PackageError{mathfont}{Option^^J"adjust" ignored with XeTeX} {Your package option "adjust" was ignored.\MessageBreak This option works only with LuaTeX, and it\MessageBreak looks like the current engine is XeTeX. To\MessageBreak enable Lua-based font adjustments, typeset\MessageBreak - with LuaLaTeX.^^J}} + with LuaLaTeX.^^J} \M@adjust@fontfalse \fi + \wlog{Package mathfont Info: Disabling Lua-based font adjustments.} + \AtEndOfPackage{% + \typeout{:: mathfont :: Lua-based font adjustments disabled.}} \fi % \end{macrocode} % @@ -644,11 +733,13 @@ by TeX or compile with XeLaTeX.^^J}}% % \begin{tabularx}\textwidth{lX} % \toprule % Command & Use\\\midrule -% \vrb\M@FontChangeInfo & Use a symbol font for some characters\\ +% \vrb\M@FontChangeInfo & Use a symbol font inside \vrb\mathfont\\ % \vrb\M@NewFontCommandInfo & Declare new alphanumeric font-change command\\ % \vrb\M@SymbolFontInfo & Declare new symbol font\\\midrule % \vrb\M@CharsSetWarning & Warning when calling \vrb\mathfont\ multiple times for same keyword\\ -% \vrb\M@InternalsRestoredError & User called \vrb\mathfont\ after restoring kernel\\ +% \vrb\M@InternalsRestoredError & User called \vrb\mathfont\ after restoring kernel\\\midrule +% \vrb\M@MissingNFSSShapesWarning & Warning if font is missing shapes\\ +% \vrb\M@NoBaseModeDetectedWarning & Warning if no base-mode version of a font\\\midrule % \vrb\M@InvalidOptionError & Bad option for \vrb\mathfont\\ % \vrb\M@InvalidSupoptionError & Bad suboption for \vrb\mathfont\\ % \vrb\M@MissingOptionError & Missing an option for \vrb\mathfont\\ @@ -659,9 +750,7 @@ by TeX or compile with XeLaTeX.^^J}}% % \vrb\M@DeprecatedWarning & Warning for certain deprecated macros\\ % \vrb\M@DoubleArgError & Gave multiple tokens to be the font-change macro\\ % \vrb\M@HModeError & Font-change command used outside math mode\\ -% \vrb\M@MissingControlSequenceError & No macro provided to be font-change command\\ -% \vrb\M@NoFontspecFamilyError & Improper option \texttt{fontspec} for \vrb\mathfont\\ -% \vrb\M@NoFontspecError & Option \texttt{fontspec} for \vrb\mathfont\ declared without having loaded \textsf{fontspec}\\\midrule +% \vrb\M@MissingControlSequenceError & No macro provided to be font-change command\\\midrule % \vrb\M@BadIntegerError & Font metric adjustment value was not an integer\\ % \vrb\M@ForbiddenCharmFile & Charm file contains a bad character\\ % \vrb\M@ForbiddenCharmLine & Charm line contains a bad character\\ @@ -687,6 +776,18 @@ by TeX or compile with XeLaTeX.^^J}}% #1 chars, so I'm ignoring\MessageBreak this option for \string\mathfont\space on line \the\inputlineno\@gobble}} +\def\M@MissingNFSSShapesWarning#1#2{\PackageWarning{mathfont} + {The nfss family "#1"\MessageBreak + from line \the\inputlineno\space is missing shapes. You\MessageBreak + may see some substitutions or errors.\MessageBreak + Missing shape(s):#2\@gobble}} +\def\M@NoBaseModeDetectedWarning#1{\PackageWarning{mathfont} + {I couldn't find a base-mode version of\MessageBreak + the nfss family "#1"\MessageBreak + from line \the\inputlineno, so I'm using the family\MessageBreak + you specified for the math font. Some\MessageBreak + font features may not work in math\MessageBreak + mode\@gobble}} % \end{macrocode} % \indexpage{I already set the font} % Warnings for the |\mathbb|, etc.\ commands. @@ -729,9 +830,9 @@ by TeX or compile with XeLaTeX.^^J}}% \def\M@MissingSuboptionError{\PackageError{mathfont} {Missing^^Jsuboption for \string\mathfont\on@line} {It looks like you included an = somewhere\MessageBreak - but didn't put the suboption after it. Either\MessageBreak - that or you typed == instead of = in the\MessageBreak - optional argument of \string\mathfont.^^J}} + in the optional argument of \string\mathfont\space but\MessageBreak + didn't put the suboption after it. Either\MessageBreak + that or you typed == instead of =.^^J}} \def\M@InternalsRestoredError{\PackageError{mathfont} {Internal^^Jcommands restored} {This package slightly changes two LaTeX\MessageBreak @@ -746,35 +847,15 @@ by TeX or compile with XeLaTeX.^^J}}% Try typesetting this document with all\MessageBreak \string\mathfont\space commands placed before you call\MessageBreak \string\restoremathinternals.^^J}} -\def\M@NoFontspecFamilyError{\PackageError{mathfont} - {No previous^^Jfont loaded by fontspec} - {You called \string\mathfont\space - with the argument "fontspec" \MessageBreak - on line \the\inputlineno, - and that tells me to use the previous \MessageBreak - font loaded by the fontspec package. However, it \MessageBreak - looks like you haven't loaded any fonts yet with \MessageBreak - fontspec. To resolve this error, try using for \MessageBreak - example \string\setmainfont\space - before calling \string\mathfont.^^J}} -\def\M@NoFontspecError{\PackageError{mathfont} - {Missing^^Jpackage fontspec} - {You called \string\mathfont\space - with the argument "fontspec" \MessageBreak - on line \the\inputlineno, - and that tells me to use the previous \MessageBreak - font loaded by the fontspec package. However, you\MessageBreak - haven't loaded fontspec, so some things are about\MessageBreak - to get messed up. To resolve this error, load\MessageBreak - fontspec before calling \string\mathfont.^^J}} % \end{macrocode} % Error messages for |\mathconstantsfont|. % \indexpage{Invalid font specifier} % \indexpage{your mathconstants on line=Your \texttt{\char`\\mathconstants} on line} % \begin{macrocode} \def\M@BadMathConstantsFontError#1{\PackageError{mathfont} - {Invalid\MessageBreak font specifier for - \string\mathconstantsfont:\MessageBreak"#1"} + {Invalid font specifier\MessageBreak + for \string\mathconstantsfont:\MessageBreak + "#1"} {Your command was ignored--I can't parse your argument.\MessageBreak Please make sure to use text that you have previously\MessageBreak fed to \string\mathfont\space for the argument of @@ -785,10 +866,13 @@ by TeX or compile with XeLaTeX.^^J}}% {The optional argument of \string\mathconstantsfont\MessageBreak should be "upright" or "italic." Right now,\MessageBreak it's "#1."^^J}} -\def\M@LuaTeXOnlyWarning{\PackageWarning{mathfont} - {Your \string\mathconstantsfont\space - on line \the\inputlineno\space is\MessageBreak - for LuaTeX only, and I'm ignoring it\@gobble}} +\def\M@MathConstantsNoFontAdjustWarning{\PackageWarning{mathfont} + {Your \string\mathconstantsfont\space + on line \the\inputlineno\MessageBreak + is mainly for use in LuaTeX with font\MessageBreak + adjustments enabled. In the current\MessageBreak + situation, it is probably not doing\MessageBreak + anything\@gobble}} % \end{macrocode} % Error messages for the |\newmathrm|, etc.\ commands. % \indexpage{Missing control sequence} @@ -859,19 +943,6 @@ by TeX or compile with XeLaTeX.^^J}}% % % \section{Default Settings} % -% We do not want \textsf{fontspec} making changes to mathematics. If the user has loaded the package, we set |\g__fontspec_math_bool| to false. Otherwise, we pass the |no-math| option to the package in case the user loads it later. -% \begin{macrocode} -\@ifpackageloaded{fontspec} - {\wlog{Package mathfont Info: Package fontspec detected.} - \wlog{Package mathfont Info: Setting \string\g__fontspec_math_bool - to false.} - \csname bool_set_false:N\expandafter\endcsname - \csname g__fontspec_math_bool\endcsname} - {\wlog{Package mathfont Info: Package fontspec not detected.} - \wlog{Package mathfont Info: Will pass no-math option to fontspec - if it gets loaded.} - \PassOptionsToPackage{no-math}{fontspec}} -% \end{macrocode} % We save four macros from the \LaTeX\ kernel so we can change their definitions. To adapt the symbol declaration macros for use with unicode fonts, we reverse the conversion to hexadecimal in |\count0| and change the |\math| primitive to |\Umath|. Whereas the traditional primitives accept hexadecimal input, |\Umath| primitives accept decimal input with a |+| sign.\indexpage{LaTeX kernel=\LaTeX\ kernel} % \begin{macrocode} \let\@@set@mathchar\set@mathchar @@ -910,9 +981,9 @@ by TeX or compile with XeLaTeX.^^J}}% \protected\xdef#2{% \Umathaccent\mathchar@type#3+\number#1+\the\count\z@\relax}} % \end{macrocode} -% We increase the upper bound on the number of symbol fonts to be 256. Lua\TeX\ and \XeTeX\ allow up to 256 math families, but the \LaTeX\ kernel keeps the old upper bound of 16 symbol fonts under these two engines. We patch |\DeclareSymbolFont| to change the |\count18<15| to |\count18<\e@mathgroup@top|, where |\e@mathgroup@top| is the number of math families and is 256 in \XeTeX\ and Lua\TeX. Because macro patching is complicated, the next few lines may seem somewhat esoteric. Our approach is to get a sanitized definition with |\meaning| and |\strip@prefix|, implement the patch by expanding |\M@p@tch@decl@re|, and retokenize the whole thing. A simpler approach, such as calling |\M@p@tch@decl@re| directly on the expansion of |\DeclareSymbolFont|, won't work because of the way \TeX\ stores and expands parameter symbols inside macros. +% We increase the upper bound on the number of symbol fonts to be 256. Lua\TeX\ and \XeTeX\ allow up to 256 math families, but the \LaTeX\ kernel keeps the old upper bound of 16 symbol fonts under these two engines. We patch |\DeclareSymbolFont| to change the |\count18<15| to |\count18<\e@mathgroup@top|, where |\e@mathgroup@top| is the number of math families and is 256 in \XeTeX\ and Lua\TeX. Because macro patching is complicated, the next few lines may seem somewhat esoteric. Our approach is to get a sanitized definition with |\meaning| and |\strip@prefix|, implement the patch by expanding |\M@p@tch@decl@re|, and retokenize the whole thing. A simpler approach, such as calling |\M@p@tch@decl@re| directly on the expansion of |\DeclareSymbolFont|, won't work because of how \TeX\ stores and expands parameter symbols inside macros. % -% As of November 2022, the \LaTeX\ kernel has redefined |\DeclareSymbolFont@m@dropped| to have the same definition as the old |\DeclareSymbolFont|, and now |\DeclareSymbolFont| is a wrapper around this macro. This was done for error checking purposes to remove extra |m|'s from certain \textsc{nfss} family names. This means that if |\DeclareSymbolFont@m@dropped| is defined, we should patch that macro, and otherwise, we should patch |\DeclareSymbolFont|. +% As of November 2022, the \LaTeX\ kernel team the name of |\DeclareSymbolFont| to |\DeclareSymbolFont@m@dropped|, and now |\DeclareSymbolFont| is a wrapper around the renamed macro. This was done for error checking purposes to remove extra |m|'s from certain \textsc{nfss} family names. This means that if |\DeclareSymbolFont@m@dropped| is defined, we should patch that macro, and otherwise, we should patch |\DeclareSymbolFont|. % \begin{macrocode} \ifx\DeclareSymbolFont@m@dropped\@undefined \edef\@tempa{\expandafter\strip@prefix\meaning\DeclareSymbolFont} @@ -948,18 +1019,18 @@ by TeX or compile with XeLaTeX.^^J}}% % \begin{macrocode} \newbox\surdbox \newcount\M@count -\newcount\M@rule@thickness@factor -\newcount\M@integral@italic@factor -\newcount\M@surd@vertical@factor -\newcount\M@surd@horizontal@factor +\newcount\M@RuleThicknessFactor +\newcount\M@IntegralItalicFactor +\newcount\M@SurdVerticalFactor +\newcount\M@SurdHorizontalFactor \newmuskip\radicandoffset \newread\M@Charm \newtoks\M@toks \M@count\z@ -\M@rule@thickness@factor\@m -\M@integral@italic@factor=400\relax -\M@surd@horizontal@factor\@m -\M@surd@vertical@factor\@m +\M@RuleThicknessFactor\@m +\M@IntegralItalicFactor=400\relax +\M@SurdHorizontalFactor\@m +\M@SurdVerticalFactor\@m \radicandoffset=3mu\relax % \end{macrocode} % Necessary booleans and default math font shapes. @@ -992,7 +1063,6 @@ by TeX or compile with XeLaTeX.^^J}}% \newif\if@suboptionpresent \newif\ifM@arg@good \newif\ifM@Decl@reF@mily -\newif\ifM@Decl@reF@milyB@se \newif\ifM@fromCharmFile % \end{macrocode} % Default shapes. @@ -1040,179 +1110,183 @@ by TeX or compile with XeLaTeX.^^J}}% \edef\M@defaultkeys{\M@defaultkeys,delimiters,radical,bigops} \fi % \end{macrocode} -% Default OpenType features for loading fonts. -% \begin{macrocode} -\def\M@otf@features{script=latin;language=DFLT;% - tlig=true;liga=true;smcp=false;lnum=true} -\def\M@otf@features@sc{script=latin;language=DFLT;% - tlig=true;liga=true;smcp=true;lnum=true} -% \end{macrocode} % % \section{Fontloader} % -% We come to the fontloader. The main font-loading macro is |\M@newfont|, and it is basically a wrapper around code we would expect to see in a typical |fd| file. Advanced users: please do not call |\M@newfont| directly because it may change without warning. Instead call |\mathfont| with the |empty| keyword and extract the \textsc{nfss} family name from |\M@f@ntn@me| or |\M@f@ntn@meb@se|. Our general approach is to feed the mandatory argument of |\mathfont| to |\M@newfont|, check if we have reason to believe that the font corresponds to a entry already in the \textsc{nfss}, and declare the font family and font shapes as necessary. If \textsf{fontspec} is loaded, we pass the entire argument to \textsf{fontspec}. If not, \textsf{mathfont} handles the font declaration internally. When \textsf{mathfont} declares a font family in the \textsc{nfss}, it does so twice, once using the information provided (which typically results in a font in node mode) and once using the information provided with |mode=base| (which results in a font in base mode). The first declaration uses the entire mandatory argument of |\mathfont| with spaces removed as the family name, and the second declaration uses this name with |-base| tacked onto the end. However the font gets loaded, we store the \textsc{nfss} family names in |\M@f@ntn@me| and |\M@f@nt@n@me@base|. +% We come to the fontloader. The main font-loading macro is |\M@newfont|. It expects a font name and OpenType feature information in its argument, and it parses the information, adds fonts to the \textsc{nfss} if necessary, and stores \textsc{nfss} font family names in |\M@f@ntn@me| and |\M@f@nt@n@me@base|. (Advanced users: please do not call |\M@newfont| directly because its implementation may change. Instead call |\mathfont| with the |empty| keyword and extract the \textsc{nfss} family name from |\M@f@ntn@me| or |\M@f@ntn@meb@se|.) Our general approach is to feed the mandatory argument of |\mathfont| to |\M@newfont|, then proceed in one of three ways: (1) if the argument of |\mathfont| corresponds to a font family already in the \textsc{nfss}, including one that \textsf{mathfont} created through the built-in font-loader, check what shapes are present and issue a warning if we appear to be missing any important ones; (2) if the argument is not a family in the \textsc{nfss} and |\M@loader| is 0, we use the default font-loader, which is essentially a wrapper around code that we would expect to find in a typical |fd| file; or (3) otherwise, we feed the font name and feature information directly to \textsf{fontspec} and save the corresponding family name for reference later. % +% We use two control sequences for the family names because in Lua\TeX, we load the font twice. The first time uses a default or user-specified renderer (typically node mode), and the second time uses base mode. Node mode is better for text, but it has more limited capabilities in math mode. Accordingly, we use a node-mode version of the font for text and the base-mode version for math, and advanced users who want to manually switch to a given |\fontfamily| at some point in their document are probably better off using the family that \textsf{mathfont} loaded with the default renderer. The package stores the \textsc{nfss} family name for this version of the font in |\M@f@ntn@me|, and |\M@f@nt@n@me@base| contains the \textsc{nfss} family name of the base-mode version. In \XeTeX, these control sequences will be identical. Given a font family name from |\M@f@ntn@me|, it is possible to find the corresponding base-mode family name by calling |\csname|\penalty0|\M@f@ntn@me-base|\penalty0|\endcsname|. With \textsf{mathfont}'s built-in font-loader, the family name will be the mandatory argument of |\mathfont| with spaces removed, and the family name from using \textsf{fontspec} will be different. % -% We use |\M@split@colon| and |\M@strip@colon| for parsing the argument of |\mathfont|. If the user calls |\mathfont{|\meta{name}|:|\meta{features}|}|, we store the name in |\@tempbase| and the features in |\@tempfeatures|. If the user specifies a name only, then |\@tempfeatures| will be empty. Syntactically, we use |\M@strip@colon| to remove a final |:| the same way we removed a final |=| when we parsed the optional argument in the previous section. -% \?\@tempfeatures\?\@tempbase -% \begin{macrocode} -\def\M@split@colon#1:#2\@nil{\def\@tempbase{#1} - \def\@tempfeatures{#2}} -\def\M@strip@colon#1:{#1} -% \end{macrocode} -% The macro |\M@fill@nfss@shapes| accepts two arguments and does the actual work of ensuring that the \textsc{nfss} contains the appropriate series and shapes. The first argument should the name of a font family in the \textsc{nfss}, and the second should be a list of OpenType features. We check whether combinations of bold series and italic shape exist for that font in the \textsc{nfss}, and if not, we add them with |\DeclareFontShape|. -% \begin{macrocode} -\def\M@fill@nfss@shapes#1#2{% -% \end{macrocode} -% Upright shape. -% \begin{macrocode} - \ifcsname TU/#1/\mddefault/\shapedefault\endcsname - \else - \DeclareFontShape{TU}{#1}{\mddefault}{\shapedefault} - {<->"\@tempbase:\M@otf@features;#2"}{} - \fi -% \end{macrocode} -% Italic shape. +% We begin with commands to add series and shape information to the \textsc{nfss} for a given font family. The |\M@declare@shape| macro takes several arguments. It checks whether the series/shape pair exists in the \textsc{nfss}, and if not, it adds it using |\DeclareFontShape|. The argument structure is +% \begin{itemize} +% \item |#1|---\textsc{nfss} font family name +% \item |#2|---optional |/B| or |/I| (or |/BI|) suffix on the font name +% \item |#3|---a list of (default) OpenType feature tags +% \item |#4|---a list of (the user's) OpenType feature tags +% \item |#5|---\textsc{nfss} series identifier +% \item |#6|---\textsc{nfss} shape identifier +% \end{itemize} +% We assume that the font file reference has already been stored in |\@tempbase|. % \begin{macrocode} - \ifcsname TU/#1/\mddefault/\itdefault\endcsname +\def\M@declare@shape#1#2#3#4#5#6{% + \ifcsname TU/#1/#5/#6\endcsname \else - \DeclareFontShape{TU}{#1}{\mddefault}{\itdefault} - {<->"\@tempbase/I:\M@otf@features;#2"}{} - \fi + \DeclareFontShape{TU}{#1}{#5}{#6}{<->"\@tempbase#2:#3;#4"}{} + \fi} % \end{macrocode} -% Bold series with upright shape. -% \begin{macrocode} - \ifcsname TU/#1/\bfdefault/\shapedefault\endcsname - \else - \DeclareFontShape{TU}{#1}{\bfdefault}{\shapedefault} - {<->"\@tempbase/B:\M@otf@features;#2"}{} - \fi +% The |\M@fill@nfss@shapes| command does the work of populating the \textsc{nfss} with the correct shape information. The argument structure is: +% \begin{itemize} +% \item |#1|---\textsc{nfss} font family name +% \item |#2|---a list of (default) OpenType feature tags +% \item |#3|---a list of (the user's) OpenType feature tags +% \end{itemize} +% We call |\M@declare@shape| for each combination of medium/bold series and upright/italic shape, and the result is an entry in the \textsc{nfss} for each combination. We have separate declarations for regular and small caps because they have different shape identifiers in the \textsc{nfss}. We manually set |smcp| to be |true| or |false| accordingly. +% \begin{macrocode} +\def\M@fill@nfss@shapes#1#2#3{% + \@for\@i:={#1}{}{#2;-smcp}{#3}{\mddefault}{\shapedefault},% + {#1}{/I}{#2;-smcp}{#3}{\mddefault}{\itdefault},% + {#1}{/B}{#2;-smcp}{#3}{\bfdefault}{\shapedefault},% + {#1}{/BI}{#2;-smcp}{#3}{\bfdefault}{\itdefault},% +% \end{macrocode} +% And do small caps. If a small caps font face is separate from the main font file, \TeX\ won't be able to find it automatically. In that case, you will have to write your own |fd| file or |\DeclareFontShape| commands. +% \begin{macrocode} + {#1}{}{#2;+smcp}{#3}{\mddefault}{\scdefault},% + {#1}{/I}{#2;+smcp}{#3}{\mddefault}{\scdefault\itdefault},% + {#1}{/B}{#2;+smcp}{#3}{\bfdefault}{\shapedefault},% + {#1}{/BI}{#2;+smcp}{#3}{\bfdefault}{\scdefault\itdefault}% + \do{\expandafter\M@declare@shape\@i}} +% \end{macrocode} +% The |\M@check@nfss@shapes| macro checks if a font family has shapes declared in upright, italic, bold, and bold italic. If any of those shapes are missing, we issue a warning. We store the missing series/shape pairs in |\@tempb| to print them as part of the warning message. +% \begin{macrocode} +\def\M@check@nfss@shapes#1{% + \let\@tempb\@empty + \let\@tempwarning\@gobble + \@for\@i:=\mddefault/\shapedefault,% + \mddefault/\itdefault,% + \bfdefault/\shapedefault,% + \bfdefault/\itdefault\do{% + \expandafter\ifx\csname TU/#1/\@i\endcsname\relax + \def\@tempwarning{\M@MissingNFSSShapesWarning{#1}} + \edef\@tempb{\@tempb, \@i} + \fi} % \end{macrocode} -% Bold series with italic shape. +% We use a small hack to get everything to print correctly. If all shapes are present, then |\@tempwarning| is |\@gobble|, and the argument disappears. Otherwise, the argument becomes part of the warning message. The |\@gobble| eats the (unnecessary) first comma inside |\@tempb|. % \begin{macrocode} - \ifcsname TU/#1/\bfdefault/\itdefault\endcsname - \else - \DeclareFontShape{TU}{#1}{\bfdefault}{\itdefault} - {<->"\@tempbase/BI:\M@otf@features;#2"}{} - \fi + \@tempwarning{\expandafter\@gobble\@tempb}} % \end{macrocode} -% Now do the same thing for the small caps variants. I make no promises that this will work. If a small caps font face is separate from the main font file, \TeX\ won't be able to find it automatically. In that case, you will have to write your own |fd| file or |\DeclareFontShape| commands. +% We use |\M@split@colon| and |\M@strip@colon| for parsing the argument of |\mathfont|. If the user calls |\mathfont{|\meta{name}|:|\meta{features}|}|, we store the name in |\@tempbase| and the features in |\@tempfeatures|. If the user specifies a name only, then |\@tempfeatures| will be empty. Syntactically, we use |\M@strip@colon| to remove a final |:| the same way we remove\st{d} a final |=| when we parse\st{d} the optional argument in the \st{previous}next section. +% \?\@tempfeatures\?\@tempbase % \begin{macrocode} - \ifcsname TU/#1/\mddefault/\scdefault\endcsname - \else - \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault} - {<->"\@tempbase:\M@otf@features@sc;#2"}{} - \fi - \ifcsname TU/#1/\mddefault/\scdefault\itdefault\endcsname - \else - \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault\itdefault} - {<->"\@tempbase/I:\M@otf@features@sc;#2"}{} - \fi - \ifcsname TU/#1/\bfdefault/\scdefault\endcsname - \else - \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault} - {<->"\@tempbase/B:\M@otf@features@sc;#2"}{} - \fi - \ifcsname TU/#1/\bfdefault/\scdefault\itdefault\endcsname - \else - \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault\itdefault} - {<->"\@tempbase/BI:\M@otf@features@sc;#2"}{} - \fi} +\def\M@split@colon#1:#2\@nil{\def\@tempbase{#1} + \def\@tempfeatures{#2}} +\def\M@strip@colon#1:{#1} % \end{macrocode} -% The main font-loading macro. This macro takes a single argument, which should have the form \meta{font name}|:|\meta{optional features}, and \textsf{mathfont} handles the information in one of three ways if all goes well: interface with \textsf{fontspec}, possibly declare a few extra shapes for a font already in the \textsc{nfss}, or declare and load the whole font. At a minimum, \textsf{mathfont} ensures that we have access to medium upright, medium italic, bold upright, and bold italic fonts after calling |\M@newfont|. If \textsf{mathfont} decides to declare a font itself, it will also try to load small caps versions. We begin by splitting the argument into |\@tempbase| and |\@tempfeatures|. +% The main font-loading macro. The command takes a single argument, which should have the form \meta{\textsc{nfss} family} or \meta{font name}|:|\meta{optional features}, and it begins by parsing the argument. It splits the argument at a |:| and stores each portion in |\@tempbase| and |\@tempfeatures|. If |\@tempfeatures| is not empty, it has an extra colon at the end. We remove it. Previous versions of \textsf{mathfont} allowed users to say |\mathfont{fontspec}|, but this functionality is no longer supported. % \begin{macrocode} \def\M@newfont#1{% \edef\@tempa{#1} \expandafter\M@split@colon\@tempa:\@nil - \def\@tempb{fontspec} + \ifx\@tempfeatures\@empty\else + \edef\@tempfeatures{\expandafter\M@strip@colon\@tempfeatures} + \fi +% \end{macrocode} +% First we check if the argument is an entry in the \textsc{nfss}. If yes, we check if the shapes are present using |\M@check@nfss@shapes|. We assume that if the user specifies a font family identifier here, they know what they are doing, and the font-loader makes no attempt to fill in missing shapes. +% \begin{macrocode} + \ifcsname TU+\@tempbase\endcsname % is font family already in nfss? + \let\M@f@ntn@me\@tempbase + \M@check@nfss@shapes\M@f@ntn@me + \ifx\directlua\@undefined % if XeTeX + \expandafter\edef\csname\M@f@ntn@me-base\endcsname{\M@f@ntn@me} + \let\M@f@ntn@meb@se\M@f@ntn@me + \else % if LuaTeX % \end{macrocode} -% If the argument is ``|fontspec|,'' we want to use the last font loaded by \textsf{fontspec}, which is stored in |\l_fontspec_family_tl|. If this macro is not empty, we store its contents in |\M@f@ntn@me| and skip loading entirely because \textsf{fontspec} already took care of it. We issue an error if |\l_fontspec_family_tl| is empty or if the user has not loaded \textsf{fontspec}. If we use \textsf{fontspec} to laod the font, we don't get a separate font in base mode. +% With Lua\TeX, we would like to have a proper base-mode version of the font. If the font declaration happened outside of \textsf{mathfont} and the engine is Lua\TeX, then \textsf{mathfont} expects to find another font family whose \textsc{nfss} identifier is stored in |\|\meta{font family}|-base|, and we assume this second font was loaded with |mode=base|. If that information exists, we use it for the base-mode version. Otherwise, we issue a warning if the engine is Lua\TeX. % \begin{macrocode} - \ifx\@tempa\@tempb - \@ifpackageloaded{fontspec}{% - \expandafter\ifx\csname l_fontspec_family_tl\endcsname\@empty - \M@NoFontspecFamilyError + \ifcsname\M@f@ntn@me-base\endcsname % if base-mode version is known + \edef\M@f@ntn@meb@se{\csname\M@f@ntn@me-base\endcsname} + \M@check@nfss@shapes\M@f@ntn@meb@se \else - \expandafter - \let\expandafter\M@f@ntn@me\csname l_fontspec_family_tl\encsname - \def\@tempbase{\M@f@ntn@me\space(from fontspec)} - \let\M@f@ntn@meb@se\M@f@ntn@me % no separate font in base mode - \fi}{\M@NoFontspecError} + \M@NoBaseModeDetectedWarning{\M@f@ntn@me} + \edef\M@f@ntn@meb@se{\M@f@ntn@me} + \expandafter\edef\csname\M@f@ntn@me-base\endcsname{\M@f@ntn@me} + \fi + \fi % \end{macrocode} -% If the argument is something other than ``|fontspec|,'' we need to parse it. If the user loaded \textsf{fontspec}, we pass the entire argument to |\fontspec_set_family:Nnn| for loading and store the \textsc{nfss} family name in |\M@f@ntn@me|. For Lua\TeX, this is not recommended\textemdash\textsf{fontspec} is designed to work with text, not math, fonts and typically loads fonts in |node| mode, which makes their OpenType features unusable in math mode. +% Now save the font families for reference later. % \begin{macrocode} + \expandafter\edef\csname M@fontfamily@\@tempbase\endcsname + {\M@f@ntn@me} + \expandafter\edef\csname M@fontfamily@base@\@tempbase\endcsname + {\M@f@ntn@meb@se} \else - \@ifpackageloaded{fontspec} - {\csname fontspec_set_family:Nnn\endcsname\M@f@ntn@me{}{\@tempa} - % no separate font in base mode - \let\M@f@ntn@meb@se\M@f@ntn@me} % \end{macrocode} -% If the user has not loaded \textsf{fontspec}, we split the argument into a name and features using |\M@split@colon|. The name goes in |\@tempbase|, and the features go in |\@tempfeatures|. We store the OpenType features for loading in base mode inside |\@basefeatures|. If we are typesetting in Lua\TeX, |\@basefeatures| will be the same as |\@tempfeatures| except with |mode=base| at the end, and if we are using \XeTeX, it will be exactly the same. +% If the argument is not a font family identifier, then we check if \textsf{mathfont} has previously loaded a font using this argument. If yes, it will be stored in |\M@fontfamily@|\meta{arg}, and we use the font family name from the previous call to |\M@newfont|. We remove the spaces before using the argument because in general, we do not want \textsf{mathfont} to use space characters internally to distinguish font names. % \begin{macrocode} - {\M@Decl@reF@milytrue - \M@Decl@reF@milyB@setrue - \ifx\@tempfeatures\@empty - \ifdefined\directlua - \edef\@basefeatures{mode=base} - \else - \let\@basefeatures\@tempfeatures - \fi - \else - \edef\@tempfeatures{\expandafter\M@strip@colon\@tempfeatures} - \ifdefined\directlua - \edef\@basefeatures{\@tempfeatures;mode=base} - \else - \let\@basefeatures\@tempfeatures - \fi - \fi + \edef@nospace\@tempa{\@tempa} + \ifcsname M@fontfamily@\@tempa\endcsname + \edef\M@f@ntn@me{\csname M@fontfamily@\@tempa\endcsname} + \edef\M@f@ntn@meb@se{\csname M@fontfamily@base@\@tempa\endcsname} + \else % \end{macrocode} -% We remove the spaces from |#1| and store it in |\@tempa| and from the human-readable font name contained in |#1| and store it in |\@tempb|. We check whether either already exists as a family name in the \textsc{nfss}, and if we do, we call |\M@fill@nfss@shapes| to ensure that we have declared all the shapes. In this case, we set |\ifM@Decl@reF@mily| to false and break out of the |\@tfor| loop. -% \begin{macrocode} - \edef@nospace\@tempa{\@tempa} - \edef@nospace\@tempb{\@tempbase} - \M@Decl@reF@milytrue - \@tfor\@i:=\@tempa\@tempb\@tempbase\do{% - \ifcsname TU+\@i\endcsname - \expandafter\let\expandafter\M@f@ntn@me\@i - \M@Decl@reF@milyfalse - \M@fill@nfss@shapes\M@f@ntn@me\@tempfeatures - \@break@tfor - \fi} -% \end{macrocode} -% If |\M@newfont| didn't find anything in the \textsc{nfss}, we need to load the font. The name for the font family will be |#1| with spaces removed, which we previously stored in |\@tempa|. +% If |\M@newfont| doesn't find anything previously that matches |#1|, we load the font. Under the built-in font-loader, the name for the font family will be |#1| with spaces removed, which we store in |\M@f@ntn@me|. (A properly declared \textsc{nfss} font family does not have spaces in its name because \LaTeX\ ignores spaces when scanning a font family declaration.) Then we call |\M@fill@nfss@shapes| to declare all the shapes. % \indexpage{log file=\texttt{log} file} % \begin{macrocode} - \ifM@Decl@reF@mily + \edef@nospace\@tempa{\@tempa} + \ifcase\M@loader % are we using default font-loader? \let\M@f@ntn@me\@tempa - \wlog{Package mathfont Info: Adding \M@f@ntn@me\space to the nfss!} + \wlog{Package mathfont Info: Adding \@tempbase\space to the nfss!} + \wlog{Family name: \M@f@ntn@me} \DeclareFontFamily{TU}{\M@f@ntn@me}{} + \M@fill@nfss@shapes{\M@f@ntn@me}{\M@otf@features}{\@tempfeatures} % \end{macrocode} -% Now load the four most common font faces with |\M@fill@nfss@shapes|. +% If the engine is Lua\TeX, we load a separate version of the font with |mode=base|. Then we link the base-mode and regular versions. % \begin{macrocode} - \M@fill@nfss@shapes\M@f@ntn@me\@tempfeatures - \fi + \ifdefined\directlua + \edef\M@f@ntn@meb@se{\M@f@ntn@me-base} + \wlog{Package mathfont Info: Adding \@tempbase with mode=base + to the nfss!} + \wlog{Family name: \M@f@ntn@meb@se} + \DeclareFontFamily{TU}{\M@f@ntn@meb@se}{} + \M@fill@nfss@shapes + {\M@f@ntn@meb@se}{\M@otf@features}{\@tempfeatures;mode=base} + \else + \edef\M@f@ntn@meb@se{\M@f@ntn@me} + \fi + \or % are we using fontspec as font-loader? % \end{macrocode} -% At this point, there is an entry for the font in the \textsc{nfss}, and we stored the family name in |\M@f@ntn@me|. Now we check if the \textsc{nfss} contains a base-mode version with the family name ending in |-base|. +% If the user requested \textsf{fontspec} as the font-loader, we pass the font name and features to |\fontspec_set_family:Nnn| for loading and store the \textsc{nfss} family name in |\M@f@ntn@me|. In Lua\TeX, we request a separate base-mode version by specifying |Renderer=Base|. % \begin{macrocode} - \ifdefined\directlua - \edef\M@f@ntn@meb@se{\M@f@ntn@me-base} - \else - \let\M@f@ntn@meb@se\M@f@ntn@me - \fi - \ifcsname TU+\M@f@ntn@meb@se\endcsname\else - \wlog{Package mathfont Info: Adding \M@f@ntn@meb@se\space - to the nfss!} - \DeclareFontFamily{TU}{\M@f@ntn@meb@se}{} + \wlog{Package mathfont Info: Passing \@tempbase\space to fontspec + for handling!} + \csname fontspec_set_family:Nnn\endcsname\M@f@ntn@me + {\M@otf@features,\@tempfeatures}{\@tempbase} + \ifdefined\directlua + \wlog{Package mathfont Info: Passing \@tempbase\space with + Renderer=Base to fontspec for handling!} + \csname fontspec_set_family:Nnn\endcsname\M@f@ntn@meb@se + {\M@otf@features,\@tempfeatures,Renderer=Base}{\@tempbase} + \else + \edef\M@f@ntn@meb@se{\M@f@ntn@me} + \fi \fi - \M@fill@nfss@shapes\M@f@ntn@meb@se\@basefeatures} +% \end{macrocode} +% Now link the base-mode family name and store the family names for future reference. +% \begin{macrocode} + \expandafter\edef\csname\M@f@ntn@me-base\endcsname{\M@f@ntn@meb@se} + \expandafter\edef\csname M@fontfamily@\@tempa\endcsname + {\M@f@ntn@me} + \expandafter\edef\csname M@fontfamily@base@\@tempa\endcsname + {\M@f@ntn@meb@se} + \fi \fi} % \end{macrocode} % Finally, the font-loading commands should appear only in the preamble. % \begin{macrocode} +\@onlypreamble\M@declare@shape \@onlypreamble\M@fill@nfss@shapes \@onlypreamble\M@newfont % \end{macrocode} -% At this point, the font information is stored in the \textsc{nfss}, but nothing has been loaded. For text fonts, that happens during a call to |\selectfont|, and for math fonts, that happens the first time entering math mode. I've played with the idea of forcing some fonts to load now, but I'm hesitant to change \LaTeX's standard font-loading behavior. I may address this issue further in future versions of \textsf{mathfont}. +% At this point, the font information is stored in the \textsc{nfss}, but nothing has been loaded. For text fonts, that happens during a call to |\selectfont|, and for math fonts, that happens the first time entering math mode. I've considered forcing some fonts to load now, but I'm hesitant to change \LaTeX's standard font-loading behavior. On this issue, I plan to leave \textsf{mathfont} as is for the forseeable future. % % % @@ -1321,16 +1395,15 @@ by TeX or compile with XeLaTeX.^^J}}% \else \M@toks{} % \end{macrocode} -% We immediately call |\M@newfont| on the mandatory argument of |\mathfont|. We store the \textsc{nfss} family name in |\M@fontfamily@|\meta{argument} and |M@fontfamily@base@|\meta{argument}. If we need a new value of |\M@count|, we store it in |\M@fontid@|\meta{\textsc{nfss} family name}. We will not need a new value of |\M@count| if the user asks for the same \textsc{nfss} font family twice. Throughout the definition of |\mathfont|, |\@tempa| stores the value of |\M@count| that corresponds to the current font. +% We call |\M@newfont| on the mandatory argument of |\mathfont|, which stores the two \textsc{nfss} family names (one for default renderer and one for base-mode renderer if using Lua\TeX) in |\M@f@ntn@me| and |\M@f@ntn@meb@se|. If we need a new value of |\M@count|, we store it in |\M@fontid@|\meta{\textsc{nfss} family name}. We will not need a new value of |\M@count| if the user asks for the same \textsc{nfss} font family twice. Throughout the definition of |\mathfont|, |\@tempa| stores the value of |\M@count| that corresponds to the current font. % \indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}} % \begin{macrocode} \M@newfont{#2} - \expandafter\edef\csname M@fontfamily@#2\endcsname{\M@f@ntn@me} - \expandafter\edef\csname M@fontfamily@base@#2\endcsname{\M@f@ntn@meb@se} \ifcsname M@fontid@\M@f@ntn@me\endcsname\else % need new \M@count value? - \expandafter\edef\csname M@fontid@\M@f@ntn@me\endcsname{\the\M@count} - \expandafter\let\csname M@fontid@\M@f@ntn@meb@se\expandafter\endcsname - \csname M@fontid@\M@f@ntn@me\endcsname + \expandafter\edef\csname M@fontid@\M@f@ntn@me\endcsname{\the + \M@count} + \expandafter\edef\csname M@fontid@\M@f@ntn@meb@se\endcsname{\the + \M@count} \advance\M@count\@ne \fi \edef\@tempa{\csname M@fontid@\M@f@ntn@me\endcsname} @@ -1452,67 +1525,66 @@ by TeX or compile with XeLaTeX.^^J}}% \let\rmdefault\M@f@ntn@me} \@onlypreamble\setfont % \end{macrocode} -% The macro |\mathconstantsfont| handles choosing the font for setting math parameters in Lua\TeX. It issues a warning if called in \XeTeX. First, it checks if the argument was previously fed to |\mathfont| by seeing whether |\M@fontfamily@|\meta{|\string#1|} is equal to |\relax|. If yes, |#1| was never an argument of |\mathfont|, and we raise an error. +% The macro |\mathconstantsfont| chooses a font for setting math parameters. It is intended for Lua\TeX\ when \textsf{mathfont} can adjust text fonts and add a MathConstants table. It issues a warning if called without font adjustments enabled. First, it checks if the argument was previously fed to |\mathfont| by seeing whether |\M@fontfamily@|\meta{|\string#1|} is equal to |\relax|. If yes, |#1| was never an argument of |\mathfont|, and we raise an error. % \begin{macrocode} -\ifdefined\directlua - \let\M@SetMathConstants\relax - \protected\def\mathconstantsfont{% - \@ifnextchar[{\@mathconstantsfont}{\@mathconstantsfont[upright]}} - \def\@mathconstantsfont[#1]#2{% - \edef\@tempa{\csname M@fontfamily@base@#2\endcsname} - \expandafter\ifx\@tempa\relax - \M@BadMathConstantsFontError{#2} - \else +\let\M@SetMathConstants\relax +\protected\def\mathconstantsfont{% + \@ifnextchar[{\@mathconstantsfont}{\@mathconstantsfont[upright]}} +\def\@mathconstantsfont[#1]#2{% + \edef@nospace\@tempa{#2} + \edef\@tempa{\csname M@fontfamily@base@\@tempa\endcsname} + \expandafter\ifx\@tempa\relax + \M@BadMathConstantsFontError{#2} + \else % \end{macrocode} % Some error checking. If |#1| isn't ``upright'' or ``italic,'' we should raise an error. If the |\@tempa| font doesn't correspond to a symbol font, we declare it. Before defining |\M@SetMathConstants| if necessary, we store the \textsc{nfss} family name in |\m@th@const@nts@font|. % \begin{macrocode} - \def\@tempb{#1} - \def\@tempc{upright} + \def\@tempb{#1} + \def\@tempc{upright} + \ifx\@tempb\@tempc + \let\m@th@const@nts@font@sh@pe\shapedefault + \else + \def\@tempc{italic} \ifx\@tempb\@tempc - \let\m@th@const@nts@font@sh@pe\shapedefault + \let\m@th@const@nts@font@sh@pe\itdefault \else - \def\@tempc{italic} - \ifx\@tempb\@tempc - \let\m@th@const@nts@font@sh@pe\itdefault - \else - \M@BadMathConstantsFontTypeError{#1} - \fi - \fi - \ifcsname symM#1\csname M@fontid@\@tempa\endcsname\endcsname\else - \DeclareSymbolFont{M#1\csname M@fontid@\@tempa\endcsname} - {TU}{\@tempa}{\mddefault}{\m@th@const@nts@font@sh@pe} + \M@BadMathConstantsFontTypeError{#1} \fi - \let\m@th@const@nts@font\@tempa + \fi + \ifcsname symM#1\csname M@fontid@\@tempa\endcsname\endcsname\else + \DeclareSymbolFont{M#1\csname M@fontid@\@tempa\endcsname} + {TU}{\@tempa}{\mddefault}{\m@th@const@nts@font@sh@pe} + \fi + \let\m@th@const@nts@font\@tempa % \end{macrocode} % We come to the tricky problem of making sure to use the correct MathConstants table. Lua\TeX\ automatically initializes all math parameters based on the most recent |\textfont|, etc.\ assignment, so we want to tell \LaTeX\ to reassign whatever default font we're using to the correct math family whenever we load new math fonts. This is possible, but the implementation is super hacky. When \LaTeX\ enters math mode, it checks whether it needs to redo any math family assignments, typically because of a change in font size, and if so, it calls |\getanddefine@fonts| repeatedly to append |\textfont|, etc.\ assignments onto the macro |\math@fonts|. Usually |\math@fonts| is empty because this process always happens inside a group, so we can hook into the code by defining |\math@font| to be |\aftergroup|\meta{extra code}. In this case, the \textit{extra code} will be another call to |\getanddefine@fonts|. % % We initialize |\M@SetMathConstants| to be |\relax|, so we define it the first time the user calls |\mathconstantsfont|. The command calls |\getanddefine@fonts| inside a group and uses as arguments the upright face of the font corresponding to |#1|. Then we call |\math@fonts|, and to avoid an infinite loop, we gobble the |\aftergroup||\M@SetMathConstants| macros that \textsf{mathfont} has inserted at the start of |\math@fonts|. Setting |\globaldefs| to 1 makes the |\textfont|, etc.\ assignments from |\getanddefine@fonts| global when we call |\math@fonts|.\indexpage{LaTeX kernel=\LaTeX\ kernel}^^A % \begin{macrocode} - \protected\def\M@SetMathConstants{% - \begingroup - \escapechar\m@ne - \expandafter\getanddefine@fonts - \csname symM#1\csname M@fontid@\m@th@const@nts@font\endcsname - \expandafter - \endcsname % expands to \symMupright - \csname TU/\m@th@const@nts@font - /\seriesdefault - /\m@th@const@nts@font@sh@pe - \endcsname % expands to \TU//m/ - \globaldefs\@ne - \expandafter\@gobbletwo\math@fonts % gobble to avoid infinite loop - \endgroup} - \fi} - \def\math@fonts{\aftergroup\M@SetMathConstants} -\else - \protected\def\mathconstantsfont{\M@LuaTeXOnlyWarning - \@ifnextchar[\@gobbletwo@brackets\@gobble} -\fi + \protected\def\M@SetMathConstants{% + \begingroup + \escapechar\m@ne + \expandafter\getanddefine@fonts + \csname symM#1\csname M@fontid@\m@th@const@nts@font\endcsname + \expandafter + \endcsname % expands to \symMupright + \csname TU/\m@th@const@nts@font + /\seriesdefault + /\m@th@const@nts@font@sh@pe + \endcsname % expands to \TU//m/ + \globaldefs\@ne + \expandafter\@gobbletwo\math@fonts % gobble to avoid infinite loop + \endgroup} + \fi + \ifM@adjust@font\else + \M@MathConstantsNoFontAdjustWarning + \fi} +\def\math@fonts{\aftergroup\M@SetMathConstants} \@onlypreamble\mathconstantsfont % \end{macrocode} % If the user has not enabled Lua font adjustments, then |\mathconstantsfont| will generate an error message and gobble its argument. This definition happens later in |mathfont.sty| when we define other Lua-related macros such as |\IntegralItalicFactor| to do the same thing absent font adjustments. % -% +% \vfill % % \section{Local Font Changes}\indexpage{local font changes} % @@ -1543,7 +1615,7 @@ by TeX or compile with XeLaTeX.^^J}}% \@onlypreamble\newmathfontcommand % \end{macrocode} % Then define macros that create local font-changing commands with default series and shape information. Because they're all so similar, we metacode them. We define the commands themselves with |\define@newmath@cmd|. The argument structure is: -% \begin{itemize}[nosep] +% \begin{itemize} % \item |#1|---|\newmath|\meta{key} macro name % \item |#2|---font series % \item |#3|---font shape @@ -1639,45 +1711,24 @@ by TeX or compile with XeLaTeX.^^J}}% \fi \fi} % \end{macrocode} -% Define |\RuleThicknessFactor|. -% \begin{macrocode} - \protected\def\RuleThicknessFactor#1{% - \M@check@int{#1} - \ifM@arg@good - \global\M@rule@thickness@factor=#1\relax - \else - \M@BadIntegerError\RuleThicknessFactor{#1} - \fi} -% \end{macrocode} -% Define |\IntegralItalicFactor|. -% \begin{macrocode} - \protected\def\IntegralItalicFactor#1{% - \M@check@int{#1} - \ifM@arg@good - \global\M@integral@italic@factor=#1\relax - \else - \M@BadIntegerError\IntegralItalicFactor{#1} - \fi} -% \end{macrocode} -% Define |\SurdHorizontalFactor|. -% \begin{macrocode} - \protected\def\SurdHorizontalFactor#1{% - \M@check@int{#1} - \ifM@arg@good - \global\M@surd@horizontal@factor=#1\relax - \else - \M@BadIntegerError\SurdHorizontalFactor{#1} - \fi} -% \end{macrocode} -% Define |\SurdVerticalFactor|. -% \begin{macrocode} - \protected\def\SurdVerticalFactor#1{% - \M@check@int{#1} - \ifM@arg@good - \global\M@surd@vertical@factor=#1\relax - \else - \M@BadIntegerError\SurdVerticalFactor{#1} - \fi} +% We meta-code the definitions of |\RuleThicknessFactor|, etc. To keep the syntax relatively clean, we temporarily eliminate the |\escapechar| and redefine |~| to |\noexpand|. +% \begin{macrocode} + \let\@tempa~ + \let~\noexpand + \count@\escapechar + \escapechar\m@ne + \@tfor\@i:=\RuleThicknessFactor\IntegralItalicFactor + \SurdHorizontalFactor\SurdVerticalFactor\do{% + \protected\expandafter\edef\@i#1{% + ~\M@check@int{#1}% + ~\ifM@arg@good + ~\global + \expandafter~\csname M@\expandafter\string\@i\endcsname=#1\relax + ~\else + ~\M@BadIntegerError\expandafter~\@i{#1}% + ~\fi}} + \let~\@tempa + \escapechar\count@ % \end{macrocode} % If automatic font adjustments are disabled, we should also disable the related user-level commands. In this case, each of the font-adjustment macros expands to raise an |\M@NoFontAdjustError| and gobble its argument. % \begin{macrocode} @@ -1741,22 +1792,6 @@ by TeX or compile with XeLaTeX.^^J}}% \tracinglostchars\tw@ \fi % \end{macrocode} -% Warn the user about possible problems with a multi-word optional package argument in \XeTeX. -% \begin{macrocode} -\ifdefined\XeTeXrevision - \ifM@font@loaded - \AtEndOfPackage{% - \PackageWarningNoLine{mathfont} - {XeTeX detected. It looks like you\MessageBreak - specified a font when you loaded\MessageBreak - mathfont. If you run into problems\MessageBreak - with a font whose name is multiple\MessageBreak - words, try compiling with LuaLaTeX\MessageBreak - or call \string\setfont\space or \string\mathfont\MessageBreak - manually}} - \fi -\fi -% \end{macrocode} % Write to the |log| file |\AtBeginDocument| all font changes carried out by \textsf{mathfont}. The command |\keyword@info@begindocument| accepts two arguments and is what acutally prints the informational message after the preamble. One argument is a keyword-argument from |\mathfont|, and the other is a number of spaces. The spaces make the messages line up with each other in the log file.\indexpage{log file=\texttt{log} file} % \begin{macrocode} \def\keyword@info@begindocument#1:#2\@nil{% @@ -1802,6 +1837,22 @@ by TeX or compile with XeLaTeX.^^J}}% \expandafter\keyword@info@begindocument\@i\@nil} \wlog{}} % \end{macrocode} +% Warn the user about possible problems with a multi-word optional package argument in \XeTeX. +% \begin{macrocode} +\ifdefined\XeTeXrevision + \ifM@font@loaded + \AtEndOfPackage{% + \PackageWarningNoLine{mathfont} + {XeTeX detected. It looks like you\MessageBreak + specified a font when you loaded\MessageBreak + mathfont. If you run into problems\MessageBreak + with a font whose name is multiple\MessageBreak + words, try compiling with LuaLaTeX\MessageBreak + or call \string\setfont\space or \string\mathfont\MessageBreak + manually}} + \fi +\fi +% \end{macrocode} % If the user passed a font name to \textsf{mathfont}, we set it as the default |\AtEndOfPackage|. % \begin{macrocode} \ifM@font@loaded @@ -1822,28 +1873,24 @@ by TeX or compile with XeLaTeX.^^J}}% \@onlypreamble\M@hebrew@set \@onlypreamble\M@digits@set \@onlypreamble\M@operator@set -\@onlypreamble\M@symbols@set -\@onlypreamble\M@extsymbols@set \@onlypreamble\M@delimiters@set -\@onlypreamble\M@arrows@set +\@onlypreamble\M@radical@set \@onlypreamble\M@bigops@set \@onlypreamble\M@extbigops@set +\@onlypreamble\M@symbols@set +\@onlypreamble\M@extsymbols@set +\@onlypreamble\M@arrows@set \@onlypreamble\M@bb@set \@onlypreamble\M@cal@set \@onlypreamble\M@frak@set \@onlypreamble\M@bcal@set \@onlypreamble\M@bfrak@set % \end{macrocode} -% -% -% -% % % % \section{Adjust Fonts: Setup} % % -% % The next three sections implement Lua-based font adjustments and apply only if the user has enabled font adjustment. Most of the implementation happens through Lua code, but we need some \TeX\ code in case the user wants to adjust character metric information. Here is a rough outline of what happens in the next three sections: % \begin{enumerate}\itemsep\z@ % \item Initialize a Lua table that contains new metrics for certain characters specific to math mode, such as letters with wider bounding boxes and large operator symbols. @@ -2355,14 +2402,14 @@ function mathfont:modify_e_base(index, fontdata) local width, height, depth, italic = self.glyph_info(char) char.width = width + italic % \end{macrocode} -% We trim the bounding box on the surd if the user requests it. Some text fonts extend the bounding box of the surd past the edge of the glyph, and we trim the edge of the box according to the values of |\M@surd@horizontal@factor| and |\M@surd@vertical@factor|. +% We trim the bounding box on the surd if the user requests it. Some text fonts extend the bounding box of the surd past the edge of the glyph, and we trim the edge of the box according to the values of |\M@SurdHorizontalFactor| and |\M@SurdVerticalFactor|. % \begin{macrocode} if index == 8730 then % \end{macrocode} % Now get the scale factors from the \TeX\ side of things and scale down (or up) the height and with of the surd. % \begin{macrocode} - local horizontal_scale = tex.getcount("M@surd@horizontal@factor") / 1000 - local vertical_scale = tex.getcount("M@surd@vertical@factor") / 1000 + local horizontal_scale = tex.getcount("M@SurdHorizontalFactor") / 1000 + local vertical_scale = tex.getcount("M@SurdVerticalFactor") / 1000 char.width = horizontal_scale * char.width char.height = vertical_scale * height end @@ -2370,7 +2417,7 @@ function mathfont:modify_e_base(index, fontdata) % For the integral symbol, get the scale factor add the appropriate italic correction. % \begin{macrocode} if index == 8747 then - local scale_factor = tex.getcount("M@integral@italic@factor") / 1000 + local scale_factor = tex.getcount("M@IntegralItalicFactor") / 1000 char.italic = scale_factor * width end end @@ -2609,11 +2656,11 @@ function mathfont.math_constants(fontdata) local axis = 0 local rule_thickness = 0 % \end{macrocode} -% Set the default rule thickness. If the font already has a value set for the parameter |FractionRuleThickness|, we take that as the default rule thickness, and otherwise we set it to be 1/18 of the font size times the adjustment factor from |\M@rule@thickness@factor|, which is the value of that |\count| divided by 1000. +% Set the default rule thickness. If the font already has a value set for the parameter |FractionRuleThickness|, we take that as the default rule thickness, and otherwise we set it to be 1/18 of the font size times the adjustment factor from |\M@RuleThicknessFactor|, which is the value of that |\count| divided by 1000. % \begin{macrocode} local dim = "FractionRuleThickness" if not fontdata.MathConstants[dim] then - local scale_factor = tex.getcount("M@rule@thickness@factor") / 1000 + local scale_factor = tex.getcount("M@RuleThicknessFactor") / 1000 rule_thickness = (size / 18) * scale_factor fontdata.MathConstants[dim] = rule_thickness else @@ -3019,32 +3066,32 @@ mathfont:new_type_a(567, 1044507, {700, 50, -150, 0}) % \jmath % \end{macrocode} % Upper-case Latin letters will fill unicode slots U+FF020 through U+FF039. % \begin{macrocode} -mathfont:new_type_a(65, 1044512, {50, 0, 150, 0}) % A -mathfont:new_type_a(66, 1044513, {50, 0, 0, 0}) % B -mathfont:new_type_a(67, 1044514, {0, 0, 0, 0}) % C -mathfont:new_type_a(68, 1044515, {50, 0, -50, 0}) % D -mathfont:new_type_a(69, 1044516, {50, 0, 0, 0}) % E -mathfont:new_type_a(70, 1044517, {50, 0, 0, 0}) % F -mathfont:new_type_a(71, 1044518, {0, 0, 0, 0}) % G -mathfont:new_type_a(72, 1044519, {50, 0, -50, 0}) % H -mathfont:new_type_a(73, 1044520, {100, 0, 0, 0}) % I -mathfont:new_type_a(74, 1044521, {50, 0, 100, 0}) % J -mathfont:new_type_a(75, 1044522, {50, 0, 0, 0}) % K -mathfont:new_type_a(76, 1044523, {50, 0, -180, 0}) % L -mathfont:new_type_a(77, 1044524, {50, 0, -50, 0}) % M -mathfont:new_type_a(78, 1044525, {50, 0, -50, 0}) % N -mathfont:new_type_a(79, 1044526, {0, 0, 0, 0}) % O -mathfont:new_type_a(80, 1044527, {0, 0, -50, 0}) % P -mathfont:new_type_a(81, 1044528, {0, 50, 0, 0}) % Q -mathfont:new_type_a(82, 1044529, {50, 0, -50, 0}) % R -mathfont:new_type_a(83, 1044530, {0, 0, -50, 0}) % S -mathfont:new_type_a(84, 1044531, {0, 0, -50, 0}) % T -mathfont:new_type_a(85, 1044532, {0, 0, -50, 0}) % U -mathfont:new_type_a(86, 1044533, {0, 50, 0, 0}) % V -mathfont:new_type_a(87, 1044534, {0, 50, -50, 0}) % W -mathfont:new_type_a(88, 1044535, {50, 0, 0, 0}) % X -mathfont:new_type_a(89, 1044536, {0, 0, -50, 0}) % Y -mathfont:new_type_a(90, 1044537, {50, 0, -50, 0}) % Z +mathfont:new_type_a(65, 1044512, {50, 0, 150, 0}) % A +mathfont:new_type_a(66, 1044513, {50, 0, 0, 0}) % B +mathfont:new_type_a(67, 1044514, {0, 0, 0, 0}) % C +mathfont:new_type_a(68, 1044515, {50, 0, -50, 0}) % D +mathfont:new_type_a(69, 1044516, {50, 0, 0, 0}) % E +mathfont:new_type_a(70, 1044517, {50, 0, 0, 0}) % F +mathfont:new_type_a(71, 1044518, {0, 0, 0, 0}) % G +mathfont:new_type_a(72, 1044519, {50, 0, -50, 0}) % H +mathfont:new_type_a(73, 1044520, {100, 0, 0, 0}) % I +mathfont:new_type_a(74, 1044521, {50, 0, 100, 0}) % J +mathfont:new_type_a(75, 1044522, {50, 0, 0, 0}) % K +mathfont:new_type_a(76, 1044523, {50, 0, -180, 0}) % L +mathfont:new_type_a(77, 1044524, {50, 0, -50, 0}) % M +mathfont:new_type_a(78, 1044525, {50, 0, -50, 0}) % N +mathfont:new_type_a(79, 1044526, {0, 0, 0, 0}) % O +mathfont:new_type_a(80, 1044527, {0, 0, -50, 0}) % P +mathfont:new_type_a(81, 1044528, {0, 50, 0, 0}) % Q +mathfont:new_type_a(82, 1044529, {50, 0, -50, 0}) % R +mathfont:new_type_a(83, 1044530, {0, 0, -50, 0}) % S +mathfont:new_type_a(84, 1044531, {0, 0, -50, 0}) % T +mathfont:new_type_a(85, 1044532, {0, 0, -50, 0}) % U +mathfont:new_type_a(86, 1044533, {0, 50, 0, 0}) % V +mathfont:new_type_a(87, 1044534, {0, 50, -50, 0}) % W +mathfont:new_type_a(88, 1044535, {50, 0, 0, 0}) % X +mathfont:new_type_a(89, 1044536, {0, 0, -50, 0}) % Y +mathfont:new_type_a(90, 1044537, {50, 0, -50, 0}) % Z % \end{macrocode} % The Greek characters will be type |u|, so we don't need extra unicode slots for them. In future editions of \textsf{mathfont}, they may becoeme type |a| with adjusted bounding boxes, but I don't have immediate plans for such a change. % \begin{macrocode} @@ -3866,8 +3913,8 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale) \DeclareMathSymbol{-}{\mathbin}{\M@symbols@font}{"2212} \DeclareMathSymbol{*}{\mathbin}{\M@symbols@font}{"2A} \DeclareMathSymbol{\times}{\mathbin}{\M@symbols@font}{"D7} - \DeclareMathSymbol{/}{\mathbin}{\M@symbols@font}{"2F} - \DeclareMathSymbol{\fractionslash}{\mathbin}{\M@symbols@font}{"2215} + \DeclareMathSymbol{/}{\mathord}{\M@symbols@font}{"2F} + \DeclareMathSymbol{\fractionslash}{\mathord}{\M@symbols@font}{"2215} \DeclareMathSymbol{\div}{\mathbin}{\M@symbols@font}{"F7} \DeclareMathSymbol{\pm}{\mathbin}{\M@symbols@font}{"B1} \DeclareMathSymbol{\bullet}{\mathbin}{\M@symbols@font}{"2022} @@ -4678,7 +4725,7 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale) % \advance\dimen@ by -2\fboxrule % \advance\dimen@ by -2\fboxsep % \fbox{\vbox{\hsize\dimen@ -% \strut\textbf{Big Change:} Font adjustments for Lua\TeX: new glyph boundaries for Latin letters in math mode, resizable delimiters, actual big operators, MathConstants table based on font metrics.\vphantom{y}}} +% \strut\textbf{Big Change:} Font adjustments for Lua\TeX: new glyph boundaries for Latin letters in math mode, resizable delimiters, big operators, MathConstants table based on font metrics.\vphantom{y}}} % \par\smallskip} % \item added |\CharmLine| and |\CharmFile| % \item added |\mathconstantsfont| @@ -4723,7 +4770,13 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale) % % \version{2.2b}{August 2023\strut} % \item minor changes to code and documentation -% \item |\ng| now works in math (as not greater than) and text (as pronounciation symbol) +% \item |\ng| now works in math (as not greater than symbol) and text (as pronounciation symbol) +% +% \version{2.3}{September 2023\strut} +% \item solidus and |\fractionslash| are |\mathord| instead of |\mathbin| +% \item removed |\mathfont{fontspec}| functionality +% \item redesigned font-loader +% \item added package options |default-loader| and |fontspec-loader| % % \egroup % \end{multicols*} @@ -4749,7 +4802,7 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale) itemsep=\smallskipamount, parsep=\z@,partopsep=\z@} \setlist{special} -\usepackage{doc} +\usepackage{doc}[=v2] \MakeShortVerb{|} \def\link#1{\href{#1}{\nolinkurl{#1}}} \newcount\fig @@ -4777,7 +4830,7 @@ Handling fonts in \TeX\ and \LaTeX\ is a notoriously difficult task because font Loading fonts for math typesetting is more complicated than for regular text. First, selecting fonts for math mode, both in plain \TeX\ and in the \textsc{nfss}, involves additional macros above and beyond what we need to load text fonts. Second, \TeX\ expects fonts for math to contain extra information for formatting equations.\footnote{Specifically, this extra information is a set of large variants, math-specific parameter values associated with individual characters, and a MathConstants table. Also, math fonts often use slightly wider bounding boxes for letters in math mode---the Computer Modern $f$ is a well-known example. (Compare math-mode {\fboxsep=0pt\fbox{$f$}} and italic {\fboxsep=0pt\fbox{\textit{f}}}.) For this reason, \textsf{mathfont} also provides an interface to enlarge the bounding boxes of Latin letters when they appear in math mode. See section 5 for details.} Broadly speaking, we say that a \textit{math font} contains this extra information, whereas a \textit{text font} does not, and typesetting math with glyphs from one or more text fonts usually results in messier equations than using a properly prepared math font. The functionality of \textsf{mathfont} then is twofold: (1) provide a wrapper around the \textsc{nfss} commands for math typesetting that serves as a high-level interface; and (2) implement Lua\TeX\ callbacks that artificially convert text fonts into math fonts at loading.\footnote{Values for MathConstants table are different from but inspired by Ulrik Vieth, ``Understanding the \AE sthetics of Math Typesetting,'' (Bacho\TeX\ Conference, 2008) and Ulrik Vieth ``OpenType Math Illuminated,'' \textit{TUGboat} 30 (2009): 22--31. See also Bogus\l aw Jackowski, ``Appendix G Illuminated,'' \textit{TUGboat} 27 (2006): 83--90.} Although \textsf{mathfont} tries its best to get your fonts right, it may run into trouble when picking fonts to load. If this happens, you should declare your font family and shapes in the \textsc{nfss} before setting any fonts with \textsf{mathfont}. -You must use one of \XeLaTeX\ or Lua\LaTeX\ to typeset a document with \textsf{mathfont}. You can load \textsf{mathfont} with the standard |\usepackage{mathfont}| syntax, and the package accepts three optional arguments. If you use Lua\TeX, the options |adjust| or |no-adjust| will manually specify whether \textsf{mathfont} should adapt text fonts for math mode, and \textsf{mathfont} selects |adjust| by default. If you use \XeTeX, \textsf{mathfont} cannot adjust any font objects with Lua callbacks, and either of these package options will cause an error.\footnote{With \XeLaTeX, \textsf{mathfont} does not add big operators or resizable delimiters. This means you will have to use the Computer Modern defaults, load a separate math font for resizable characters, or end up with a document where large operators and delimiters do not scale like they do normally.} For this reason, using Lua\TeX\ with \textsf{mathfont} is recommended as of version 2.0. If you load \textsf{mathfont} with any other optional argument, the package will interpret it as a font name and call |\setfont| (described in the next section) on your argument. Doing so selects that font for the text of your document and for the character classes in the upper section of Table~1. +You must use one of \XeLaTeX\ or Lua\LaTeX\ to typeset a document with \textsf{mathfont}. You can load \textsf{mathfont} with the standard |\usepackage{mathfont}| syntax, and the package accepts five optional arguments. If you use Lua\TeX, the options |adjust| or |no-adjust| will manually specify whether \textsf{mathfont} should adapt text fonts for math mode, and \textsf{mathfont} selects |adjust| by default. If you use \XeTeX, \textsf{mathfont} cannot adjust any font objects with Lua callbacks, and either of these package options will cause an error.\footnote{With \XeLaTeX, \textsf{mathfont} does not add big operators or resizable delimiters. This means you will have to use the Computer Modern defaults, load a separate math font for resizable characters, or end up with a document where large operators and delimiters do not scale like they do normally.} For this reason, using Lua\TeX\ with \textsf{mathfont} is recommended as of version 2.0. The options |default-loader| and |fontspec-loader| determine which font-loading code \textsf{mathfont} uses. If you load the package with the |default-loader| option, \textsf{mathfont} uses a built-in font-loader, and if you load the package with |fontspec-loader|, \textsf{mathfont} uses the font-loader from \textsf{fontspec}. If you load \textsf{mathfont} with any other optional argument, the package will interpret it as a font name and call |\setfont| (described in the next section) on your argument. Doing so selects that font for the text of your document and for the character classes in the upper section of Table~1. The \textsf{mathfont} package is closely related to several other \LaTeX\ packages. The functionality is closest to that of \textsf{mathspec} by Andrew Gilbert Moschou, which is compatible with \XeTeX\ only and selects characters from text fonts for math.\footnote{Andrew Gilbert Moschou, ``\textsf{mathspec}---Specify arbitrary fonts for mathematics in \XeTeX,'' \link{https://ctan.org/pkg/mathspec}.} The \textsf{unicode-math} package is the standard \LaTeX\ package for loading actual unicode math fonts, and if you have a unicode font with proper math support, rather than a text font that you want to use for equations, consider using this package instead of \textsf{mathfont}.\footnote{Will Robertson, et al., ``\textsf{unicode-math}---Unicode mathematics support for XeTeX and LuaTeX,'' \link{https://ctan.org/pkg/unicode-math}.} Users who want a text font for math with pdf\LaTeX\ should consider Jean-Fran\c cois Burnol's \textsf{mathastext} because \textsf{mathfont} is incompatible with pdf\TeX.\footnote{Jean-Fran\c cois Burnol, ``\textsf{mathastext}---Use the text font in maths mode,'' \link{https://ctan.org/pkg/mathastext}. In several previous versions of this documentation, I mischaracterized the approach of \textsf{mathastext} to \TeX's internal mathematics spacing. In fact, \textsf{mathastext} preserves and in some cases extends rules for space between various math-mode characters.} Finally, you will probably be better off using \textsf{fontspec} if your document does not contain any math.\footnote{Will Robertson and Khaled Hosny, ``\textsf{fontspec}---Advanced font selection in \XeLaTeX\ and Lua\LaTeX,'' \link{https://ctan.org/pkg/fontspec}.} The \textsf{fontspec} package is designed to load TrueType and OpenType fonts for text and provides a high-level interface for selecting OpenType font features. @@ -4825,7 +4878,7 @@ and \textsf{mathfont} sets the default font face for every character in those ke \begin{code} |\mathfont[lower=upright, upper=upright]{Times New Roman}| \end{code} -changes all Latin letters to upright Times New Roman. Once \textsf{mathfont} has set the default font for a keyword in Table~1, it will ignore any future instructions to do so and prints a warning to the terminal instead. +changes all Latin letters to upright Times New Roman. Once \textsf{mathfont} has set the default font for a keyword in Table~1, it will ignore any future instructions to change the font for that keyword again, and instead the package prints a warning message. \begin{figure}[t] @@ -4853,9 +4906,17 @@ If you want to change the font for both text and math, you should use |\setfont| It calls |\mathfont| without an optional argument---i.e.\ for the default keywords---on your \meta{font name} and sets your document's default text font to be the \meta{font name}. The command also defines the eight commands in Table~\ref{SetFont} using the \meta{font name} and the |\new| macros in the next section. Both |\mathfont| and |\setfont| should appear in the preamble only. -To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} For example adding ``|onum=true|'' tells \TeX\ to load your font with oldstyle numbering, assuming that feature is present in the font. You should separate different OpenType feature tags with a semi-colon. +To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} The syntax for specifying features depends on the font-loader: with the built-in font-loader, you should use the standard ``|+|\meta{tag}'' or ``|-|\meta{tag}'' syntax, and when using \textsf{fontspec} as the font-loader, you can use that package's high-level interface.\footnote{See the \textsf{fontspec} documentation for instructions on selecting OpenType features with \textsf{fontspec}.} For example, suppose you want math with oldstyle numbers. With the built-in font-loader, you should add ``|+onum|,'' or if using \textsf{fontspec}, you should add |Numbers=OldStyle| to your |\mathfont| command. So to load Adobe Garamond Pro with oldstyle numbering, you would say +\begin{code} +|\mathfont{Adobe Garamond Pro:+onum}| +\end{code} +for the built-in font-loader or +\begin{code} +|\mathfont{Adobe Garamond Pro:Numbers=OldStyle}| +\end{code} +if using \textsf{fontspec}. With the built-in font-loader, you should separate OpenType tags with semi-colons, and \textsf{fontspec} allows you to use commas. -Whenever you select a font, \textsf{mathfont} first checks whether you previously loaded \textsf{fontspec}, and if so, the package feeds your entire \meta{font name} argument to \textsf{fontspec}. (You can also say ``|fontspec|'' as the \meta{font name} to select the most recent font used by \textsf{fontspec}.) If you have not loaded \textsf{fontspec}, the package uses its own fontloader. I recommend letting \textsf{mathfont} handle font-loading because when using Lua\TeX, \textsf{mathfont} takes care to load fonts in such a way that full OpenType features are accessible in text and limited OpenType features are accessible in math.\footnote{The \textsf{luaotfload} package supports two main modes for loading fonts: |node| mode is the default setting, and it supports full OpenType features in text but no OpenType features in math. The |base| mode supports limited OpenType features, but the features will work for both text and math. When \textsf{mathfont} loads a font, it does so twice, once in |node| mode, which is primarily for setting the text font with \vrb\setfont, and once in |base| mode, which is for the package's other font declarations. This way you will be able to use OpenType features throughout your document. The package does not currently load fonts with HarfBuzz.} While it is also possible to do this in \textsf{fontspec}, it takes some doing. +Whenever you select a font, \textsf{mathfont} first checks whether your argument corresponds to a font family identifier in the \textsc{nfss}, and if it does, \textsf{mathfont} uses that font. Otherwise, the package uses loads the font, either through the built-in font-loader or with \textsf{fontspec}. Advanced users should know that when the engine is Lua\TeX, \textsf{mathfont} loads fonts twice. During the first loading, \textsf{mathfont} makes no specifications for the renderer, so the first version of the font will typically use node mode. During the second loading, \textsf{mathfont} specifies base mode. My intention is that the font face with unspecified renderer is for text and the font face with base-mode renderer is for math---using different loading options for text and math provides the greatest access to OpenType font features throughout your document.\footnote{The \textsf{luaotfload} package supports two main modes for loading fonts: |node| mode is the default setting, and it supports full OpenType features in text but no OpenType features in math. The |base| mode supports fewer OpenType features, but the font features work in both text and math. Other loading options such as HarfBuzz are similarly useful for text but provide no access to OpenType features in math.} The last five keywords in Table~\ref{Keywords} are a bit different. If you call |\mathfont| on a \meta{keyword} from the last five rows in Table~\ref{Keywords}, the package defines the macro @@ -4888,7 +4949,7 @@ Command & Series & Shape\\\midrule \section{Local Font Changes} -With \textsf{mathfont}, it is possible to create commands that locally change the font for math alphabet characters, i.e.\ those marked as alphabetic in Table~\ref{Keywords}. The eight commands in Table~\ref{MathAlpha} accept a \meta{control sequence} as their first mandatory argument and a \meta{font name} as the second, and they define the \meta{control sequence} to typeset any math alphabet characters in their argument into the \meta{font name}. For example, the macro |\newmathrm| looks like +With \textsf{mathfont}, it is possible to create commands that locally change the font for math alphabet characters, i.e.\ those marked as alphabetic in Table~\ref{Keywords}. The eight commands in Table~\ref{MathAlpha} accept a \meta{control sequence} as their first mandatory argument and a \meta{font name} as the second, and they define the \meta{control sequence} to typeset any math alphabet characters in their argument into the \meta{font name}. You can specify OpenType features as part of the \meta{font name} the same way as for |\mathfont|, described in the previous section. For example, the macro |\newmathrm| looks like \begin{code} |\newmathrm{|\meta{control sequence}|}{|\meta{font name}|}|. \end{code} @@ -4906,7 +4967,7 @@ Together these eight commands will provide tools for most local font changes, bu \begin{code} |\newmathfontcommand{|\meta{control sequence}|}{|\meta{font name}|}{|\meta{series}|}{|\meta{shape}|}|, \end{code} -where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name with |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. Then the series and shape values can correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from this section should appear in the preamble only. +where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name when you call |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. Then the series and shape values can correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from this section should appear in the preamble only. \section{Default Math Parameters} @@ -4942,7 +5003,7 @@ The \textsf{mathfont} package provides six user-level commands to change boundin \end{itemize} Writing an asterisk tells \textsf{mathfont} to use whatever value it has saved in memory, either the default value or the value from the most recent call to |\CharmLine| or |\CharmFile|. If you specify too few charm values, \textsf{mathfont} will raise an error, and if you provide too many, \textsf{mathfont} will silently ignore the extras. -\begin{figure}[b] +\begin{figure}[tb] \labelfig{Factors} \centerline{\bfseries Table \the\fig: Commands to Adjust Individual Characters\strut} \global\advance\fig by 1\relax @@ -4963,12 +5024,6 @@ For most applications, you can probably ignore charm information altogether, but tells \textsf{mathfont} to take the lower-case ``a'' (unicode encoding value of 97), increase the bounding box on the left side by 20\% of the glyph width, decrease the bounding box on the right side by 20\% of the glyph width, do nothing to the top accent, and shift the bottom accent right by 5\% of the glyph width. There is no general formula for what charm values to use for a given font! Rather, you will need to make a design choice based on what looks best, and if you regularly use a particular font, consider making a custom set of charm values and uploading it to \textsc{ctan}. Additionally, if you store your charm information in a file, you can read it in with |\CharmFile|. The argument of this command should be a file name, and \textsf{mathfont} reads the file and feeds each line individually to |\CharmLine|. -The commands in Table~\ref{Factors} adjust other aspects of the font as indicated. Each command accepts a single integer as an argument, and \textsf{mathfont} divides the input by 1000. With each macro, \textsf{mathfont} multiplies the quotient by some default length, so values greater than or less than 1000 mean ``scale up'' or ``scale down'' respectively. For example, -\begin{code} -|\RuleThicknessFactor{2000}| -\end{code} -doubles the thickness of the fraction rule and radical overbar relative to the default, which varies between fonts. Changing the |\RuleThicknessFactor| is useful for fonts with particularly heavy or light weight. The |\IntegralItalicFactor| is important for making limits better fit integral signs, and the |\SurdVerticalFactor| and |\SurdHorizontalFactor| commands are essential when the top of the surd glyph differs from the top of its bounding box. The six control sequences from this section should appear in the preamble only. - \begin{figure}[tb] \labelfig{Callbacks} @@ -4985,6 +5040,14 @@ Callback Name & What It Does By Default\\\midrule \end{tabularx} \end{figure} + +The commands in Table~\ref{Factors} adjust other aspects of the font as indicated. Each command accepts a single integer as an argument, and \textsf{mathfont} divides the input by 1000. With each macro, \textsf{mathfont} multiplies the quotient by some default length, so values greater than or less than 1000 mean ``scale up'' or ``scale down'' respectively. For example, +\begin{code} +|\RuleThicknessFactor{2000}| +\end{code} +doubles the thickness of the fraction rule and radical overbar relative to the default, which varies between fonts. Changing the |\RuleThicknessFactor| is useful for fonts with particularly heavy or light weight. The |\IntegralItalicFactor| is important for making limits better fit integral signs, and the |\SurdVerticalFactor| and |\SurdHorizontalFactor| commands are essential when the top of the surd glyph differs from the top of its bounding box. The six control sequences from this section should appear in the preamble only. + + Finally, advanced users who want to interact with the font adjustment process directly should use the six callbacks in Table~\ref{Callbacks}. When \textsf{luaotfload} loads a font, \textsf{mathfont} (1) always calls |mathfont.inspect_font| and (2) calls the other five callbacks in the order that they appear in Table~\ref{Callbacks} if the font object contains |nomath=true|. Functions added to these callbacks should accept a font object as a single argument and return nothing. Further, please be careful when loading functions in the |disable_nomath|, |add_math_constants|, and |fix_character_metrics| callbacks. If you add a function there, Lua\TeX\ will not carry out the default behavior associated with the callback, so do not mess with these three callbacks unless you are duplicating the default behavior or you really know what you're doing. Otherwise, you risk breaking the package. See |mathfont_code.pdf| for more information. @@ -5826,7 +5889,9 @@ A few characters appear multiple times in this list. When that happens, it means \end{document} % %<*equations> -\begin{multicols}{2} +\multicolsep=0pt\relax +\bigskip +\begin{multicols*}{2} Black-Scholes Equation \[ @@ -5835,27 +5900,37 @@ Black-Scholes Equation =rV-rS\frac{\partial V}{\partial X} \] +\vfill + Cardano's Formula/Cubic Formula \begin{align*} t_i&=\omega_i\sqrt[3]{-\frac q2+\sqrt{\frac{q^2}4+\frac{p^3}{27}}}\\ &\qquad\qquad{}+\omega_i^2\sqrt[3]{-\frac q2-\sqrt{\frac{q^2}4+\frac{p^3}{27}}} \end{align*} +\vfill + Einstein's Field Equation (General Relativity) \[ R_{\mu\nu}-\frac12Rg_{\mu\nu}+\Lambda g_{\mu\nu}=\frac{8\pi G}{c^4}T_{\mu\nu} \] +\vfill + First Isomorphism Theorem \[ \phi(X)\cong X/\ker(\phi) \] +\vfill + Gauss-Bonnet Formula \[ \int_MK\ dA+\int_{\partial M}k_g\ ds=2\pi\chi(M) \] +\vfill + Maxwell's Equations \begin{align*} \nabla\bullet\mathbf E&=\frac\rho{\epsilon_0}& @@ -5865,12 +5940,18 @@ Maxwell's Equations \epsilon_0\frac{\partial\mathbf E}{\partial t}\right) \end{align*} +\vfill + Michaelis-Menten Model +\bgroup +\belowdisplayskip=0pt\relax +\belowdisplayshortskip=0pt\relax \[ v=\frac{d[P]}{dt}=V\frac{[S]}{K_M+[S]} \] - - +\par\egroup +\hrule height 0pt +\columnbreak %% next column begins here @@ -5883,17 +5964,21 @@ Navier-Stokes Equation \rho\mathbf{g} \end{align*} +\vfill Quadratic Formula \[ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} \] +\vfill + Ramanujan's Approximation for $\Gamma$ \[ \Gamma(1+x)\approx\sqrt\pi\,x^xe^{-x}\,\sqrt[6]{8x^3+4x^2+x+\frac1{30}} \] +\vfill Residue Theorem \[ @@ -5901,6 +5986,8 @@ Residue Theorem \] +\vfill + Riemann Zeta Function \begin{align*} \zeta(z)&=\sum_{i=1}^\infty\frac1{z^i} @@ -5908,17 +5995,26 @@ Riemann Zeta Function &=2^z\pi^{z-1}\sin\left(\frac{\pi z}2\right)\,\Gamma(1-z)\,\zeta(1-z) \end{align*} + +\vfill + Schrodinger Equation \[ i\hbar\frac d{dt}|\Psi(t)\fakerangle=\hat H|\Psi(t)\fakerangle \] +\vfill + + Lorentz Transformation (Special Relativity) +\belowdisplayskip=0pt\relax +\belowdisplayshortskip=0pt\relax \[ t'=\left(t-\frac{vx}{c^2}\right)\frac1{\sqrt{1-\frac{v^2}{c^2}}} \] +\hrule height 0pt -\end{multicols} +\end{multicols*} % %<*cormorant> \ifx\directlua\undefined @@ -5981,7 +6077,7 @@ This is Cormorant with Crimson for Greek characters and Bona Nova for diacritics \DeclareMathOperator{\Res}{Res} \usepackage{mathfont} \mathfont[radical]{Crimson} -\setfont{Kelvinch} +\setfont{Kelvinch:-clig} \IntegralItalicFactor{500} \SurdHorizontalFactor{900} \parindent=0pt\relax @@ -6091,6 +6187,9 @@ This is Roboto with Overpass for the radical signs and STIXGeneral for the tenso {<->"Typey McTypeface:\M@otf@features;embolden=6;mode=base"}{} \DeclareFontShape{TU}{Typey-base}{\bfdefault}{\itdefault} {<->"Typey McTypeface/I:\M@otf@features;embolden=6;mode=base"}{} + +%% And link the Typey-base font family to the Typey family +\expandafter\def\csname Typey-base\endcsname{Typey-base} \makeatother \setfont{Typey} @@ -6123,8 +6222,8 @@ This is Typey McTypeface with Crimson for the radical signs and STIXGeneral for \makeatletter % package date and edition -\def\packagedate{August 2023} -\def\packageversion{2.2b} +\def\packagedate{September 2023} +\def\packageversion{2.3} % header and footer commands diff --git a/macros/latex/contrib/mathfont/mathfont_code.pdf b/macros/latex/contrib/mathfont/mathfont_code.pdf index 37c581a0cc..fb3a867c4d 100644 Binary files a/macros/latex/contrib/mathfont/mathfont_code.pdf and b/macros/latex/contrib/mathfont/mathfont_code.pdf differ diff --git a/macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf b/macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf index 3809731b4b..894f83bab1 100644 Binary files a/macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf and b/macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf differ diff --git a/macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf b/macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf index f8aa3e4af3..68f3336d17 100644 Binary files a/macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf and b/macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf differ diff --git a/macros/latex/contrib/mathfont/mathfont_example_roboto.pdf b/macros/latex/contrib/mathfont/mathfont_example_roboto.pdf index 28dd9a4b25..a72b4d9bc1 100644 Binary files a/macros/latex/contrib/mathfont/mathfont_example_roboto.pdf and b/macros/latex/contrib/mathfont/mathfont_example_roboto.pdf differ diff --git a/macros/latex/contrib/mathfont/mathfont_example_typey.pdf b/macros/latex/contrib/mathfont/mathfont_example_typey.pdf index 2cdcdf05c1..7d7f86da75 100644 Binary files a/macros/latex/contrib/mathfont/mathfont_example_typey.pdf and b/macros/latex/contrib/mathfont/mathfont_example_typey.pdf differ diff --git a/macros/latex/contrib/mathfont/mathfont_symbol_list.pdf b/macros/latex/contrib/mathfont/mathfont_symbol_list.pdf index e643cb1624..4eff1c516f 100644 Binary files a/macros/latex/contrib/mathfont/mathfont_symbol_list.pdf and b/macros/latex/contrib/mathfont/mathfont_symbol_list.pdf differ diff --git a/macros/latex/contrib/mathfont/mathfont_user_guide.pdf b/macros/latex/contrib/mathfont/mathfont_user_guide.pdf index 43787de754..9700a1faef 100644 Binary files a/macros/latex/contrib/mathfont/mathfont_user_guide.pdf and b/macros/latex/contrib/mathfont/mathfont_user_guide.pdf differ diff --git a/macros/latex/contrib/newpax/README.md b/macros/latex/contrib/newpax/README.md index 5023423287..16512aeda4 100644 --- a/macros/latex/contrib/newpax/README.md +++ b/macros/latex/contrib/newpax/README.md @@ -2,14 +2,13 @@ This package allows to insert PDF in a document while preserving internal and external links. With lualatex it works in the document -directly, other engines require to run a compilaton with lualatex or to call +directly, other engines require to run a compilation with lualatex or to call a lua script first. The package is based on and uses code from [pax](https://ctan.org/pkg/pax) by Heiko Oberdiek. -Packageversion: 0.53 -Packagedate: 2021-02-26 -Author: Ulrike Fischer +Packageversion: 0.54 +Packagedate: 2023-09-11 Author: Ulrike Fischer ## License The newpax package may be modified and distributed under the terms and conditions of the diff --git a/macros/latex/contrib/newpax/doc-input1.pdf b/macros/latex/contrib/newpax/doc-input1.pdf index 49f91f65a5..e91cf726d2 100644 --- a/macros/latex/contrib/newpax/doc-input1.pdf +++ b/macros/latex/contrib/newpax/doc-input1.pdf @@ -13,263 +13,512 @@ endobj << /Type /Action /S /GoToR /F 13 0 R /D [0/Fit] >> endobj 17 0 obj -<< /Length 4811 >> +<< /Length 4809 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<007400480042004D00460069003200740069>]TJ -1 0 0 1 148.712 695.17 Tm [<0052>]TJ +1 0 0 1 148.712 657.235 Tm [<007400480042004D00460069003200740069>]TJ +1 0 0 1 148.712 645.28 Tm [<0052>]TJ /F16 9.96264 Tf -1 0 0 1 157.011 695.17 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 157.011 645.28 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 683.215 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ -1 0 0 1 133.768 671.26 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ -1 0 0 1 133.768 659.304 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ -1 0 0 1 133.768 647.349 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ -1 0 0 1 133.768 635.394 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ -1 0 0 1 133.768 623.439 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ -1 0 0 1 133.768 611.484 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ -1 0 0 1 133.768 599.529 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ -1 0 0 1 133.768 587.573 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ -1 0 0 1 133.768 575.618 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ -1 0 0 1 133.768 563.663 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ -1 0 0 1 148.712 551.708 Tm [<0054>-28<002F0037>]TJ +1 0 0 1 148.712 633.325 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ +1 0 0 1 133.768 621.37 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ +1 0 0 1 133.768 609.415 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ +1 0 0 1 133.768 597.46 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ +1 0 0 1 133.768 585.504 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ +1 0 0 1 133.768 573.549 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ +1 0 0 1 133.768 561.594 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ +1 0 0 1 133.768 549.639 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ +1 0 0 1 133.768 537.684 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ +1 0 0 1 133.768 525.729 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ +1 0 0 1 133.768 513.773 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ +1 0 0 1 148.712 501.818 Tm [<0054>-28<002F0037>]TJ /F28 14.3462 Tf -1 0 0 1 133.768 518.747 Tm [<0052>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 490.938 Tm [<006B>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 463.129 Tm [<006A>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 468.857 Tm [<0052>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 441.048 Tm [<006B>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 413.239 Tm [<006A>-1000<001C0023>-31<002B>]TJ /F15 9.96264 Tf -1 0 0 1 133.768 441.298 Tm [<007D00480032>]TJ -1 0 0 1 303.133 139.255 Tm [<0052>]TJ +1 0 0 1 133.768 391.408 Tm [<007D00480032>]TJ +1 0 0 1 303.133 89.365 Tm [<0052>]TJ ET endstream endobj 5 0 obj -<< /Type /Page /Contents 17 0 R /Resources 16 0 R /MediaBox [ 0 0 595.276 841.89 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 36 0 R /Annots 37 0 R >> +<< /Type /Page /Contents 17 0 R /Resources 16 0 R /MediaBox [ 0 0 612 792 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 36 0 R /Annots 37 0 R >> endobj 37 0 obj [ 6 0 R 7 0 R 8 0 R 9 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 12 0 R 15 0 R ] endobj 6 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 152.976 706.019 188.742 715.035 ]/A << /S /GoTo /D (section.2) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 152.976 656.13 188.742 665.146 ]/A << /S /GoTo /D (section.2) >> >> endobj 7 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 147.716 691.892 154.69 703.08 ]/A << /S /GoTo /D (section.1) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 147.716 642.002 154.69 653.191 ]/A << /S /GoTo /D (section.1) >> >> endobj 8 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 156.015 691.892 310.187 703.08 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 156.015 642.002 310.187 653.191 ] >> endobj 9 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 147.716 680.176 478.476 691.344 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 147.716 630.286 478.476 641.455 ] >> endobj 22 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 668.211 478.476 679.28 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 619.318 477.479 628.394 ] >> endobj 23 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 656.256 478.476 667.324 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 607.362 477.479 616.438 ] >> endobj 24 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 644.301 478.476 655.369 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 595.407 477.479 604.483 ] >> endobj 25 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 632.356 478.476 643.524 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 583.462 477.479 592.638 ] >> endobj 26 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 620.4 478.476 631.459 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 571.507 477.479 580.573 ] >> endobj 27 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 608.445 478.476 619.504 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 559.552 477.479 568.618 ] >> endobj 28 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 596.48 478.476 607.549 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 547.587 477.479 556.663 ] >> endobj 29 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 584.644 478.476 595.593 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 535.751 477.479 544.707 ] >> endobj 30 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 572.58 478.476 583.638 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 523.686 477.479 532.752 ] >> endobj 31 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 560.615 396.035 571.683 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 511.721 395.039 520.797 ] >> endobj 12 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /BS <> /A 11 0 R /Rect [ 147.716 548.779 164.115 559.728 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /BS <> /A 11 0 R /Rect [ 147.716 498.889 164.115 509.838 ] >> endobj 15 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /BS <> /A 14 0 R /Rect [ 132.772 440.192 147.497 449.318 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /BS <> /A 14 0 R /Rect [ 132.772 390.302 147.497 399.428 ] >> endobj 18 0 obj -<< /D [ 5 0 R /XYZ 132.768 754.95 null ] >> +<< /D [ 5 0 R /XYZ 132.768 705.06 null ] >> endobj 19 0 obj -<< /D [ 5 0 R /XYZ 133.768 717.088 null ] >> +<< /D [ 5 0 R /XYZ 133.768 667.198 null ] >> endobj 32 0 obj -<< /D [ 5 0 R /XYZ 133.768 534.747 null ] >> +<< /D [ 5 0 R /XYZ 133.768 484.857 null ] >> endobj 34 0 obj -<< /D [ 5 0 R /XYZ 133.768 508.785 null ] >> +<< /D [ 5 0 R /XYZ 133.768 458.895 null ] >> endobj 35 0 obj -<< /D [ 5 0 R /XYZ 133.768 480.976 null ] >> +<< /D [ 5 0 R /XYZ 133.768 431.086 null ] >> endobj 16 0 obj << /ExtGState 1 0 R /Font << /F15 20 0 R /F16 21 0 R /F28 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 44 0 obj -<< /Length 303 >> +<< /Length 302 >> stream /opacity1 gs BT /F16 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 148.712 657.235 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 695.17 Tm [<0052>-1333<006B>-1333<006A>]TJ -1 0 0 1 303.133 139.255 Tm [<006B>]TJ +1 0 0 1 148.712 645.28 Tm [<0052>-1333<006B>-1333<006A>]TJ +1 0 0 1 303.133 89.365 Tm [<006B>]TJ ET endstream endobj 43 0 obj -<< /Type /Page /Contents 44 0 R /Resources 42 0 R /MediaBox [ 0 0 595.276 841.89 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 36 0 R /Annots 46 0 R >> +<< /Type /Page /Contents 44 0 R /Resources 42 0 R /MediaBox [ 0 0 612 792 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 36 0 R /Annots 46 0 R >> endobj 46 0 obj [ 38 0 R 39 0 R 40 0 R 41 0 R ] endobj 38 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 147.716 703.847 301.888 715.035 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 147.716 653.958 301.888 665.146 ] >> endobj 39 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 147.716 693.955 154.69 702.801 ]/A << /S /GoTo /D (section.1) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 147.716 644.065 154.69 652.912 ]/A << /S /GoTo /D (section.1) >> >> endobj 40 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 165.978 693.955 172.951 702.801 ]/A << /S /GoTo /D (section.2) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 165.978 644.065 172.951 652.912 ]/A << /S /GoTo /D (section.2) >> >> endobj 41 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 184.239 693.955 191.213 702.801 ]/A << /S /GoTo /D (section.3) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 184.239 644.065 191.213 652.912 ]/A << /S /GoTo /D (section.3) >> >> endobj 45 0 obj -<< /D [ 43 0 R /XYZ 132.768 754.95 null ] >> +<< /D [ 43 0 R /XYZ 132.768 705.06 null ] >> endobj 42 0 obj << /ExtGState 1 0 R /Font << /F16 21 0 R /F15 20 0 R >> /ProcSet [ /PDF /Text ] >> endobj 50 0 obj -<< /Length 173 >> +<< /Length 172 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<003A0051>-333<00690051>-333<007D006000620069>-333<0054001C003B0032>]TJ -1 0 0 1 303.133 139.255 Tm [<006A>]TJ +1 0 0 1 148.712 657.235 Tm [<003A0051>-333<00690051>-333<007D006000620069>-333<0054001C003B0032>]TJ +1 0 0 1 303.133 89.365 Tm [<006A>]TJ ET endstream endobj 49 0 obj -<< /Type /Page /Contents 50 0 R /Resources 48 0 R /MediaBox [ 0 0 595.276 841.89 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 36 0 R /Annots 52 0 R >> +<< /Type /Page /Contents 50 0 R /Resources 48 0 R /MediaBox [ 0 0 612 792 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 36 0 R /Annots 52 0 R >> endobj 52 0 obj [ 47 0 R ] endobj 47 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.668236 0.675292 0.4] /BS <> /A <> /Rect [ 147.716 704.077 218.491 715.145 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.668236 0.675292 0.4] /BS <> /A <> /Rect [ 147.716 654.187 218.491 665.255 ] >> endobj 51 0 obj -<< /D [ 49 0 R /XYZ 132.768 754.95 null ] >> +<< /D [ 49 0 R /XYZ 132.768 705.06 null ] >> endobj 48 0 obj << /ExtGState 1 0 R /Font << /F15 20 0 R >> /ProcSet [ /PDF /Text ] >> endobj -55 0 obj -<< /Length 123 >> +53 0 obj +<< /Type /Metadata /Subtype /XML /Length 11595 >> +stream + + + + + + + + + XMP Media Management Schema + xmpMM + http://ns.adobe.com/xap/1.0/mm/ + + + + OriginalDocumentID + URI + internal + The common identifier for all versions and renditions of a document. + + + + + + PDF/A Identification Schema + pdfaid + http://www.aiim.org/pdfa/ns/id/ + + + + year + Integer + internal + Year of standard + + + + + + PDF/UA Universal Accessibility Schema + pdfuaid + http://www.aiim.org/pdfua/ns/id/ + + + + part + Integer + internal + Part of ISO 14289 standard + + + rev + Integer + internal + Revision of ISO 14289 standard + + + + + + PDF/X ID Schema + pdfxid + http://www.npes.org/pdfx/ns/id/ + + + + GTS_PDFXVersion + Text + internal + ID of PDF/X standard + + + + + + PRISM Basic Metadata + prism + http://prismstandard.org/namespaces/basic/3.0/ + + + + complianceProfile + Text + internal + PRISM specification compliance profile to which this document adheres + + + publicationName + Text + external + Publication name + + + aggregationType + Text + external + Publication type + + + bookEdition + Text + external + Edition of the book in which the document was published + + + volume + Text + external + Publication volume number + + + number + Text + external + Publication issue number within a volume + + + pageRange + Text + external + Page range for the document within the print version of its publication + + + issn + Text + external + ISSN for the printed publication in which the document was published + + + eIssn + Text + external + ISSN for the electronic publication in which the document was published + + + isbn + Text + external + ISBN for the publication in which the document was published + + + doi + Text + external + Digital Object Identifier for the document + + + url + URL + external + URL at which the document can be found + + + byteCount + Integer + internal + Approximate file size in octets + + + pageCount + Integer + internal + Number of pages in the print version of the document + + + subtitle + Text + external + Document's subtitle + + + + + + + luahbtex-1.17.0 + 1.5 + + + Author + + + + + title + + + + + Text + + + + + en-US + + + + + 2023-09-11T09:45:32+02:00 + + + application/pdf + doc-input1.tex + creator + 2023-09-11T09:45:32+02:00 + 2023-09-11T09:45:32+02:00 + 2023-09-11T09:45:32+02:00 + uuid:1514a2cc-94f2-4cd2-8421-7b05d4a0d0e4 + uuid:4ab49bf9-52f4-4808-80ab-b09816843af0 + three + 4 + + + + + + + + + + + + + + +endstream +endobj +56 0 obj +<< /Length 122 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<00230048006D0023>]TJ -1 0 0 1 303.133 139.255 Tm [<0039>]TJ +1 0 0 1 148.712 657.235 Tm [<00230048006D0023>]TJ +1 0 0 1 303.133 89.365 Tm [<0039>]TJ ET endstream endobj -54 0 obj -<< /Type /Page /Contents 55 0 R /Resources 53 0 R /MediaBox [ 0 0 595.276 841.89 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 36 0 R >> +55 0 obj +<< /Type /Page /Contents 56 0 R /Resources 54 0 R /MediaBox [ 0 0 612 792 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 36 0 R >> endobj -56 0 obj -<< /D [ 54 0 R /XYZ 132.768 754.95 null ] >> +57 0 obj +<< /D [ 55 0 R /XYZ 132.768 705.06 null ] >> endobj -53 0 obj +54 0 obj << /ExtGState 1 0 R /Font << /F15 20 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1 0 obj << /opacity1 <> >> endobj -57 0 obj +58 0 obj << /S /GoTo /D (section.1) >> endobj -59 0 obj +60 0 obj (\376\377\000a\000b\000c) endobj -60 0 obj +61 0 obj << /S /GoTo /D (section.2) >> endobj -62 0 obj +63 0 obj (\376\377\000a\000b\000c) endobj -63 0 obj +64 0 obj << /S /GoTo /D (section.3) >> endobj -65 0 obj +66 0 obj (\376\377\000a\000b\000c) endobj -66 0 obj +67 0 obj [ 28 [ 547 ] 35 [ 625 ] 43 [ 500 ] 82 [ 563 ] 106 [ 563 563 ] ] endobj -68 0 obj +69 0 obj << /Length 14 >> stream  0 endstream endobj -69 0 obj +70 0 obj << /Subtype /CIDFontType0C /Length 1193 >> stream FTRWGM+LMRoman12-BoldG ! C  p)q "Y $ %FTRWGM+LMRoman12-Bold2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman12-BoldLMRoman12AdobeIdentity#+Rjk^9pb}LlB!S @@ -280,10 +529,10 @@ stream   endstream endobj -67 0 obj -<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 69 0 R /CIDSet 68 0 R >> +68 0 obj +<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 70 0 R /CIDSet 69 0 R >> endobj -70 0 obj +71 0 obj << /Length 747 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -326,21 +575,21 @@ end endstream endobj 33 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 71 0 R ] /ToUnicode 70 0 R >> -endobj -71 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 67 0 R /W 66 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 72 0 R ] /ToUnicode 71 0 R >> endobj 72 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 68 0 R /W 67 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +endobj +73 0 obj [ 28 [ 525 ] 43 [ 525 525 ] 50 [ 525 ] 59 [ 525 ] 63 [ 525 525 ] 68 [ 525 ] 72 [ 525 ] 81 [ 525 ] 84 [ 525 ] 88 [ 525 ] 96 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 114 [ 525 ] 116 [ 525 ] ] endobj -74 0 obj +75 0 obj << /Length 15 >> stream  H@( endstream endobj -75 0 obj +76 0 obj << /Subtype /CIDFontType0C /Length 2420 >> stream OGJFWH+LMMono10-RegularH!"   ;  Wo " & $ % @@ -350,10 +599,10 @@ stream  endstream endobj -73 0 obj -<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 75 0 R /CIDSet 74 0 R >> +74 0 obj +<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 76 0 R /CIDSet 75 0 R >> endobj -76 0 obj +77 0 obj << /Length 926 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -408,21 +657,21 @@ end endstream endobj 21 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 77 0 R ] /ToUnicode 76 0 R >> -endobj -77 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 73 0 R /W 72 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 78 0 R ] /ToUnicode 77 0 R >> endobj 78 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 74 0 R /W 73 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +endobj +79 0 obj [ 27 [ 750 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 785 500 ] 62 [ 750 556 333 361 278 ] 68 [ 306 ] 70 [ 528 ] 72 [ 278 ] 75 [ 833 750 556 ] 81 [ 500 500 ] 84 [ 556 ] 88 [ 278 ] 96 [ 392 ] 98 [ 394 278 ] 104 [ 722 389 500 500 ] 109 [ 556 ] 112 [ 528 ] 114 [ 722 ] 116 [ 528 ] 118 [ 528 ] 125 [ 556 ] ] endobj -80 0 obj +81 0 obj << /Length 16 >> stream !sh endstream endobj -81 0 obj +82 0 obj << /Subtype /CIDFontType0C /Length 5208 >> stream ZNAMJV+LMRoman10-RegularF!"  &  B " $ % ZNAMJV+LMRoman10-Regular2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman10-RegularLMRoman10NormalAdobeIdentity#+-/279:;>?@ABDFHKLMQRTX`bchijkmprtv}((w  sZH[pzP x @@ -435,10 +684,10 @@ O endstream endobj -79 0 obj -<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 81 0 R /CIDSet 80 0 R >> +80 0 obj +<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 82 0 R /CIDSet 81 0 R >> endobj -82 0 obj +83 0 obj << /Length 1229 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -514,131 +763,132 @@ end endstream endobj 20 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 83 0 R ] /ToUnicode 82 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 84 0 R ] /ToUnicode 83 0 R >> endobj -83 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 79 0 R /W 78 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +84 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 80 0 R /W 79 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj 36 0 obj -<< /Type /Pages /Count 4 /Kids [ 5 0 R 43 0 R 49 0 R 54 0 R ] >> -endobj -84 0 obj -<< /Type /Outlines /First 58 0 R /Last 64 0 R /Count 3 >> +<< /Type /Pages /Count 4 /Kids [ 5 0 R 43 0 R 49 0 R 55 0 R ] >> endobj -64 0 obj -<< /Title 65 0 R /A 63 0 R /Parent 84 0 R /Prev 61 0 R >> +85 0 obj +<< /Type /Outlines /First 59 0 R /Last 65 0 R /Count 3 >> endobj -61 0 obj -<< /Title 62 0 R /A 60 0 R /Parent 84 0 R /Prev 58 0 R /Next 64 0 R >> +65 0 obj +<< /Title 66 0 R /A 64 0 R /Parent 85 0 R /Prev 62 0 R >> endobj -58 0 obj -<< /Title 59 0 R /A 57 0 R /Parent 84 0 R /Next 61 0 R >> +62 0 obj +<< /Title 63 0 R /A 61 0 R /Parent 85 0 R /Prev 59 0 R /Next 65 0 R >> endobj -85 0 obj -<< /Names [ (Doc-Start) 19 0 R (page.1) 18 0 R (page.2) 45 0 R (page.3) 51 0 R (page.4) 56 0 R (section.1) 32 0 R (section.2) 34 0 R (section.3) 35 0 R ] /Limits [ (Doc-Start) (section.3) ] >> +59 0 obj +<< /Title 60 0 R /A 58 0 R /Parent 85 0 R /Next 62 0 R >> endobj 86 0 obj -<< /Dests 85 0 R >> +<< /Names [ (Doc-Start) 19 0 R (page.1) 18 0 R (page.2) 45 0 R (page.3) 51 0 R (page.4) 57 0 R (section.1) 32 0 R (section.2) 34 0 R (section.3) 35 0 R ] /Limits [ (Doc-Start) (section.3) ] >> endobj 87 0 obj -<< /Type /Catalog /Pages 36 0 R /Outlines 84 0 R /Names 86 0 R /Lang (en-US)/PageMode /UseOutlines/OpenAction [5 0 R /Fit]/PageLabels <>]>> >> +<< /Dests 86 0 R >> endobj 88 0 obj -<< /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203759+02'00') /ModDate (D:20220915203759+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> +<< /Type /Catalog /Pages 36 0 R /Outlines 85 0 R /Names 87 0 R /Lang (en-US)/PageMode /UseOutlines/OpenAction [5 0 R /Fit]/PageLabels <>]>>/Metadata 53 0 R >> +endobj +89 0 obj +<< /Producer (luahbtex-1.17.0)/Creator /Author /Title /CreationDate (D:20230911094532+02'00')/ModDate (D:20230911094532+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref -0 89 +0 90 0000000002 65535 f -0000012944 00000 n +0000024602 00000 n 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f -0000005793 00000 n -0000006098 00000 n -0000006289 00000 n -0000006478 00000 n -0000006704 00000 n +0000005791 00000 n +0000006089 00000 n +0000006279 00000 n +0000006469 00000 n +0000006696 00000 n 0000000020 00000 n 0000000529 00000 n -0000009338 00000 n +0000009335 00000 n 0000000601 00000 n 0000000854 00000 n -0000009514 00000 n -0000009994 00000 n +0000009511 00000 n +0000009991 00000 n 0000000922 00000 n -0000009690 00000 n -0000009750 00000 n -0000027689 00000 n -0000020086 00000 n -0000006943 00000 n -0000007182 00000 n -0000007422 00000 n -0000007662 00000 n -0000007902 00000 n -0000008140 00000 n -0000008380 00000 n -0000008619 00000 n -0000008859 00000 n -0000009098 00000 n -0000009811 00000 n -0000015730 00000 n -0000009872 00000 n -0000009933 00000 n -0000028043 00000 n -0000005970 00000 n -0000010694 00000 n -0000010922 00000 n -0000011113 00000 n -0000011305 00000 n -0000011558 00000 n -0000010468 00000 n -0000010105 00000 n -0000011497 00000 n -0000010646 00000 n -0000012095 00000 n -0000012363 00000 n -0000011890 00000 n -0000011657 00000 n -0000012302 00000 n -0000012068 00000 n -0000012857 00000 n -0000012633 00000 n -0000012450 00000 n -0000012796 00000 n -0000012991 00000 n -0000028360 00000 n -0000013037 00000 n -0000013080 00000 n -0000028273 00000 n -0000013126 00000 n -0000013169 00000 n -0000028199 00000 n -0000013215 00000 n -0000013258 00000 n -0000014689 00000 n -0000013338 00000 n -0000013412 00000 n -0000014923 00000 n -0000015881 00000 n -0000016078 00000 n -0000018865 00000 n -0000016286 00000 n -0000016361 00000 n -0000019100 00000 n -0000020239 00000 n -0000020438 00000 n -0000026164 00000 n -0000020796 00000 n -0000020872 00000 n -0000026400 00000 n -0000027843 00000 n -0000028125 00000 n -0000028434 00000 n -0000028643 00000 n -0000028679 00000 n -0000028853 00000 n +0000009687 00000 n +0000009747 00000 n +0000039347 00000 n +0000031744 00000 n +0000006935 00000 n +0000007175 00000 n +0000007415 00000 n +0000007655 00000 n +0000007895 00000 n +0000008135 00000 n +0000008375 00000 n +0000008615 00000 n +0000008855 00000 n +0000009095 00000 n +0000009808 00000 n +0000027388 00000 n +0000009869 00000 n +0000009930 00000 n +0000039701 00000 n +0000005961 00000 n +0000010683 00000 n +0000010911 00000 n +0000011102 00000 n +0000011294 00000 n +0000011547 00000 n +0000010464 00000 n +0000010102 00000 n +0000011486 00000 n +0000010635 00000 n +0000012076 00000 n +0000012344 00000 n +0000011878 00000 n +0000011646 00000 n +0000012283 00000 n +0000012049 00000 n +0000012431 00000 n +0000024515 00000 n +0000024298 00000 n +0000024116 00000 n +0000024454 00000 n +0000024649 00000 n +0000040018 00000 n +0000024695 00000 n +0000024738 00000 n +0000039931 00000 n +0000024784 00000 n +0000024827 00000 n +0000039857 00000 n +0000024873 00000 n +0000024916 00000 n +0000026347 00000 n +0000024996 00000 n +0000025070 00000 n +0000026581 00000 n +0000027539 00000 n +0000027736 00000 n +0000030523 00000 n +0000027944 00000 n +0000028019 00000 n +0000030758 00000 n +0000031897 00000 n +0000032096 00000 n +0000037822 00000 n +0000032454 00000 n +0000032530 00000 n +0000038058 00000 n +0000039501 00000 n +0000039783 00000 n +0000040092 00000 n +0000040301 00000 n +0000040337 00000 n +0000040527 00000 n trailer -<< /Size 89 /Root 87 0 R /Info 88 0 R /ID [ <886964798E7A068E2C2C4A354A412824> <886964798E7A068E2C2C4A354A412824> ] >> +<< /Size 90 /Root 88 0 R /Info 89 0 R /ID [ ] >> startxref -29175 +40848 %%EOF diff --git a/macros/latex/contrib/newpax/doc-input2.pdf b/macros/latex/contrib/newpax/doc-input2.pdf index dcac6b1f3e..3f1a700642 100644 --- a/macros/latex/contrib/newpax/doc-input2.pdf +++ b/macros/latex/contrib/newpax/doc-input2.pdf @@ -13,259 +13,508 @@ endobj << /Type /Action /S /GoToR /F 12 0 R /D [0/Fit] >> endobj 16 0 obj -<< /Length 4742 >> +<< /Length 4740 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<0052>]TJ +1 0 0 1 148.712 657.235 Tm [<0052>]TJ /F16 9.96264 Tf -1 0 0 1 157.011 707.125 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 157.011 657.235 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 695.17 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ -1 0 0 1 133.768 683.215 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ -1 0 0 1 133.768 671.26 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ -1 0 0 1 133.768 659.304 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ -1 0 0 1 133.768 647.349 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ -1 0 0 1 133.768 635.394 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ -1 0 0 1 133.768 623.439 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ -1 0 0 1 133.768 611.484 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ -1 0 0 1 133.768 599.529 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ -1 0 0 1 133.768 587.573 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ -1 0 0 1 133.768 575.618 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ -1 0 0 1 148.712 563.663 Tm [<0054>-28<002F0037>]TJ +1 0 0 1 148.712 645.28 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ +1 0 0 1 133.768 633.325 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ +1 0 0 1 133.768 621.37 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ +1 0 0 1 133.768 609.415 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ +1 0 0 1 133.768 597.46 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ +1 0 0 1 133.768 585.504 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ +1 0 0 1 133.768 573.549 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ +1 0 0 1 133.768 561.594 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ +1 0 0 1 133.768 549.639 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ +1 0 0 1 133.768 537.684 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ +1 0 0 1 133.768 525.729 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ +1 0 0 1 148.712 513.773 Tm [<0054>-28<002F0037>]TJ /F28 14.3462 Tf -1 0 0 1 133.768 530.702 Tm [<0052>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 502.893 Tm [<006B>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 475.084 Tm [<006A>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 480.812 Tm [<0052>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 453.003 Tm [<006B>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 425.195 Tm [<006A>-1000<001C0023>-31<002B>]TJ /F15 9.96264 Tf -1 0 0 1 133.768 453.253 Tm [<007D00480032>]TJ -1 0 0 1 303.133 139.255 Tm [<0052>]TJ +1 0 0 1 133.768 403.363 Tm [<007D00480032>]TJ +1 0 0 1 303.133 89.365 Tm [<0052>]TJ ET endstream endobj 5 0 obj -<< /Type /Page /Contents 16 0 R /Resources 15 0 R /MediaBox [ 0 0 595.276 841.89 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 35 0 R /Annots 36 0 R >> +<< /Type /Page /Contents 16 0 R /Resources 15 0 R /MediaBox [ 0 0 612 792 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 35 0 R /Annots 36 0 R >> endobj 36 0 obj [ 6 0 R 7 0 R 8 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 11 0 R 14 0 R ] endobj 6 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 147.716 703.847 154.69 715.035 ]/A << /S /GoTo /D (section.1) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 147.716 653.958 154.69 665.146 ]/A << /S /GoTo /D (section.1) >> >> endobj 7 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 156.015 703.847 310.187 715.035 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 156.015 653.958 310.187 665.146 ] >> endobj 8 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 147.716 692.131 478.476 703.299 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 147.716 642.242 478.476 653.41 ] >> endobj 21 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 680.166 478.476 691.235 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 631.273 477.479 640.349 ] >> endobj 22 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 668.211 478.476 679.28 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 619.318 477.479 628.394 ] >> endobj 23 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 656.256 478.476 667.324 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 607.362 477.479 616.438 ] >> endobj 24 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 644.311 478.476 655.479 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 595.417 477.479 604.593 ] >> endobj 25 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 632.356 478.476 643.414 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 583.462 477.479 592.528 ] >> endobj 26 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 620.4 478.476 631.459 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 571.507 477.479 580.573 ] >> endobj 27 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 608.435 478.476 619.504 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 559.542 477.479 568.618 ] >> endobj 28 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 596.6 478.476 607.549 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 547.706 477.479 556.663 ] >> endobj 29 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 584.535 478.476 595.593 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 535.641 477.479 544.707 ] >> endobj 30 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 132.772 572.57 396.035 583.638 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 133.768 523.676 395.039 532.752 ] >> endobj 11 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /BS <> /A 10 0 R /Rect [ 147.716 560.734 164.115 571.683 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /BS <> /A 10 0 R /Rect [ 147.716 510.844 164.115 521.793 ] >> endobj 14 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /BS <> /A 13 0 R /Rect [ 132.772 452.147 147.497 461.273 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /BS <> /A 13 0 R /Rect [ 132.772 402.258 147.497 411.383 ] >> endobj 17 0 obj -<< /D [ 5 0 R /XYZ 132.768 754.95 null ] >> +<< /D [ 5 0 R /XYZ 132.768 705.06 null ] >> endobj 18 0 obj -<< /D [ 5 0 R /XYZ 133.768 717.088 null ] >> +<< /D [ 5 0 R /XYZ 133.768 667.198 null ] >> endobj 31 0 obj -<< /D [ 5 0 R /XYZ 133.768 546.702 null ] >> +<< /D [ 5 0 R /XYZ 133.768 496.812 null ] >> endobj 33 0 obj -<< /D [ 5 0 R /XYZ 133.768 520.74 null ] >> +<< /D [ 5 0 R /XYZ 133.768 470.85 null ] >> endobj 34 0 obj -<< /D [ 5 0 R /XYZ 133.768 492.931 null ] >> +<< /D [ 5 0 R /XYZ 133.768 443.041 null ] >> endobj 15 0 obj << /ExtGState 1 0 R /Font << /F15 19 0 R /F16 20 0 R /F28 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 43 0 obj -<< /Length 303 >> +<< /Length 302 >> stream /opacity1 gs BT /F16 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 148.712 657.235 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 695.17 Tm [<0052>-1333<006B>-1333<006A>]TJ -1 0 0 1 303.133 139.255 Tm [<006B>]TJ +1 0 0 1 148.712 645.28 Tm [<0052>-1333<006B>-1333<006A>]TJ +1 0 0 1 303.133 89.365 Tm [<006B>]TJ ET endstream endobj 42 0 obj -<< /Type /Page /Contents 43 0 R /Resources 41 0 R /MediaBox [ 0 0 595.276 841.89 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 35 0 R /Annots 45 0 R >> +<< /Type /Page /Contents 43 0 R /Resources 41 0 R /MediaBox [ 0 0 612 792 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 35 0 R /Annots 45 0 R >> endobj 45 0 obj [ 37 0 R 38 0 R 39 0 R 40 0 R ] endobj 37 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 147.716 703.847 301.888 715.035 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /BS <> /A <> /Rect [ 147.716 653.958 301.888 665.146 ] >> endobj 38 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 147.716 693.955 154.69 702.801 ]/A << /S /GoTo /D (section.1) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 147.716 644.065 154.69 652.912 ]/A << /S /GoTo /D (section.1) >> >> endobj 39 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 165.978 693.955 172.951 702.801 ]/A << /S /GoTo /D (section.2) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 165.978 644.065 172.951 652.912 ]/A << /S /GoTo /D (section.2) >> >> endobj 40 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 184.239 693.955 191.213 702.801 ]/A << /S /GoTo /D (section.3) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.701176 0.4 0.414118] /BS <> /Rect [ 184.239 644.065 191.213 652.912 ]/A << /S /GoTo /D (section.3) >> >> endobj 44 0 obj -<< /D [ 42 0 R /XYZ 132.768 754.95 null ] >> +<< /D [ 42 0 R /XYZ 132.768 705.06 null ] >> endobj 41 0 obj << /ExtGState 1 0 R /Font << /F16 20 0 R /F15 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj 49 0 obj -<< /Length 173 >> +<< /Length 172 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<003A0051>-333<00690051>-333<007D006000620069>-333<0054001C003B0032>]TJ -1 0 0 1 303.133 139.255 Tm [<006A>]TJ +1 0 0 1 148.712 657.235 Tm [<003A0051>-333<00690051>-333<007D006000620069>-333<0054001C003B0032>]TJ +1 0 0 1 303.133 89.365 Tm [<006A>]TJ ET endstream endobj 48 0 obj -<< /Type /Page /Contents 49 0 R /Resources 47 0 R /MediaBox [ 0 0 595.276 841.89 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 35 0 R /Annots 51 0 R >> +<< /Type /Page /Contents 49 0 R /Resources 47 0 R /MediaBox [ 0 0 612 792 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 35 0 R /Annots 51 0 R >> endobj 51 0 obj [ 46 0 R ] endobj 46 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.668236 0.675292 0.4] /BS <> /A <> /Rect [ 147.716 704.077 218.491 715.145 ] +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.668236 0.675292 0.4] /BS <> /A <> /Rect [ 147.716 654.187 218.491 665.255 ] >> endobj 50 0 obj -<< /D [ 48 0 R /XYZ 132.768 754.95 null ] >> +<< /D [ 48 0 R /XYZ 132.768 705.06 null ] >> endobj 47 0 obj << /ExtGState 1 0 R /Font << /F15 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj -54 0 obj -<< /Length 123 >> +52 0 obj +<< /Type /Metadata /Subtype /XML /Length 11595 >> +stream + + + + + + + + + XMP Media Management Schema + xmpMM + http://ns.adobe.com/xap/1.0/mm/ + + + + OriginalDocumentID + URI + internal + The common identifier for all versions and renditions of a document. + + + + + + PDF/A Identification Schema + pdfaid + http://www.aiim.org/pdfa/ns/id/ + + + + year + Integer + internal + Year of standard + + + + + + PDF/UA Universal Accessibility Schema + pdfuaid + http://www.aiim.org/pdfua/ns/id/ + + + + part + Integer + internal + Part of ISO 14289 standard + + + rev + Integer + internal + Revision of ISO 14289 standard + + + + + + PDF/X ID Schema + pdfxid + http://www.npes.org/pdfx/ns/id/ + + + + GTS_PDFXVersion + Text + internal + ID of PDF/X standard + + + + + + PRISM Basic Metadata + prism + http://prismstandard.org/namespaces/basic/3.0/ + + + + complianceProfile + Text + internal + PRISM specification compliance profile to which this document adheres + + + publicationName + Text + external + Publication name + + + aggregationType + Text + external + Publication type + + + bookEdition + Text + external + Edition of the book in which the document was published + + + volume + Text + external + Publication volume number + + + number + Text + external + Publication issue number within a volume + + + pageRange + Text + external + Page range for the document within the print version of its publication + + + issn + Text + external + ISSN for the printed publication in which the document was published + + + eIssn + Text + external + ISSN for the electronic publication in which the document was published + + + isbn + Text + external + ISBN for the publication in which the document was published + + + doi + Text + external + Digital Object Identifier for the document + + + url + URL + external + URL at which the document can be found + + + byteCount + Integer + internal + Approximate file size in octets + + + pageCount + Integer + internal + Number of pages in the print version of the document + + + subtitle + Text + external + Document's subtitle + + + + + + + luahbtex-1.17.0 + 1.5 + + + Author + + + + + title + + + + + Text + + + + + en-US + + + + + 2023-09-11T09:45:49+02:00 + + + application/pdf + doc-input2.tex + creator + 2023-09-11T09:45:49+02:00 + 2023-09-11T09:45:49+02:00 + 2023-09-11T09:45:49+02:00 + uuid:f7ab701c-3045-4af6-8721-3e4af6706f34 + uuid:5d3e8026-12da-4ae0-807e-b252296394f8 + three + 4 + + + + + + + + + + + + + + +endstream +endobj +55 0 obj +<< /Length 122 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<00230048006D0023>]TJ -1 0 0 1 303.133 139.255 Tm [<0039>]TJ +1 0 0 1 148.712 657.235 Tm [<00230048006D0023>]TJ +1 0 0 1 303.133 89.365 Tm [<0039>]TJ ET endstream endobj -53 0 obj -<< /Type /Page /Contents 54 0 R /Resources 52 0 R /MediaBox [ 0 0 595.276 841.89 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 35 0 R >> +54 0 obj +<< /Type /Page /Contents 55 0 R /Resources 53 0 R /MediaBox [ 0 0 612 792 ] /BleedBox [0 0 300 350]/TrimBox [0 0 300 350] /Parent 35 0 R >> endobj -55 0 obj -<< /D [ 53 0 R /XYZ 132.768 754.95 null ] >> +56 0 obj +<< /D [ 54 0 R /XYZ 132.768 705.06 null ] >> endobj -52 0 obj +53 0 obj << /ExtGState 1 0 R /Font << /F15 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1 0 obj << /opacity1 <> >> endobj -56 0 obj +57 0 obj << /S /GoTo /D (section.1) >> endobj -58 0 obj +59 0 obj (\376\377\000a\000b\000c) endobj -59 0 obj +60 0 obj << /S /GoTo /D (section.2) >> endobj -61 0 obj +62 0 obj (\376\377\000a\000b\000c) endobj -62 0 obj +63 0 obj << /S /GoTo /D (section.3) >> endobj -64 0 obj +65 0 obj (\376\377\000a\000b\000c) endobj -65 0 obj +66 0 obj [ 28 [ 547 ] 35 [ 625 ] 43 [ 500 ] 82 [ 563 ] 106 [ 563 563 ] ] endobj -67 0 obj +68 0 obj << /Length 14 >> stream  0 endstream endobj -68 0 obj +69 0 obj << /Subtype /CIDFontType0C /Length 1193 >> stream FTRWGM+LMRoman12-BoldG ! C  p)q "Y $ %FTRWGM+LMRoman12-Bold2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman12-BoldLMRoman12AdobeIdentity#+Rjk^9pb}LlB!S @@ -276,10 +525,10 @@ stream   endstream endobj -66 0 obj -<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 68 0 R /CIDSet 67 0 R >> +67 0 obj +<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 69 0 R /CIDSet 68 0 R >> endobj -69 0 obj +70 0 obj << /Length 747 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -322,21 +571,21 @@ end endstream endobj 32 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 70 0 R ] /ToUnicode 69 0 R >> -endobj -70 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 66 0 R /W 65 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 71 0 R ] /ToUnicode 70 0 R >> endobj 71 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 67 0 R /W 66 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +endobj +72 0 obj [ 28 [ 525 ] 43 [ 525 525 ] 50 [ 525 ] 59 [ 525 ] 63 [ 525 525 ] 68 [ 525 ] 72 [ 525 ] 81 [ 525 ] 84 [ 525 ] 88 [ 525 ] 96 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 114 [ 525 ] 116 [ 525 ] ] endobj -73 0 obj +74 0 obj << /Length 15 >> stream  H@( endstream endobj -74 0 obj +75 0 obj << /Subtype /CIDFontType0C /Length 2420 >> stream OGJFWH+LMMono10-RegularH!"   ;  Wo " & $ % @@ -346,10 +595,10 @@ stream  endstream endobj -72 0 obj -<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 74 0 R /CIDSet 73 0 R >> +73 0 obj +<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 75 0 R /CIDSet 74 0 R >> endobj -75 0 obj +76 0 obj << /Length 926 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -404,21 +653,21 @@ end endstream endobj 20 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 76 0 R ] /ToUnicode 75 0 R >> -endobj -76 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 72 0 R /W 71 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 77 0 R ] /ToUnicode 76 0 R >> endobj 77 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 73 0 R /W 72 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +endobj +78 0 obj [ 27 [ 750 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 785 500 ] 62 [ 750 556 333 361 278 ] 68 [ 306 ] 70 [ 528 ] 72 [ 278 ] 75 [ 833 750 556 ] 81 [ 500 500 ] 84 [ 556 ] 88 [ 278 ] 96 [ 392 ] 98 [ 394 278 ] 104 [ 722 389 500 500 ] 109 [ 556 ] 112 [ 528 ] 114 [ 722 ] 116 [ 528 ] 118 [ 528 ] 125 [ 556 ] ] endobj -79 0 obj +80 0 obj << /Length 16 >> stream !sh endstream endobj -80 0 obj +81 0 obj << /Subtype /CIDFontType0C /Length 5208 >> stream ZNAMJV+LMRoman10-RegularF!"  &  B " $ % ZNAMJV+LMRoman10-Regular2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman10-RegularLMRoman10NormalAdobeIdentity#+-/279:;>?@ABDFHKLMQRTX`bchijkmprtv}((w  sZH[pzP x @@ -431,10 +680,10 @@ O endstream endobj -78 0 obj -<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 80 0 R /CIDSet 79 0 R >> +79 0 obj +<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 81 0 R /CIDSet 80 0 R >> endobj -81 0 obj +82 0 obj << /Length 1229 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -510,130 +759,131 @@ end endstream endobj 19 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 82 0 R ] /ToUnicode 81 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 83 0 R ] /ToUnicode 82 0 R >> endobj -82 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 78 0 R /W 77 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +83 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 79 0 R /W 78 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj 35 0 obj -<< /Type /Pages /Count 4 /Kids [ 5 0 R 42 0 R 48 0 R 53 0 R ] >> -endobj -83 0 obj -<< /Type /Outlines /First 57 0 R /Last 63 0 R /Count 3 >> +<< /Type /Pages /Count 4 /Kids [ 5 0 R 42 0 R 48 0 R 54 0 R ] >> endobj -63 0 obj -<< /Title 64 0 R /A 62 0 R /Parent 83 0 R /Prev 60 0 R >> +84 0 obj +<< /Type /Outlines /First 58 0 R /Last 64 0 R /Count 3 >> endobj -60 0 obj -<< /Title 61 0 R /A 59 0 R /Parent 83 0 R /Prev 57 0 R /Next 63 0 R >> +64 0 obj +<< /Title 65 0 R /A 63 0 R /Parent 84 0 R /Prev 61 0 R >> endobj -57 0 obj -<< /Title 58 0 R /A 56 0 R /Parent 83 0 R /Next 60 0 R >> +61 0 obj +<< /Title 62 0 R /A 60 0 R /Parent 84 0 R /Prev 58 0 R /Next 64 0 R >> endobj -84 0 obj -<< /Names [ (Doc-Start) 18 0 R (page.1) 17 0 R (page.2) 44 0 R (page.3) 50 0 R (page.4) 55 0 R (section.1) 31 0 R (section.2) 33 0 R (section.3) 34 0 R ] /Limits [ (Doc-Start) (section.3) ] >> +58 0 obj +<< /Title 59 0 R /A 57 0 R /Parent 84 0 R /Next 61 0 R >> endobj 85 0 obj -<< /Dests 84 0 R >> +<< /Names [ (Doc-Start) 18 0 R (page.1) 17 0 R (page.2) 44 0 R (page.3) 50 0 R (page.4) 56 0 R (section.1) 31 0 R (section.2) 33 0 R (section.3) 34 0 R ] /Limits [ (Doc-Start) (section.3) ] >> endobj 86 0 obj -<< /Type /Catalog /Pages 35 0 R /Outlines 83 0 R /Names 85 0 R /Lang (en-US)/PageMode /UseOutlines/OpenAction [5 0 R /Fit]/PageLabels <>]>> >> +<< /Dests 85 0 R >> endobj 87 0 obj -<< /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203828+02'00') /ModDate (D:20220915203828+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> +<< /Type /Catalog /Pages 35 0 R /Outlines 84 0 R /Names 86 0 R /Lang (en-US)/PageMode /UseOutlines/OpenAction [5 0 R /Fit]/PageLabels <>]>>/Metadata 52 0 R >> +endobj +88 0 obj +<< /Producer (luahbtex-1.17.0)/Creator /Author /Title /CreationDate (D:20230911094549+02'00')/ModDate (D:20230911094549+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref -0 88 +0 89 0000000002 65535 f -0000012676 00000 n +0000024333 00000 n 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f -0000005722 00000 n -0000006021 00000 n -0000006211 00000 n -0000006438 00000 n +0000005720 00000 n +0000006012 00000 n +0000006202 00000 n +0000006429 00000 n 0000000020 00000 n 0000000528 00000 n -0000009071 00000 n +0000009067 00000 n 0000000599 00000 n 0000000852 00000 n -0000009247 00000 n -0000009726 00000 n +0000009243 00000 n +0000009722 00000 n 0000000920 00000 n -0000009423 00000 n -0000009483 00000 n -0000027421 00000 n -0000019818 00000 n -0000006677 00000 n -0000006917 00000 n -0000007156 00000 n -0000007396 00000 n -0000007636 00000 n -0000007876 00000 n -0000008114 00000 n -0000008354 00000 n -0000008592 00000 n -0000008832 00000 n -0000009544 00000 n -0000015462 00000 n -0000009605 00000 n -0000009665 00000 n -0000027775 00000 n -0000005899 00000 n -0000010426 00000 n -0000010654 00000 n -0000010845 00000 n -0000011037 00000 n -0000011290 00000 n -0000010200 00000 n -0000009837 00000 n -0000011229 00000 n -0000010378 00000 n -0000011827 00000 n -0000012095 00000 n -0000011622 00000 n -0000011389 00000 n -0000012034 00000 n -0000011800 00000 n -0000012589 00000 n -0000012365 00000 n -0000012182 00000 n -0000012528 00000 n -0000012723 00000 n -0000028092 00000 n -0000012769 00000 n -0000012812 00000 n -0000028005 00000 n -0000012858 00000 n -0000012901 00000 n -0000027931 00000 n -0000012947 00000 n -0000012990 00000 n -0000014421 00000 n -0000013070 00000 n -0000013144 00000 n -0000014655 00000 n -0000015613 00000 n -0000015810 00000 n -0000018597 00000 n -0000016018 00000 n -0000016093 00000 n -0000018832 00000 n -0000019971 00000 n -0000020170 00000 n -0000025896 00000 n -0000020528 00000 n -0000020604 00000 n -0000026132 00000 n -0000027575 00000 n -0000027857 00000 n -0000028166 00000 n -0000028375 00000 n -0000028411 00000 n -0000028585 00000 n +0000009419 00000 n +0000009479 00000 n +0000039078 00000 n +0000031475 00000 n +0000006667 00000 n +0000006907 00000 n +0000007147 00000 n +0000007387 00000 n +0000007627 00000 n +0000007867 00000 n +0000008107 00000 n +0000008347 00000 n +0000008587 00000 n +0000008827 00000 n +0000009540 00000 n +0000027119 00000 n +0000009601 00000 n +0000009661 00000 n +0000039432 00000 n +0000005890 00000 n +0000010414 00000 n +0000010642 00000 n +0000010833 00000 n +0000011025 00000 n +0000011278 00000 n +0000010195 00000 n +0000009833 00000 n +0000011217 00000 n +0000010366 00000 n +0000011807 00000 n +0000012075 00000 n +0000011609 00000 n +0000011377 00000 n +0000012014 00000 n +0000011780 00000 n +0000012162 00000 n +0000024246 00000 n +0000024029 00000 n +0000023847 00000 n +0000024185 00000 n +0000024380 00000 n +0000039749 00000 n +0000024426 00000 n +0000024469 00000 n +0000039662 00000 n +0000024515 00000 n +0000024558 00000 n +0000039588 00000 n +0000024604 00000 n +0000024647 00000 n +0000026078 00000 n +0000024727 00000 n +0000024801 00000 n +0000026312 00000 n +0000027270 00000 n +0000027467 00000 n +0000030254 00000 n +0000027675 00000 n +0000027750 00000 n +0000030489 00000 n +0000031628 00000 n +0000031827 00000 n +0000037553 00000 n +0000032185 00000 n +0000032261 00000 n +0000037789 00000 n +0000039232 00000 n +0000039514 00000 n +0000039823 00000 n +0000040032 00000 n +0000040068 00000 n +0000040258 00000 n trailer -<< /Size 88 /Root 86 0 R /Info 87 0 R /ID [ ] >> +<< /Size 89 /Root 87 0 R /Info 88 0 R /ID [ <62CD8693677EF115C92FE23BA5EE804C> <62CD8693677EF115C92FE23BA5EE804C> ] >> startxref -28907 +40579 %%EOF diff --git a/macros/latex/contrib/newpax/doc-use-newpax.pdf b/macros/latex/contrib/newpax/doc-use-newpax.pdf index 3a3b35e65d..dcbeb8af5c 100644 --- a/macros/latex/contrib/newpax/doc-use-newpax.pdf +++ b/macros/latex/contrib/newpax/doc-use-newpax.pdf @@ -1,14 +1,13 @@ %PDF-1.5 % -58 0 obj -<< /Length 588 >> +56 0 obj +<< /Length 508 >> stream /opacity1 gs 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G -1 0 0 1 148.712 501.372 cm +1 0 0 1 148.712 526.316 cm q .5 0 0 .5 0 0 cm q @@ -16,9 +15,7 @@ q /Fm1 Do Q Q -0 g 0 G -0 g 0 G -1 0 0 1 130.877 0 cm +1 0 0 1 139.239 0 cm q .5 0 0 .5 0 0 cm q @@ -26,9 +23,7 @@ q /Fm2 Do Q Q -0 g 0 G -0 g 0 G -1 0 0 1 -130.877 -166.823 cm +1 0 0 1 -139.239 -141.877 cm q .5 0 0 .5 0 0 cm q @@ -36,9 +31,7 @@ q /Fm3 Do Q Q -0 g 0 G -0 g 0 G -1 0 0 1 130.877 0 cm +1 0 0 1 139.239 0 cm q .5 0 0 .5 0 0 cm q @@ -46,9 +39,7 @@ q /Fm4 Do Q Q -0 g 0 G -0 g 0 G -1 0 0 1 -130.877 -166.823 cm +1 0 0 1 -139.239 -141.878 cm q .5 0 0 .5 0 0 cm q @@ -57,8 +48,7 @@ q Q Q 0 g 0 G -0 g 0 G -1 0 0 1 -148.712 -167.726 cm +1 0 0 1 -148.712 -242.561 cm BT /F15 9.96264 Tf 1 0 0 1 303.133 89.365 Tm [<0052>]TJ @@ -68,13 +58,13 @@ ET endstream endobj 5 0 obj -<< /Type /Page /Contents 58 0 R /Resources 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 72 0 R /Annots 73 0 R >> +<< /Type /Page /Contents 56 0 R /Resources 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 66 0 R /Annots 67 0 R >> endobj -73 0 obj -[ 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 26 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 48 0 R 8 0 R 9 0 R 27 0 R 28 0 R 29 0 R 31 0 R 32 0 R 49 0 R 50 0 R 51 0 R ] +67 0 obj +[ 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 25 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 46 0 R 8 0 R 9 0 R 26 0 R 27 0 R 28 0 R 30 0 R 31 0 R 47 0 R 48 0 R 49 0 R ] endobj 7 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 255.118 331.653 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 74 0 R /Length 41 >> +<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 271.842 281.763 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 68 0 R /Length 41 >> stream q 1 0 0 1 -113.386 -425.196 cm @@ -84,55 +74,55 @@ Q endstream endobj 6 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 1 /PTEX.InfoDict << /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203759+02'00') /ModDate (D:20220915203759+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> /BBox [ 0 0 595.276 841.89 ] /Resources << /ExtGState 75 0 R /Font << /F15 76 0 R /F16 77 0 R /F28 78 0 R >> /ProcSet [ /PDF /Text ] >> /Length 4811 >> +<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 1 /PTEX.InfoDict << /Producer (luahbtex-1.17.0) /Creator /Author /Title /CreationDate (D:20230911094532+02'00') /ModDate (D:20230911094532+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> /BBox [ 0 0 612 792 ] /Resources << /ExtGState 69 0 R /Font << /F15 70 0 R /F16 71 0 R /F28 72 0 R >> /ProcSet [ /PDF /Text ] >> /Length 4809 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<007400480042004D00460069003200740069>]TJ -1 0 0 1 148.712 695.17 Tm [<0052>]TJ +1 0 0 1 148.712 657.235 Tm [<007400480042004D00460069003200740069>]TJ +1 0 0 1 148.712 645.28 Tm [<0052>]TJ /F16 9.96264 Tf -1 0 0 1 157.011 695.17 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 157.011 645.28 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 683.215 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ -1 0 0 1 133.768 671.26 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ -1 0 0 1 133.768 659.304 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ -1 0 0 1 133.768 647.349 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ -1 0 0 1 133.768 635.394 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ -1 0 0 1 133.768 623.439 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ -1 0 0 1 133.768 611.484 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ -1 0 0 1 133.768 599.529 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ -1 0 0 1 133.768 587.573 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ -1 0 0 1 133.768 575.618 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ -1 0 0 1 133.768 563.663 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ -1 0 0 1 148.712 551.708 Tm [<0054>-28<002F0037>]TJ +1 0 0 1 148.712 633.325 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ +1 0 0 1 133.768 621.37 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ +1 0 0 1 133.768 609.415 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ +1 0 0 1 133.768 597.46 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ +1 0 0 1 133.768 585.504 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ +1 0 0 1 133.768 573.549 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ +1 0 0 1 133.768 561.594 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ +1 0 0 1 133.768 549.639 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ +1 0 0 1 133.768 537.684 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ +1 0 0 1 133.768 525.729 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ +1 0 0 1 133.768 513.773 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ +1 0 0 1 148.712 501.818 Tm [<0054>-28<002F0037>]TJ /F28 14.3462 Tf -1 0 0 1 133.768 518.747 Tm [<0052>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 490.938 Tm [<006B>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 463.129 Tm [<006A>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 468.857 Tm [<0052>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 441.048 Tm [<006B>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 413.239 Tm [<006A>-1000<001C0023>-31<002B>]TJ /F15 9.96264 Tf -1 0 0 1 133.768 441.298 Tm [<007D00480032>]TJ -1 0 0 1 303.133 139.255 Tm [<0052>]TJ +1 0 0 1 133.768 391.408 Tm [<007D00480032>]TJ +1 0 0 1 303.133 89.365 Tm [<0052>]TJ ET endstream endobj -75 0 obj +69 0 obj << /opacity1 << /ca 1 /CA 1 >> >> endobj -76 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 79 0 R ] /ToUnicode 80 0 R >> +70 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 73 0 R ] /ToUnicode 74 0 R >> endobj -77 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 81 0 R ] /ToUnicode 82 0 R >> +71 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 75 0 R ] /ToUnicode 76 0 R >> endobj -78 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 83 0 R ] /ToUnicode 84 0 R >> +72 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 77 0 R ] /ToUnicode 78 0 R >> endobj -79 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 85 0 R /W 86 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +73 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 79 0 R /W 80 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -80 0 obj +74 0 obj << /Length 1229 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -207,10 +197,10 @@ end endstream endobj -81 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 87 0 R /W 88 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +75 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 81 0 R /W 82 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -82 0 obj +76 0 obj << /Length 926 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -264,10 +254,10 @@ end endstream endobj -83 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 89 0 R /W 90 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +77 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 83 0 R /W 84 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -84 0 obj +78 0 obj << /Length 747 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -309,25 +299,25 @@ end endstream endobj -85 0 obj -<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 91 0 R /CIDSet 92 0 R >> +79 0 obj +<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 85 0 R /CIDSet 86 0 R >> endobj -86 0 obj +80 0 obj [ 27 [ 750 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 785 500 ] 62 [ 750 556 333 361 278 ] 68 [ 306 ] 70 [ 528 ] 72 [ 278 ] 75 [ 833 750 556 ] 81 [ 500 500 ] 84 [ 556 ] 88 [ 278 ] 96 [ 392 ] 98 [ 394 278 ] 104 [ 722 389 500 500 ] 109 [ 556 ] 112 [ 528 ] 114 [ 722 ] 116 [ 528 ] 118 [ 528 ] 125 [ 556 ] ] endobj -87 0 obj -<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 93 0 R /CIDSet 94 0 R >> +81 0 obj +<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 87 0 R /CIDSet 88 0 R >> endobj -88 0 obj +82 0 obj [ 28 [ 525 ] 43 [ 525 525 ] 50 [ 525 ] 59 [ 525 ] 63 [ 525 525 ] 68 [ 525 ] 72 [ 525 ] 81 [ 525 ] 84 [ 525 ] 88 [ 525 ] 96 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 114 [ 525 ] 116 [ 525 ] ] endobj -89 0 obj -<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 95 0 R /CIDSet 96 0 R >> +83 0 obj +<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 89 0 R /CIDSet 90 0 R >> endobj -90 0 obj +84 0 obj [ 28 [ 547 ] 35 [ 625 ] 43 [ 500 ] 82 [ 563 ] 106 [ 563 563 ] ] endobj -91 0 obj +85 0 obj << /Subtype /CIDFontType0C /Length 5208 >> stream ZNAMJV+LMRoman10-RegularF!"  &  B " $ % ZNAMJV+LMRoman10-Regular2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman10-RegularLMRoman10NormalAdobeIdentity#+-/279:;>?@ABDFHKLMQRTX`bchijkmprtv}((w  sZH[pzP x @@ -340,13 +330,13 @@ O endstream endobj -92 0 obj +86 0 obj << /Length 16 >> stream !sh endstream endobj -93 0 obj +87 0 obj << /Subtype /CIDFontType0C /Length 2420 >> stream OGJFWH+LMMono10-RegularH!"   ;  Wo " & $ % @@ -356,13 +346,13 @@ stream  endstream endobj -94 0 obj +88 0 obj << /Length 15 >> stream  H@( endstream endobj -95 0 obj +89 0 obj << /Subtype /CIDFontType0C /Length 1193 >> stream FTRWGM+LMRoman12-BoldG ! C  p)q "Y $ %FTRWGM+LMRoman12-Bold2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman12-BoldLMRoman12AdobeIdentity#+Rjk^9pb}LlB!S @@ -373,17 +363,17 @@ stream   endstream endobj -96 0 obj +90 0 obj << /Length 14 >> stream  0 endstream endobj -74 0 obj +68 0 obj << /XObject << /Im1 6 0 R >> /ProcSet [ /PDF ] >> endobj -25 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 226.772 331.653 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 97 0 R /Length 41 >> +24 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 243.495 281.763 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 91 0 R /Length 41 >> stream q 1 0 0 1 -141.732 -425.196 cm @@ -392,25 +382,25 @@ Q endstream endobj -24 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 2 /PTEX.InfoDict << /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203759+02'00') /ModDate (D:20220915203759+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> /BBox [ 0 0 595.276 841.89 ] /Resources << /ExtGState 75 0 R /Font << /F16 77 0 R /F15 76 0 R >> /ProcSet [ /PDF /Text ] >> /Length 303 >> +23 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 2 /PTEX.InfoDict << /Producer (luahbtex-1.17.0) /Creator /Author /Title /CreationDate (D:20230911094532+02'00') /ModDate (D:20230911094532+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> /BBox [ 0 0 612 792 ] /Resources << /ExtGState 69 0 R /Font << /F16 71 0 R /F15 70 0 R >> /ProcSet [ /PDF /Text ] >> /Length 302 >> stream /opacity1 gs BT /F16 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 148.712 657.235 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 695.17 Tm [<0052>-1333<006B>-1333<006A>]TJ -1 0 0 1 303.133 139.255 Tm [<006B>]TJ +1 0 0 1 148.712 645.28 Tm [<0052>-1333<006B>-1333<006A>]TJ +1 0 0 1 303.133 89.365 Tm [<006B>]TJ ET endstream endobj -97 0 obj -<< /XObject << /Im2 24 0 R >> /ProcSet [ /PDF ] >> +91 0 obj +<< /XObject << /Im2 23 0 R >> /ProcSet [ /PDF ] >> endobj -30 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 255.118 331.653 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 98 0 R /Length 41 >> +29 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 271.842 281.763 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 92 0 R /Length 41 >> stream q 1 0 0 1 -113.386 -425.196 cm @@ -419,11 +409,11 @@ Q endstream endobj -98 0 obj +92 0 obj << /XObject << /Im1 6 0 R >> /ProcSet [ /PDF ] >> endobj -47 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 226.772 331.653 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 99 0 R /Length 41 >> +45 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 243.495 281.763 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 93 0 R /Length 41 >> stream q 1 0 0 1 -141.732 -425.196 cm @@ -432,11 +422,11 @@ Q endstream endobj -99 0 obj -<< /XObject << /Im2 24 0 R >> /ProcSet [ /PDF ] >> +93 0 obj +<< /XObject << /Im2 23 0 R >> /ProcSet [ /PDF ] >> endobj -52 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 255.118 331.653 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 100 0 R /Length 41 >> +50 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 271.842 281.763 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 94 0 R /Length 41 >> stream q 1 0 0 1 -113.386 -425.196 cm @@ -445,176 +435,157 @@ Q endstream endobj -100 0 obj +94 0 obj << /XObject << /Im1 6 0 R >> /ProcSet [ /PDF ] >> endobj 10 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 170.028 634.719 247.116 640.313 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 170.027 634.719 247.113 640.314 ] >> endobj 11 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 165.878 628.861 276.275 634.445 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 165.877 628.861 284.634 634.446 ] >> endobj 12 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 622.879 276.275 628.413 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 623.377 284.634 627.915 ] >> endobj 13 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 616.901 276.275 622.435 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 617.399 284.634 621.937 ] >> endobj 14 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 610.924 276.275 616.458 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 611.422 284.634 615.96 ] >> endobj 15 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 604.951 276.275 610.535 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 605.449 284.634 610.037 ] >> endobj 16 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 598.973 276.275 604.503 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 599.472 284.634 604.005 ] >> endobj 17 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 592.996 276.275 598.525 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 593.494 284.634 598.027 ] >> endobj 18 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 587.013 276.275 592.548 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 587.512 284.634 592.05 ] >> endobj 19 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 581.095 276.275 586.57 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 581.594 284.634 586.072 ] >> endobj 20 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 575.063 276.275 580.592 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 575.561 284.634 580.094 ] >> endobj 21 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 569.081 276.275 574.615 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 569.579 284.634 574.117 ] >> endobj 22 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D(chapter.1)>> /BS <> /Rect [ 165.878 563.163 174.078 568.637 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D(chapter.1)>> /BS <> /Rect [ 165.877 563.163 174.077 568.637 ] >> endobj -23 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D[0 /Fit]>> /BS <> /Rect [ 158.406 508.869 165.768 513.432 ] >> +25 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 290.943 640.697 368.029 646.291 ] >> endobj -26 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 282.581 640.697 359.667 646.291 ] >> +32 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 170.027 492.841 247.113 498.436 ] >> endobj 33 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 170.028 467.896 247.116 473.49 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 165.877 486.983 284.634 492.568 ] >> endobj 34 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 165.878 462.038 276.275 467.622 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 481.499 284.634 486.037 ] >> endobj 35 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 456.056 276.275 461.59 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 475.521 284.634 480.059 ] >> endobj 36 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 450.078 276.275 455.612 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 469.544 284.634 474.082 ] >> endobj 37 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 444.101 276.275 449.635 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 463.571 284.634 468.159 ] >> endobj 38 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 438.128 276.275 443.712 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 457.594 284.634 462.127 ] >> endobj 39 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 432.15 276.275 437.68 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 451.616 284.634 456.149 ] >> endobj 40 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 426.173 276.275 431.702 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 445.634 284.634 450.172 ] >> endobj 41 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 420.19 276.275 425.725 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 439.716 284.634 444.194 ] >> endobj 42 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 414.272 276.275 419.747 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 433.683 284.634 438.216 ] >> endobj 43 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 408.24 276.275 413.769 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.903 427.701 284.634 432.239 ] >> endobj 44 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 158.406 402.258 276.275 407.792 ] >> -endobj -45 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D(chapter.1)>> /BS <> /Rect [ 165.878 396.34 174.078 401.814 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D(chapter.1)>> /BS <> /Rect [ 165.877 421.285 174.077 426.759 ] >> endobj 46 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D[0 /Fit]>> /BS <> /Rect [ 158.406 342.046 165.768 346.609 ] >> -endobj -48 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 282.581 473.874 359.667 479.468 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 290.943 498.819 368.029 504.413 ] >> endobj 8 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 167.512 640.786 187.388 647.287 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@1@) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 167.511 640.787 187.387 647.287 ]/A << /S /GoTo /D (doc-input1.newpax@section.2) >> >> endobj 9 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 164.882 633.723 170.361 641.309 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@2@) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 164.881 633.723 170.361 641.31 ]/A << /S /GoTo /D (doc-input1.newpax@section.1) >> >> +endobj +26 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 289.946 634.754 295.426 641.17 ]/A << /S /GoTo /D (doc-input1.newpax@section.1) >> >> endobj 27 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 281.584 634.754 287.064 641.17 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@3@) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 299.077 634.754 304.556 641.17 ]/A << /S /GoTo /D (doc-input1.newpax@section.2) >> >> endobj 28 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 290.715 634.754 296.194 641.17 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@4@) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 308.208 634.754 313.687 641.17 ]/A << /S /GoTo /D (doc-input1.newpax@section.3) >> >> endobj -29 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 299.846 634.754 305.325 641.17 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@5@) >> >> +30 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 167.511 498.909 187.387 505.409 ]/A << /S /GoTo /D (doc-input1.newpax@section.2@B) >> >> endobj 31 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 167.512 473.964 187.388 480.464 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@1@B) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 164.881 491.845 170.361 499.432 ]/A << /S /GoTo /D (doc-input1.newpax@section.1@B) >> >> endobj -32 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 164.882 466.9 170.361 474.487 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@2@B) >> >> +47 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 289.946 492.876 295.426 499.292 ]/A << /S /GoTo /D (doc-input1.newpax@section.1@B) >> >> +endobj +48 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 299.077 492.876 304.556 499.292 ]/A << /S /GoTo /D (doc-input1.newpax@section.2@B) >> >> endobj 49 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 281.584 467.932 287.064 474.347 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@3@B) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 308.208 492.876 313.687 499.292 ]/A << /S /GoTo /D (doc-input1.newpax@section.3@B) >> >> endobj -50 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 290.715 467.932 296.194 474.347 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@4@B) >> >> +57 0 obj +<< /D [ 5 0 R /XYZ 132.768 705.06 null ] >> endobj -51 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 299.846 467.932 305.325 474.347 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@5@B) >> >> +58 0 obj +<< /D [ 5 0 R /XYZ 133.768 667.198 null ] >> endobj 59 0 obj -<< /D [ 5 0 R /XYZ 132.768 705.06 null ] >> +<< /D [ 5 0 R /XYZ 158.903 543.166 null ] >> endobj 60 0 obj -<< /D [ 5 0 R /XYZ 133.768 667.198 null ] >> +<< /D [ 5 0 R /XYZ 158.903 556.147 null ] >> endobj 61 0 obj -<< /D [ 5 0 R /XYZ 182.127 543.166 null ] >> +<< /D [ 5 0 R /XYZ 158.903 529.261 null ] >> endobj 62 0 obj -<< /D [ 5 0 R /XYZ 205.35 556.147 null ] >> +<< /D [ 5 0 R /XYZ 158.903 401.288 null ] >> endobj 63 0 obj -<< /D [ 5 0 R /XYZ 228.572 556.147 null ] >> +<< /D [ 5 0 R /XYZ 158.903 414.269 null ] >> endobj 64 0 obj -<< /D [ 5 0 R /XYZ 251.795 543.166 null ] >> +<< /D [ 5 0 R /XYZ 158.903 387.383 null ] >> endobj -65 0 obj -<< /D [ 5 0 R /XYZ 275.018 529.261 null ] >> -endobj -66 0 obj -<< /D [ 5 0 R /XYZ 182.127 376.343 null ] >> +55 0 obj +<< /ExtGState 1 0 R /Font << /F15 65 0 R >> /XObject << /Fm1 7 0 R /Fm2 24 0 R /Fm3 29 0 R /Fm4 45 0 R /Fm5 50 0 R >> /ProcSet [ /PDF /Text ] >> endobj -67 0 obj -<< /D [ 5 0 R /XYZ 205.35 389.324 null ] >> -endobj -68 0 obj -<< /D [ 5 0 R /XYZ 228.572 389.324 null ] >> -endobj -69 0 obj -<< /D [ 5 0 R /XYZ 251.795 376.343 null ] >> -endobj -70 0 obj -<< /D [ 5 0 R /XYZ 275.018 362.438 null ] >> -endobj -57 0 obj -<< /ExtGState 1 0 R /Font << /F15 71 0 R >> /XObject << /Fm1 7 0 R /Fm2 25 0 R /Fm3 30 0 R /Fm4 47 0 R /Fm5 52 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -118 0 obj -<< /Length 142 >> +112 0 obj +<< /Length 128 >> stream /opacity1 gs -0 g 0 G -1 0 0 1 25.989 -0.016 cm +1 0 0 1 -0.144 -0.186 cm q -.94078 0 0 .94078 0 0 cm +1.00047 0 0 1.00047 0 0 cm q 1 0 0 1 0 0 cm /Im6 Do @@ -624,65 +595,64 @@ Q 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G endstream endobj -117 0 obj -<< /Type /Page /Contents 118 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Parent 72 0 R /Annots 124 0 R >> +111 0 obj +<< /Type /Page /Contents 112 0 R /Resources 110 0 R /MediaBox [ 0 0 612 792 ] /Parent 66 0 R /Annots 117 0 R >> endobj -124 0 obj -[ 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 101 0 R ] +117 0 obj +[ 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 95 0 R ] endobj -56 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 1 /PTEX.InfoDict << /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203828+02'00') /ModDate (D:20220915203828+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> /BBox [ 0 0 595.276 841.89 ] /Resources << /ExtGState 125 0 R /Font << /F15 126 0 R /F16 127 0 R /F28 128 0 R >> /ProcSet [ /PDF /Text ] >> /Length 4742 >> +54 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 1 /PTEX.InfoDict << /Producer (luahbtex-1.17.0) /Creator /Author /Title /CreationDate (D:20230911094549+02'00') /ModDate (D:20230911094549+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> /BBox [ 0 0 612 792 ] /Resources << /ExtGState 118 0 R /Font << /F15 119 0 R /F16 120 0 R /F28 121 0 R >> /ProcSet [ /PDF /Text ] >> /Length 4740 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<0052>]TJ +1 0 0 1 148.712 657.235 Tm [<0052>]TJ /F16 9.96264 Tf -1 0 0 1 157.011 707.125 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 157.011 657.235 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 695.17 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ -1 0 0 1 133.768 683.215 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ -1 0 0 1 133.768 671.26 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ -1 0 0 1 133.768 659.304 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ -1 0 0 1 133.768 647.349 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ -1 0 0 1 133.768 635.394 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ -1 0 0 1 133.768 623.439 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ -1 0 0 1 133.768 611.484 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ -1 0 0 1 133.768 599.529 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ -1 0 0 1 133.768 587.573 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ -1 0 0 1 133.768 575.618 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ -1 0 0 1 148.712 563.663 Tm [<0054>-28<002F0037>]TJ +1 0 0 1 148.712 645.28 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ +1 0 0 1 133.768 633.325 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ +1 0 0 1 133.768 621.37 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ +1 0 0 1 133.768 609.415 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ +1 0 0 1 133.768 597.46 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ +1 0 0 1 133.768 585.504 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ +1 0 0 1 133.768 573.549 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ +1 0 0 1 133.768 561.594 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ +1 0 0 1 133.768 549.639 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ +1 0 0 1 133.768 537.684 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ +1 0 0 1 133.768 525.729 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ +1 0 0 1 148.712 513.773 Tm [<0054>-28<002F0037>]TJ /F28 14.3462 Tf -1 0 0 1 133.768 530.702 Tm [<0052>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 502.893 Tm [<006B>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 475.084 Tm [<006A>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 480.812 Tm [<0052>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 453.003 Tm [<006B>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 425.195 Tm [<006A>-1000<001C0023>-31<002B>]TJ /F15 9.96264 Tf -1 0 0 1 133.768 453.253 Tm [<007D00480032>]TJ -1 0 0 1 303.133 139.255 Tm [<0052>]TJ +1 0 0 1 133.768 403.363 Tm [<007D00480032>]TJ +1 0 0 1 303.133 89.365 Tm [<0052>]TJ ET endstream endobj -125 0 obj +118 0 obj << /opacity1 << /ca 1 /CA 1 >> >> endobj -126 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 129 0 R ] /ToUnicode 130 0 R >> +119 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 122 0 R ] /ToUnicode 123 0 R >> endobj -127 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 131 0 R ] /ToUnicode 132 0 R >> +120 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 124 0 R ] /ToUnicode 125 0 R >> endobj -128 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 133 0 R ] /ToUnicode 134 0 R >> +121 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 126 0 R ] /ToUnicode 127 0 R >> endobj -129 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 135 0 R /W 136 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +122 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 128 0 R /W 129 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -130 0 obj +123 0 obj << /Length 1229 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -757,10 +727,10 @@ end endstream endobj -131 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 137 0 R /W 138 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +124 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 130 0 R /W 131 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -132 0 obj +125 0 obj << /Length 926 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -814,10 +784,10 @@ end endstream endobj -133 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 139 0 R /W 140 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +126 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 132 0 R /W 133 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -134 0 obj +127 0 obj << /Length 747 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -859,25 +829,25 @@ end endstream endobj -135 0 obj -<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 141 0 R /CIDSet 142 0 R >> +128 0 obj +<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 134 0 R /CIDSet 135 0 R >> endobj -136 0 obj +129 0 obj [ 27 [ 750 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 785 500 ] 62 [ 750 556 333 361 278 ] 68 [ 306 ] 70 [ 528 ] 72 [ 278 ] 75 [ 833 750 556 ] 81 [ 500 500 ] 84 [ 556 ] 88 [ 278 ] 96 [ 392 ] 98 [ 394 278 ] 104 [ 722 389 500 500 ] 109 [ 556 ] 112 [ 528 ] 114 [ 722 ] 116 [ 528 ] 118 [ 528 ] 125 [ 556 ] ] endobj -137 0 obj -<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 143 0 R /CIDSet 144 0 R >> +130 0 obj +<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 136 0 R /CIDSet 137 0 R >> endobj -138 0 obj +131 0 obj [ 28 [ 525 ] 43 [ 525 525 ] 50 [ 525 ] 59 [ 525 ] 63 [ 525 525 ] 68 [ 525 ] 72 [ 525 ] 81 [ 525 ] 84 [ 525 ] 88 [ 525 ] 96 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 114 [ 525 ] 116 [ 525 ] ] endobj -139 0 obj -<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 145 0 R /CIDSet 146 0 R >> +132 0 obj +<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 138 0 R /CIDSet 139 0 R >> endobj -140 0 obj +133 0 obj [ 28 [ 547 ] 35 [ 625 ] 43 [ 500 ] 82 [ 563 ] 106 [ 563 563 ] ] endobj -141 0 obj +134 0 obj << /Subtype /CIDFontType0C /Length 5208 >> stream ZNAMJV+LMRoman10-RegularF!"  &  B " $ % ZNAMJV+LMRoman10-Regular2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman10-RegularLMRoman10NormalAdobeIdentity#+-/279:;>?@ABDFHKLMQRTX`bchijkmprtv}((w  sZH[pzP x @@ -890,13 +860,13 @@ O endstream endobj -142 0 obj +135 0 obj << /Length 16 >> stream !sh endstream endobj -143 0 obj +136 0 obj << /Subtype /CIDFontType0C /Length 2420 >> stream OGJFWH+LMMono10-RegularH!"   ;  Wo " & $ % @@ -906,13 +876,13 @@ stream  endstream endobj -144 0 obj +137 0 obj << /Length 15 >> stream  H@( endstream endobj -145 0 obj +138 0 obj << /Subtype /CIDFontType0C /Length 1193 >> stream FTRWGM+LMRoman12-BoldG ! C  p)q "Y $ %FTRWGM+LMRoman12-Bold2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman12-BoldLMRoman12AdobeIdentity#+Rjk^9pb}LlB!S @@ -923,83 +893,79 @@ stream   endstream endobj -146 0 obj +139 0 obj << /Length 14 >> stream  0 endstream endobj +96 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 155.954 654.101 310.209 665.295 ] >> +endobj +97 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 147.651 642.379 478.588 653.553 ] >> +endobj +98 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 631.404 477.59 640.485 ] >> +endobj +99 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 619.443 477.59 628.524 ] >> +endobj +100 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 607.481 477.59 616.562 ] >> +endobj +101 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 595.53 477.59 604.711 ] >> +endobj 102 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 172.765 662.182 317.807 672.708 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 583.569 477.59 592.64 ] >> endobj 103 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 164.957 651.159 476.13 661.666 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 571.608 477.59 580.679 ] >> endobj 104 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 639.902 476.13 650.316 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 559.637 477.59 568.718 ] >> endobj 105 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 628.655 476.13 639.069 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 547.795 477.59 556.757 ] >> endobj 106 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 617.407 476.13 627.82 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 535.724 477.59 544.795 ] >> endobj 107 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 606.169 476.13 616.676 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 133.695 523.753 395.106 532.834 ] >> endobj 108 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 594.921 476.13 605.325 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D(chapter.1)>> /Rect [ 147.651 510.915 164.059 521.869 ] >> endobj 109 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 583.673 476.13 594.077 ] >> -endobj -110 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 572.416 476.13 582.83 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D[0 /Fit]>> /Rect [ 132.699 402.274 147.432 411.404 ] >> endobj -111 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 561.281 476.13 571.582 ] >> -endobj -112 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 549.93 476.13 560.334 ] >> +95 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.0 0.0 1.0] /Rect [ 146.655 653.105 155.625 666.291 ]/A << /S /GoTo /D (doc-input2.newpax@section.1@B) >> >> endobj 113 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 150.898 538.673 398.571 549.086 ] >> +<< /D [ 111 0 R /XYZ 133.695 496.876 null ] >> endobj 114 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D(chapter.1)>> /Rect [ 164.957 527.537 180.385 537.838 ] >> +<< /D [ 111 0 R /XYZ 133.695 470.901 null ] >> endobj 115 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.444706 0.456472 0.680002] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D[0 /Fit]>> /Rect [ 150.898 425.376 164.751 433.962 ] >> -endobj -101 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.0 0.0 1.0] /Rect [ 163.961 661.186 172.514 673.704 ]/A << /S /GoTo /D (NEWPAX@doc-input2.newpax@1@B) >> >> -endobj -119 0 obj -<< /D [ 117 0 R /XYZ 175.058 514.336 null ] >> -endobj -120 0 obj -<< /D [ 117 0 R /XYZ 198.281 514.336 null ] >> -endobj -121 0 obj -<< /D [ 117 0 R /XYZ 221.504 489.91 null ] >> -endobj -122 0 obj -<< /D [ 117 0 R /XYZ 244.727 463.747 null ] >> -endobj -123 0 obj -<< /D [ 117 0 R /XYZ 132.768 705.06 null ] >> +<< /D [ 111 0 R /XYZ 133.695 443.078 null ] >> endobj 116 0 obj -<< /ExtGState 1 0 R /XObject << /Im6 56 0 R >> /ProcSet [ /PDF ] >> +<< /D [ 111 0 R /XYZ 132.768 705.06 null ] >> endobj -154 0 obj -<< /Length 142 >> +110 0 obj +<< /ExtGState 1 0 R /XObject << /Im6 54 0 R >> /ProcSet [ /PDF ] >> +endobj +147 0 obj +<< /Length 128 >> stream /opacity1 gs -0 g 0 G -1 0 0 1 25.989 -0.016 cm +1 0 0 1 -0.144 -0.186 cm q -.94078 0 0 .94078 0 0 cm +1.00047 0 0 1.00047 0 0 cm q 1 0 0 1 0 0 cm /Im7 Do @@ -1009,56 +975,54 @@ Q 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G endstream endobj -153 0 obj -<< /Type /Page /Contents 154 0 R /Resources 152 0 R /MediaBox [ 0 0 612 792 ] /Parent 72 0 R /Annots 156 0 R >> +146 0 obj +<< /Type /Page /Contents 147 0 R /Resources 145 0 R /MediaBox [ 0 0 612 792 ] /Parent 66 0 R /Annots 149 0 R >> endobj -156 0 obj -[ 148 0 R 149 0 R 150 0 R 151 0 R ] +149 0 obj +[ 141 0 R 142 0 R 143 0 R 144 0 R ] endobj -147 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 2 /PTEX.InfoDict << /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203828+02'00') /ModDate (D:20220915203828+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> /BBox [ 0 0 595.276 841.89 ] /Resources << /ExtGState 125 0 R /Font << /F16 127 0 R /F15 126 0 R >> /ProcSet [ /PDF /Text ] >> /Length 303 >> +140 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 2 /PTEX.InfoDict << /Producer (luahbtex-1.17.0) /Creator /Author /Title /CreationDate (D:20230911094549+02'00') /ModDate (D:20230911094549+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> /BBox [ 0 0 612 792 ] /Resources << /ExtGState 118 0 R /Font << /F16 120 0 R /F15 119 0 R >> /ProcSet [ /PDF /Text ] >> /Length 302 >> stream /opacity1 gs BT /F16 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 148.712 657.235 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 695.17 Tm [<0052>-1333<006B>-1333<006A>]TJ -1 0 0 1 303.133 139.255 Tm [<006B>]TJ +1 0 0 1 148.712 645.28 Tm [<0052>-1333<006B>-1333<006A>]TJ +1 0 0 1 303.133 89.365 Tm [<006B>]TJ ET endstream endobj -148 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 164.957 662.182 309.999 672.708 ] >> +141 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.724708 0.4 0.717646] /A <> /Rect [ 147.651 654.101 301.905 665.295 ] >> endobj -149 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.0 0.0 1.0] /Rect [ 163.961 651.879 172.514 662.194 ]/A << /S /GoTo /D (NEWPAX@doc-input2.newpax@2@B) >> >> +142 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.0 0.0 1.0] /Rect [ 146.655 643.207 155.625 654.051 ]/A << /S /GoTo /D (doc-input2.newpax@section.1@B) >> >> endobj -150 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.0 0.0 1.0] /Rect [ 181.141 651.879 189.694 662.194 ]/A << /S /GoTo /D (NEWPAX@doc-input2.newpax@3@B) >> >> +143 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.0 0.0 1.0] /Rect [ 164.926 643.207 173.896 654.051 ]/A << /S /GoTo /D (doc-input2.newpax@section.2@B) >> >> endobj -151 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.0 0.0 1.0] /Rect [ 198.321 651.879 206.874 662.194 ]/A << /S /GoTo /D (NEWPAX@doc-input2.newpax@4@B) >> >> +144 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.0 0.0 1.0] /Rect [ 183.197 643.207 192.167 654.051 ]/A << /S /GoTo /D (doc-input2.newpax@section.3@B) >> >> endobj -155 0 obj -<< /D [ 153 0 R /XYZ 132.768 705.06 null ] >> +148 0 obj +<< /D [ 146 0 R /XYZ 132.768 705.06 null ] >> endobj -152 0 obj -<< /ExtGState 1 0 R /XObject << /Im7 147 0 R >> /ProcSet [ /PDF ] >> +145 0 obj +<< /ExtGState 1 0 R /XObject << /Im7 140 0 R >> /ProcSet [ /PDF ] >> endobj -161 0 obj -<< /Length 142 >> +154 0 obj +<< /Length 128 >> stream /opacity1 gs -0 g 0 G -1 0 0 1 25.989 -0.016 cm +1 0 0 1 -0.144 -0.186 cm q -.94078 0 0 .94078 0 0 cm +1.00047 0 0 1.00047 0 0 cm q 1 0 0 1 0 0 cm /Im8 Do @@ -1068,45 +1032,282 @@ Q 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G endstream endobj -160 0 obj -<< /Type /Page /Contents 161 0 R /Resources 159 0 R /MediaBox [ 0 0 612 792 ] /Parent 72 0 R /Annots 163 0 R >> +153 0 obj +<< /Type /Page /Contents 154 0 R /Resources 152 0 R /MediaBox [ 0 0 612 792 ] /Parent 66 0 R /Annots 156 0 R >> endobj -163 0 obj -[ 158 0 R ] +156 0 obj +[ 151 0 R ] endobj -157 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 3 /PTEX.InfoDict << /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203828+02'00') /ModDate (D:20220915203828+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> /BBox [ 0 0 595.276 841.89 ] /Resources << /ExtGState 125 0 R /Font << /F15 126 0 R >> /ProcSet [ /PDF /Text ] >> /Length 173 >> +150 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 3 /PTEX.InfoDict << /Producer (luahbtex-1.17.0) /Creator /Author /Title /CreationDate (D:20230911094549+02'00') /ModDate (D:20230911094549+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> /BBox [ 0 0 612 792 ] /Resources << /ExtGState 118 0 R /Font << /F15 119 0 R >> /ProcSet [ /PDF /Text ] >> /Length 172 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<003A0051>-333<00690051>-333<007D006000620069>-333<0054001C003B0032>]TJ -1 0 0 1 303.133 139.255 Tm [<006A>]TJ +1 0 0 1 148.712 657.235 Tm [<003A0051>-333<00690051>-333<007D006000620069>-333<0054001C003B0032>]TJ +1 0 0 1 303.133 89.365 Tm [<006A>]TJ ET endstream endobj -158 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.668236 0.675292 0.4] /A <> /Rect [ 164.957 662.398 231.541 672.811 ] >> +151 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1] /H /I /C [0.668236 0.675292 0.4] /A <> /Rect [ 147.651 654.33 218.464 665.404 ] >> endobj -162 0 obj -<< /D [ 160 0 R /XYZ 132.768 705.06 null ] >> +155 0 obj +<< /D [ 153 0 R /XYZ 132.768 705.06 null ] >> endobj -159 0 obj -<< /ExtGState 1 0 R /XObject << /Im8 157 0 R >> /ProcSet [ /PDF ] >> +152 0 obj +<< /ExtGState 1 0 R /XObject << /Im8 150 0 R >> /ProcSet [ /PDF ] >> endobj -167 0 obj -<< /Length 142 >> +158 0 obj +<< /Type /Metadata /Subtype /XML /Length 11400 >> +stream + + + + + + + + + XMP Media Management Schema + xmpMM + http://ns.adobe.com/xap/1.0/mm/ + + + + OriginalDocumentID + URI + internal + The common identifier for all versions and renditions of a document. + + + + + + PDF/A Identification Schema + pdfaid + http://www.aiim.org/pdfa/ns/id/ + + + + year + Integer + internal + Year of standard + + + + + + PDF/UA Universal Accessibility Schema + pdfuaid + http://www.aiim.org/pdfua/ns/id/ + + + + part + Integer + internal + Part of ISO 14289 standard + + + rev + Integer + internal + Revision of ISO 14289 standard + + + + + + PDF/X ID Schema + pdfxid + http://www.npes.org/pdfx/ns/id/ + + + + GTS_PDFXVersion + Text + internal + ID of PDF/X standard + + + + + + PRISM Basic Metadata + prism + http://prismstandard.org/namespaces/basic/3.0/ + + + + complianceProfile + Text + internal + PRISM specification compliance profile to which this document adheres + + + publicationName + Text + external + Publication name + + + aggregationType + Text + external + Publication type + + + bookEdition + Text + external + Edition of the book in which the document was published + + + volume + Text + external + Publication volume number + + + number + Text + external + Publication issue number within a volume + + + pageRange + Text + external + Page range for the document within the print version of its publication + + + issn + Text + external + ISSN for the printed publication in which the document was published + + + eIssn + Text + external + ISSN for the electronic publication in which the document was published + + + isbn + Text + external + ISBN for the publication in which the document was published + + + doi + Text + external + Digital Object Identifier for the document + + + url + URL + external + URL at which the document can be found + + + byteCount + Integer + internal + Approximate file size in octets + + + pageCount + Integer + internal + Number of pages in the print version of the document + + + subtitle + Text + external + Document's subtitle + + + + + + + luahbtex-1.17.0 + 1.5 + + + Text + + + + + en-US + + + + + 2023-09-11T09:46:44+02:00 + + + application/pdf + doc-use-newpax.tex + LaTeX with hyperref + 2023-09-11T09:46:44+02:00 + 2023-09-11T09:46:44+02:00 + 2023-09-11T09:46:44+02:00 + uuid:2b04bf6a-81b7-45a6-83db-ec9cdd83b4f4 + uuid:ecb9eb32-a3fb-4a01-8611-a65d1c136af9 + three + 5 + + + + + + + + + + + + + + +endstream +endobj +161 0 obj +<< /Length 128 >> stream /opacity1 gs -0 g 0 G -1 0 0 1 25.989 -0.016 cm +1 0 0 1 -0.144 -0.186 cm q -.94078 0 0 .94078 0 0 cm +1.00047 0 0 1.00047 0 0 cm q 1 0 0 1 0 0 cm /Im9 Do @@ -1116,54 +1317,53 @@ Q 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G endstream endobj -166 0 obj -<< /Type /Page /Contents 167 0 R /Resources 165 0 R /MediaBox [ 0 0 612 792 ] /Parent 72 0 R >> +160 0 obj +<< /Type /Page /Contents 161 0 R /Resources 159 0 R /MediaBox [ 0 0 612 792 ] /Parent 66 0 R >> endobj -164 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 4 /PTEX.InfoDict << /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203828+02'00') /ModDate (D:20220915203828+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> /BBox [ 0 0 595.276 841.89 ] /Resources << /ExtGState 125 0 R /Font << /F15 126 0 R >> /ProcSet [ /PDF /Text ] >> /Length 123 >> +157 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 4 /PTEX.InfoDict << /Producer (luahbtex-1.17.0) /Creator /Author /Title /CreationDate (D:20230911094549+02'00') /ModDate (D:20230911094549+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> /BBox [ 0 0 612 792 ] /Resources << /ExtGState 118 0 R /Font << /F15 119 0 R >> /ProcSet [ /PDF /Text ] >> /Length 122 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<00230048006D0023>]TJ -1 0 0 1 303.133 139.255 Tm [<0039>]TJ +1 0 0 1 148.712 657.235 Tm [<00230048006D0023>]TJ +1 0 0 1 303.133 89.365 Tm [<0039>]TJ ET endstream endobj -168 0 obj -<< /D [ 166 0 R /XYZ 132.768 705.06 null ] >> +162 0 obj +<< /D [ 160 0 R /XYZ 132.768 705.06 null ] >> endobj -165 0 obj -<< /ExtGState 1 0 R /XObject << /Im9 164 0 R >> /ProcSet [ /PDF ] >> +159 0 obj +<< /ExtGState 1 0 R /XObject << /Im9 157 0 R >> /ProcSet [ /PDF ] >> endobj 1 0 obj << /opacity1 <> >> endobj -169 0 obj +163 0 obj [ 82 [ 500 ] ] endobj -171 0 obj +165 0 obj << /Length 11 >> stream endstream endobj -172 0 obj +166 0 obj << /Subtype /CIDFontType0C /Length 574 >> stream JFRMQG+LMRoman10-RegularE!"  &  B " $ % JFRMQG+LMRoman10-Regular2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman10-RegularLMRoman10NormalAdobeIdentityRKwp7k1tKM3klƋg1kl⋳⋈ &5 uCnJTl/ endstream endobj -170 0 obj -<< /Type /FontDescriptor /FontName /JFRMQG+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 172 0 R /CIDSet 171 0 R >> +164 0 obj +<< /Type /FontDescriptor /FontName /JFRMQG+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 166 0 R /CIDSet 165 0 R >> endobj -173 0 obj +167 0 obj << /Length 692 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -1200,210 +1400,204 @@ end endstream endobj -71 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JFRMQG+LMRoman10-Regular /DescendantFonts [ 174 0 R ] /ToUnicode 173 0 R >> +65 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JFRMQG+LMRoman10-Regular /DescendantFonts [ 168 0 R ] /ToUnicode 167 0 R >> endobj -174 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JFRMQG+LMRoman10-Regular /FontDescriptor 170 0 R /W 169 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +168 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JFRMQG+LMRoman10-Regular /FontDescriptor 164 0 R /W 163 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -72 0 obj -<< /Type /Pages /Count 5 /Kids [ 5 0 R 117 0 R 153 0 R 160 0 R 166 0 R ] >> +66 0 obj +<< /Type /Pages /Count 5 /Kids [ 5 0 R 111 0 R 146 0 R 153 0 R 160 0 R ] >> endobj -175 0 obj -<< /Names [ (Doc-Start) 60 0 R (NEWPAX@doc-input1.newpax@1@) 61 0 R (NEWPAX@doc-input1.newpax@1@B) 66 0 R (NEWPAX@doc-input1.newpax@2@) 62 0 R (NEWPAX@doc-input1.newpax@2@B) 67 0 R (NEWPAX@doc-input1.newpax@3@) 63 0 R (NEWPAX@doc-input1.newpax@3@B) 68 0 R (NEWPAX@doc-input1.newpax@4@) 64 0 R (NEWPAX@doc-input1.newpax@4@B) 69 0 R (NEWPAX@doc-input1.newpax@5@) 65 0 R (NEWPAX@doc-input1.newpax@5@B) 70 0 R (NEWPAX@doc-input2.newpax@1@B) 119 0 R (NEWPAX@doc-input2.newpax@2@B) 120 0 R (NEWPAX@doc-input2.newpax@3@B) 121 0 R (NEWPAX@doc-input2.newpax@4@B) 122 0 R (page.1) 59 0 R (page.2) 123 0 R (page.3) 155 0 R (page.4) 162 0 R (page.5) 168 0 R ] /Limits [ (Doc-Start) (page.5) ] >> +169 0 obj +<< /Names [ (Doc-Start) 58 0 R (doc-input1.newpax@section.1) 60 0 R (doc-input1.newpax@section.1@B) 63 0 R (doc-input1.newpax@section.2) 59 0 R (doc-input1.newpax@section.2@B) 62 0 R (doc-input1.newpax@section.3) 61 0 R (doc-input1.newpax@section.3@B) 64 0 R (doc-input2.newpax@section.1@B) 113 0 R (doc-input2.newpax@section.2@B) 114 0 R (doc-input2.newpax@section.3@B) 115 0 R (page.1) 57 0 R (page.2) 116 0 R (page.3) 148 0 R (page.4) 155 0 R (page.5) 162 0 R ] /Limits [ (Doc-Start) (page.5) ] >> endobj -176 0 obj -<< /Dests 175 0 R >> +170 0 obj +<< /Dests 169 0 R >> endobj -177 0 obj -<< /Type /Catalog /Pages 72 0 R /Names 176 0 R /Lang (en-US)/PageMode /UseOutlines/OpenAction [5 0 R /Fit]/PageLabels <>]>> >> +171 0 obj +<< /Type /Catalog /Pages 66 0 R /Names 170 0 R /Lang (en-US)/PageMode /UseOutlines/OpenAction [5 0 R /Fit]/PageLabels <>]>>/Metadata 158 0 R >> endobj -178 0 obj -<< /Creator /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203954+02'00') /ModDate (D:20220915203954+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> +172 0 obj +<< /Producer (luahbtex-1.17.0)/Creator /CreationDate (D:20230911094644+02'00')/ModDate (D:20230911094644+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref -0 179 +0 173 0000000002 65535 f -0000063994 00000 n +0000074133 00000 n 0000000003 00000 f 0000000004 00000 f +0000000051 00000 f +0000000588 00000 n +0000001210 00000 n +0000000996 00000 n +0000030566 00000 n +0000030777 00000 n +0000023414 00000 n +0000023636 00000 n +0000023858 00000 n +0000024080 00000 n +0000024302 00000 n +0000024523 00000 n +0000024745 00000 n +0000024967 00000 n +0000025189 00000 n +0000025410 00000 n +0000025632 00000 n +0000025854 00000 n +0000026076 00000 n +0000021638 00000 n +0000021423 00000 n +0000026767 00000 n +0000030987 00000 n +0000031198 00000 n +0000031409 00000 n +0000022570 00000 n +0000031620 00000 n +0000031834 00000 n +0000026989 00000 n +0000027211 00000 n +0000027433 00000 n +0000027655 00000 n +0000027877 00000 n +0000028099 00000 n +0000028321 00000 n +0000028543 00000 n +0000028765 00000 n +0000028987 00000 n +0000029209 00000 n +0000029431 00000 n +0000029653 00000 n +0000022851 00000 n +0000030344 00000 n +0000032048 00000 n +0000032262 00000 n +0000032476 00000 n +0000023133 00000 n +0000000052 00000 f 0000000053 00000 f -0000000668 00000 n -0000001304 00000 n -0000001090 00000 n -0000031533 00000 n -0000031744 00000 n -0000023523 00000 n -0000023745 00000 n -0000023967 00000 n -0000024189 00000 n -0000024411 00000 n -0000024633 00000 n -0000024855 00000 n -0000025077 00000 n -0000025299 00000 n -0000025521 00000 n -0000025742 00000 n -0000025964 00000 n -0000026186 00000 n -0000026877 00000 n -0000021739 00000 n -0000021524 00000 n -0000027309 00000 n -0000031955 00000 n -0000032166 00000 n -0000032377 00000 n -0000022677 00000 n -0000032588 00000 n -0000032801 00000 n -0000027531 00000 n -0000027752 00000 n -0000027974 00000 n -0000028195 00000 n -0000028417 00000 n -0000028639 00000 n -0000028861 00000 n -0000029081 00000 n -0000029303 00000 n -0000029524 00000 n -0000029746 00000 n -0000029967 00000 n -0000030189 00000 n -0000030879 00000 n -0000022958 00000 n -0000031311 00000 n -0000033012 00000 n -0000033225 00000 n -0000033438 00000 n -0000023240 00000 n -0000000054 00000 f -0000000055 00000 f 0000000000 00000 f -0000035014 00000 n -0000034380 00000 n +0000033792 00000 n +0000033177 00000 n 0000000020 00000 n -0000033651 00000 n -0000033711 00000 n -0000033772 00000 n -0000033833 00000 n -0000033893 00000 n -0000033954 00000 n -0000034015 00000 n -0000034076 00000 n -0000034137 00000 n -0000034197 00000 n -0000034258 00000 n -0000034319 00000 n -0000065796 00000 n -0000066155 00000 n -0000000792 00000 n -0000021458 00000 n -0000006694 00000 n -0000006744 00000 n -0000006898 00000 n -0000007051 00000 n -0000007202 00000 n -0000007402 00000 n -0000008684 00000 n -0000008883 00000 n -0000009861 00000 n -0000010058 00000 n -0000010857 00000 n -0000011093 00000 n -0000011451 00000 n -0000011686 00000 n -0000011894 00000 n -0000012128 00000 n -0000012208 00000 n -0000017493 00000 n -0000017560 00000 n -0000020057 00000 n -0000020123 00000 n -0000021393 00000 n -0000022610 00000 n -0000022892 00000 n -0000023173 00000 n -0000023456 00000 n -0000058666 00000 n -0000055144 00000 n -0000055348 00000 n -0000055551 00000 n -0000055754 00000 n -0000055957 00000 n -0000056159 00000 n -0000056362 00000 n -0000056565 00000 n -0000056768 00000 n -0000056970 00000 n -0000057173 00000 n -0000057375 00000 n -0000057579 00000 n -0000058252 00000 n -0000059169 00000 n -0000034744 00000 n -0000034541 00000 n -0000058851 00000 n -0000058915 00000 n -0000058979 00000 n -0000059042 00000 n -0000059106 00000 n -0000034873 00000 n -0000040340 00000 n -0000040391 00000 n -0000040548 00000 n -0000040704 00000 n -0000040858 00000 n -0000041061 00000 n -0000042344 00000 n -0000042546 00000 n -0000043525 00000 n -0000043725 00000 n -0000044525 00000 n -0000044764 00000 n -0000045123 00000 n -0000045361 00000 n -0000045570 00000 n -0000045807 00000 n -0000045888 00000 n -0000051174 00000 n -0000051242 00000 n -0000053740 00000 n -0000053807 00000 n -0000055078 00000 n -0000059639 00000 n -0000060514 00000 n -0000060718 00000 n -0000060903 00000 n -0000061088 00000 n -0000061336 00000 n -0000059457 00000 n -0000059254 00000 n -0000061273 00000 n -0000059586 00000 n -0000061783 00000 n -0000062515 00000 n -0000062761 00000 n -0000061625 00000 n -0000061422 00000 n -0000062698 00000 n -0000061754 00000 n -0000063163 00000 n -0000063908 00000 n -0000063050 00000 n -0000062847 00000 n -0000063845 00000 n -0000064041 00000 n -0000064804 00000 n -0000064073 00000 n -0000064145 00000 n -0000065043 00000 n -0000065952 00000 n -0000066248 00000 n -0000066949 00000 n -0000066987 00000 n -0000067146 00000 n +0000032690 00000 n +0000032750 00000 n +0000032811 00000 n +0000032872 00000 n +0000032933 00000 n +0000032994 00000 n +0000033055 00000 n +0000033116 00000 n +0000075935 00000 n +0000076294 00000 n +0000000712 00000 n +0000021357 00000 n +0000006593 00000 n +0000006643 00000 n +0000006797 00000 n +0000006950 00000 n +0000007101 00000 n +0000007301 00000 n +0000008583 00000 n +0000008782 00000 n +0000009760 00000 n +0000009957 00000 n +0000010756 00000 n +0000010992 00000 n +0000011350 00000 n +0000011585 00000 n +0000011793 00000 n +0000012027 00000 n +0000012107 00000 n +0000017392 00000 n +0000017459 00000 n +0000019956 00000 n +0000020022 00000 n +0000021292 00000 n +0000022503 00000 n +0000022785 00000 n +0000023066 00000 n +0000023348 00000 n +0000057435 00000 n +0000053915 00000 n +0000054118 00000 n +0000054321 00000 n +0000054523 00000 n +0000054725 00000 n +0000054928 00000 n +0000055130 00000 n +0000055332 00000 n +0000055535 00000 n +0000055738 00000 n +0000055941 00000 n +0000056144 00000 n +0000056348 00000 n +0000057021 00000 n +0000057875 00000 n +0000033527 00000 n +0000033338 00000 n +0000057620 00000 n +0000057684 00000 n +0000057748 00000 n +0000057812 00000 n +0000033656 00000 n +0000039111 00000 n +0000039162 00000 n +0000039319 00000 n +0000039475 00000 n +0000039629 00000 n +0000039832 00000 n +0000041115 00000 n +0000041317 00000 n +0000042296 00000 n +0000042496 00000 n +0000043296 00000 n +0000043535 00000 n +0000043894 00000 n +0000044132 00000 n +0000044341 00000 n +0000044578 00000 n +0000044659 00000 n +0000049945 00000 n +0000050013 00000 n +0000052511 00000 n +0000052578 00000 n +0000053849 00000 n +0000058331 00000 n +0000059200 00000 n +0000059404 00000 n +0000059590 00000 n +0000059776 00000 n +0000060025 00000 n +0000058149 00000 n +0000057960 00000 n +0000059962 00000 n +0000058278 00000 n +0000060458 00000 n +0000061184 00000 n +0000061429 00000 n +0000060300 00000 n +0000060111 00000 n +0000061366 00000 n +0000060429 00000 n +0000073308 00000 n +0000061515 00000 n +0000074047 00000 n +0000073195 00000 n +0000073006 00000 n +0000073984 00000 n +0000074180 00000 n +0000074943 00000 n +0000074212 00000 n +0000074284 00000 n +0000075182 00000 n +0000076091 00000 n +0000076387 00000 n +0000076905 00000 n +0000076943 00000 n +0000077119 00000 n trailer -<< /Size 179 /Root 177 0 R /Info 178 0 R /ID [ ] >> +<< /Size 173 /Root 171 0 R /Info 172 0 R /ID [ <6E61351897C7EE291BE8A2D5DE959B0C> <6E61351897C7EE291BE8A2D5DE959B0C> ] >> startxref -67446 +77418 %%EOF diff --git a/macros/latex/contrib/newpax/doc-use-pax.pdf b/macros/latex/contrib/newpax/doc-use-pax.pdf index 624a2b7370..d3bb80f7ab 100644 Binary files a/macros/latex/contrib/newpax/doc-use-pax.pdf and b/macros/latex/contrib/newpax/doc-use-pax.pdf differ diff --git a/macros/latex/contrib/newpax/newpax.dtx b/macros/latex/contrib/newpax/newpax.dtx index 12566c7053..e0557589fd 100644 --- a/macros/latex/contrib/newpax/newpax.dtx +++ b/macros/latex/contrib/newpax/newpax.dtx @@ -2,7 +2,7 @@ % % File: newpax.dtx % Copyright 2006-2008, 2011, 2012 Heiko Oberdiek (original pax.sty) -% Copyright (C) 2021, 2022 Ulrike Fischer +% Copyright (C) 2021--2023 Ulrike Fischer % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -27,14 +27,15 @@ % \begin{macrocode} %<*package> %<@@=newpax> -\NeedsTeXFormat{LaTeX2e} +\NeedsTeXFormat{LaTeX2e}[2022-11-01] \ProvidesPackage{newpax}% - [2022-09-15 v0.53 Annotation support for PDF graphics based on pax.sty adapted by (UF)]% + [2023-09-11 v0.54 Annotation support for PDF graphics based on pax.sty adapted by (UF)]% +% \end{macrocode} +% Test if the pdfmanagement is loaded: +% \begin{macrocode} \ExplSyntaxOn -\bool_if:nF - { - \cs_if_exist_p:N \pdfmanagement_if_active_p: - } +\IfDocumentMetadataTF + {} { %error for now, perhaps warning later. \PackageError{newpax} { @@ -43,31 +44,93 @@ } { Load~it~with \MessageBreak - \string\RequirePackage{pdfmanagement-testphase}\MessageBreak + \string\DocumentMetadata{}\MessageBreak before~loading~the~class } } \ExplSyntaxOff \RequirePackage{graphicx} -\RequirePackage{ltxcmds}[2011/04/18] -\RequirePackage{kvsetkeys}[2011/04/07] -\RequirePackage{kvoptions}[2010/12/23] -\RequirePackage{auxhook}[2011/03/04] \RequirePackage{etoolbox} -\RequirePackage{xfp} \ExplSyntaxOn -%to replace \pdf@strcmp -\cs_set_eq:NN \newpax@str@if@eq@@@@nnT\str_if_eq:nnT +% \end{macrocode} +% \subsection{Variables} +% Variables inherited from the pax code use \cs{NEWPAX} +% as prefix. +% \begin{variable}{\l_@@_tmpa_box} +% \begin{macrocode} +\box_new:N \l_@@_tmpa_box +% \end{macrocode} +% \end{variable} +% \begin{variable}{ \l_@@_use_attributes_bool} +% Used by the \texttt{usefileattributes} key. +% \begin{macrocode} \bool_new:N \l_@@_use_attributes_bool +% \end{macrocode} +% \end{variable} +% +% \begin{variable}{ \l_@@_addannots_bool} +% Used by the \texttt{addannots} key. +% \begin{macrocode} \bool_new:N \l_@@_addannots_bool +% \end{macrocode} +% \end{variable} +% +% \begin{variable}{ \l_@@_dests_all_bool} +% Used by the \texttt{dests} key. +% if true newpax will insert more destinations. +% \begin{macrocode} +\bool_new:N \l_@@_dests_all_bool +% \end{macrocode} +% \end{variable} +% \begin{variable}{ \l_@@_destsuffic_tl} +% Used by the \texttt{addannots} key. +% \begin{macrocode} \tl_new:N \l_@@_destsuffix_tl +% \end{macrocode} +% \end{variable} +% +% \begin{variable}{\NEWPAX@fileextension} +% the extension of the generated file, the default it newpax. +% \begin{macrocode} \tl_new:N \NEWPAX@fileextension - +% \end{macrocode} +% \end{variable} +% +% \begin{variable}{\NEWPAX@Gin@box@opts} +% this hold the options of a annotation +% \begin{macrocode} +\tl_new:N \NEWPAX@Gin@box@opts +% \end{macrocode} +% \end{variable} +% +% \begin{macro}{\ifNEWPAX@Gin@clip} +% \begin{macrocode} +\newif\ifNEWPAX@Gin@clip +% \end{macrocode} +% \end{macro} +% +% \subsection{Variants} +% +% \begin{macro}{\newpax@str@if@eq@@@@nnT} +% a latex2e variant of \cs{str_if_eq:nnT} to replace +% \cs{pdf@strcmp} +% \begin{macrocode} +\cs_set_eq:NN \newpax@str@if@eq@@@@nnT\str_if_eq:nnT +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} \cs_generate_variant:Nn \pdfannot_dict_put:nnn {nnx,xnx,xnn} +\cs_generate_variant:Nn \pdfannot_link_goto_begin:nw {xw} +\cs_generate_variant:Nn \pdf_destination:nn {xx} +% \end{macrocode} +% +% \subsection{User setup command} +% \begin{macrocode} \NewDocumentCommand\newpaxsetup { m } { \keys_set:nn {newpax}{ #1} @@ -76,16 +139,27 @@ \keys_define:nn {newpax} { usefileattributes .bool_set:N = \l_@@_use_attributes_bool, - destsuffix .tl_set:N = \l_@@_destsuffix_tl, + destsuffix .code:n = {\tl_set:Nn \l_@@_destsuffix_tl{@#1}}, addannots .bool_set:N = \l_@@_addannots_bool, addannots .default:n = true, addannots .initial:n = true, paxextension .choices:nn = {pax,newpax} {\tl_set:Nn \NEWPAX@fileextension {#1}}, - paxextension .initial:n = newpax + paxextension .initial:n = newpax, + dests .choice:, + dests/all .code:n = {\bool_set_true:N \l_@@_dests_all_bool}, + dests/used .code:n = {\bool_set_false:N \l_@@_dests_all_bool}, + dests .initial:n = used } +% \end{macrocode} +% \subsection{Helper commands to create the annotations} +% +% \begin{macro}{\@NEWPAX@setattributes@n} +% This adds or removes attributes from the annot dictionaries. +% The argument is a link type like URI or Goto. +% \begin{macrocode} \cs_new_protected:Npn \@NEWPAX@setattributes@n #1 %link type { \bool_if:NT \l_@@_use_attributes_bool @@ -133,87 +207,121 @@ } } - - - +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@NEWPAX@linkgoto@xnn} +% this creates a goto link to the destination given in the first argument, +% and the size given in the second and third argument. +% \begin{macrocode} \cs_new_protected:Npn \@NEWPAX@linkgoto@xnn #1 #2 #3 %#1 dest #2 width #3 height { \group_begin: - \exp_args:Nx\@NEWPAX@setattributes@n {GoTo} + \@NEWPAX@setattributes@n {GoTo} \leavevmode - \exp_args:Nx\pdfannot_link_goto_begin:nw + \pdfannot_link_goto_begin:xw { #1 } \@NEWPAX@ensurelinkbox@n{\hbox_to_wd:nn {#2}{ { \rule{0pt}{#3} }\hfill}} \pdfannot_link_goto_end: \group_end: } - +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@NEWPAX@link@setaction@nn} +% This puts the action into the dict +% if the annot is a link. \#1 is a type like +% URI or Goto, \#2 the actual action. +% \begin{macrocode} \cs_new_protected:Npn \@NEWPAX@link@setaction@nn #1 #2 { \pdfannot_dict_put:nnn{link/#1}{Subtype}{/Link} \pdfannot_dict_put:nnx{link/#1}{A} {<>} } - - - +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@NEWPAX@annotboxlink@nnn} +% This creates an annotation link box. +% \begin{macrocode} \cs_new_protected:Npn \@NEWPAX@annotboxlink@nnn #1 #2 #3 %#1 type, #2 width #3 height { \group_begin: - \exp_args:Nx\@NEWPAX@setattributes@n {#1} + \@NEWPAX@setattributes@n {#1} \leavevmode \pdfannot_box:nnnx {#2}{#3}{0pt} {\pdfannot_dict_use:n{link/#1}} \group_end: } - +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@NEWPAX@destination@xx} +% This creates a destination. The first argument is the +% name, the second the placement type (e.g. fit or xyz). +% \begin{macrocode} \cs_new_protected:Npn \@NEWPAX@destination@xx #1 #2 { - \exp_args:Nxx \pdf_destination:nn {#1}{#2} + \pdf_destination:xx {#1}{#2} } - -% only defined if hyperref is loaded ... -\sys_if_engine_xetex:TF +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@NEWPAX@ensurelinkbox@n} +% XeTeX needs in some places a specific box to ensure the size. +% TODO: check the mailing list for the alternative. +% \begin{macrocode} +\cs_new_eq:NN \@NEWPAX@ensurelinkbox@n \use:n +\AddToHook{package/hyperref/after} { - \cs_set_eq:NN \@NEWPAX@ensurelinkbox@n \XeTeXLinkBox - } + \sys_if_engine_xetex:T + { + \cs_set_eq:NN \@NEWPAX@ensurelinkbox@n \XeTeXLinkBox + } + } +% \end{macrocode} +% \end{macro} +% +% \subsection{Handling graphics commands} +% We must redefine \cs{includegraphics} to inject the code which +% reinserts the annotation. This can't be done with hooks as the +% standard code splits everything too much. +% +% \begin{macro}{\NEWPAX@ORG@includegraphics} +% At first we redefine \cs{includegraphics} to use our new command. +% \begin{macrocode} +\NewCommandCopy\NEWPAX@ORG@includegraphics\includegraphics +\RenewDocumentCommand\includegraphics{sO{}m} { - \cs_set_eq:NN \@NEWPAX@ensurelinkbox@n \use:n + \IfBooleanTF {#1} + { + \NEWPAX@includegraphics[clip,#2]{#3} + } + { + \NEWPAX@includegraphics[#2]{#3} + } } -\ExplSyntaxOff -% Hook into \includegraphics of graphicx with one optional -% star, one optional argument with key value pairs and -% the graphics name -\let\NEWPAX@ORG@includegraphics\includegraphics -\def\includegraphics{% - \@ifstar{% - \@ifnextchar[{% - \begingroup - \def\x{\endgroup - \NEWPAX@includegraphics[clip,% - }% - \expandafter\x\@gobble - }{% - \NEWPAX@includegraphics[clip]% - }% - }{% - \@ifnextchar[{% - \NEWPAX@includegraphics - }{% - \NEWPAX@includegraphics[]% - }% - }% -} - -\ExplSyntaxOn +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\NEWPAX@includegraphics} +% \begin{macrocode} \def\NEWPAX@includegraphics[#1]#2{% - \begingroup - \sbox0{\NEWPAX@ORG@includegraphics[{#1}]{#2}}% - \edef\NEWPAX@inc@width{\the\wd0}% - \edef\NEWPAX@inc@height{\the\dimexpr\dp0+\ht0}% - \leavevmode - \hbox to \wd0{% - \rlap{\copy0}% + \group_begin: + \hbox_set:Nn \l_@@_tmpa_box {\NEWPAX@ORG@includegraphics[{#1}]{#2}}% + \tl_set:Nx \NEWPAX@inc@width + { \dim_eval:n { \box_wd:N \l_@@_tmpa_box } }% + \tl_set:Nx \NEWPAX@inc@height + { \dim_eval:n { \box_dp:N \l_@@_tmpa_box + \box_ht:N \l_@@_tmpa_box } }% + \mode_leave_vertical: + \hbox_to_wd:nn + { \box_wd:N \l_@@_tmpa_box } + { + \hbox_overlap_right:n { \box_use:N \l_@@_tmpa_box } \bool_if:nT { \l_@@_addannots_bool && @@ -230,32 +338,54 @@ ) } { - \raise-\dp0\hbox - { - \NEWPAX@AddAnnots{#1}{#2}% - } + \box_move_down:nn + {\box_dp:N \l_@@_tmpa_box } + { + \hbox:n + { + \NEWPAX@AddAnnots{#1}{#2}% + } + } } \hfill } - \endgroup + \group_end: } +% \end{macrocode} +% \end{macro} +% +% \subsection{Handling the newpax file} +% The following keys were previously defined +% with kvoptions, the names of the internal commands are kept for now. +% The keys are used in the optional argument of \cs{includegraphics} +% and extend their functions. +% \begin{macrocode} +\keys_define:nn {newpax/Gin} + { + ,page .tl_set:N = \NEWPAX@Gin@page + ,page .initial:n = 1 + ,angle .tl_set:N = \NEWPAX@Gin@angle + ,angle .initial:n = 0 + ,clip .legacy_if_set:n = NEWPAX@Gin@clip + ,viewport .code:n = + { + \tl_put_right:Nn\NEWPAX@Gin@box@opts + {\NEWPAX@viewport#1\\} + } + ,trim .code:n = + { + \tl_put_right:Nn\NEWPAX@Gin@box@opts + {\NEWPAX@trim#1\\} + } + ,unknown .code:n = {} + } \ExplSyntaxOff -\SetupKeyvalOptions{family=NEWPAX@Gin,prefix=NEWPAX@Gin@} -\DeclareStringOption[1]{page} -\DeclareStringOption[0]{angle} -\DeclareBoolOption{clip} -\define@key{NEWPAX@Gin}{viewport}{% - \ltx@LocalAppendToMacro\NEWPAX@Gin@box@opts{% - \NEWPAX@viewport#1\\% - }% -} -\define@key{NEWPAX@Gin}{trim}{% - \ltx@LocalAppendToMacro\NEWPAX@Gin@box@opts{% - \NEWPAX@trim#1\\% - }% -} -\let\NEWPAX@Gin@box@opts\@empty +% \end{macrocode} +% +% Calculate coordinates +% \begin{macro}{\NEWPAX@viewport,\NEWPAX@trim,\NEWPAX@defaultbp,\NEWPAX@def@bp} +% \begin{macrocode} \def\NEWPAX@viewport#1 #2 #3 #4\\{% \NEWPAX@defaultbp\NEWPAX@vllx{#1}% \NEWPAX@defaultbp\NEWPAX@vlly{#2}% @@ -276,7 +406,6 @@ \edef\NEWPAX@page@urx{\dimexpr\NEWPAX@page@urx-\NEWPAX@turx\relax}% \edef\NEWPAX@page@ury{\dimexpr\NEWPAX@page@ury-\NEWPAX@tury\relax}% } - \def\NEWPAX@defaultbp#1#2{% \afterassignment\NEWPAX@def@bp\dimen@#2bp\relax{#1}{#2}% } @@ -287,12 +416,14 @@ \edef#2{#3}% \fi } - -% ignore unknown options in family `NEWPAX@Gin' -\kv@set@family@handler{NEWPAX@Gin}{} - +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\NEWPAX@AddAnnots} +% This command is the main command that reads and parses the newpax file. +% \begin{macrocode} \def\NEWPAX@AddAnnots#1#2{% - \kvsetkeys{NEWPAX@Gin}{#1}% + \SetKeys[newpax/Gin]{#1}% \Grot@setangle{\NEWPAX@Gin@angle}% % a little careful, is type of angle int or real? \loop @@ -321,13 +452,24 @@ \catcode`\#=12 \catcode`\%=12 \InputIfFileExists\NEWPAX@file{}{\typeout{* Missing: \NEWPAX@file}}\endgroup } +% \end{macrocode} +% \end{macro} +% The parsing commands +% With \cs{NEWPAX@parser} normally \cs{NEWPAX@cmd@XXX} is called, where +% XXX is file, pagenum, annot, page or dest. +% \begin{macrocode} \def\NEWPAX@parser#1{\NEWPAX@call{cmd}{#1}{}}% +% \end{macrocode} +% \begin{macrocode} \def\NEWPAX@call#1#2#3{% \@ifundefined{NEWPAX@#1@#2}\NEWPAX@skip{#3\csname NEWPAX@#1@#2\endcsname}% } \def\NEWPAX@skip#1\\{} \def\NEWPAX@stop#1\\{} +% \end{macrocode} +% The command to handle the page entry. +% \begin{macrocode} \def\NEWPAX@cmd@page#1#2{% \NEWPAX@filter@page{#1}{% \NEWPAX@getrect{page}#2\@nil @@ -377,10 +519,16 @@ \NEWPAX@call{link}{#2}{% \begingroup \NEWPAX@getrect{annot}#1\@nil - \kvsetkeys{NEWPAX}{#3}% + \SetKeys[newpax/key]{#3}% }% \NEWPAX@skip } + +% \end{macrocode} + +% Now the main command which inserts annotations. +% \begin{macro}{\NEWPAX@pdf@annot} +% \begin{macrocode} \newif\ifNEWPAX@ok \NEWPAX@oktrue @@ -470,7 +618,7 @@ %additional box for lualatex ... \hbox{% \@NEWPAX@linkgoto@xnn - {NEWPAX@\NEWPAX@file @\NEWPAX@key@DestLabel @\csname l_@@_destsuffix_tl\endcsname}% + {\NEWPAX@file @\NEWPAX@DestName}% {\NEWPAX@width}% {\NEWPAX@height}% }% @@ -486,13 +634,18 @@ \fi \endgroup } - - +% \end{macrocode} +% \end{macro} +% +% What do they do?? +% \begin{macrocode} \def\NEWPAX@htype@GoToR{file} \def\NEWPAX@htype@GoTo{link} \def\NEWPAX@htype@Named{link} \def\NEWPAX@htype@URI{url} - +% \end{macrocode} +% +% \begin{macrocode} \ExplSyntaxOn \def\NEWPAX@link@URI{% \NEWPAX@pdf@annot{% @@ -516,26 +669,71 @@ \fi }% } - -% GoTo - -\AddLineBeginAux{% - \string\providecommand{\string\NEWPAX@DestReq}[2]{}% -} -\AddLineBeginAux{% - \string\providecommand{\string\NEWPAX@DestProv}[2]{}% -} +% \end{macrocode} +% +% Goto links are the most challenging: here it is not enough to create an +% link annotation, one also have to ensure that the destination they point to exist +% and are correctly created. The destinations can be on previous (or later) +% pages that means that one has to use the aux to record what exists and what +% is needed. +% +% At first ensure that the commands are defined to avoid errors if newpax is removed +% \begin{macrocode} +\AddToHook{begindocument} + { + \immediate\write\@mainaux{\string\providecommand{\string\NEWPAX@DestReq}[2]{}} + \immediate\write\@mainaux{\string\providecommand{\string\NEWPAX@DestProv}[2]{}} + } +\AddToHook + {include/before} + { + \immediate\write\@partaux{\string\providecommand{\string\NEWPAX@DestReq}[2]{}} + \immediate\write\@partaux{\string\providecommand{\string\NEWPAX@DestProv}[2]{}} + } +% \end{macrocode} +% +% After the aux file has been read the commands should do nothing: +% \begin{macrocode} \AtBeginDocument{% \let\NEWPAX@DestReq\@gobbletwo \let\NEWPAX@DestProv\@gobbletwo } +% \end{macrocode} + +% \begin{macro}{\NEWPAX@DestReq} +% This command records the destinations that are required and should be reinserted. +% \begin{macrocode} \def\NEWPAX@DestReq#1#2{% \expandafter\gdef\csname NEWPAX@REQ@#1@#2\endcsname{}% } +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\NEWPAX@DestProv} +% This records the destinations that are provided. +% \begin{macrocode} \def\NEWPAX@DestProv#1#2{% \expandafter\gdef\csname NEWPAX@PROV@#1@#2\endcsname{}% } +% \end{macrocode} +% \end{macro} +% \begin{macro}[EXP]{\NEWPAX@DestName} +% This command expands either to the number or the name if it exists. +% \begin{macrocode} +\ExplSyntaxOn +\cs_new:Npn \NEWPAX@DestName + { + \tl_if_empty:eTF + { \NEWPAX@key@DestName } + { \NEWPAX@key@DestLabel} + { \NEWPAX@key@DestName } + \l_@@_destsuffix_tl + } +% \cs_set:Npn \NEWPAX@DestName { \NEWPAX@key@DestLabel } +% \end{macrocode} +% \end{macro} +% \begin{macrocode} \def\NEWPAX@link@GoTo{% \ifnum0<0\NEWPAX@key@DestLabel\relax \expandafter\@firstofone @@ -546,11 +744,11 @@ {% \if@filesw \protected@write\@auxout{}{% - \string\NEWPAX@DestReq{\NEWPAX@file}{\NEWPAX@key@DestLabel}% + \string\NEWPAX@DestReq{\NEWPAX@file}{\NEWPAX@DestName}% }% \fi % Generate link, if destination exists - \@ifundefined{NEWPAX@PROV@\NEWPAX@file @\NEWPAX@key@DestLabel}{% + \@ifundefined{NEWPAX@PROV@\NEWPAX@file @\NEWPAX@DestName}{% \endgroup }{% \NEWPAX@GoTotrue @@ -558,21 +756,32 @@ }% }% } - -% Read destinations +% \end{macrocode} +% This is the command which reads the destination info. +% \begin{macrocode} \def\NEWPAX@cmd@dest#1#2#3#4{% + \def\NEWPAX@key@DestLabel{#2}% + \def\NEWPAX@key@DestName{}% + \keys_set_groups:nnn {newpax/key} {destinit} {#4} \NEWPAX@filter@page{#1}{% \if@filesw \protected@write\@auxout{}{% - \string\NEWPAX@DestProv{\NEWPAX@file}{#2}% + \string\NEWPAX@DestProv{\NEWPAX@file}{\NEWPAX@DestName}% }% + \bool_if:NT\l_@@_dests_all_bool + { + \protected@write\@auxout{} + { + \string\NEWPAX@DestReq{\NEWPAX@file}{\NEWPAX@DestName}% + } + } \fi - \@ifundefined{NEWPAX@REQ@\NEWPAX@file @#2}{% + \@ifundefined{NEWPAX@REQ@\NEWPAX@file @\NEWPAX@DestName}{% }{% \begingroup \let\NEWPAX@key@DestY\NEWPAX@page@ury \let\NEWPAX@key@DestX\NEWPAX@page@llx - \kvsetkeys{NEWPAX}{#4}% + \keys_set_filter:nnn {newpax/key} {destinit} {#4} \let\NEWPAX@dest@llx\NEWPAX@key@DestX \let\NEWPAX@dest@urx\NEWPAX@key@DestX \let\NEWPAX@dest@lly\NEWPAX@key@DestY @@ -644,7 +853,8 @@ \NEWPAX@scale@y\dimexpr\NEWPAX@dest@lly-\NEWPAX@page@lly\relax }% \fi - \edef\NEWPAX@name{NEWPAX@\NEWPAX@file @#2@\csname l_@@_destsuffix_tl\endcsname}% + \edef\NEWPAX@name + {\NEWPAX@file @\NEWPAX@DestName}% \let\NEWPAX@type\@empty \newpax@str@if@eq@@@@nnT{#3}{FITR}{\def\NEWPAX@type{xyz}}%too lazy for now for better fitr \newpax@str@if@eq@@@@nnT{#3}{XYZ} @@ -668,41 +878,49 @@ \kern\NEWPAX@right \hbox{\@NEWPAX@destination@xx {\NEWPAX@name}{\NEWPAX@type}}% \hss - }% + }% \endgroup +% \end{macrocode} +% we undefine the REQ-command to avoid that the dest is set again. +% \begin{macrocode} + \cs_undefine:c{NEWPAX@REQ@\NEWPAX@file @\NEWPAX@DestName} }% \NEWPAX@skip }% } +% \end{macrocode} +% These are keys used in the newpax file. The command names are inherited from kvoptions. +% \begin{macrocode} +\keys_define:nn {newpax/key} + { + ,URI .tl_set:N = \NEWPAX@key@URI + ,Name .tl_set:N = \NEWPAX@key@Name + ,DestName .tl_set:N = \NEWPAX@key@DestName + ,DestName .groups:n = {destinit} + ,DestPage .tl_set:N = \NEWPAX@key@DestPage + ,DestView .tl_set:N = \NEWPAX@key@DestView + ,File .tl_set:N = \NEWPAX@key@File + ,C .tl_set:N = \NEWPAX@key@C + ,Border .tl_set:N = \NEWPAX@key@Border + ,BS .tl_set:N = \NEWPAX@key@BS + ,H .tl_set:N = \NEWPAX@key@H + ,DestLabel .tl_set:N = \NEWPAX@key@DestLabel + ,DestLabel .groups:n = {destinit} + ,DestRect .tl_set:N = \NEWPAX@key@DestRect + ,DestZoom .tl_set:N = \NEWPAX@key@DestZoom + ,DestX .code:n = { \NEWPAX@defaultbp\NEWPAX@key@DestX{#1} } + ,DestY .code:n = { \NEWPAX@defaultbp\NEWPAX@key@DestY{#1} } + } +\ExplSyntaxOff -\SetupKeyvalOptions{family=NEWPAX,prefix=NEWPAX@key@} -\DeclareStringOption{URI} -\DeclareStringOption{Name} -\DeclareStringOption{DestName} -\DeclareStringOption{DestPage} -\DeclareStringOption{DestView} -\DeclareStringOption{File} -\DeclareStringOption{C} -\DeclareStringOption{Border} -\DeclareStringOption{BS} -\DeclareStringOption{H} -\DeclareStringOption{DestLabel} -\DeclareStringOption{DestRect} -\DeclareStringOption{DestZoom} -\define@key{NEWPAX}{DestX}{% - \NEWPAX@defaultbp\NEWPAX@key@DestX{#1}% -} -\define@key{NEWPAX}{DestY}{% - \NEWPAX@defaultbp\NEWPAX@key@DestY{#1}% -} % % \end{macrocode} % \begin{macrocode} %<*lua> local ProvidesLuaModule = { name = "newpax", - version = "0.53", --TAGVERSION - date = "2022-09-15", --TAGDATE + version = "0.54", --TAGVERSION + date = "2023-09-11", --TAGDATE description = "newpax lua code", license = "The LATEX Project Public License 1.3c" } @@ -1096,11 +1314,19 @@ local function outputKV_gotor (pdfedict) -- action dictionary return a end +-- this outputs the key DestLabel with a count + local function outputKV_goto (count) local a = strKV_BEG .. constKEY_DEST_LABEL .. strVALUE_BEG .. count .. strVALUE_END .. strKV_END return a end +-- this outputs the key DestName with a name +local function outputKV_goto_name (name) + local a = strKV_BEG .. constKEY_DEST_NAME .. strVALUE_BEG .. name .. strVALUE_END .. strKV_END + return a +end + local function outputENTRY_dest (destcount,name,pagereftonum,destnamestoref,pdfedoc) local pagenum, data = getdestdata(name,pagereftonum,destnamestoref) local mediabox = pdfe.getbox(GETPAGE(pdfedoc,pagenum),"MediaBox") @@ -1120,7 +1346,7 @@ local function outputENTRY_dest (destcount,name,pagereftonum,destnamestoref,pdfe if data[4] and data[4][2] then a = a .. strKV_BEG .. constKEY_DEST_Y .. strVALUE_BEG .. data[4][2] .. strVALUE_END .. strKV_END else - a = a .. strKV_BEG .. constKEY_DEST_X .. strVALUE_BEG .. mediabox[4] .. strVALUE_END .. strKV_END + a = a .. strKV_BEG .. constKEY_DEST_Y .. strVALUE_BEG .. mediabox[4] .. strVALUE_END .. strKV_END end if data[5] and data[5][2] then a = a .. strKV_BEG .. constKEY_DEST_ZOOM .. strVALUE_BEG .. data[5][2] .. strVALUE_END .. strKV_END @@ -1150,6 +1376,11 @@ local function outputENTRY_dest (destcount,name,pagereftonum,destnamestoref,pdfe a = a .. data[5][2] .. strRECT_SEP a = a .. data[6][2] .. strVALUE_END .. strKV_END end + -- output also the name. This perhaps need a check if the name exists + -- print("DEBUG TYPE name", TYPE(name)) + if not (TYPE(name) == "pdfe.array") then + a = a .. strKV_BEG .. constKEY_DEST_NAME .. strVALUE_BEG .. name .. strVALUE_END .. strKV_END + end a = a .. strKVS_END .. strENTRY_END return a end @@ -1175,6 +1406,7 @@ local function __writepax (ext,file) -- build from names table: local destnamestorefVAR = getdestreferences (docVAR) local collected_destinations = {} + local useddestnames = {} -- output ... WRITE(strENTRY_BEG .. "{pax}{0.1l}" .. strENTRY_END) WRITE(outputENTRY_file(fileVAR,docVAR)) @@ -1203,6 +1435,7 @@ local function __writepax (ext,file) annotgoto,pagereftonumVAR,destnamestorefVAR,docVAR)) else local annotaction = GETDICTIONARY(annot,"A") + -- print("DEBUG A:",table.serialize(DICTIONARYTOTABLE(annotaction))) local annotactiontype ="" if annotaction then annotactiontype = GETNAME(annotaction,"S") @@ -1216,8 +1449,14 @@ local function __writepax (ext,file) if annotactiontype == constKEY_URI then WRITE ( outputKV_uri(annotaction) ) elseif annotactiontype =="GoTo" then + local desttype, destname, destdetail = GETFROMDICTIONARY(annotaction,"D") + -- print("DEBUG annotaction", desttype, destname, destdetail) destcountVAR=destcountVAR + 1 WRITE ( outputKV_goto (destcountVAR) ) + -- this needs perhaps a check if destname actually exists. + if desttype == 6 then + WRITE ( outputKV_goto_name(destname) ) + end elseif annotactiontype=="GoToR" then WRITE ( outputKV_gotor(annotaction) ) elseif annotactiontype=="Named" then @@ -1227,6 +1466,10 @@ local function __writepax (ext,file) WRITE(strENTRY_END) -- end annot data if annotactiontype =="GoTo" then local type,annotactiongoto,hex = GETFROMDICTIONARY(annotaction,"D") + if type==6 then + -- record used name + useddestnames[annotactiongoto] = 1 + end table.insert(collected_destinations, outputENTRY_dest(destcountVAR,annotactiongoto,pagereftonumVAR,destnamestorefVAR,docVAR)) end end @@ -1237,6 +1480,15 @@ local function __writepax (ext,file) for i=1,#collected_destinations do WRITE (collected_destinations[i]) end + -- write out the rest of the destinations. + for k,v in pairs (destnamestorefVAR) do + -- ignore use dests and page destinations. + i=string.find(k,"page.",1) + if not useddestnames[k] and not i then + destcountVAR=destcountVAR + 1 + WRITE(outputENTRY_dest(destcountVAR,k,pagereftonumVAR,destnamestorefVAR,docVAR)) + end + end io.close(writeVAR) end diff --git a/macros/latex/contrib/newpax/newpax.pdf b/macros/latex/contrib/newpax/newpax.pdf index b2391a73ee..44854b08c9 100644 --- a/macros/latex/contrib/newpax/newpax.pdf +++ b/macros/latex/contrib/newpax/newpax.pdf @@ -1,7 +1,7 @@ %PDF-1.7 % 7 0 obj -<< /Length 12144 >> +<< /Length 12145 >> stream /opacity1 gs 0 g 0 G @@ -18,13 +18,13 @@ stream 0 g 0 G BT /F46 20.66252 Tf -1 0 0 1 168.394 714.049 Tm [<0068003F0032>]TJ +1 0 0 1 168.673 714.049 Tm [<0068003F0032>]TJ /F47 20.66252 Tf -1 0 0 1 213.273 714.049 Tm [<004D003200720054001C0074>]TJ +1 0 0 1 213.552 714.049 Tm [<004D003200720054001C0074>]TJ 0 g 0 G /F46 20.66252 Tf -1 0 0 1 285.943 714.049 Tm [<0054001C002B0046001C003B0032002D>-367<0070007900580038006A>]TJ +1 0 0 1 286.222 714.049 Tm [<0054001C002B0046001C003B0032002D>-367<00700079005800380039>]TJ 0 g 0 G 0 g 0 G /F46 11.95517 Tf @@ -33,9 +33,9 @@ BT /F49 14.3462 Tf 1 0 0 1 252.361 665.805 Tm [<0036>12<004D0053>-8<004A004C0046>-225<0027>10<004A00540044004900460053>]TJ /F49 12.95146 Tf -1 0 0 1 342.914 666.569 Tm [<000B>]TJ +1 0 0 1 342.914 666.57 Tm [<000B>]TJ /F49 14.3462 Tf -1 0 0 1 261.6 636.963 Tm [<0013001100130013000E0011001A000E00120016>]TJ +1 0 0 1 261.794 636.963 Tm [<0013001100130014000E0011001A000E00120012>]TJ 0 g 0 G /F46 14.3462 Tf 1 0 0 1 74.008 559.773 Tm [<0052>-500<0041004D006900600051>-31<002F006D002B006900420051004D>]TJ @@ -964,8 +964,8 @@ endobj 36 0 obj << /ExtGState 1 0 R /Font << /F49 12 0 R /F28 14 0 R /F47 11 0 R /F46 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj -82 0 obj -<< /Length 11751 >> +83 0 obj +<< /Length 12680 >> stream /opacity1 gs 0 g 0 G @@ -1049,62 +1049,76 @@ BT 1.012 0 0 1 475.431 558.871 Tm [<056D004D0046>-222<004A0054>-223<004F00500055>]TJ 1 0 0 1 101.682 545.322 Tm [<004700500056004F0045000F>-300<002A>24<0055>-225<004A0054>-225<0053>20<004600440050004E004E0046004F004500460045>-225<00550050>-225<005400460055>-225<004A0055>-225<00550050>-225<00470042004D00540046>-225<004700500053>-225<00480053>10<004200510049004A00440054>-225<00580049004A00440049>-225<00450050004F>80<0445>75<0055>-225<004900420057>5<0046>-225<004D004A004F004C0054>20<000F>]TJ 0 g 0 G -/F46 14.3462 Tf -1 0 0 1 74.008 501.906 Tm [<0039>-500<004A0051>31<00600032>-367<0022001C002B0046003B00600051006D004D002F>]TJ +0 0.4 0.9 rg 0 0.4 0.9 RG +/F47 10.90909 Tf +1 0 0 1 74.409 524.998 Tm [<002F0032006200690062>]TJ 0 g 0 G +0 g 0 G +/F49 10.90909 Tf +0.98 0 0 1 108.162 524.998 Tm [<00350049004A0054>-219<004A0054>-219<0042>-219<004400490050004A00440046>-219<004C0046005A>98<000F>-302<0024>18<005600530053>21<0046004F0055004D005A>-218<005500490046>-219<0057>5<0042004D005600460054>]TJ +/F28 10.90909 Tf +1 0 0 1 304.274 524.998 Tm [<006D00620032002F>]TJ /F49 10.90909 Tf -0.999 0 0 1 74.409 469.287 Tm [<0024004D004A0044004C00420043004D0046>-226<004D004A004F004C0054>-226<004A004F>-226<0042>-227<003100250027>-226<00420053>20<0046>-226<0050004F0046>-226<004600590042004E0051004D0046>-226<00500047>-226<0042004F>-227<0042004F004F0050005500420055004A0050004F000F>-303<0022004F004F0050005500420055004A0050004F0054>-226<00420053>19<0046>-225<00420053>19<004600420054>-225<0050004F>-227<0042>-226<0051004200480046>]TJ -1.017 0 0 1 73.995 455.738 Tm [<00580049004A00440049>-221<00420053>19<0046>-221<00420054005400500044004A0042005500460045>-221<0058004A00550049>-222<0042004F>-221<004200440055004A0050004F000F>-296<0022>-222<0055005A0051004A00440042004D>-221<0042004F004F0050005500420055004A0050004F>-222<00500043004B004600440055>-221<004400500056004D0045>-222<004D00500050004C>-221<004D004A004C0046>-222<00550049004A0054>-221<004A004F>-222<005500490046>]TJ -1 0 0 1 74.409 442.189 Tm [<003100250027001B>]TJ +0.98 0 0 1 329.526 524.998 Tm [<0009005500490046>-219<00450046004700420056004D0055000A>-219<0042004F0045>]TJ /F28 10.90909 Tf -1 0 0 1 74.409 422.662 Tm [<00520038>-525<0079>-525<005100230044>]TJ -1 0 0 1 74.409 409.113 Tm [<00490049>]TJ -1 0 0 1 74.409 395.564 Tm [<00660068007600540032>-525<0066001B004D004D00510069>]TJ -1 0 0 1 74.409 382.015 Tm [<00660061006D00230069007600540032006600470042004D0046>]TJ -1 0 0 1 74.409 368.466 Tm [<0066005F0032002B0069>-525<00280052003900640058006400520065>-525<00650038003900580079006B0038>-525<006A007900520058003300330064>-525<0065006500380058005200380029>]TJ -1 0 0 1 74.409 354.916 Tm [<0066002200510060002F0032006000280079>-525<0079>-525<0052002900660022006100490049006600610066006C00660071>-525<0052003D003D0066003E006600410066002A00280079>-525<0052>-525<00520029>]TJ -1 0 0 1 74.409 341.367 Tm [<0066001B00490049006600680076005400320066001B002B006900420051004D006600610066006C005F00410066006C005F00410055003F0069006900540062002C0066006600720072007200580048001C006900320074004000540060005100440032002B0069005800510060003B0056003D003D>]TJ -1 0 0 1 74.409 327.818 Tm [<003D003D>]TJ -1 0 0 1 74.409 314.269 Tm [<0032004D002F005100230044>]TJ +1 0 0 1 412.331 524.998 Tm [<001C00480048>]TJ +/F49 10.90909 Tf +0.98 0 0 1 431.855 524.998 Tm [<00420053>20<0046>-218<0042004D004D0050>30<0058>7<00460045000F>-302<002A>18<004F>-218<005500490046>]TJ +0.98 0 0 1 101.682 511.449 Tm [<056D005300540055>-224<0044004200540046>-224<0050004F004D005A>-224<0045004600540055004A004F00420055004A0050004F0054>-224<0055004900420055>-224<00420053>20<0046>-223<005500420053>5<0048004600550054>-223<00500047>-224<004D004A004F004C0054>-224<004A004F>-224<005500490046>-224<004A004F0044004D0056004500460045>-224<003100250027>-225<0058004A004D004D>-224<00430046>-224<004A004F0044004D0056004500460045000D>]TJ +1.009 0 0 1 101.682 497.9 Tm [<004A004F>-223<005500490046>-223<0054004600440050004F0045>-224<0044004200540046>-223<0042004D004D>-223<0045004600540055004A004F00420055004A0050004F0054>-224<0009004A0047>-223<005500490046005A>-223<00420053>19<0046>-222<004A004F>-224<005500490046>-223<004A004F0044004D0056004500460045>-223<00510042004800460054000A>-224<0058004A004D004D>-223<00430046>-223<004A004F0044004D0056004500460045000F>]TJ +1.02 0 0 1 101.344 484.351 Tm [<003500490046>-270<0054004600440050004F0045>-271<00440042004F>-271<00430046>-271<00560054004600470056004D>-271<004A0047>-270<005A>5<00500056>-270<00580042004F0055>-271<00550050>-271<004D004A004F004C>-271<00550050>-270<0045004600540055004A004F00420055004A0050004F0054>-271<0447>48<00470053>6<0050004E>-270<005500490046>-271<0050005600550054004A00450046>59<0448>128<000D>-283<005400460046>]TJ +1 0 0 1 101.682 470.802 Tm [<00430046004D0050>30<0058>-225<0054004600440055004A0050004F>]TJ +0.0 0.0 1.0 rg 0.0 0.0 1.0 RG +1 0 0 1 171.86 470.802 Tm [<0017000F0012>]TJ 0 g 0 G +1 0 0 1 186.315 470.802 Tm [<000F>]TJ +0 g 0 G +/F46 14.3462 Tf +1 0 0 1 74.008 427.385 Tm [<0039>-500<004A0051>31<00600032>-367<0022001C002B0046003B00600051006D004D002F>]TJ 0 g 0 G /F49 10.90909 Tf -0.994 0 0 1 74.071 287.967 Tm [<00350049004A0054>-227<004A0054>-227<0042004F>-227<00500043004B004600440055>-227<00500047>-227<0055005A00510046>]TJ +0.999 0 0 1 74.409 394.767 Tm [<0024004D004A0044004C00420043004D0046>-226<004D004A004F004C0054>-226<004A004F>-226<0042>-227<003100250027>-226<00420053>20<0046>-226<0050004F0046>-226<004600590042004E0051004D0046>-226<00500047>-226<0042004F>-227<0042004F004F0050005500420055004A0050004F000F>-303<0022004F004F0050005500420055004A0050004F0054>-226<00420053>19<0046>-225<00420053>19<004600420054>-225<0050004F>-227<0042>-226<0051004200480046>]TJ +1.017 0 0 1 73.995 381.218 Tm [<00580049004A00440049>-221<00420053>19<0046>-221<00420054005400500044004A0042005500460045>-221<0058004A00550049>-222<0042004F>-221<004200440055004A0050004F000F>-296<0022>-222<0055005A0051004A00440042004D>-221<0042004F004F0050005500420055004A0050004F>-222<00500043004B004600440055>-221<004400500056004D0045>-222<004D00500050004C>-221<004D004A004C0046>-222<00550049004A0054>-221<004A004F>-222<005500490046>]TJ +1 0 0 1 74.409 367.669 Tm [<003100250027001B>]TJ /F28 10.90909 Tf -1 0 0 1 191.872 287.967 Tm [<001B004D004D00510069>]TJ +1 0 0 1 74.409 348.142 Tm [<00520038>-525<0079>-525<005100230044>]TJ +1 0 0 1 74.409 334.593 Tm [<00490049>]TJ +1 0 0 1 74.409 321.043 Tm [<00660068007600540032>-525<0066001B004D004D00510069>]TJ +1 0 0 1 74.409 307.494 Tm [<00660061006D00230069007600540032006600470042004D0046>]TJ +1 0 0 1 74.409 293.945 Tm [<0066005F0032002B0069>-525<00280052003900640058006400520065>-525<00650038003900580079006B0038>-525<006A007900520058003300330064>-525<0065006500380058005200380029>]TJ +1 0 0 1 74.409 280.396 Tm [<0066002200510060002F0032006000280079>-525<0079>-525<0052002900660022006100490049006600610066006C00660071>-525<0052003D003D0066003E006600410066002A00280079>-525<0052>-525<00520029>]TJ +1 0 0 1 74.409 266.847 Tm [<0066001B00490049006600680076005400320066001B002B006900420051004D006600610066006C005F00410066006C005F00410055003F0069006900540062002C0066006600720072007200580048001C006900320074004000540060005100440032002B0069005800510060003B0056003D003D>]TJ +1 0 0 1 74.409 253.297 Tm [<003D003D>]TJ +1 0 0 1 74.409 239.748 Tm [<0032004D002F005100230044>]TJ +0 g 0 G +0 g 0 G /F49 10.90909 Tf -0.994 0 0 1 222.971 287.967 Tm [<0042004F0045>-227<0054005600430055005A00510046>]TJ +0.994 0 0 1 74.071 213.447 Tm [<00350049004A0054>-227<004A0054>-227<0042004F>-227<00500043004B004600440055>-227<00500047>-227<0055005A00510046>]TJ /F28 10.90909 Tf -1 0 0 1 285.931 287.967 Tm [<00470042004D0046>]TJ +1 0 0 1 191.872 213.447 Tm [<001B004D004D00510069>]TJ /F49 10.90909 Tf -0.994 0 0 1 308.84 287.967 Tm [<000F>-304<003500490046>]TJ +0.994 0 0 1 222.971 213.447 Tm [<0042004F0045>-227<0054005600430055005A00510046>]TJ /F28 10.90909 Tf -1 0 0 1 336.363 287.967 Tm [<0066005F0032002B0069>]TJ +1 0 0 1 285.931 213.447 Tm [<00470042004D0046>]TJ /F49 10.90909 Tf -0.994 0 0 1 367.462 287.967 Tm [<0057>6<0042004D00560046>-226<00450046005400440053>-9<004A004300460054>-227<005500490046>-227<0053>20<0046004400550042004F0048004D0046>-226<00500047>]TJ -1.013 0 0 1 74.409 274.418 Tm [<00550049004A0054>-222<0042004F004F0050005500420055004A0050004F000F>-296<003500490046>-223<0044005000500053>19<0045004A004F0042005500460054>-221<00420053>19<0046>-221<0042004300540050004D005600550046>-223<0044005000500053>19<0045004A004F0042005500460054>-221<0053>19<0046004D0042005500460045>-221<00550050>-223<005500490046>-222<0044005600530053>19<0046004F0055>-221<0051004200480046>19<000F>-295<002A>23<0055>-222<004A0054>]TJ -0.984 0 0 1 74.409 260.869 Tm [<004A004E005100500053>-8<00550042004F0055>-229<00550050>-229<0056004F004500460053005400550042004F0045>-228<0055004900420055>-229<0042004F>-229<0042004F004F0050005500420055004A0050004F>-229<004A0054>-229<004F00500055>-229<00440050004F004F00460044005500460045>-229<00550050>-229<00540050004E0046>-229<0051004200480046>-229<00440050004F00550046004F0055>-229<004300560055>-229<0050004F004D005A>]TJ -0.98 0 0 1 74.409 247.32 Tm [<00550050>-213<0042>-214<004D0050004400420055004A0050004F0002>-301<003500490046>]TJ +0.994 0 0 1 308.84 213.447 Tm [<000F>-304<003500490046>]TJ /F28 10.90909 Tf -1 0 0 1 160.75 247.32 Tm [<0066002200510060002F00320060>]TJ +1 0 0 1 336.363 213.447 Tm [<0066005F0032002B0069>]TJ /F49 10.90909 Tf -0.98 0 0 1 203.126 247.32 Tm [<0054004600550055004A004F0048>-213<0042004F0045>-214<005500490046>-214<00500055004900460053>-214<0057>6<0042004D005600460054>-213<004A004F>-214<00550049004A0054>-213<004D004A004F0046>-214<00450046005400440053>-9<004A00430046>-213<005500490046>-214<004D00500050004C>-214<0042004F0045>-214<00440050004D00500053>]TJ -0.981 0 0 1 74.409 233.771 Tm [<00500047>-229<0042004F004F0050005500420055004A0050004F000F>-306<003500490046>]TJ +0.994 0 0 1 367.462 213.447 Tm [<0057>6<0042004D00560046>-226<00450046005400440053>-9<004A004300460054>-227<005500490046>-227<0053>20<0046004400550042004F0048004D0046>-226<00500047>]TJ +1.013 0 0 1 74.409 199.898 Tm [<00550049004A0054>-222<0042004F004F0050005500420055004A0050004F000F>-296<003500490046>-223<0044005000500053>19<0045004A004F0042005500460054>-221<00420053>19<0046>-221<0042004300540050004D005600550046>-223<0044005000500053>19<0045004A004F0042005500460054>-221<0053>19<0046004D0042005500460045>-221<00550050>-223<005500490046>-222<0044005600530053>19<0046004F0055>-221<0051004200480046>19<000F>-295<002A>23<0055>-222<004A0054>]TJ +0.984 0 0 1 74.409 186.348 Tm [<004A004E005100500053>-8<00550042004F0055>-229<00550050>-229<0056004F004500460053005400550042004F0045>-228<0055004900420055>-229<0042004F>-229<0042004F004F0050005500420055004A0050004F>-229<004A0054>-229<004F00500055>-229<00440050004F004F00460044005500460045>-229<00550050>-229<00540050004E0046>-229<0051004200480046>-229<00440050004F00550046004F0055>-229<004300560055>-229<0050004F004D005A>]TJ +0.98 0 0 1 74.409 172.799 Tm [<00550050>-213<0042>-214<004D0050004400420055004A0050004F0002>-301<003500490046>]TJ /F28 10.90909 Tf -1 0 0 1 167.553 233.771 Tm [<0066001B>]TJ +1 0 0 1 160.75 172.799 Tm [<0066002200510060002F00320060>]TJ /F49 10.90909 Tf -0.981 0 0 1 181.462 233.771 Tm [<0057>6<0042004D00560046>-229<00440050004F00550042004A004F0054>-229<005500490046>-229<004200440055004A0050004F000D>-230<004A004F>-229<00550049004A0054>-229<0044004200540046>-230<004A0055>-229<004A0054>-230<0042004F>-229<00560053004D>-229<00550050>-230<0042004F>-229<00460059005500460053>-8<004F0042004D>-229<0058>5<004600430054004A00550046>21<000F>]TJ -1 0 0 1 74.071 213.447 Tm [<0035>100<0050>-225<0447>50<0053>20<0046004200440055004A0057>6<004200550046>60<0448>-225<005500490046>-225<0042004F004F0050005500420055004A0050004F0054>-225<00500047>-225<0042004F>-225<004A004F0044004D0056004500460045>-225<005100450047>-225<0050004F0046>-225<004900420054>-225<00550050>-225<00450050>-225<0042>-225<004F0056004E004300460053>-225<00500047>-225<005500420054004C0054>20<000F>]TJ -0 g 0 G -1 0 0 1 91.766 193.123 Tm [<044C>]TJ -0 g 0 G -1.012 0 0 1 101.682 193.123 Tm [<0030>5<004F0046>-222<004E005600540055>]TJ -/F81 10.90909 Tf -1.012 0 0 1 152.957 193.123 Tm [<0053>26<004600550053004A00460057>6<0046>-222<0042004F0045>-223<0054005500500053>26<0046>]TJ +0.98 0 0 1 203.126 172.799 Tm [<0054004600550055004A004F0048>-213<0042004F0045>-214<005500490046>-214<00500055004900460053>-214<0057>6<0042004D005600460054>-213<004A004F>-214<00550049004A0054>-213<004D004A004F0046>-214<00450046005400440053>-9<004A00430046>-213<005500490046>-214<004D00500050004C>-214<0042004F0045>-214<00440050004D00500053>]TJ +0.981 0 0 1 74.409 159.25 Tm [<00500047>-229<0042004F004F0050005500420055004A0050004F000F>-306<003500490046>]TJ +/F28 10.90909 Tf +1 0 0 1 167.553 159.25 Tm [<0066001B>]TJ /F49 10.90909 Tf -1.012 0 0 1 240.183 193.123 Tm [<005500490046>-222<0042004F004F0050005500420055004A0050004F0054>-223<00500047>-223<005500490046>-222<004A004F0044004D0056004500460045>-223<005100450047000F>-298<0027>35<00500053>-221<004D004A004F004C0054>-223<00550050>-223<00460059005500460053>-8<004F0042004D>]TJ -1.02 0 0 1 101.682 179.574 Tm [<00560053004D>10<0445>110<0054>-238<00550049004A0054>-238<0053>19<004600520056004A0053>20<00460054>-237<00550050>-238<056D004F0045>-238<0050004F004D005A>-238<0050004F0046>-238<00500043004B004600440055>-238<004D004A004C0046>-238<005500490046>-238<0050004F0046>-238<005400490050>29<0058004F>-237<004200430050>29<0057>5<0046>20<000F>-346<0023>11<00560055>-237<0046>19<000F0048000F>-345<004A004F005500460053>-8<004F0042004D>]TJ -1 0 0 1 101.682 166.025 Tm [<004D004A004F004C0054>-225<00510050004A004F0055>-225<00550050>-225<0045004600540055004A004F00420055004A0050004F>-225<00500043004B0046004400550054>-225<0042004F0045>-225<00550049004600540046>-225<004E005600540055>-225<00430046>-225<004700500056004F0045>-225<005500500050>40<000F>]TJ +0.981 0 0 1 181.462 159.25 Tm [<0057>6<0042004D00560046>-229<00440050004F00550042004A004F0054>-229<005500490046>-229<004200440055004A0050004F000D>-230<004A004F>-229<00550049004A0054>-229<0044004200540046>-230<004A0055>-229<004A0054>-230<0042004F>-229<00560053004D>-229<00550050>-230<0042004F>-229<00460059005500460053>-8<004F0042004D>-229<0058>5<004600430054004A00550046>21<000F>]TJ +1 0 0 1 74.071 138.926 Tm [<0035>100<0050>-225<0447>50<0053>20<0046004200440055004A0057>6<004200550046>60<0448>-225<005500490046>-225<0042004F004F0050005500420055004A0050004F0054>-225<00500047>-225<0042004F>-225<004A004F0044004D0056004500460045>-225<005100450047>-225<0050004F0046>-225<004900420054>-225<00550050>-225<00450050>-225<0042>-225<004F0056004E004300460053>-225<00500047>-225<005500420054004C0054>20<000F>]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -1120,56 +1134,62 @@ ET endstream endobj -81 0 obj -<< /Type /Page /Contents 82 0 R /Resources 80 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R >> +82 0 obj +<< /Type /Page /Contents 83 0 R /Resources 81 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R /Annots 98 0 R >> endobj -83 0 obj -<< /D [ 81 0 R /XYZ 73.409 809.993 null ] >> +98 0 obj +[ 80 0 R ] +endobj +80 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 0] /H /I /C [0.701176 0.4 0.414118] /Rect [ 170.864 469.674 187.311 479.892 ]/A << /S /GoTo /D (subsection.6.1) >> >> endobj 84 0 obj -<< /D [ 81 0 R /XYZ 74.409 771.732 null ] >> +<< /D [ 82 0 R /XYZ 73.409 809.993 null ] >> endobj 85 0 obj -<< /D [ 81 0 R /XYZ 88.706 734.48 null ] >> +<< /D [ 82 0 R /XYZ 74.409 771.732 null ] >> endobj 86 0 obj -<< /D [ 81 0 R /XYZ 74.409 523.973 null ] >> +<< /D [ 82 0 R /XYZ 88.706 734.48 null ] >> endobj 87 0 obj -<< /D [ 81 0 R /XYZ 74.409 436.081 null ] >> +<< /D [ 82 0 R /XYZ 74.409 451.962 null ] >> endobj 88 0 obj -<< /D [ 81 0 R /XYZ 74.409 436.212 null ] >> +<< /D [ 82 0 R /XYZ 74.409 361.56 null ] >> endobj 89 0 obj -<< /D [ 81 0 R /XYZ 74.409 422.662 null ] >> +<< /D [ 82 0 R /XYZ 74.409 361.691 null ] >> endobj 90 0 obj -<< /D [ 81 0 R /XYZ 74.409 409.113 null ] >> +<< /D [ 82 0 R /XYZ 74.409 348.142 null ] >> endobj 91 0 obj -<< /D [ 81 0 R /XYZ 74.409 395.564 null ] >> +<< /D [ 82 0 R /XYZ 74.409 334.593 null ] >> endobj 92 0 obj -<< /D [ 81 0 R /XYZ 74.409 382.015 null ] >> +<< /D [ 82 0 R /XYZ 74.409 321.043 null ] >> endobj 93 0 obj -<< /D [ 81 0 R /XYZ 74.409 368.466 null ] >> +<< /D [ 82 0 R /XYZ 74.409 307.494 null ] >> endobj 94 0 obj -<< /D [ 81 0 R /XYZ 74.409 354.916 null ] >> +<< /D [ 82 0 R /XYZ 74.409 293.945 null ] >> endobj 95 0 obj -<< /D [ 81 0 R /XYZ 74.409 341.367 null ] >> +<< /D [ 82 0 R /XYZ 74.409 280.396 null ] >> endobj 96 0 obj -<< /D [ 81 0 R /XYZ 74.409 327.818 null ] >> +<< /D [ 82 0 R /XYZ 74.409 266.847 null ] >> endobj -80 0 obj -<< /ExtGState 1 0 R /Font << /F46 10 0 R /F47 11 0 R /F28 14 0 R /F49 12 0 R /F81 35 0 R >> /ProcSet [ /PDF /Text ] >> +97 0 obj +<< /D [ 82 0 R /XYZ 74.409 253.297 null ] >> endobj -99 0 obj -<< /Length 15847 >> +81 0 obj +<< /ExtGState 1 0 R /Font << /F46 10 0 R /F47 11 0 R /F28 14 0 R /F49 12 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +102 0 obj +<< /Length 15480 >> stream /opacity1 gs 0 g 0 G @@ -1185,165 +1205,338 @@ BT /F49 10.90909 Tf 1 0 0 1 91.766 760.773 Tm [<044C>]TJ 0 g 0 G -1.02 0 0 1 101.682 760.773 Tm [<0030>5<004F0046>-220<004E005600540055>]TJ +1.012 0 0 1 101.682 760.773 Tm [<0030>5<004F0046>-222<004E005600540055>]TJ /F81 10.90909 Tf -1.02 0 0 1 153.314 760.773 Tm [<0053>26<004600440042004D00440056004D004200550046>]TJ +1.012 0 0 1 152.957 760.773 Tm [<0053>26<004600550053004A00460057>6<0046>-222<0042004F0045>-223<0054005500500053>26<0046>]TJ /F49 10.90909 Tf -1.02 0 0 1 210.61 760.773 Tm [<005500490046>-220<0053>19<0046004400550042004F0048004D0046>-220<0044005000500053>19<0045004A004F0042005500460054>-220<00550050>-220<056D0055>-221<00550050>-220<005500490046>-221<0044005000500053>19<0045004A004F004200550046>-220<0054005A005400550046004E>-220<00500047>-221<005500490046>]TJ -0.99 0 0 1 101.682 747.224 Tm [<005500420053>6<004800460055>-228<0051004200480046001B>-305<00420054>-229<005500490046>-228<004A004F0044004D0056004500460045>-228<005100450047>-229<00440042004F>-228<00430046>-229<0051004D0042004400460045>-228<00420055>-228<0057>5<00420053>-7<004A005000560054>-229<005100500054004A0055004A0050004F0054>10<000D>-228<005400440042004D00460045000D>-229<0053>6<005000550042005500460045>-228<0042004F0045>]TJ -1.02 0 0 1 101.682 733.675 Tm [<00460057>5<0046004F>-255<0044004D004A0051005100460045>-255<00550049004A0054>-255<004A0054>-255<004F00500055>-255<0042004F>-255<004600420054005A>-255<005500420054004C000F>-397<0025>5<004600540055004A004F00420055004A0050004F0054>-254<004900420057>4<0046>-254<0053>19<0046004400550042004F0048004D00460054>-254<005500500050>-255<0055004900420055>-255<004E005600540055>-255<00430046>]TJ -1 0 0 1 101.682 720.126 Tm [<0053>20<004600440042004D00440056004D0042005500460045000F>]TJ +1.012 0 0 1 240.183 760.773 Tm [<005500490046>-222<0042004F004F0050005500420055004A0050004F0054>-223<00500047>-223<005500490046>-222<004A004F0044004D0056004500460045>-223<005100450047000F>-298<0027>35<00500053>-221<004D004A004F004C0054>-223<00550050>-223<00460059005500460053>-8<004F0042004D>]TJ +1.02 0 0 1 101.682 747.224 Tm [<00560053004D>10<0445>110<0054>-238<00550049004A0054>-238<0053>19<004600520056004A0053>20<00460054>-237<00550050>-238<056D004F0045>-238<0050004F004D005A>-238<0050004F0046>-238<00500043004B004600440055>-238<004D004A004C0046>-238<005500490046>-238<0050004F0046>-238<005400490050>29<0058004F>-237<004200430050>29<0057>5<0046>20<000F>-346<0023>11<00560055>-237<0046>19<000F0048000F>-345<004A004F005500460053>-8<004F0042004D>]TJ +1 0 0 1 101.682 733.675 Tm [<004D004A004F004C0054>-225<00510050004A004F0055>-225<00550050>-225<0045004600540055004A004F00420055004A0050004F>-225<00500043004B0046004400550054>-225<0042004F0045>-225<00550049004600540046>-225<004E005600540055>-225<00430046>-225<004700500056004F0045>-225<005500500050>40<000F>]TJ 0 g 0 G -1 0 0 1 91.766 699.802 Tm [<044C>]TJ +1 0 0 1 91.766 713.351 Tm [<044C>]TJ 0 g 0 G -1.02 0 0 1 101.682 699.802 Tm [<0030>5<004F0046>-243<004E005600540055>]TJ +1.02 0 0 1 101.682 713.351 Tm [<0030>5<004F0046>-220<004E005600540055>]TJ /F81 10.90909 Tf -1.02 0 0 1 153.831 699.802 Tm [<0053>26<0046004A004F005400460053>-8<0055>]TJ +1.02 0 0 1 153.314 713.351 Tm [<0053>26<004600440042004D00440056004D004200550046>]TJ /F49 10.90909 Tf -1.02 0 0 1 195.185 699.802 Tm [<005500490046>-243<0042004F004F0050005500420055004A0050004F>-244<0042004F0045>-244<0053>19<0046004D0042005500460045>-243<00500043004B0046004400550054>19<000F>-362<00350049004A0054>-244<004900420054>-244<00550050>-244<00550042004C0046>-244<004A004F00550050>-243<00420044004400500056004F0055>]TJ -1 0 0 1 101.682 686.253 Tm [<0055004900420055>-226<0042>-226<005100450047>-227<004A0054>-226<005100460053>-6<0049004200510054>-226<004F00500055>-227<004A004F0044004D0056004500460045>-226<00440050004E0051004D004600550046004D005A>86<000D>-226<0042>-227<004D004A004F004C>-226<0054004900500056004D0045004F>81<0445>76<0055>-225<00510050004A004F0055>-227<00550050>-226<0042>-226<004E004A00540054004A004F0048>-227<0051004200480046>]TJ -1.006 0 0 1 101.682 672.704 Tm [<00500053>-223<0042>-223<0044004D004A0051005100460045>-223<0042004F004F0050005500420055004A0050004F000F>-298<002A>23<0055>-222<0042004D00540050>-224<004900420054>-223<00550050>-223<00550042004C0046>-224<004A004F00550050>-223<00420044004400500056004F0055>-223<0055004900420055>-223<0042>-224<005100450047>-223<004A0054>-223<005100460053>-6<0049004200510054>-223<004A004F005400460053>-9<005500460045>]TJ -1 0 0 1 101.682 659.154 Tm [<004E00500053>20<0046>-225<005500490042004F>-225<0050004F00440046>-225<00500053>-225<004A004F>-225<00540055004600510054>20<000F>]TJ +1.02 0 0 1 210.61 713.351 Tm [<005500490046>-220<0053>19<0046004400550042004F0048004D0046>-220<0044005000500053>19<0045004A004F0042005500460054>-220<00550050>-220<056D0055>-221<00550050>-220<005500490046>-221<0044005000500053>19<0045004A004F004200550046>-220<0054005A005400550046004E>-220<00500047>-221<005500490046>]TJ +0.99 0 0 1 101.682 699.802 Tm [<005500420053>6<004800460055>-228<0051004200480046001B>-305<00420054>-229<005500490046>-228<004A004F0044004D0056004500460045>-228<005100450047>-229<00440042004F>-228<00430046>-229<0051004D0042004400460045>-228<00420055>-228<0057>5<00420053>-7<004A005000560054>-229<005100500054004A0055004A0050004F0054>10<000D>-228<005400440042004D00460045000D>-229<0053>6<005000550042005500460045>-228<0042004F0045>]TJ +1.02 0 0 1 101.682 686.253 Tm [<00460057>5<0046004F>-255<0044004D004A0051005100460045>-255<00550049004A0054>-255<004A0054>-255<004F00500055>-255<0042004F>-255<004600420054005A>-255<005500420054004C000F>-397<0025>5<004600540055004A004F00420055004A0050004F0054>-254<004900420057>4<0046>-254<0053>19<0046004400550042004F0048004D00460054>-254<005500500050>-255<0055004900420055>-255<004E005600540055>-255<00430046>]TJ +1 0 0 1 101.682 672.704 Tm [<0053>20<004600440042004D00440056004D0042005500460045000F>]TJ +0 g 0 G +1 0 0 1 91.766 652.38 Tm [<044C>]TJ +0 g 0 G +1.02 0 0 1 101.682 652.38 Tm [<0030>5<004F0046>-243<004E005600540055>]TJ +/F81 10.90909 Tf +1.02 0 0 1 153.831 652.38 Tm [<0053>26<0046004A004F005400460053>-8<0055>]TJ +/F49 10.90909 Tf +1.02 0 0 1 195.185 652.38 Tm [<005500490046>-243<0042004F004F0050005500420055004A0050004F>-244<0042004F0045>-244<0053>19<0046004D0042005500460045>-243<00500043004B0046004400550054>19<000F>-362<00350049004A0054>-244<004900420054>-244<00550050>-244<00550042004C0046>-244<004A004F00550050>-243<00420044004400500056004F0055>]TJ +1 0 0 1 101.682 638.831 Tm [<0055004900420055>-226<0042>-226<005100450047>-227<004A0054>-226<005100460053>-6<0049004200510054>-226<004F00500055>-227<004A004F0044004D0056004500460045>-226<00440050004E0051004D004600550046004D005A>86<000D>-226<0042>-227<004D004A004F004C>-226<0054004900500056004D0045004F>81<0445>76<0055>-225<00510050004A004F0055>-227<00550050>-226<0042>-226<004E004A00540054004A004F0048>-227<0051004200480046>]TJ +1.006 0 0 1 101.682 625.281 Tm [<00500053>-223<0042>-223<0044004D004A0051005100460045>-223<0042004F004F0050005500420055004A0050004F000F>-298<002A>23<0055>-222<0042004D00540050>-224<004900420054>-223<00550050>-223<00550042004C0046>-224<004A004F00550050>-223<00420044004400500056004F0055>-223<0055004900420055>-223<0042>-224<005100450047>-223<004A0054>-223<005100460053>-6<0049004200510054>-223<004A004F005400460053>-9<005500460045>]TJ +1 0 0 1 101.682 611.732 Tm [<004E00500053>20<0046>-225<005500490042004F>-225<0050004F00440046>-225<00500053>-225<004A004F>-225<00540055004600510054>20<000F>]TJ 0 g 0 G /F46 11.95517 Tf -1 0 0 1 74.075 621.162 Tm [<003900580052>-500<005F0032006900600042003200700042004D003B>-367<001C004D002F>-367<006200690051>31<00600042004D003B>-367<001C004D004D00510069001C006900420051004D0062>]TJ +1 0 0 1 74.075 573.637 Tm [<003900580052>-500<005F0032006900600042003200700042004D003B>-367<001C004D002F>-367<006200690051>31<00600042004D003B>-367<001C004D004D00510069001C006900420051004D0062>]TJ 0 g 0 G /F49 10.90909 Tf -1.02 0 0 1 74.071 592.82 Tm [<00350049004600500053>20<00460055004A00440042004D004D005A>-295<0050004F0046>-296<00440042004F>-296<00450050>-295<004A0055>-296<004E0042004F00560042004D004D005A>-10<001B>-444<0036>39<004F00440050004E00510053>20<004600540054>-295<005500490046>-296<003100250027>-295<000900500053>-296<005800490046004F>-296<00560054004A004F0048>-295<002D>]TJ +1.02 0 0 1 74.071 545.295 Tm [<00350049004600500053>20<00460055004A00440042004D004D005A>-295<0050004F0046>-296<00440042004F>-296<00450050>-295<004A0055>-296<004E0042004F00560042004D004D005A>-10<001B>-444<0036>39<004F00440050004E00510053>20<004600540054>-295<005500490046>-296<003100250027>-295<000900500053>-296<005800490046004F>-296<00560054004A004F0048>-295<002D>]TJ /F49 7.63636 Tf -1 0 0 1 463.212 595.085 Tm [<0022>]TJ -/F49 10.90909 Tf -1.02 0 0 1 466.425 592.82 Tm [<0035>]TJ -1 0 0 1 471.516 590.147 Tm [<0026>]TJ -1.02 0 0 1 476.764 592.82 Tm [<0039000D>-314<00440053>19<0046004200550046>]TJ -1.012 0 0 1 74.409 579.271 Tm [<0045004A0053>20<004600440055004D005A>-223<0042004F>-223<0056004F00440050004E00510053>19<00460054005400460045>-222<0050004F0046000A000D>-224<005000510046004F>-223<004A0055>-224<004A004F>-223<0042004F>-223<00460045004A005500500053>-224<0042004F0045>-223<004400500051>24<005A>-222<0042004F0045>-223<00510042005400550046>-224<0042004D004D>-223<004F00460046004500460045>-223<00500043004B0046004400550054>19<000F>]TJ -1 0 0 1 74.409 565.722 Tm [<0031>12<0053>10<004200440055004A00440042004D004D005A>-225<0050004F0046>-225<004F0042005500560053>10<0042004D004D005A>-225<00580042004F0055>-225<00540050004E0046>-225<005500500050004D000F>]TJ -0.98 0 0 1 74.071 545.398 Tm [<003500490046>]TJ +1 0 0 1 463.212 547.56 Tm [<0022>]TJ +/F49 10.90909 Tf +1.02 0 0 1 466.425 545.295 Tm [<0035>]TJ +1 0 0 1 471.516 542.623 Tm [<0026>]TJ +1.02 0 0 1 476.764 545.295 Tm [<0039000D>-314<00440053>19<0046004200550046>]TJ +1.012 0 0 1 74.409 531.746 Tm [<0045004A0053>20<004600440055004D005A>-223<0042004F>-223<0056004F00440050004E00510053>19<00460054005400460045>-222<0050004F0046000A000D>-224<005000510046004F>-223<004A0055>-224<004A004F>-223<0042004F>-223<00460045004A005500500053>-224<0042004F0045>-223<004400500051>24<005A>-222<0042004F0045>-223<00510042005400550046>-224<0042004D004D>-223<004F00460046004500460045>-223<00500043004B0046004400550054>19<000F>]TJ +1 0 0 1 74.409 518.197 Tm [<0031>12<0053>10<004200440055004A00440042004D004D005A>-225<0050004F0046>-225<004F0042005500560053>10<0042004D004D005A>-225<00580042004F0055>-225<00540050004E0046>-225<005500500050004D000F>]TJ +0.98 0 0 1 74.071 497.873 Tm [<003500490046>]TJ /F28 10.90909 Tf -1 0 0 1 94.331 545.398 Tm [<0054001C0074>]TJ +1 0 0 1 94.331 497.873 Tm [<0054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -0.98 0 0 1 113.149 545.398 Tm [<005100420044004C004200480046>-153<00470053>6<0050004E>-152<0029>30<0046004A004C0050>-152<0030004300460053>20<0045004A0046004C>-153<00440050004F0054004A005400550054>-153<00500047>-153<0042>-153<005100460053004D>-153<005400440053>-8<004A00510055>-153<0042004F0045>-153<0042>-153<004B00420057>5<0042000E004B00420053>-152<056D004D0046>]TJ +0.98 0 0 1 113.149 497.873 Tm [<005100420044004C004200480046>-153<00470053>6<0050004E>-152<0029>30<0046004A004C0050>-152<0030004300460053>20<0045004A0046004C>-153<00440050004F0054004A005400550054>-153<00500047>-153<0042>-153<005100460053004D>-153<005400440053>-8<004A00510055>-153<0042004F0045>-153<0042>-153<004B00420057>5<0042000E004B00420053>-152<056D004D0046>]TJ /F28 10.90909 Tf -1 0 0 1 447.043 545.398 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +1 0 0 1 447.043 497.873 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ /F49 10.90909 Tf -0.988 0 0 1 73.995 531.849 Tm [<00580049004A00440049>-226<00440042004F>-227<0046005900550053>10<004200440055>-226<005500490046>-227<004F0046004400460054005400420053>-18<005A>-227<00500043004B0046004400550054>20<000F>-303<002A>24<0055>-226<00580053>-8<004A005500460054>-227<005500490046>-226<004A004F004700500053>-8<004E00420055004A0050004F>-227<00550050>-227<0042>-226<056D004D0046>-227<0058004A00550049>-227<005500490046>-226<0046005900550046004F0054004A0050004F>]TJ +0.988 0 0 1 73.995 484.324 Tm [<00580049004A00440049>-226<00440042004F>-227<0046005900550053>10<004200440055>-226<005500490046>-227<004F0046004400460054005400420053>-18<005A>-227<00500043004B0046004400550054>20<000F>-303<002A>24<0055>-226<00580053>-8<004A005500460054>-227<005500490046>-226<004A004F004700500053>-8<004E00420055004A0050004F>-227<00550050>-227<0042>-226<056D004D0046>-227<0058004A00550049>-227<005500490046>-226<0046005900550046004F0054004A0050004F>]TJ /F28 10.90909 Tf -1 0 0 1 74.409 518.3 Tm [<0054001C0074>]TJ +1 0 0 1 74.409 470.775 Tm [<0054001C0074>]TJ /F49 10.90909 Tf -0.984 0 0 1 91.591 518.3 Tm [<000F>-304<003800490046004F>-228<004A0055>-227<004900420054>-228<004300460046004F>-228<005400560044004400460054005400470056004D004D005A>-227<004A004F005400550042004D004D00460045>-228<004A0055>-228<005800500053>6<004C0054>-227<00520056004A00550046>-228<056D004F0046>20<000F>-304<0031>12<0053>6<00500043004D0046004E0054>-227<0058004A00550049>-227<00550049004A0054>-228<0042005100510053>5<0050004200440049>]TJ -1 0 0 1 74.409 504.75 Tm [<00420053>20<0046>]TJ +0.984 0 0 1 91.591 470.775 Tm [<000F>-304<003800490046004F>-228<004A0055>-227<004900420054>-228<004300460046004F>-228<005400560044004400460054005400470056004D004D005A>-227<004A004F005400550042004D004D00460045>-228<004A0055>-228<005800500053>6<004C0054>-227<00520056004A00550046>-228<056D004F0046>20<000F>-304<0031>12<0053>6<00500043004D0046004E0054>-227<0058004A00550049>-227<00550049004A0054>-228<0042005100510053>5<0050004200440049>]TJ +1 0 0 1 74.409 457.226 Tm [<00420053>20<0046>]TJ 0 g 0 G -1 0 0 1 91.766 484.427 Tm [<044C>]TJ +1 0 0 1 91.766 436.902 Tm [<044C>]TJ 0 g 0 G /F28 10.90909 Tf -1 0 0 1 101.682 484.427 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +1 0 0 1 101.682 436.902 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ /F49 10.90909 Tf -0.98 0 0 1 200.923 484.427 Tm [<0053>20<004600520056004A0053>21<00460054>-174<0042004F>-176<00460059005500460053>-8<004F0042004D000D>-187<0050004D0045>-175<0057>4<004600530054004A0050004F>-174<00500047>-176<005500490046>-176<004B00420057>6<0042>-175<004D004A00430053>10<00420053>-18<005A>-176<00500047>-175<00310025002700430050>17<0059>-174<00580049004A00440049>]TJ -1 0 0 1 101.682 470.877 Tm [<004E005600540055>-225<00430046>-225<004A004F005400550042004D004D00460045>-225<004E0042004F00560042004D004D005A>-10<001C>]TJ +0.98 0 0 1 200.923 436.902 Tm [<0053>20<004600520056004A0053>21<00460054>-174<0042004F>-176<00460059005500460053>-8<004F0042004D000D>-187<0050004D0045>-175<0057>4<004600530054004A0050004F>-174<00500047>-176<005500490046>-176<004B00420057>6<0042>-175<004D004A00430053>10<00420053>-18<005A>-176<00500047>-175<00310025002700430050>17<0059>-174<00580049004A00440049>]TJ +1 0 0 1 101.682 423.353 Tm [<004E005600540055>-225<00430046>-225<004A004F005400550042004D004D00460045>-225<004E0042004F00560042004D004D005A>-10<001C>]TJ 0 g 0 G -1 0 0 1 91.766 450.554 Tm [<044C>]TJ +1 0 0 1 91.766 403.029 Tm [<044C>]TJ 0 g 0 G -1 0 0 1 101.682 450.554 Tm [<004A0055>-225<0053>20<004600520056004A0053>20<00460054>-225<0042>-225<004B00420057>6<0042>-225<004A004F005400550042004D004D00420055004A0050004F>-225<0042004F0045>]TJ +1 0 0 1 101.682 403.029 Tm [<004A0055>-225<0053>20<004600520056004A0053>20<00460054>-225<0042>-225<004B00420057>6<0042>-225<004A004F005400550042004D004D00420055004A0050004F>-225<0042004F0045>]TJ 0 g 0 G -1 0 0 1 91.766 430.23 Tm [<044C>]TJ +1 0 0 1 91.766 382.705 Tm [<044C>]TJ 0 g 0 G -1 0 0 1 101.682 430.23 Tm [<004A0055>-225<004A0054>-225<004F00500055>-225<0046005900550046004F0054004A0043004D0046>20<000F>]TJ -1.02 0 0 1 74.071 409.906 Tm [<003500490046>]TJ +1 0 0 1 101.682 382.705 Tm [<004A0055>-225<004A0054>-225<004F00500055>-225<0046005900550046004F0054004A0043004D0046>20<000F>]TJ +1.02 0 0 1 74.071 362.381 Tm [<003500490046>]TJ /F28 10.90909 Tf -1 0 0 1 96.366 409.906 Tm [<004D003200720054001C0074>]TJ +1 0 0 1 96.366 362.381 Tm [<004D003200720054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -1.02 0 0 1 133.641 409.906 Tm [<005100420044004C004200480046>-261<00440050004E00460054>-262<0058004A00550049>-261<0042>-262<004D00560042000E056D004D0046>19<000F>-416<002A>23<0055>-261<0056005400460054>-262<005500490046>]TJ +1.02 0 0 1 133.641 362.381 Tm [<005100420044004C004200480046>-261<00440050004E00460054>-262<0058004A00550049>-261<0042>-262<004D00560042000E056D004D0046>19<000F>-416<002A>23<0055>-261<0056005400460054>-262<005500490046>]TJ /F28 10.90909 Tf -1 0 0 1 345.167 409.906 Tm [<0054002F00370032>]TJ +1 0 0 1 345.167 362.381 Tm [<0054002F00370032>]TJ /F49 10.90909 Tf -1.02 0 0 1 370.987 409.906 Tm [<004D004A00430053>10<00420053>-18<005A>-261<0046004E004300460045004500460045>-262<004A004F>-261<004D00560042005500460059>-262<00550050>]TJ -1.02 0 0 1 74.409 396.357 Tm [<0046005900550053>10<004200440055>-268<005500490046>-269<0042004F004F0050005500420055004A0050004F0054>-268<0042004F0045>-269<00500055004900460053>-268<004F00460046004500460045>-269<004A004F004700500053>-7<004E00420055004A0050004F000F>]TJ +1.02 0 0 1 370.987 362.381 Tm [<004D004A00430053>10<00420053>-18<005A>-261<0046004E004300460045004500460045>-262<004A004F>-261<004D00560042005500460059>-262<00550050>]TJ +1.02 0 0 1 74.409 348.832 Tm [<0046005900550053>10<004200440055>-268<005500490046>-269<0042004F004F0050005500420055004A0050004F0054>-268<0042004F0045>-269<00500055004900460053>-268<004F00460046004500460045>-269<004A004F004700500053>-7<004E00420055004A0050004F000F>]TJ /F28 10.90909 Tf -1 0 0 1 356.427 396.357 Tm [<004D003200720054001C0074>]TJ +1 0 0 1 356.427 348.832 Tm [<004D003200720054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -1.02 0 0 1 393.778 396.357 Tm [<00580053>-8<004A005500460054>-268<005500490046>-269<004A004F004700500053>-7<004E00420055004A0050004F>-269<00550050>]TJ -1.02 0 0 1 74.409 382.808 Tm [<0042>-251<056D004D0046>-251<0058004A00550049>-251<005500490046>-251<0046005900550046004F0054004A0050004F>]TJ +1.02 0 0 1 393.778 348.832 Tm [<00580053>-8<004A005500460054>-268<005500490046>-269<004A004F004700500053>-7<004E00420055004A0050004F>-269<00550050>]TJ +1.02 0 0 1 74.409 335.283 Tm [<0042>-251<056D004D0046>-251<0058004A00550049>-251<005500490046>-251<0046005900550046004F0054004A0050004F>]TJ /F28 10.90909 Tf -1 0 0 1 197.444 382.808 Tm [<0054001C0074>]TJ +1 0 0 1 197.444 335.283 Tm [<0054001C0074>]TJ /F49 10.90909 Tf -1.02 0 0 1 217.422 382.808 Tm [<00500053>]TJ +1.02 0 0 1 217.422 335.283 Tm [<00500053>]TJ /F28 10.90909 Tf -1 0 0 1 230.966 382.808 Tm [<004D003200720054001C0074>]TJ +1 0 0 1 230.966 335.283 Tm [<004D003200720054001C0074>]TJ /F49 10.90909 Tf -1.02 0 0 1 265.329 382.808 Tm [<000F>-386<003500490046>-251<00440050004F00550046004F0055>-251<00500047>-251<005500490046>-251<056D004D00460054>-252<004A0054>-251<0009004F004600420053004D005A000A>-251<004A00450046004F0055004A00440042004D>-251<00550050>-251<005500490046>]TJ -0.98 0 0 1 74.409 369.258 Tm [<00440050004F00550046004F0055>-214<00500047>-214<005500490046>]TJ +1.02 0 0 1 265.329 335.283 Tm [<000F>-386<003500490046>-251<00440050004F00550046004F0055>-251<00500047>-251<005500490046>-251<056D004D00460054>-252<004A0054>-251<0009004F004600420053004D005A000A>-251<004A00450046004F0055004A00440042004D>-251<00550050>-251<005500490046>]TJ +0.98 0 0 1 74.409 321.734 Tm [<00440050004F00550046004F0055>-214<00500047>-214<005500490046>]TJ /F28 10.90909 Tf -1 0 0 1 144.078 369.258 Tm [<0054001C0074>]TJ +1 0 0 1 144.078 321.734 Tm [<0054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -0.98 0 0 1 161.259 369.258 Tm [<000E056D004D0046>-214<00580053>-8<004A005500550046004F>-214<0043>25<005A>]TJ +0.98 0 0 1 161.259 321.734 Tm [<000E056D004D0046>-214<00580053>-8<004A005500550046004F>-214<0043>25<005A>]TJ +/F28 10.90909 Tf +1 0 0 1 233.882 321.734 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +/F49 10.90909 Tf +0.98 0 0 1 331.245 321.734 Tm [<000F>-301<003500490046>-214<004D00560042>-214<0044005000450046>-214<005800420054>-214<00580053>-9<004A005500550046004F>-214<0043>25<005A>-213<004D00500050004C004A004F0048>-214<00420055>]TJ +1.005 0 0 1 74.409 308.184 Tm [<004600590042004E0051004D0046>-223<0050005600550051005600550054>-224<00470053>5<0050004E>]TJ +/F28 10.90909 Tf +1 0 0 1 186.689 308.184 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +/F49 10.90909 Tf +1.005 0 0 1 286.505 308.184 Tm [<0042004F0045>-223<0053>19<004600510053>6<0050004500560044004A004F0048>-223<004A0055>-223<004A004F>-224<004D00560042000F>-299<003500490046>-223<00500053>19<004500460053>-7<004A004F0048>-224<00500047>-224<00540050004E0046>]TJ +0.98 0 0 1 74.409 294.635 Tm [<0046004D0046004E0046004F00550054>-225<004A0054>-225<0042>-225<0043004A0055>-225<0045004A056C00460053>20<0046004F0055>-225<0042004F0045>-225<00540050004E0046>-225<005400550053>-8<004A004F00480054>-225<00420053>20<0046>-225<005000560055005100560055>-225<004A004F>-225<0042>-225<0045004A056C00460053>20<0046004F0055>-225<00580042005A>-225<004300560055>-225<004700500053>-225<005500490046>-225<004600590042004E0051004D00460054>]TJ +1.006 0 0 1 74.409 281.086 Tm [<002A>-223<0056005400460045>-223<005500490046>-224<0053>20<004600540056004D0055004A004F0048>]TJ /F28 10.90909 Tf -1 0 0 1 233.882 369.258 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +1 0 0 1 171.413 281.086 Tm [<0054001C0074>]TJ /F49 10.90909 Tf -0.98 0 0 1 331.245 369.258 Tm [<000F>-301<003500490046>-214<004D00560042>-214<0044005000450046>-214<005800420054>-214<00580053>-9<004A005500550046004F>-214<0043>25<005A>-213<004D00500050004C004A004F0048>-214<00420055>]TJ -1.005 0 0 1 74.409 355.709 Tm [<004600590042004E0051004D0046>-223<0050005600550051005600550054>-224<00470053>5<0050004E>]TJ +1.006 0 0 1 188.595 281.086 Tm [<000E056D004D00460054>-223<00440042004F>-223<00430046>-223<0056005400460045>-224<00550050004800460055004900460053>-223<0058004A00550049>-223<005500490046>-224<00500053>-8<004A0048004A004F0042004D>]TJ /F28 10.90909 Tf -1 0 0 1 186.689 355.709 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +1 0 0 1 404.822 281.086 Tm [<0054001C00740058006200690076>]TJ +/F49 10.90909 Tf +1.006 0 0 1 444.913 281.086 Tm [<000F>-298<0023>12<00560055>-223<004500560046>-223<00550050>-223<005500490046>]TJ +1.02 0 0 1 74.409 267.537 Tm [<0047004200440055>-253<0055004900420055>-254<005500490046>-254<0044005000450046>-254<005800420054>-254<00580053>-8<004A005500550046004F>-254<0058004A00550049005000560055>-254<0053>19<00460042004D>-253<0054005100460044>-254<0054004A004E0051004D005A>-254<0043>24<005A>-253<004D00500050004C004A004F0048>-253<00420055>-254<004600590042004E0051004D00460054>9<000D>-262<004A0055>-253<004A0054>-254<00520056004A00550046>]TJ +0.989 0 0 1 74.409 253.988 Tm [<00510053>6<0050004300420043004D005A>-227<0055004900420055>-228<005500490046>-228<004D00560042>-228<0044005000450046>-228<004A0054>-228<004F00500055>-228<005A>5<00460055>-227<00490042004F0045004D004A004F0048>-228<0042004D004D>-228<00500043004B0046004400550054>-228<00500053>-228<005000510055004A0050004F0054>-228<0055004900420055>]TJ +/F28 10.90909 Tf +1 0 0 1 423.786 253.988 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +/F49 10.90909 Tf +1 0 0 1 74.409 240.438 Tm [<0050005600550051005600550054>20<000F>-300<0023>12<00560055>-225<005500490046>-225<0044005000450046>-225<00440042004F>-225<0053>10<00420055004900460053>-225<004600420054004A004D005A>-225<00430046>-225<0046005900550046004F004500460045>-225<005800490046004F>-225<005500490046>-225<004F0046004600450054>-225<00420053>-8<004A005400460054>20<000F>]TJ +1.019 0 0 1 74.071 220.115 Tm [<003500490046>-220<0044005000450046>-221<0042004D00540050>-220<0045005000460054004F>79<0445>75<0055>-220<00490042004F0045004D0046>-220<005400550053>-8<00560044005500560053>19<0046>-220<0046004D0046004E0046004F00550054>9<000D>-220<004F0046004A0055004900460053>-220<00420055>-221<005500490046>-220<00460059005100500053>-8<0055>-221<004F00500053>-221<00420055>-220<005500490046>-221<004A004E005100500053>-8<0055000F>-294<002A>]TJ +0.98 0 0 1 74.409 206.565 Tm [<004900420057>5<0046>-189<005A>5<00460055>-189<004F0050>-189<0053>20<00460042004D>-189<004A004500460042>-190<0058004900420055>-190<005800500056004D0045>-189<00430046>-190<00540046004F0054004A0043004D0046>-190<004900460053>20<0046>-189<00090042004F0045>-189<002A0445>72<004E>-189<00520056004A00550046>-190<005400560053>20<0046>-189<0055004900420055>]TJ +/F28 10.90909 Tf +1 0 0 1 423.786 206.565 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +/F49 10.90909 Tf +1 0 0 1 74.409 193.016 Tm [<0045005000460054004F>80<0445>75<0055>-225<00490042004F0045004D0046>-225<00550049004A0054>-225<0046004A0055004900460053>60<000F000A>]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +1 0 0 1 294.747 93.476 Tm [<0016>]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +ET + +endstream +endobj +101 0 obj +<< /Type /Page /Contents 102 0 R /Resources 100 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R >> +endobj +103 0 obj +<< /D [ 101 0 R /XYZ 73.409 809.993 null ] >> +endobj +104 0 obj +<< /D [ 101 0 R /XYZ 74.409 591.851 null ] >> +endobj +100 0 obj +<< /ExtGState 1 0 R /Font << /F49 12 0 R /F81 35 0 R /F46 10 0 R /F28 14 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +107 0 obj +<< /Length 15305 >> +stream +/opacity1 gs +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F46 14.3462 Tf +1 0 0 1 74.409 760.773 Tm [<0038>-500<0041004B0054>-31<0051>31<006000690042004D003B>-367<001C004D004D00510069001C006900420051004D0062>]TJ +0 g 0 G /F49 10.90909 Tf -1.005 0 0 1 286.505 355.709 Tm [<0042004F0045>-223<0053>19<004600510053>6<0050004500560044004A004F0048>-223<004A0055>-223<004A004F>-224<004D00560042000F>-299<003500490046>-223<00500053>19<004500460053>-7<004A004F0048>-224<00500047>-224<00540050004E0046>]TJ -0.98 0 0 1 74.409 342.16 Tm [<0046004D0046004E0046004F00550054>-225<004A0054>-225<0042>-225<0043004A0055>-225<0045004A056C00460053>20<0046004F0055>-225<0042004F0045>-225<00540050004E0046>-225<005400550053>-8<004A004F00480054>-225<00420053>20<0046>-225<005000560055005100560055>-225<004A004F>-225<0042>-225<0045004A056C00460053>20<0046004F0055>-225<00580042005A>-225<004300560055>-225<004700500053>-225<005500490046>-225<004600590042004E0051004D00460054>]TJ -1.006 0 0 1 74.409 328.611 Tm [<002A>-223<0056005400460045>-223<005500490046>-224<0053>20<004600540056004D0055004A004F0048>]TJ +1 0 0 1 74.071 728.155 Tm [<003500490046>-225<004A004E005100500053>-8<0055>-225<00470056004F00440055004A0050004F>-225<004900420054>-225<00550050>-225<00490042004F0045004D0046>-225<005500580050>-225<004E0042004A004F>-225<00510053>6<00500043004D0046004E0054001B>]TJ +0 g 0 G +1 0 0 1 91.766 707.831 Tm [<044C>]TJ +0 g 0 G +1 0 0 1 101.682 707.831 Tm [<0033>20<004600440042004D00440056004D00420055004A0050004F>-225<00500047>-225<0044005000500053>20<0045004A004F0042005500460054>-225<004A0047>-225<005500490046>-225<004A004E005100500053>-8<005500460045>-225<003100250027>-225<004A0054>-225<005400440042004D00460045>-225<00500053>-225<004E0050>30<0057>5<00460045>]TJ +0 g 0 G +1 0 0 1 91.766 687.508 Tm [<044C>]TJ +0 g 0 G +1.02 0 0 1 101.682 687.508 Tm [<0025>12<0053>6<005000510051004A004F0048>-219<00500047>-219<0042004F004F0050005500420055004A0050004F0054>-220<0042004F0045>-219<0045004600540055004A004F00420055004A0050004F0054>-220<004A0047>-219<0042>-220<003100250027>-219<004A0054>-219<0050004F004D005A>-220<005100420053>-8<0055004A0042004D004D005A>-219<004A004F0044004D0056004500460045000D>-220<0046>19<000F0048000F>-292<00430046000E>]TJ +1 0 0 1 101.682 673.958 Tm [<00440042005600540046>-225<005500490046>-225<00480053>10<004200510049004A0044>-225<004A0054>-225<0044004D004A0051005100460045000D>-225<00500053>-225<0043004600440042005600540046>-225<0050004F004D005A>-225<0042>-225<00540046004D004600440055004A0050004F>-225<00500047>-225<00510042004800460054>-225<00420053>20<0046>-225<004A004F0044004D0056004500460045000F>]TJ +1.02 0 0 1 74.071 653.635 Tm [<003500490046>]TJ + /F28 10.90909 Tf -1 0 0 1 171.413 328.611 Tm [<0054001C0074>]TJ +1 0 0 1 96.254 653.635 Tm [<0054001C0074>]TJ +0 g 0 G /F49 10.90909 Tf -1.006 0 0 1 188.595 328.611 Tm [<000E056D004D00460054>-223<00440042004F>-223<00430046>-223<0056005400460045>-224<00550050004800460055004900460053>-223<0058004A00550049>-223<005500490046>-224<00500053>-8<004A0048004A004F0042004D>]TJ +1.02 0 0 1 116.235 653.635 Tm [<005100420044004C004200480046>-251<00470053>5<0050004E>-251<0029>29<0046004A004C0050>-250<0030004300460053>19<0045004A0046004C>-251<0045005000460054>-251<004900460053>19<0046>-251<004900420053>19<0045>-250<005800500053>5<004C>-251<00550050>-251<0053>19<004600440042004D00440056004D004200550046>-251<005500490046>-251<0042004F004F0050005500420055004A0050004F>]TJ +1.02 0 0 1 74.409 640.085 Tm [<0053>20<0046004400550042004F0048004D00460054>-323<0042004F0045>-323<00550050>-323<004500460044004A00450046>-324<00580049004A00440049>-323<0042004F004F0050005500420055004A0050004F>-323<0042004F0045>-323<00580049004A00440049>-324<0045004600540055004A004F00420055004A0050004F>-323<0054004900500056004D0045>-323<00430046>-323<0053>19<0046004A004F005400460053>-7<005500460045>]TJ +1.013 0 0 1 74.409 626.536 Tm [<0042004F0045>-221<0051004200550044004900460054>]TJ /F28 10.90909 Tf -1 0 0 1 404.822 328.611 Tm [<0054001C00740058006200690076>]TJ +1 0 0 1 137.525 626.536 Tm [<00240042004D002B0048006D002F0032003B0060001C0054003F0042002B0062>]TJ /F49 10.90909 Tf -1.006 0 0 1 444.913 328.611 Tm [<000F>-298<0023>12<00560055>-223<004500560046>-223<00550050>-223<005500490046>]TJ -1.02 0 0 1 74.409 315.062 Tm [<0047004200440055>-253<0055004900420055>-254<005500490046>-254<0044005000450046>-254<005800420054>-254<00580053>-8<004A005500550046004F>-254<0058004A00550049005000560055>-254<0053>19<00460042004D>-253<0054005100460044>-254<0054004A004E0051004D005A>-254<0043>24<005A>-253<004D00500050004C004A004F0048>-253<00420055>-254<004600590042004E0051004D00460054>9<000D>-262<004A0055>-253<004A0054>-254<00520056004A00550046>]TJ -0.989 0 0 1 74.409 301.512 Tm [<00510053>6<0050004300420043004D005A>-227<0055004900420055>-228<005500490046>-228<004D00560042>-228<0044005000450046>-228<004A0054>-228<004F00500055>-228<005A>5<00460055>-227<00490042004F0045004D004A004F0048>-228<0042004D004D>-228<00500043004B0046004400550054>-228<00500053>-228<005000510055004A0050004F0054>-228<0055004900420055>]TJ +1.013 0 0 1 231.611 626.536 Tm [<00440050004E004E0042004F0045>-221<00550050>-222<0042005600550050004E004200550046>-222<00550049004A0054>20<000F>]TJ + /F28 10.90909 Tf -1 0 0 1 423.786 301.512 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +1 0 0 1 373.26 626.536 Tm [<004D003200720054001C0074>]TJ +0 g 0 G /F49 10.90909 Tf -1 0 0 1 74.409 287.963 Tm [<0050005600550051005600550054>20<000F>-300<0023>12<00560055>-225<005500490046>-225<0044005000450046>-225<00440042004F>-225<0053>10<00420055004900460053>-225<004600420054004A004D005A>-225<00430046>-225<0046005900550046004F004500460045>-225<005800490046004F>-225<005500490046>-225<004F0046004600450054>-225<00420053>-8<004A005400460054>20<000F>]TJ -1.019 0 0 1 74.071 267.639 Tm [<003500490046>-220<0044005000450046>-221<0042004D00540050>-220<0045005000460054004F>79<0445>75<0055>-220<00490042004F0045004D0046>-220<005400550053>-8<00560044005500560053>19<0046>-220<0046004D0046004E0046004F00550054>9<000D>-220<004F0046004A0055004900460053>-220<00420055>-221<005500490046>-220<00460059005100500053>-8<0055>-221<004F00500053>-221<00420055>-220<005500490046>-221<004A004E005100500053>-8<0055000F>-294<002A>]TJ -0.98 0 0 1 74.409 254.09 Tm [<004900420057>5<0046>-189<005A>5<00460055>-189<004F0050>-189<0053>20<00460042004D>-189<004A004500460042>-190<0058004900420055>-190<005800500056004D0045>-189<00430046>-190<00540046004F0054004A0043004D0046>-190<004900460053>20<0046>-189<00090042004F0045>-189<002A0445>72<004E>-189<00520056004A00550046>-190<005400560053>20<0046>-189<0055004900420055>]TJ +1.013 0 0 1 410.073 626.536 Tm [<004E005000540055004D005A>-221<0053>19<00460056005400460054>-221<005500490046>-221<004400500053>19<0046>]TJ +1.007 0 0 1 74.409 612.987 Tm [<00440050004E004E0042004F00450054>-222<00500047>]TJ + /F28 10.90909 Tf -1 0 0 1 423.786 254.09 Tm [<0053002E0036001B004D004D005100690031007400690060001C002B006900510060>]TJ +1 0 0 1 145.111 612.987 Tm [<0054001C0074>]TJ +0 g 0 G /F49 10.90909 Tf -1 0 0 1 74.409 240.541 Tm [<0045005000460054004F>80<0445>75<0055>-225<00490042004F0045004D0046>-225<00550049004A0054>-225<0046004A0055004900460053>60<000F000A>]TJ +1.007 0 0 1 164.736 612.987 Tm [<0042004F0045>-222<00420045004500460045>-222<0050004F004D005A>-223<0042>-222<004F0056004E004300460053>-223<00500047>-222<00540058004A00550044004900460054>-223<0042004F0045>-222<005400560051005100500053>-8<0055>-223<004700500053>-222<004E00500053>19<0046>-221<0046004F0048004A004F00460054>-223<0042004F0045>]TJ +1 0 0 1 74.409 599.438 Tm [<004300420044004C0046004F00450054>20<000F>]TJ 0 g 0 G /F46 14.3462 Tf -1 0 0 1 74.409 197.227 Tm [<0038>-500<0041004B0054>-31<0051>31<006000690042004D003B>-367<001C004D004D00510069001C006900420051004D0062>]TJ +1 0 0 1 74.409 556.021 Tm [<0065>-500<0041004D006900320060004D001C0048>-367<00480042004D00460062>]TJ +0 g 0 G +/F49 10.90909 Tf +1 0 0 1 74.409 523.403 Tm [<002A>18<004F005500460053>-8<004F0042004D>-225<004D004A004F004C0054>-225<00090028>-5<00500035>100<0050>-225<004D004A004F004C0054>-225<004A004F>-225<003100250027>-225<005400510046004200440049000A>-225<00420053>20<0046>-225<004E00500053>20<0046>-225<00440050004E0051004D004A00440042005500460045>-225<005500490042004F>-225<005500490046>-225<00500055004900460053>-225<004D004A004F004C>-225<0055005A005100460054>20<000F>]TJ +0.988 0 0 1 74.06 503.079 Tm [<0022>12<0055>-227<056D005300540055>-228<005500490046005A>-228<004A004F0057>4<0050004D0057>5<0046>-227<005500580050>-228<00500043004B0046004400550054001B>-304<005500490046>-228<004D004A004F004C>-228<0042004F004F0050005500420055004A0050004F>-228<0042004F0045>-228<005500490046>-228<005500420053>5<004800460055>-227<00500047>-228<005500490046>-228<004D004A004F004C>-228<00090045004600540055004A004F00420055004A0050004F>-228<004A004F>]TJ +0.986 0 0 1 74.409 489.53 Tm [<003100250027>-229<005400510046004200440049000A000F>-307<002A>5<0047>-228<0042>-229<003100250027>-230<004A0054>-229<004A004F0044004D0056004500460045>-229<005100420053>-8<0055004A0042004D004D005A>87<000D>-229<004A0055>-229<004A0054>-229<0055004900460053>20<0046004700500053>20<0046>-228<004F00500055>-229<0046004F0050005600480049>-229<00550050>-230<0044004900460044004C>-229<004A0047>-229<005500490046>-229<004D004A004F004C>-230<00420053>20<00460042>]TJ +0.996 0 0 1 74.409 475.981 Tm [<004A0054>-226<0050004F>-226<005500490046>-226<0057004A0054004A0043004D0046>-225<00510042004800460054>9<000D>-225<0050004F0046>-226<0042004D00540050>-226<004900420054>-226<00550050>-226<0044004900460044004C>-226<004A0047>-226<005500490046>-226<005500420053>5<004800460055>-225<00500047>-226<005500490046>-226<004D004A004F004C>-226<004A0054>-226<0055004900460053>20<0046>20<000F>-300<00220054>-226<0054005600440049>-226<0042>-226<005500420053>5<004800460055>]TJ +1.02 0 0 1 74.409 462.432 Tm [<00440042004F>-237<00430046>-238<0050004F>-237<0042>-238<004D0042005500460053>-238<0051004200480046>-237<005500490046>]TJ + +/F28 10.90909 Tf +1 0 0 1 205.837 462.432 Tm [<0054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -1.02 0 0 1 74.071 164.609 Tm [<003500490046>]TJ +1.02 0 0 1 223.019 462.432 Tm [<0010>]TJ /F28 10.90909 Tf -1 0 0 1 96.715 164.609 Tm [<0054001C0074>]TJ +1 0 0 1 228.137 462.432 Tm [<004D003200720054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -1.02 0 0 1 117.157 164.609 Tm [<005100420044004C004200480046>-293<00470053>6<0050004E>-293<0029>30<0046004A004C0050>-293<0030004300460053>20<0045004A0046004C>-293<0045005000460054>-293<005500490046>-293<004900420053>20<0045>-293<005800500053>5<004C>-292<00550050>-293<0053>19<004600440042004D00440056004D004200550046>-292<005500490046>-293<0042004F004F0050005500420055004A0050004F>]TJ -1.02 0 0 1 74.409 151.06 Tm [<0053>20<0046004400550042004F0048004D00460054>-315<0042004F0045>-316<00550050>-316<004500460044004A00450046>-315<00580049004A00440049>-316<0042004F004F0050005500420055004A0050004F>-315<0042004F0045>-316<00580049004A00440049>-316<0045004600540055004A004F00420055004A0050004F>-315<0054004900500056004D0045>-316<00430046>-316<0053>19<0046004A004F005400460053>-7<005500460045000F>]TJ -1.02 0 0 1 74.409 137.51 Tm [<002A>24<0055>-252<0042004D00540050>-253<0051004200550044004900460054>-252<005500490046>]TJ +1.02 0 0 1 265.145 462.432 Tm [<0056005400460054>-237<005500490046>]TJ /F28 10.90909 Tf -1 0 0 1 168.853 137.51 Tm [<00240042004D002B0048006D002F0032003B0060001C0054003F0042002B0062>]TJ +1 0 0 1 308.9 462.432 Tm [<0058001C006D0074>]TJ /F49 10.90909 Tf -1.02 0 0 1 263.3 137.51 Tm [<00440050004E004E0042004F0045>-252<00550050>-253<0042005600550050004E004200550046>-252<00550049004A0054>19<000F>]TJ +1.02 0 0 1 334.453 462.432 Tm [<056D004D0046>-237<00550050>-238<0053>19<0046004400500053>20<0045>-236<00580049004A00440049>-238<005500420053>5<0048004600550054>-237<00460059004A005400550054>-237<0042004F0045>]TJ +0.981 0 0 1 73.995 448.882 Tm [<00580049004A00440049>-230<00420053>20<0046>-229<0053>20<004600520056004A0053>21<00460045>-229<0042004F0045>-230<004A004F>-231<0042>-230<0054004600440050004F0045>-230<00440050004E0051004A004D00420055004A0050004F>-230<004500460044004A004500460054>-230<00580049004A00440049>-230<004D004A004F004C0054>-230<0042004F0045>-230<0045004600540055004A004F00420055004A0050004F0054>-230<0054004900500056004D0045>]TJ +0.98 0 0 1 74.409 435.333 Tm [<00430046>-220<0053>20<0046004A004F005400460053>-8<005500460045000F>-303<00220054>-221<0042004F>-221<004600590042004E0051004D0046001B>-301<004A0047>-221<005A>5<00500056>-220<004A004F0044004D005600450046>-220<00470053>5<0050004E>-220<0042>-221<003100250027>-220<005500490046>-221<005500420043004D0046>-221<00500047>-221<00440050004F00550046004F00550054>-220<00090058004A00550049>-221<004D004A004F004C0054000A>-221<0042004F0045>]TJ +1.018 0 0 1 74.409 421.784 Tm [<0042>-221<004700460058>-221<00510042004800460054>10<000D>-221<0050004F004D005A>-221<005500490046>-221<004D004A004F004C0054>-221<004A004F>-221<005500490046>-221<005500500044>-221<00510050004A004F0055004A004F0048>-221<00550050>-221<0057004A0054004A0043004D0046>-221<0054004600440055004A0050004F0054>]TJ +/F81 10.90909 Tf +1.018 0 0 1 392.647 421.784 Tm [<0042004F0045>]TJ +/F49 10.90909 Tf +1.018 0 0 1 415.587 421.784 Tm [<0050004F004D005A>-221<005500490046>-221<0045004600540055004A004F00420055004A0050004F0054>]TJ +1 0 0 1 74.409 408.235 Tm [<004F00460046004500460045>-225<004700500053>-225<00550049004A0054>-225<004D004A004F004C0054>-225<0058004A004D004D>-225<00430046>-225<0053>20<0046004A004F005400460053>-8<005500460045000F>]TJ +0.98 0 0 1 74.06 387.911 Tm [<0022>12<0055>-200<0054004600440050004F0045>-201<005500490046>-201<005500420053>5<0048004600550054>-200<00420053>20<0046>-200<004F00500053>-9<004E0042004D004D005A>-201<0449004F0042004E00460045>-201<0045004600540055004A004F00420055004A0050004F00540447000D>-206<0055004900420055>-201<004E00460042004F0054>-202<0042>-201<004D004A004F004C>-201<0042004F004F0050005500420055004A0050004F>-201<00510050004A004F00550054>]TJ +1.02 0 0 1 74.409 374.362 Tm [<00550050>-263<0042>-262<005400550053>-8<004A004F0048>-263<004D004A004C0046>]TJ +/F28 10.90909 Tf +1 0 0 1 149.082 374.362 Tm [<00620032002B006900420051004D00580052>]TJ +/F49 10.90909 Tf +1.02 0 0 1 203.554 374.362 Tm [<0042004F0045>-262<005500490046>-263<004F0042004E0046>-263<00550053>19<00460046>]TJ +/F28 10.90909 Tf +1 0 0 1 298.99 374.362 Tm [<0066002E0032006200690062>]TJ +/F49 10.90909 Tf +1.02 0 0 1 336.279 374.362 Tm [<00440050004F00550042004A004F0054>-263<0042>-262<004E004200510051004A004F0048>-263<004700500053>-263<00550049004A0054>-263<005400550053>-8<004A004F0048>-263<00550050>]TJ +1.02 0 0 1 74.409 360.813 Tm [<0042004F>-241<0045004600540055004A004F00420055004A0050004F>-242<00500043004B004600440055000F>-358<00220054>-242<004F0042004E00460054>-242<004D004A004C0046>]TJ +/F28 10.90909 Tf +1 0 0 1 259.496 360.813 Tm [<00620032002B006900420051004D00580052>]TJ +/F49 10.90909 Tf +1.02 0 0 1 313.733 360.813 Tm [<00420053>20<0046>-241<0056005400460045>-242<004A004F>-242<004E0042004F005A>-242<0031002500270054>-242<00510053>5<005000450056004400460045>-241<0043>24<005A>-241<002D>]TJ +/F49 7.63636 Tf +1 0 0 1 500.709 363.077 Tm [<0022>]TJ +/F49 10.90909 Tf +1.02 0 0 1 503.922 360.813 Tm [<0035>]TJ +1 0 0 1 509.014 358.14 Tm [<0026>]TJ +1.02 0 0 1 514.261 360.813 Tm [<0039>]TJ +1.02 0 0 1 74.409 347.263 Tm [<005500490046005A>-263<00440042004F>-264<004F00500055>-263<0054004A004E0051004D005A>-263<00430046>-264<0053>19<00460056005400460045>-262<005800490046004F>-264<0053>19<0046004A004F005400460053>-7<0055004A004F0048>-263<0042004F004F0050005500420055004A0050004F0054>19<000F>]TJ /F28 10.90909 Tf -1 0 0 1 408.012 137.51 Tm [<004D003200720054001C0074>]TJ +1 0 0 1 386.091 347.263 Tm [<004D003200720054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -1.02 0 0 1 445.187 137.51 Tm [<0053>20<00460056005400460054>-252<005500490046>-253<004400500053>19<0046>]TJ +1.02 0 0 1 423.386 347.263 Tm [<00550053>-8<004A00460054>-263<00550050>-264<00420057>5<0050004A0045>-263<004F0042004E0046>]TJ +1.006 0 0 1 74.409 333.714 Tm [<0044004D00420054004900460054>-224<0043>24<005A>-223<00480046004F00460053>9<00420055004A004F0048>-224<004F0042004E00460054>-224<00440050004F0054004A00540055004A004F0048>-225<00500047>-224<0042>-225<00510053>20<0046056D0059>-224<0058004A00550049>-224<005500490046>-225<056D004D0046>-224<004F0042004E0046>-225<0042004F0045>-224<004F0056004E004300460053>-224<00500053>-225<004F0042004E0046>19<000F>]TJ +1.01 0 0 1 74.409 320.165 Tm [<0034>12<0050>-223<0046>19<000F0048000F>-298<005500490046>]TJ +/F28 10.90909 Tf +1 0 0 1 127.965 320.165 Tm [<00620032002B006900420051004D00580052>]TJ +/F49 10.90909 Tf +1.01 0 0 1 181.972 320.165 Tm [<0045004600540055004A004F00420055004A0050004F>-223<005800500056004D0045>-223<00430046>-224<00440042004D004D00460045>]TJ +/F28 10.90909 Tf +1 0 0 1 321.669 320.165 Tm [<00370042004800320058004D003200720054001C0074002100620032002B006900420051004D00580052>]TJ +/F49 10.90909 Tf +1.01 0 0 1 444.403 320.165 Tm [<004A004F>-223<005500490046>-223<0053>19<004600440046004A0057004A004F0048>]TJ +1.02 0 0 1 74.409 306.616 Tm [<056D004D0046>20<000F>-335<002A>5<0047>-234<005A>5<00500056>-233<005400460055>-235<00560051>-234<0042>-235<00540056056F0059000D>-238<0046>19<000F0048000F>-335<0058004A00550049>]TJ +/F28 10.90909 Tf +1 0 0 1 248.178 306.616 Tm [<002F0032006200690062006D00370037004200740034001B>]TJ +/F49 10.90909 Tf +1.02 0 0 1 316.905 306.616 Tm [<000D>-234<004A0055>-235<004A0054>-234<0042005100510046004F004500460045>-235<0058004A00550049>-234<0042004F>-234<0021>-235<0054005A004E00430050004D000D>-238<00540050>-234<005500490046>]TJ +0.98 0 0 1 74.409 293.067 Tm [<0053>20<004600540056004D0055>-212<005800500056004D0045>-213<00430046>]TJ +/F28 10.90909 Tf +1 0 0 1 150.594 293.067 Tm [<00370042004800320058004D003200720054001C0074002100620032002B006900420051004D005800520021001B>]TJ +/F49 10.90909 Tf +0.98 0 0 1 282.321 293.067 Tm [<000F>-213<002A>6<0047>-212<005500490046>-213<00500053>-9<004A0048004A004F0042004D>-213<0045004600540055004A004F00420055004A0050004F>-213<004900420054>-213<004F00500055>-212<004F0042004E0046>-213<000900550049004A0054>-213<00440042004F>]TJ +1.01 0 0 1 74.409 279.517 Tm [<00490042005100510046004F>-224<004A0047>-224<005A>6<00500056>-223<004A004F0044004D005600450046>-224<0031002500270054>-224<00580049004A00440049>-224<004900420057>4<0046004F>80<0445>76<0055>-223<004300460046004F>-224<00440053>19<00460042005500460045>-223<0043>25<005A>-223<0035>100<00460039000A000D>-223<005500490046004F>-224<0042>-224<004F0056004E004300460053>-224<004A0054>-224<0056005400460045000D>-225<00540050>]TJ +1 0 0 1 74.409 265.968 Tm [<005A>6<00500056>-225<004800460055>]TJ +/F28 10.90909 Tf +1 0 0 1 112.711 265.968 Tm [<00370042004800320058004D003200720054001C007400210052>]TJ +/F49 10.90909 Tf +1 0 0 1 187.166 265.968 Tm [<000F>]TJ 0 g 0 G +/F46 11.95517 Tf +1 0 0 1 74.409 227.873 Tm [<006500580052>-500<001B>31<002B002B003200620062>-367<003700600051004B>-367<0069003F0032>-367<01F20051006D006900620042002F003201F3>]TJ 0 g 0 G +/F49 10.90909 Tf +1.02 0 0 1 74.409 199.531 Tm [<002A>24<0055>-275<004A0054>-276<0051005000540054004A0043004D0046>-276<00550050>-275<004D004A004F004C>-276<00470053>5<0050004E>-274<005500490046>-276<00460059005500460053>-8<004F0042004D>-276<0045005000440056004E0046004F0055>-275<00550050>-276<0045004600540055004A004F00420055004A0050004F0054>-275<004A004F>-276<005500490046>-276<004A004F0044004D0056004500460045>-275<003100250027>179<000D>-275<004700500053>]TJ +1 0 0 1 74.409 185.982 Tm [<004600590042004E0051004D0046>-225<00550050>-225<00430056004A004D0045>-225<0042>-225<005500420043004D0046>-225<00500047>-225<00440050004F00550046004F00550054>-225<0058004A00550049>-225<004D004A004F004C0054>20<000F>-300<0027>36<00500053>-225<00550049004A0054>-225<005A>6<00500056>-225<004F004600460045>]TJ 0 g 0 G +1 0 0 1 91.766 162.67 Tm [<044C>]TJ 0 g 0 G -1 0 0 1 294.747 93.476 Tm [<0016>]TJ +1.02 0 0 1 101.682 162.67 Tm [<005500490046>-296<004A004F0044004D0056004500460045>-297<003100250027>-297<004E005600540055>-296<00440050004F00550042004A004F>-297<0042004D004D>-297<0045004600540055004A004F00420055004A0050004F0054>-297<0055004900420055>-296<005A>5<00500056>-296<00580042004F0055>-297<00550050>-296<005600540046>19<000F>-522<0035004900420055>-297<004E00460042004F0054>9<000D>]TJ + +/F28 10.90909 Tf +1 0 0 1 101.682 149.12 Tm [<004D003200720054001C0074>]TJ +0 g 0 G +/F49 10.90909 Tf +1 0 0 1 138.5 149.12 Tm [<00580050004F>80<0445>75<0055>-225<00440053>20<0046004200550046>-225<0045004600540055004A004F00420055004A0050004F0054>-225<005000560055>-225<00500047>-225<005500490046>-225<0043004D00560046>20<000F>]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +1 0 0 1 294.747 93.476 Tm [<0017>]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -1354,23 +1547,26 @@ ET endstream endobj -98 0 obj -<< /Type /Page /Contents 99 0 R /Resources 97 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R >> +106 0 obj +<< /Type /Page /Contents 107 0 R /Resources 105 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R >> endobj -100 0 obj -<< /D [ 98 0 R /XYZ 73.409 809.993 null ] >> +108 0 obj +<< /D [ 106 0 R /XYZ 73.409 809.993 null ] >> endobj -101 0 obj -<< /D [ 98 0 R /XYZ 74.409 639.375 null ] >> +109 0 obj +<< /D [ 106 0 R /XYZ 74.409 771.732 null ] >> endobj -102 0 obj -<< /D [ 98 0 R /XYZ 74.409 220.538 null ] >> +110 0 obj +<< /D [ 106 0 R /XYZ 74.409 580.598 null ] >> endobj -97 0 obj -<< /ExtGState 1 0 R /Font << /F49 12 0 R /F81 35 0 R /F46 10 0 R /F28 14 0 R >> /ProcSet [ /PDF /Text ] >> +99 0 obj +<< /D [ 106 0 R /XYZ 74.409 245.956 null ] >> endobj -129 0 obj -<< /Length 7077 >> +105 0 obj +<< /ExtGState 1 0 R /Font << /F46 10 0 R /F49 12 0 R /F28 14 0 R /F81 35 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +136 0 obj +<< /Length 9941 >> stream /opacity1 gs 0 g 0 G @@ -1381,23 +1577,78 @@ stream 0 g 0 G 0 g 0 G 0 g 0 G +0 g 0 G BT /F49 10.90909 Tf -0.983 0 0 1 74.409 760.773 Tm [<00440050004E004E0042004F00450054>-229<00500047>]TJ +1 0 0 1 91.766 760.773 Tm [<044C>]TJ +0 g 0 G +1.02 0 0 1 101.366 760.773 Tm [<003A>90<00500056>-261<004E005600540055>-261<0046004F005400560053>20<0046>-261<0055004900420055>-260<005500490046>-261<0045004600540055004A004F00420055004A0050004F0054>-261<005A>5<00500056>-260<004F004600460045>-261<00420053>19<0046>-260<004A004E005100500053>-8<005500460045000F>-416<00350049004A0054>-261<0058004A004D004D>-261<00430046>-261<005500490046>-261<0044004200540046>]TJ +1.02 0 0 1 101.682 747.224 Tm [<004A0047>-274<005500490046005A>-275<00420053>19<0046>-274<005500420053>5<0048004600550054>-274<00500047>-275<004A004F005500460053>-8<004F0042004D>-275<004D004A004F004C0054>-275<004A004F>-275<005500490046>-275<004A004E005100500053>-8<005500460045>-275<003100250027>179<000D>-274<004A0047>-275<004F00500055>-275<005A>5<00500056>-274<00440042004F>-274<004700500053>19<00440046>-274<0055004900420055>-275<0042004D004D>]TJ +1 0 0 1 101.682 733.675 Tm [<0045004600540055004A004F00420055004A0050004F0054>-225<00500047>-225<0057004A0054004A0043004D0046>-225<00510042004800460054>-225<00420053>20<0046>-225<0055004900460053>20<0046>-225<0043>25<005A>-225<00560054004A004F0048>-225<005500490046>-225<005000510055004A0050004F>]TJ +/F28 10.90909 Tf +1 0 0 1 385.733 733.675 Tm [<002F00320062006900620034001C00480048>]TJ +/F49 10.90909 Tf +1 0 0 1 437.278 733.675 Tm [<000D>-225<005400460046>-225<004200430050>30<0057>5<0046>20<000F>]TJ +0 g 0 G +1 0 0 1 91.766 713.351 Tm [<044C>]TJ +0 g 0 G +1.02 0 0 1 101.366 713.351 Tm [<003A>90<00500056>-246<004F004600460045>-247<005500490046>-247<004F0042004E00460054>-246<00500047>-247<005500490046>-247<0045004600540055004A004F00420055004A0050004F0054>19<000F>-371<002A>5<0047>-246<005500490046>-246<004A004E005100500053>-8<005500460045>-247<003100250027>-247<004900420054>-246<004300460046004F>-247<00440053>19<00460042005500460045>-246<0058004A00550049>]TJ +0.98 0 0 1 101.682 699.802 Tm [<002D>]TJ +/F49 7.63636 Tf +1 0 0 1 103.827 702.067 Tm [<0022>]TJ +/F49 10.90909 Tf +0.98 0 0 1 107.04 699.802 Tm [<0035>]TJ +1 0 0 1 111.861 697.129 Tm [<0026>]TJ +0.98 0 0 1 117.108 699.802 Tm [<0039>-208<005A>5<00500056>-207<00440042004F>-209<004D00500050004C>-208<004A004F>-209<005500490046>]TJ +/F28 10.90909 Tf +1 0 0 1 218.965 699.802 Tm [<00690051002B>]TJ +/F49 10.90909 Tf +0.98 0 0 1 238.375 699.802 Tm [<00500053>]TJ +/F28 10.90909 Tf +1 0 0 1 250.931 699.802 Tm [<001C006D0074>]TJ +/F49 10.90909 Tf +0.98 0 0 1 268.113 699.802 Tm [<000E056D004D0046>-208<00550050>-208<056D004F0045>-209<004F0042004E00460054>20<000F>-298<003500490046004F>-209<005A>6<00500056>-208<00440042004F>-208<00540046005500560051>-209<0042>-208<056D004D005500460053>-209<00550050>-208<004D004A004F004C>]TJ +1 0 0 1 101.682 686.253 Tm [<00550050>-225<005500490046>-225<004F0042004E00460054>-225<0056005400460045>-225<0043>25<005A>]TJ /F28 10.90909 Tf -1 0 0 1 143.574 760.773 Tm [<0054001C0074>]TJ +1 0 0 1 208.144 686.253 Tm [<004D003200720054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -0.983 0 0 1 160.756 760.773 Tm [<000F>-306<002A>24<0055>-229<0050004F004D005A>-229<0042004500450054>-229<0042>-230<004F0056004E004300460053>-229<00500047>-230<00540058004A00550044004900460054>-229<0042004F0045>-229<004400490042004F004800460054>-230<00510053>-8<004A004E004A0055004A0057>4<0046>-228<00550050>-230<005400560051005100500053>-8<0055>-229<004E00500053>20<0046>]TJ -1 0 0 1 74.409 747.224 Tm [<0046004F0048004A004F00460054>-225<0042004F0045>-225<004300420044004C0046004F00450054>20<000F>]TJ +1 0 0 1 244.962 686.253 Tm [<0042004F0045>-225<0046>20<000F0048000F>-300<004D005000420045>-225<005500490046>-225<005500500044>-225<00500053>-225<004400500051>25<005A>-225<00540050004E0046>-225<00500047>-225<005500490046>-225<00440050004F00550046004F0055>-225<004D004A004F00460054001B>]TJ +/F28 10.90909 Tf +1 0 0 1 121.318 666.726 Tm [<0024004D003200720054001C0074006200320069006D00540026002F00320062006900620034001C004800480027>]TJ +1 0 0 1 121.318 653.177 Tm [<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 127.046 653.177 Tm [<002F00320037>]TJ +/F28 10.90909 Tf +1 0 0 1 144.227 653.177 Tm [<0024003E0076005400320060002E003200620069004C001C004B0032003600420048006900320060004F00520026004B00760042004D0054006D00690058004D003200720054001C00740021004F00520027>]TJ +1 0 0 1 121.318 639.628 Tm [<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 127.046 639.628 Tm [<0042004D0054006D0069>]TJ +/F28 10.90909 Tf +1 0 0 1 155.682 639.628 Tm [<0026004B00760042004D0054006D0069005800690051002B0027>]TJ +0 0.5 0 rg 0 0.5 0 RG +/F47 10.90909 Tf +1 0 0 1 235.864 639.628 Tm [<0057>]TJ 0 g 0 G -/F46 14.3462 Tf -1 0 0 1 74.409 703.808 Tm [<0065>-500<00310074001C004B005400480032>-367<0042004D0054006D0069>]TJ +0 0.5 0 rg 0 0.5 0 RG +1 0 0 1 241.591 639.628 Tm [<00480051001C002F>]TJ +0 g 0 G +0 0.5 0 rg 0 0.5 0 RG +0 g 0 G +0 0.5 0 rg 0 0.5 0 RG +1 0 0 1 270.227 639.628 Tm [<00690051002B>]TJ +0 g 0 G +/F28 10.90909 Tf +1 0 0 1 121.318 626.079 Tm [<00240042004D002B0048006D002F00320054002F003700280054001C003B0032006200340026006B00400039002700290026004B00760042004D0054006D00690027>]TJ 0 g 0 G 0 g 0 G +0 g 0 G +/F46 14.3462 Tf +1 0 0 1 74.008 576.685 Tm [<0064>-500<00310074001C004B005400480032>-367<0042004D0054006D0069>]TJ +0 g 0 G ET -1 0 0 1 77.797 511.746 cm +1 0 0 1 77.797 409.567 cm q .5 0 0 .5 0 0 cm q @@ -1405,29 +1656,27 @@ q /Fm1 Do Q Q -0 g 0 G 0.0 0.0 1.0 rg 0.0 0.0 1.0 RG 0 g 0 G 0.0 0.0 1.0 rg 0.0 0.0 1.0 RG 0 g 0 G q -1 0 0 1 -3.388 169.014 cm -[] 0 d 0 J 0.398 w 0 0 m 134.334 0 l S +1 0 0 1 -3.388 144.07 cm +[] 0 d 0 J 0.398 w 0 0 m 142.696 0 l S Q q -1 0 0 1 -3.188 -3.189 cm -[] 0 d 0 J 0.398 w 0 0 m 0 172.203 l S +1 0 0 1 -3.188 -3.188 cm +[] 0 d 0 J 0.398 w 0 0 m 0 147.258 l S Q q -1 0 0 1 130.747 -3.189 cm -[] 0 d 0 J 0.398 w 0 0 m 0 172.203 l S +1 0 0 1 139.109 -3.188 cm +[] 0 d 0 J 0.398 w 0 0 m 0 147.258 l S Q q -1 0 0 1 -3.388 -3.189 cm -[] 0 d 0 J 0.398 w 0 0 m 134.334 0 l S +1 0 0 1 -3.388 -3.188 cm +[] 0 d 0 J 0.398 w 0 0 m 142.696 0 l S Q -0 g 0 G -1 0 0 1 136.788 0 cm +1 0 0 1 145.15 0 cm q .5 0 0 .5 0 0 cm q @@ -1435,7 +1684,6 @@ q /Fm2 Do Q Q -0 g 0 G 0.0 0.0 1.0 rg 0.0 0.0 1.0 RG 0 g 0 G 0.0 0.0 1.0 rg 0.0 0.0 1.0 RG @@ -1443,170 +1691,154 @@ Q 0.0 0.0 1.0 rg 0.0 0.0 1.0 RG 0 g 0 G q -1 0 0 1 -3.387 169.014 cm -[] 0 d 0 J 0.398 w 0 0 m 120.16 0 l S +1 0 0 1 -3.387 144.07 cm +[] 0 d 0 J 0.398 w 0 0 m 128.522 0 l S Q q -1 0 0 1 -3.188 -3.189 cm -[] 0 d 0 J 0.398 w 0 0 m 0 172.203 l S +1 0 0 1 -3.188 -3.188 cm +[] 0 d 0 J 0.398 w 0 0 m 0 147.258 l S Q q -1 0 0 1 116.574 -3.189 cm -[] 0 d 0 J 0.398 w 0 0 m 0 172.203 l S +1 0 0 1 124.936 -3.188 cm +[] 0 d 0 J 0.398 w 0 0 m 0 147.258 l S Q q -1 0 0 1 -3.387 -3.189 cm -[] 0 d 0 J 0.398 w 0 0 m 120.16 0 l S +1 0 0 1 -3.387 -3.188 cm +[] 0 d 0 J 0.398 w 0 0 m 128.522 0 l S Q -1 0 0 1 -214.585 -511.746 cm +1 0 0 1 -222.947 -409.567 cm BT /F49 10.90909 Tf -1 0 0 1 74.409 491.422 Tm [<0024004900460044004C>-225<0042004D00540050>-225<005500490046>-225<005000560055005100560055>-225<00500047>-225<005500490046>-225<004D004A00540055004A004F0048>-225<004200430050>30<0057>5<0046>20<000D>]TJ +1 0 0 1 74.409 389.243 Tm [<0024004900460044004C>-225<0042004D00540050>-225<005500490046>-225<005000560055005100560055>-225<00500047>-225<005500490046>-225<004D004A00540055004A004F0048>-225<004200430050>30<0057>5<0046>20<000D>]TJ /F28 10.90909 Tf -1 0 0 1 282.304 491.422 Tm [<002F0051002B0040006D006200320040004D003200720054001C007400580054002F0037>]TJ +1 0 0 1 282.304 389.243 Tm [<002F0051002B0040006D006200320040004D003200720054001C007400580054002F0037>]TJ 0 g 0 G /F49 10.90909 Tf -1 0 0 1 385.395 491.422 Tm [<000F>]TJ +1 0 0 1 385.395 389.243 Tm [<000F>]TJ 0 g 0 G /F46 14.3462 Tf -1 0 0 1 74.008 448.005 Tm [<0064>-500<0061006D00540054>-31<0051>31<00600069>-367<00370051>31<0060>-367<0069003F0032>]TJ +1 0 0 1 74.409 345.827 Tm [<0033>-500<0061006D00540054>-31<0051>31<00600069>-367<00370051>31<0060>-367<0069003F0032>]TJ /F47 14.3462 Tf -1 0 0 1 195.577 448.005 Tm [<0054001C0074>]TJ +1 0 0 1 195.979 345.827 Tm [<0054001C0074>]TJ 0 g 0 G /F46 14.3462 Tf -1 0 0 1 223.438 448.005 Tm [<0054001C002B0046001C003B0032>]TJ +1 0 0 1 223.839 345.827 Tm [<0054001C002B0046001C003B0032>]TJ 0 g 0 G 0 g 0 G /F46 11.95517 Tf -1 0 0 1 74.075 414.988 Tm [<006400580052>-500<0061006900320054>-367<0052002C>-489<0031007400690060001C002B00690042004D003B>-367<0069003F0032>-367<001C004D004D00510069001C006900420051004D0062>]TJ +1 0 0 1 74.409 312.81 Tm [<003300580052>-500<0061006900320054>-367<0052002C>-489<0031007400690060001C002B00690042004D003B>-367<0069003F0032>-367<001C004D004D00510069001C006900420051004D0062>]TJ 0 g 0 G /F49 10.90909 Tf -0.981 0 0 1 74.071 386.647 Tm [<003500490046>-229<004D00560042>-230<005400440053>-9<004A00510055>-230<004A0054>-229<0042004D00540050>-230<00420043004D0046>-230<00550050>-230<00580053>-8<004A00550046>]TJ +0.981 0 0 1 74.071 284.468 Tm [<003500490046>-229<004D00560042>-230<005400440053>-9<004A00510055>-230<004A0054>-229<0042004D00540050>-230<00420043004D0046>-230<00550050>-230<00580053>-8<004A00550046>]TJ /F28 10.90909 Tf -1 0 0 1 237.303 386.647 Tm [<0054001C0074>]TJ +1 0 0 1 237.303 284.468 Tm [<0054001C0074>]TJ /F49 10.90909 Tf -0.981 0 0 1 256.945 386.647 Tm [<056D004D00460054>-229<004700500053>-230<005500490046>]TJ +0.981 0 0 1 256.945 284.468 Tm [<056D004D00460054>-229<004700500053>-230<005500490046>]TJ /F28 10.90909 Tf -1 0 0 1 313.436 386.647 Tm [<0054001C0074>]TJ +1 0 0 1 313.436 284.468 Tm [<0054001C0074>]TJ 0 g 0 G /F49 10.90909 Tf -0.981 0 0 1 333.078 386.647 Tm [<005100420044004C004200480046>-229<00090042004F0045>-230<00540050>-230<00440042004F>-230<00430046>-230<0056005400460045>-230<00550050>-230<0053>20<00460051004D004200440046>]TJ -1 0 0 1 74.409 373.097 Tm [<005500490046>-225<004B00420057>6<0042>-225<004200510051004D004A004400420055004A0050004F000A000F>]TJ -1 0 0 1 74.409 352.774 Tm [<0027>36<00500053>-225<00550049004A0054>-225<0046005900550053>10<004200440055>-225<005500490046>-225<0042004F004F0050005500420055004A0050004F0054>-225<004D004A004C0046>-225<00550049004A0054001B>]TJ +0.981 0 0 1 333.078 284.468 Tm [<005100420044004C004200480046>-229<00090042004F0045>-230<00540050>-230<00440042004F>-230<00430046>-230<0056005400460045>-230<00550050>-230<0053>20<00460051004D004200440046>]TJ +1 0 0 1 74.409 270.919 Tm [<005500490046>-225<004B00420057>6<0042>-225<004200510051004D004A004400420055004A0050004F000A000F>]TJ +1 0 0 1 74.409 250.595 Tm [<0027>36<00500053>-225<00550049004A0054>-225<0046005900550053>10<004200440055>-225<005500490046>-225<0042004F004F0050005500420055004A0050004F0054>-225<004D004A004C0046>-225<00550049004A0054001B>]TJ 0 g 0 G 0 g 0 G -1 0 0 1 226.287 330.258 Tm [<002D004A00540055004A004F0048>-225<0014001B>]TJ +1 0 0 1 226.287 228.08 Tm [<002D004A00540055004A004F0048>-225<0014001B>]TJ 0 g 0 G -1 0 0 1 273.349 330.258 Tm [<004500500044000E0046005900550053>10<004200440055000E005100420059000F005500460059>]TJ +1 0 0 1 273.349 228.08 Tm [<004500500044000E0046005900550053>10<004200440055000E005100420059000F005500460059>]TJ 0 g 0 G /F28 10.90909 Tf -1 0 0 1 74.409 313.72 Tm [<0024>]TJ +1 0 0 1 74.409 211.542 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 313.72 Tm [<002F0051002B006D004B0032004D0069002B0048001C00620062>]TJ +1 0 0 1 80.137 211.542 Tm [<002F0051002B006D004B0032004D0069002B0048001C00620062>]TJ /F28 10.90909 Tf -1 0 0 1 154.591 313.72 Tm [<0026001C006000690042002B004800320027>]TJ +1 0 0 1 154.591 211.542 Tm [<0026001C006000690042002B004800320027>]TJ 0 0.5 0 rg 0 0.5 0 RG /F47 10.90909 Tf -1 0 0 1 74.409 300.171 Tm [<0057>]TJ +1 0 0 1 74.409 197.992 Tm [<0057>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 85.864 300.171 Tm [<00480051001C002F>]TJ +1 0 0 1 85.864 197.992 Tm [<00480051001C002F>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 114.5 300.171 Tm [<0069003F0032>]TJ +1 0 0 1 114.5 197.992 Tm [<0069003F0032>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 137.409 300.171 Tm [<0048006D001C>]TJ +1 0 0 1 137.409 197.992 Tm [<0048006D001C>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 160.319 300.171 Tm [<002B0051002F0032>]TJ +1 0 0 1 160.319 197.992 Tm [<002B0051002F0032>]TJ 0 g 0 G /F28 10.90909 Tf -1 0 0 1 74.409 286.622 Tm [<0024002F004200600032002B00690048006D001C002600600032005B006D0042006000320055005D004D003200720054001C0074005D00560027>]TJ +1 0 0 1 74.409 184.443 Tm [<0024002F004200600032002B00690048006D001C002600600032005B006D0042006000320055005D004D003200720054001C0074005D00560027>]TJ 0 0.5 0 rg 0 0.5 0 RG /F47 10.90909 Tf -1 0 0 1 74.409 259.523 Tm [<0057>]TJ +1 0 0 1 74.409 157.345 Tm [<0057>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 85.864 259.523 Tm [<001C004D002F>]TJ +1 0 0 1 85.864 157.345 Tm [<001C004D002F>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 103.046 259.523 Tm [<0066>]TJ +1 0 0 1 103.046 157.345 Tm [<0066>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 108.773 259.523 Tm [<00510060>]TJ +1 0 0 1 108.773 157.345 Tm [<00510060>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 125.955 259.523 Tm [<00720060004200690032>]TJ +1 0 0 1 125.955 157.345 Tm [<00720060004200690032>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 160.319 259.523 Tm [<0058>]TJ +1 0 0 1 160.319 157.345 Tm [<0058>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 166.046 259.523 Tm [<0054001C0074>]TJ +1 0 0 1 166.046 157.345 Tm [<0054001C0074>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 188.955 259.523 Tm [<00370042004800320062>]TJ +1 0 0 1 188.955 157.345 Tm [<00370042004800320062>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 223.319 259.523 Tm [<003700510060>]TJ +1 0 0 1 223.319 157.345 Tm [<003700510060>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 246.228 259.523 Tm [<0054001C0074>]TJ +1 0 0 1 246.228 157.345 Tm [<0054001C0074>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 263.409 259.523 Tm [<0058>]TJ +1 0 0 1 263.409 157.345 Tm [<0058>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 269.137 259.523 Tm [<006200690076>]TJ +1 0 0 1 269.137 157.345 Tm [<006200690076>]TJ 0 g 0 G /F28 10.90909 Tf -1 0 0 1 74.409 245.974 Tm [<0024002F004200600032002B00690048006D001C>]TJ -1 0 0 1 84.228 232.425 Tm [<0026>]TJ -1 0 0 1 94.046 218.876 Tm [<004D003200720054001C00740058007200600042006900320054001C00740055005D002F0051002B00400042004D0054006D0069005D0056>]TJ -1 0 0 1 94.046 205.326 Tm [<004D003200720054001C00740058007200600042006900320054001C00740055005D002F0051002B00400042004D0054006D0069006B005D0056>]TJ -1 0 0 1 84.228 191.777 Tm [<0027>]TJ -1 0 0 1 74.409 178.228 Tm [<0024>]TJ -/F47 10.90909 Tf -1 0 0 1 80.137 178.228 Tm [<00230032003B0042004D>]TJ -/F28 10.90909 Tf -1 0 0 1 108.773 178.228 Tm [<0026002F0051002B006D004B0032004D00690027>]TJ -1 0 0 1 74.409 164.679 Tm [<0024>]TJ -/F47 10.90909 Tf -1 0 0 1 80.137 164.679 Tm [<0032004D002F>]TJ -/F28 10.90909 Tf -1 0 0 1 97.319 164.679 Tm [<0026002F0051002B006D004B0032004D00690027>]TJ -0 g 0 G -0 g 0 G +1 0 0 1 74.409 143.796 Tm [<0024002F004200600032002B00690048006D001C>]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G /F49 10.90909 Tf -1 0 0 1 294.747 93.476 Tm [<0017>]TJ +1 0 0 1 294.747 93.476 Tm [<0018>]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -1617,14 +1849,14 @@ ET endstream endobj -128 0 obj -<< /Type /Page /Contents 129 0 R /Resources 127 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R /Annots 152 0 R >> +135 0 obj +<< /Type /Page /Contents 136 0 R /Resources 134 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R /Annots 156 0 R >> endobj -152 0 obj -[ 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 123 0 R 105 0 R 106 0 R 124 0 R 125 0 R 126 0 R ] +156 0 obj +[ 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 130 0 R 113 0 R 114 0 R 131 0 R 132 0 R 133 0 R ] endobj -104 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 255.118 331.653 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 153 0 R /Length 41 >> +112 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 271.842 281.763 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 157 0 R /Length 41 >> stream q 1 0 0 1 -113.386 -425.196 cm @@ -1633,56 +1865,56 @@ Q endstream endobj -103 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 1 /PTEX.InfoDict << /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203759+02'00') /ModDate (D:20220915203759+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> /BBox [ 0 0 595.276 841.89 ] /Resources << /ExtGState 154 0 R /Font << /F15 155 0 R /F16 156 0 R /F28 157 0 R >> /ProcSet [ /PDF /Text ] >> /Length 4811 >> +111 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 1 /PTEX.InfoDict << /Producer (luahbtex-1.17.0) /Creator /Author /Title /CreationDate (D:20230911094532+02'00') /ModDate (D:20230911094532+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> /BBox [ 0 0 612 792 ] /Resources << /ExtGState 158 0 R /Font << /F15 159 0 R /F16 160 0 R /F28 161 0 R >> /ProcSet [ /PDF /Text ] >> /Length 4809 >> stream /opacity1 gs BT /F15 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<007400480042004D00460069003200740069>]TJ -1 0 0 1 148.712 695.17 Tm [<0052>]TJ +1 0 0 1 148.712 657.235 Tm [<007400480042004D00460069003200740069>]TJ +1 0 0 1 148.712 645.28 Tm [<0052>]TJ /F16 9.96264 Tf -1 0 0 1 157.011 695.17 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 157.011 645.28 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 683.215 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ -1 0 0 1 133.768 671.26 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ -1 0 0 1 133.768 659.304 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ -1 0 0 1 133.768 647.349 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ -1 0 0 1 133.768 635.394 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ -1 0 0 1 133.768 623.439 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ -1 0 0 1 133.768 611.484 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ -1 0 0 1 133.768 599.529 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ -1 0 0 1 133.768 587.573 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ -1 0 0 1 133.768 575.618 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ -1 0 0 1 133.768 563.663 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ -1 0 0 1 148.712 551.708 Tm [<0054>-28<002F0037>]TJ +1 0 0 1 148.712 633.325 Tm [<001B0062>-414<001C004D>27<0076>-413<002F0032002F0042002B001C00690032002F>-415<00600032001C002F00320060>-414<002B001C004D>-415<002B00480032001C006000480076>-414<006200320032002D>-435<0069003F0032>-414<0041002F0032001C0048>-415<00510037>-414<00540060001C002B00690042002B001C0048>-415<00600032001C00620051004D>-414<00420062>-415<001C>]TJ +1 0 0 1 133.768 621.37 Tm [<0060003200540060003200620032004D>28<0069001C006900420051004D>-390<00510037002D>-406<001C0062>-391<0037001C0060>-391<001C0062>-390<0041>-391<0046004D0051>27<0072002D>-405<0069003F0032>-390<0069003F0042004D003B0062>-391<0042004D>-391<0069003F0032004B0062003200480070>27<003200620063>-419<001C0062>-391<0041>-391<003F001C>27<0070>28<0032>-390<0062003F0051>28<0072004D>]TJ +1 0 0 1 133.768 609.415 Tm [<00320048006200320072003F003200600032002D>-264<0069003F0032>-247<0054003F0032004D0051004B0032004D001C>-247<0062003F0051006D0048002F>-247<0051004D00480076>-248<0023>-28<0032>-247<006D00620032002F>-247<001C0062>-247<001C>-247<002B001C004D0051004D>-247<003700510060>-247<0051006D0060>-248<006D004D002F0032006000620069001C004D002F0042004D003B0058>]TJ +1 0 0 1 133.768 597.46 Tm [<0068003F0032>-329<0054001C0060001C00480051003B00420062004B0062>-329<00510037>-330<00540060001C002B00690042002B001C0048>-329<00600032001C00620051004D>-329<001C00600032>-330<0072003F001C0069>-329<007D006000620069>-329<003B00420070>27<0032>-329<0060004200620032>-329<00690051>-329<0069003F0032>-330<001C0060002B>28<003F004200690032002B00690051004D0042002B>]TJ +1 0 0 1 133.768 585.504 Tm [<00510037>-383<00540060001C002B00690042002B001C0048>-383<00600032001C00620051004D0058>-595<001B0062>-383<0072004200480048>-383<0032001C0062004200480076>-383<0023>-28<0032>-384<0062003F0051>27<0072004D>-382<0042004D>-383<0069003F0032>-383<004D003200740069>-384<00620032002B006900420051004D002D>-395<00600032001C00620051004D>-384<0072>28<0051006D0048002F>]TJ +1 0 0 1 133.768 573.549 Tm [<0069003F0032006000320023>28<0076>-260<0023>-28<0032>-260<004B001C002F0032>-261<00690051>-260<002B0051004D>27<00690060001C002F0042002B0069002D>-274<0042004D>-260<0070004200320072>-261<00510037>-260<0069003F003200620032>-261<002B0051004D00620042002F00320060001C006900420051004D0062002D>-274<0069003F0032>-261<0041002F0032001C0048>-260<00510037>-261<00540060001C002B0040>]TJ +1 0 0 1 133.768 561.594 Tm [<00690042002B001C0048>-398<00600032001C00620051004D002D>-415<0076>27<00320069>-398<0069003F0032>-399<004B001C004D0042003700510048002F>-398<002F00320054>-28<0032004D002F0062>-399<0051004D>-398<0069003F0032>-399<0054003F0032004D0051004B0032004D001C0058>-641<004C0032002B00320062006200420069>27<0076>-398<002F00320054>-28<0032004D002F0062>]TJ +1 0 0 1 133.768 549.639 Tm [<0051004D002D>-350<0072003F0032004D>-348<0069003F>27<006D0062>-346<006900600032001C00690032002F>-347<001C0062>-348<0069003F0032>-347<00540060001C002B00690042002B001C0048>-347<0032004B005400480051>27<0076004B0032004D>28<0069>-347<00510037>-347<0069003F0032>-347<004D00320070>27<0032006000400032004D002F0042004D003B>-347<00600032003B0060003200620062>]TJ +1 0 0 1 133.768 537.684 Tm [<0042004D>-316<0069003F0032>-316<006200320060004200320062>-316<00510037>-316<0032004B0054004200600042002B001C0048>-317<002B0051004D002F0042006900420051004D0062002D>-319<00690042004B00320058>-439<003E006D004B001C004D>-316<00600032001C00620051004D>-316<002F00320054>-28<0032004D002F0062>-316<0051004D>-316<0051006D0060>-317<00620032004D00620032>]TJ +1 0 0 1 133.768 525.729 Tm [<0054>-28<00320060002B00320054006900420051004D0062002D>-285<0023>27<0076>-273<004B0032001C004D0062>-274<00510037>-274<001C004D001C0048007600690042002B>-274<006D004D00420069>28<0076>83<0058>-424<0068003F003200600032>-274<002B001C004D>-273<0023>-28<0032>-274<004D0051>-274<002F0051006D00230069>-274<0069003F001C0069>-274<0069003F0032>-274<00510023>-28<00440032002B00690062>]TJ +1 0 0 1 133.768 513.773 Tm [<0042004D>-333<00620054001C002B0032>-333<001C004D002F>-333<00690042004B0032>-333<001C00600032>-333<0072003F001C0069>-333<007D006000620069>-333<003B00420070>28<0032>-333<0060004200620032>-333<00690051>-333<003F>28<006D004B001C004D>-333<00600032001C00620051004D0058>]TJ +1 0 0 1 148.712 501.818 Tm [<0054>-28<002F0037>]TJ /F28 14.3462 Tf -1 0 0 1 133.768 518.747 Tm [<0052>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 490.938 Tm [<006B>-1000<001C0023>-31<002B>]TJ -1 0 0 1 133.768 463.129 Tm [<006A>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 468.857 Tm [<0052>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 441.048 Tm [<006B>-1000<001C0023>-31<002B>]TJ +1 0 0 1 133.768 413.239 Tm [<006A>-1000<001C0023>-31<002B>]TJ /F15 9.96264 Tf -1 0 0 1 133.768 441.298 Tm [<007D00480032>]TJ -1 0 0 1 303.133 139.255 Tm [<0052>]TJ +1 0 0 1 133.768 391.408 Tm [<007D00480032>]TJ +1 0 0 1 303.133 89.365 Tm [<0052>]TJ ET endstream endobj -154 0 obj +158 0 obj << /opacity1 << /ca 1 /CA 1 >> >> endobj -155 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 158 0 R ] /ToUnicode 159 0 R >> +159 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZNAMJV+LMRoman10-Regular /DescendantFonts [ 162 0 R ] /ToUnicode 163 0 R >> endobj -156 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 160 0 R ] /ToUnicode 161 0 R >> +160 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OGJFWH+LMMono10-Regular /DescendantFonts [ 164 0 R ] /ToUnicode 165 0 R >> endobj -157 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 162 0 R ] /ToUnicode 163 0 R >> +161 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTRWGM+LMRoman12-Bold /DescendantFonts [ 166 0 R ] /ToUnicode 167 0 R >> endobj -158 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 164 0 R /W 165 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +162 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZNAMJV+LMRoman10-Regular /FontDescriptor 168 0 R /W 169 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -159 0 obj +163 0 obj << /Length 1229 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -1757,10 +1989,10 @@ end endstream endobj -160 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 166 0 R /W 167 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +164 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OGJFWH+LMMono10-Regular /FontDescriptor 170 0 R /W 171 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -161 0 obj +165 0 obj << /Length 926 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -1814,10 +2046,10 @@ end endstream endobj -162 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 168 0 R /W 169 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +166 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTRWGM+LMRoman12-Bold /FontDescriptor 172 0 R /W 173 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -163 0 obj +167 0 obj << /Length 747 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -1859,25 +2091,25 @@ end endstream endobj -164 0 obj -<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 170 0 R /CIDSet 171 0 R >> +168 0 obj +<< /Type /FontDescriptor /FontName /ZNAMJV+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 174 0 R /CIDSet 175 0 R >> endobj -165 0 obj +169 0 obj [ 27 [ 750 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 785 500 ] 62 [ 750 556 333 361 278 ] 68 [ 306 ] 70 [ 528 ] 72 [ 278 ] 75 [ 833 750 556 ] 81 [ 500 500 ] 84 [ 556 ] 88 [ 278 ] 96 [ 392 ] 98 [ 394 278 ] 104 [ 722 389 500 500 ] 109 [ 556 ] 112 [ 528 ] 114 [ 722 ] 116 [ 528 ] 118 [ 528 ] 125 [ 556 ] ] endobj -166 0 obj -<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 172 0 R /CIDSet 173 0 R >> +170 0 obj +<< /Type /FontDescriptor /FontName /OGJFWH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 176 0 R /CIDSet 177 0 R >> endobj -167 0 obj +171 0 obj [ 28 [ 525 ] 43 [ 525 525 ] 50 [ 525 ] 59 [ 525 ] 63 [ 525 525 ] 68 [ 525 ] 72 [ 525 ] 81 [ 525 ] 84 [ 525 ] 88 [ 525 ] 96 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 114 [ 525 ] 116 [ 525 ] ] endobj -168 0 obj -<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 174 0 R /CIDSet 175 0 R >> +172 0 obj +<< /Type /FontDescriptor /FontName /FTRWGM+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 178 0 R /CIDSet 179 0 R >> endobj -169 0 obj +173 0 obj [ 28 [ 547 ] 35 [ 625 ] 43 [ 500 ] 82 [ 563 ] 106 [ 563 563 ] ] endobj -170 0 obj +174 0 obj << /Subtype /CIDFontType0C /Length 5208 >> stream ZNAMJV+LMRoman10-RegularF!"  &  B " $ % ZNAMJV+LMRoman10-Regular2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman10-RegularLMRoman10NormalAdobeIdentity#+-/279:;>?@ABDFHKLMQRTX`bchijkmprtv}((w  sZH[pzP x @@ -1890,13 +2122,13 @@ O endstream endobj -171 0 obj +175 0 obj << /Length 16 >> stream !sh endstream endobj -172 0 obj +176 0 obj << /Subtype /CIDFontType0C /Length 2420 >> stream OGJFWH+LMMono10-RegularH!"   ;  Wo " & $ % @@ -1906,13 +2138,13 @@ stream  endstream endobj -173 0 obj +177 0 obj << /Length 15 >> stream  H@( endstream endobj -174 0 obj +178 0 obj << /Subtype /CIDFontType0C /Length 1193 >> stream FTRWGM+LMRoman12-BoldG ! C  p)q "Y $ %FTRWGM+LMRoman12-Bold2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMRoman12-BoldLMRoman12AdobeIdentity#+Rjk^9pb}LlB!S @@ -1923,17 +2155,17 @@ stream   endstream endobj -175 0 obj +179 0 obj << /Length 14 >> stream  0 endstream endobj -153 0 obj -<< /XObject << /Im1 103 0 R >> /ProcSet [ /PDF ] >> +157 0 obj +<< /XObject << /Im1 111 0 R >> /ProcSet [ /PDF ] >> endobj -122 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 226.772 331.653 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 176 0 R /Length 41 >> +129 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 243.495 281.763 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 180 0 R /Length 41 >> stream q 1 0 0 1 -141.732 -425.196 cm @@ -1942,154 +2174,142 @@ Q endstream endobj -121 0 obj -<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 2 /PTEX.InfoDict << /Creator /Author /Title /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203759+02'00') /ModDate (D:20220915203759+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> /BBox [ 0 0 595.276 841.89 ] /Resources << /ExtGState 154 0 R /Font << /F16 156 0 R /F15 155 0 R >> /ProcSet [ /PDF /Text ] >> /Length 303 >> +128 0 obj +<< /Type /XObject /Subtype /Form /FormType 1 /PTEX.PageNumber 2 /PTEX.InfoDict << /Producer (luahbtex-1.17.0) /Creator /Author /Title /CreationDate (D:20230911094532+02'00') /ModDate (D:20230911094532+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> /BBox [ 0 0 612 792 ] /Resources << /ExtGState 158 0 R /Font << /F16 160 0 R /F15 159 0 R >> /ProcSet [ /PDF /Text ] >> /Length 302 >> stream /opacity1 gs BT /F16 9.96264 Tf -1 0 0 1 148.712 707.125 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ +1 0 0 1 148.712 657.235 Tm [<003F0069006900540062002C0066006600720072007200580048001C0069003200740040>-50<00540060005100440032002B0069005800510060003B>]TJ /F15 9.96264 Tf -1 0 0 1 148.712 695.17 Tm [<0052>-1333<006B>-1333<006A>]TJ -1 0 0 1 303.133 139.255 Tm [<006B>]TJ +1 0 0 1 148.712 645.28 Tm [<0052>-1333<006B>-1333<006A>]TJ +1 0 0 1 303.133 89.365 Tm [<006B>]TJ ET endstream endobj -176 0 obj -<< /XObject << /Im2 121 0 R >> /ProcSet [ /PDF ] >> -endobj -107 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 99.112 645.093 176.2 650.687 ] >> -endobj -108 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 94.962 639.235 205.36 644.819 ] >> -endobj -109 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 633.253 205.36 638.787 ] >> -endobj -110 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 627.275 205.36 632.809 ] >> -endobj -111 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 621.298 205.36 626.832 ] >> -endobj -112 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 615.325 205.36 620.909 ] >> -endobj -113 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 609.347 205.36 614.877 ] >> -endobj -114 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 603.37 205.36 608.899 ] >> +180 0 obj +<< /XObject << /Im2 128 0 R >> /ProcSet [ /PDF ] >> endobj 115 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 597.387 205.36 602.922 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 99.111 517.97 176.197 523.564 ] >> endobj 116 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 591.469 205.36 596.944 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 94.962 512.112 213.718 517.696 ] >> endobj 117 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 585.437 205.36 590.966 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 506.628 213.718 511.166 ] >> endobj 118 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.49 579.455 205.36 584.989 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 500.65 213.718 505.188 ] >> endobj 119 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D(chapter.1)>> /BS <> /Rect [ 94.962 573.537 103.162 579.011 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 494.672 213.718 499.21 ] >> endobj 120 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D[0 /Fit]>> /BS <> /Rect [ 87.49 519.243 94.853 523.806 ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 488.7 213.718 493.288 ] >> endobj -123 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 217.577 651.071 294.663 656.665 ] >> +121 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 482.722 213.718 487.255 ] >> endobj -105 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 96.596 651.16 116.472 657.661 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@1@) >> >> +122 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 476.745 213.718 481.278 ] >> endobj -106 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 93.966 644.097 99.446 651.683 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@2@) >> >> +123 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 470.762 213.718 475.3 ] >> endobj 124 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 216.58 645.128 222.06 651.544 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@3@) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 464.844 213.718 469.322 ] >> endobj 125 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 225.711 645.128 231.19 651.544 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@4@) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 458.812 213.718 463.345 ] >> endobj 126 0 obj -<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 234.842 645.128 240.321 651.544 ]/A << /S /GoTo /D (NEWPAX@doc-input1.newpax@5@) >> >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 87.988 452.829 213.718 457.367 ] >> +endobj +127 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.444706 0.456472 0.680002 ] /A </Subtype/application#2Fpdf/Type/Filespec/UF >>/D(chapter.1)>> /BS <> /Rect [ 94.962 446.413 103.161 451.888 ] >> endobj 130 0 obj -<< /D [ 128 0 R /XYZ 73.409 809.993 null ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.724708 0.4 0.717646 ] /A <> /BS <> /Rect [ 225.939 523.948 303.025 529.542 ] >> +endobj +113 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 96.596 524.037 116.471 530.538 ]/A << /S /GoTo /D (doc-input1.newpax@section.2) >> >> +endobj +114 0 obj +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 93.966 516.973 99.445 524.56 ]/A << /S /GoTo /D (doc-input1.newpax@section.1) >> >> endobj 131 0 obj -<< /D [ 128 0 R /XYZ 74.409 725.875 null ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 224.942 518.005 230.422 524.421 ]/A << /S /GoTo /D (doc-input1.newpax@section.1) >> >> endobj 132 0 obj -<< /D [ 128 0 R /XYZ 105.17 553.54 null ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 234.073 518.005 239.552 524.421 ]/A << /S /GoTo /D (doc-input1.newpax@section.2) >> >> endobj 133 0 obj -<< /D [ 128 0 R /XYZ 122.352 566.521 null ] >> -endobj -134 0 obj -<< /D [ 128 0 R /XYZ 139.533 566.521 null ] >> -endobj -135 0 obj -<< /D [ 128 0 R /XYZ 156.715 553.54 null ] >> -endobj -136 0 obj -<< /D [ 128 0 R /XYZ 173.897 539.635 null ] >> +<< /Type /Annot /Subtype /Link /Border [0 0 1 ] /H /I /C [0.701176 0.4 0.414118 ] /BS <> /Rect [ 243.204 518.005 248.683 524.421 ]/A << /S /GoTo /D (doc-input1.newpax@section.3) >> >> endobj 137 0 obj -<< /D [ 128 0 R /XYZ 74.409 470.073 null ] >> +<< /D [ 135 0 R /XYZ 73.409 809.993 null ] >> endobj 138 0 obj -<< /D [ 128 0 R /XYZ 74.409 432.612 null ] >> +<< /D [ 135 0 R /XYZ 74.409 677.635 null ] >> endobj 139 0 obj -<< /D [ 128 0 R /XYZ 74.409 346.665 null ] >> +<< /D [ 135 0 R /XYZ 101.682 680.275 null ] >> endobj 140 0 obj -<< /D [ 128 0 R /XYZ 74.409 327.269 null ] >> +<< /D [ 135 0 R /XYZ 101.682 666.726 null ] >> endobj 141 0 obj -<< /D [ 128 0 R /XYZ 74.409 313.72 null ] >> +<< /D [ 135 0 R /XYZ 101.682 653.177 null ] >> endobj 142 0 obj -<< /D [ 128 0 R /XYZ 74.409 300.171 null ] >> +<< /D [ 135 0 R /XYZ 101.682 639.628 null ] >> endobj 143 0 obj -<< /D [ 128 0 R /XYZ 74.409 286.622 null ] >> +<< /D [ 135 0 R /XYZ 74.409 597.327 null ] >> endobj 144 0 obj -<< /D [ 128 0 R /XYZ 74.409 273.072 null ] >> +<< /D [ 135 0 R /XYZ 87.988 426.416 null ] >> endobj 145 0 obj -<< /D [ 128 0 R /XYZ 74.409 259.523 null ] >> +<< /D [ 135 0 R /XYZ 87.988 439.397 null ] >> endobj 146 0 obj -<< /D [ 128 0 R /XYZ 74.409 245.974 null ] >> +<< /D [ 135 0 R /XYZ 87.988 412.512 null ] >> endobj 147 0 obj -<< /D [ 128 0 R /XYZ 74.409 232.425 null ] >> +<< /D [ 135 0 R /XYZ 74.409 367.894 null ] >> endobj 148 0 obj -<< /D [ 128 0 R /XYZ 74.409 218.876 null ] >> +<< /D [ 135 0 R /XYZ 74.409 330.434 null ] >> endobj 149 0 obj -<< /D [ 128 0 R /XYZ 74.409 205.326 null ] >> +<< /D [ 135 0 R /XYZ 74.409 244.487 null ] >> endobj 150 0 obj -<< /D [ 128 0 R /XYZ 74.409 191.777 null ] >> +<< /D [ 135 0 R /XYZ 74.409 225.091 null ] >> endobj 151 0 obj -<< /D [ 128 0 R /XYZ 74.409 178.228 null ] >> +<< /D [ 135 0 R /XYZ 74.409 211.542 null ] >> endobj -127 0 obj -<< /ExtGState 1 0 R /Font << /F49 12 0 R /F28 14 0 R /F46 10 0 R /F47 11 0 R >> /XObject << /Fm1 104 0 R /Fm2 122 0 R >> /ProcSet [ /PDF /Text ] >> +152 0 obj +<< /D [ 135 0 R /XYZ 74.409 197.992 null ] >> endobj -179 0 obj -<< /Length 14099 >> +153 0 obj +<< /D [ 135 0 R /XYZ 74.409 184.443 null ] >> +endobj +154 0 obj +<< /D [ 135 0 R /XYZ 74.409 170.894 null ] >> +endobj +155 0 obj +<< /D [ 135 0 R /XYZ 74.409 157.345 null ] >> +endobj +134 0 obj +<< /ExtGState 1 0 R /Font << /F49 12 0 R /F28 14 0 R /F47 11 0 R /F46 10 0 R >> /XObject << /Fm1 112 0 R /Fm2 129 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +183 0 obj +<< /Length 11999 >> stream /opacity1 gs 0 g 0 G @@ -2100,322 +2320,291 @@ stream 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G BT +/F28 10.90909 Tf +1 0 0 1 84.228 760.773 Tm [<0026>]TJ +1 0 0 1 94.046 747.224 Tm [<004D003200720054001C00740058007200600042006900320054001C00740055005D002F0051002B00400042004D0054006D0069005D0056>]TJ +1 0 0 1 94.046 733.675 Tm [<004D003200720054001C00740058007200600042006900320054001C00740055005D002F0051002B00400042004D0054006D0069006B005D0056>]TJ +1 0 0 1 84.228 720.126 Tm [<0027>]TJ +1 0 0 1 74.409 706.577 Tm [<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 80.137 706.577 Tm [<00230032003B0042004D>]TJ +/F28 10.90909 Tf +1 0 0 1 108.773 706.577 Tm [<0026002F0051002B006D004B0032004D00690027>]TJ +1 0 0 1 74.409 693.027 Tm [<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 80.137 693.027 Tm [<0032004D002F>]TJ +/F28 10.90909 Tf +1 0 0 1 97.319 693.027 Tm [<0026002F0051002B006D004B0032004D00690027>]TJ +0 g 0 G +0 g 0 G +0 g 0 G /F46 11.95517 Tf -1 0 0 1 74.075 760.773 Tm [<00640058006B>-500<0061006900320054>-367<006B002C>-489<006C00620042004D003B>-367<0069003F0032>]TJ +1 0 0 1 74.409 648.955 Tm [<00330058006B>-500<0061006900320054>-367<006B002C>-489<006C00620042004D003B>-367<0069003F0032>]TJ /F47 11.95517 Tf -1 0 0 1 199.225 760.773 Tm [<00580054001C0074>]TJ +1 0 0 1 199.56 648.955 Tm [<00580054001C0074>]TJ /F46 11.95517 Tf -1 0 0 1 224.331 760.773 Tm [<0040007D00480032>-367<007200420069003F>]TJ +1 0 0 1 224.666 648.955 Tm [<0040007D00480032>-367<007200420069003F>]TJ /F47 11.95517 Tf -1 0 0 1 277.161 760.773 Tm [<0054001C00740058006200690076>]TJ +1 0 0 1 277.496 648.955 Tm [<0054001C00740058006200690076>]TJ 0 g 0 G 0 g 0 G /F49 10.90909 Tf -1.02 0 0 1 74.409 732.431 Tm [<0026>4<004F005400560053>20<0046>-245<0055004900420055>-245<005500490046>]TJ +1.02 0 0 1 74.409 620.613 Tm [<0026>4<004F005400560053>20<0046>-245<0055004900420055>-245<005500490046>]TJ /F28 10.90909 Tf -1 0 0 1 154.139 732.431 Tm [<00580054001C0074>]TJ +1 0 0 1 154.139 620.613 Tm [<00580054001C0074>]TJ /F49 10.90909 Tf -1.02 0 0 1 179.778 732.431 Tm [<056D004D0046>-245<00440053>19<00460042005500460045>-244<004A004F>-246<0054005500460051>-245<0012>-246<00440042004F>-245<00430046>-245<004700500056004F0045>-246<0043>24<005A>-244<005A>5<005000560053>-245<004E0042004A004F>-245<0045005000440056004E0046004F0055000F>-369<003A>90<00500056>-245<00440042004F>]TJ -1 0 0 1 74.409 718.882 Tm [<005500490046004F>-225<004A004F005400460053>-8<0055>-225<005A>6<005000560053>-225<003100250027>-225<056D004D00460054>-225<00550050004800460055004900460053>-225<0058004A00550049>-225<005500490046004A0053>-225<0042004F004F0050005500420055004A0050004F0054>-225<004D004A004C0046>-225<004A004F>-225<005500490046>-225<00470050004D004D0050>30<0058004A004F0048>-225<004D004A00540055004A004F0048000F>]TJ +1.02 0 0 1 179.778 620.613 Tm [<056D004D0046>-245<00440053>19<00460042005500460045>-244<004A004F>-246<0054005500460051>-245<0012>-246<00440042004F>-245<00430046>-245<004700500056004F0045>-246<0043>24<005A>-244<005A>5<005000560053>-245<004E0042004A004F>-245<0045005000440056004E0046004F0055000F>-369<003A>90<00500056>-245<00440042004F>]TJ +1 0 0 1 74.409 607.064 Tm [<005500490046004F>-225<004A004F005400460053>-8<0055>-225<005A>6<005000560053>-225<003100250027>-225<056D004D00460054>-225<00550050004800460055004900460053>-225<0058004A00550049>-225<005500490046004A0053>-225<0042004F004F0050005500420055004A0050004F0054>-225<004D004A004C0046>-225<004A004F>-225<005500490046>-225<00470050004D004D0050>30<0058004A004F0048>-225<004D004A00540055004A004F0048000F>]TJ 0 g 0 G -1 0 0 1 91.766 695.57 Tm [<044C>]TJ +1 0 0 1 91.766 583.751 Tm [<044C>]TJ 0 g 0 G -1.011 0 0 1 101.344 695.57 Tm [<00350049004A0054>-221<005800500053>5<004C0054>-221<0058004A00550049>-221<00510045056E0042005500460059>-222<0042004F0045>-221<004D00560042004D0042005500460059000F>-296<004D00560042004D0042005500460059>-222<004F0046004600450054>-221<005500490046>-222<0046005900550053>9<0042>-220<0044005000450046>-222<00450046004E0050004F005400550053>9<0042005500460045>-220<004A004F>]TJ -1 0 0 1 101.682 682.021 Tm [<005500490046>-225<0045005000440056004E0046004F0055000F>]TJ +1.011 0 0 1 101.344 583.751 Tm [<00350049004A0054>-221<005800500053>5<004C0054>-221<0058004A00550049>-221<00510045056E0042005500460059>-222<0042004F0045>-221<004D00560042004D0042005500460059000F>-296<004D00560042004D0042005500460059>-222<004F0046004600450054>-221<005500490046>-222<0046005900550053>9<0042>-220<0044005000450046>-222<00450046004E0050004F005400550053>9<0042005500460045>-220<004A004F>]TJ +1 0 0 1 101.682 570.202 Tm [<005500490046>-225<0045005000440056004E0046004F0055000F>]TJ 0 g 0 G -1 0 0 1 91.766 661.697 Tm [<044C>]TJ +1 0 0 1 91.766 549.878 Tm [<044C>]TJ 0 g 0 G -1 0 0 1 101.682 661.697 Tm [<002A>24<0055>-225<004F0046004600450054>-225<005500580050>-225<00500053>-225<005500490053>20<00460046>-225<00440050004E0051004A004D00420055004A0050004F0054>-225<0056004F0055004A004D>-225<00460057>5<00460053>-18<005A>-225<0053>20<0046004700460053>20<0046004F00440046>-225<004A0054>-225<0044005000530053>20<004600440055000F>]TJ +1 0 0 1 101.682 549.878 Tm [<002A>24<0055>-225<004F0046004600450054>-225<005500580050>-225<00500053>-225<005500490053>20<00460046>-225<00440050004E0051004A004D00420055004A0050004F0054>-225<0056004F0055004A004D>-225<00460057>5<00460053>-18<005A>-225<0053>20<0046004700460053>20<0046004F00440046>-225<004A0054>-225<0044005000530053>20<004600440055000F>]TJ 0 g 0 G -1 0 0 1 91.766 641.373 Tm [<044C>]TJ +1 0 0 1 91.766 529.554 Tm [<044C>]TJ 0 g 0 G -1.009 0 0 1 101.344 641.373 Tm [<0035004900460053>20<0046>-222<004A0054>-223<0042>-222<0054004E0042004D004D>-223<0055005A00510050>-222<004A004F>]TJ +1.009 0 0 1 101.344 529.554 Tm [<0035004900460053>20<0046>-222<004A0054>-223<0042>-222<0054004E0042004D004D>-223<0055005A00510050>-222<004A004F>]TJ /F28 10.90909 Tf -1 0 0 1 217.972 641.373 Tm [<0054001C00740058006200690076>]TJ +1 0 0 1 217.972 529.554 Tm [<0054001C00740058006200690076>]TJ 0 g 0 G /F49 10.90909 Tf -1.009 0 0 1 260.514 641.373 Tm [<00580049004A00440049>-222<0042056C0046004400550054>-223<0044004D004A00510051004A004F0048000D>-222<005500490046>-223<00510042005500440049>-223<005400490050>30<0058004F>-222<004A004F>-223<005500490046>-222<004D004A00540055004A004F0048>]TJ -1 0 0 1 101.682 627.824 Tm [<0044005000530053>20<004600440055>-225<00550049004A0054>20<000F>]TJ +1.009 0 0 1 260.514 529.554 Tm [<00580049004A00440049>-222<0042056C0046004400550054>-223<0044004D004A00510051004A004F0048000D>-222<005500490046>-223<00510042005500440049>-223<005400490050>30<0058004F>-222<004A004F>-223<005500490046>-222<004D004A00540055004A004F0048>]TJ +1 0 0 1 101.682 516.005 Tm [<0044005000530053>20<004600440055>-225<00550049004A0054>20<000F>]TJ 0 g 0 G -1 0 0 1 91.766 607.5 Tm [<044C>]TJ +1 0 0 1 91.766 495.681 Tm [<044C>]TJ 0 g 0 G -1 0 0 1 101.682 607.5 Tm [<002A>18<004F>-225<00540050004E0046>-225<00440042005400460054>-225<005500490046>-225<0044004200550044005000450046>-225<00500047>-225<0004>-225<0042004F0045>-225<0006>-225<004E005600540055>-225<00430046>-225<005400460055>-225<00550050>-225<004D00460055005500460053>-225<00550050>-225<00420057>5<0050004A0045>-225<004600530053>6<005000530054>20<000F>]TJ +1 0 0 1 101.682 495.681 Tm [<002A>18<004F>-225<00540050004E0046>-225<00440042005400460054>-225<005500490046>-225<0044004200550044005000450046>-225<00500047>-225<0004>-225<0042004F0045>-225<0006>-225<004E005600540055>-225<00430046>-225<005400460055>-225<00550050>-225<004D00460055005500460053>-225<00550050>-225<00420057>5<0050004A0045>-225<004600530053>6<005000530054>20<000F>]TJ 0 g 0 G -1 0 0 1 91.766 587.176 Tm [<044C>]TJ +1 0 0 1 91.766 475.358 Tm [<044C>]TJ 0 g 0 G -1.015 0 0 1 101.682 587.176 Tm [<00250050004F>80<0445>75<0055>-221<004A004F0044004D005600450046>-222<0031002500270054>-222<0058004A00550049>-222<0045004600540055004A004F00420055004A0050004F0054>-221<00550058004A00440046>-222<00420054>-222<00550049004A0054>-222<0058004A004D004D>-222<004D004600420045>-222<00550050>-222<004500560051004D004A0044004200550046>-222<0045004600540055004A004F00420055004A0050004F0054>]TJ -1 0 0 1 101.682 573.627 Tm [<0042004F0045>-225<00510045056E0042005500460059>-225<0058004A004D004D>-225<00440050004E0051004D0042004A004F000F>]TJ +1.015 0 0 1 101.682 475.358 Tm [<00250050004F>80<0445>75<0055>-221<004A004F0044004D005600450046>-222<0031002500270054>-222<0058004A00550049>-222<0045004600540055004A004F00420055004A0050004F0054>-221<00550058004A00440046>-222<00420054>-222<00550049004A0054>-222<0058004A004D004D>-222<004D004600420045>-222<00550050>-222<004500560051004D004A0044004200550046>-222<0045004600540055004A004F00420055004A0050004F0054>]TJ +1 0 0 1 101.682 461.808 Tm [<0042004F0045>-225<00510045056E0042005500460059>-225<0058004A004D004D>-225<00440050004E0051004D0042004A004F000F>]TJ 0 g 0 G -1 0 0 1 91.766 553.303 Tm [<044C>]TJ +1 0 0 1 91.766 441.485 Tm [<044C>]TJ 0 g 0 G -1 0 0 1 101.682 553.303 Tm [<002A>6<0047>-225<0042004F004F0050005500420055004A0050004F0054>-225<0054004900500056004D0045>-225<004F00500055>-225<00430046>-225<0053>20<0046004A004F005400460053>-8<005500460045>-225<0053>20<0046004E0050>30<0057>5<0046>-225<005500490046>]TJ +1 0 0 1 101.682 441.485 Tm [<002A>6<0047>-225<0042004F004F0050005500420055004A0050004F0054>-225<0054004900500056004D0045>-225<004F00500055>-225<00430046>-225<0053>20<0046004A004F005400460053>-8<005500460045>-225<0053>20<0046004E0050>30<0057>5<0046>-225<005500490046>]TJ /F28 10.90909 Tf -1 0 0 1 353.857 553.303 Tm [<00580054001C0074>]TJ +1 0 0 1 353.857 441.485 Tm [<00580054001C0074>]TJ /F49 10.90909 Tf -1 0 0 1 376.766 553.303 Tm [<000E056D004D0046>20<000F>]TJ +1 0 0 1 376.766 441.485 Tm [<000E056D004D0046>20<000F>]TJ 0 g 0 G -1 0 0 1 91.766 532.979 Tm [<044C>]TJ +1 0 0 1 91.766 421.161 Tm [<044C>]TJ 0 g 0 G -1.008 0 0 1 101.682 532.979 Tm [<002A>6<0047>]TJ +1.008 0 0 1 101.682 421.161 Tm [<002A>6<0047>]TJ /F28 10.90909 Tf -1 0 0 1 111.415 532.979 Tm [<003F0076005400320060006000320037>]TJ +1 0 0 1 111.415 421.161 Tm [<003F0076005400320060006000320037>]TJ 0 g 0 G /F49 10.90909 Tf -1.008 0 0 1 159.688 532.979 Tm [<004A0054>-223<004D00500042004500460045>-223<005A>5<00500056>-222<00440042004F>-223<004400490042004F00480046>-223<005500490046>-224<00440050004D00500053>-223<0042004F0045>-223<00540055005A004D0046>-223<00500047>-223<004D004A004F004C>-224<004300500053>19<0045004600530054>-222<0058004A00550049>-223<0049005A0051004600530053>19<00460047>]TJ -1 0 0 1 101.682 519.43 Tm [<005000510055004A0050004F0054>20<000F>]TJ +1.008 0 0 1 159.688 421.161 Tm [<004A0054>-223<004D00500042004500460045>-223<005A>5<00500056>-222<00440042004F>-223<004400490042004F00480046>-223<005500490046>-224<00440050004D00500053>-223<0042004F0045>-223<00540055005A004D0046>-223<00500047>-223<004D004A004F004C>-224<004300500053>19<0045004600530054>-222<0058004A00550049>-223<0049005A0051004600530053>19<00460047>]TJ +1 0 0 1 101.682 407.612 Tm [<005000510055004A0050004F0054>20<000F>]TJ 0 g 0 G 0 g 0 G -1 0 0 1 234.632 493.926 Tm [<002D004A00540055004A004F0048>-225<0015001B>]TJ +1 0 0 1 234.632 382.107 Tm [<002D004A00540055004A004F0048>-225<0015001B>]TJ 0 g 0 G -1 0 0 1 281.694 493.926 Tm [<004500500044000E005600540046000E005100420059000F005500460059>]TJ +1 0 0 1 281.694 382.107 Tm [<004500500044000E005600540046000E005100420059000F005500460059>]TJ 0 g 0 G /F28 10.90909 Tf -1 0 0 1 74.409 477.388 Tm [<0024>]TJ +1 0 0 1 74.409 365.569 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 477.388 Tm [<002F0051002B006D004B0032004D0069002B0048001C00620062>]TJ +1 0 0 1 80.137 365.569 Tm [<002F0051002B006D004B0032004D0069002B0048001C00620062>]TJ /F28 10.90909 Tf -1 0 0 1 154.591 477.388 Tm [<0026001C006000690042002B004800320027>]TJ -1 0 0 1 74.409 463.839 Tm [<0024>]TJ +1 0 0 1 154.591 365.569 Tm [<0026001C006000690042002B004800320027>]TJ +1 0 0 1 74.409 352.02 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 463.839 Tm [<006D006200320054001C002B0046001C003B0032>]TJ +1 0 0 1 80.137 352.02 Tm [<006D006200320054001C002B0046001C003B0032>]TJ /F28 10.90909 Tf -1 0 0 1 137.409 463.839 Tm [<0026004200370048006D001C006900320074002D003200690051005100480023005100740027>]TJ -1 0 0 1 74.409 450.289 Tm [<0024>]TJ +1 0 0 1 137.409 352.02 Tm [<0026004200370048006D001C006900320074002D003200690051005100480023005100740027>]TJ +1 0 0 1 74.409 338.471 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 450.289 Tm [<006D006200320054001C002B0046001C003B0032>]TJ +1 0 0 1 80.137 338.471 Tm [<006D006200320054001C002B0046001C003B0032>]TJ /F28 10.90909 Tf -1 0 0 1 137.409 450.289 Tm [<00260054002F00370054001C003B003200620027>]TJ +1 0 0 1 137.409 338.471 Tm [<00260054002F00370054001C003B003200620027>]TJ 0 0.5 0 rg 0 0.5 0 RG /F47 10.90909 Tf -1 0 0 1 74.409 436.74 Tm [<0057>]TJ +1 0 0 1 74.409 324.922 Tm [<0057>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 80.137 436.74 Tm [<0054001C0074>]TJ +1 0 0 1 80.137 324.922 Tm [<0054001C0074>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 103.046 436.74 Tm [<004D00320032002F0062>]TJ +1 0 0 1 103.046 324.922 Tm [<004D00320032002F0062>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 137.409 436.74 Tm [<0069003F00420062>]TJ +1 0 0 1 137.409 324.922 Tm [<0069003F00420062>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 166.046 436.74 Tm [<00690051>]TJ +1 0 0 1 166.046 324.922 Tm [<00690051>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 183.228 436.74 Tm [<0060006D004D>]TJ +1 0 0 1 183.228 324.922 Tm [<0060006D004D>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 206.137 436.74 Tm [<007200420069003F>]TJ +1 0 0 1 206.137 324.922 Tm [<007200420069003F>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 234.773 436.74 Tm [<0048006D001C0048001C006900320074>]TJ +1 0 0 1 234.773 324.922 Tm [<0048006D001C0048001C006900320074>]TJ 0 g 0 G /F28 10.90909 Tf -1 0 0 1 74.409 423.191 Tm [<0024004200370048006D001C006900320074>]TJ -1 0 0 1 74.409 409.642 Tm [<0024>]TJ +1 0 0 1 74.409 311.372 Tm [<0024004200370048006D001C006900320074>]TJ +1 0 0 1 74.409 297.823 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 409.642 Tm [<006D006200320054001C002B0046001C003B0032>]TJ +1 0 0 1 80.137 297.823 Tm [<006D006200320054001C002B0046001C003B0032>]TJ /F28 10.90909 Tf -1 0 0 1 137.409 409.642 Tm [<00260054002F0037006900320074002B004B002F00620027>]TJ -1 0 0 1 74.409 396.093 Tm [<0024>]TJ +1 0 0 1 137.409 297.823 Tm [<00260054002F0037006900320074002B004B002F00620027>]TJ +1 0 0 1 74.409 284.274 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 396.093 Tm [<004B001C00460032001C0069004800320069006900320060>]TJ +1 0 0 1 80.137 284.274 Tm [<004B001C00460032001C0069004800320069006900320060>]TJ /F28 10.90909 Tf -1 0 0 1 74.409 382.543 Tm [<0024>]TJ +1 0 0 1 74.409 270.725 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 382.543 Tm [<004800320069>]TJ +1 0 0 1 80.137 270.725 Tm [<004800320069>]TJ /F28 10.90909 Tf -1 0 0 1 97.319 382.543 Tm [<00240054002F0037006200690060002B004B005400240054002F00370021006200690060002B004B0054>]TJ -1 0 0 1 74.409 368.994 Tm [<0024>]TJ +1 0 0 1 97.319 270.725 Tm [<00240054002F0037006200690060002B004B005400240054002F00370021006200690060002B004B0054>]TJ +1 0 0 1 74.409 257.176 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 368.994 Tm [<004800320069>]TJ +1 0 0 1 80.137 257.176 Tm [<004800320069>]TJ /F28 10.90909 Tf -1 0 0 1 97.319 368.994 Tm [<00240054002F003700320062002B001C00540032004D001C004B003200240054002F0037002100320062002B001C00540032004D001C004B0032>]TJ -1 0 0 1 74.409 355.445 Tm [<0024>]TJ +1 0 0 1 97.319 257.176 Tm [<00240054002F003700320062002B001C00540032004D001C004B003200240054002F0037002100320062002B001C00540032004D001C004B0032>]TJ +1 0 0 1 74.409 243.626 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 355.445 Tm [<004B001C00460032001C006900510069003F00320060>]TJ +1 0 0 1 80.137 243.626 Tm [<004B001C00460032001C006900510069003F00320060>]TJ /F28 10.90909 Tf -1 0 0 1 74.409 341.896 Tm [<0024>]TJ +1 0 0 1 74.409 230.077 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 341.896 Tm [<006D006200320054001C002B0046001C003B0032>]TJ +1 0 0 1 80.137 230.077 Tm [<006D006200320054001C002B0046001C003B0032>]TJ /F28 10.90909 Tf -1 0 0 1 137.409 341.896 Tm [<00260048006D001C006900320074003300380027>]TJ -1 0 0 1 74.409 328.347 Tm [<0024>]TJ +1 0 0 1 137.409 230.077 Tm [<00260048006D001C006900320074003300380027>]TJ +1 0 0 1 74.409 216.528 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 328.347 Tm [<00370042>]TJ +1 0 0 1 80.137 216.528 Tm [<00370042>]TJ 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 74.409 314.797 Tm [<0057>]TJ +1 0 0 1 74.409 202.979 Tm [<0057>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 80.137 314.797 Tm [<00480051001C002F>]TJ +1 0 0 1 80.137 202.979 Tm [<00480051001C002F>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 108.773 314.797 Tm [<0054001C0074>]TJ +1 0 0 1 108.773 202.979 Tm [<0054001C0074>]TJ 0 g 0 G /F28 10.90909 Tf -1 0 0 1 74.409 301.248 Tm [<0024>]TJ +1 0 0 1 74.409 189.43 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 301.248 Tm [<006D006200320054001C002B0046001C003B0032>]TJ +1 0 0 1 80.137 189.43 Tm [<006D006200320054001C002B0046001C003B0032>]TJ /F28 10.90909 Tf -1 0 0 1 137.409 301.248 Tm [<00260054001C00740027>]TJ +1 0 0 1 137.409 189.43 Tm [<00260054001C00740027>]TJ 0 0.5 0 rg 0 0.5 0 RG /F47 10.90909 Tf -1 0 0 1 74.409 287.699 Tm [<0057>]TJ +1 0 0 1 74.409 175.88 Tm [<0057>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 80.137 287.699 Tm [<002B0051006000600032002B0069>]TJ +1 0 0 1 80.137 175.88 Tm [<002B0051006000600032002B0069>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 125.955 287.699 Tm [<001C>]TJ +1 0 0 1 125.955 175.88 Tm [<001C>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 137.409 287.699 Tm [<0023006D003B>]TJ +1 0 0 1 137.409 175.88 Tm [<0023006D003B>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 160.319 287.699 Tm [<0042004D>]TJ +1 0 0 1 160.319 175.88 Tm [<0042004D>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 177.5 287.699 Tm [<0054001C0074>]TJ +1 0 0 1 177.5 175.88 Tm [<0054001C0074>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 200.409 287.699 Tm [<001C003700370032002B00690042004D003B>]TJ +1 0 0 1 200.409 175.88 Tm [<001C003700370032002B00690042004D003B>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 257.682 287.699 Tm [<002B00480042005400540042004D003B>]TJ +1 0 0 1 257.682 175.88 Tm [<002B00480042005400540042004D003B>]TJ 0 g 0 G /F28 10.90909 Tf -1 0 0 1 74.409 274.15 Tm [<0024>]TJ -/F47 10.90909 Tf -1 0 0 1 80.137 274.15 Tm [<004B001C00460032001C0069004800320069006900320060>]TJ -/F28 10.90909 Tf -1 0 0 1 74.409 260.601 Tm [<00240054001C0069002B003F002B004B002F00240053001B007300210054002F00370021001C004D004D00510069002600240053001B007300210054001C003B00320048004800740027002600240053001B007300210054001C003B00320021004800480074002700260027002600240037001C004200480027>]TJ -0 0.5 0 rg 0 0.5 0 RG -/F47 10.90909 Tf -1 0 0 1 74.409 247.051 Tm [<0057>]TJ -0 g 0 G -0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 80.137 247.051 Tm [<001C0048004800510072>]TJ -0 g 0 G +1 0 0 1 74.409 162.331 Tm [<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 80.137 162.331 Tm [<004B001C00460032001C0069004800320069006900320060>]TJ +/F28 10.90909 Tf +1 0 0 1 74.409 148.782 Tm [<00240054001C0069002B003F002B004B002F00240053001B007300210054002F00370021001C004D004D00510069002600240053001B007300210054001C003B00320048004800740027002600240053001B007300210054001C003B00320021004800480074002700260027002600240037001C004200480027>]TJ 0 0.5 0 rg 0 0.5 0 RG +/F47 10.90909 Tf +1 0 0 1 74.409 135.233 Tm [<0057>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 114.5 247.051 Tm [<003F001C0062003F00320062>]TJ +1 0 0 1 80.137 135.233 Tm [<001C0048004800510072>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 154.591 247.051 Tm [<001C004D002F>]TJ +1 0 0 1 114.5 135.233 Tm [<003F001C0062003F00320062>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 177.5 247.051 Tm [<005400320060002B0032004D0069>]TJ +1 0 0 1 154.591 135.233 Tm [<001C004D002F>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 223.319 247.051 Tm [<0042004D>]TJ +1 0 0 1 177.5 135.233 Tm [<005400320060002B0032004D0069>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 240.5 247.051 Tm [<0069003F0032>]TJ +1 0 0 1 223.319 135.233 Tm [<0042004D>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 263.409 247.051 Tm [<0054001C0074>]TJ +1 0 0 1 240.5 135.233 Tm [<0069003F0032>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 286.319 247.051 Tm [<0037004200480032>]TJ +1 0 0 1 263.409 135.233 Tm [<0054001C0074>]TJ 0 g 0 G -/F28 10.90909 Tf -1 0 0 1 74.409 233.502 Tm [<00240054001C0069002B003F002B004B002F00240053001B00730021001B002F002F001B004D004D005100690062002600240041004D0054006D006900410037003600420048003200310074004200620069006200240053001B0073002100370042004800320026002700260024>]TJ -/F47 10.90909 Tf -1 0 0 1 389.409 233.502 Tm [<00690076005400320051006D0069>]TJ -/F28 10.90909 Tf -1 0 0 1 429.5 233.502 Tm [<00260020>-525<004A0042006200620042004D003B002C>-525<00240053001B007300210037004200480032002700270027>]TJ -1 0 0 1 79.319 219.953 Tm [<00260024>]TJ -/F47 10.90909 Tf -1 0 0 1 90.773 219.953 Tm [<00230032003B0042004D003B00600051006D0054>]TJ -/F28 10.90909 Tf -1 0 0 1 153.773 219.953 Tm [<0024>]TJ -/F47 10.90909 Tf -1 0 0 1 159.5 219.953 Tm [<002B001C0069002B0051002F0032>]TJ -/F28 10.90909 Tf -1 0 0 1 199.591 219.953 Tm [<003C0024004F00340052006B>-525<0024>]TJ -/F47 10.90909 Tf -1 0 0 1 245.409 219.953 Tm [<002B001C0069002B0051002F0032>]TJ -/F28 10.90909 Tf -1 0 0 1 285.5 219.953 Tm [<003C0024>]TJ 0 0.5 0 rg 0 0.5 0 RG -/F47 10.90909 Tf -1 0 0 1 296.955 219.953 Tm [<0057>]TJ 0 g 0 G 0 0.5 0 rg 0 0.5 0 RG -1 0 0 1 302.682 219.953 Tm [<00340052006B>]TJ +1 0 0 1 286.319 135.233 Tm [<0037004200480032>]TJ 0 g 0 G -/F28 10.90909 Tf -1 0 0 1 84.228 206.404 Tm [<00240041004D0054006D006900410037003600420048003200310074004200620069006200240053001B0073002100370042004800320026002700260024>]TJ -/F47 10.90909 Tf -1 0 0 1 261.773 206.404 Tm [<00690076005400320051006D0069>]TJ -/F28 10.90909 Tf -1 0 0 1 301.864 206.404 Tm [<00260020>-525<004A0042006200620042004D003B002C>-525<00240053001B007300210037004200480032002700270024>]TJ -/F47 10.90909 Tf -1 0 0 1 439.318 206.404 Tm [<0032004D002F003B00600051006D0054>]TJ -/F28 10.90909 Tf -1 0 0 1 485.137 206.404 Tm [<002700260027002600240037001C004200480027>]TJ -1 0 0 1 74.409 192.855 Tm [<0024>]TJ -/F47 10.90909 Tf -1 0 0 1 80.137 192.855 Tm [<004B001C00460032001C006900510069003F00320060>]TJ -/F28 10.90909 Tf -1 0 0 1 74.409 179.305 Tm [<0024>]TJ -/F47 10.90909 Tf -1 0 0 1 80.137 179.305 Tm [<00230032003B0042004D>]TJ -/F28 10.90909 Tf -1 0 0 1 108.773 179.305 Tm [<0026002F0051002B006D004B0032004D00690027>]TJ -1 0 0 1 74.409 165.756 Tm [<00240042004D002B0048006D002F0032003B0060001C0054003F0042002B006200280062002B001C004800320034007900580038002D006900600042004B00340038002B004B>-525<00520038002B004B>-525<0033002B004B>-525<006A002B004B002D002B004800420054002D0054001C003B00320034006B00290026002F0051002B00400042004D0054006D006900520027>]TJ -1 0 0 1 74.409 152.207 Tm [<00240042004D002B0048006D002F0032003B0060001C0054003F0042002B006200280062002B001C004800320034007900580038002D006900600042004B00340038002B004B>-525<00520038002B004B>-525<0033002B004B>-525<006A002B004B002D002B004800420054002D0054001C003B00320034005200290026002F0051002B00400042004D0054006D006900520027>]TJ -1 0 0 1 74.409 125.109 Tm [<00240042004D002B0048006D002F00320054002F003700280054001C003B003200620034004000290026002F0051002B00400042004D0054006D0069006B0027>]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G /F49 10.90909 Tf -1 0 0 1 294.747 93.476 Tm [<0018>]TJ +1 0 0 1 294.747 93.476 Tm [<0019>]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -2426,104 +2615,344 @@ ET endstream endobj -178 0 obj -<< /Type /Page /Contents 179 0 R /Resources 177 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R >> -endobj -180 0 obj -<< /D [ 178 0 R /XYZ 73.409 809.993 null ] >> -endobj -181 0 obj -<< /D [ 178 0 R /XYZ 74.409 771.732 null ] >> -endobj 182 0 obj -<< /D [ 178 0 R /XYZ 74.409 507.955 null ] >> -endobj -183 0 obj -<< /D [ 178 0 R /XYZ 74.409 490.937 null ] >> +<< /Type /Page /Contents 183 0 R /Resources 181 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R >> endobj 184 0 obj -<< /D [ 178 0 R /XYZ 74.409 477.388 null ] >> +<< /D [ 182 0 R /XYZ 73.409 809.993 null ] >> endobj 185 0 obj -<< /D [ 178 0 R /XYZ 74.409 463.839 null ] >> +<< /D [ 182 0 R /XYZ 74.409 774.323 null ] >> endobj 186 0 obj -<< /D [ 178 0 R /XYZ 74.409 450.289 null ] >> +<< /D [ 182 0 R /XYZ 74.409 760.773 null ] >> endobj 187 0 obj -<< /D [ 178 0 R /XYZ 74.409 436.74 null ] >> +<< /D [ 182 0 R /XYZ 74.409 747.224 null ] >> endobj 188 0 obj -<< /D [ 178 0 R /XYZ 74.409 423.191 null ] >> +<< /D [ 182 0 R /XYZ 74.409 733.675 null ] >> endobj 189 0 obj -<< /D [ 178 0 R /XYZ 74.409 409.642 null ] >> +<< /D [ 182 0 R /XYZ 74.409 720.126 null ] >> endobj 190 0 obj -<< /D [ 178 0 R /XYZ 74.409 396.093 null ] >> +<< /D [ 182 0 R /XYZ 74.409 706.577 null ] >> endobj 191 0 obj -<< /D [ 178 0 R /XYZ 74.409 382.543 null ] >> +<< /D [ 182 0 R /XYZ 74.409 665.612 null ] >> endobj 192 0 obj -<< /D [ 178 0 R /XYZ 74.409 368.994 null ] >> +<< /D [ 182 0 R /XYZ 74.409 396.136 null ] >> endobj 193 0 obj -<< /D [ 178 0 R /XYZ 74.409 355.445 null ] >> +<< /D [ 182 0 R /XYZ 74.409 379.118 null ] >> endobj 194 0 obj -<< /D [ 178 0 R /XYZ 74.409 341.896 null ] >> +<< /D [ 182 0 R /XYZ 74.409 365.569 null ] >> endobj 195 0 obj -<< /D [ 178 0 R /XYZ 74.409 328.347 null ] >> +<< /D [ 182 0 R /XYZ 74.409 352.02 null ] >> endobj 196 0 obj -<< /D [ 178 0 R /XYZ 74.409 314.797 null ] >> +<< /D [ 182 0 R /XYZ 74.409 338.471 null ] >> endobj 197 0 obj -<< /D [ 178 0 R /XYZ 74.409 301.248 null ] >> +<< /D [ 182 0 R /XYZ 74.409 324.922 null ] >> endobj 198 0 obj -<< /D [ 178 0 R /XYZ 74.409 287.699 null ] >> +<< /D [ 182 0 R /XYZ 74.409 311.372 null ] >> endobj 199 0 obj -<< /D [ 178 0 R /XYZ 74.409 274.15 null ] >> +<< /D [ 182 0 R /XYZ 74.409 297.823 null ] >> endobj 200 0 obj -<< /D [ 178 0 R /XYZ 74.409 260.601 null ] >> +<< /D [ 182 0 R /XYZ 74.409 284.274 null ] >> endobj 201 0 obj -<< /D [ 178 0 R /XYZ 74.409 247.051 null ] >> +<< /D [ 182 0 R /XYZ 74.409 270.725 null ] >> endobj 202 0 obj -<< /D [ 178 0 R /XYZ 74.409 233.502 null ] >> +<< /D [ 182 0 R /XYZ 74.409 257.176 null ] >> endobj 203 0 obj -<< /D [ 178 0 R /XYZ 74.409 219.953 null ] >> +<< /D [ 182 0 R /XYZ 74.409 243.626 null ] >> endobj 204 0 obj -<< /D [ 178 0 R /XYZ 74.409 206.404 null ] >> +<< /D [ 182 0 R /XYZ 74.409 230.077 null ] >> endobj 205 0 obj -<< /D [ 178 0 R /XYZ 74.409 192.855 null ] >> +<< /D [ 182 0 R /XYZ 74.409 216.528 null ] >> endobj 206 0 obj -<< /D [ 178 0 R /XYZ 74.409 179.305 null ] >> +<< /D [ 182 0 R /XYZ 74.409 202.979 null ] >> endobj 207 0 obj -<< /D [ 178 0 R /XYZ 74.409 165.756 null ] >> +<< /D [ 182 0 R /XYZ 74.409 189.43 null ] >> endobj 208 0 obj -<< /D [ 178 0 R /XYZ 74.409 152.207 null ] >> +<< /D [ 182 0 R /XYZ 74.409 175.88 null ] >> endobj 209 0 obj -<< /D [ 178 0 R /XYZ 74.409 138.658 null ] >> +<< /D [ 182 0 R /XYZ 74.409 162.331 null ] >> endobj -177 0 obj -<< /ExtGState 1 0 R /Font << /F46 10 0 R /F47 11 0 R /F49 12 0 R /F28 14 0 R >> /ProcSet [ /PDF /Text ] >> +210 0 obj +<< /D [ 182 0 R /XYZ 74.409 148.782 null ] >> endobj -212 0 obj -<< /Length 439 >> +181 0 obj +<< /ExtGState 1 0 R /Font << /F28 14 0 R /F47 11 0 R /F46 10 0 R /F49 12 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +211 0 obj +<< /Type /Metadata /Subtype /XML /Length 11624 >> +stream + + + + + + + + + XMP Media Management Schema + xmpMM + http://ns.adobe.com/xap/1.0/mm/ + + + + OriginalDocumentID + URI + internal + The common identifier for all versions and renditions of a document. + + + + + + PDF/A Identification Schema + pdfaid + http://www.aiim.org/pdfa/ns/id/ + + + + year + Integer + internal + Year of standard + + + + + + PDF/UA Universal Accessibility Schema + pdfuaid + http://www.aiim.org/pdfua/ns/id/ + + + + part + Integer + internal + Part of ISO 14289 standard + + + rev + Integer + internal + Revision of ISO 14289 standard + + + + + + PDF/X ID Schema + pdfxid + http://www.npes.org/pdfx/ns/id/ + + + + GTS_PDFXVersion + Text + internal + ID of PDF/X standard + + + + + + PRISM Basic Metadata + prism + http://prismstandard.org/namespaces/basic/3.0/ + + + + complianceProfile + Text + internal + PRISM specification compliance profile to which this document adheres + + + publicationName + Text + external + Publication name + + + aggregationType + Text + external + Publication type + + + bookEdition + Text + external + Edition of the book in which the document was published + + + volume + Text + external + Publication volume number + + + number + Text + external + Publication issue number within a volume + + + pageRange + Text + external + Page range for the document within the print version of its publication + + + issn + Text + external + ISSN for the printed publication in which the document was published + + + eIssn + Text + external + ISSN for the electronic publication in which the document was published + + + isbn + Text + external + ISBN for the publication in which the document was published + + + doi + Text + external + Digital Object Identifier for the document + + + url + URL + external + URL at which the document can be found + + + byteCount + Integer + internal + Approximate file size in octets + + + pageCount + Integer + internal + Number of pages in the print version of the document + + + subtitle + Text + external + Document's subtitle + + + + + + + luahbtex-1.17.0 + 1.7 + + + Ulrike Fischer + + + + + The newpax package + + + + + Text + + + + + en-UK + + + + + 2023-09-11T09:46:22+02:00 + + + application/pdf + newpax.tex + LaTeX with hyperref + 2023-09-11T09:46:22+02:00 + 2023-09-11T09:46:22+02:00 + 2023-09-11T09:46:22+02:00 + uuid:1b6e7a55-7c43-42af-8daf-1a09c372d47a + uuid:2b9e8c6c-cee7-4834-84d5-ce3bb8f508dd + three + 9 + + + + + + + + + + + + + + +endstream +endobj +214 0 obj +<< /Length 3311 >> stream /opacity1 gs 0 g 0 G @@ -2536,11 +2965,58 @@ stream 0 g 0 G BT /F28 10.90909 Tf -1 0 0 1 74.409 760.773 Tm [<0024>]TJ +1 0 0 1 74.409 760.773 Tm [<00240054001C0069002B003F002B004B002F00240053001B00730021001B002F002F001B004D004D005100690062002600240041004D0054006D006900410037003600420048003200310074004200620069006200240053001B0073002100370042004800320026002700260024>]TJ +/F47 10.90909 Tf +1 0 0 1 389.409 760.773 Tm [<00690076005400320051006D0069>]TJ +/F28 10.90909 Tf +1 0 0 1 429.5 760.773 Tm [<00260020>-525<004A0042006200620042004D003B002C>-525<00240053001B007300210037004200480032002700270027>]TJ +1 0 0 1 79.319 747.224 Tm [<00260024>]TJ +/F47 10.90909 Tf +1 0 0 1 90.773 747.224 Tm [<00230032003B0042004D003B00600051006D0054>]TJ +/F28 10.90909 Tf +1 0 0 1 153.773 747.224 Tm [<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 159.5 747.224 Tm [<002B001C0069002B0051002F0032>]TJ +/F28 10.90909 Tf +1 0 0 1 199.591 747.224 Tm [<003C0024004F00340052006B>-525<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 245.409 747.224 Tm [<002B001C0069002B0051002F0032>]TJ +/F28 10.90909 Tf +1 0 0 1 285.5 747.224 Tm [<003C0024>]TJ +0 0.5 0 rg 0 0.5 0 RG +/F47 10.90909 Tf +1 0 0 1 296.955 747.224 Tm [<0057>]TJ +0 g 0 G +0 0.5 0 rg 0 0.5 0 RG +1 0 0 1 302.682 747.224 Tm [<00340052006B>]TJ +0 g 0 G +/F28 10.90909 Tf +1 0 0 1 84.228 733.675 Tm [<00240041004D0054006D006900410037003600420048003200310074004200620069006200240053001B0073002100370042004800320026002700260024>]TJ +/F47 10.90909 Tf +1 0 0 1 261.773 733.675 Tm [<00690076005400320051006D0069>]TJ +/F28 10.90909 Tf +1 0 0 1 301.864 733.675 Tm [<00260020>-525<004A0042006200620042004D003B002C>-525<00240053001B007300210037004200480032002700270024>]TJ +/F47 10.90909 Tf +1 0 0 1 439.318 733.675 Tm [<0032004D002F003B00600051006D0054>]TJ +/F28 10.90909 Tf +1 0 0 1 485.137 733.675 Tm [<002700260027002600240037001C004200480027>]TJ +1 0 0 1 74.409 720.126 Tm [<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 80.137 720.126 Tm [<004B001C00460032001C006900510069003F00320060>]TJ +/F28 10.90909 Tf +1 0 0 1 74.409 706.577 Tm [<0024>]TJ /F47 10.90909 Tf -1 0 0 1 80.137 760.773 Tm [<0032004D002F>]TJ +1 0 0 1 80.137 706.577 Tm [<00230032003B0042004D>]TJ /F28 10.90909 Tf -1 0 0 1 97.319 760.773 Tm [<0026002F0051002B006D004B0032004D00690027>]TJ +1 0 0 1 108.773 706.577 Tm [<0026002F0051002B006D004B0032004D00690027>]TJ +1 0 0 1 74.409 693.027 Tm [<00240042004D002B0048006D002F0032003B0060001C0054003F0042002B006200280062002B001C004800320034007900580038002D006900600042004B00340038002B004B>-525<00520038002B004B>-525<0033002B004B>-525<006A002B004B002D002B004800420054002D0054001C003B00320034006B00290026002F0051002B00400042004D0054006D006900520027>]TJ +1 0 0 1 74.409 679.478 Tm [<00240042004D002B0048006D002F0032003B0060001C0054003F0042002B006200280062002B001C004800320034007900580038002D006900600042004B00340038002B004B>-525<00520038002B004B>-525<0033002B004B>-525<006A002B004B002D002B004800420054002D0054001C003B00320034005200290026002F0051002B00400042004D0054006D006900520027>]TJ +1 0 0 1 74.409 652.38 Tm [<00240042004D002B0048006D002F00320054002F003700280054001C003B003200620034004000290026002F0051002B00400042004D0054006D0069006B0027>]TJ +1 0 0 1 74.409 638.831 Tm [<0024>]TJ +/F47 10.90909 Tf +1 0 0 1 80.137 638.831 Tm [<0032004D002F>]TJ +/F28 10.90909 Tf +1 0 0 1 97.319 638.831 Tm [<0026002F0051002B006D004B0032004D00690027>]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -2548,7 +3024,7 @@ BT 0 g 0 G 0 g 0 G /F49 10.90909 Tf -1 0 0 1 294.747 93.476 Tm [<0019>]TJ +1 0 0 1 294.747 93.476 Tm [<001A>]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -2559,125 +3035,166 @@ ET endstream endobj -211 0 obj -<< /Type /Page /Contents 212 0 R /Resources 210 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R >> -endobj 213 0 obj -<< /D [ 211 0 R /XYZ 73.409 809.993 null ] >> +<< /Type /Page /Contents 214 0 R /Resources 212 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 15 0 R >> endobj -214 0 obj -<< /D [ 211 0 R /XYZ 74.409 774.323 null ] >> +215 0 obj +<< /D [ 213 0 R /XYZ 73.409 809.993 null ] >> endobj -210 0 obj +216 0 obj +<< /D [ 213 0 R /XYZ 74.409 774.323 null ] >> +endobj +217 0 obj +<< /D [ 213 0 R /XYZ 74.409 760.773 null ] >> +endobj +218 0 obj +<< /D [ 213 0 R /XYZ 74.409 747.224 null ] >> +endobj +219 0 obj +<< /D [ 213 0 R /XYZ 74.409 733.675 null ] >> +endobj +220 0 obj +<< /D [ 213 0 R /XYZ 74.409 720.126 null ] >> +endobj +221 0 obj +<< /D [ 213 0 R /XYZ 74.409 706.577 null ] >> +endobj +222 0 obj +<< /D [ 213 0 R /XYZ 74.409 693.027 null ] >> +endobj +223 0 obj +<< /D [ 213 0 R /XYZ 74.409 679.478 null ] >> +endobj +224 0 obj +<< /D [ 213 0 R /XYZ 74.409 665.929 null ] >> +endobj +225 0 obj +<< /D [ 213 0 R /XYZ 74.409 652.38 null ] >> +endobj +212 0 obj << /ExtGState 1 0 R /Font << /F28 14 0 R /F47 11 0 R /F49 12 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1 0 obj << /opacity1 <> >> endobj -215 0 obj +226 0 obj << /DisplayDocTitle true >> endobj -216 0 obj +227 0 obj << /S /GoTo /D (section.1) >> endobj -218 0 obj +229 0 obj (\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n) endobj -219 0 obj +230 0 obj << /S /GoTo /D (section.2) >> endobj -221 0 obj +232 0 obj (\376\377\000Q\000u\000i\000c\000k\000\040\000u\000s\000e\000\040\000i\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000s) endobj -222 0 obj +233 0 obj << /S /GoTo /D (subsection.2.1) >> endobj -224 0 obj +235 0 obj (\376\377\000S\000t\000e\000p\000\040\0001\000:\000\040\000e\000x\000t\000r\000a\000c\000t\000\040\000a\000n\000d\000\040\000c\000o\000l\000l\000e\000c\000t\000\040\000t\000h\000e\000\040\000a\000n\000n\000o\000t\000a\000t\000i\000o\000n\000s) endobj -225 0 obj +236 0 obj << /S /GoTo /D (subsection.2.2) >> endobj -227 0 obj +238 0 obj (\376\377\000S\000t\000e\000p\000\040\0002\000:\000\040\000U\000s\000i\000n\000g\000\040\000t\000h\000e\000\040\000.\000n\000e\000w\000p\000a\000x\000-\000f\000i\000l\000e\000\040\000w\000i\000t\000h\000\040\000n\000e\000w\000p\000a\000x) endobj -228 0 obj +239 0 obj << /S /GoTo /D (subsection.2.3) >> endobj -230 0 obj +241 0 obj (\376\377\000C\000o\000m\000b\000i\000n\000i\000n\000g\000\040\000t\000h\000e\000\040\000s\000t\000e\000p\000s) endobj -231 0 obj +242 0 obj << /S /GoTo /D (section.3) >> endobj -233 0 obj +244 0 obj (\376\377\000S\000e\000t\000u\000p\000\040\000o\000p\000t\000i\000o\000n\000s) endobj -234 0 obj +245 0 obj << /S /GoTo /D (section.4) >> endobj -236 0 obj +247 0 obj (\376\377\000M\000o\000r\000e\000\040\000B\000a\000c\000k\000g\000r\000o\000u\000n\000d) endobj -237 0 obj +248 0 obj << /S /GoTo /D (subsection.4.1) >> endobj -239 0 obj +250 0 obj (\376\377\000R\000e\000t\000r\000i\000e\000v\000i\000n\000g\000\040\000a\000n\000d\000\040\000s\000t\000o\000r\000i\000n\000g\000\040\000a\000n\000n\000o\000t\000a\000t\000i\000o\000n\000s) endobj -240 0 obj +251 0 obj << /S /GoTo /D (section.5) >> endobj -242 0 obj +253 0 obj (\376\377\000I\000m\000p\000o\000r\000t\000i\000n\000g\000\040\000a\000n\000n\000o\000t\000a\000t\000i\000o\000n\000s) endobj -243 0 obj +254 0 obj << /S /GoTo /D (section.6) >> endobj -245 0 obj -(\376\377\000E\000x\000a\000m\000p\000l\000e\000\040\000i\000n\000p\000u\000t) +256 0 obj +(\376\377\000I\000n\000t\000e\000r\000n\000a\000l\000\040\000l\000i\000n\000k\000s) endobj -246 0 obj +257 0 obj +<< /S /GoTo /D (subsection.6.1) >> +endobj +259 0 obj +(\376\377\000A\000c\000c\000e\000s\000s\000\040\000f\000r\000o\000m\000\040\000t\000h\000e\000\040\040\036\000o\000u\000t\000s\000i\000d\000e\040\034) + +endobj +260 0 obj << /S /GoTo /D (section.7) >> endobj -248 0 obj +262 0 obj +(\376\377\000E\000x\000a\000m\000p\000l\000e\000\040\000i\000n\000p\000u\000t) + +endobj +263 0 obj +<< /S /GoTo /D (section.8) >> +endobj +265 0 obj (\376\377\000S\000u\000p\000p\000o\000r\000t\000\040\000f\000o\000r\000\040\000t\000h\000e\000\040\000p\000a\000x\000\040\000p\000a\000c\000k\000a\000g\000e) endobj -249 0 obj -<< /S /GoTo /D (subsection.7.1) >> +266 0 obj +<< /S /GoTo /D (subsection.8.1) >> endobj -251 0 obj +268 0 obj (\376\377\000S\000t\000e\000p\000\040\0001\000:\000\040\000E\000x\000t\000r\000a\000c\000t\000i\000n\000g\000\040\000t\000h\000e\000\040\000a\000n\000n\000o\000t\000a\000t\000i\000o\000n\000s) endobj -252 0 obj -<< /S /GoTo /D (subsection.7.2) >> +269 0 obj +<< /S /GoTo /D (subsection.8.2) >> endobj -254 0 obj +271 0 obj (\376\377\000S\000t\000e\000p\000\040\0002\000:\000\040\000U\000s\000i\000n\000g\000\040\000t\000h\000e\000\040\000.\000p\000a\000x\000-\000f\000i\000l\000e\000\040\000w\000i\000t\000h\000\040\000p\000a\000x\000.\000s\000t\000y) endobj -255 0 obj +272 0 obj [ 66 [ 561 ] 68 [ 441 587 453 ] 74 [ 317 ] 77 [ 306 ] 79 [ 618 537 ] 83 [ 402 389 341 618 510 ] ] endobj -257 0 obj +274 0 obj << /Length 11 >> stream .% endstream endobj -258 0 obj +275 0 obj << /Subtype /CIDFontType0C /Length 2094 >> stream ZZHGJH+Heuristica-ItalicA ! ~ -P " $H %ZZHGJH+Heuristica-Italic1.0.2Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. Utopia is either a registered trademark or trademark of Adobe Systems Incorporated in the United States and/or other countries. Used under license. The Utopia fonts are freely available; see http://tug.org/fonts/utopia. @@ -2688,10 +3205,10 @@ Heuristica ItalicHeuristicaAdobeIdentityBDEFJMOPSTUVW ˏ  endstream endobj -256 0 obj -<< /Type /FontDescriptor /FontName /ZZHGJH+Heuristica-Italic /Flags 4 /FontBBox [ -500 -326 1205 1110 ] /Ascent 950 /CapHeight 692 /Descent -250 /ItalicAngle -13 /StemV 88 /XHeight 490 /FontFile3 258 0 R /CIDSet 257 0 R >> +273 0 obj +<< /Type /FontDescriptor /FontName /ZZHGJH+Heuristica-Italic /Flags 4 /FontBBox [ -500 -326 1205 1110 ] /Ascent 950 /CapHeight 692 /Descent -250 /ItalicAngle -13 /StemV 88 /XHeight 490 /FontFile3 275 0 R /CIDSet 274 0 R >> endobj -259 0 obj +276 0 obj << /Length 861 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -2741,30 +3258,30 @@ end endstream endobj 35 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZZHGJH+Heuristica-Italic /DescendantFonts [ 260 0 R ] /ToUnicode 259 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZZHGJH+Heuristica-Italic /DescendantFonts [ 277 0 R ] /ToUnicode 276 0 R >> endobj -260 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZZHGJH+Heuristica-Italic /FontDescriptor 256 0 R /W 255 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +277 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZZHGJH+Heuristica-Italic /FontDescriptor 273 0 R /W 272 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -261 0 obj -[ 27 [ 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 ] 49 [ 525 525 525 525 ] 54 [ 525 525 525 525 ] 59 [ 525 525 525 525 525 525 525 525 ] 68 [ 525 ] 70 [ 525 525 525 525 525 525 ] 77 [ 525 ] 79 [ 525 525 525 525 525 525 525 525 ] 88 [ 525 ] 91 [ 525 ] 93 [ 525 ] 95 [ 525 525 525 525 ] 100 [ 525 525 525 ] 104 [ 525 525 525 525 525 525 525 ] 112 [ 525 525 525 525 525 ] 118 [ 525 ] 121 [ 525 ] ] +278 0 obj +[ 27 [ 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 ] 49 [ 525 525 525 525 ] 54 [ 525 525 525 525 ] 59 [ 525 525 525 525 525 525 525 525 ] 68 [ 525 ] 70 [ 525 525 525 525 525 525 525 525 ] 79 [ 525 525 525 525 525 525 525 525 ] 88 [ 525 ] 91 [ 525 ] 93 [ 525 ] 95 [ 525 525 525 525 ] 100 [ 525 525 525 ] 104 [ 525 525 525 525 525 525 525 ] 112 [ 525 525 525 525 525 ] 118 [ 525 ] 121 [ 525 ] ] endobj -263 0 obj +280 0 obj << /Length 16 >> stream -{@ +{@ endstream endobj -264 0 obj -<< /Subtype /CIDFontType0C /Length 8551 >> +281 0 obj +<< /Subtype /CIDFontType0C /Length 8671 >> stream -NXAEHY+LMMono10-RegularH!"   ;  Wo4 "! $, % -NXAEHY+LMMono10-Regular2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMMono10-RegularLMMono10NormalAdobeIdentity !"#$&'()*+,-./12346789;<=>?@ABDFGHIJKMOPQRSTUVX[]_`abdefhijklmnpqrstvyJJ{ ZSn( n +ZLVYOS+LMMono10-RegularH!"   ;  Wo6 "! $. % +ZLVYOS+LMMono10-Regular2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMMono10-RegularLMMono10NormalAdobeIdentity !"#$&'()*+,-./12346789;<=>?@ABDFGHIJKLMOPQRSTUVX[]_`abdefhijklmnpqrstvyKK{ ZSn( n  F A d - _Do ]6yG7C$ Wz'aMA!wOOu| }ln{e }t~mwg6#gwlm=XT{xr|alU$`%Bm{׿lDEY+FJɒ@l=tvdyzg^Mb%y\jrGqcCͨjjjnIq}w~y|xPP~wnqInj͉ifa{ȾȾEtozkhei*")򧸁Noj;J5 :ռA̋{DHG ĨSu:^R`\a߹µQ:v^|[v;[:ˡNv}qml}p{rlmt1bkI*$^MjZdP4vB^|l2![^yliJiB{rlmwvaF+EJE=hB4f[Guw|zyGz8xgWr5T㍮syE~3zYo1g|g{|gYtwsmU:m^nt„8xgss;W[Lhzrlqgj5cktSk\Fng%wslܚ8#rwVs{,#,s{IjkKlI8#}aKiI|rml,#,|rmlIx<stn):sb05*)]:z{my~rj]XJKsfn{w~x\A6C滧h}#^@O3 %I\mkerllfqmkerllfq\&d_ctmker|M\{yw|z}y45*b{rlm}u{rlmb 5F Q+}T.FF.~q}^iB{rlm2jb`+,*õNg}.7S^8>DO˼STu_и\ihvwFub{ih{b_Vxui |qml}m{rlmȋpdnyxXuUo@@{K +'&D"ԙr$]TT,tBJAۦ6 7<:RYq@vKP@*38RM_BBMÿû[WFIS8R8ILNWzf}}fhh,jjhhjjи~i{rlm}j{rlm.s{Wjb{ih{bjVxuLI;{;>]4V'{rlm&|qmlq|&s{΋d5lR> + _D/A/1P>>YS=xA!wOOu| }ln{e }t~mwg6#gwlm=XT{xr|alU$`%Bm{׿lDEY+FJɒ@l=tvdyzg^Mb%y\jrGqcCͨjjjnIq}w~y|xPP~wnqInj͉ifa{ȾȾEtozkhei*")򧸁Noj;J5 :ռA̋{DHG ĨSu:^R`\a߹µQ:v^|[v;[:ˡNv}qml}p{rlmt1bkI*$^MjZdP4vB^|l2![^yliJiB{rlmwvaF+EJE=hB4f[Guw|zyGz8xgWr5T㍮syE~3zYo1g|g{|gYtwsmU:m^nt„8xgss;W[Lhzrlqgj5cktSk\Fng%wslܚ8#rwVs{,#,s{IjkKlI8#}aKiI|rml,#,|rmlIx<stn):sb05*)]:z{my~rj]XJKsfn{w~x\A6C滧h}#^@O3 %I\mkerllfqmkerllfq\&d_ctmker|M\{yw|z}y45*b{rlm}u{rlmb 5F Q+}T.FF.~q}^iB{rlm2jb`+,*õNg}.7S^8>DO˼STu_и\ihvwFub{ih{b_Vxui |qml}m{rlmȋpdnyxXuUo@@{K +'&D"ԙr$]TT,tBJAۦ6 7<:RYq@vKP@*38RM_BBMÿû[WFIS8R8ILNWzf}}fhh,jjhhjjи~i{rlm}j{rlm.s{Wjb{ih{bjVxuLI;{;>]4V'{rlm&|qmlq|&s{΋d5lR> h_ubRs{jkytݸBJ;DO7oKotv|md8Ew[s{=iosw~x~wjM{slmHs{MBrryA?mxRHqŇQxUZi] {h]-D@6`jx{umhrA^G5NA yX~a1E~|"t2@zpHR__WUa̐ķ\V_@`''@5vw}w||w~Phe}{xtxII~xtcv^hs{r}s{ |rml^h^s{ {slm}r{slm s{rvhvr|rml Tr{_|Xhhhy&Zhhh{yz{yz:Iy&$&hvMMvppMLFMDUSqv23rɋϖƘ֮T\@Ngl..(,F.M@AAMJ0wNs{0mxe6Wx{vor:0{slmLt@At|qml}m{rlmq|mLFV`F+!FVr/Tз |l2![^ylieB{rlm_{rlm3r{_baF+EJE=hB4AIUy]qn` 1YBS ]hV@srw|85J'f0||w`\mkerllfqr/Ts{ZihzepbR%,*ϹkZ|rml;2RZ99AJָ>Ii~xn__|v8`i~xn__|vjjIaПstmfzoʋt}Ͱȴ? +}|ihwvF}q|6{slm}f{slm }xgs{i2{rlm}{rlmh~IIx{}c~x~e9``vk}5r|Sb}qH^gnn3r}S|rml}kvlmΪvkq]T~teqkvlmT vg2mb~do|ojkm}usܩwyk|qmlgvlmvgG䴺zJ}xrlmvgG䴺zJ}xrlm}vs{!{slmoL|pG|rml}r|rmls{roLhTTr{_|Xhhhy&Zhhh{yz{yz:Iy&$&hvMMvppMLFMDUSqv23rɋϖƘ֮T\@Ngl..(,F.M@AAMJ0wNs{0mxe6Wx{vor:0{slmLt@At|qml}m{rlmq|mLFV`F+!FVr/Tз |l2![^ylieB{rlm_{rlm3r{_baF+EJE=hB4AIUy]qn` 1YBS ]hV@srw|85J'f0||w`\mkerllfqr/Ts{ZihzepbR%,*ϹkZ|rml;2RZ99AJָ>Ii~xn__|v8`i~xn__|vjjIaПstmfzoʋt}Ͱȴ? E{slm}r{slm s{rjovuaJmkm{ʣͱ2Z^Q0CjP[T-Ћ0{ 8XKyLTتi|rml:|rmlq|$ swJкell:gbp=:ae -lumszmbU^@<6HIspw4W`P8s{8ihvw94{rlm+gܶZO cntB\IïB E[Fj}ҋϽg^m|hpukqrgR|nlHQNSL0c>qxrtu|k2Qrnlihxoƾֶù & @@ -2772,21 +3289,21 @@ h_ YY$s{ |rmls{ {slmin444q|<{slm_NWo\Ztwu\\MW s{<|qlmh~^yr[[%syysmlY~yhxucwWtxysmlt|ȝ㌙W z}MBMWMAM0Mq|t!tq|#|rmlD&>&r|#|qml uu{slmstVVtulmZTZZLZq|c5(q| |rmlA&?r| |qlm (5c|qlm vloulm xN_[YHFY$s{ |rmlCi~fyl.s{ {slm"r7~rnTg|@yrpzyqac/[nN%'JNJF(J ==J -(&)' &:!-C=JTl/ +(&)' &:!C=JTl/  endstream endobj -262 0 obj -<< /Type /FontDescriptor /FontName /NXAEHY+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 264 0 R /CIDSet 263 0 R >> +279 0 obj +<< /Type /FontDescriptor /FontName /ZLVYOS+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 281 0 R /CIDSet 280 0 R >> endobj -265 0 obj -<< /Length 1696 >> +282 0 obj +<< /Length 1710 >> stream %!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-NXAEHY-LMMono10-Regular-0) -%%Title: (TeX-NXAEHY-LMMono10-Regular-0 TeX NXAEHY-LMMono10-Regular 0) +%%BeginResource: CMap (TeX-ZLVYOS-LMMono10-Regular-0) +%%Title: (TeX-ZLVYOS-LMMono10-Regular-0 TeX ZLVYOS-LMMono10-Regular 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin @@ -2794,17 +3311,17 @@ stream begincmap /CIDSystemInfo << /Registry (TeX) -/Ordering (NXAEHY-LMMono10-Regular) +/Ordering (ZLVYOS-LMMono10-Regular) /Supplement 0 >> def -/CMapName /TeX-Identity-NXAEHY-LMMono10-Regular def +/CMapName /TeX-Identity-ZLVYOS-LMMono10-Regular def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange 0 beginbfrange endbfrange -73 beginbfchar +74 beginbfchar <001B> <0041> <001C> <0061> <0020> <002A> @@ -2845,6 +3362,7 @@ endbfrange <0049> <003C> <004A> <004D> <004B> <006D> +<004C> <004E> <004D> <006E> <004F> <0023> <0050> <004F> @@ -2889,57 +3407,57 @@ end endstream endobj 14 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /NXAEHY+LMMono10-Regular /DescendantFonts [ 266 0 R ] /ToUnicode 265 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZLVYOS+LMMono10-Regular /DescendantFonts [ 283 0 R ] /ToUnicode 282 0 R >> endobj -266 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /NXAEHY+LMMono10-Regular /FontDescriptor 262 0 R /W 261 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +283 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZLVYOS+LMMono10-Regular /FontDescriptor 279 0 R /W 278 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -267 0 obj -[ 2 [ 242 ] 4 [ 530 ] 6 [ 838 ] 9 [ 350 350 412 ] 13 [ 265 392 265 460 530 530 530 530 530 530 530 530 530 530 265 265 ] 33 [ 793 635 646 684 779 606 580 ] 41 [ 798 349 ] 45 [ 568 ] 48 [ 762 600 ] 51 [ 644 541 621 791 ] 56 [ 940 624 588 ] 66 [ 523 598 496 598 514 319 520 607 291 280 524 279 923 619 577 608 591 389 436 344 606 504 768 486 506 ] 1091 [ 1000 ] 1093 [ 278 ] 1095 [ 458 458 ] 1100 [ 409 ] 1388 [ 638 610 610 929 ] ] +284 0 obj +[ 2 [ 242 ] 4 [ 530 ] 6 [ 838 ] 9 [ 350 350 412 ] 13 [ 265 392 265 460 530 530 530 530 530 530 530 530 530 530 265 265 ] 33 [ 793 635 646 684 779 606 580 734 798 349 ] 45 [ 568 ] 48 [ 762 600 ] 51 [ 644 541 621 791 ] 56 [ 940 624 588 ] 66 [ 523 598 496 598 514 319 520 607 291 280 524 279 923 619 577 608 591 389 436 344 606 504 768 486 506 ] 1091 [ 1000 ] 1093 [ 278 ] 1095 [ 458 458 458 ] 1100 [ 409 ] 1388 [ 638 610 610 929 ] ] endobj -269 0 obj +286 0 obj << /Length 174 >> stream -*wd? +*w? endstream endobj -270 0 obj -<< /Subtype /CIDFontType0C /Length 9042 >> +287 0 obj +<< /Subtype /CIDFontType0C /Length 9271 >> stream -FDJNIX+Heuristica-Regular@ ! T/p "# $ %FDJNIX+Heuristica-Regular1.0.2Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. Utopia is either a registered trademark or trademark of Adobe Systems Incorporated in the United States and/or other countries. Used under license. The Utopia fonts are freely available; see http://tug.org/fonts/utopia. +KRTFAJ+Heuristica-Regular@ ! T/p "# $ %KRTFAJ+Heuristica-Regular1.0.2Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. Utopia is either a registered trademark or trademark of Adobe Systems Incorporated in the United States and/or other countries. Used under license. The Utopia fonts are freely available; see http://tug.org/fonts/utopia. Copyright (c) 2008-2012 Andrey V. Panov (panov@canopus.iacp.dvo.ru). Heuristica RegularHeuristicaAdobeIdentity - !"#$%&')*-01345689:BCDEFGHIJKLMNOPQRSTUVWXYZCEGHLlmnoLLJ 0I8$OY  + !"#$%&'()*-01345689:BCDEFGHIJKLMNOPQRSTUVWXYZCEGHILlmnoNNJ 0I8$OY  b - A ?  jk }=J &hqB[s@ L@H@'++*`'w + A > x 5 )hlb fY=xW gq) t@H@'++*`'w CCTUu^gpsderofVv|gw|Q|‹|Q||􋕹#􋕹#gVWggUWg!]j!4jkckw;;'Ga pLTisiyrxi=t|pjX!XG󬺽\#+lTVWlGX !XG󬺽\#+lTVWl}NmCQ/ʘC^mN}C$rCmNN^mCr~5/6Q?WwC`{wfz+duwwy{x.tzx~F{u+z}w}>Jrrw-z?|y|u!x͋melysqgy`bqckhSllѾgpsderofvfw|΋ffHV\&99&\\P&99P&\7((77p(,,p(7Vwvܨ7vᆑbhrnyx7Vͮ2ovUwcո/"D8Wi{ϲɋ؋JB UO4> `Gx=VRj?`D!%Tⳋ4 J?`lzϱËڞESOv@6[p~yz>4 PaDI`xÅ}yhxgV'Nw\v%isKn^t$NB-B/0ӥ V9]G9 3 TPsknOφ⋁w\$a=4EgwĆ}wjwjVsl"*(7 GkECCkVخ]KɋL:yFyIhYKGr|zxowl_N ܋ɩĤ%rdeTK/6۲,*zw{{\dkV=^=gpsderof gpsderof!q4`=gpsderofxx͋melysqgy`bqckhf|(/DlB%;ɋܖɭ^xIQuI4KD]"1;$D+Hu{Jx~tFA`AJyڋ㧽mrx\{ 6RbY*jAx.-FDuwnpWmǠɢtSnk^nQyhA"l4a h0vULmʋԮ~@, 7*ŋ؋ucdQ;nㅍSS3QM! 9k5;{mp$)Ld#| O} -OMtۋ硻;mo#X?b`_ 88Na -0^?0(gOHRKi5XGG8B>nㅍSS3Qoh=H<4zƱAmt^{\gvvq sLgmMs6 r#8nㅍSS3$~ sKjmKs6 t%4nㅍSS3ḵ4S3n4ÎnㅍSppÎnㅍSS3~4ÎnㅍSS3|̩GmwT~"YgvvsÎnㅍSS3G| N/OLiݭǪlUS99iSLUOl/'GFFG''`GFF`G'$S؟j^[KEnㅍSS3QP9^5P|ȋ{at}NjxGo<]KuƋܨ={Ây!ʋOCnㅍSS3Qp +0^?0(gOHRKi5XGG8B>nㅍSS3Qoh=H<4zƱAmt^{\gvvq sLgmMs6 r#8nㅍSS3$~ sKjmKs6 t%4nㅍSS3+|d$WVыʟY͒nZh~vqoiz``29YY1Z5;*'ZRAXHs;#ḵ4S3n4ÎnㅍSppÎnㅍSS3~4ÎnㅍSS3|̩GmwT~"YgvvsÎnㅍSS3G| N/OLiݭǪlUS99iSLUOl/'GFFG''`GFF`G'$S؟j^[KEnㅍSS3QP9^5P|ȋ{at}NjxGo<]KuƋܨ={Ây!ʋOCnㅍSS3Qp "T]*a| vAa4bxыE ; kHSNjԷߋዻZ&!iGGN"Tfz]25TW2-Mree8 S nӨ  u:d| +ㅍSPVi)sÎnㅍS,|Omclc_wQR_lm|NjÎv+~+ƈP<''؋1SLG׋㙱ŖɏynɅ}vfu9r-ARMRMTL@-W@_xK|ڼ,xxTnCnXڶƎqnwfM_H[FXnʉU4Q7;bTi^KM)+a$(vzw)T$n˨$- ‘ΎonxrOGV#QW_냝ƑO>U@HŋƲft}u|yz~+2PTk|մw;arq*rLj75dk+&^Njʗ5 ;C ~zڗʃboT]-U-A-`Uvendhe`}CsCv@;CeD6P=g*7__QS\7w~F~ϰe4ZEnFT.B^iLaʄ0rrgZE; "grrggrrgO"D-1rrgXC2"grrggrrgs}1rriCEvbyhivN|PuV^wwD;J4VfֈmrlM=e«ő$iwsnh(tih1rreXCċ]wD1rreXC苨7rr8D~‹LMXCnD~Ëʱg2XCnDU,9PThuseE>LYhq/rrgXC7~D~ϰe4XCnDT/A]gMc})rrgXCP6,5566<55<,67_7//_zQ=]n7.b~CJBQZdr~+rrgXE=8q@'];'Wc{zQ=}46 ËXX@nFp`leX`;Ls_^_^qJ1yX{ys=uz{xVevT(`VYЫ2~ح{}dgmuIQ,rrgXE'PwGM;k{Ƌ ʋU$bIËҋTN jX^AX,8fr}tGXckV:^w.V%suriknN?a;w|XghŨ|O4F-1rrguout][nWQ`脑1r -a_ iFz|ztm|k|jyyxrpnso(FѝTnw|OW+_ ] cf􅝉y5q|q||zw|{΋kjmyvpgvfeselgrUkjzY]GHDHUkjzY]GHDzw|{΋kjmyvpgvfeselgH{΋kjmyvpgvfeselgBT3CB54BB4‹9^wuܩVXCn:uXCn0ꮕQa;T\rrethVIhu篖Q^>U^rreth]Ip>9wuuܩVXCn:UhXCnD3jO;&'ΣlUM@NqfagbyRGy>9muVXCn00ƧrWXCnDLoo`UDStfdhgxT=v>9^wuuީVXCn:uXCn:UhXCnD3jO;&'ΣlUM&:1$yu篖Q^>U^rreth]Ip> &=#|Hm:ɋ0J7|/ +a_ iFz|ztm|k|jyyxrpnso(FѝTnw|OW+_ ] cf􅝉y5q|q||zw|{΋kjmyvpgvfeselgrUkjzY]GHDHUkjzY]GHDzw|{΋kjmyvpgvfeselgH{΋kjmyvpgvfeselg{΋kjmyvpgvfeselgH{΋kjmyvpgvfeselgBT3CB54BB4‹9^wuܩVXCn:uXCn0ꮕQa;T\rrethVIhu篖Q^>U^rreth]Ip>9wuuܩVXCn:UhXCnD3jO;&'ΣlUM@NqfagbyRGy>9muVXCn00ƧrWXCnDLoo`UDStfdhgxT=v>9^wuuީVXCn:uXCn:UhXCnD3jO;&'ΣlUM&:1$yu篖Q^>U^rreth]Ip> &=#|Hm:ɋ0J7|/  endstream endobj -268 0 obj -<< /Type /FontDescriptor /FontName /FDJNIX+Heuristica-Regular /Flags 4 /FontBBox [ -500 -448 1158 1110 ] /Ascent 950 /CapHeight 692 /Descent -250 /ItalicAngle 0 /StemV 88 /XHeight 490 /FontFile3 270 0 R /CIDSet 269 0 R >> +285 0 obj +<< /Type /FontDescriptor /FontName /KRTFAJ+Heuristica-Regular /Flags 4 /FontBBox [ -500 -448 1158 1110 ] /Ascent 950 /CapHeight 692 /Descent -250 /ItalicAngle 0 /StemV 88 /XHeight 490 /FontFile3 287 0 R /CIDSet 286 0 R >> endobj -271 0 obj -<< /Length 1754 >> +288 0 obj +<< /Length 1782 >> stream %!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-FDJNIX-Heuristica-Regular-0) -%%Title: (TeX-FDJNIX-Heuristica-Regular-0 TeX FDJNIX-Heuristica-Regular 0) +%%BeginResource: CMap (TeX-KRTFAJ-Heuristica-Regular-0) +%%Title: (TeX-KRTFAJ-Heuristica-Regular-0 TeX KRTFAJ-Heuristica-Regular 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin @@ -2947,17 +3465,17 @@ stream begincmap /CIDSystemInfo << /Registry (TeX) -/Ordering (FDJNIX-Heuristica-Regular) +/Ordering (KRTFAJ-Heuristica-Regular) /Supplement 0 >> def -/CMapName /TeX-Identity-FDJNIX-Heuristica-Regular def +/CMapName /TeX-Identity-KRTFAJ-Heuristica-Regular def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange 0 beginbfrange endbfrange -75 beginbfchar +77 beginbfchar <0002> <0021> <0004> <0023> <0006> <0025> @@ -2987,6 +3505,7 @@ endbfrange <0025> <0044> <0026> <0045> <0027> <0046> +<0028> <0047> <0029> <0048> <002A> <0049> <002D> <004C> @@ -3028,6 +3547,7 @@ endbfrange <0445> <2019> <0447> <201C> <0448> <201D> +<0449> <201E> <044C> <2022> <056C> <00660066> <056D> <00660069> @@ -3044,21 +3564,21 @@ end endstream endobj 12 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FDJNIX+Heuristica-Regular /DescendantFonts [ 272 0 R ] /ToUnicode 271 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /KRTFAJ+Heuristica-Regular /DescendantFonts [ 289 0 R ] /ToUnicode 288 0 R >> endobj -272 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FDJNIX+Heuristica-Regular /FontDescriptor 268 0 R /W 267 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +289 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /KRTFAJ+Heuristica-Regular /FontDescriptor 285 0 R /W 284 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -273 0 obj +290 0 obj [ 28 [ 525 ] 35 [ 525 525 ] 43 [ 525 ] 45 [ 525 ] 47 [ 525 ] 50 [ 525 ] 52 [ 525 ] 55 [ 525 ] 59 [ 525 ] 63 [ 525 525 ] 66 [ 525 ] 70 [ 525 525 525 ] 75 [ 525 ] 77 [ 525 ] 81 [ 525 525 ] 84 [ 525 ] 87 [ 525 525 ] 91 [ 525 ] 94 [ 525 ] 96 [ 525 ] 98 [ 525 ] 101 [ 525 525 ] 104 [ 525 525 ] 107 [ 525 ] 109 [ 525 ] 112 [ 525 ] 114 [ 525 525 525 ] 118 [ 525 ] 121 [ 525 ] ] endobj -275 0 obj +292 0 obj << /Length 16 >> stream )iԺ@ endstream endobj -276 0 obj +293 0 obj << /Subtype /CIDFontType0C /Length 4658 >> stream QFORMF+LMMonoLt10-BoldH !  7  Zr " $ % QFORMF+LMMonoLt10-Bold2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMMonoLt10-BoldLMMonoLt10AdobeIdentity#$+-/247;?@BFGHKMQRTWX[^`befhikmprstvy((} w&}"x:yN  @@ -3068,10 +3588,10 @@ stream э  endstream endobj -274 0 obj -<< /Type /FontDescriptor /FontName /QFORMF+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 276 0 R /CIDSet 275 0 R >> +291 0 obj +<< /Type /FontDescriptor /FontName /QFORMF+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 293 0 R /CIDSet 292 0 R >> endobj -277 0 obj +294 0 obj << /Length 1215 >> stream %!PS-Adobe-3.0 Resource-CMap @@ -3147,47 +3667,46 @@ end endstream endobj 11 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QFORMF+LMMonoLt10-Bold /DescendantFonts [ 278 0 R ] /ToUnicode 277 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QFORMF+LMMonoLt10-Bold /DescendantFonts [ 295 0 R ] /ToUnicode 294 0 R >> endobj -278 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QFORMF+LMMonoLt10-Bold /FontDescriptor 274 0 R /W 273 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +295 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QFORMF+LMMonoLt10-Bold /FontDescriptor 291 0 R /W 290 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -279 0 obj -[ 28 [ 525 ] 34 [ 733 561 ] 42 [ 703 489 306 306 ] 47 [ 561 ] 49 [ 642 511 ] 55 [ 336 550 550 ] 59 [ 550 ] 63 [ 561 367 331 256 ] 70 [ 531 ] 72 [ 256 ] 74 [ 978 867 ] 77 [ 561 ] 81 [ 550 550 ] 84 [ 561 ] 88 [ 306 ] 90 [ 794 ] 95 [ 703 372 611 422 ] 100 [ 550 550 ] 104 [ 733 404 550 550 764 561 ] 112 [ 500 ] 114 [ 744 ] 116 [ 500 ] 121 [ 550 ] 125 [ 586 ] ] +296 0 obj +[ 27 [ 733 525 ] 34 [ 733 561 ] 42 [ 703 489 306 306 ] 47 [ 561 ] 49 [ 642 511 550 ] 55 [ 336 550 550 ] 59 [ 550 ] 63 [ 561 367 331 256 ] 70 [ 531 ] 72 [ 256 ] 74 [ 978 867 ] 77 [ 561 ] 81 [ 550 550 ] 84 [ 561 ] 88 [ 306 ] 90 [ 794 ] 95 [ 703 372 611 422 ] 100 [ 550 550 ] 104 [ 733 404 550 550 764 561 ] 112 [ 500 ] 114 [ 744 ] 116 [ 500 ] 121 [ 550 ] 125 [ 586 ] 498 [ 529 529 ] ] endobj -281 0 obj -<< /Length 16 >> +298 0 obj +<< /Length 63 >> stream -0=ahD +0=qhD0 endstream endobj -282 0 obj -<< /Subtype /CIDFontType0C /Length 5732 >> +299 0 obj +<< /Subtype /CIDFontType0C /Length 6221 >> stream -NIIVWO+LMSans10-BoldG ! &  `n " $ % NIIVWO+LMSans10-Bold2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMSans10-BoldLMSans10AdobeIdentity"#*+,-/12789;?@ABFHJKMQRTXZ_`abdehijklmprty}..~o w`[;j4c -2 - - * 0 |  r T';n2,Y\YoHvQjPhh'EA֕кwk{.,apqg!3V!fHiagfgtLI;rg ز-$ [%ŀuwR{RP9Y]}bfgfgYiTA,ar/@S'pvnwjjhiMMc^ѕӸɜzvkjjiij'$vFDEFu&()&FEw}]|z\b9#ܐ̦{mÐz[mE).EC:@+njƋXnq>qq>qq>qq>q6vnq>qq>q{{{|m~ŀuwRbfe~hw^Yl_TZ]UZصfznw{rt&֋v_J'tj/&a~hMbgfg,-(sO)4<1,8;1ĐXPOkLˈPdlȎۚQ=vi6 iXnv|@ z*;vhgggHTgX̫x uc#'|qT-rss0X[k{c^̋?=>?"lGc}tth#56v-Sw +LPMYMX+LMSans10-BoldG ! &  `n " $ % LPMYMX+LMSans10-Bold2.004Copyright 2003, 2009 B. Jackowski and J. M. Nowacki (on behalf of TeX users groups). This work is released under the GUST Font License -- see http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt for details.LMSans10-BoldLMSans10AdobeIdentity"#*+,-/123789;?@ABFHJKMQRTXZ_`abdehijklmprty}22wt9VHC#R  K +t +  q   dZ<,qv+]wFg|nw3wn`|g~p+hwtfmhst;n2,Y\YoHvQjPhh'EA֕кwk{.,apqg!3V!fHiagfgtLI;rg ز-$ [%ŀuwR{RP9Y]}bfgfgYiTA,ar/@S'pvnwjjhiMMc^ѕӸɜzvkjjiij'$vFDEFu&()&FEw}]|z\b9#ܐ̦{mÐz[mE).EC:@+njƋXnq>qq>qq>qq>q6vnq>qq>q{{{|m~ŀuwRbfe~hw^Yl_TZ]UZصfznw{rt&֋v_J'tj/&a~hMbgfg,-(sO)4<1,8;1ĐXPOkLˈPdlȎۚQ=ulG_`;뫗Ѹ'- "d0VKm$nw?"lGc}tth#56v-Sw ? H\~hpa#fBx|tr-|yrk{u"k{PHdC4Pb qO&s)ylYte\W`a39cYjpfdxjp|WyKlWnqΊS"0![g}}zqƋ39um&TdEEŽюeTHkc Ѻܵ}gŠvӋuw<D_%']Fo}bfgfgqŴtXk{UygYgggYߠvJw'bXgfgv^w ' Vbfgfg0bXe~hxnxvJw Bx.#w}Qyxvt$bvgfg>uvJwVbfgfgfvJw[nX b7rrbzvXf/hbvzky8gfg^P`Εk{v!==8_%DTjIg{6axaj^ltwk|bigfgqȱvVgqȱvVgŠvӋ<H_%"^?p~bigfgqŴtXk{ku8;7;>257B118<0 ؋3=PwnmfE_wy{ef(yqng=~hggAvKR{QIPVsig}ifgfgMY‹hTctys _Ƌnq>qq>q6v$$p]BAPSKOEUk~Jؒ9$L#SKTwN}ut^rs{SZcSTb2Svu$$,!>ʚYm^gfg8s+fP}Uu]IvyoB\bkgfgJڲʏu\8'+uMý~[|rDPX2/vOD]wWy~wve-5j7BY||4vgv*/:5 !mychaTcίruÐVckq^#ZmskĀ_\dd_S\}Rysz´(v #"@a L[w[~{x@ь=tXk{I +uC ""R  ċNWTTclQp匡 ר͔~hqp3$}ػő )H6<ޣۋD(qv'H bgf[]g\(ٖw puas|g2blgf8tfgg&`Дŝuk''_[1ܷ4#JH)cԾҋ˔jZ}[lesormx{yqR>HI0kAHK~:@ | m vkwG6h3'hRd[]gyHKPП٫DNKeHOKS`zgu w''+4y5bce~h7)nJl8bXgf4g:bBmŀ,w<bce~hIhRDSbcgf mҋqk{v^wSmBr|va|o(([s|ro} a |v^wKcByl\W}:6]|tt}|_Ah ;bwxvo]ޯR2\gxv^wVn6V%Fw|`y|}J4zt5zt_~uu+H2Wu$wu#E#{|~x{|vR=Tq0@A禈hƋˑ՗7wXqq>qm;~q>qq>qm;~ ]wdnxj{PwL%,qsj{wL%,q &6u^iJTl/   endstream endobj -280 0 obj -<< /Type /FontDescriptor /FontName /NIIVWO+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 282 0 R /CIDSet 281 0 R >> +297 0 obj +<< /Type /FontDescriptor /FontName /LPMYMX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 299 0 R /CIDSet 298 0 R >> endobj -283 0 obj -<< /Length 1293 >> +300 0 obj +<< /Length 1349 >> stream %!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-NIIVWO-LMSans10-Bold-0) -%%Title: (TeX-NIIVWO-LMSans10-Bold-0 TeX NIIVWO-LMSans10-Bold 0) +%%BeginResource: CMap (TeX-LPMYMX-LMSans10-Bold-0) +%%Title: (TeX-LPMYMX-LMSans10-Bold-0 TeX LPMYMX-LMSans10-Bold 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin @@ -3195,17 +3714,18 @@ stream begincmap /CIDSystemInfo << /Registry (TeX) -/Ordering (NIIVWO-LMSans10-Bold) +/Ordering (LPMYMX-LMSans10-Bold) /Supplement 0 >> def -/CMapName /TeX-Identity-NIIVWO-LMSans10-Bold def +/CMapName /TeX-Identity-LPMYMX-LMSans10-Bold def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange 0 beginbfrange endbfrange -45 beginbfchar +49 beginbfchar +<001B> <0041> <001C> <0061> <0022> <0042> <0023> <0062> @@ -3216,6 +3736,7 @@ endbfrange <002F> <0064> <0031> <0045> <0032> <0065> +<0033> <0038> <0037> <0066> <0038> <0035> <0039> <0034> @@ -3251,6 +3772,8 @@ endbfrange <0074> <0078> <0079> <0030> <007D> <00660069> +<01F2> <201E> +<01F3> <201C> endbfchar endcmap CMapName currentdict /CMap defineresource pop @@ -3262,382 +3785,405 @@ end endstream endobj 10 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /NIIVWO+LMSans10-Bold /DescendantFonts [ 284 0 R ] /ToUnicode 283 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LPMYMX+LMSans10-Bold /DescendantFonts [ 301 0 R ] /ToUnicode 300 0 R >> endobj -284 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /NIIVWO+LMSans10-Bold /FontDescriptor 280 0 R /W 279 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +301 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LPMYMX+LMSans10-Bold /FontDescriptor 297 0 R /W 296 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj 15 0 obj -<< /Type /Pages /Count 8 /Kids [ 5 0 R 17 0 R 37 0 R 81 0 R 98 0 R 128 0 R 178 0 R 211 0 R ] >> +<< /Type /Pages /Count 9 /Kids [ 5 0 R 17 0 R 37 0 R 82 0 R 101 0 R 106 0 R 135 0 R 182 0 R 213 0 R ] >> endobj -285 0 obj -<< /Type /Outlines /First 217 0 R /Last 247 0 R /Count 7 >> +302 0 obj +<< /Type /Outlines /First 228 0 R /Last 264 0 R /Count 8 >> endobj -253 0 obj -<< /Title 254 0 R /A 252 0 R /Parent 247 0 R /Prev 250 0 R >> +270 0 obj +<< /Title 271 0 R /A 269 0 R /Parent 264 0 R /Prev 267 0 R >> endobj -250 0 obj -<< /Title 251 0 R /A 249 0 R /Parent 247 0 R /Next 253 0 R >> +267 0 obj +<< /Title 268 0 R /A 266 0 R /Parent 264 0 R /Next 270 0 R >> endobj -247 0 obj -<< /Title 248 0 R /A 246 0 R /Parent 285 0 R /Prev 244 0 R /First 250 0 R /Last 253 0 R /Count -2 >> +264 0 obj +<< /Title 265 0 R /A 263 0 R /Parent 302 0 R /Prev 261 0 R /First 267 0 R /Last 270 0 R /Count -2 >> endobj -244 0 obj -<< /Title 245 0 R /A 243 0 R /Parent 285 0 R /Prev 241 0 R /Next 247 0 R >> +261 0 obj +<< /Title 262 0 R /A 260 0 R /Parent 302 0 R /Prev 255 0 R /Next 264 0 R >> endobj -241 0 obj -<< /Title 242 0 R /A 240 0 R /Parent 285 0 R /Prev 235 0 R /Next 244 0 R >> +258 0 obj +<< /Title 259 0 R /A 257 0 R /Parent 255 0 R >> endobj -238 0 obj -<< /Title 239 0 R /A 237 0 R /Parent 235 0 R >> +255 0 obj +<< /Title 256 0 R /A 254 0 R /Parent 302 0 R /Prev 252 0 R /Next 261 0 R /First 258 0 R /Last 258 0 R /Count -1 >> endobj -235 0 obj -<< /Title 236 0 R /A 234 0 R /Parent 285 0 R /Prev 232 0 R /Next 241 0 R /First 238 0 R /Last 238 0 R /Count -1 >> +252 0 obj +<< /Title 253 0 R /A 251 0 R /Parent 302 0 R /Prev 246 0 R /Next 255 0 R >> endobj -232 0 obj -<< /Title 233 0 R /A 231 0 R /Parent 285 0 R /Prev 220 0 R /Next 235 0 R >> +249 0 obj +<< /Title 250 0 R /A 248 0 R /Parent 246 0 R >> endobj -229 0 obj -<< /Title 230 0 R /A 228 0 R /Parent 220 0 R /Prev 226 0 R >> +246 0 obj +<< /Title 247 0 R /A 245 0 R /Parent 302 0 R /Prev 243 0 R /Next 252 0 R /First 249 0 R /Last 249 0 R /Count -1 >> endobj -226 0 obj -<< /Title 227 0 R /A 225 0 R /Parent 220 0 R /Prev 223 0 R /Next 229 0 R >> +243 0 obj +<< /Title 244 0 R /A 242 0 R /Parent 302 0 R /Prev 231 0 R /Next 246 0 R >> endobj -223 0 obj -<< /Title 224 0 R /A 222 0 R /Parent 220 0 R /Next 226 0 R >> +240 0 obj +<< /Title 241 0 R /A 239 0 R /Parent 231 0 R /Prev 237 0 R >> endobj -220 0 obj -<< /Title 221 0 R /A 219 0 R /Parent 285 0 R /Prev 217 0 R /Next 232 0 R /First 223 0 R /Last 229 0 R /Count -3 >> +237 0 obj +<< /Title 238 0 R /A 236 0 R /Parent 231 0 R /Prev 234 0 R /Next 240 0 R >> endobj -217 0 obj -<< /Title 218 0 R /A 216 0 R /Parent 285 0 R /Next 220 0 R >> +234 0 obj +<< /Title 235 0 R /A 233 0 R /Parent 231 0 R /Next 237 0 R >> endobj -286 0 obj -<< /Names [ (Doc-Start) 9 0 R (NEWPAX@doc-input1.newpax@1@) 132 0 R (NEWPAX@doc-input1.newpax@2@) 133 0 R (NEWPAX@doc-input1.newpax@3@) 134 0 R (NEWPAX@doc-input1.newpax@4@) 135 0 R (NEWPAX@doc-input1.newpax@5@) 136 0 R (desc:newpaxsetup) 85 0 R (lstlisting.-1) 40 0 R (lstlisting.-2) 87 0 R (lstlisting.1) 22 0 R (lstlisting.2) 44 0 R (lstlisting.3) 139 0 R (lstlisting.4) 182 0 R (lstnumber.-1.1) 41 0 R (lstnumber.-1.2) 42 0 R (lstnumber.-1.3) 43 0 R (lstnumber.-2.1) 88 0 R (lstnumber.-2.2) 89 0 R (lstnumber.-2.3) 90 0 R (lstnumber.-2.4) 91 0 R (lstnumber.-2.5) 92 0 R (lstnumber.-2.6) 93 0 R (lstnumber.-2.7) 94 0 R (lstnumber.-2.8) 95 0 R (lstnumber.-2.9) 96 0 R (lstnumber.1.1) 23 0 R (lstnumber.1.10) 32 0 R (lstnumber.1.11) 33 0 R (lstnumber.1.2) 24 0 R (lstnumber.1.3) 25 0 R (lstnumber.1.4) 26 0 R (lstnumber.1.5) 27 0 R ] /Limits [ (Doc-Start) (lstnumber.1.5) ] >> +231 0 obj +<< /Title 232 0 R /A 230 0 R /Parent 302 0 R /Prev 228 0 R /Next 243 0 R /First 234 0 R /Last 240 0 R /Count -3 >> endobj -287 0 obj -<< /Names [ (lstnumber.1.6) 28 0 R (lstnumber.1.7) 29 0 R (lstnumber.1.8) 30 0 R (lstnumber.1.9) 31 0 R (lstnumber.2.1) 45 0 R (lstnumber.2.10) 54 0 R (lstnumber.2.11) 55 0 R (lstnumber.2.12) 56 0 R (lstnumber.2.13) 57 0 R (lstnumber.2.14) 58 0 R (lstnumber.2.15) 59 0 R (lstnumber.2.16) 60 0 R (lstnumber.2.17) 61 0 R (lstnumber.2.18) 62 0 R (lstnumber.2.19) 63 0 R (lstnumber.2.2) 46 0 R (lstnumber.2.20) 64 0 R (lstnumber.2.21) 65 0 R (lstnumber.2.22) 66 0 R (lstnumber.2.23) 67 0 R (lstnumber.2.24) 68 0 R (lstnumber.2.25) 69 0 R (lstnumber.2.26) 70 0 R (lstnumber.2.27) 71 0 R (lstnumber.2.28) 72 0 R (lstnumber.2.29) 73 0 R (lstnumber.2.3) 47 0 R (lstnumber.2.30) 74 0 R (lstnumber.2.31) 75 0 R (lstnumber.2.32) 76 0 R (lstnumber.2.33) 77 0 R (lstnumber.2.34) 78 0 R ] /Limits [ (lstnumber.1.6) (lstnumber.2.34) ] >> +228 0 obj +<< /Title 229 0 R /A 227 0 R /Parent 302 0 R /Next 231 0 R >> endobj -288 0 obj -<< /Names [ (lstnumber.2.4) 48 0 R (lstnumber.2.5) 49 0 R (lstnumber.2.6) 50 0 R (lstnumber.2.7) 51 0 R (lstnumber.2.8) 52 0 R (lstnumber.2.9) 53 0 R (lstnumber.3.1) 140 0 R (lstnumber.3.10) 149 0 R (lstnumber.3.11) 150 0 R (lstnumber.3.12) 151 0 R (lstnumber.3.2) 141 0 R (lstnumber.3.3) 142 0 R (lstnumber.3.4) 143 0 R (lstnumber.3.5) 144 0 R (lstnumber.3.6) 145 0 R (lstnumber.3.7) 146 0 R (lstnumber.3.8) 147 0 R (lstnumber.3.9) 148 0 R (lstnumber.4.1) 183 0 R (lstnumber.4.10) 192 0 R (lstnumber.4.11) 193 0 R (lstnumber.4.12) 194 0 R (lstnumber.4.13) 195 0 R (lstnumber.4.14) 196 0 R (lstnumber.4.15) 197 0 R (lstnumber.4.16) 198 0 R (lstnumber.4.17) 199 0 R (lstnumber.4.18) 200 0 R (lstnumber.4.19) 201 0 R (lstnumber.4.2) 184 0 R (lstnumber.4.20) 202 0 R (lstnumber.4.21) 203 0 R ] /Limits [ (lstnumber.2.4) (lstnumber.4.21) ] >> +303 0 obj +<< /Names [ (Doc-Start) 9 0 R (desc:newpaxsetup) 86 0 R (doc-input1.newpax@section.1) 145 0 R (doc-input1.newpax@section.2) 144 0 R (doc-input1.newpax@section.3) 146 0 R (lstlisting.-1) 40 0 R (lstlisting.-2) 88 0 R (lstlisting.-3) 138 0 R (lstlisting.1) 22 0 R (lstlisting.2) 44 0 R (lstlisting.3) 149 0 R (lstlisting.4) 192 0 R (lstnumber.-1.1) 41 0 R (lstnumber.-1.2) 42 0 R (lstnumber.-1.3) 43 0 R (lstnumber.-2.1) 89 0 R (lstnumber.-2.2) 90 0 R (lstnumber.-2.3) 91 0 R (lstnumber.-2.4) 92 0 R (lstnumber.-2.5) 93 0 R (lstnumber.-2.6) 94 0 R (lstnumber.-2.7) 95 0 R (lstnumber.-2.8) 96 0 R (lstnumber.-2.9) 97 0 R (lstnumber.-3.1) 139 0 R (lstnumber.-3.2) 140 0 R (lstnumber.-3.3) 141 0 R (lstnumber.-3.4) 142 0 R (lstnumber.1.1) 23 0 R (lstnumber.1.10) 32 0 R (lstnumber.1.11) 33 0 R (lstnumber.1.2) 24 0 R ] /Limits [ (Doc-Start) (lstnumber.1.2) ] >> endobj -289 0 obj -<< /Names [ (lstnumber.4.22) 204 0 R (lstnumber.4.23) 205 0 R (lstnumber.4.24) 206 0 R (lstnumber.4.25) 207 0 R (lstnumber.4.26) 208 0 R (lstnumber.4.27) 209 0 R (lstnumber.4.28) 214 0 R (lstnumber.4.3) 185 0 R (lstnumber.4.4) 186 0 R (lstnumber.4.5) 187 0 R (lstnumber.4.6) 188 0 R (lstnumber.4.7) 189 0 R (lstnumber.4.8) 190 0 R (lstnumber.4.9) 191 0 R (page.1) 8 0 R (page.2) 19 0 R (page.3) 39 0 R (page.4) 83 0 R (page.5) 100 0 R (page.6) 130 0 R (page.7) 180 0 R (page.8) 213 0 R (section.1) 13 0 R (section.2) 20 0 R (section.3) 84 0 R (section.4) 86 0 R (section.5) 102 0 R (section.6) 131 0 R (section.7) 137 0 R (subsection.2.1) 21 0 R (subsection.2.2) 34 0 R (subsection.2.3) 79 0 R ] /Limits [ (lstnumber.4.22) (subsection.2.3) ] >> +304 0 obj +<< /Names [ (lstnumber.1.3) 25 0 R (lstnumber.1.4) 26 0 R (lstnumber.1.5) 27 0 R (lstnumber.1.6) 28 0 R (lstnumber.1.7) 29 0 R (lstnumber.1.8) 30 0 R (lstnumber.1.9) 31 0 R (lstnumber.2.1) 45 0 R (lstnumber.2.10) 54 0 R (lstnumber.2.11) 55 0 R (lstnumber.2.12) 56 0 R (lstnumber.2.13) 57 0 R (lstnumber.2.14) 58 0 R (lstnumber.2.15) 59 0 R (lstnumber.2.16) 60 0 R (lstnumber.2.17) 61 0 R (lstnumber.2.18) 62 0 R (lstnumber.2.19) 63 0 R (lstnumber.2.2) 46 0 R (lstnumber.2.20) 64 0 R (lstnumber.2.21) 65 0 R (lstnumber.2.22) 66 0 R (lstnumber.2.23) 67 0 R (lstnumber.2.24) 68 0 R (lstnumber.2.25) 69 0 R (lstnumber.2.26) 70 0 R (lstnumber.2.27) 71 0 R (lstnumber.2.28) 72 0 R (lstnumber.2.29) 73 0 R (lstnumber.2.3) 47 0 R (lstnumber.2.30) 74 0 R (lstnumber.2.31) 75 0 R ] /Limits [ (lstnumber.1.3) (lstnumber.2.31) ] >> endobj -290 0 obj -<< /Names [ (subsection.4.1) 101 0 R (subsection.7.1) 138 0 R (subsection.7.2) 181 0 R ] /Limits [ (subsection.4.1) (subsection.7.2) ] >> +305 0 obj +<< /Names [ (lstnumber.2.32) 76 0 R (lstnumber.2.33) 77 0 R (lstnumber.2.34) 78 0 R (lstnumber.2.4) 48 0 R (lstnumber.2.5) 49 0 R (lstnumber.2.6) 50 0 R (lstnumber.2.7) 51 0 R (lstnumber.2.8) 52 0 R (lstnumber.2.9) 53 0 R (lstnumber.3.1) 150 0 R (lstnumber.3.10) 188 0 R (lstnumber.3.11) 189 0 R (lstnumber.3.12) 190 0 R (lstnumber.3.2) 151 0 R (lstnumber.3.3) 152 0 R (lstnumber.3.4) 153 0 R (lstnumber.3.5) 154 0 R (lstnumber.3.6) 155 0 R (lstnumber.3.7) 185 0 R (lstnumber.3.8) 186 0 R (lstnumber.3.9) 187 0 R (lstnumber.4.1) 193 0 R (lstnumber.4.10) 202 0 R (lstnumber.4.11) 203 0 R (lstnumber.4.12) 204 0 R (lstnumber.4.13) 205 0 R (lstnumber.4.14) 206 0 R (lstnumber.4.15) 207 0 R (lstnumber.4.16) 208 0 R (lstnumber.4.17) 209 0 R (lstnumber.4.18) 210 0 R (lstnumber.4.19) 216 0 R ] /Limits [ (lstnumber.2.32) (lstnumber.4.19) ] >> endobj -291 0 obj -<< /Kids [ 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R ] /Limits [ (Doc-Start) (subsection.7.2) ] >> +306 0 obj +<< /Names [ (lstnumber.4.2) 194 0 R (lstnumber.4.20) 217 0 R (lstnumber.4.21) 218 0 R (lstnumber.4.22) 219 0 R (lstnumber.4.23) 220 0 R (lstnumber.4.24) 221 0 R (lstnumber.4.25) 222 0 R (lstnumber.4.26) 223 0 R (lstnumber.4.27) 224 0 R (lstnumber.4.28) 225 0 R (lstnumber.4.3) 195 0 R (lstnumber.4.4) 196 0 R (lstnumber.4.5) 197 0 R (lstnumber.4.6) 198 0 R (lstnumber.4.7) 199 0 R (lstnumber.4.8) 200 0 R (lstnumber.4.9) 201 0 R (page.1) 8 0 R (page.2) 19 0 R (page.3) 39 0 R (page.4) 84 0 R (page.5) 103 0 R (page.6) 108 0 R (page.7) 137 0 R (page.8) 184 0 R (page.9) 215 0 R (section.1) 13 0 R (section.2) 20 0 R (section.3) 85 0 R (section.4) 87 0 R (section.5) 109 0 R (section.6) 110 0 R ] /Limits [ (lstnumber.4.2) (section.6) ] >> endobj -292 0 obj -<< /Dests 291 0 R >> +307 0 obj +<< /Names [ (section.7) 143 0 R (section.8) 147 0 R (subsection.2.1) 21 0 R (subsection.2.2) 34 0 R (subsection.2.3) 79 0 R (subsection.4.1) 104 0 R (subsection.6.1) 99 0 R (subsection.8.1) 148 0 R (subsection.8.2) 191 0 R ] /Limits [ (section.7) (subsection.8.2) ] >> endobj -293 0 obj -<< /Type /Catalog /Pages 15 0 R /Outlines 285 0 R /Names 292 0 R /ViewerPreferences 215 0 R/Lang (en-UK)/PageMode /UseOutlines/OpenAction [5 0 R /Fit]/PageLabels <>]>> >> +308 0 obj +<< /Kids [ 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R ] /Limits [ (Doc-Start) (subsection.8.2) ] >> endobj -294 0 obj -<< /Creator /Title /Author /Producer (LuaTeX-1.15.0) /CreationDate (D:20220915203917+02'00') /ModDate (D:20220915203917+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)) >> +309 0 obj +<< /Dests 308 0 R >> +endobj +310 0 obj +<< /Type /Catalog /Pages 15 0 R /Outlines 302 0 R /Names 309 0 R /ViewerPreferences 226 0 R/Lang (en-UK)/PageMode /UseOutlines/OpenAction [5 0 R /Fit]/PageLabels <>]>>/Metadata 211 0 R >> +endobj +311 0 obj +<< /Producer (luahbtex-1.17.0)/Creator /Title /Author /CreationDate (D:20230911094622+02'00')/ModDate (D:20230911094622+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref -0 295 +0 312 0000000002 65535 f -0000124810 00000 n +0000156498 00000 n 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f -0000012223 00000 n -0000012515 00000 n +0000012224 00000 n +0000012516 00000 n 0000000020 00000 n -0000012337 00000 n -0000012396 00000 n -0000170270 00000 n -0000162055 00000 n -0000154973 00000 n -0000012455 00000 n -0000142753 00000 n -0000170621 00000 n -0000027116 00000 n -0000026025 00000 n -0000012637 00000 n -0000026142 00000 n -0000026203 00000 n -0000026264 00000 n -0000026325 00000 n -0000026385 00000 n -0000026446 00000 n -0000026507 00000 n -0000026568 00000 n -0000026629 00000 n -0000026690 00000 n -0000026751 00000 n -0000026812 00000 n -0000026873 00000 n -0000026934 00000 n -0000026995 00000 n -0000027055 00000 n -0000131235 00000 n -0000042592 00000 n -0000039975 00000 n -0000027251 00000 n -0000040092 00000 n -0000040153 00000 n -0000040214 00000 n -0000040276 00000 n -0000040338 00000 n -0000040400 00000 n -0000040461 00000 n -0000040522 00000 n -0000040582 00000 n -0000040643 00000 n -0000040704 00000 n -0000040765 00000 n -0000040826 00000 n -0000040887 00000 n -0000040948 00000 n -0000041009 00000 n -0000041070 00000 n -0000041131 00000 n -0000041192 00000 n -0000041253 00000 n -0000041313 00000 n -0000041373 00000 n -0000041434 00000 n -0000041495 00000 n -0000041556 00000 n -0000041617 00000 n -0000041678 00000 n -0000041739 00000 n -0000041800 00000 n -0000041861 00000 n -0000041922 00000 n -0000041983 00000 n -0000042044 00000 n -0000042104 00000 n -0000042165 00000 n -0000042226 00000 n -0000042287 00000 n -0000042348 00000 n -0000042409 00000 n -0000042470 00000 n -0000042531 00000 n -0000055496 00000 n -0000054526 00000 n -0000042715 00000 n -0000054643 00000 n -0000054704 00000 n -0000054765 00000 n -0000054825 00000 n -0000054886 00000 n -0000054947 00000 n -0000055008 00000 n -0000055069 00000 n -0000055130 00000 n -0000055191 00000 n -0000055252 00000 n -0000055313 00000 n -0000055374 00000 n -0000055435 00000 n -0000071841 00000 n -0000071538 00000 n -0000055631 00000 n -0000071655 00000 n -0000071717 00000 n -0000071779 00000 n -0000079636 00000 n -0000079419 00000 n -0000105050 00000 n -0000105261 00000 n -0000101066 00000 n -0000101286 00000 n -0000101507 00000 n -0000101727 00000 n -0000101947 00000 n -0000102167 00000 n -0000102387 00000 n -0000102607 00000 n -0000102826 00000 n -0000103046 00000 n -0000103266 00000 n -0000103486 00000 n -0000103706 00000 n -0000104397 00000 n -0000100122 00000 n -0000099905 00000 n -0000104827 00000 n -0000105472 00000 n -0000105683 00000 n -0000105895 00000 n -0000107495 00000 n -0000079102 00000 n -0000071964 00000 n -0000106108 00000 n -0000106171 00000 n -0000106234 00000 n -0000106296 00000 n -0000106360 00000 n -0000106424 00000 n -0000106487 00000 n -0000106551 00000 n -0000106614 00000 n -0000106677 00000 n -0000106740 00000 n -0000106803 00000 n -0000106865 00000 n -0000106928 00000 n -0000106991 00000 n -0000107054 00000 n -0000107117 00000 n -0000107180 00000 n -0000107243 00000 n -0000107306 00000 n -0000107369 00000 n -0000107432 00000 n -0000079238 00000 n -0000099836 00000 n -0000085032 00000 n -0000085083 00000 n -0000085240 00000 n -0000085396 00000 n -0000085550 00000 n -0000085753 00000 n -0000087036 00000 n -0000087238 00000 n -0000088217 00000 n -0000088417 00000 n -0000089217 00000 n -0000089456 00000 n -0000089815 00000 n -0000090053 00000 n -0000090262 00000 n -0000090499 00000 n -0000090580 00000 n -0000095866 00000 n -0000095934 00000 n -0000098432 00000 n -0000098499 00000 n -0000099770 00000 n -0000100997 00000 n -0000123828 00000 n -0000121820 00000 n -0000107660 00000 n -0000121940 00000 n -0000122003 00000 n -0000122066 00000 n -0000122129 00000 n -0000122192 00000 n -0000122255 00000 n -0000122318 00000 n -0000122381 00000 n -0000122443 00000 n -0000122506 00000 n -0000122569 00000 n -0000122632 00000 n -0000122695 00000 n -0000122758 00000 n -0000122821 00000 n -0000122884 00000 n -0000122947 00000 n -0000123010 00000 n -0000123073 00000 n -0000123136 00000 n -0000123198 00000 n -0000123261 00000 n -0000123324 00000 n -0000123387 00000 n -0000123450 00000 n -0000123513 00000 n -0000123576 00000 n -0000123639 00000 n -0000123702 00000 n -0000123765 00000 n -0000124698 00000 n -0000124452 00000 n -0000123952 00000 n -0000124572 00000 n -0000124635 00000 n -0000124857 00000 n -0000124903 00000 n -0000171946 00000 n -0000124950 00000 n -0000125039 00000 n -0000171814 00000 n -0000125086 00000 n -0000125231 00000 n -0000171735 00000 n -0000125283 00000 n -0000125545 00000 n -0000171642 00000 n -0000125597 00000 n -0000125854 00000 n -0000171563 00000 n -0000125906 00000 n -0000126036 00000 n -0000171470 00000 n -0000126083 00000 n -0000126180 00000 n -0000171338 00000 n -0000126227 00000 n -0000126334 00000 n -0000171273 00000 n -0000126386 00000 n -0000126594 00000 n -0000171180 00000 n -0000126641 00000 n -0000126778 00000 n -0000171087 00000 n -0000126825 00000 n -0000126922 00000 n -0000170969 00000 n -0000126969 00000 n -0000127145 00000 n -0000170890 00000 n -0000127197 00000 n -0000127408 00000 n -0000170811 00000 n -0000127460 00000 n -0000127707 00000 n -0000130073 00000 n -0000127822 00000 n -0000127894 00000 n -0000130313 00000 n -0000131391 00000 n -0000131594 00000 n -0000140758 00000 n -0000132045 00000 n -0000132122 00000 n -0000140996 00000 n -0000142908 00000 n -0000143110 00000 n -0000152919 00000 n -0000143557 00000 n -0000143792 00000 n -0000153158 00000 n -0000155130 00000 n -0000155334 00000 n -0000160542 00000 n -0000155722 00000 n -0000155799 00000 n -0000160779 00000 n -0000162209 00000 n -0000162410 00000 n -0000168680 00000 n -0000162786 00000 n -0000162863 00000 n -0000168916 00000 n -0000170422 00000 n -0000170734 00000 n -0000172025 00000 n -0000172920 00000 n -0000173760 00000 n -0000174616 00000 n -0000175378 00000 n -0000175533 00000 n -0000175647 00000 n -0000175685 00000 n -0000175888 00000 n +0000012338 00000 n +0000012397 00000 n +0000203333 00000 n +0000194502 00000 n +0000187420 00000 n +0000012456 00000 n +0000174942 00000 n +0000203684 00000 n +0000027117 00000 n +0000026026 00000 n +0000012638 00000 n +0000026143 00000 n +0000026204 00000 n +0000026265 00000 n +0000026326 00000 n +0000026386 00000 n +0000026447 00000 n +0000026508 00000 n +0000026569 00000 n +0000026630 00000 n +0000026691 00000 n +0000026752 00000 n +0000026813 00000 n +0000026874 00000 n +0000026935 00000 n +0000026996 00000 n +0000027056 00000 n +0000163293 00000 n +0000042593 00000 n +0000039976 00000 n +0000027252 00000 n +0000040093 00000 n +0000040154 00000 n +0000040215 00000 n +0000040277 00000 n +0000040339 00000 n +0000040401 00000 n +0000040462 00000 n +0000040523 00000 n +0000040583 00000 n +0000040644 00000 n +0000040705 00000 n +0000040766 00000 n +0000040827 00000 n +0000040888 00000 n +0000040949 00000 n +0000041010 00000 n +0000041071 00000 n +0000041132 00000 n +0000041193 00000 n +0000041254 00000 n +0000041314 00000 n +0000041374 00000 n +0000041435 00000 n +0000041496 00000 n +0000041557 00000 n +0000041618 00000 n +0000041679 00000 n +0000041740 00000 n +0000041801 00000 n +0000041862 00000 n +0000041923 00000 n +0000041984 00000 n +0000042045 00000 n +0000042105 00000 n +0000042166 00000 n +0000042227 00000 n +0000042288 00000 n +0000042349 00000 n +0000042410 00000 n +0000042471 00000 n +0000042532 00000 n +0000055615 00000 n +0000056647 00000 n +0000055456 00000 n +0000042716 00000 n +0000055795 00000 n +0000055856 00000 n +0000055917 00000 n +0000055977 00000 n +0000056038 00000 n +0000056098 00000 n +0000056159 00000 n +0000056220 00000 n +0000056281 00000 n +0000056342 00000 n +0000056403 00000 n +0000056464 00000 n +0000056525 00000 n +0000056586 00000 n +0000055588 00000 n +0000088356 00000 n +0000072557 00000 n +0000072311 00000 n +0000056770 00000 n +0000072431 00000 n +0000072494 00000 n +0000088418 00000 n +0000088047 00000 n +0000072681 00000 n +0000088167 00000 n +0000088230 00000 n +0000088293 00000 n +0000099070 00000 n +0000098853 00000 n +0000124058 00000 n +0000124270 00000 n +0000120487 00000 n +0000120708 00000 n +0000120930 00000 n +0000121152 00000 n +0000121373 00000 n +0000121594 00000 n +0000121814 00000 n +0000122036 00000 n +0000122258 00000 n +0000122478 00000 n +0000122700 00000 n +0000122922 00000 n +0000123144 00000 n +0000119549 00000 n +0000119332 00000 n +0000123835 00000 n +0000124480 00000 n +0000124693 00000 n +0000124906 00000 n +0000126320 00000 n +0000098544 00000 n +0000088542 00000 n +0000125119 00000 n +0000125182 00000 n +0000125245 00000 n +0000125309 00000 n +0000125373 00000 n +0000125437 00000 n +0000125501 00000 n +0000125564 00000 n +0000125627 00000 n +0000125690 00000 n +0000125753 00000 n +0000125816 00000 n +0000125879 00000 n +0000125942 00000 n +0000126005 00000 n +0000126068 00000 n +0000126131 00000 n +0000126194 00000 n +0000126257 00000 n +0000098680 00000 n +0000119263 00000 n +0000104459 00000 n +0000104510 00000 n +0000104667 00000 n +0000104823 00000 n +0000104977 00000 n +0000105180 00000 n +0000106463 00000 n +0000106665 00000 n +0000107644 00000 n +0000107844 00000 n +0000108644 00000 n +0000108883 00000 n +0000109242 00000 n +0000109480 00000 n +0000109689 00000 n +0000109926 00000 n +0000110007 00000 n +0000115293 00000 n +0000115361 00000 n +0000117859 00000 n +0000117926 00000 n +0000119197 00000 n +0000120418 00000 n +0000140363 00000 n +0000138545 00000 n +0000126485 00000 n +0000138665 00000 n +0000138728 00000 n +0000138791 00000 n +0000138854 00000 n +0000138917 00000 n +0000138980 00000 n +0000139043 00000 n +0000139106 00000 n +0000139169 00000 n +0000139232 00000 n +0000139295 00000 n +0000139358 00000 n +0000139420 00000 n +0000139483 00000 n +0000139546 00000 n +0000139609 00000 n +0000139672 00000 n +0000139735 00000 n +0000139798 00000 n +0000139861 00000 n +0000139924 00000 n +0000139987 00000 n +0000140050 00000 n +0000140113 00000 n +0000140175 00000 n +0000140237 00000 n +0000140300 00000 n +0000140487 00000 n +0000156386 00000 n +0000155574 00000 n +0000152202 00000 n +0000155694 00000 n +0000155757 00000 n +0000155820 00000 n +0000155883 00000 n +0000155946 00000 n +0000156009 00000 n +0000156072 00000 n +0000156135 00000 n +0000156198 00000 n +0000156261 00000 n +0000156324 00000 n +0000156545 00000 n +0000156591 00000 n +0000205215 00000 n +0000156638 00000 n +0000156727 00000 n +0000205083 00000 n +0000156774 00000 n +0000156919 00000 n +0000205004 00000 n +0000156971 00000 n +0000157233 00000 n +0000204911 00000 n +0000157285 00000 n +0000157542 00000 n +0000204832 00000 n +0000157594 00000 n +0000157724 00000 n +0000204739 00000 n +0000157771 00000 n +0000157868 00000 n +0000204607 00000 n +0000157915 00000 n +0000158022 00000 n +0000204542 00000 n +0000158074 00000 n +0000158282 00000 n +0000204449 00000 n +0000158329 00000 n +0000158466 00000 n +0000204317 00000 n +0000158513 00000 n +0000158615 00000 n +0000204252 00000 n +0000158667 00000 n +0000158836 00000 n +0000204159 00000 n +0000158883 00000 n +0000158980 00000 n +0000204041 00000 n +0000159027 00000 n +0000159203 00000 n +0000203962 00000 n +0000159255 00000 n +0000159466 00000 n +0000203883 00000 n +0000159518 00000 n +0000159765 00000 n +0000162131 00000 n +0000159880 00000 n +0000159952 00000 n +0000162371 00000 n +0000163449 00000 n +0000163652 00000 n +0000172933 00000 n +0000164100 00000 n +0000164177 00000 n +0000173171 00000 n +0000175097 00000 n +0000175299 00000 n +0000185338 00000 n +0000175747 00000 n +0000175982 00000 n +0000185577 00000 n +0000187577 00000 n +0000187781 00000 n +0000192989 00000 n +0000188169 00000 n +0000188246 00000 n +0000193226 00000 n +0000194656 00000 n +0000194857 00000 n +0000201687 00000 n +0000195257 00000 n +0000195381 00000 n +0000201923 00000 n +0000203485 00000 n +0000203806 00000 n +0000205294 00000 n +0000206168 00000 n +0000207005 00000 n +0000207860 00000 n +0000208615 00000 n +0000208901 00000 n +0000209015 00000 n +0000209053 00000 n +0000209273 00000 n trailer -<< /Size 295 /Root 293 0 R /Info 294 0 R /ID [ <1AFE8472BBB21752AA02B3F1B7023E03> <1AFE8472BBB21752AA02B3F1B7023E03> ] >> +<< /Size 312 /Root 310 0 R /Info 311 0 R /ID [ ] >> startxref -176343 +209727 %%EOF diff --git a/macros/latex/contrib/newpax/newpax.tex b/macros/latex/contrib/newpax/newpax.tex index f145dc57f5..65cda2cf83 100644 --- a/macros/latex/contrib/newpax/newpax.tex +++ b/macros/latex/contrib/newpax/newpax.tex @@ -1,7 +1,7 @@ % !Mode:: "TeX:UTF-8:Main" \makeatletter -\def\UlrikeFischer@package@version{0.53} -\def\UlrikeFischer@package@date{2022-09-15} +\def\UlrikeFischer@package@version{0.54} +\def\UlrikeFischer@package@date{2023-09-11} \makeatother \DocumentMetadata{pdfversion=1.7,lang=en-UK, uncompress} @@ -130,6 +130,13 @@ This command allows to change the behaviour inclusion. It knows the following ke \item[\PrintKeyName{addannots}] This is a boolean key. It allows to switch on and off the reinserting of the annotations. When set to false it also suppress warnings in the log if the \file{.newpax} file is not found. It is recommended to set it to false for graphics which don't have links. + \item[\PrintKeyName{dests}] This is a choice key. Currently the values + \texttt{used} (the default) and \texttt{all} are allowed. In the first + case only destinations that are targets of links in the included PDF + will be included, in the second case all destinations (if they are in + the included pages) will be included. The second can be useful if you + want to link to destinations \enquote{from the outside}, see below + section~\ref{sec:outside}. \end{description} @@ -179,8 +186,67 @@ The code also doesn't handle structure elements, neither at the export nor at th \section{Importing annotations} -The \pkg{pax} package from Heiko Oberdiek does the hard work to recalculate the annotation rectangles and to decide which annotation and which destination should be reinserted. It also patches the \cs{includegraphics} command to automate this. -\pkg{newpax} reuses the core commands of \pkg{pax}. It only adds a number of switches and changes primitive to support more engines and backends. +The import function has to handle two main problems: +\begin{itemize} +\item Recalculation of coordinates if the imported PDF is scaled or moved +\item Dropping of annotations and destinations if a PDF is only partially included, e.g. because the graphic is clipped, or because only a selection of pages are included. +\end{itemize} + +The \pkg{pax} package from Heiko Oberdiek does here hard work to recalculate the annotation rectangles and to decide which annotation and which destination should be reinserted and patches \cs{includegraphics} command to automate this. \pkg{newpax} mostly reuses the core commands of \pkg{pax} and added only a number of switches and support for more engines and backends. + +\section{Internal links} + +Internal links (GoTo links in PDF speach) are more complicated than the other link types. + +At first they involve two objects: the link annotation and the target of the link (destination in PDF speach). If a PDF is included partially, it is therefore not enough to check if the link area is on the visible pages, one also has to check if the target of the link is there. As such a target can be on a later page the \pkg{pax}/\pkg{newpax} uses the \texttt{.aux} file to record which targets exists and which are required and in a second compilation decides which links and destinations should be reinserted. As an example: if you include from a PDF the table of contents (with links) and a few pages, only the links in the toc pointing to visible sections \emph{and} only the destinations needed for this links will be reinserted. + +At second the targets are normally „named destinations“, that means a link +annotation points to a string like \texttt{section.1} and the name tree +\texttt{/Dests} contains a mapping for this string to an destination object. +As names like \texttt{section.1} are used in many PDFs produced by \LaTeX{} +they can not simply be reused when reinserting annotations. \pkg{newpax} +tries to avoid name clashes by generating names consisting of a prefix with +the file name and number or name. So e.g. the \texttt{section.1} destination +would be called \texttt{file.newpax@section.1} in the receiving file. If you +set up a suffix, e.g. with \texttt{destsuffix=A}, it is appended with an @ +symbol, so the result would be \texttt{file.newpax@section.1@A}. If the +original destination has not name (this can happen if you include PDFs which +haven't been created by TeX), then a number is used, so you get +\texttt{file.newpax@1}. + + +\subsection{Access from the „outside“}\label{sec:outside} + +It is possible to link from the external document to destinations in the +included PDF, for example to build a table of contents with links. For this +you need + +\begin{itemize} +\item the included PDF must contain all destinations that you want to use. + That means, \pkg{newpax} won't create destinations out of the blue. + +\item You must ensure that the destinations you need are imported. This + will be the case if they are targets of internal links in the imported + PDF, if not you can force that all destinations of visible pages are + there by using the option \texttt{dests=all}, see above. + +\item You need the names of the destinations. If the imported PDF has been + created with \LaTeX{} you can look in the \texttt{toc} or + \texttt{aux}-file to find names. Then you can setup a filter to link to + the names used by \pkg{newpax} and e.g. load the toc or copy some of + the content lines: + + \begin{lstlisting} + \newpaxsetup{dests=all} + \def\HyperDestNameFilter#1{myinput.newpax@#1} + \input{myinput.toc} %load toc + \includepdf[pages={2-4}]{myinput} + \end{lstlisting} + + \end{itemize} + + + diff --git a/macros/latex/contrib/photobook/photobook.cls b/macros/latex/contrib/photobook/photobook.cls index 54b7d1f0b3..7ecc155de8 100644 --- a/macros/latex/contrib/photobook/photobook.cls +++ b/macros/latex/contrib/photobook/photobook.cls @@ -93,7 +93,7 @@ %%% NOTE: \def\@[A-Z]+ macros will be visible to both the %%% code and the generated docs... -\edef\photobook@FILEVERSION{v0.1.26} +\edef\photobook@FILEVERSION{v0.1.28} \edef\photobook@FILEDATE{2023-08-24} @@ -965,8 +965,8 @@ %%% \DescribeMacro{\clearancetop=} %%% \DescribeMacro{\clearanceright=} %%% \DescribeMacro{\clearancebottom=} -% XXX LEGACY CLEARANCE -%%% \DescribeMacro{\clearance=} +% XXX revise... +%%% \DescribeMacro{\clearances=} % %% Cell geometry. %% @@ -987,7 +987,6 @@ \setlength\celloffsetleft{0pt} \newlength\celloffsettop \setlength\celloffsettop{0pt} -% XXX EXPERIMENTAL CLEARANCE \newlength\clearanceleft \setlength\clearanceleft{0pt} \newlength\clearancetop @@ -997,9 +996,6 @@ \newlength\clearancebottom \setlength\clearancebottom{0pt} \def\clearances{0pt} -% XXX LEGACY CLEARANCE -%\newlength\clearance -%\setlength\clearance{0pt} %% \DescribeMacro{\clearfoldoutgutter=} @@ -1491,6 +1487,9 @@ %% %% Note that this may span more than one page if there is enough stuff %% packed in. +%% Also note that items within the page environment are placed in the +%% same way as in any normal page, for absolute placement use either +%% specific cells/environments like |papercell| or more generic |call|. %% \newenvironment{page}{% % XXX do we need \null here??? @@ -1617,8 +1616,6 @@ %%% \DescribeMacro{\clearancetop=} %%% \DescribeMacro{\clearanceright=} %%% \DescribeMacro{\clearancebottom=} -% XXX LEGACY CLEARANCE -%%% \DescribeMacro{\clearance=} %% %% A cell defines a set of contextual lengths: %% @@ -1750,13 +1747,10 @@ \setlength\cellheight{\photobook@protect@h}% \setlength\celloffsettop{0pt}% \setlength\celloffsetleft{0pt}% - % XXX EXPERIMENTAL CLEARANCE \setlength\clearanceleft{0pt}% \setlength\clearancetop{0pt}% \setlength\clearanceright{0pt}% \setlength\clearancebottom{0pt}% - % XXX LEGACY CLEARANCE - %\setlength\clearance{0pt}% % \begin{MinipageCellContent}[\photobook@minipagecell@parentvalign]{minipagecell}% }{% @@ -2013,7 +2007,7 @@ %% \DescribeEnv{cliptocell} -%% \DescribeEnv{cliptocellbleeds} +%% \DescribeEnv{setcliptocellbleeds} % %% Clip content to parent cell. %% @@ -2046,24 +2040,27 @@ \setlength\photobook@cliptocell@right{0mm}% \newlength\photobook@cliptocell@bottom \setlength\photobook@cliptocell@bottom{0mm}% + +\def\cliptocellbleeds{{0mm} {0mm} {0mm} {0mm}}% \def\cliptocellclearances{{0mm} {0mm} {0mm} {0mm}}% %% Set the default bleeds for |cliptocell| environments %% -%% >> \cliptocellbleeds{} -%% >> \cliptocellbleeds{ } -%% >> \cliptocellbleeds{ } +%% >> \setcliptocellbleeds{} +%% >> \setcliptocellbleeds{ } +%% >> \setcliptocellbleeds{ } %% %% This will only affect |cliptocell| environments on the same level, %% without affecting the nested |cliptocell|s. %% +%%% \DescribeEnv{cliptocellbleeds= } %%% \DescribeEnv{cliptocellclearances= } %%% -%%% Set by |\cliptocellbleeds{..}| and contains clearances (negative -%%% clipping bleeds) usable by imagecell. +%%% Set by |\setcliptocellbleeds{..}| and contain bleeds and clearances (negative +%%% clipping bleeds) respectively, usable by imagecell and others. %%% %%% XXX still testing.... -\newcommand\cliptocellbleeds[1]{ +\newcommand\setcliptocellbleeds[1]{ \setsepchar{ }% \readlist*\photobook@cliptocell@bleeds{#1}% \setsepchar{,}% @@ -2100,6 +2097,11 @@ % NOTE: trailing spaces here are significant... % XXX should we use \the here? % ...it makes things printable... + \def\cliptocellbleeds{% + {\the\photobook@cliptocell@left} % + {\the\photobook@cliptocell@bottom} % + {\the\photobook@cliptocell@right} % + {\the\photobook@cliptocell@top}}% \def\cliptocellclearances{% {-\the\photobook@cliptocell@left} % {-\the\photobook@cliptocell@bottom} % @@ -2109,7 +2111,7 @@ % XXX use \cliptocellclearances as default... \newenvironment{cliptocell}[1][0mm]{% \begingroup% - \cliptocellbleeds{#1} + \setcliptocellbleeds{#1} % NOTE: the spaces at the end of each line here are significant!! \begin{trimbox}{{\photobook@cliptocell@left} % {\photobook@cliptocell@bottom} % @@ -2120,7 +2122,7 @@ {\cellwidth + \photobook@cliptocell@right} % {\height + \photobook@cliptocell@top}}% % set defaults for nested cells... - \cliptocellbleeds{0mm}% + \setcliptocellbleeds{0mm}% \begin{minipage}[t][\cellheight][t]{\cellwidth}% \ignorespaces% }{% @@ -2331,9 +2333,6 @@ \setlength\photobook@imagecell@clearance@right{0pt} \newlength\photobook@imagecell@clearance@bottom \setlength\photobook@imagecell@clearance@bottom{0pt} -% XXX LEGACY -\newlength\photobook@imagecell@clearance -\setlength\photobook@imagecell@clearance{0pt} % NOTE: these feel like a hack... \newlength\photobook@imagecell@imgratio @@ -2348,13 +2347,11 @@ \define@boolkey{imagecell@args}{center}[true]{% \def\photobook@imagecell@top{\dimexpr +0.5\cellheight - % XXX EXPERIMENTAL CLEARANCE -- test... +0.5\photobook@imagecell@clearance@top -0.5\photobook@imagecell@clearance@bottom -0.5\ht\photobook@imagebox \relax}% \def\photobook@imagecell@left{\dimexpr +0.5\cellwidth - % XXX EXPERIMENTAL CLEARANCE -- test... +0.5\photobook@imagecell@clearance@left -0.5\photobook@imagecell@clearance@right -0.5\wd\photobook@imagebox \relax}}% @@ -2363,7 +2360,6 @@ \newcommand\photobook@imagecell@LEFT{% \def\photobook@imagecell@left{\dimexpr% +\photobook@imagecell@clearance@left \relax}% - %+\photobook@imagecell@clearance \relax}% \def\photobook@imagecell@captionleft{ % XXX not sure why this branch is needed... \ifKV@imagecell@args@fit @@ -2403,7 +2399,6 @@ \define@boolkey{imagecell@args}{top}[true]{% \def\photobook@imagecell@top{% \photobook@imagecell@clearance@top}% - %\photobook@imagecell@clearance}% \def\photobook@imagecell@captiontop{% -\dimexpr +\cellheight @@ -2419,7 +2414,6 @@ \dimexpr \photobook@imagecell@top +\photobook@imagecell@clearance@bottom \relax}}% - %+\photobook@imagecell@clearance \relax}}% % clearance=... % clearance= ... % clearance= ... @@ -2427,7 +2421,7 @@ % XXX EXPERIMENTAL % XXX this is essentially the same as \photobook@cliptocell@bleeds -- unite... \def\photobook@imagecell@clearances{#1}% - \setsepchar{ } + \setsepchar{ }% \readlist*\photobook@imagecell@clearencelist{#1}% \setsepchar{,}% %% args: size @@ -2459,9 +2453,7 @@ \setlength\photobook@imagecell@clearance@right{% \photobook@imagecell@clearencelist[3]}% \setlength\photobook@imagecell@clearance@top{% - \photobook@imagecell@clearencelist[4]}\fi% - % XXX LEGACY... - \setlength\photobook@imagecell@clearance{#1}}% + \photobook@imagecell@clearencelist[4]}\fi}% % offsettop= / offsetleft=... % XXX DOC!!! @@ -2511,12 +2503,10 @@ \cellwidth - \photobook@imagecell@clearance@left - \photobook@imagecell@clearance@right \relax, - %- ((\photobook@imagecell@clearance) * 2) \relax, height=\photobook@imagecell@scale\dimexpr \cellheight - \photobook@imagecell@clearance@top - \photobook@imagecell@clearance@bottom \relax]{#3}}% - %- ((\photobook@imagecell@clearance) * 2) \relax]{#3}}% % fill... \else\ifKV@imagecell@args@fill% % preload image to get its proportions... @@ -2537,7 +2527,6 @@ + \cellwidth - \photobook@imagecell@clearance@left - \photobook@imagecell@clearance@right \relax]{#3}}% - %- ((\photobook@imagecell@clearance) * 2) \relax]{#3}}% \else% \sbox{\photobook@imagebox}{% \includegraphics[% @@ -2546,7 +2535,6 @@ + \cellheight - \photobook@imagecell@clearance@top - \photobook@imagecell@clearance@bottom \relax]{#3}}% - %- ((\photobook@imagecell@clearance) * 2) \relax]{#3}}% \fi\fi\fi% % \setlength\celloffsetleft{% @@ -2589,14 +2577,11 @@ \maxdim{\celloffsetleft}{0pt}}% \setlength\celloffsettop{% \maxdim{\celloffsettop}{0pt}}% - % XXX EXPERIMENTAL CLEARANCE \setlength\clearanceleft{\photobook@imagecell@clearance@left} \setlength\clearancetop{\photobook@imagecell@clearance@top} \setlength\clearanceright{\photobook@imagecell@clearance@right} \setlength\clearancebottom{\photobook@imagecell@clearance@bottom} \def\clearances{\photobook@imagecell@clearences} - % XXX LEGACY CLEARANCE - %\setlength\clearance{\photobook@imagecell@clearance}% % clear parent... % XXX might be a good idea to put this into a special reusable cell... \ifphotobook@imagecell@captionclearparent% @@ -3055,10 +3040,12 @@ - \photobook@captionblockcell@spacing - \cellwidth - \clearcaption + % XXX EXPERIMENTAL CLEARANCE % XXX this is only present in images... - % XXX change this to use \clearanceleft / \clearanceright / ... + - \clearanceleft + %- \clearanceright % XXX LEGACY CLEARANCE - - \clearance + %- \clearance \relax% \else% \photobook@captionblockcell@width\fi}% @@ -4079,8 +4066,10 @@ % XXX EXPERIMENTAL \newenvironment{leftside*}{% \begin{leftside}% - \cliptocellbleeds{{\bleed} {\bleed} 0mm {\bleed}}% + \begin{cliptocell}[{\bleed} {\bleed} 0mm {\bleed}]% + \setcliptocellbleeds{{\bleed} {\bleed} 0mm {\bleed}}% }{% + \end{cliptocell} \end{leftside}} \newenvironment{rightside}{% @@ -4092,8 +4081,10 @@ % XXX EXPERIMENTAL \newenvironment{rightside*}{% \begin{rightside}% - \cliptocellbleeds{0mm {\bleed} {\bleed} {\bleed}}% + \begin{cliptocell}[0mm {\bleed} {\bleed} {\bleed}]% + \setcliptocellbleeds{0mm {\bleed} {\bleed} {\bleed}}% }{% + \end{cliptocell} \end{rightside}} @@ -4872,7 +4863,8 @@ %\clearpage% \begin{page}% % NOTE: this does not account for \bindingoffset... - \begin{pagecell}% + % XXX should this be a page or a paper cell??? + \begin{papercell}% \imagecell[% center, clearance=-\bleed, @@ -4881,7 +4873,7 @@ offsetleft=\imageoffsetleft, captionclearparent=\captionclearpage, #1]{#2}{#3}% - \end{pagecell}% + \end{papercell}% \end{page}% % special case: centered vertical image -> account for \bindingoffset... \else% @@ -5462,6 +5454,10 @@ %% %% This is a no-op for |layoutmode=block|. %% +%% To change text color set |\textcolor{}| the usual way and for +%% line and fill colors use |\textblockrulecolour{}| and +%% |\textblockcolour{}| respecitvely. +%% % XXX should digits/rounding be configurable??? \newcommand\photobook@TemplateCell[2][mm]{ \begin{center} diff --git a/macros/latex/contrib/photobook/photobook.pdf b/macros/latex/contrib/photobook/photobook.pdf index a51b6c384d..dc2338a141 100644 Binary files a/macros/latex/contrib/photobook/photobook.pdf and b/macros/latex/contrib/photobook/photobook.pdf differ diff --git a/macros/latex/contrib/spreadtab/README b/macros/latex/contrib/spreadtab/README index 2f7ffaf9f7..0ffd4c6082 100644 --- a/macros/latex/contrib/spreadtab/README +++ b/macros/latex/contrib/spreadtab/README @@ -1,9 +1,9 @@ L'extension spreadtab - v0.5 + v0.52 - 27 f\'evrier 2019 + 11 septembre 2023 Author : Christian Tellechea Email : unbonpetit@netc.fr (CT) @@ -13,14 +13,14 @@ Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt ---------------------------------------------------------------------- - R\'esum\'é + Résumé -Cette extension met \`a disposition des fonctionnalit\'es de tableur +Cette extension met à disposition des fonctionnalités de tableur dans les environnements tableaux de LaTeX. -Les cellules d'un tableau ont des coordonn\'ees repr\'esentant leur -ligne et colonne, et par cet interm\'ediaire, peuvent \^etre -ins\'er\'ees dans des formules pour g\'en\'erer des valeurs dans +Les cellules d'un tableau ont des coordonnées représentant leur +ligne et colonne, et par cet intermédiaire, peuvent être +insérées dans des formules pour générer des valeurs dans d'autres cellules. ---------------------------------------------------------------------- diff --git a/macros/latex/contrib/spreadtab/spreadtab-en.pdf b/macros/latex/contrib/spreadtab/spreadtab-en.pdf index 2c95a606f0..72e56b585d 100644 Binary files a/macros/latex/contrib/spreadtab/spreadtab-en.pdf and b/macros/latex/contrib/spreadtab/spreadtab-en.pdf differ diff --git a/macros/latex/contrib/spreadtab/spreadtab-en.tex b/macros/latex/contrib/spreadtab/spreadtab-en.tex index 5618aa8b1f..0852283314 100644 --- a/macros/latex/contrib/spreadtab/spreadtab-en.tex +++ b/macros/latex/contrib/spreadtab/spreadtab-en.tex @@ -1,14 +1,13 @@ +% !TeX TS-program = lualatex % Manual of the "spreadtab" package \documentclass[english,a4paper,10pt]{article} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} \usepackage[a4paper,margin=2.6cm]{geometry} \usepackage[table]{xcolor} \usepackage{amsmath,amssymb,textcomp,array,arydshln,tabularx,listings,numprint,xspace,fancyhdr,libertine,babel,enumitem,bxtexlogo} \bxtexlogoimport{*} \usepackage[xfp,fp]{spreadtab}\STusexfp \usepackage[italic]{mathastext} -\usepackage[scaled=0.8]{luximono} +\usepackage[scaled=0.8]{GoMono} \fancyhead[L]{} \fancyhead[C]{\small\bfseries\ST} \fancyhead[R]{\scriptsize\slshape \leftmark} @@ -148,7 +147,7 @@ where the options "\verb|fp|" or "\verb|xfp|" select the calculation engine. If \item the functions \verbinline|rand| and \verbinline|randint| are not available with the engine \xfp when compiling with an old version of \XeLaTeX{}. \end{itemize} -The package requires \eTeX, \LaTeXe{} format and the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fp/}{\fp} or \href{https://ctan.org/pkg/xfp}{\xfp} packages, which performs arithmetic on cell values. Also, the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/xstring/}{\texttt{\textbf{xstring}}} package is needed.\medskip +The package requires \eTeX, \LaTeXe{} format and the \href{https://ctan.org/pkg/fp}{\fp} or \href{https://ctan.org/pkg/xfp}{\xfp} packages, which performs arithmetic on cell values. Also, the \href{https://ctan.org/pkg/xstring}{\texttt{\textbf{xstring}}} package is needed.\medskip The package is compatible with \emph{all} tabular environments, and assumes that `\verb=&=' is used to delimit columns and `\verb-\\-' to end lines (but see page~\pageref{STeol}). This compatibility requirement led me to program \ST so that it works independently of the table environment. Thus, reading the table, processing and calculating the formulas is done \emph{before} the environment table `sees' the body of the table.\medskip @@ -183,7 +182,7 @@ After the work of \ST, we get a display as if we had written: Although having features resembling those of a spreadsheet with \LaTeX{} is appreciable, the 3 stages described above take time. The \ST environment leads to \emph{much slower compilation} than with a classical table. -Moreover, \ST \emph{cannot stand in for a spreadsheet program}. Indeed, it has very few features, and it does not provide visual assistance. This point may cause difficulty\footnote{I certify that, with use, this discomfort tends to disappear (if you do not work with huge tables, of course).} for big or complex tables. The syntax of \ST is also another difficulty. However, the advantage of this package is that it makes it possible to write \emph{in the \LaTeX{} code} tables involving calculation when these tables are usually exported\footnote{I mention the two main exportation programs: \href{http://calc2latex.sourceforge.net/}{\texttt{\textbf{cacl2latex}}} for `calc' (Open Office), and \href{http://www.ctan.org/tex-archive/support/excel2latex/}{\texttt{\textbf{excel2latex}}} for `excel' (Microsoft Office).} from a spreadsheet program to \LaTeX{} code. Consequently, it becomes possible to avoid the disadvantages of the exportation programs: fine tuning often necessary to obtain exactly what you want, exported tables containing the values only (formulas are lost when exportation is done), no compatibility with all types of environments, exportation must be started again if a single number or formula is modified in the table. +Moreover, \ST \emph{cannot stand in for a spreadsheet program}. Indeed, it has very few features, and it does not provide visual assistance. This point may cause difficulty\footnote{I certify that, with use, this discomfort tends to disappear (if you do not work with huge tables, of course).} for big or complex tables. The syntax of \ST is also another difficulty. However, the advantage of this package is that it makes it possible to write \emph{in the \LaTeX{} code} tables involving calculation when these tables are usually exported\footnote{I mention the two main exportation programs: \href{http://calc2latex.sourceforge.net/}{\texttt{\textbf{cacl2latex}}} for `calc' (Open Office), and \href{https://ctan.org/pkg/excel2latex}{\texttt{\textbf{excel2latex}}} for `excel' (Microsoft Office).} from a spreadsheet program to \LaTeX{} code. Consequently, it becomes possible to avoid the disadvantages of the exportation programs: fine tuning often necessary to obtain exactly what you want, exported tables containing the values only (formulas are lost when exportation is done), no compatibility with all types of environments, exportation must be started again if a single number or formula is modified in the table. \subsection{Motivation} A few months before I started to write this package, Derek \textsc{O'Connor} had pointed out that nothing was available in the world of \LaTeX{} packages to imitate --~even a little~-- the behaviour of spreadsheet programs. I found the challenge interesting and I started writing this package as a good programming exercise. @@ -256,7 +255,7 @@ a2 & a4+b4 & b4+c4 & c4+d4 & d4 \subsection{Relative references} To refer to a cell, it may be convenient to specify its position relative to where the formula is written. Thus, the relative coordinates of a cell are 2 relative numbers written using this syntax: \falseverb{[x,y]} where \falseverb x is the horizontal offset from the cell containing the formula and \falseverb y is the vertical offset. For example, \falseverb{[-2,3]} refers to the cell located 2 columns before (on the left) and 3 rows after (below) the cell where the formula is located. -Here is the same table as above but the references are relatives and the \verbinline-matrix- environment of the \href{http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/}{\texttt{\textbf{amsmath}}} package is used:\par\nobreak +Here is the same table as above but the references are relatives and the \verbinline-matrix- environment of the \href{https://ctan.org/pkg/amsmath}{\texttt{\textbf{amsmath}}} package is used:\par\nobreak \begin{minipage}{0.82\linewidth} \begin{lstlisting} $ @@ -508,11 +507,11 @@ When cells are in math mode, you can\footnote{It is preferable to use the \textt \end{minipage} \subsection{Number formatting and the \fp package} -With \verb|fp| option, all calculations are made by the \verb-\FPeval- macro\footnote{This macro accepts infix or postfix notation. Consequently, both can be used to write formulas in a cell. For example the infix formula `\falseverb{a1+b1}' is equivalent to the postfix ones `\falseverb{a1 b1 add}' or `\falseverb{a1 b1 +}'.} of the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fp/}{\fp} package. This package provides all necessary arithmetical functions along with various scientific and trigonometric functions. Calculations are made with 18 decimal digits of precision, and \fp displays \emph{all} the decimals! Without taking precautions, you can end up with a lot of numbers in the decimal parts of some results. This section is compiled with \verbinline|\STusefp|.\STusefp +With \verb|fp| option, all calculations are made by the \verb-\FPeval- macro\footnote{This macro accepts infix or postfix notation. Consequently, both can be used to write formulas in a cell. For example the infix formula `\falseverb{a1+b1}' is equivalent to the postfix ones `\falseverb{a1 b1 add}' or `\falseverb{a1 b1 +}'.} of the \href{https://ctan.org/pkg/fp}{\fp} package. This package provides all necessary arithmetical functions along with various scientific and trigonometric functions. Calculations are made with 18 decimal digits of precision, and \fp displays \emph{all} the decimals! Without taking precautions, you can end up with a lot of numbers in the decimal parts of some results. This section is compiled with \verbinline|\STusefp|.\STusefp The number of digits displayed can be controlled in various ways: \begin{itemize} - \item the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/numprint/}{\texttt{\textbf{numprint}}} package can be used in order to properly display numbers; + \item the \href{https://ctan.org/pkg/numprint}{\texttt{\textbf{numprint}}} package can be used in order to properly display numbers; \item \fp can round or truncate numbers with \verb-round(number,integer)- or \verb-trunc(number,integer)- but the syntax makes this tedious to write if this is needed for many cells; \item \ST can round \emph{all} the numbers in the table with the macro \verbinline-\STautoround- whose argument is number of digits in the decimal part. If the argument is empty, no rounding is done. If the starred macro \verbinline-\STautoround*- is used, the decimal part is filled with 0 as necessary (only with \fp). \end{itemize} @@ -597,8 +596,8 @@ For horizontal rules, it is possible to use:\par\nobreak \begin{itemize} \item \verb-\hline-; \item \verb=\cline{x-y}= where \falseverb x and \falseverb y define the start and the end of the rule; - \item \verb=\hhline{}= where \verb== is the type of rule (read the manual of the \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\texttt{\textbf{hhline}}} package). - \item any command of the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/booktabs/}{\texttt{\textbf{booktabs}}} package: \verb-\toprule-, \verb-\midrule-, \verb-\bottomrule-, \verb-\cmidrule-, \verb-\addlinespace-, \verb-\morecmidrule- and \verb-\specialrule-. All the arguments of these macros, optional or mandatory are taken into account; + \item \verb=\hhline{}= where \verb== is the type of rule (read the manual of the \href{https://ctan.org/pkg/hhline}{\texttt{\textbf{hhline}}} package). + \item any command of the \href{https://ctan.org/pkg/booktabs}{\texttt{\textbf{booktabs}}} package: \verb-\toprule-, \verb-\midrule-, \verb-\bottomrule-, \verb-\cmidrule-, \verb-\addlinespace-, \verb-\morecmidrule- and \verb-\specialrule-. All the arguments of these macros, optional or mandatory are taken into account; \item \verbinline-\noalign- and its mandatory argument can be written after \verb-\\-. \end{itemize} Example: @@ -813,7 +812,7 @@ In the following table, the sum of the binomial coefficients of Pascal's triangl \end{minipage}% \subsubsection{The \texttt{fact} macro} -The macro-function \verbinline=fact()= computes the factorial of its argument. With the engine \href{https://www.ctan.org/pkg/fp}{\fp}, the argument must be less than 19 to avoid overflows. The \falseverb{} can also be a reference to a cell whose numeric field contains an integer.\medskip +The macro-function \verbinline=fact()= computes the factorial of its argument. With the engine \href{https://ctan.org/pkg/fp}{\fp}, the argument must be less than 19 to avoid overflows. The \falseverb{} can also be a reference to a cell whose numeric field contains an integer.\medskip Here are the factorials from 0 to 8:\par\nobreak \begin{lstlisting} @@ -837,7 +836,7 @@ It should be used like this: \verbinline{sumprod(;;...;}= où \verb== est le type de ligne désirée (voir la documentation du package \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\texttt{\textbf{hhline}}}). - \item n'importe quelle commande du package \href{http://www.ctan.org/tex-archive/macros/latex/contrib/booktabs/}{\texttt{\textbf{booktabs}}}, à savoir \verb-\toprule-, \verb-\midrule-, \verb-\bottomrule-, \verb-\cmidrule-, \verb-\addlinespace-, \verb-\morecmidrule- et \verb-\specialrule-. Tous les arguments de ces macros, optionnels ou pas sont gérés; + \item \verb=\hhline{}= où \verb== est le type de ligne désirée (voir la documentation du package \href{https://ctan.org/pkg/hhline}{\texttt{\textbf{hhline}}}). + \item n'importe quelle commande du package \href{https://ctan.org/pkg/booktabs}{\texttt{\textbf{booktabs}}}, à savoir \verb-\toprule-, \verb-\midrule-, \verb-\bottomrule-, \verb-\cmidrule-, \verb-\addlinespace-, \verb-\morecmidrule- et \verb-\specialrule-. Tous les arguments de ces macros, optionnels ou pas sont gérés; \item \verbinline-\noalign- et son argument peuvent être placés après \verb-\\- et pris en compte. \end{itemize} Voici le triangle de Pascal inversé, et massacré pour l'exemple :\par\nobreak @@ -813,7 +812,7 @@ Les références relatives et absolues peuvent être utilisées conjointement, c \end{minipage}% \subsubsection{Macro-fonction \ttfamily fact} -La macro-fonction \verbinline=fact()= permet de calculer la factorielle de son argument. Avec le moteur de calcul \href{https://www.ctan.org/pkg/fp}{\fp} le nombre doit être un entier compris entre 0 et 18 inclus pour éviter des débordements. Le \falseverb{} peut aussi être une référence vers une cellule contenant un nombre entier. +La macro-fonction \verbinline=fact()= permet de calculer la factorielle de son argument. Avec le moteur de calcul \href{https://ctan.org/pkg/fp}{\fp} le nombre doit être un entier compris entre 0 et 18 inclus pour éviter des débordements. Le \falseverb{} peut aussi être une référence vers une cellule contenant un nombre entier. Voici les factorielles de 0 à 8 :\par\nobreak \begin{lstlisting} @@ -1449,7 +1448,7 @@ $Sx=:={a2+a3+a4}$ & $Sy=:={b2+b3+b4}$ & $Sx+Sy=:={}$\\\hline \end{center} Ces 3 tableaux de débogage peuvent aider à comprendre un peu mieux le fonctionnement interne de \ST. On peut observer dans le tableau 2 que toutes les cellules ayant un champ numérique ont un code interne de 1 ou 2 (voir tableau 3) et ont un marqueur de champ numérique "\verb-:=-" qui leur est associé (voir tableau 1). Ce marqueur représente l'endroit où sera inséré ---~par substitution~--- le résultat du calcul du champ numérique. C'est donc à partir des contenus des champs textuels du tableau 1 et par simple substitution, qu'une fois les champs numériques calculés, les cellules sont reconstituées pour donner celles du tableau final. -Dans les tableaux ci-dessus, les cellules contenant les coordonnées ne sont grisées que si le package \href{http://www.ctan.org/tex-archive/macros/latex/contrib/colortbl/}{\texttt{\textbf{colortbl}}} a été chargé. +Dans les tableaux ci-dessus, les cellules contenant les coordonnées ne sont grisées que si le package \href{https://ctan.org/pkg/colortbl}{\texttt{\textbf{colortbl}}} a été chargé. \section{Exemples} Voici quelques tableaux pour finir ! diff --git a/macros/latex/contrib/spreadtab/spreadtab.sty b/macros/latex/contrib/spreadtab/spreadtab.sty index 3ae130e9fa..acdac587e7 100644 --- a/macros/latex/contrib/spreadtab/spreadtab.sty +++ b/macros/latex/contrib/spreadtab/spreadtab.sty @@ -1,12 +1,11 @@ -% !TeX encoding = ISO-8859-1 % Ce fichier contient le code de l'extension "spreadtab" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \def\STname {spreadtab} % -\def\STver {0.5} % +\def\STver {0.52} % % % -\def\STdate {2019/02/27} % +\def\STdate {2023/09/11} % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % @@ -17,7 +16,7 @@ % Package URL: https://www.ctan.org/pkg/spreadtab % % Bug tracker: https://framagit.org/unbonpetit/spreadtab/issues % % Repository : https://framagit.org/unbonpetit/spreadtab/tree/master % -% Copyright : Christian Tellechea 2009-2019 % +% Copyright : Christian Tellechea 2009-2023 % % Licence : Released under the LaTeX Project Public License v1.3c % % or later, see http://www.latex-project.org/lppl.txt % % Files : 1) spreadtab.sty % @@ -30,9 +29,9 @@ \ProvidesPackage{spreadtab}[\STdate\space v\STver\space Spreadsheet features for table environments (CT)] \NeedsTeXFormat{LaTeX2e} \def\ST@cslet#1#2{\expandafter\let\expandafter#1\csname#2\endcsname} -\RequirePackage{xstring}[2013/07/29]% version ncessaire +\RequirePackage{xstring}[2013/07/29]% version nécessaire -% liste des fonctions dont l'argument est numrique +% liste des fonctions dont l'argument est numérique \def\ST@functions@with@num@arg{% id,fact,ifeq,ifgt,iflt,numtofrshortdate,numtoengshortdate,numtofrlongdate,gcd,lcm,% numtoenglongdate,numtofrmonth,numtoengmonth,numtofrday,numtoengday} @@ -40,20 +39,17 @@ % liste des fonctions dont l'argument est un texte \def\ST@functions@with@text@arg{frshortdatetonum,engshortdatetonum,englongdatetonum,frlongdatetonum,scitodec,tag,row,col,cell,value} -% liste des fonctions dont l'argument ne doit pas tre calcul +% liste des fonctions dont l'argument ne doit pas être calculé \def\ST@functions@no@calc@arg{ifeq,ifgt,iflt,gcd,lcm,value} -% liste des fonctions dont l'argument est une variable -> il ne faut donc pas aller chercher des rfrences dans l'argument +% liste des fonctions dont l'argument est une variable -> il ne faut donc pas aller chercher des références dans l'argument \def\ST@functions@with@assign@argument{tag,row,col,cell,value} -% liste des fonctions dont le rsultat est un texte +% liste des fonctions dont le résultat est un texte \def\ST@functions@with@textresult{% numtofrshortdate,numtoengshortdate,numtofrlongdate,numtoenglongdate,% numtofrmonth,numtoengmonth,numtofrday,numtoengday} -% liste totale des fonctions -%\edef\ST@functions@list{\ST@functions@with@range@arg,\ST@functions@with@num@arg,\ST@functions@with@text@arg} - \newif\if@fp \@fpfalse \newif\if@xfp\@xfpfalse \newif\if@STfpactive @@ -65,7 +61,7 @@ \ProcessOptions\relax \ifnum0\if@fp1\fi\if@xfp1\fi=0 \@fptrue\fi% charger fp si aucune option -\if@fp\expandafter\@firstofone\else\expandafter\@gobble\fi% car les \fi ne sont pas quilibrs +\if@fp\expandafter\@firstofone\else\expandafter\@gobble\fi% car les \fi ne sont pas équilibrés { \RequirePackage{fp}% \def\STusefp{% \let\STeval\FPeval @@ -77,15 +73,15 @@ \let\STdiv\FPdiv \def\STseed{\FPseed\number\time\number\day\number\month}% \let\STrandom\FPrandom - \let\STifzero\FPifzero - \let\STifgt\FPifgt - \let\STiflt\FPiflt - \let\STifeq\FPifeq - \let\STifint\FPifint + \def\STifzero##1{\FPifzero{##1}\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}% + \def\STifgt##1##2{\FPifgt{##1}{##2}\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}% + \def\STiflt##1##2{\FPiflt{##1}{##2}\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}% + \def\STifeq##1##2{\FPifeq{##1}{##2}\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}% + \def\STifint##1{\FPifint{##1}\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}% \def\STifneg##1{\STiflt{##1}{0}}% \def\ST@functions@with@range@arg{sum,randint,rand,sumprod}% liste des fonctions dont l'argument est une plage ou est vide \edef\ST@functions@list{\ST@functions@with@range@arg,\ST@functions@with@num@arg,\ST@functions@with@text@arg}% liste totale des fonctions - % Calcule la factorielle du nombre ##1 et met le rsultat dans la sc ##2 + % Calcule la factorielle du nombre ##1 et met le résultat dans la sc ##2 \def\ST@func@fact##1##2{% \edef##2{% \ifcase##1 1\or1\or2\or6\or24\or120\or720\or5040\or40320\or362880\or3628800\or39916800\or479001600\or @@ -112,10 +108,10 @@ \let\STseed\relax \def\STrandom##1{\edef##1{\fpeval{rand()}}} \ST@cslet\ST@iftrue{iftrue}\ST@cslet\ST@iffalse{iffalse} - \def\STifgt##1##2{\fp_compare:nNnTF{##1}>{##2}\ST@iftrue\ST@iffalse} - \def\STiflt##1##2{\fp_compare:nNnTF{##1}<{##2}\ST@iftrue\ST@iffalse} - \def\STifeq##1##2{\fp_compare:nNnTF{##1}={##2}\ST@iftrue\ST@iffalse} - \def\STifint ##1{\fp_compare:nNnTF{##1-trunc(##1,0)}={0}\ST@iftrue\ST@iffalse} + \def\STifgt##1##2{\fp_compare:nNnTF{##1}>{##2}} + \def\STiflt##1##2{\fp_compare:nNnTF{##1}<{##2}} + \def\STifeq##1##2{\fp_compare:nNnTF{##1}={##2}} + \def\STifint##1{\fp_compare:nNnTF{##1-trunc(##1,0)}={0}} \def\STifzero##1{\STifeq{##1}{0}} \def\STifneg##1{\STiflt{##1}{0}} \ifdefined\XeTeXrevision% si on compile avec XeLaTeX @@ -148,30 +144,111 @@ \newcount\ST@colcount@i \newcount\ST@rowcount \newcount\ST@rowcount@i -\newcount\ST@intpart +\newcount\ST@integerpart +\newcount\ST@decimalpart \newif\ifST@hiddencol \newif\ifST@debugmode \newif\ifST@colortblloaded \AtBeginDocument{\@ifpackageloaded{colortbl}\ST@colortblloadedtrue\ST@colortblloadedfalse} -% Dfinit le marqueur qui signale le commencement du champ numrique +% Définit le marqueur qui signale le commencement du champ numérique \def\STnumericfieldmarker{:=} -% Dfinit la macro qui va afficher les valeurs numriques dans le tableau +% Définit la macro qui va afficher les valeurs numériques dans le tableau \def\STprintnum#1{#1} -% Dfinit les caractres entre lesquels doivent entre enveloppes les rfrences des cellules +% Définit les caractères entre lesquels doivent entre enveloppées les références des cellules % que l'on veut afficher dans les champs textuels \def\STsetdisplaymarks#1#2{\def\ST@startdisplay{#1}\def\ST@enddisplay{#2}} -\STsetdisplaymarks{<<}{>>}% dlimiteurs par dfaut +\STsetdisplaymarks{<<}{>>}% délimiteurs par défaut -% dfinit le marqueur qui signale une cellule de texte +% définit le marqueur qui signale une cellule de texte \edef\STtextcell{\string @} -% Commande qui permet l'utilisateur de dfinir le caractre qui conserve une rfrence lors de la copie d'une formule +% Commande qui permet à l'utilisateur de définir le caractère qui conserve une référence lors de la copie d'une formule \AtBeginDocument{\def\STtransposecar{!}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Anciennes macros de xstring sinon spreadtab est cassé +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\edef\restoreunderscorecatcode{\catcode\number`\_ =\number\catcode`\_\relax} +\catcode`\_=11 +\long\def\ST@formatnumber#1#2{% + \xs_ifempty{#1}% + {\def#2{0X}% si vide, renvoie 0X + } + {\xs_returnfirstsyntaxunit{#1}\xs_reserved_A + \def\xs_reserved_B{+}% + \xs_ifx{\xs_reserved_A\xs_reserved_B} + {\xs_removefirstsyntaxunit{#1}\xs_reserved_C + \xs_exparg\xs_ifempty{\xs_reserved_C}% + {\def#2{+0X}} + {\xs_exparg{\def#2}{\expandafter+\expandafter0\xs_reserved_C}}% + } + {\def\xs_reserved_B{-}% + \xs_ifx{\xs_reserved_A\xs_reserved_B} + {\xs_removefirstsyntaxunit{#1}\xs_reserved_A + \xs_exparg\xs_ifempty{\xs_reserved_A}% + {\def#2{-0X}}% + {\xs_exparg{\def#2}{\expandafter-\expandafter0\xs_reserved_A}}% + } + {\def#2{0#1}% + }% + }% + }% +} +\def\ST@IfInteger#1{% + \expandafter\ST@formatnumber\expandafter{\expanded{#1}}\xs_reserved_A + \ST@decimalpart0 + \afterassignment\xs_defafterinteger\ST@integerpart\xs_reserved_A\relax\_nil + \let\xs_after_intpart\afterinteger + \expandafter\ST@testdot\afterinteger\_nil + \xs_ifx{\empty\afterdecimal} + {\xs_ifnum{\ST@decimalpart=0 } + {\xs_execfirst% partie décimale constituée de 0 --> seul cas où on renvoie vrai + } + {\expandafter\xs_defafterinteger\xs_after_intpart\relax\_nil + \xs_execsecond + }% + } + {\expandafter\xs_defafterinteger\xs_after_intpart\relax\_nil + \xs_execsecond + }% +} + +\def\ST@IfDecimal#1{% + \expandafter\ST@formatnumber\expandafter{\expanded{#1}}\xs_reserved_A + \ST@decimalpart0 + \afterassignment\xs_defafterinteger\ST@integerpart\xs_reserved_A\relax\_nil + \expandafter\ST@testdot\afterinteger\_nil + \xs_ifx{\empty\afterdecimal} +} + +\long\def\xs_defafterinteger#1\relax\_nil{\def\@xs@afterinteger{#1}\let\afterinteger\@xs@afterinteger} +\long\def\xs_defafterdecimal#1\_nil{\def\@xs@afterdecimal{#1}\let\afterdecimal\@xs@afterinteger} + +\def\ST@testdot{% + \let\xs_decsep\empty + \xs_ifnxttok. + {\def\xs_decsep{.}\ST@readdecimalpart}% + {\ST@testcomma}% +} + +\def\ST@testcomma{% + \xs_ifnxttok, + {\def\xs_dessep{,}\ST@readdecimalpart}% + {\xs_defafterdecimal}% +} + +\long\def\ST@readdecimalpart#1#2\_nil{% + \xs_ifempty{#2} + {\def\xs_reserved_A{0X}} + {\def\xs_reserved_A{0#2}}% + \afterassignment\xs_defafterinteger\ST@decimalpart\xs_reserved_A\relax\_nil + \expandafter\xs_defafterdecimal\afterinteger\_nil +} +\restoreunderscorecatcode %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Messages d'erreur %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -255,7 +332,7 @@ \def\ST@intarg@required{\PackageError\STname{Macro function randint require integer argument}\STseedoc@i} -% transforme la chaine de cellules "(1,3)(4,5)(3,2)(1,3)" rencontr en rfrence circulaire en "A3-D5-C2-A3" +% transforme la chaine de cellules "(1,3)(4,5)(3,2)(1,3)" rencontré en référence circulaire en "A3-D5-C2-A3" \def\ST@show@dependance@tree{% \ST@between\ST@dependance@tree()\ST@currentref \ST@right\ST@dependance@tree)\ST@dependance@tree @@ -267,7 +344,7 @@ \fi } -% transforme la squence de contrle #1 qui contient par exemple 4,5 en D5 +% transforme la séquence de contrôle #1 qui contient par exemple «4,5» en «D5» \def\ST@coord@toref#1{% \ST@split#1,\ST@temp@a#1% \edef#1{\ifcase\ST@temp@a\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M\or @@ -297,7 +374,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%% Macros de manipulation de chaines %%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\ST@gobble@remain{% mange tous jusqu' \ST@nil. Mthode LENTE privilgie car il peut y avoir des ) de catcode 2 isoles +\def\ST@gobble@remain{% mange tous jusqu'à \ST@nil. Méthode LENTE privilégiée car il peut y avoir des ) de catcode 2 isolées \afterassignment\ST@gobble@remain@i \let\ST@toks= } @@ -308,7 +385,7 @@ \expandafter\ST@splitatfirstcar@i#1\@nil } -% dans la sc #1, remplace le . par le sparateur dcimal +% dans la sc #1, remplace le . par le séparateur décimal \def\ST@substdecsep#1{% \ST@Ifinstr#1. {\expandafter\ST@substdecsep@i\expandafter#1\expandafter{\ST@decsep}} @@ -319,24 +396,24 @@ \expandafter\ST@substdecsep@ii#1\@nil } -% enlve tous les espaces de la sc #1 et assigne le rsultat #1 +% enlève tous les espaces de la sc #1 et assigne le résultat à #1 \def\ST@remove@firST@spaces#1{% \IfBeginWith#1\space {\StrGobbleLeft#11[#1]\ST@remove@firST@spaces{#1}}% {}% } -\def\ST@keep@firstcar#1{% on ne garde dans la sc #1 que le 1er caractre de la sc #1 ou on enlve les accolades +\def\ST@keep@firstcar#1{% on ne garde dans la sc #1 que le 1er caractère de la sc #1 ou on enlève les accolades \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter#1\expandafter\expandafter\expandafter{\expandafter\@car#1\@nil}% } -\def\ST@firstarg@after#1#2#3{% assigne la sc #3 l'argument qui suit #2 dans le dveloppement de la sc #1 +\def\ST@firstarg@after#1#2#3{% assigne à la sc #3 l'argument qui suit #2 dans le développement de la sc #1 \def\ST@firstarg@after@i##1#2##2##3\@nil{\def#3{##2}}% \expandafter\ST@firstarg@after@i#1\@nil } -\def\ST@thirdarg@after#1#2#3{% assigne la sc #3 le 3 argument qui suit #2 dans le dveloppement de la sc #1 +\def\ST@thirdarg@after#1#2#3{% assigne à la sc #3 le 3è argument qui suit #2 dans le développement de la sc #1 \def\ST@thirdarg@after@i##1#2##2##3##4##5\@nil{\def#3{##4}}% \expandafter\ST@thirdarg@after@i#1\@nil } @@ -348,7 +425,7 @@ \ST@Ifinstr@ii#1\@@nil#2\@nil } -% Est ce que la sc #1 commence par les caractres #2 ? +% Est ce que la sc #1 commence par les caractères #2 ? \def\ST@Iffirstis#1#2{% \expandafter\ST@Ifinstr@i\expandafter{#1}{#2}% {\def\ST@Iffirstis@i##1#2##2\@nil{% @@ -359,34 +436,34 @@ \expandafter\ST@Iffirstis@i#1\@@nil#2\@nil } -% Coupe la sc #1 au caractre #2 -% ce qui est avant est assign #3 et ce qui est aprs #4 +% Coupe la sc #1 au caractère #2 +% ce qui est avant est assigné à #3 et ce qui est après à #4 \def\ST@split#1#2#3#4{% \def\ST@split@i##1#2##2\@nil{\def#3{##1}\def#4{##2}}% \expandafter\ST@split@i#1\@nil } -% Dans la sc #1, assigne ce qui est avant le dveloppement de la sc #2 la sc #3 +% Dans la sc #1, assigne ce qui est avant le développement de la sc #2 à la sc #3 \def\ST@left#1#2#3{\ST@exp@two@args\ST@left@i{#1}{#2}#3} \def\ST@left@i#1#2#3{% \def\ST@left@ii##1#2##2\@nil{\def#3{##1}}% \ST@left@ii#1\@nil } -% Dans la sc #1, assigne ce qui est aprs le dveloppement de la sc #2 la sc #3 +% Dans la sc #1, assigne ce qui est après le développement de la sc #2 à la sc #3 \def\ST@right#1#2#3{\ST@exp@two@args\ST@right@i{#1}{#2}#3} \def\ST@right@i#1#2#3{% \def\ST@right@ii##1#2##2\@nil{\def#3{##2}}% \ST@right@ii#1\@nil } -% Dans la sc #1, assigne la sc #4 ce qui est entre les caractres #2 et #3 +% Dans la sc #1, assigne à la sc #4 ce qui est entre les caractères #2 et #3 \def\ST@between#1#2#3#4{% \def\ST@between@i##1#2##2#3##3\@nil{\def#4{##2}}% \expandafter\ST@between@i#1\@nil } -% Dans la sc #1, substitue la premire occurrence du pattern #2 par le pattern #3 +% Dans la sc #1, substitue la première occurrence du pattern #2 par le pattern #3 \def\ST@subST@once#1#2#3{% \def\ST@subST@once@i##1#2##2\@nil{\def#1{##1#3##2}}% \ST@Ifinstr#1{\@empty#2} @@ -426,11 +503,11 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Lecture du tableau %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% lit le tableau : considre que \\ spare les lignes +% lit le tableau : considère que \\ sépare les lignes \def\ST@read@tab{% \def\ST@total@colnumber{0}% \ST@rowcount\z@ - \ST@search@hline% on met de ct la (ou les) ligne suprieure du tableau + \ST@search@hline% on met de côté la (ou les) ligne supérieure du tableau \ST@read@tab@i } @@ -439,12 +516,12 @@ \ST@Ifinstr\ST@tab{\ST@eol}% si contient \\, il reste encore des lignes {\expandafter\ST@split\expandafter\ST@tab\expandafter{\ST@eol}\ST@current@row\ST@tab \@namedef{endrow@\number\ST@rowcount\expandafter}\expandafter{\ST@eol}% est la fin de cette ligne, pour l'instant - \ST@Iffirstis\ST@tab[% on prend en compte l'ventuel argument optionnel de \\ + \ST@Iffirstis\ST@tab[% on prend en compte l'éventuel argument optionnel de \\ {\ST@between\ST@tab[]\ST@temp@a% prend ce qui est entre crochet - \ST@Ifinstr\ST@temp@a,% si c'est une rfrence (on teste juste la prsence de la virgule, a devrait suffire) + \ST@Ifinstr\ST@temp@a,% si c'est une référence (on teste juste la présence de la virgule, ça devrait suffire) {}% on ne fait rien {\ST@split\ST@tab]\ST@temp@a\ST@tab% sinon, coupe au crocher fermant - \expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname{\ST@temp@a]}}% ajoute l'argument optionnel la fin de ligne + \expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname{\ST@temp@a]}}% ajoute l'argument optionnel à la fin de ligne }% {}% \ST@search@hline% on va purger les hlines et les mettre dans la fin de ligne @@ -455,11 +532,11 @@ \let\ST@next@readrows\ST@read@tab@i \fi }% - {\let\ST@current@row\ST@tab% plus de ligne ? on prend le tout c--d la ligne incomplte qui finit le tableau + {\let\ST@current@row\ST@tab% plus de ligne ? on prend le tout c-à-d la ligne incomplète qui finit le tableau \let\ST@next@readrows\relax \edef\ST@total@rownumber{\number\ST@rowcount}}% - \ST@Ifinstr\ST@current@row{\@empty\SThiderow}% il est demand de masquer la colonne ? - {\edef\ST@row@skiplist{(\number\ST@rowcount)\ST@row@skiplist}% on ajoute le numro de ligne masquer la skiplist + \ST@Ifinstr\ST@current@row{\@empty\SThiderow}% il est demandé de masquer la colonne ? + {\edef\ST@row@skiplist{(\number\ST@rowcount)\ST@row@skiplist}% on ajoute le numéro de ligne à masquer à la skiplist \StrDel\ST@current@row{\@empty\SThiderow}[\ST@current@row]% }% {}% @@ -481,20 +558,20 @@ \ifnum\ST@colcount>\ST@total@colnumber\edef\ST@total@colnumber{\number\ST@colcount}\fi }% \ST@Ifinstr\ST@current@cell{\@empty\SThidecol}% on doit masquer cette colonnes ? - {\ST@Ifinstr\ST@col@skiplist{\expandafter(\number\ST@colcount)}% a a dj t demand ? + {\ST@Ifinstr\ST@col@skiplist{\expandafter(\number\ST@colcount)}% ça a déjà été demandé ? {}% on fait rien - {\edef\ST@col@skiplist{(\number\ST@colcount)\ST@col@skiplist}% sinon -> ajout la skiplist + {\edef\ST@col@skiplist{(\number\ST@colcount)\ST@col@skiplist}% sinon -> ajout à la skiplist \ifnum\ST@colcount>\ST@laST@skipcol\edef\ST@laST@skipcol{\number\ST@colcount}\fi }% \StrDel\ST@current@cell{\@empty\SThidecol}[\ST@current@cell]% }% {}% \exploregroups - \ST@Ifinstr\ST@current@cell{\@empty\multicolumn}% tester la prsence d'un \multicol + \ST@Ifinstr\ST@current@cell{\@empty\multicolumn}% tester la présence d'un \multicol {\ST@firstarg@after\ST@current@cell\multicolumn\STmulticol@number}% {\let\STmulticol@number\@empty}% - \IfSubStr\ST@current@cell\STnumericfieldmarker% il y a un marqueur de champ numrique ? - {\IfSubStr\ST@current@cell{\@empty\STcopy}\ST@invalidSTcopy{}% s'il y a un \STcopy, erreur (pas de champ numrique et de \STcopy dans une mme cellule) + \IfSubStr\ST@current@cell\STnumericfieldmarker% il y a un marqueur de champ numérique ? + {\IfSubStr\ST@current@cell{\@empty\STcopy}\ST@invalidSTcopy{}% s'il y a un \STcopy, erreur (pas de champ numérique et de \STcopy dans une même cellule) \StrBehind\ST@current@cell\STnumericfieldmarker[\ST@current@formula]% \noexploregroups \StrChar\ST@current@formula1[\ST@temp@a]% \ST@temp@a contient {} par ":=" \noexploregroups - \ST@keep@firstcar\ST@temp@a% dans la formule, on enlve les accolades + \ST@keep@firstcar\ST@temp@a% dans la formule, on enlève les accolades \ST@removespaces\ST@temp@a% et tous les espaces \ifx\ST@temp@a\@empty% \ST@temp@a contient la formule : si la formule est vide \ifx\ST@copylist\@empty% pas de copylist ? - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% met le code 0 + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% met le code à 0 \else% si la copylist existe \ST@lookincopylist{\number\ST@colcount}{\number\ST@rowcount}\ST@celltocopy% on cherche si la cellule en cours est dans une plage de copie \ifx\ST@celltocopy\@empty - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% si c'est non, met le code 0 + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% si c'est non, met le code à 0 \StrDel[1]\ST@current@cell\STnumericfieldmarker[\ST@current@cell]% on supprime aussi ":=" \else - \ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@celltocopy% il y a une cellule copier : on l'assigne au champ numrique - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{1}% et on met le code 1 + \ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@celltocopy% il y a une cellule à copier : on l'assigne au champ numérique + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{1}% et on met le code à 1 \fi \fi \else% la formule n'est pas vide - \ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@temp@a% et on assigne la formule - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{1}% code 1 priori + \ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@temp@a% et on assigne à la formule + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{1}% code 1 à priori \fi - }% ci dessous, il n'y a pas de marqueur de champ numrique + }% ci dessous, il n'y a pas de marqueur de champ numérique {\IfSubStr\ST@current@cell\STtextcell% si c'est une cellule de texte {\StrDel\ST@current@cell\STtextcell[\ST@current@cell]% on le(s) supprime les flags - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% met le code 0 - }% ci dessous, ce n'est pas une cellule texte, c'est donc une cellule purement champ numrique sans marqueur + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% met le code à 0 + }% ci dessous, ce n'est pas une cellule texte, c'est donc une cellule purement champ numérique sans marqueur {\StrDel\ST@current@cell\space[\ST@temp@a]% \ifx\@empty\ST@temp@a% il n'y a que des espaces, c'est donc une cellule vide \ifx\ST@copylist\@empty% pas de copylist ? - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% met le code 0 + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% met le code à 0 \else% si la copylist existe \ST@lookincopylist{\number\ST@colcount}{\number\ST@rowcount}\ST@celltocopy% on cherche si la cellule en cours est dans un oplage de copie \ifx\ST@celltocopy\@empty - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% si c'est non, met le code 0 + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{0}% si c'est non, met le code à 0 \else - \let\ST@current@cell\STnumericfieldmarker% il y a une cellule copier ici - \ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@celltocopy% on l'assigne au champ numrique - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{1}% et on met le code 1 + \let\ST@current@cell\STnumericfieldmarker% il y a une cellule à copier ici + \ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@celltocopy% on l'assigne au champ numérique + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{1}% et on met le code à 1 \fi \fi - \else% ici, la cellule est compose d'une champ numrique sans marqueur - \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{1}% toute la cellule est considre comme champ numrique + \else% ici, la cellule est composée d'une champ numérique sans marqueur + \@namedef{code@\number\ST@colcount @\number\ST@rowcount}{1}% toute la cellule est considérée comme champ numérique \ST@remove@firST@spaces\ST@current@cell \ST@Ifinstr\ST@current@cell{\@empty\STcopy}% {\ST@findcopyargs\ST@current@cell\ST@copyrange\ST@copyformula% on chope les arguments de \STcopy - \ST@seekcopyoffset\ST@copyrange% cherche les dcalages - \edef\ST@copyrange{\ST@hoffest,\ST@voffest}% et affecte sous forme a,b o a et b sont des nombres ou sont vides - \expandafter\def\expandafter\ST@newtocopylist\expandafter{\expandafter|\ST@copyformula|}% \ST@newtocopylist est le nouvel lment ajouter la copylist + \ST@seekcopyoffset\ST@copyrange% cherche les décalages + \edef\ST@copyrange{\ST@hoffest,\ST@voffest}% et affecte sous forme a,b où a et b sont des nombres ou sont vides + \expandafter\def\expandafter\ST@newtocopylist\expandafter{\expandafter|\ST@copyformula|}% \ST@newtocopylist est le nouvel élément à ajouter à la copylist \ST@edefadd@tomacro\ST@newtocopylist{[\number\ST@colcount,\number\ST@rowcount]}% \ST@expadd@tomacro\ST@newtocopylist{\expandafter(\ST@copyrange)}% - \ST@expadd@tomacro\ST@newtocopylist\ST@copylist% ajoute la copylist la fin - \let\ST@copylist\ST@newtocopylist% et l'assigne copylist - \ST@transposeformula00\ST@copyformula\ST@copyformula% on transpose ventuellement pour grer les "!" - \ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@copyformula% affecte la formule inchange au champ numrique courant + \ST@expadd@tomacro\ST@newtocopylist\ST@copylist% ajoute la copylist à la fin + \let\ST@copylist\ST@newtocopylist% et l'assigne à copylist + \ST@transposeformula00\ST@copyformula\ST@copyformula% on transpose éventuellement pour gérer les "!" + \ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@copyformula% affecte la formule inchangée au champ numérique courant }% {\ST@letname{formula@\number\ST@colcount @\number\ST@rowcount}\ST@current@cell% et on assigne toute la cellule \let\ST@current@cell\STnumericfieldmarker% et on met le flag pour la formule @@ -568,7 +645,7 @@ \fi \ST@letname{text@\number\ST@colcount @\number\ST@rowcount}\ST@current@cell \unless\ifx\@empty\STmulticol@number% si c'est une cellule qui contient \multicolumn - \loop% on met tous les codes des cellules fusiones qui suivent la cellule en cours -1 + \loop% on met tous les codes des cellules fusionées qui suivent la cellule en cours à -1 \ifnum\STmulticol@number>\@ne \edef\STmulticol@number{\number\numexpr\STmulticol@number-1}% \advance\ST@colcount\@ne @@ -579,7 +656,7 @@ } % On va essayer de purger dans #1 toutes les \hline, \clines, \hhline etc, et ajouter tout ce beau monde -% et leur evntuels arguments dans des sc spciales (par ex \endrow@3 pour la fin de la 3e ligne.) +% et leur evéntuels arguments dans des sc spéciales (par ex \endrow@3 pour la fin de la 3e ligne.) \def\ST@search@hline{% \ST@ifvalid@csname{endrow@\number\ST@rowcount}% {} @@ -588,39 +665,39 @@ } \def\ST@search@hline@i{% - \ST@remove@firST@spaces\ST@tab% on enlve les espaces au dbut + \ST@remove@firST@spaces\ST@tab% on enlève les espaces au début \StrChar\ST@tab1[\ST@temp@a]% \ST@temp@a est le 1er car \let\ST@next\ST@search@hline@i - \IfStrEqCase\ST@temp@a{% on envisage tous les cas de trac de ligne horizontale + \IfStrEqCase\ST@temp@a{% on envisage tous les cas de tracé de ligne horizontale {\@empty\hline}{\StrGobbleLeft\ST@tab1[\ST@tab]\expandafter\STadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\hline}% {\@empty\cline}{\StrSplit\ST@tab2\ST@temp@a\ST@tab\expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a}% {\@empty\hhline}{\StrSplit\ST@tab2\ST@temp@a\ST@tab\expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a}% {\@empty\noalign}{\StrSplit\ST@tab2\ST@temp@a\ST@tab\expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a}% {\@empty\toprule}{% les commandes de booktabs - \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexme : la commande \toprule + \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexème : la commande \toprule \IfBeginWith\ST@tab[{\StrBefore\ST@tab][\ST@temp@b]\ST@expadd@tomacro\ST@temp@a{\ST@temp@b]}\StrBehind\ST@tab][\ST@tab]}{}% \expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a }% {\@empty\midrule}{% - \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexme : la commande \midrule + \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexème : la commande \midrule \IfBeginWith\ST@tab[{\StrBefore\ST@tab][\ST@temp@b]\ST@expadd@tomacro\ST@temp@a{\ST@temp@b]}\StrBehind\ST@tab][\ST@tab]}{}% \expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a }% {\@empty\bottomrule}{% - \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexme : la commande \bottomrule + \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexème : la commande \bottomrule \IfBeginWith\ST@tab[{\StrBefore\ST@tab][\ST@temp@b]\ST@expadd@tomacro\ST@temp@a{\ST@temp@b]}\StrBehind\ST@tab][\ST@tab]}{}% \expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a }% {\@empty\cmidrule}{% - \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexme : la commande \cmidrule + \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexème : la commande \cmidrule \IfBeginWith\ST@tab[{\StrBefore\ST@tab][\ST@temp@b]\ST@expadd@tomacro\ST@temp@a{\ST@temp@b]}\StrBehind\ST@tab][\ST@tab]}{}% \IfBeginWith\ST@tab({\StrBefore\ST@tab)[\ST@temp@b]\ST@expadd@tomacro\ST@temp@a{\ST@temp@b)}\StrBehind\ST@tab)[\ST@tab]}{}% \StrSplit\ST@tab1\ST@temp@b\ST@tab% chope l'argument obligatoire : {a-b} - \ST@expadd@tomacro\ST@temp@a\ST@temp@b% l'ajoute \ST@temp@b - \expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a% et on ajoute le tout endrow + \ST@expadd@tomacro\ST@temp@a\ST@temp@b% l'ajoute à \ST@temp@b + \expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a% et on ajoute le tout à endrow }% {\@empty\addlinespace}{% - \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexme : la commande \addlinespace + \StrSplit\ST@tab1\ST@temp@a\ST@tab% chope le 1er lexème : la commande \addlinespace \IfBeginWith\ST@tab[{\StrBefore\ST@tab][\ST@temp@b]\ST@expadd@tomacro\ST@temp@a{\ST@temp@b]}\StrBehind\ST@tab][\ST@tab]}{}% \expandafter\ST@expadd@tomacro\csname endrow@\number\ST@rowcount\endcsname\ST@temp@a }% @@ -630,9 +707,9 @@ \ST@next } -% Cette macro transpose toutes les rfrences (absolues et relatives) de la sc #3. -% Le dcalage est de #1 (nombre sign) pour les colonnes et de #2 (nombre sign) pour les lignes. -% La sc #4 recoit la formule transpose. +% Cette macro transpose toutes les références (absolues et relatives) de la sc #3. +% Le décalage est de #1 (nombre signé) pour les colonnes et de #2 (nombre signé) pour les lignes. +% La sc #4 recoit la formule transposée. \def\ST@transposeformula#1#2#3#4{% \def\STaddcol{#1}\def\STaddrow{#2}\let\ST@temp@formula#3% \let\ST@transposed@formula\@empty @@ -643,30 +720,30 @@ \def\ST@transposeformula@i{% \unless\ifx\@empty\ST@temp@formula% tant que l'on n'a pas parcouru \ST@temp@formula \ST@splitatfirstcar\ST@temp@formula\ST@firstcar\ST@temp@formula% prend le 1er car de \ST@temp@formula - \if\expandafter\noexpand\STtransposecar\expandafter\noexpand\ST@firstcar% si ce caractre est un ! + \if\expandafter\noexpand\STtransposecar\expandafter\noexpand\ST@firstcar% si ce caractère est un ! \let\STaddcol@\z@% pas de tranposition sur la colonne - \ST@splitatfirstcar\ST@temp@formula\ST@firstcar\ST@temp@formula% on prend le premier caractre qui suit le ! + \ST@splitatfirstcar\ST@temp@formula\ST@firstcar\ST@temp@formula% on prend le premier caractère qui suit le ! \else \let\STaddcol@\STaddcol% sinon, on copie le vecteur \fi \expandafter\ST@ifcar@isletter\expandafter{\ST@firstcar}% est-ce que le 1er car est une lettre ? - {\if\expandafter\noexpand\STtransposecar\expandafter\expandafter\expandafter\noexpand\expandafter\@car\ST@temp@formula\@nil% le caractre suivant est un "!" ? + {\if\expandafter\noexpand\STtransposecar\expandafter\expandafter\expandafter\noexpand\expandafter\@car\ST@temp@formula\@nil% le caractère suivant est un "!" ? \let\STaddrow@\z@% pas de tranposition sur la ligne - \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\ST@temp@formula\expandafter\expandafter\expandafter{\expandafter\@cdr\ST@temp@formula\@nil}% on prend ce qui est aprs le ! + \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\ST@temp@formula\expandafter\expandafter\expandafter{\expandafter\@cdr\ST@temp@formula\@nil}% on prend ce qui est après le ! \else \let\STaddrow@\STaddrow% sinon, on copie le vecteur \fi - \IfInteger\ST@temp@formula{}{}% on prend le nombre qui suit - \ifnum\integerpart>\z@% si ce nombre est plus grand que 0 -> rfrence valide - \let\ST@temp@formula\@xs@afterinteger% on prend ce qui est aprs le nombre + \ST@IfInteger\ST@temp@formula{}{}% on prend le nombre qui suit + \ifnum\ST@integerpart>\z@% si ce nombre est plus grand que 0 -> référence valide + \let\ST@temp@formula\@xs@afterinteger% on prend ce qui est après le nombre \expandafter\lowercase\expandafter{\expandafter\def\expandafter\ST@firstcar\expandafter{\ST@firstcar}}% met en minuscules - \edef\ST@firstcar{\number\numexpr\expandafter`\ST@firstcar-`a+1+\STaddcol@}% est le numro de la colonne + \edef\ST@firstcar{\number\numexpr\expandafter`\ST@firstcar-`a+1+\STaddcol@}% est le numéro de la colonne \ifnum\ST@firstcar<\@ne\ST@illegal@copy\fi% erreur de copie ? \ST@edefadd@tomacro\ST@transposed@formula{% \ifcase\ST@firstcar \or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\fi - \number\numexpr\integerpart+\STaddrow@}% - \ifnum\numexpr\integerpart+\STaddrow@<\@ne\ST@illegal@copy\fi% erreur de copie ? + \number\numexpr\ST@integerpart+\STaddrow@}% + \ifnum\numexpr\ST@integerpart+\STaddrow@<\@ne\ST@illegal@copy\fi% erreur de copie ? \else \let\ST@temp@formula\@xs@afterinteger \ST@expadd@tomacro\ST@transposed@formula\ST@firstcar @@ -674,24 +751,24 @@ }% {\if[\expandafter\noexpand\ST@firstcar% si le 1er car est [ \ST@left\ST@temp@formula]\ST@temp@ref% on prend ce qui est entre crochet - \ST@right\ST@temp@formula]\ST@temp@formula% pour la suite, on prend ce qui aprs le crochet + \ST@right\ST@temp@formula]\ST@temp@formula% pour la suite, on prend ce qui après le crochet \ST@left\ST@temp@ref,\ST@rel@num% ce qui est avant la virgule \if\expandafter\noexpand\STtransposecar\expandafter\expandafter\expandafter\noexpand\expandafter\@car\ST@rel@num\@nil% commence par un "!" ? \let\STaddcol@\STaddcol% compensation pour conserver la cellule initiale - \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\ST@rel@num\expandafter\expandafter\expandafter{\expandafter\@cdr\ST@rel@num\@nil}% on prend ce qui est aprs le ! + \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\ST@rel@num\expandafter\expandafter\expandafter{\expandafter\@cdr\ST@rel@num\@nil}% on prend ce qui est après le ! \else \let\STaddcol@\z@% sinon, on n'ajoute rien \fi - \IfInteger\ST@rel@num + \ST@IfInteger\ST@rel@num {\edef\STaddcol@{\number\numexpr\ST@rel@num-\STaddcol@}% - \ST@right\ST@temp@ref,\ST@rel@num% ce qui est aprs la virgule + \ST@right\ST@temp@ref,\ST@rel@num% ce qui est après la virgule \if\expandafter\noexpand\STtransposecar\expandafter\expandafter\expandafter\noexpand\expandafter\@car\ST@rel@num\@nil% commence par un "!"? \let\STaddrow@\STaddrow% on compense pour conserver la cellule initiale - \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\ST@rel@num\expandafter\expandafter\expandafter{\expandafter\@cdr\ST@rel@num\@nil}% on prend ce qui est aprs le ! + \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\ST@rel@num\expandafter\expandafter\expandafter{\expandafter\@cdr\ST@rel@num\@nil}% on prend ce qui est après le ! \else \let\STaddrow@\z@% sinon, on n'ajoute rien \fi - \IfInteger\ST@rel@num + \ST@IfInteger\ST@rel@num {\ST@edefadd@tomacro\ST@transposed@formula{[\STaddcol@,\number\numexpr\ST@rel@num-\STaddrow@]}% }% \ST@illegal@relativeref @@ -705,8 +782,8 @@ \fi } -% Cherche dans la sc #1 les 3 arguments qui se trouvent aprs \STcopy -% Affecte le 1er #2, le 2 #3 et le 3 #4 +% Cherche dans la sc #1 les 3 arguments qui se trouvent après \STcopy +% Affecte le 1er à #2, le 2è à #3 et le 3è à #4 \def\ST@findcopyargs#1#2#3{% \def\ST@argaftercopy##1\STcopy##2##3##4\@nil{% \def#1{##1}\ST@expadd@tomacro#1{\STnumericfieldmarker##4}% dans #1,supprime \STcopy{}{} et le remplace par := @@ -755,9 +832,9 @@ \ST@next } -% Regarde dans la liste de copie si la cellule de coodonnes #1 #2 est dans une plage de copie -% si oui, affecte #3 la formule transpose -% La liste de copy est parcourue de gauche droite avec sortie ds qu'une plage qui convient est rencontre +% Regarde dans la liste de copie si la cellule de coodonnées #1 #2 est dans une plage de copie +% si oui, affecte à #3 la formule transposée +% La liste de copy est parcourue de gauche à droite avec sortie dès qu'une plage qui convient est rencontrée \def\ST@lookincopylist#1#2#3{% \let\ST@alias@copylist\ST@copylist \let\ST@returnedformula\@empty @@ -780,26 +857,26 @@ \ST@next } -% Teste si un lment de la copylist contient une plage qui inclus la cellule en cours. +% Teste si un élément de la copylist contient une plage qui inclus la cellule en cours. \def\ST@testfirstincopylist|#1|[#2,#3](#4,#5)#6\@nil{% - \def\ST@alias@copylist{#6}% on enlve le premier lment de la copylist - \ST@Ifin\ST@copycol\ST@copyrow[#2,#3](#4,#5)% si a correspond + \def\ST@alias@copylist{#6}% on enlève le premier élément de la copylist + \ST@Ifin\ST@copycol\ST@copyrow[#2,#3](#4,#5)% si ça correspond {\def\ST@returnedformula{#1}% \ST@transposeformula{\numexpr\ST@copycol-#2}{\numexpr\ST@copyrow-#3}\ST@returnedformula\ST@returnedformula }% {\ifx\@empty#5\@empty\else \ifnum\ST@copyrow>\numexpr#3+#5\relax - \ST@subst\ST@copylist{|#1|[#2,#3](#4,#5)}{}% si on a dpass la ligne, on retire ce premier lment de la copylist + \ST@subst\ST@copylist{|#1|[#2,#3](#4,#5)}{}% si on a dépassé la ligne, on retire ce premier élément de la copylist \fi \fi }% } -% Cherche dans la sc#1 du type ">4,v9" les dcalages horizontaux et verticaux -% spcifis avec > et v -% S'il trouve > ou v sans nombre derrire, le dcalage correspondant est vide -% S'il ne trouve pas > ou v, le dcalage correspond est gal 0 -% Assigne les dcalages trouvs dans \ST@hoffest et \ST@voffest +% Cherche dans la sc#1 du type ">4,v9" les décalages horizontaux et verticaux +% spécifiés avec > et v +% S'il trouve > ou v sans nombre derrière, le décalage correspondant est vide +% S'il ne trouve pas > ou v, le décalage correspond est égal à 0 +% Assigne les décalages trouvés dans \ST@hoffest et \ST@voffest \def\ST@seekcopyoffset#1{% \ST@Ifinstr#1>% {\ST@findcopyoffest#1>\ST@hoffest}% @@ -816,7 +893,7 @@ } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%% Recherche d'une rfrence %%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%% Recherche d'une référence %%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % teste si le token #1 est une lettre (majuscule ou minuscule) \def\ST@ifcar@isletter#1{% @@ -828,8 +905,8 @@ \ifnum\numexpr(`#1-`a)*(`#1-`z)\relax>\z@\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi } -% cherche une rfrence du type lettre+nombre dans la sc #1 -% si on trouve, renvoie les coordonnes dans #2 sous la forme x@y +% cherche une référence du type lettre+nombre dans la sc #1 +% si on trouve, renvoie les coordonnées dans #2 sous la forme x@y % si on ne trouve pas, #2 est vide. \def\ST@findref@informula#1#2{% \let\ST@temp@formula#1% @@ -849,14 +926,14 @@ \else \StrSplit\ST@temp@formula1\ST@firstcar\ST@temp@formula% prend le 1er car de ce qui reste \expandafter\ST@ifcar@isletter\expandafter{\ST@firstcar}% est-ce que le 1er car est une lettre ? - {\IfInteger\ST@temp@formula{}{}% on prend le nombre qui suit - \ifnum\integerpart>\z@% si ce nombre est plus grand que 0 -> rfrence valide + {\ST@IfInteger\ST@temp@formula{}{}% on prend le nombre qui suit + \ifnum\ST@integerpart>\z@% si ce nombre est plus grand que 0 -> référence valide \let\ST@after@ref@found\@xs@afterinteger - \edef\ST@ref@found{\ST@firstcar\number\integerpart}% est la rfrence trouve - \edef\ST@distant@rownumber{\number\integerpart}% on chope ce nombre pour le numro de colonne + \edef\ST@ref@found{\ST@firstcar\number\ST@integerpart}% est la référence trouvée + \edef\ST@distant@rownumber{\number\ST@integerpart}% on chope ce nombre pour le numéro de colonne \edef\ST@distant@colnumber{\number\numexpr\expandafter`\ST@firstcar-`a+1}% traduction lettre->chiffre \ifnum\ST@distant@colnumber<\z@\edef\ST@distant@colnumber{\number\numexpr\ST@distant@colnumber+32}\fi% met les majuscules en minuscules - \edef\ST@temp@formula{\ST@distant@colnumber @\ST@distant@rownumber}% les coordonnes de la rfrence + \edef\ST@temp@formula{\ST@distant@colnumber @\ST@distant@rownumber}% les coordonnées de la référence \let\ST@next@search\relax \fi }% @@ -865,12 +942,12 @@ \ST@left\ST@temp@formula]\ST@temp@formula% on prend ce qui est entre crochet \expandafter\def\expandafter\ST@ref@found\expandafter{\expandafter[\ST@temp@formula]}% \ST@left\ST@temp@formula,\ST@rel@num - \IfInteger\ST@rel@num + \ST@IfInteger\ST@rel@num {\edef\ST@distant@colnumber{\number\numexpr\ST@current@colnumber+\ST@rel@num}% \ST@right\ST@temp@formula,\ST@rel@num - \IfInteger\ST@rel@num + \ST@IfInteger\ST@rel@num {\edef\ST@distant@rownumber{\number\numexpr\ST@current@rownumber+\ST@rel@num}% - \edef\ST@temp@formula{\ST@distant@colnumber @\ST@distant@rownumber}% les coordonnes de la rfrence + \edef\ST@temp@formula{\ST@distant@colnumber @\ST@distant@rownumber}% les coordonnées de la référence \let\ST@next@search\relax }% \ST@illegal@relativeref @@ -882,7 +959,7 @@ \ST@next@search } -% cette commande teste si la sc #1 est syntaxiquement une rfrence +% cette commande teste si la sc #1 est syntaxiquement une référence \def\ST@ifref#1{% \let\ST@temp@formula#1% \let\ST@ref@found\@empty @@ -900,19 +977,19 @@ } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%% Le noyau : valuation de toutes les cellules %%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% Le noyau : évaluation de toutes les cellules %%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Essaie de calculer la cellule (#1,#2) \def\ST@try@calc@cell(#1,#2){% - \ST@ifvalid@csname{formula@#1@#2}% on vrifie que la formule existe + \ST@ifvalid@csname{formula@#1@#2}% on vérifie que la formule existe {\expandafter\ifx\csname formula@#1@#2\endcsname\@empty - \@namedef{code@#1@#2}{0}% si vide, code 0 + \@namedef{code@#1@#2}{0}% si vide, code à 0 \else% et qu'elle est non vide \def\ST@current@colnumber{#1}\def\ST@current@rownumber{#2}% \expandafter\ST@find@firST@func\csname formula@#1@#2\endcsname% cherche une fonction dans la formule \ifx\@empty\ST@function@namefound% s'il n'y a pas de fonction \expandafter\ST@findref@informula\csname formula@#1@#2\endcsname\ST@coord - \ifx\@empty\ST@coord% ni de rfrence + \ifx\@empty\ST@coord% ni de référence \ST@calc@cell(#1,#2)% on va la calculer la cellule \fi \fi @@ -921,7 +998,7 @@ {}% } -\def\ST@calc@cell(#1,#2){% calcule la formule numrique de la cellule (#1,#2) +\def\ST@calc@cell(#1,#2){% calcule la formule numérique de la cellule (#1,#2) \unless\ifnum\csname code@#1@#2\endcsname<\@ne% si le code est >= 1 \ST@cslet\ST@temp@a{formula@#1@#2}% \ST@temp@a est le contenu de la formule \ST@Iffirstis\ST@temp@a-{\expandafter\def\expandafter\ST@temp@a\expandafter{\expandafter0\ST@temp@a}}{}% @@ -934,8 +1011,8 @@ \STtrunc\ST@temp@a\ST@temp@a\STrounddigit \fi \fi - \ST@letname{formula@#1@#2}\ST@temp@a% assigne le rsultat la formule - \@namedef{code@#1@#2}{2}% et met le code 2 (cellule calcule) + \ST@letname{formula@#1@#2}\ST@temp@a% assigne le résultat à la formule + \@namedef{code@#1@#2}{2}% et met le code à 2 (cellule calculée) \fi } @@ -963,7 +1040,7 @@ } % la sc #1 est le nom d'une fonction. -% La macro renvoie dans la sc #2 : 1, 2 ou 2 selon que #1 est le nom d'une macro argument numrique, argument plage ou argument texte. +% La macro renvoie dans la sc #2 : 1, 2 ou 2 selon que #1 est le nom d'une macro à argument numérique, à argument plage ou à argument texte. % #2 est vaut 0 si #1 n'est pas le nom d'une fonction \def\ST@determine@function@code#1#2{% \ST@Ifinstr{\ST@functions@with@num@arg,}{#1,}% @@ -977,12 +1054,12 @@ }% } -% value la cellule (#1#2) par ses coordonnes numriques (col,row) +% évalue la cellule (#1#2) par ses coordonnées numériques (col,row) \def\STeval@cell(#1,#2){% \edef\ST@dependance@tree{(#1,#2)}% FIXME : mettre \edef \let\ST@stackcall\@empty \let\ST@function@namesaved\@empty - \STeval@cell@i(#1,#2)% on appelle la macro rcursive + \STeval@cell@i(#1,#2)% on appelle la macro récursive \ifST@message \let\ST@deptree\@empty \ST@show@dependance@tree @@ -991,87 +1068,87 @@ \fi } -% Ceci est la macro principale : elle value la cellule (#1,#2) +% Ceci est la macro principale : elle évalue la cellule (#1,#2) \def\STeval@cell@i(#1,#2){% #1 = no colonne #2 = no ligne - \ifnum\csname code@#1@#2\endcsname=\@ne% on ne fait quelque chose que si le code est 1 : cellule non calcule + \ifnum\csname code@#1@#2\endcsname=\@ne% on ne fait quelque chose que si le code est 1 : cellule non calculée \def\ST@current@colnumber{#1}\def\ST@current@rownumber{#2}% \expandafter\ST@find@firST@func\csname formula@#1@#2\endcsname% cherche une fonction dans la formule \ifx\@empty\ST@function@namefound% il n'y a pas de fonction \IfSubStr[2]\ST@dependance@tree{(#1,#2)}% - {\edef\ST@coord{#1,#2}\ST@circular@reference}% message et on s'arrte si rfrence circulaire + {\edef\ST@coord{#1,#2}\ST@circular@reference}% message et on s'arrête si référence circulaire {}% - \expandafter\ST@findref@informula\csname formula@#1@#2\endcsname\ST@coord% y a t-il une rfrence dans l'argument ? - \ifx\ST@coord\@empty% pas de rfrence dans l'argument - \ifx\ST@function@namesaved\@empty% si aucune fonction n'a t dcele + \expandafter\ST@findref@informula\csname formula@#1@#2\endcsname\ST@coord% y a t-il une référence dans l'argument ? + \ifx\ST@coord\@empty% pas de référence dans l'argument + \ifx\ST@function@namesaved\@empty% si aucune fonction n'a été décelée \ST@calc@cell(#1,#2)% on calcule la cellule en cours \else - \ST@Ifinstr{\ST@functions@with@textresult,}{\ST@function@namesaved,}% si la dernire fonction rend du texte + \ST@Ifinstr{\ST@functions@with@textresult,}{\ST@function@namesaved,}% si la dernière fonction rend du texte {\ifx\ST@stackcall\@empty% et si on est dans la cellule source - \@namedef{code@#1@#2}{0}% on met le code 0, la cellule devient textuelle + \@namedef{code@#1@#2}{0}% on met le code à 0, la cellule devient textuelle \exploregroups \expandafter\StrSubstitute\expandafter[\expandafter\@ne\expandafter]\csname text@#1@#2\expandafter\endcsname\expandafter\STnumericfieldmarker\csname formula@#1@#2\expandafter\endcsname\expandafter[\csname text@#1@#2\endcsname]% copie de la formule vers la zone texte \noexploregroups \ST@letname{formula@#1@#2}\@empty% et plus rien dans la formule \else - \ST@calc@cell(#1,#2)% sinon, on se trouve dans une cellule appele par une macrofonction et donc, on la calcule + \ST@calc@cell(#1,#2)% sinon, on se trouve dans une cellule appelée par une macrofonction et donc, on la calcule \fi }% - {\ST@calc@cell(#1,#2)}% c'est une fonction qui donne un arg numrique : on calcule la cellule en cours + {\ST@calc@cell(#1,#2)}% c'est une fonction qui donne un arg numérique : on calcule la cellule en cours \fi \else \ST@ifvalid@csname{code@\ST@coord}% le code distant exite ? {\ifcase\csname code@\ST@coord\endcsname% code distant = 0 ==> cellule vide ou textuelle, pas bon du tout ! - \edef\ST@temp@callcell{#1,#2}% coordonnes de la cellule appelante - \edef\ST@coord{\ST@distant@colnumber,\ST@distant@rownumber}% coordonnes appeles - \ST@zerocodecell@cell% erreur : rfrence une cellule de code 0 + \edef\ST@temp@callcell{#1,#2}% coordonnées de la cellule appelante + \edef\ST@coord{\ST@distant@colnumber,\ST@distant@rownumber}% coordonnées appelées + \ST@zerocodecell@cell% erreur : référence à une cellule de code 0 \or% code distant = 1 - \edef\ST@dependance@tree{\ST@dependance@tree(\ST@distant@colnumber,\ST@distant@rownumber)}% on l'ajoute l'arbre des dpendances - % on doit valuer cette formule distante et ensuite, on doit encore recommence avec la formule en cours : on les ajoute sur la pile lifo + \edef\ST@dependance@tree{\ST@dependance@tree(\ST@distant@colnumber,\ST@distant@rownumber)}% on l'ajoute à l'arbre des dépendances + % on doit évaluer cette formule distante et ensuite, on doit encore recommence avec la formule en cours : on les ajoute sur la pile lifo \edef\ST@stackcall{(\ST@distant@colnumber,\ST@distant@rownumber)(#1,#2)\ST@stackcall}% - \or% code distant = 2, la cellule distante est calcule, on cr un alias pour le contenu de la formule distante + \or% code distant = 2, la cellule distante est calculée, on créé un alias pour le contenu de la formule distante \ST@cslet\ST@distant@formula{formula@\ST@coord}% - % si la valeur distante est <0, on la met entre parenthses + % si la valeur distante est <0, on la met entre parenthèses \ST@Iffirstis\ST@distant@formula-% {\expandafter\def\expandafter\ST@distant@formula\expandafter{\expandafter(\ST@distant@formula)}}% {}% - % on remplace toutes les rfrences par la valeur distante + % on remplace toutes les références par la valeur distante \expandafter\ST@expsubst\csname formula@#1@#2\endcsname{\ST@ref@found|}\ST@distant@formula - \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on value nouveau cette cellule + \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule \else% code distant n'est pas {0,1,2} donc est -1, pas bon du tout ! - \edef\ST@temp@callcell{#1,#2}% coordonnes de la cellule appelante - \ST@subst\ST@coord @,% coordonnes appeles + \edef\ST@temp@callcell{#1,#2}% coordonnées de la cellule appelante + \ST@subst\ST@coord @,% coordonnées appelées \STmulticol@cell \fi}% - {\edef\ST@temp@callcell{#1,#2}% coordonnes de la cellule appelante - \ST@subst\ST@coord @,% coordonnes appeles + {\edef\ST@temp@callcell{#1,#2}% coordonnées de la cellule appelante + \ST@subst\ST@coord @,% coordonnées appelées \ST@undefined@cell% code distant inexistant -> cellule hors limite du tableau }% \fi \else% il y a une fonction dans la formule \let\ST@function@namesaved\ST@function@namefound - \ST@determine@function@code\ST@function@namefound\ST@codefunc% dtermine le code de la fonction + \ST@determine@function@code\ST@function@namefound\ST@codefunc% détermine le code de la fonction \ifcase\ST@codefunc\relax \PackageError\STname{This error should not occur! Please email the author. Thanks.}{}% - \or% le code vaut 1, c'est une fonction argument numrique - \ST@findref@informula\ST@function@argfound\ST@temp@formula% y a t-il une rfrence dans l'argument de la formule ? - \ifx\ST@temp@formula\@empty% pas de rfrence dans l'argument de la fonction + \or% le code vaut 1, c'est une fonction à argument numérique + \ST@findref@informula\ST@function@argfound\ST@temp@formula% y a t-il une référence dans l'argument de la formule ? + \ifx\ST@temp@formula\@empty% pas de référence dans l'argument de la fonction \ST@cslet\ST@current@formula{formula@#1@#2}% alias pour la formule \let\ST@tobereplaced\ST@function@namefound - \ST@expadd@tomacro\ST@tobereplaced{\expandafter(\ST@function@argfound)}% ce qui va tre replac : fonction(argument) + \ST@expadd@tomacro\ST@tobereplaced{\expandafter(\ST@function@argfound)}% ce qui va être replacé : fonction(argument) \ST@Ifinstr{\ST@functions@no@calc@arg,}{\ST@function@namefound,}% doit-on calculer l'argument de cette fonction ? {}% {\STeval\ST@function@argfound\ST@function@argfound\STclip\ST@function@argfound\ST@function@argfound}% - \csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound\ST@result@func% puis on value la fonctionfound + \csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound\ST@result@func% puis on évalue la fonctionfound \ST@Iffirstis\ST@result@func-{\expandafter\def\expandafter\ST@result@func\expandafter{\expandafter(\ST@result@func)}}{}% \ST@expsubst\ST@current@formula\ST@tobereplaced\ST@result@func% on replace dans l'alias \ST@letname{formula@#1@#2}\ST@current@formula% on l'assigne dans la formule - \ifx\@empty\ST@current@formula% pour cause de macro fonction "tag" qui est seule et qui a disparue aprs substitution + \ifx\@empty\ST@current@formula% pour cause de macro fonction "tag" qui est seule et qui a disparue après substitution \@namedef{code@#1@#2}{0}% \else - \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on value nouveau cette cellule + \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule \fi \else - \ifnum\csname code@\ST@temp@formula\endcsname=\tw@% si la rfrence est calcule, on la replace par sa valeur + \ifnum\csname code@\ST@temp@formula\endcsname=\tw@% si la référence est calculée, on la replace par sa valeur \ST@cslet\ST@current@formula{formula@\ST@temp@formula}% alias pour la formule distante \ST@Iffirstis\ST@current@formula-% {\expandafter\def\expandafter\ST@current@formula\expandafter{\expandafter(\ST@current@formula)}}% @@ -1083,45 +1160,45 @@ \ST@subst\ST@tobereplaced|{}% \expandafter\ST@expsubst\csname formula@#1@#2\endcsname\ST@tobereplaced\ST@replaced \edef\ST@stackcall{(#1,#2)\ST@stackcall}% - \else% la rfrence n'est pas calcule, donc d'abord il faut - \edef\ST@stackcall{(\ST@distant@colnumber,\ST@distant@rownumber)(#1,#2)\ST@stackcall}% l'valuer, et ensuite r-evaluer la cellule courante - \edef\ST@dependance@tree{\ST@dependance@tree(\ST@distant@colnumber,\ST@distant@rownumber)}% mise jour de l'arbre des dpendances + \else% la référence n'est pas calculée, donc d'abord il faut + \edef\ST@stackcall{(\ST@distant@colnumber,\ST@distant@rownumber)(#1,#2)\ST@stackcall}% l'évaluer, et ensuite ré-evaluer la cellule courante + \edef\ST@dependance@tree{\ST@dependance@tree(\ST@distant@colnumber,\ST@distant@rownumber)}% mise à jour de l'arbre des dépendances \fi \fi - \or% le code vaut 2, c'est une fonction argument plage de cellules + \or% le code vaut 2, c'est une fonction à argument «plage de cellules» \let\ST@tobereplaced\ST@function@namefound\ST@expadd@tomacro\ST@tobereplaced{\expandafter(\ST@function@argfound)}% - \csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound\ST@result@func% puis on essaie d'valuer la fonction + \csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound\ST@result@func% puis on essaie d'évaluer la fonction \unless\ifx\ST@result@func\@empty% si le calcul a abouti \ST@Iffirstis\ST@result@func-{\expandafter\def\expandafter\ST@result@func\expandafter{\expandafter(\ST@result@func)}}{}% \expandafter\ST@expsubst\csname formula@#1@#2\endcsname\ST@tobereplaced\ST@result@func% on replace dans la formule - \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on value nouveau cette cellule + \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule \fi \or% le code vaut 3, c'est un fonction dont l'argument est textuel \let\ST@function@argfound@edefed\ST@function@argfound \ST@Ifinstr{\ST@functions@with@assign@argument,}{\ST@function@namefound,}% {\let\ST@temp@formula\@empty}% - {\ST@findref@informula\ST@function@argfound\ST@temp@formula}% y a t-il une rfrence dans l'argument de la fonction ? - \ifx\ST@temp@formula\@empty% pas de rfrence dans l'argument de la fonction + {\ST@findref@informula\ST@function@argfound\ST@temp@formula}% y a t-il une référence dans l'argument de la fonction ? + \ifx\ST@temp@formula\@empty% pas de référence dans l'argument de la fonction \ST@cslet\ST@current@formula{formula@#1@#2}% alias pour la formule \let\ST@tobereplaced\ST@function@namefound - \ST@expadd@tomacro\ST@tobereplaced{\expandafter(\ST@function@argfound)}% ce qui va tre remplac : fonction(argument) - \csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound@edefed\ST@result@func% puis on value la fonction + \ST@expadd@tomacro\ST@tobereplaced{\expandafter(\ST@function@argfound)}% ce qui va être remplacé : fonction(argument) + \csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound@edefed\ST@result@func% puis on évalue la fonction \ST@expsubst\ST@current@formula\ST@tobereplaced\ST@result@func% on replace dans l'alias \ST@letname{formula@#1@#2}\ST@current@formula% on l'assigne dans la formule - \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on value nouveau cette cellule - \else% il y a une rfrence dans l'argument de la fontion - \ifnum\csname code@\ST@temp@formula\endcsname=\z@% si la rfrence est une cellule texte + \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule + \else% il y a une référence dans l'argument de la fontion + \ifnum\csname code@\ST@temp@formula\endcsname=\z@% si la référence est une cellule texte \ST@cslet\ST@current@formula{text@\ST@temp@formula}% alias pour la zone texte distante - \StrDel[1]\ST@current@formula\STnumericfieldmarker[\ST@current@formula]% on enlve le := si besoin + \StrDel[1]\ST@current@formula\STnumericfieldmarker[\ST@current@formula]% on enlève le := si besoin \ST@Ifinstr\ST@current@formula{\@empty\multicolumn}% on ne prend que le texte s'il y a un \multicolumn qui traine {\ST@thirdarg@after\ST@current@formula\multicolumn\ST@current@formula} {}% \let\ST@tobereplaced\ST@function@namefound \ST@expadd@tomacro\ST@tobereplaced{\expandafter(\ST@function@argfound)}% \ST@subst\ST@tobereplaced|{}% - \csname ST@func@\ST@function@namefound\endcsname\ST@current@formula\ST@result@func% puis on value la fonction + \csname ST@func@\ST@function@namefound\endcsname\ST@current@formula\ST@result@func% puis on évalue la fonction \expandafter\ST@expsubst\csname formula@#1@#2\endcsname\ST@tobereplaced\ST@result@func - \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on value nouveau cette cellule + \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule \else \PackageError\STname{Macro function \ST@function@namefound\space requires a reference to a text cell!}\STseedoc@i \fi @@ -1133,7 +1210,7 @@ } % On regarde s'il y a des appels de calcul de cellules en attente -% Si oui, on enlve le 1er appel de la pile lifo et on l'excute +% Si oui, on enlève le 1er appel de la pile lifo et on l'exécute \def\ST@next@onstack{% \unless\ifx\ST@stackcall\@empty \ST@split\ST@stackcall)\ST@temp@a\ST@stackcall @@ -1144,7 +1221,7 @@ \fi } -\def\ST@sanitize@stack{% enlve de \ST@stackcall toutes les occurrences de \ST@temp@a +\def\ST@sanitize@stack{% enlève de \ST@stackcall toutes les occurrences de \ST@temp@a \ST@Ifinstr\ST@stackcall\ST@temp@a {\expandafter\ST@subst\expandafter\ST@stackcall\expandafter{\ST@temp@a}{}% \ST@sanitize@stack @@ -1156,14 +1233,14 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Macro-fonctions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\ST@for#1#2{% \ST@for{#1}{code} -> excute le code pour toutes les cellules des plages passes en argument #1 +\def\ST@for#1#2{% \ST@for{#1}{code} -> exécute le code pour toutes les cellules des plages passées en argument #1 \def\ST@forcode{#2}% \expandafter\def\expandafter\ST@for@rangelist\expandafter{#1;}% \ST@for@i } -\def\ST@for@loopcode{% #2 est le code excuter dans la boucle for - \ST@forcode% on excute le code +\def\ST@for@loopcode{% #2 est le code à exécuter dans la boucle for + \ST@forcode% on exécute le code \let\ST@nextfor\ST@for@loopcode \advance\ST@colcount@i\@ne \ifnum\ST@colcount@i>\ST@for@col@end @@ -1205,9 +1282,9 @@ \ST@nextfor } -% Cette macro cherche dans la sc #1 la premire fonction qu'elle trouve ne contenant pas d'autre fonction dans son argument -% En sortie, \ST@function@namefound contient le nom de la fonction trouve et \ST@function@argfound son argument. -% Si aucune fonction mot-cl n'est trouv, ces 2 dernires squences de contrles sont vides. +% Cette macro cherche dans la sc #1 la première fonction qu'elle trouve ne contenant pas d'autre fonction dans son argument +% En sortie, \ST@function@namefound contient le nom de la fonction trouvée et \ST@function@argfound son argument. +% Si aucune fonction mot-clé n'est trouvé, ces 2 dernières séquences de contrôles sont vides. \def\ST@find@firST@func#1{% \let\ST@function@namefound\@empty\let\ST@function@argfound\@empty \let\ST@function@namefound@\@empty\let\ST@function@argfound@\@empty @@ -1216,17 +1293,17 @@ } \def\ST@find@firST@func@i{% - \edef\ST@tempfunctions@list{\ST@functions@list,}% rinitialise la liste - \let\ST@tempfunc@\ST@tempfunc% sauveagrde pour restauration ultrieure - \let\ST@function@namefound\@empty% initialise avant appel la macro - \ST@Ifinstr\ST@tempfunc(% s'il y a une parenthse + \edef\ST@tempfunctions@list{\ST@functions@list,}% réinitialise la liste + \let\ST@tempfunc@\ST@tempfunc% sauveagrde pour restauration ultérieure + \let\ST@function@namefound\@empty% initialise avant appel à la macro + \ST@Ifinstr\ST@tempfunc(% s'il y a une parenthèse {\ST@find@firST@func@ii% cherche la 1ere fonction dans l'argument \ifx\ST@function@namefound\@empty% elle n'existe pas ? - \let\ST@function@namefound\ST@function@namefound@\let\ST@function@argfound\ST@function@argfound@% on restaure les valeurs prcdentes + \let\ST@function@namefound\ST@function@namefound@\let\ST@function@argfound\ST@function@argfound@% on restaure les valeurs précédentes \else% si il y a une fonction dans l'argument - \ST@right\ST@tempfunc@\ST@function@namefound\ST@tempfunc% prend ce qui est aprs le nom de la fonction - \ST@seekfunc@arg\ST@tempfunc\ST@function@argfound% isole l'argument entre parenthses - \let\ST@function@namefound@\ST@function@namefound\let\ST@function@argfound@\ST@function@argfound% met jour les valeurs prcdentes + \ST@right\ST@tempfunc@\ST@function@namefound\ST@tempfunc% prend ce qui est après le nom de la fonction + \ST@seekfunc@arg\ST@tempfunc\ST@function@argfound% isole l'argument entre parenthèses + \let\ST@function@namefound@\ST@function@namefound\let\ST@function@argfound@\ST@function@argfound% met à jour les valeurs précédentes \let\ST@tempfunc\ST@function@argfound% recommence avec l'argument \expandafter\ST@find@firST@func@i \fi}% @@ -1235,11 +1312,11 @@ \def\ST@find@firST@func@ii{% \unless\ifx\ST@tempfunc\@empty% tant que le contenu n'est pas vide - \unless\ifx\ST@tempfunctions@list\@empty% et tant que tous les noms de fonctions n'ont pas t explors + \unless\ifx\ST@tempfunctions@list\@empty% et tant que tous les noms de fonctions n'ont pas été explorés \ST@split\ST@tempfunctions@list,\ST@current@funcname\ST@tempfunctions@list \ST@Ifinstr\ST@tempfunc{\ST@current@funcname(}% si l'argument contient le nom de fonction courant {\let\ST@function@namefound\ST@current@funcname - \ST@left\ST@tempfunc{\ST@current@funcname(}\ST@tempfunc% on rduit l'argument ce qui est avant ce nom + \ST@left\ST@tempfunc{\ST@current@funcname(}\ST@tempfunc% on réduit l'argument à ce qui est avant ce nom }% {}% \expandafter\expandafter\expandafter\ST@find@firST@func@ii @@ -1247,25 +1324,25 @@ \fi } -% la sc #1 commence normalement (sinon, a va gueuler) par une parenthse -% La macro trouve l'argument se trouvant entre les parenthses les plus extrieures -% et l'assigne la sc #2 +% la sc #1 commence normalement (sinon, ça va gueuler) par une parenthèse +% La macro trouve l'argument se trouvant entre les parenthèses les plus extérieures +% et l'assigne à la sc #2 \def\ST@seekfunc@arg#1#2{% \begingroup - \everyeof{\ST@nil}% met un \@nil la fin du fichier virtuel + \everyeof{\ST@nil}% met un \@nil à la fin du fichier virtuel \endlinechar\m@ne \catcode\z@12 \catcode`(=1 \catcode`)=2 \afterassignment\ST@gobble@remain - \expandafter\def\expandafter\ST@temp@a\scantokens\expandafter{#1}% Attentionn !!! Il peut rester des ) non quilibres + \expandafter\def\expandafter\ST@temp@a\scantokens\expandafter{#1}% Attentionn !!! Il peut rester des ) non équilibrées \catcode`(=12 \catcode`)=12 \def\ST@assign@result##1\ST@nil{\endgroup\def#2{##1}}% \expandafter\ST@assign@result\scantokens\expandafter{\ST@temp@a}% on fait l'assignation } -\def\ST@func@sum#1#2{% #1 est la sc contenant la plage de valeurs, #2 est la sc recevant le rsultat - \def#2{0}% rsultat nul pour l'instant - \let\ST@temp@stack\@empty% pile d'appel temporaire vide aussi au dbut +\def\ST@func@sum#1#2{% #1 est la sc contenant la plage de valeurs, #2 est la sc recevant le résultat + \def#2{0}% résultat nul pour l'instant + \let\ST@temp@stack\@empty% pile d'appel temporaire vide aussi au début \ST@for{#1}% on parcourt la {\ifnum\numexpr10000*(\ST@colcount@i-\ST@current@colnumber)+\ST@rowcount@i-\ST@current@rownumber=\z@ \ST@invalid@range% si la cellule courante est dans la plage, erreur @@ -1274,21 +1351,21 @@ \or% code=1 \edef\ST@temp@stack{\ST@temp@stack(\number\ST@colcount@i,\number\ST@rowcount@i)}% \or% code=2 - \ifx\ST@temp@stack\@empty% on ne prend la peine d'additionner que si toutes les cellules sont calcules + \ifx\ST@temp@stack\@empty% on ne prend la peine d'additionner que si toutes les cellules sont calculées \expandafter\STadd\expandafter#2\expandafter#2\csname formula@\number\ST@colcount@i @\number\ST@rowcount@i\endcsname - \edef\ST@dependance@tree{\ST@dependance@tree(\number\ST@colcount@i,\number\ST@rowcount@i)}% mise jour de l'arbre des dpendances + \edef\ST@dependance@tree{\ST@dependance@tree(\number\ST@colcount@i,\number\ST@rowcount@i)}% mise à jour de l'arbre des dépendances \fi \fi }% - \ifx\ST@temp@stack\@empty% toutes les cellules dans la plage taient calcules ? - \STclip#2#2% on te les 0 inutiles si le calcul a t men au bout + \ifx\ST@temp@stack\@empty% toutes les cellules dans la plage étaient calculées ? + \STclip#2#2% on ôte les 0 inutiles si le calcul a été mené au bout \else \let#2\@empty - \edef\ST@stackcall{\ST@temp@stack(\ST@current@colnumber,\ST@current@rownumber)\ST@stackcall}% on met jour la pile d'appel + \edef\ST@stackcall{\ST@temp@stack(\ST@current@colnumber,\ST@current@rownumber)\ST@stackcall}% on met à jour la pile d'appel \fi } -\def\ST@func@sumprod#1#2{% #1 est la sc contenant la plage de valeurs, #2 est la sc recevant le rsultat +\def\ST@func@sumprod#1#2{% #1 est la sc contenant la plage de valeurs, #2 est la sc recevant le résultat \ST@left{#1;};\ST@firstmat \ST@right#1;\ST@othermat \ST@left\ST@firstmat{\@empty:}\ST@temp@a @@ -1300,7 +1377,7 @@ \edef\ST@matcol{\number\numexpr\ST@distant@colnumber-\ST@mat@firstcol}% \edef\ST@matrow{\number\numexpr\ST@distant@rownumber-\ST@mat@firstrow}% \ST@count\@ne - \loop% regarde si toutes les matrices ont la mme dimension que la 1ere et pour chacune, calcule les vecteurs de dcalage par rapport la premire + \loop% regarde si toutes les matrices ont la même dimension que la 1ere et pour chacune, calcule les vecteurs de décalage par rapport à la première \unless\ifx\ST@othermat\@empty \ST@left{\ST@othermat;};\ST@currentmat \ST@right{\ST@othermat;};\ST@othermat @@ -1318,15 +1395,15 @@ \unless\ifnum\ST@matrow=\ST@currentmatrow\ST@unmatch@matrixdim\fi% la dimension verticale ne correspond pas \advance\ST@count\@ne \repeat - \let\ST@temp@stack\@empty% pile d'appel temporaire vide au dbut - \edef\ST@numbermat{\number\ST@count}% c'est le nombre de matrices multiplier - \def#2{0}% rsultat nul pour l'instant + \let\ST@temp@stack\@empty% pile d'appel temporaire vide au début + \edef\ST@numbermat{\number\ST@count}% c'est le nombre de matrices à multiplier + \def#2{0}% résultat nul pour l'instant \ST@for{\ST@firstmat}% pour chaque cellule de la 1ere matrice - {\def\ST@inter@result{0}% rsultat partiel nul pour l'instant + {\def\ST@inter@result{0}% résultat partiel nul pour l'instant \ifcase\csname code@\number\ST@colcount@i @\number\ST@rowcount@i\endcsname \or% code =1 \edef\ST@temp@stack{\ST@temp@stack(\number\ST@colcount@i,\number\ST@rowcount@i)}% - \edef\ST@dependance@tree{\ST@dependance@tree(\number\ST@colcount@i,\number\ST@rowcount@i)}% mise jour de l'arbre des dpendances + \edef\ST@dependance@tree{\ST@dependance@tree(\number\ST@colcount@i,\number\ST@rowcount@i)}% mise à jour de l'arbre des dépendances \or% code=2 \ST@cslet\ST@inter@result{formula@\number\ST@colcount@i @\number\ST@rowcount@i}% \fi @@ -1334,95 +1411,96 @@ \loop% on multiplie tous les nombres qui se correspondent dans les matrices \edef\ST@tempcoord{\number\numexpr\ST@colcount@i+\csname ST@vectorcol@\romannumeral\ST@count\endcsname @\number\numexpr\ST@rowcount@i+\csname ST@vectorrow@\romannumeral\ST@count\endcsname}% \ifcase\csname code@\ST@tempcoord\endcsname - \def\ST@inter@result{0}% code =0 -> on met le rsultat partiel 0 + \def\ST@inter@result{0}% code =0 -> on met le résultat partiel à 0 \or% code =1 \ST@subst\ST@tempcoord @,% \edef\ST@temp@stack{\ST@temp@stack(\ST@tempcoord)}% - \edef\ST@dependance@tree{\ST@dependance@tree(\ST@tempcoord)}% mise jour de l'arbre des dpendances + \edef\ST@dependance@tree{\ST@dependance@tree(\ST@tempcoord)}% mise à jour de l'arbre des dépendances \or% code=2 \expandafter\STmul\expandafter\ST@inter@result\expandafter\ST@inter@result\csname formula@\ST@tempcoord\endcsname \else - \def\ST@inter@result{0}% code = autre -> on met le rsultat partiel 0 + \def\ST@inter@result{0}% code = autre -> on met le résultat partiel à 0 \fi \advance\ST@count\@ne \ifnum\ST@count<\ST@numbermat \repeat \STadd#2#2\ST@inter@result }% - \ifx\ST@temp@stack\@empty% toutes les cellules dans la plage taient calcules ? - \STclip#2#2% on te les 0 inutiles si le calcul a t men au bout + \ifx\ST@temp@stack\@empty% toutes les cellules dans la plage étaient calculées ? + \STclip#2#2% on ôte les 0 inutiles si le calcul a été mené au bout \else \let#2\@empty - \edef\ST@stackcall{\ST@temp@stack(\ST@current@colnumber,\ST@current@rownumber)\ST@stackcall}% on met jour la pile d'appel + \edef\ST@stackcall{\ST@temp@stack(\ST@current@colnumber,\ST@current@rownumber)\ST@stackcall}% on met à jour la pile d'appel \fi } \def\ST@func@id#1#2{\expandafter\def\expandafter#2\expandafter{#1}} \newif\ifST@gcd -\def\ST@arithmetic#1#2{% #1 est une liste de nombres spars par des virgules, #2 la sc qui reoit leur pgcd ou ppcm selon \ifST@gcd +\def\ST@arithmetic#1#2{% #1 est une liste de nombres séparés par des virgules, #2 la sc qui reçoit leur pgcd ou ppcm selon \ifST@gcd \ST@split{#1},#2\ST@argB - \ST@Ifinstr\ST@argB,{\ST@split\ST@argB,\ST@argB\ST@remain\let\ST@next\ST@arithmetic}{\let\ST@remain\@empty\let\ST@next\@gobbletwo}% + \ST@Ifinstr\ST@argB, + {\ST@split\ST@argB,\ST@argB\ST@remain\let\ST@next\ST@arithmetic} + {\let\ST@remain\@empty\let\ST@next\@gobbletwo}% \let\ST@argA#2% - \STeval\ST@argA\ST@argA\STeval\ST@argB\ST@argB% value les 2 nombres au cas o il y ait des oprations + \STeval\ST@argA\ST@argA\STeval\ST@argB\ST@argB% évalue les 2 nombres au cas où il y ait des opérations \STeval#2{trunc(abs(max(\ST@argB,\ST@argA)),0)}% \STeval\ST@argB{trunc(abs(min(\ST@argB,\ST@argA)),0)}% - \STifzero\ST@argB\else% si 0, on ignore puisque tous les nombres divisent 0 ou en sont leur multiple - \ifST@gcd\else\STmul\ST@argC#2\ST@argB\fi - \loop - \let\ST@argA\ST@argB - \STeval\ST@argB{trunc(#2-trunc(#2/\ST@argB,0)*\ST@argB,0)}% reste de la division #2/\ST@argB - \let#2\ST@argA - \STifzero\ST@argB\else - \repeat + \STifzero\ST@argB + {}% si 0, on ignore puisque tous les nombres divisent 0 ou en sont leur multiple + {\ifST@gcd\else\STmul\ST@argC#2\ST@argB\fi + \ST@arithmetic@i#2% \ifST@gcd\else\STeval#2{trunc(\ST@argC/#2,0)}\fi + }% + \ifST@gcd + \STifeq#21{\let\ST@next\@gobbletwo}{}% pour le pgcd, inutile de continuer si le pgcd est 1 \fi - \csname @\ifST@gcd firstofone\else gobble\fi\endcsname{\STifeq#21\let\ST@next\@gobbletwo\fi}% pour le pgcd, inutile de continuer si le pgcd est 1 \expandafter\expandafter\expandafter\ST@next\expandafter\expandafter\expandafter{\expandafter#2\expandafter,\ST@remain}#2% } - -\def\ST@func@gcd#1#2{% #1 est une liste de nombres spars par des virgules, #2 la sc qui reoit leur pgcd - \ST@gcdtrue\ST@arithmetic{#1}#2% +\def\ST@arithmetic@i#1{% + \let\ST@argA\ST@argB + \STeval\ST@argB{trunc(#1-trunc(#1/\ST@argB,0)*\ST@argB,0)}% reste de la division #2/\ST@argB + \let#1\ST@argA + \STifzero\ST@argB{}{\ST@arithmetic@i#1}% } -\def\ST@func@lcm#1#2{% #1 est une liste de nombres spars par des virgules, #2 la sc qui reoit leur ppcm - \ST@gcdfalse\ST@arithmetic{#1}#2% -} +\def\ST@func@gcd{\ST@gcdtrue\ST@arithmetic} +\def\ST@func@lcm{\ST@gcdfalse\ST@arithmetic} % la fonction randint -\def\ST@func@randint#1#2{% #1=sc contenant l'argument #2: sc recevant le rsultat +\def\ST@func@randint#1#2{% #1=sc contenant l'argument #2: sc recevant le résultat \ST@Ifinstr#1,% s'il y a 2 nombres -> intervalle [nb1;nb2] {\ST@split#1,\ST@limita\ST@limitb - \STifeq\ST@limita\ST@limitb\PackageError\STname{Macro function randint require two different numbers}\STseedoc@i\fi + \STifeq\ST@limita\ST@limitb{\PackageError\STname{Macro function randint require two different numbers}\STseedoc@i}% \STifgt\ST@limita\ST@limitb - \let\ST@temp@a\ST@limitb\let\ST@limitb\ST@limita\let\ST@limita\ST@temp@a - \fi - \STifint\ST@limita\else\ST@intarg@required\fi - \STifint\ST@limitb\else\ST@intarg@required\fi + {\let\ST@temp@a\ST@limitb\let\ST@limitb\ST@limita\let\ST@limita\ST@temp@a} + {}% + \STifint\ST@limita{}\ST@intarg@required + \STifint\ST@limitb{}\ST@intarg@required \STrandom#2% \STeval#2{trunc(trunc(#2*(\ST@limitb-\ST@limita+1),0)+\ST@limita,0)}% }% - {\STifint#1\else\ST@intarg@required\fi + {\STifint#1{}\ST@intarg@required \STrandom#2% s'il n'y a qu'un nombre -> intervalle [0;nb2] \STeval#2{trunc(#2*(#1+1),0)}% }% } -\def\ST@func@rand#1#2{\STrandom#2}% #1=sc contenant l'argument (ignor) #2: sc recevant le rsultat +\def\ST@func@rand#1#2{\STrandom#2}% #1=sc contenant l'argument (ignoré) #2: sc recevant le résultat \def\ST@genzeros#1{\if#1m0\expandafter\ST@genzeros\fi} -\def\ST@powerten#1#2{% gnre 10^abs(#1) dans la sc #2 +\def\ST@powerten#1#2{% génère 10^abs(#1) dans la sc #2 \edef#2{1\expandafter\ST@genzeros\romannumeral\number\ifnum#1<\z@-\fi#1000\relax}% } -\def\ST@func@scitodec#1#2{% #1=sc contenant l'argument #2: sc recevant le rsultat +\def\ST@func@scitodec#1#2{% #1=sc contenant l'argument #2: sc recevant le résultat \expandafter\lowercase\expandafter{\expandafter\def\expandafter#1\expandafter{#1}}% \ST@Ifinstr#1{ee}% on regarde s'il y a "ee" {\ST@split#1{ee}\ST@mantissa\ST@exposant \ST@powerten\ST@exposant\ST@tenpow \csname ST\ifnum\ST@exposant<\z@ div\else mul\fi\endcsname#2\ST@mantissa\ST@tenpow}% - {\IfDecimal#1% + {\ST@IfDecimal#1% {\let#2#1}% {\PackageError\STname{Illegal number in scitodec argument}\STseedoc@i}}% } @@ -1435,10 +1513,8 @@ \expandafter\ST@liST@offour#1\@nil \STeval\ST@argA\ST@argA\STeval\ST@argB\ST@argB \csname STif#3\endcsname\ST@argA\ST@argB - \let#2\ST@argC - \else - \let#2\ST@argD - \fi + {\let#2\ST@argC} + {\let#2\ST@argD}% } \def\ST@func@ifeq#1#2{\ST@def@funcif#1#2{eq}} @@ -1446,7 +1522,7 @@ \def\ST@func@iflt#1#2{\ST@def@funcif#1#2{lt}} % Transforme une date en nombre -\def\STdatetonum#1#2#3#4{% #1=sc recevant le rsultat #2=jj #3=mm #4=aa +\def\STdatetonum#1#2#3#4{% #1=sc recevant le résultat #2=jj #3=mm #4=aa \STeval#1{#3+9-12*trunc((#3+9)/12,0)}% \STeval\ST@@@year{#4-trunc(#1/10,0)}% \STeval#1{365*\ST@@@year+trunc(\ST@@@year/4,0)-trunc(\ST@@@year/100,0)+trunc(\ST@@@year/400,0)+trunc((#1*306+5)/10,0)+#2-1}% @@ -1454,13 +1530,14 @@ } % Transforme un nombre en une date -\def\ST@numtodate#1#2#3#4{% #1=nombre reprsentant la date #2=jour #3=mois #4=anne +\def\ST@numtodate#1#2#3#4{% #1=nombre représentant la date #2=jour #3=mois #4=année \STeval#4{trunc((10000*#1+14780)/3652425,0)}% \STeval#2{#1-(365*#4+trunc(#4/4,0)-trunc(#4/100,0)+trunc(#4/400,0))}% \STiflt{#2}0% - \STadd#4#4{-1}% - \STeval#2{#1-(365*#4+trunc(#4/4,0)-trunc(#4/100,0)+trunc(#4/400,0))}% - \fi + {\STadd#4#4{-1}% + \STeval#2{#1-(365*#4+trunc(#4/4,0)-trunc(#4/100,0)+trunc(#4/400,0))} + } + {}% \STeval#3{trunc((100*#2+52)/3060,0)}% \STeval#4{#4+trunc((#3+2)/12,0)}\STclip#4#4% \STeval#2{#2-trunc((#3*306+5)/10,0)+1}\STclip#2#2% @@ -1471,89 +1548,89 @@ \def\ST@parse@dateeng#1/#2/#3\@nil{\def\ST@@@day{#3}\def\ST@@@month{#2}\def\ST@@@year{#1}} -% transforme une date franaise courte du type jj/mm/aaaa en nombre -\def\ST@func@frshortdatetonum#1#2{% #1=sc tant l'argument jj/mm/aaaa #2=sc recevant le rsultat +% transforme une date française courte du type jj/mm/aaaa en nombre +\def\ST@func@frshortdatetonum#1#2{% #1=sc étant l'argument jj/mm/aaaa #2=sc recevant le résultat \expandafter\ST@parse@datefr#1\@nil \STdatetonum#2\ST@@@day\ST@@@month\ST@@@year } -% Transforme un nombre en une date franaise de type jj/mm/aaaa -\def\ST@func@numtofrshortdate#1#2{% % #1=nombre reprsentant la date #2=sc recevant le rsultat +% Transforme un nombre en une date française de type jj/mm/aaaa +\def\ST@func@numtofrshortdate#1#2{% % #1=nombre représentant la date #2=sc recevant le résultat \ST@numtodate#1\ST@@@day\ST@@@month\ST@@@year \edef#2{\ST@@@day/\ST@@@month/\ST@@@year}% } -% Transforme un nombre en une date longue franaise du type 14 juillet 1789 -\def\ST@func@numtofrlongdate#1#2{% % #1=nombre reprsentant la date #2=sc recevant le rsultat +% Transforme un nombre en une date longue française du type «14 juillet 1789» +\def\ST@func@numtofrlongdate#1#2{% % #1=nombre représentant la date #2=sc recevant le résultat \ST@numtodate#1\ST@@@day\ST@@@month\ST@@@year \edef#2{\ST@@@day\space\ifcase\ST@@@month\or janvier\or f\'evrier\or mars\or avril\or mai\or juin\or juillet\or ao\^ut\or septembre\or octobre \or novembre\or d\'ecembre\fi\space\ST@@@year}% } -% Extrait d'un nombre reprsentant une date le mois en toutes lettres en franais -\def\ST@func@numtofrmonth#1#2{% % #1=nombre reprsentant la date #2=sc recevant le rsultat +% Extrait d'un nombre représentant une date le mois en toutes lettres en français +\def\ST@func@numtofrmonth#1#2{% % #1=nombre représentant la date #2=sc recevant le résultat \ST@numtodate#1\ST@@@day\ST@@@month\ST@@@year \edef#2{\ifcase\ST@@@month\or janvier\or f\'evrier\or mars\or avril\or mai\or juin\or juillet\or ao\^ut\or septembre\or octobre \or novembre\or d\'ecembre\fi}% } -% Extrait d'un nombre repsentant une date le nom du jour en franais -\def\ST@func@numtofrday#1#2{% % #1=nombre reprsentant la date #2=sc recevant le rsultat +% Extrait d'un nombre repésentant une date le nom du jour en français +\def\ST@func@numtofrday#1#2{% % #1=nombre représentant la date #2=sc recevant le résultat \STeval\ST@@@day{#1-7*trunc(#1/7,0)}\STclip\ST@@@day\ST@@@day \edef#2{\ifcase\ST@@@day mercredi\or jeudi\or vendredi\or samedi\or dimanche\or lundi\or mardi\fi} } % transforme une date anglaise courte du type aaaa/mm/jj en nombre -\def\ST@func@engshortdatetonum#1#2{% #1=sc tant l'argument aaaa/mm/jj #2=sc recevant le rsultat +\def\ST@func@engshortdatetonum#1#2{% #1=sc étant l'argument aaaa/mm/jj #2=sc recevant le résultat \expandafter\ST@parse@dateeng#1\@nil \STdatetonum#2\ST@@@day\ST@@@month\ST@@@year } % Transforme un nombre en une date anglaise de type aaaa/mm/jj -\def\ST@func@numtoengshortdate#1#2{% % #1=nombre reprsentant la date #2=sc recevant le rsultat +\def\ST@func@numtoengshortdate#1#2{% % #1=nombre représentant la date #2=sc recevant le résultat \ST@numtodate#1\ST@@@day\ST@@@month\ST@@@year \edef#2{\ST@@@year/\ST@@@month/\ST@@@day} } -% Transforme un nombre en une date longue anglaise du type July 14, 1789 -\def\ST@func@numtoenglongdate#1#2{% % #1=nombre reprsentant la date #2=sc recevant le rsultat +% Transforme un nombre en une date longue anglaise du type «July 14, 1789» +\def\ST@func@numtoenglongdate#1#2{% % #1=nombre représentant la date #2=sc recevant le résultat \ST@numtodate#1\ST@@@day\ST@@@month\ST@@@year \edef#2{\ifcase\ST@@@month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi\space\ST@@@day,\space\ST@@@year}% } -% Extrait d'un nombre reprsentant une date le mois en toutes lettres en anglais -\def\ST@func@numtoengmonth#1#2{% % #1=nombre reprsentant la date #2=sc recevant le rsultat +% Extrait d'un nombre représentant une date le mois en toutes lettres en anglais +\def\ST@func@numtoengmonth#1#2{% % #1=nombre représentant la date #2=sc recevant le résultat \ST@numtodate#1\ST@@@day\ST@@@month\ST@@@year \edef#2{\ifcase\ST@@@month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi}% } -% Extrait d'un nombre repsentant une date le nom du jour en anglais -\def\ST@func@numtoengday#1#2{% % #1=nombre reprsentant la date #2=sc recevant le rsultat +% Extrait d'un nombre repésentant une date le nom du jour en anglais +\def\ST@func@numtoengday#1#2{% % #1=nombre représentant la date #2=sc recevant le résultat \STeval\ST@@@day{#1-7*trunc(#1/7,0)}\STclip\ST@@@day\ST@@@day \edef#2{\ifcase\ST@@@day wednesday\or thursday\or friday\or saturday\or sunday\or monday\or tuesday\fi} } -% Teste si la date contenue dans les 3 sc #1 (jour) #2(mois) #3(anne) est valide. Sinon, envoie un message d'erreur +% Teste si la date contenue dans les 3 sc #1 (jour) #2(mois) #3(année) est valide. Sinon, envoie un message d'erreur \def\ST@teST@date@validity#1#2#3{% - \IfInteger#1{}\ST@invalid@date - \IfInteger#2{}\ST@invalid@date - \IfInteger#3{}\ST@invalid@date + \ST@IfInteger#1{}\ST@invalid@date + \ST@IfInteger#2{}\ST@invalid@date + \ST@IfInteger#3{}\ST@invalid@date \ifnum#2<\@ne\ST@invalid@date\fi \ifnum#2>12 \ST@invalid@date\fi \ifnum#1<\@ne\ST@invalid@date\fi \ifnum#1>\ifcase#2\or31\or29\or31\or30\or31\or30\or31\or31\or30\or31\or30\or31\fi\ST@invalid@date\fi - \ifnum#3<\@ne\ST@invalid@date\fi% on va s'arrter JC quand mme :-) + \ifnum#3<\@ne\ST@invalid@date\fi% on va s'arrêter à JC quand même :-) } -% Transforme une date anglaise longue du type July 14, 1789 en un nombre -\def\ST@func@englongdatetonum#1#2{% #1=sc contenant la date longue #2=sc recevant le rsultat +% Transforme une date anglaise longue du type «July 14, 1789» en un nombre +\def\ST@func@englongdatetonum#1#2{% #1=sc contenant la date longue #2=sc recevant le résultat \ST@analyse@text@engdate#1\ST@@@day\ST@@@month\ST@@@year \STdatetonum#2\ST@@@day\ST@@@month\ST@@@year } -\def\ST@analyse@text@engdate#1#2#3#4{% #1=texte reprsentant la date #2=jour #3=n mois #4=anne +\def\ST@analyse@text@engdate#1#2#3#4{% #1=texte représentant la date #2=jour #3=n° mois #4=année \ST@remove@firST@spaces#1% \def\ST@today{\today}% \ifx#1\ST@today @@ -1578,33 +1655,33 @@ }[\def#3{-1}]% \ST@right#1\space#2% \ST@Ifinstr#2,{\ST@split#2,#2#4}{\ST@split#2{ }#2#4}% - \IfInteger#2{}{\edef#2{\number\integerpart}}% + \ST@IfInteger#2{}{\edef#2{\number\ST@integerpart}}% \ST@removespaces#4% \ST@teST@date@validity#2#3#4% \fi } -% Transforme une date anglaise longue du type 14 juillet 1789 en un nombre -\def\ST@func@frlongdatetonum#1#2{% #1=sc contenant la date longue #2=sc recevant le rsultat +% Transforme une date anglaise longue du type «14 juillet 1789» en un nombre +\def\ST@func@frlongdatetonum#1#2{% #1=sc contenant la date longue #2=sc recevant le résultat \ST@analyse@text@frdate#1\ST@@@day\ST@@@month\ST@@@year \STdatetonum#2\ST@@@day\ST@@@month\ST@@@year } \def\ST@utfencoding{utf8} -\def\ST@analyse@text@frdate#1#2#3#4{% #1=texte reprsentant la date #2=jour #3=n mois #4=anne +\def\ST@analyse@text@frdate#1#2#3#4{% #1=texte représentant la date #2=jour #3=n° mois #4=année \ST@remove@firST@spaces#1% \def\ST@today{\today}% \ifx#1\ST@today \edef#2{\number\day}\edef#3{\number\month}\edef#4{\number\year}% \else \ST@split#1{ }#2#3% - \IfInteger#2{}{\edef#2{\number\integerpart}}% + \ST@IfInteger#2{}{\edef#2{\number\ST@integerpart}}% \ST@split#3{ }#3#4% \ST@removespaces#3% - \def\ST@e{^^e9}\def\ST@u{^^fb}% et en latin1 + \def\ST@e{^^e9}\def\ST@u{^^fb}% é et û en latin1 \ifdefined\inputencodingname\ifx\ST@utfencoding\inputencodingname - \def\ST@e{^^c3^^a9}\def\ST@u{^^c3^^bb}% et en utf8 + \def\ST@e{^^c3^^a9}\def\ST@u{^^c3^^bb}% é et û en utf8 \fi\fi \expandafter\ST@subst\expandafter#3\expandafter{\ST@e}e\ST@subst#3\'{}% \expandafter\ST@subst\expandafter#3\expandafter{\ST@u}u\ST@subst#3\^{}% @@ -1657,6 +1734,10 @@ \def#2{0}% use 0 if tag undefined \fi } + +\def\ST@func@exp#1#2{% + +} % \def\ST@func@timetosec#1#2{% % \ST@left{#1}:\ST@nb@hours % \ST@right{#1}:\ST@nb@min @@ -1680,9 +1761,9 @@ % } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%% Construction du tableau afficher %%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% Construction du tableau à afficher %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\ST@search@lastshowcol{% cherche le numro de la dernire colonne non masque +\def\ST@search@lastshowcol{% cherche le numéro de la dernière colonne non masquée \ST@colcount\ST@total@colnumber% on commence par la fin \ST@search@lastshowcol@i } @@ -1693,20 +1774,20 @@ {\edef\ST@lastshowcol{\number\ST@colcount}}% } -% cherche "<>" dans la sc #1 et remplace toutes ces occurences par le champ numrique de "ref" +% cherche "<>" dans la sc #1 et remplace toutes ces occurences par le champ numérique de "ref" \def\ST@displaynumfields#1{% \StrBehind#1\ST@startdisplay[\ST@dipslaycell]% \StrBefore\ST@dipslaycell\ST@enddisplay[\ST@dipslaycell]% - \let\ST@next\@gobble% priori, on ne reboucle pas + \let\ST@next\@gobble% à priori, on ne reboucle pas \unless\ifx\@empty\ST@dipslaycell% si ce qui a entre les marqueurs n'est pas vide \edef\ST@current@colnumber{\number\ST@colcount}\edef\ST@current@rownumber{\number\ST@rowcount}% - \ST@ifref\ST@dipslaycell% et si c'est une rfrence valide + \ST@ifref\ST@dipslaycell% et si c'est une référence valide {\let\ST@next\ST@startdisplay \ST@expadd@tomacro\ST@next\ST@dipslaycell \ST@expadd@tomacro\ST@next\ST@enddisplay \ST@cslet\ST@dipslaycell{formula@\ST@temp@formula}% alias pour la formule distante - \unless\ifx\ST@decsep\ST@decsepfp\ST@substdecsep\ST@dipslaycell\fi% subsitution du sparateur dcimal s'il y a lieu - \StrSubstitute#1\ST@next\ST@dipslaycell[#1]% on substitue <> par le champ numrique de la formule distante + \unless\ifx\ST@decsep\ST@decsepfp\ST@substdecsep\ST@dipslaycell\fi% subsitution du séparateur décimal s'il y a lieu + \StrSubstitute#1\ST@next\ST@dipslaycell[#1]% on substitue <> par le champ numérique de la formule distante \let\ST@next\ST@displaynumfields } {}% @@ -1716,50 +1797,50 @@ \def\ST@build@tab{% \ST@rowcount\@ne\ST@colcount\@ne - \expandafter\ST@expadd@tomacro\expandafter\ST@tab\csname endrow@0\endcsname% la (ou les) ventuelle ligne suprieure du tableau + \expandafter\ST@expadd@tomacro\expandafter\ST@tab\csname endrow@0\endcsname% la (ou les) éventuelle ligne supérieure du tableau \ST@build@tab@i } -\def\ST@build@tab@i{% reconstitue le tableau partir des valeurs calcules et des cellules +\def\ST@build@tab@i{% reconstitue le tableau à partir des valeurs calculées et des cellules \ifnum\ST@rowcount>\ST@total@rownumber \let\ST@nextcell\relax \else \let\ST@nextcell\ST@build@tab@i \ST@Ifinstr\ST@row@skiplist{\expandafter(\number\ST@rowcount)}% la ligne fait partie de la skiplist ? - {\advance\ST@rowcount\@ne}% on passe la ligne suivante + {\advance\ST@rowcount\@ne}% on passe à la ligne suivante {% \ST@Ifinstr\ST@col@skiplist{\expandafter(\number\ST@colcount)}% la colonne fait partie de la skiplist ? \ST@hiddencoltrue {% \ST@hiddencolfalse \ST@ifvalid@csname{text@\number\ST@colcount @\number\ST@rowcount}% si la cellule existe - {\ST@cslet\ST@temp@b{text@\number\ST@colcount @\number\ST@rowcount}% on cr un alias pour le texte + {\ST@cslet\ST@temp@b{text@\number\ST@colcount @\number\ST@rowcount}% on créé un alias pour le texte \exploregroups - \ifnum\csname code@\number\ST@colcount @\number\ST@rowcount\endcsname=\tw@% si la cellule contient un champ numrique + \ifnum\csname code@\number\ST@colcount @\number\ST@rowcount\endcsname=\tw@% si la cellule contient un champ numérique \ST@cslet\ST@temp@a{formula@\number\ST@colcount @\number\ST@rowcount}% alias pour la valeur - \unless\ifx\ST@decsep\ST@decsepfp\ST@substdecsep\ST@temp@a\fi% et si le "." doit tre remplac par "," on substitue - \StrSubstitute[1]\ST@temp@b\STnumericfieldmarker{\expandafter\STprintnum\expandafter{\ST@temp@a}}[\ST@temp@a]% on remplace le flag de formule par la valeur calcule - \else% si la cellule ne contient pas de champ numrique - \StrDel[1]\ST@temp@b\STnumericfieldmarker[\ST@temp@a]% on enlve l'ventuel marqueur + \unless\ifx\ST@decsep\ST@decsepfp\ST@substdecsep\ST@temp@a\fi% et si le "." doit être remplacé par "," on substitue + \StrSubstitute[1]\ST@temp@b\STnumericfieldmarker{\expandafter\STprintnum\expandafter{\ST@temp@a}}[\ST@temp@a]% on remplace le flag de formule par la valeur calculée + \else% si la cellule ne contient pas de champ numérique + \StrDel[1]\ST@temp@b\STnumericfieldmarker[\ST@temp@a]% on enlève l'éventuel marqueur \fi - \ST@displaynumfields\ST@temp@a% affiche les champs numriques des cellules entre << et >> + \ST@displaynumfields\ST@temp@a% affiche les champs numériques des cellules entre << et >> \noexploregroups \ST@expadd@tomacro\ST@tab\ST@temp@a% on ajoute la cellule au tableau } {}% }% - \advance\ST@colcount\@ne% on passe la colonne suivante ! - \ST@ifvalid@csname{code@\number\ST@colcount @\number\ST@rowcount}% y a t-il encore un code dfini ensuite ? + \advance\ST@colcount\@ne% on passe à la colonne suivante ! + \ST@ifvalid@csname{code@\number\ST@colcount @\number\ST@rowcount}% y a t-il encore un code défini ensuite ? {\ifnum\csname code@\number\ST@colcount @\number\ST@rowcount\endcsname<\z@% on est dans une cellule contenant \multicol ? \expandafter\ST@firstarg@after\csname text@\number\numexpr\ST@colcount-1@\number\ST@rowcount\endcsname\multicolumn\STmulticol@number% combien de cellules ? - \advance\ST@colcount\STmulticol@number% on va voir aprs le multicol en sautant toutes les valeurs des colonnes intermdiaires + \advance\ST@colcount\STmulticol@number% on va voir après le multicol en sautant toutes les valeurs des colonnes intermédiaires \advance\ST@colcount\m@ne - \ST@ifvalid@csname{code@\number\ST@colcount @\number\ST@rowcount}% y a t-il un code dfini aprs le multicol ? + \ST@ifvalid@csname{code@\number\ST@colcount @\number\ST@rowcount}% y a t-il un code défini après le multicol ? {\STadd@tomacro\ST@tab&}% on ajoute la tabulation {}% \else% pas de \multicolumn - \unless\ifST@hiddencol% si la cellule n'est pas masque - \unless\ifnum\ST@colcount>\ST@lastshowcol% si ce n'est pas la dernire cellule affiche + \unless\ifST@hiddencol% si la cellule n'est pas masquée + \unless\ifnum\ST@colcount>\ST@lastshowcol% si ce n'est pas la dernière cellule affichée \STadd@tomacro\ST@tab&%on ajoute la tabulation \fi \fi @@ -1767,24 +1848,24 @@ {\ST@ifvalid@csname{endrow@\number\ST@rowcount}% {\expandafter\ST@expadd@tomacro\expandafter\ST@tab\csname endrow@\number\ST@rowcount\endcsname}% ajoute la fin de la ligne {}% - \ST@colcount\@ne% on remet la colonne 1 - \advance\ST@rowcount\@ne% on passe la ligne suivante + \ST@colcount\@ne% on remet la colonne à 1 + \advance\ST@rowcount\@ne% on passe à la ligne suivante }% }% \fi \ST@nextcell } -% format des lettres et nombres reprsentant les coordonnes (helvetica gras trs petit) +% format des lettres et nombres représentant les coordonnées (helvetica gras très petit) \def\ST@debugformat@headers{\usefont{T1}{phv}{b}{n}} -% format utilis pour les cellules +% format utilisé pour les cellules \def\ST@debug@format@cells{\usefont{T1}{lmtt}{m}{n}} \def\ST@colorcell{\ifST@colortblloaded\noexpand\cellcolor[gray]{.6}\fi} \def\STdebug#1{% - \ST@debugmodetrue% on se met en mode dbogage + \ST@debugmodetrue% on se met en mode débogage \begingroup \def\ST@debuginfo{#1}% \ifmmode\scriptscriptstyle\else\scriptsize\fi @@ -1809,7 +1890,7 @@ \repeat \ST@colcount\@ne \ST@edefadd@tomacro\ST@debugtab{% - &% passe la dernire colonne de la premire ligne + &% passe à la dernière colonne de la première ligne \noexpand\multicolumn1l{% \ifx\ST@temp@a\ST@debuginfo \ST@ifvalid@csname{endrow@\number\ST@rowcount}% @@ -1821,25 +1902,25 @@ \ST@debug@tab@i } -\def\ST@debug@tab@i{% affiche le tableau de dbobage +\def\ST@debug@tab@i{% affiche le tableau de débobage \ifnum\ST@rowcount>\ST@total@rownumber \ST@edefadd@tomacro\ST@debugtab{\noexpand\cline{2-\number\numexpr\ST@lastshowcol+1}\noexpand\end{tabular}}% - \ST@debugtab% affichage du tableau de dbogage - \ifmmode\\[0.5ex]\else\par\smallskip\fi% retour la ligne + \ST@debugtab% affichage du tableau de débogage + \ifmmode\\[0.5ex]\else\par\smallskip\fi% retour à la ligne \expandafter\endgroup \else \ifnum\ST@colcount=\@ne \ST@edefadd@tomacro\ST@debugtab{% \noexpand\multicolumn1{c|}{\ST@colorcell\noexpand\ST@debugformat@headers\number\ST@rowcount}&}% \fi - \ifcsname\ST@debuginfo @\number\ST@colcount @\number\ST@rowcount\endcsname% si l'info existe pour la cellule concerne + \ifcsname\ST@debuginfo @\number\ST@colcount @\number\ST@rowcount\endcsname% si l'info existe pour la cellule concernée \ifx\ST@temp@a\ST@debuginfo \expandafter\ST@subst\csname\ST@debuginfo @\number\ST@colcount @\number\ST@rowcount\endcsname|{}% \fi - \ST@edefadd@tomacro\ST@debugtab{\detokenize\expandafter\expandafter\expandafter{\csname\ST@debuginfo @\number\ST@colcount @\number\ST@rowcount\endcsname}}% on ajoute la cellule au tableau que l'on a detokenise au pralable + \ST@edefadd@tomacro\ST@debugtab{\detokenize\expandafter\expandafter\expandafter{\csname\ST@debuginfo @\number\ST@colcount @\number\ST@rowcount\endcsname}}% on ajoute la cellule au tableau que l'on a detokenisée au préalable \fi - \advance\ST@colcount\@ne% on passe la colonne suivante ! - \ifnum\ST@colcount>\ST@lastshowcol% si c'est la dernire cellule affiche + \advance\ST@colcount\@ne% on passe à la colonne suivante ! + \ifnum\ST@colcount>\ST@lastshowcol% si c'est la dernière cellule affichée \ST@edefadd@tomacro\ST@debugtab{% &\noexpand\multicolumn1l{% \ifx\ST@temp@a\ST@debuginfo @@ -1848,8 +1929,8 @@ {}% \fi}% \noexpand\\\noexpand\cline{2-\number\numexpr\ST@lastshowcol+1}}% - \ST@colcount\@ne% on remet la colonne 1 - \advance\ST@rowcount\@ne% on passe la ligne suivante + \ST@colcount\@ne% on remet la colonne à 1 + \advance\ST@rowcount\@ne% on passe à la ligne suivante \else% il reste encore des cellules dans la ligne \STadd@tomacro\ST@debugtab&% on ajoute la tabulation \fi @@ -1861,12 +1942,12 @@ %%%%%%%%%%%%%%%%%% Environnement spreadtab et macros publiques %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% dfinit quelle sera le squence de conytrle qui finira les lignes +% définit quelle sera le séquence de conytrôle qui finira les lignes % dans les tableaux de spreadtab \def\STeol#1{\def\ST@eol{#1}} \STeol\\ -% renvoie la valeur numrique de la cellule de tag #1 +% renvoie la valeur numérique de la cellule de tag #1 \def\STtag#1{% \ifcsname ST@celltag@\detokenize\expandafter{#1}\endcsname\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi {\csname ST@celltag@\detokenize\expandafter{#1}\endcsname} @@ -1893,24 +1974,24 @@ \fi } -% dfinit le sparateur dcimal +% définit le séparateur décimal \def\STsetdecimalsep#1{\def\ST@decsep{#1}} -\def\ST@decsepfp{.}% le sparateur dcimal donn par fp -\STsetdecimalsep.% le point par dfaut +\def\ST@decsepfp{.}% le séparateur décimal donné par fp +\STsetdecimalsep.% le point par défaut -\STmessage{true}% affiche les messages par dfaut +\STmessage{true}% affiche les messages par défaut \newif\ifST@clipround \def\STautoround{\@ifstar{\ST@cliproundfalse\ST@autoround}{\ST@cliproundtrue\ST@autoround}} \def\ST@autoround#1{\def\STrounddigit{#1}} -\STautoround{}% pas d'arrondi par dfaut +\STautoround{}% pas d'arrondi par défaut -\def\STsavecell#1#2{% met dans la sc #1 la valeur du champ numrique de la cellule spcifie par sa rfrence ABSOLUE +\def\STsavecell#1#2{% met dans la sc #1 la valeur du champ numérique de la cellule spécifiée par sa référence ABSOLUE \def\ST@temp@ref{#2}% \ST@ifref\ST@temp@ref{}\ST@illegal@ref \ST@Ifinstr\ST@temp@ref[\ST@illegal@ref{}% - \ST@cslet#1{formula@\ST@temp@formula}% le nombre est assign #1 - \unless\ifx\ST@decsep\ST@decsepfp\ST@substdecsep#1\fi% et si le "." doit tre remplac par "," on substitue + \ST@cslet#1{formula@\ST@temp@formula}% le nombre est assigné à #1 + \unless\ifx\ST@decsep\ST@decsepfp\ST@substdecsep#1\fi% et si le "." doit être remplacé par "," on substitue \global\let#1#1% on rend l'assignation globale } @@ -1937,11 +2018,11 @@ \fi \let\ST@FPmessages\ifFPmessages \if@STfpactive\ifST@message\FPmessagesfalse\fi\fi% pas de message de calcul de FP - \saveexpandmode\expandarg% 1-dveloppement des arguments (rglages de xstring) - \saveexploremode\noexploregroups% pas d'exploration des groupes (rglages de xstring) + \saveexpandmode\expandarg% 1-développement des arguments (réglages de xstring) + \saveexploremode\noexploregroups% pas d'exploration des groupes (réglages de xstring) \edef\ST@catocde@saved{\catcode`:=\the\catcode`:\relax\catcode`;=\the\catcode`;\relax}% - \@makeother\:\@makeother\;% changer les catcodes pour viter les incompatibilits avec frenchb - \def\ST@tab@preamble{#2}% prambule du tableau + \@makeother\:\@makeother\;% changer les catcodes pour éviter les incompatibilités avec frenchb + \def\ST@tab@preamble{#2}% préambule du tableau \StrChar{\@empty#2}\@ne[\ST@tab@name]% \def\ST@optcode{#1}% \let\ST@copylist\@empty @@ -1962,24 +2043,24 @@ \let\ST@ref@found\@empty \ST@read@tab% analyse le tableau contenu dans \ST@tab \ST@emit@message{ok^^J}% - \ST@search@lastshowcol% cherche la dernire colonne affiche - \ST@debugmodefalse% priori, on n'est pas en mode dbogage + \ST@search@lastshowcol% cherche la dernière colonne affichée + \ST@debugmodefalse% à priori, on n'est pas en mode débogage \let\ST@savecell\STsavecell \let\STsavecell\@gobbletwo \let\STdisplaytab\relax - \ST@optcode% excute l'argument optionnel en ne tenant compte que de \STdebug + \ST@optcode% exécute l'argument optionnel en ne tenant compte que de \STdebug \let\STdebug\@gobble \def\STdisplaytab{% \ST@debugmodefalse \ST@emit@message{\space\space\space\space\space Debug mode: display final tab^^J}% \let\STdisplaytab\relax }% - \ST@optcode% excute l'argument optionnel en ne tenant compte que de \STdisplaytab s'il y figure + \ST@optcode% exécute l'argument optionnel en ne tenant compte que de \STdisplaytab s'il y figure \unless\ifST@debugmode% si on doit afficher le tableau, on fait le boulot \ST@emit@message{* computing formulas:^^J}% \STeval@tab \let\STsavecell\ST@savecell - \ST@optcode% excute l'argument optionnel en ne tenant compte que de \STsavecell + \ST@optcode% exécute l'argument optionnel en ne tenant compte que de \STsavecell \expandafter\def\expandafter\ST@tab\expandafter{\expandafter\begin\ST@tab@preamble}% \ST@emit@message{* building tab:}% \ST@build@tab @@ -2030,164 +2111,172 @@ v0.1alpha avril 2009 v0.1beta1 2009/06/06 ------------------------------------------------------------------------------- v0.1beta2 2009/06/07 - 1 Une valeur ngative dans une cellule provoque un bug. - Les valeurs ngatives sont dsormais mises entre parenthses - 2 Espaces supprims en dbut de formules. + 1 Une valeur négative dans une cellule provoque un bug. + Les valeurs négatives sont désormais mises entre parenthèses + 2 Espaces supprimés en début de formules. ------------------------------------------------------------------------------- v0.1beta3 2009/06/12 - 1 Espaces laisss dans les formules pour pouvoir utiliser la notation - postfixe de fp. - 2 Les rfrences ne sont plus @(B4) mais indiffremment b4 ou - B4. - 3 Rfrences relatives possibles par [x,y] ou x et y sont les - dcalages de la colonne et de la ligne par rapport la cellule - o est la formule. - 4 Bugs corrigs pour rendre le package compatible avec tabularx ou + 1 Espaces laissés dans les formules pour pouvoir utiliser la notation + postfixée de fp. + 2 Les références ne sont plus «@(B4)» mais indifféremment «b4» ou + «B4». + 3 Références relatives possibles par [x,y] ou x et y sont les + décalages de la colonne et de la ligne par rapport à la cellule + où est la formule. + 4 Bugs corrigés pour rendre le package compatible avec tabularx ou tabulary (entre autres). ------------------------------------------------------------------------------- v0.1beta4 2009/06/21 - 1 Les espaces sont supprims au dbut de chaque cellule, cela - crait un bug lorsque la cellule commenait par un nombre ngatif. - 2 Mise en place de la compatibilit avec la commande - \multicolumn{nbre}{type}{contenu} du package ponyme - 3 Possibilit de masquer des lignes ou des colonnes entires avec les + 1 Les espaces sont supprimés au début de chaque cellule, cela + créait un bug lorsque la cellule commençait par un nombre négatif. + 2 Mise en place de la compatibilité avec la commande + \multicolumn{nbre}{type}{contenu} du package éponyme + 3 Possibilité de masquer des lignes ou des colonnes entières avec les commandes \SThiderow et \SThidecol - Seule condition : aucune colonne masque ne doit se trouver dans les - colonnes impliques dans un \multicolum moins de prendre de - grandes prcautions et savoir les consquences que cela occasionne. + Seule condition : aucune colonne masquée ne doit se trouver dans les + colonnes impliquées dans un \multicolum à moins de prendre de + grandes précautions et savoir les conséquences que cela occasionne. ------------------------------------------------------------------------------- v0.1beta5 2009/06/29 - 1 Amlioration des messages d'erreur et d'information + 1 Amélioration des messages d'erreur et d'information 2 Suppression de tests superflus - 3 Redfinition de \STtextcell en @ qui est plus simple - 4 Implmentation de \STsavecell - 5 criture de la documentation provisoire en franais + 3 Redéfinition de \STtextcell en «@» qui est plus simple + 4 Implémentation de \STsavecell + 5 écriture de la documentation provisoire en français ------------------------------------------------------------------------------- v0.1beta6 2009/08/23 - 1 Correction d'un bug : dans une cellule, on ne pouvait pas crire - plusieurs fois la mme rfrence. - 2 Correction d'un bug avec \multicolumn : cette commande tait mal - gre lorsqu'employe avec une cellule de texte. - 3 Implmentation de macro-fonctions avec diffrenciation selon le - type d'argument et le type de donne renvoye. - 4 Possibilit d'imbrication des macro-fonctions. - 5 Mise en place d'un environnement spreadtab - 6 Nombreuses optimisations pour une meilleure vitesse d'excution + 1 Correction d'un bug : dans une cellule, on ne pouvait pas écrire + plusieurs fois la même référence. + 2 Correction d'un bug avec \multicolumn : cette commande était mal + gérée lorsqu'employée avec une cellule de texte. + 3 Implémentation de macro-fonctions avec différenciation selon le + type d'argument et le type de donnée renvoyée. + 4 Possibilité d'imbrication des macro-fonctions. + 5 Mise en place d'un environnement « spreadtab » + 6 Nombreuses optimisations pour une meilleure vitesse d'exécution ------------------------------------------------------------------------------- v0.1pre 2009/09/02 - 1 Mise au point des messages d'erreurs et des arrts de compilation - selon les erreurs rencontres. + 1 Mise au point des messages d'erreurs et des arrêts de compilation + selon les erreurs rencontrées. 2 Correction d'un bug dans \ST@coord@toref 3 Les cellules vides, textuelles ou jointes par un \multicolumn sont - ignores dans les plages de cellules concernes par les fonctions + ignorées dans les plages de cellules concernées par les fonctions sum et sumprod - 4 Les noms de mois accentus et \today sont dsormais permis en + 4 Les noms de mois accentués et \today sont désormais permis en argument de la fonction frlongdatetonum - 5 somprod corrig en sumprod, plus anglais ! - 6 La macro fonction rnd, trop complexe est supprime au profit de rand + 5 somprod corrigé en sumprod, plus anglais ! + 6 La macro fonction rnd, trop complexe est supprimée au profit de rand et randint - 7 Amliorations et optimisations + 7 Améliorations et optimisations ------------------------------------------------------------------------------- -v0.1 2009/11/03 Premire version publique sur le CTAN +v0.1 2009/11/03 Première version publique sur le CTAN ------------------------------------------------------------------------------- v0.2 2010/01/24 - 1 On peut dfinir le sparateur dcimal par la macro - \STsetdecimalsep{} - 2 Il est possible de copier une formule dans le tableau l'aide de - \STcopy{>a,vb}{formule} o a et b sont les nombres de cellules - horizontaux et verticaux vers lesquels la formule sera copie. - 3 Dsormais, spreadtab est entirement compatible avec toutes les + 1 On peut définir le séparateur décimal par la macro + \STsetdecimalsep{} + 2 Il est possible de copier une formule dans le tableau à l'aide de + \STcopy{>a,vb}{formule} où a et b sont les nombres de cellules + horizontaux et verticaux vers lesquels la formule sera copiée. + 3 Désormais, spreadtab est entièrement compatible avec toutes les commandes du package booktabs 4 La commande \noalign et son argument est prise en compte lorsqu'elle se - trouve aprs un \\ - 5 Suppression d'espaces indsirables - 6 Mise en place d'un mode dbogage o l'on peut visualiser les champs - numriques, les champs textuels ou les codes des cellules du tableau + trouve après un \\ + 5 Suppression d'espaces indésirables + 6 Mise en place d'un mode débogage où l'on peut visualiser les champs + numériques, les champs textuels ou les codes des cellules du tableau ------------------------------------------------------------------------------- v0.2a 2010/02/02 1 Ajout de la traduction en vietnamien et correction d'erreurs dans la - documentation franaise. + documentation française. 2 Implementation beta et donc non visible des macros fonctions gcd, lcm - Ces macro-fonctions ne sont pas encore documentes. + Ces macro-fonctions ne sont pas encore documentées. ------------------------------------------------------------------------------- v0.3 2010/03/28 - 1 La macro \STautoround{x} admet une version toile pour laquelle - les nombres sont arrondis et formats pour avoir x chiffres aprs + 1 La macro \STautoround{x} admet une version étoilée pour laquelle + les nombres sont arrondis et formatés pour avoir x chiffres après la virgule en rajoutant des 0 inutiles si besoin - 2 La valeur sauvegarde par \STsavecell tient dsormais compte du - sparateur dcimal + 2 La valeur sauvegardée par \STsavecell tient désormais compte du + séparateur décimal 3 Macro fonctions "gcd" (PGCD), "lcm" (PPCM) et "scitodec" pour convertir - une criture scientifique en une criture dcimale - 4 Dans le champ textuel d'une cellule, on peut dsormais afficher le - champ numrique d'une cellule avec <> - 5 Amlioration de l'algorithme pour \STcopy : enleve une formule de - \ST@copylist lorsqu'on a dpass la dernire ligne de la plage - o elle doit tre copie + une écriture scientifique en une écriture décimale + 4 Dans le champ textuel d'une cellule, on peut désormais afficher le + champ numérique d'une cellule avec <> + 5 Amélioration de l'algorithme pour \STcopy : enleve une formule de + \ST@copylist lorsqu'on a dépassé la dernière ligne de la plage + où elle doit être copiée 6 Correction d'un bug lorsque la macro-fonction admettant un argument - textuel a un argument faisant rfrence une autre cellule : + textuel a un argument faisant référence à une autre cellule : enlever ":=" si besoin 7 Correction d'un bug dans xstring qui changeait les catcodes des tokens - de \@xs@afterinteger lorsqu'on appelle \IfInteger + de \@xs@afterinteger lorsqu'on appelle \ST@IfInteger 8 Correction d'un bug dans \ST@build@tab@i pour prendre en compte les - cellules de code 0 dans lesquelles ":=" doit tre supprim + cellules de code 0 dans lesquelles ":=" doit être supprimé ------------------------------------------------------------------------------- v0.3a 2010/05/15 - 1 Correction d'un bug dans \ST@gobble@remain : ce qui reste manger + 1 Correction d'un bug dans \ST@gobble@remain : ce qui reste à manger peut contenir des tokens de catcode 1 ou 2 ce qui fait que - l'utilisation d'arguments dlimits ne fonctionnerait pas dans ces + l'utilisation d'arguments délimités ne fonctionnerait pas dans ces cas. ------------------------------------------------------------------------------- v0.3b 2010/06/06 1 Correction d'un bug concernant les macro-fonctions renvoyant un texte. - Lorsque leur argument contenait une rfrence, celle-ci devenait + Lorsque leur argument contenait une référence, celle-ci devenait une cellule texte. 2 Correction d'un bug sur la macro \ST@stackcall : il faut y enlever - toutes les occurrences de la cellule en train d'tre calcule - 3 Modification de l'ordre de calcul des cellules concernes par les + toutes les occurrences de la cellule en train d'être calculée + 3 Modification de l'ordre de calcul des cellules concernées par les macro fonctions sum et somprod - 4 Correction d'un bug dans la faon dont sont produites les skiplist + 4 Correction d'un bug dans la façon dont sont produites les skiplist \ST@row@skiplist et \STcol@skiplist - 5 Implmentation de la macro fonction "id" + 5 Implémentation de la macro fonction "id" ------------------------------------------------------------------------------- v0.3c 2011/04/08 - 1 Correction d'un gros bug lors de la substitution d'une rfrence de - type lorsque nbre>10 : a10 tait vu comme "a1" suivi - de 0, et mme pour tous les nbre>10 ! + 1 Correction d'un gros bug lors de la substitution d'une référence de + type lorsque nbre>10 : a10 était vu comme "a1" suivi + de 0, et même pour tous les nbre>10 ! 2 Macro \STprintnum ------------------------------------------------------------------------------- v0.4 2011/07/04 - 1 Les calculs se font en dehors d'un groupe pour viter l'erreur de + 1 Les calculs se font en dehors d'un groupe pour éviter l'erreur de save-satck - 2 Possibilit d'crire aussi \spreadtab\endspreadtab + 2 Possibilité d'écrire aussi \spreadtab\endspreadtab 3 Macros fonctions tag, cell, row, col et la macro \STtag qui permet de - faire appel la valeur de la cellule marque par la macro fonction + faire appel à la valeur de la cellule marquée par la macro fonction tag. \STmakegtag rend les sauvegardes globales. 4 La commande \STeol permet de choisir quel est le marqueur de fin de ligne dans les tableau de spreadtab 5 dans une cellule mixte, les macro fonctions renvoyant du texte ont leur - rsultat qui prend la place de :={} + résultat qui prend la place de :={} ------------------------------------------------------------------------------- v0.4a 2011/08/11 - 1 Un bug corrig dans \ST@search@hline@i + 1 Un bug corrigé dans \ST@search@hline@i ------------------------------------------------------------------------------- v0.4b 2012/05/13 - 1 Un bug corrig dans \ST@func@sum + 1 Un bug corrigé dans \ST@func@sum ------------------------------------------------------------------------------- v0.4c 2014/11/06 - 1 Un bug corrig dans \ST@analyse@text@frdate et + 1 Un bug corrigé dans \ST@analyse@text@frdate et \ST@analyse@text@engdate : si #1 commence par un espace parasite, - celui-ci est dsormais retir. - 2 Bug corrig dans \ST@displaynumfields : les macros - \ST@current@colnumber et \ST@current@rownumber sont dfinies avant + celui-ci est désormais retiré. + 2 Bug corrigé dans \ST@displaynumfields : les macros + \ST@current@colnumber et \ST@current@rownumber sont définies avant d'appeler \ST@ifref ------------------------------------------------------------------------------- v0.4d 2018/01/02 - 1 Bug corrig dans \STeval@cell : le \edef\ST@dependance@tree corrige + 1 Bug corrigé dans \STeval@cell : le \edef\ST@dependance@tree corrige le \def ! 2 Ajout d'un message d'erreur si une la fonction sum a une plage qui - contient la cellule courante elle-mme + contient la cellule courante elle-même 3 Nouvelle macro fonction "value" 4 Nettoyage du code ------------------------------------------------------------------------------- v0.5 2019/02/27 - 1 Choix du moteur de calcul : fp ou xfp \ No newline at end of file + 1 Choix du moteur de calcul : fp ou xfp + ------------------------------------------------------------------------------- +v0.51 2020/06/09 + 1 Bug corrigé : les \if..\fi n'étaient pas équilibrés lors des appels aux + macros \STif.. avec le moteur fp +------------------------------------------------------------------------------- +v0.51 2023/09/11 + 1 Bug corrigé : les anciennes macros de xstring \IfInteger et + \IfDecimal sont incorporées à spreadtab qui sinon est cassé \ No newline at end of file diff --git a/macros/luatex/generic/luatexko/ChangeLog b/macros/luatex/generic/luatexko/ChangeLog index 6cffa0112e..d5a7ea3408 100644 --- a/macros/luatex/generic/luatexko/ChangeLog +++ b/macros/luatex/generic/luatexko/ChangeLog @@ -1,3 +1,11 @@ +2023-09-11 Dohyun Kim + + Version 3.6 + + * luatexko.lua: + - prevent possible error in vertical writing mode + - more precise space_skip after hangul characters + 2022-11-01 Dohyun Kim Version 3.5 diff --git a/macros/luatex/generic/luatexko/README b/macros/luatex/generic/luatexko/README index 1cfabaf261..3dd7f3c4c4 100644 --- a/macros/luatex/generic/luatexko/README +++ b/macros/luatex/generic/luatexko/README @@ -1,4 +1,4 @@ -LuaTeX-ko Package version 3.5 (2022/11/01) +LuaTeX-ko Package version 3.6 (2023/09/11) =========================================== This is a Lua(La)TeX macro package that supports typesetting Korean diff --git a/macros/luatex/generic/luatexko/luatexko-doc.pdf b/macros/luatex/generic/luatexko/luatexko-doc.pdf index 351e5397a7..ae15171153 100644 Binary files a/macros/luatex/generic/luatexko/luatexko-doc.pdf and b/macros/luatex/generic/luatexko/luatexko-doc.pdf differ diff --git a/macros/luatex/generic/luatexko/luatexko-doc.tex b/macros/luatex/generic/luatexko/luatexko-doc.tex index ddec12b794..18e05b2866 100644 --- a/macros/luatex/generic/luatexko/luatexko-doc.tex +++ b/macros/luatex/generic/luatexko/luatexko-doc.tex @@ -142,7 +142,7 @@ \author{Dohyun Kim \normalsize || \and Soojin Nam \normalsize || \and \normalsize <\url{http://github.com/dohyunkim/luatexko}>} -\date{Version 3.5\quad 2022/11/01} +\date{Version 3.6\quad 2023/09/11} \maketitle \begin{quote} diff --git a/macros/luatex/generic/luatexko/luatexko-normalize.lua b/macros/luatex/generic/luatexko/luatexko-normalize.lua index 68e9227c38..7e736a5b18 100644 --- a/macros/luatex/generic/luatexko/luatexko-normalize.lua +++ b/macros/luatex/generic/luatexko/luatexko-normalize.lua @@ -1,6 +1,6 @@ -- luatexko-normalize.lua -- --- Copyright (c) 2013-2022 Dohyun Kim +-- Copyright (c) 2013-2023 Dohyun Kim -- Soojin Nam -- -- This work may be distributed and/or modified under the @@ -13,8 +13,8 @@ luatexbase.provides_module({ name = "luatexko-normalize", - version = "3.5", - date = "2022/11/01", + version = "3.6", + date = "2023/09/11", author = "Dohyun Kim, Soojin Nam", description = "Hangul normalization", license = "LPPL v1.3+", diff --git a/macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua b/macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua index 5d5fed591f..e39ae38f76 100644 --- a/macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua +++ b/macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua @@ -1,6 +1,6 @@ -- luatexko-uhc2utf8.lua -- --- Copyright (c) 2013-2022 Dohyun Kim +-- Copyright (c) 2013-2023 Dohyun Kim -- Soojin Nam -- -- This work may be distributed and/or modified under the @@ -13,8 +13,8 @@ luatexbase.provides_module({ name = "luatexko-uhc2utf8", - version = "3.5", - date = "2022/11/01", + version = "3.6", + date = "2023/09/11", author = "Dohyun Kim, Soojin Nam", description = "UHC (CP949) input encoding", license = "LPPL v1.3+", diff --git a/macros/luatex/generic/luatexko/luatexko.lua b/macros/luatex/generic/luatexko/luatexko.lua index 940efb43c3..addcf4d817 100644 --- a/macros/luatex/generic/luatexko/luatexko.lua +++ b/macros/luatex/generic/luatexko/luatexko.lua @@ -1,6 +1,6 @@ -- luatexko.lua -- --- Copyright (c) 2013-2022 Dohyun Kim +-- Copyright (c) 2013-2023 Dohyun Kim -- Soojin Nam -- -- This work may be distributed and/or modified under the @@ -13,8 +13,8 @@ luatexbase.provides_module { name = 'luatexko', - date = '2022/11/01', - version = '3.5', + date = '2023/09/11', + version = '3.6', description = 'typesetting Korean with LuaTeX', author = 'Dohyun Kim, Soojin Nam', license = 'LPPL v1.3+', @@ -304,7 +304,7 @@ local fontoptions = { if has_harf_data(fid) then newwd = getparameters(fid) or false if newwd then - newwd = { newwd.space, newwd.space_stretch, newwd.space_shrink } + newwd = { newwd.space, newwd.space_stretch, newwd.space_shrink, newwd.extra_space } end else local newsp = nodenew(glyphid) @@ -312,7 +312,7 @@ local fontoptions = { newsp = nodes.simple_font_handler(newsp) newwd = newsp and newsp.width or false if newwd then - newwd = { texsp(newwd), texsp(newwd/2), texsp(newwd/3) } + newwd = { texsp(newwd), texsp(newwd/2), texsp(newwd/3), texsp(newwd/3) } end if newsp then nodefree(newsp) end end @@ -668,40 +668,12 @@ function luatexko.updateforcehangul (value) nodewrite(what) end -local function hangul_space_skip (curr, newfont) - if curr.lang ~= nohyphen and curr.font ~= newfont then - -- fontloader's "node" mode sets space_stretch to zero - -- when the font is a monospaced font (fontspec's \setmonofont - -- command does the same thing), which we will bypass here - -- for alignment of CJK and Latin glyphs in verbatim environment. - -- See http://www.ktug.org/xe/index.php?document_srl=249772 - if not fontoptions.monospaced[curr.font] then - local n = getnext(curr) - if n and n.id == glueid and n.subtype == spaceskip then - local params = getparameters(curr.font) - local oldwd, oldst, oldsh, oldsto, oldsho = getglue(n) - if params - and oldwd == params.space - and oldst == params.space_stretch - and oldsh == params.space_shrink - and oldsto == 0 - and oldsho == 0 then -- not user's spaceskip - - local newwd = fontoptions.hangulspaceskip[newfont] - if newwd then - setglue(n, newwd[1], newwd[2], newwd[3]) - end - end - end - end - end -end - local function process_fonts (head) - local curr = head + local curr, currfont, currlang, newfont = head, 0, nohyphen, 0 while curr do local id = curr.id if id == glyphid then + currfont, currlang = curr.font, curr.lang if curr.font ~= 0 -- exclude nullfont and not has_attribute(curr, unicodeattr) then @@ -712,7 +684,6 @@ local function process_fonts (head) local p = getprev(curr) if p and p.id == glyphid then if curr.font ~= p.font then - hangul_space_skip(curr, p.font) curr.font = p.font end curr.lang = p.lang @@ -747,16 +718,13 @@ local function process_fonts (head) then curr.font = hf elseif hf and has_attribute(curr, hangulbyhangulattr) and is_hangul_jamo(c) then - hangul_space_skip(curr, hf) curr.font = hf elseif hjf and has_attribute(curr, hanjabyhanjaattr) and is_hanja(c) then - hangul_space_skip(curr, hjf) curr.font = hjf elseif not char_in_font(curr.font, c) then local fbf = has_attribute(curr, fallbackfontattr) or false for _,f in ipairs{ hf, hjf, fbf } do if f and char_in_font(f, c) then - hangul_space_skip(curr, f) curr.font = f break end @@ -765,6 +733,46 @@ local function process_fonts (head) set_attribute(curr, unicodeattr, c) end end + newfont = curr.font + elseif id == glueid + and currfont ~= 0 + and currfont ~= newfont + and currlang ~= nohyphen + and curr.subtype == spaceskip + -- fontloader's "node" mode sets space_stretch to zero + -- when the font is a monospaced font (fontspec's \setmonofont + -- command does the same thing), which we will bypass here + -- for alignment of CJK and Latin glyphs in verbatim environment. + -- See http://www.ktug.org/xe/index.php?document_srl=249772 + and not fontoptions.monospaced[currfont] then + + local params = getparameters(currfont) + local oldwd, oldst, oldsh, oldsto, oldsho = getglue(curr) + if params and oldsto == 0 and oldsho == 0 then + local p = getprev(curr) + local sf = p and p.char and tex.getsfcode(p.char) or 1000 + if sf == 0 or sf > 1000 then + local p, pf = getprev(p), 0 + while p and pf == 0 do + pf = p.char and tex.getsfcode(p.char) or 1000 + p = getprev(p) + end + if sf == 0 then sf = pf end + if pf < 1000 then sf = 1000 end + end + if oldwd == (sf < 2000 and params.space or params.space+params.extra_space) + and oldst == texsp(params.space_stretch * (sf/1000)) + and oldsh == texsp(params.space_shrink * (1000/sf)) then + + local newwd = fontoptions.hangulspaceskip[newfont] + if newwd then + setglue(curr, + sf < 2000 and newwd[1] or newwd[1]+newwd[4], + texsp(newwd[2] * (sf/1000)), + texsp(newwd[3] * (1000/sf))) + end + end + end elseif id == discid then process_fonts(curr.pre) process_fonts(curr.post) @@ -1911,7 +1919,7 @@ local function process_vertical_font (fontdata) local voff = goffset - (v.width or 0)/2 local bbox = descriptions[i] and descriptions[i].boundingbox or {0,0,0,0} local gid = v.index - local tsb = tsb_tab[gid].tsb + local tsb = tsb_tab[gid] and tsb_tab[gid].tsb local hoff = tsb and (bbox[4] + tsb) * scale or ascender v.commands = { { "down", -voff }, @@ -1922,7 +1930,7 @@ local function process_vertical_font (fontdata) { "pop" }, { "pdf", "Q" }, } - local vw = tsb_tab[gid].ht + local vw = tsb_tab[gid] and tsb_tab[gid].ht v.width = vw and vw * scale or quad local ht = bbox[3] * scale + voff local dp = bbox[1] * scale + voff diff --git a/macros/luatex/generic/luatexko/luatexko.sty b/macros/luatex/generic/luatexko/luatexko.sty index 0cedb2a5d8..fa74b68c28 100644 --- a/macros/luatex/generic/luatexko/luatexko.sty +++ b/macros/luatex/generic/luatexko/luatexko.sty @@ -1,6 +1,6 @@ % luatexko.sty % -% Copyright (c) 2013-2022 Dohyun Kim +% Copyright (c) 2013-2023 Dohyun Kim % Soojin Nam % % This work may be distributed and/or modified under the @@ -13,8 +13,8 @@ \ifdefined\luatexkohangulfontattr \endinput\fi \ifdefined\ProvidesPackage - \NeedsTeXFormat{LaTeX2e}[2021/06/01] - \ProvidesPackage{luatexko}[2022/11/01 v3.5 typesetting Korean with LuaTeX] + \NeedsTeXFormat{LaTeX2e}[2021/11/15] + \ProvidesPackage{luatexko}[2023/09/11 v3.6 typesetting Korean with LuaTeX] \RequirePackage{luatexbase} \RequirePackage{fontspec}[2020/02/03] \let\luatexkoselectfont\selectfont @@ -229,6 +229,9 @@ \global\advance\luatexkoulinecount\@ne \ifnum\luatexkoulinecount=\@ne \directlua{ luatexko.activate"uline" }\fi \begingroup + \ifx\luatexko@prev@ulinedown\ulinedown + \edef\ulinedown{\dimexpr\ulinedown+\ulinewidth+.15ex\relax}\fi + \let\luatexko@prev@ulinedown\ulinedown \count@=\luatexkoulinecount \leavevmode \setbox\z@\hbox{#1}% @@ -933,8 +936,9 @@ \let\luatexkodefaulthanjafont \luatexkomainhanjafont \let\luatexkodefaultfallbackfont\luatexkomainfallbackfont \fi\fi - % hyperref - \@ifpackageloaded{hyperref}{\pdfstringdefDisableCommands{% +} +% hyperref +\AddToHook{package/hyperref/after}{\pdfstringdefDisableCommands{% \let\ruby\@firstoftwo \let\xxruby\@firstoftwo \let\dotemph\@firstofone @@ -966,9 +970,8 @@ \let\addfallbackfontfeatures\@gobble \def\는{는}\def\은{은}\def\을{을}\def\를{를}\def\와{와}\def\과{과}% \def\가{가}\def\이{이}\def\라{라}\def\으{으}\def\로{로}% - \def\hellipsis{...}}}{} - \@ifpackageloaded{pxrubrica}{\let\ruby\jruby}{} -} + \def\hellipsis{...}}} +\AddToHook{package/pxrubrica/after}{\let\ruby\jruby} % misc \RequirePackage{kolabels-utf} \protected\def\hellipsis{\char"2026\char"2026 } -- cgit v1.2.3