diff options
author | Norbert Preining <norbert@preining.info> | 2019-12-10 03:01:52 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-12-10 03:01:52 +0000 |
commit | 0174af21196c197a5b3672c87bc6f7a614fddd7d (patch) | |
tree | 00b155441be0755336593a3a2170f7531a055e99 /macros/latex | |
parent | d1cebb67c836ee110bdbd3aeb622675df479c993 (diff) |
CTAN sync 201912100301
Diffstat (limited to 'macros/latex')
61 files changed, 861 insertions, 595 deletions
diff --git a/macros/latex/contrib/beilstein/CHANGELOG.md b/macros/latex/contrib/beilstein/CHANGELOG.md index 53af77e561..2f93736f68 100644 --- a/macros/latex/contrib/beilstein/CHANGELOG.md +++ b/macros/latex/contrib/beilstein/CHANGELOG.md @@ -4,13 +4,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## 1.4 - 2018-01-29 +## 1.5 - 2019-10-30 ### Added -- New manuscript type `suppinfo` +- New environment `funding` -### Changed -- Documentation updated + +## 1.4 - 2018-01-20 + +### Added +- New manuscript type `suppinfo` ## 1.3 - 2017-11-09 @@ -41,4 +44,3 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## 1.0 - 2010-05-11 First official release at BJNANO public website - diff --git a/macros/latex/contrib/beilstein/README.md b/macros/latex/contrib/beilstein/README.md index 13b7e73264..f59840b2ca 100644 --- a/macros/latex/contrib/beilstein/README.md +++ b/macros/latex/contrib/beilstein/README.md @@ -3,7 +3,7 @@ beilstein -- Support for submissions to the ``Beilstein Journal of Nanotechnology'' published by the Beilstein-Institut for the Advancement of Chemical Sciences - Version: 1.4 + Version: 1.5 E-mail: journals-support@beilstein-institut.de License: Released under the LaTeX Project Public License v1.3c or later See http://www.latex-project.org/lppl.txt @@ -15,11 +15,11 @@ files can be used for any kind of document, they have only been designed and tested to be suitable for submission to the [Beilstein Journal of Nanotechnology]. -Stable versions are uploaded to CTAN (https://www.ctan.org/pkg/beilstein). From there they usually +Stable versions are uploaded to CTAN (https://www.ctan.org/pkg/beilstein). From there they usually make their way into TeX Live and MiKTeX rather quickly. In addition you will find the most recent version at https://www.beilstein-journals.org/bjnano/templates. -The most recent documentation is available at BJNANO_Technical_Handbook.pdf within the doc directory. -`texdoc beilstein` should give you this file. It includes a short description how to use the template and +The most recent documentation is available at BJNANO_Technical_Handbook.pdf within the doc directory. +`texdoc beilstein` should give you this file. It includes a short description how to use the template and also provides trouble shooting hints. Please see [CHANGELOG.md](CHANGELOG.md) for a version history diff --git a/macros/latex/contrib/beilstein/beilstein.dtx b/macros/latex/contrib/beilstein/beilstein.dtx index 64fc0e848d..426321f2e1 100644 --- a/macros/latex/contrib/beilstein/beilstein.dtx +++ b/macros/latex/contrib/beilstein/beilstein.dtx @@ -19,7 +19,7 @@ beilstein -- Support for submissions to the ``Beilstein Journal of Nanotechnology'' published by the Beilstein-Institut for the Advancement of Chemical Sciences -Version: 1.4 +Version: 1.5 E-mail: journals-support@beilstein-institut.de License: Released under the LaTeX Project Public License v1.3c or later See http://www.latex-project.org/lppl.txt @@ -29,7 +29,8 @@ See http://www.latex-project.org/lppl.txt \postamble Originally developed by Martin Sievers (info@schoenerpublizieren.de) -Copyright (C) 2009-2018 by Beilstein-Institut for the Advancement of Chemical Sciences (Beilstein) +Copyright (C) 2009-2019 by Beilstein-Institut for the Advancement of Chemical +Sciences (Beilstein) Part of this bundle is derived from cite.sty, to which the following license applies: @@ -90,7 +91,7 @@ This work consists of the files beilstein.dtx, %</internal> %<*driver> \ProvidesFile{beilstein.dtx}% -[2018/01/28 v1.4 Bundle for submissions to the\MessageBreak ``Beilstein Journal +[2019/12/09 v1.5 Bundle for submissions to the\MessageBreak ``Beilstein Journal of Nanotechnology'' (BJNANO)] \documentclass[a4paper]{ltxdoc} \usepackage[american]{babel} @@ -102,7 +103,7 @@ This work consists of the files beilstein.dtx, \usepackage{array,booktabs,tabularx,longtable} \usepackage{fancyhdr} \pagestyle{fancy} -\lfoot{\footnotesize BJNANO Technical Handbook (Version 1.4)} +\lfoot{\footnotesize BJNANO Technical Handbook (Version 1.5)} \cfoot{} \rfoot{\thepage} \rhead{\small\rightmark} @@ -162,17 +163,19 @@ This work consists of the files beilstein.dtx, % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % -% \changes{v1.0}{2010/05/11}{Release on start of BJNANO public website.} -% \changes{v1.1}{2010/08/16}{Page number bug fix.} -% \changes{v1.2}{2017/08/16}{Fix for recent babel versions.} -% \changes{v1.2}{2017/08/16}{Fix for @misc bib entries.} -% \changes{v1.2}{2017/08/16}{All files converted to UTF-8.} +% \changes{v1.0}{2010/05/11}{Release on start of BJNANO public website} +% \changes{v1.1}{2010/08/16}{Page number bug fix} +% \changes{v1.2}{2017/08/16}{Fix for recent babel versions} +% \changes{v1.2}{2017/08/16}{Fix for @misc bib entries} +% \changes{v1.2}{2017/08/16}{All files converted to UTF-8} % \changes{v1.2}{2017/08/21}{Fix for the declaration of \cs{-} as a robust % command. There is a conflict between package bpchem and the latest -% \LaTeX{} release.} +% \LaTeX{} release} % \changes{v1.3}{2017/11/09}{Fix: Loading of \pkg{cleveref} is postponed to the -% very end of the preamble in order to avoid problems with \pkg{hyperref}.} +% very end of the preamble in order to avoid problems with \pkg{hyperref}} % \changes{v1.4}{2018/01/20}{Add new manuscript type \opt{suppinfo}} +% \changes{v1.5}{2019/10/30}{Add new environment \env{funding}} +% \changes{v1.5}{2019/09/12}{Update documentation} % \GetFileInfo{\jobname.dtx} % \DoNotIndex{\newcommand,\newenvironment} % \DoNotIndex{\def,\edef,\gdef,\xdef,\global,\long,\let} @@ -374,8 +377,8 @@ This work consists of the files beilstein.dtx, % \vspace*{-2.5cm}{\includegraphics*[width=7.7cm,keepaspectratio]{bjnano_logo}}\\[1cm] % \begin{center} % {\bfseries\LARGE Technical Handbook}\\[3ex] -% {\Large The \LaTeX\ \pkg{Beilstein} bundle for submissions to the\\\emph{Beilstein -% Journal of Nanotechnology}} +% {\Large The \LaTeX\ \pkg{Beilstein} bundle for submissions to the\\% +% \emph{Beilstein Journal of Nanotechnology}} % \end{center} % \vspace{2cm} % \setstretch{1.3} @@ -453,8 +456,7 @@ This work consists of the files beilstein.dtx, % % \newpage % If you are not sure about local texmf trees at all, you can have a -% look at \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf} -% for more information. +% look at \url{https://texfaq.org/FAQ-inst-wlcf} for more information. % % \section{Requirements} % The \pkg{Beilstein} class was designed to rely on standard \LaTeX\ @@ -522,7 +524,8 @@ This work consists of the files beilstein.dtx, % which takes the values listed in Table~\ref{tab:optionsmanuscript}. % \begin{table} % \centering -% \caption{Possible values for key-value option ``manuscript''.\textsuperscript{\textit{a}}} +% \caption{Possible values for key-value option +% ``manuscript''.\textsuperscript{\textit{a}}} % \label{tab:optionsmanuscript} % \begin{tabular}{ll} % \toprule @@ -549,8 +552,8 @@ This work consists of the files beilstein.dtx, % \DescribeOption{american}\DescribeOption{british} % Two other options of a more technical aspect exist. Firstly you can % tell \LaTeX\ whether you use American or British English (see Table \ref{tab:language}). -% Internally only different hyphenation patterns are used. So you might not see a -% difference in the output at first sight. +% Internally only different hyphenation patterns are used. So you might not see +% a difference in the output at first sight. % \begin{table} % \centering % \caption{Options for language.\textsuperscript{\textit{a}}} @@ -708,7 +711,8 @@ This work consists of the files beilstein.dtx, % \begin{table} % \centering % \begin{minipage}{\linewidth} -% \caption{Allowed section headings for the different \pkg{Beilstein} class manuscript types.} +% \caption{Allowed section headings for the different \pkg{Beilstein} class +% manuscript types.} % \label{tab:specialsections} % \begin{tabular}{@{}l*{5}{>{$}c<{$}}@{}} % \toprule @@ -744,45 +748,50 @@ This work consists of the files beilstein.dtx, % \subsection{Special sections}\label{sec:special} % \DescribeEnv{abstract} % After the title page an abstract must be inserted (except for -% ``Book Reports'' and ``Commentaries''). To meet the specifications for \BJNANO submissions -% \LaTeX\ redefines the usual \env{abstract} environment internally. -% -% \DescribeMacro{\background} -% \DescribeMacro{\results} -% \DescribeMacro{\conclusion} -% For the special items of the abstract mentioned in the -% guidelines the three commands \cs{background}, \cs{results} and -% \cs{conclusion} are defined. Each command starts a new line and prints the -% item's name in boldface. +% ``Book Reports'' and ``Commentaries''). To meet the specifications for +% \BJNANO submissions \LaTeX\ redefines the usual \env{abstract} environment +% internally. % % \DescribeMacro{\keywords} % Although the ``Keywords'' could be considered as a part of the title page % they are inserted right after the abstract. There can be an -% arbitrary number of keywords, and therefore the \cs{keywords} macro has only one -% mandatory argument holding the keywords separated by semicolons. +% arbitrary number of keywords (at least five keywords are recommended), and +% therefore the \cs{keywords} macro has only one +% mandatory argument holding the keywords separated by semicolons. % -% An abstract with keywords can look like this: +% An abstract with keywords should look like this: % \begin{LaTeXdemo}[code only] % \begin{abstract} -% \background ... -% \results ... -% \conclusion ... +% ... % \end{abstract} % \keywords{allenylsilanes; rhodium(II) octanoate-mediated % rearrangement; silylketenes; titanium carbenoids; ylide} % \end{LaTeXdemo} % % \DescribeEnv{acknowledgements} -% %\enlargethispage{\baselineskip} -% The ``Acknowledgements'' are an optional part of all article types. -% As the layout differs from that of the main text, they should be -% written using the environment \env{acknowledgements}: +% \DescribeEnv{funding} +% The sections ``Acknowledgements'' and ``Funding'' are optional parts of all +% article types. +% +% \noindent\fcolorbox{black}{red!40}{\parbox{% +% \dimexpr\textwidth-2\fboxsep-2\fboxrule\relax}{% +% All financial disclosures are supposed to be part of the ``Funding'' +% section.}} As the layout differs from that of the main text, they should be +% written using the environments \env{acknowledgements} and \env{funding}: +% \pagebreak % \begin{LaTeXdemo}[code only] % \begin{acknowledgements} -% I would like to thank ... +% We would like to thank ... % \end{acknowledgements} % \end{LaTeXdemo} % +% \begin{LaTeXdemo}[code only] +% \begin{funding} +% This work was financially supported by ... +% The authors are grateful for funding from ... +% \end{funding} +% \end{LaTeXdemo} +% % \DescribeEnv{suppinfo}\label{suppinfo}% % Another optional section of an article is the % ``Supporting Information'' which may consist of various ``Supporting @@ -792,7 +801,8 @@ This work consists of the files beilstein.dtx, % \DescribeMacro{\sifile} % Inside the \env{suppinfo} environment the command \cs{sifile} can be % used to add a ``Supporting Information File''. Its syntax is:\\ -% \cs{sifile\oarg{long description}\marg{filename}\marg{format}\marg{short description}} +% \cs{sifile\oarg{long description}\marg{filename}\marg{format}\marg{short +% description}} % % Each \cs{sifile} can be followed by a \cs{label\marg{labelname}} to % cross-reference to that file in the main text using @@ -809,8 +819,9 @@ This work consists of the files beilstein.dtx, % \end{suppinfo} % \end{LaTeXdemo} % -% \DescribeEnv{\LaTeX\ source}A Supporting Information File can be created from a \LaTeX\ source using the -% Beilstein \LaTeX\ class. The same syntax that was used for the title page of the main manuscript +% \DescribeEnv{\LaTeX\ source}A Supporting Information File can be created from +% a \LaTeX\ source using the Beilstein \LaTeX\ class. The same syntax that was +% used for the title page of the main manuscript % can be used for the Supporting Information. An additional title for the % Supporting Information (e.g.\ ``Additional experimental data'') can be added % by using the \oarg{sititle} option of the \cs{title} command: @@ -825,7 +836,8 @@ This work consists of the files beilstein.dtx, % \LaTeX\ already knows about the built-in environments \env{table} % and \env{figure}. For \BJNANO publications a third environment is added: % \env{scheme}. There is no difference in usage between \env{scheme} -% and the former two. To add a scheme ``AScheme.pdf'' you can enter the following: +% and the former two. To add a scheme ``AScheme.pdf'' you can enter the +% following: % \begin{LaTeXdemo}[code only] % \begin{scheme} % \caption{A scheme demonstrating something.} @@ -833,9 +845,10 @@ This work consists of the files beilstein.dtx, % \includegraphics[width=16.8cm,keepaspectratio]{AScheme} % \end{scheme} % \end{LaTeXdemo} -% \newpage -% \noindent\fcolorbox{black}{red!40}{\parbox{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}% -% {PDF\LaTeX\ is limited to a small set of graphic formats. All files have +% +% \noindent\fcolorbox{black}{red!40}{\parbox{% +% \dimexpr\textwidth-2\fboxsep-2\fboxrule\relax}{% +% PDF\LaTeX\ is limited to a small set of graphic formats. All files have % to be either in the PDF, PNG or JPG format. The EPS format is fine as well, % because it can be converted easily to PDF (e.g.\ using \textsf{epstopdf}).}} % @@ -883,7 +896,7 @@ This work consists of the files beilstein.dtx, % \label{scheme:silylketenes} % \end{scheme} % \end{LaTeXdemo} -% +% \pagebreak % \DescribeMacro{\dblcolfigure}\DescribeMacro{\dblcolscheme} % \DescribeEnv{dblcoltabular}\DescribeEnv{dblcoltabularx} % The same macros and environments with ``dbl'' instead of ``sgl'' are @@ -999,10 +1012,11 @@ This work consists of the files beilstein.dtx, % \texttt{O\$\_2\$}, but both methods are not very % comfortable when they have to be applied at several places. % On the other hand the commands \texttt{\_} for subscripts and -% \texttt{\^} for superscripts should remain. Therefore a special \cs{chem} macro -% is provided by the \pkg{Beilstein} class. +% \texttt{\^} for superscripts should remain. Therefore a special \cs{chem} +% macro is provided by the \pkg{Beilstein} class. % -% \vskip2ex\noindent\textbf{Chemical specialities: the \cs{chem} and \cs{unit} macros}\\ +% \vskip2ex% +% \noindent\textbf{Chemical specialities: the \cs{chem} and \cs{unit} macros}\\ % Although there already exist many powerful packages like % \pkg{siunitx} or \pkg{chemsym} to write physical and chemical units % and symbols, the \pkg{Beilstein} class implements its own rather @@ -1055,7 +1069,8 @@ This work consists of the files beilstein.dtx, % \bottomrule % \end{tabular} % \end{table} -% +% +% \pagebreak % \DescribeMacro{\rightarrow} % \DescribeMacro{\rightleftarrows} % \DescribeMacro{\rightleftharpoons} @@ -1113,7 +1128,8 @@ This work consists of the files beilstein.dtx, % % \noindent\textbf{Chemical structures from external programs}\\ % There are a lot of highly specified software programs like -% \textsf{ChemDraw\textsuperscript{\textregistered}} to draw complex chemical structures. You should +% \textsf{ChemDraw\textsuperscript{\textregistered}} to draw complex chemical +% structures. You should % always use such programs and then export your drawings to a pdf file % and include it into your \LaTeX\ document as described in % section~\ref{sec:floats}. @@ -1151,14 +1167,13 @@ This work consists of the files beilstein.dtx, % The \BibTeX\ programming language knows the most common entry % types cited in academic papers. However, a few like ``WWW'' for % internet resources and links or ``SOFTWARE'' are missing. They -% could be emulated, but it is much better to directly introduce them to \BibTeX. -% The same is valid for special data fields. +% could be emulated, but it is much better to directly introduce them to +% \BibTeX. The same is valid for special data fields. % -% On the other hand, not all entry types and fields, that are in included in \BibTeX, -% are needed and -% allowed in \BJNANO submissions. They could even mess up the output when -% not treated correctly. Therefore the entry types are restricted to -% the following ones: +% On the other hand, not all entry types and fields, that are in included in +% \BibTeX, are needed and allowed in \BJNANO submissions. They could even mess +% up the output when not treated correctly. Therefore the entry types are +% restricted to the following ones: % \begin{multicols}{3} % \small % \begin{itemize}\ttfamily @@ -1177,13 +1192,15 @@ This work consists of the files beilstein.dtx, % \end{itemize} % \end{multicols} % -% \noindent In addition to the well known data fields the following ones were added: +% \noindent In addition to the well known data fields the following ones were +% added: % \begin{description} % \item[doi] Digital Object Identifier, e.g.\ % \verb+doi = {10.1080/02678290500291699}+\\(optional for \texttt{@article} % and \texttt{@inpress}) % \item[url] URL for any internet source, e.g.\\ -% \verb+url = {http://www.beilstein-journals.org/bjnano}+ (mandatory for \texttt{@WWW}) +% \verb+url = {http://www.beilstein-journals.org/bjnano}+ (mandatory for +% \texttt{@WWW}) % \item[urldate] Date when the url was visited last, e.g.\ % \verb+urldate = {Sep 12, 2007}+ (mandatory for \texttt{@WWW}) % \item[venue] Information about a conference (place and time), e.g.\\ @@ -1191,12 +1208,13 @@ This work consists of the files beilstein.dtx, % \texttt{@PROCEEDINGS} and \texttt{@INPROCEEDINGS} % \item[version] Version of a software, e.g.\ % \verb+version = {Revision C.02}+ (mandatory for \texttt{@SOFTWARE}) -% \end{description} +% \end{description}% % -% \noindent\fcolorbox{black}{red!40}{\parbox{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}% -% {The \pkg{Beilstein} bundle contains the file ``beilstein-template.bib'' -% with example entries for all types of references described in -% \cite[pp 5--6]{Beilstein-MSG}.}} +% \noindent\fcolorbox{black}{red!40}{\parbox{% +% \dimexpr\textwidth-2\fboxsep-2\fboxrule\relax}{The% +% \pkg{Beilstein} bundle contains the file ``beilstein-template.bib'' with +% example entries for all types of references +% described in \cite[pp 5--6]{Beilstein-MSG}.}}% % \newpage % \begin{thebibliography}{9} % \bibitem{Beilstein-MSG}\emph{Beilstein-Institut:} Instructions for Authors @@ -1232,7 +1250,8 @@ This work consists of the files beilstein.dtx, % \bottomrule % \end{tabular} % \begin{flushleft}\footnotesize -% \textsuperscript{\textit{a}}\cs{footnote} remains active in the \env{table} environment. +% \textsuperscript{\textit{a}}\cs{footnote} remains active in the \env{table} +% environment. % \end{flushleft} % \end{minipage} % \end{table} @@ -1246,60 +1265,59 @@ This work consists of the files beilstein.dtx, % \endfoot % \bottomrule % \endlastfoot -% beilstein.cls & 2018/01/20 v1.4 Template for submissions to the -% ``Beilstein Journal of Nanotechnology'' (BJNANO)\\ +% beilstein.cls & 2019/10/30 v1.5 Template for submissions to the ``Beilstein +% Journal of Nanotechnology'' (BJNANO)\\ % xkeyval.sty & 2014/12/03 v2.7a package option processing (HA)\\ % xkeyval.tex & 2014/12/03 v2.7a key=value parser (HA)\\ % ifthen.sty & 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)\\ -% article.cls & 2014/09/29 v1.4h Standard LaTeX document class\\ -% size12.clo & 2014/09/29 v1.4h Standard LaTeX file (size option)\\ -% babel.sty & 2018/01/24 3.17 The Babel package\\ +% article.cls & 2018/09/03 v1.4i Standard LaTeX document class\\ +% size12.clo & 2018/09/03 v1.4i Standard LaTeX file (size option)\\ +% babel.sty & 2019/07/19 3.33 The Babel package\\ +% bblopts.cfg & 2005/09/08 v0.1 add Arabic and Farsi to ``declared'' options of +% babel\\ % american.ldf & 2017/06/06 v3.3r English support from the babel system\\ -% inputenc.sty & 2015/03/17 v1.2c Input encoding file\\ -% utf8.def & 2017/01/28 v1.1t UTF-8 support for inputenc\\ -% t1enc.dfu & 2017/01/28 v1.1t UTF-8 support for inputenc\\ -% ot1enc.dfu & 2017/01/28 v1.1t UTF-8 support for inputenc\\ -% omsenc.dfu & 2017/01/28 v1.1t UTF-8 support for inputenc\\ +% inputenc.sty & 2018/08/11 v1.3c Input encoding file\\ % fontenc.sty\\ -% t1enc.def & 2017/04/05 v2.0i Standard LaTeX file\\ +% t1enc.def & 2018/08/11 v2.0j Standard LaTeX file\\ % mathptmx.sty & 2005/04/12 PSNFSS-v9.2a Times w/ Math, improved (SPQR, WaS) \\ % helvet.sty & 2005/04/12 PSNFSS-v9.2a (WaS) \\ % courier.sty & 2005/04/12 PSNFSS-v9.2a (WaS) \\ -% textcomp.sty & 2017/04/05 v2.0i Standard LaTeX package\\ +% textcomp.sty & 2018/08/11 v2.0j Standard LaTeX package\\ % ts1enc.def & 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file\\ -% ts1enc.dfu & 2017/01/28 v1.1t UTF-8 support for inputenc\\ -% geometry.sty & 2010/09/12 v5.6 Page Geometry\\ -% ifpdf.sty & 2017/03/15 v3.2 Provides the ifpdf switch\\ +% ts1enc.dfu & 2018/10/05 v1.2f UTF-8 support for inputenc\\ +% geometry.sty & 2018/04/16 v5.8 Page Geometry\\ +% ifpdf.sty & 2018/09/07 v3.3 Provides the ifpdf switch\\ % ifvtex.sty & 2016/05/16 v1.6 Detect VTeX and its facilities (HO)\\ % ifxetex.sty & 2010/09/12 v0.6 Provides ifxetex conditional\\ +% geometry.cfg\\ % setspace.sty & 2011/12/19 v6.7a set line spacing\\ -% ragged2e.sty & 2009/05/21 v2.1 ragged2e Package (MS)\\ +% ragged2e.sty & 2019/07/28 v2.2 ragged2e Package (MS)\\ % everysel.sty & 2011/10/28 v1.2 EverySelectfont Package (MS)\\ % footmisc.sty & 2011/06/06 v5.5b a miscellany of footnote facilities\\ % lineno.sty & 2005/11/02 line numbers on paragraphs v4.41\\ -% amsmath.sty & 2017/09/02 v2.17a AMS math features\\ +% amsmath.sty & 2018/12/01 v2.17b AMS math features\\ % amstext.sty & 2000/06/29 v2.01 AMS text\\ % amsgen.sty & 1999/11/30 v2.0 generic functions\\ % amsbsy.sty & 1999/11/29 v1.2d Bold Symbols\\ % amsopn.sty & 2016/03/08 v2.02 operator names\\ % amssymb.sty & 2013/01/14 v3.01 AMS font symbols\\ % amsfonts.sty & 2013/01/14 v3.01 Basic AMSFonts support\\ -% multicol.sty & 2017/04/11 v1.8q multicolumn formatting (FMi)\\ +% multicol.sty & 2018/12/27 v1.8v multicolumn formatting (FMi)\\ % float.sty & 2001/11/08 v1.3d Float enhancements (AL)\\ -% flafter.sty & 2017/04/11 v1.4a Standard LaTeX floats after reference (FMi)\\ +% flafter.sty & 2018/11/28 v1.4d Standard LaTeX floats after reference (FMi)\\ % graphicx.sty & 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)\\ % graphics.sty & 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR)\\ % trig.sty & 2016/01/03 v1.10 sin cos tan (DPC)\\ % graphics.cfg & 2016/06/04 v1.11 sample graphics configuration\\ % pdftex.def & 2018/01/08 v1.0l Graphics/color driver for pdftex\\ -% array.sty & 2016/10/06 v2.4d Tabular extension package (FMi)\\ -% tabularx.sty & 2016/02/03 v2.11 `tabularx' package (DPC)\\ -% longtable.sty & 2014/10/28 v4.11 Multi-page Table package (DPC)\\ -% etoolbox.sty & 2017/11/22 v2.5 e-TeX tools for LaTeX (JAW)\\ +% array.sty & 2018/12/30 v2.4k Tabular extension package (FMi)\\ +% tabularx.sty & 2016/02/03 v2.11b `tabularx' package (DPC)\\ +% longtable.sty & 2014/10/28 v4.11 Multi-page Table package (DPC)+ FMi change\\ +% etoolbox.sty & 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW)\\ % natbib.sty & 2010/09/13 8.31b (PWD, AO)\\ % url.sty & 2013/09/16 ver 3.4 Verb mode for urls, etc.\\ % xspace.sty & 2014/10/28 v1.13 Space after command names (DPC,MH)\\ -% cleveref.sty & 2013/12/28 v0.19 Intelligent cross-referencing\\ +% cleveref.sty & 2018/03/27 v0.21.4 Intelligent cross-referencing\\ % ts1cmr.fd & 2014/09/29 v2.5h Standard LaTeX font definitions\\ % t1ptm.fd & 2001/06/04 font definitions for T1/ptm.\\ % supp-pdf.mkii\\ @@ -1312,15 +1330,15 @@ This work consists of the files beilstein.dtx, % kvsetkeys.sty & 2016/05/16 v1.17 Key value parser (HO)\\ % etexcmds.sty & 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)\\ % ifluatex.sty & 2016/05/16 v1.4 Provides the ifluatex switch (HO)\\ -% pdftexcmds.sty & 2018/01/21 v0.26 Utility functions of pdfTeX for LuaTeX (HO)\\ -% epstopdf-sys.cfg & 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live\\ +% pdftexcmds.sty & 2019/07/25 v0.30 Utility functions of pdfTeX for LuaTeX +% (HO)\\ % t1phv.fd & 2001/06/04 scalable font definitions for T1/phv.\\ % ot1ztmcm.fd & 2000/01/03 Fontinst v1.801 font definitions for OT1/ztmcm.\\ % omlztmcm.fd & 2000/01/03 Fontinst v1.801 font definitions for OML/ztmcm.\\ % omsztmcm.fd & 2000/01/03 Fontinst v1.801 font definitions for OMS/ztmcm.\\ % omxztmcm.fd & 2000/01/03 Fontinst v1.801 font definitions for OMX/ztmcm.\\ % ot1ptm.fd & 2001/06/04 font definitions for OT1/ptm.\\ -%\end{longtable} +% \end{longtable} % % \normalsize % \StopEventually{\clearpage\PrintChanges\PrintIndex} @@ -1332,7 +1350,7 @@ This work consists of the files beilstein.dtx, % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{beilstein} -[2018/01/29 v1.4 Template for submissions to the ``Beilstein Journal % +[2019/10/30 v1.5 Template for submissions to the ``Beilstein Journal % of Nanotechnology'' (BJNANO)] % \end{macrocode} % For class options key-value pairs are used. They are provided by the @@ -1957,7 +1975,8 @@ This work consists of the files beilstein.dtx, \else \ifcase\NAT@ctype \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else - \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}% + \@citea + \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}% \fi \if*#1*\else#1\NAT@spacechar\fi \NAT@mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}% @@ -2242,7 +2261,8 @@ This work consists of the files beilstein.dtx, % \end{macrocode} % The usual \cs{maketitle} command puts together all information and % prints the title page. -% \changes{v1.4}{2018/01/15}{For suppinfo manuscripts we need a special title page} +% \changes{v1.4}{2018/01/15}{For suppinfo manuscripts we need a special title +% page} % \begin{macrocode} \ifthenelse{\equal{\beilstein@manuscript}{\beilstein@manuscript@suppinfo}}% {\long\def\maketitle{% @@ -2265,14 +2285,20 @@ This work consists of the files beilstein.dtx, \ifthenelse{\boolean{corauth}}% {}% {\ifthenelse{\value{c@totauthor}>1}% - {\ClassError{beilstein}{At least one corresponding author has to be given.\MessageBreak Please use \string\author*\space for that}% - {Please use at least one \string\author* command to set information % - about the corresponding author.\MessageBreak Have a look at the % + {\ClassError{beilstein}{At least one corresponding author has to be + given.\MessageBreak Please use \string\author*\space for that}% + {Please use at least one \string\author* command to set + information % + about the corresponding author.\MessageBreak Have a look at + the % documentation for more details}% }% {\ifthenelse{\equal{\emails}{}}% - {\ClassError{beilstein}{The author has been made corresponding author.\MessageBreak Therefore please provide an email address for the author}% - {Use the second optional argument for that or use \string\author* instead}}{}% + {\ClassError{beilstein}{The author has been made corresponding + author.\MessageBreak Therefore please provide an email address + for the author}% + {Use the second optional argument for that or use + \string\author* instead}}{}% }% }% \ifthenelse{\value{c@totaffiliation}>1}% @@ -2302,14 +2328,21 @@ This work consists of the files beilstein.dtx, \par\vskip2ex% \ifthenelse{\boolean{corauth}}{}% {\ifthenelse{\value{c@totauthor}>1}% - {\ClassError{beilstein}{At least one corresponding author has to be given.\MessageBreak Please use \string\author*\space for that}% - {Please use at least one \string\author* command to set information % - about the corresponding author.\MessageBreak Have a look at the % + {\ClassError{beilstein}{At least one corresponding author has to + be given.\MessageBreak Please use \string\author*\space for + that}% + {Please use at least one \string\author* command to set + information % + about the corresponding author.\MessageBreak Have a look + at the % documentation for more details}% }% {\ifthenelse{\equal{\emails}{}}% - {\ClassError{beilstein}{The author has been made corresponding author.\MessageBreak Therefore please provide an email address for the author}% - {Use the second optional argument for that or use \string\author* instead}}{}% + {\ClassError{beilstein}{The author has been made + corresponding author.\MessageBreak Therefore please provide + an email address for the author}% + {Use the second optional argument for that or use + \string\author* instead}}{}% }% }% \ifthenelse{\value{c@totaffiliation}>1}% @@ -2344,7 +2377,8 @@ This work consists of the files beilstein.dtx, }% {% \renewenvironment{abstract}{\ClassWarning{beilstein}{An abstract % - should not be part of the chosen document type \beilstein@manuscript}}{}% + should not be part of the chosen document type + \beilstein@manuscript}}{}% \newcommand*{\background}{\relax}% \newcommand*{\results}{\relax}% \newcommand*{\conclusion}{\relax}% @@ -2367,6 +2401,12 @@ This work consists of the files beilstein.dtx, % \begin{macrocode} \newenvironment{acknowledgements}{\par\textbf{\large Acknowledgements\\*}}{} % \end{macrocode} +% \changes{v1.5}{2019/10/30}{New environment \env{funding}} +% Funding is defined the same. +% \DescribeEnv{funding} +% \begin{macrocode} +\newenvironment{funding}{\par\textbf{\large Funding\\*}}{} +% \end{macrocode} % Supporting Information are a special section at the end the main % document, so they get an own environment as well % \DescribeEnv{suppinfo} @@ -3869,7 +3909,8 @@ FUNCTION {format.lab.names} 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { bbl.etal space.connect } - { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect } + { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect + } if$ } if$ @@ -4405,9 +4446,14 @@ pages="1-4", %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Meta-data block %% --------------- -%% The title of the article is given with the usual \title command. -%% -%% If you write a file for supporting information using manuscript=suppinfo, +%% The title of the article is given with the usual \title command. +%% The title of an article should be clear, concise and comprehensible to all +%% readers with the purpose of quickly identifying the focus of the reported +%% work. It should be brief and contain the most important keywords for search +%% engine optimization. The use of capitals should be restricted to the first +%% word and proper nouns. As far as possible abbreviations should be avoided. +%% +%% If you write a file for supporting information using manuscript=suppinfo, %% you should give an additional title using the macro \sititle or the %% optional argument of \title %% @@ -4437,20 +4483,32 @@ pages="1-4", %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% The document should begin with an abstract, if appropriate. If one %% is given and should not be, a warning is issued. -%% -%% For the three parts of the abstract, ``Background'', ``Results'' -%% and ``Conclusions'', the corresponding commands should be used. +%% The abstract should summarize the context and purpose of the study, +%% the main findings and provide a brief summary and potential +%% implications. Abbreviations should be used sparingly in the abstract. +%% Citations and references should not be given in abstracts. Only +%% standard characters are allowed. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{abstract} -\background Allenylsilanes are useful intermediates in organic synthesis. An attractive, -convergent but little used approach for their synthesis is the alkylidenation of stable silylketenes. Reactions thus far have been limited to the use of unsubstituted silylketenes (or equivalents) with stabilised or semi-stabilised ylides only. The current study explores the reactions of substituted ketenes prepared through rhodium(II)-mediated rearrangement of silylated diazoketones. -\results A range of novel 1,3-disubstituted and 1,3,3-trisubstituted allenylsilanes were prepared using stabilised and semi-stabilised ylides. Alkylidenation with non-stabilised phosphorus ylides was not viable, but the use of titanium-based methylenating reagents was successful, allowing access to 1-substituted allenylsilanes. -\conclusion Many novel allenylsilanes may be accessed by alkylidenation of substituted silylketenes. Importantly, for the first time, simple methylenation of silylketenes has been achieved using titanium carbenoid-based reagents. +Allenylsilanes are useful intermediates in organic synthesis. An attractive, +convergent but little used approach for their synthesis is the alkylidenation +of stable silylketenes. Reactions thus far have been limited to the use of +unsubstituted silylketenes (or equivalents) with stabilised or semi-stabilised +ylides only. The current study explores the reactions of substituted ketenes +prepared through rhodium(II)-mediated rearrangement of silylated diazoketones. +A range of novel 1,3-disubstituted and 1,3,3-trisubstituted allenylsilanes were +prepared using stabilised and semi-stabilised ylides. Alkylidenation with +non-stabilised phosphorus ylides was not viable, but the use of titanium-based +methylenating reagents was successful, allowing access to 1-substituted +allenylsilanes. Many novel allenylsilanes may be accessed by alkylidenation of +substituted silylketenes. Importantly, for the first time, simple methylenation +of silylketenes has been achieved using titanium carbenoid-based reagents. \end{abstract} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Keywords can be given with the \keywords command which takes five -%% arguments. The arguments have to be sorted. +%% Keywords can be given with the \keywords command. Any number of +%% keywords can be given, but a number of at least five keywords is +%% recommended. The arguments are to be sorted alphabetically. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \keywords{allenylsilanes; rhodium(II) octanoate-mediated rearrangement; silylketenes; titanium carbenoids; ylide} @@ -4563,14 +4621,19 @@ Supporting information features copies of \HNMR spectra of silylated diazoketone \end{suppinfo} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% The "Acknowledgements" section can be given in all manuscripts. -%% This should be done within the ``acknowledgements'' environment, -%% which will make the correct section title. +%% The sections "Acknowledgements" and "Funding" can be given in all +%% manuscripts. +%% This should be done within the environments ``acknowledgements'' +%% and ``funding'', which will produce the correct section titles. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{acknowledgements} -We acknowledge EPSRC grant GR/L60135/01 (PCD) and generous unrestricted research funding from Pfizer for financial support. +We acknowledge Prof. H. Vlassov for the helpful discussions of the results and J. Martin for assistance with the synthesis. \end{acknowledgements} +\begin{funding} +The following sources of funding are acknowledged: National Natural Science Foundation of China (S.P.M.; Grant Nos. 51502240, 11674273, U1856203), Wellcome Trust (S.P.M., Award No. 094542/Z/12/Z, EPSRC (P.C.D.; Grant No. GR/L60135/01 (PCD)), and both authors thank the generous research funding from Pfizer for financial support. +\end{funding} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% The appropriate \bibliography command should be placed here. %% Notice that the class file automatically sets \bibliographystyle @@ -4578,8 +4641,6 @@ We acknowledge EPSRC grant GR/L60135/01 (PCD) and generous unrestricted research %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibliography{beilstein-template} \vspace{3cm} -This article is published in full length in \textit{Beilstein J. Org. Chem.} -\textbf{2005}, \textit{1}, No. 5. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% That's it. Ending the document finishes the article. Happy TeXing! diff --git a/macros/latex/contrib/beilstein/beilstein.ins b/macros/latex/contrib/beilstein/beilstein.ins index 98897aa14d..ade7d91531 100644 --- a/macros/latex/contrib/beilstein/beilstein.ins +++ b/macros/latex/contrib/beilstein/beilstein.ins @@ -6,7 +6,7 @@ beilstein -- Support for submissions to the ``Beilstein Journal of Nanotechnology'' published by the Beilstein-Institut for the Advancement of Chemical Sciences -Version: 1.4 +Version: 1.5 E-mail: journals-support@beilstein-institut.de License: Released under the LaTeX Project Public License v1.3c or later See http://www.latex-project.org/lppl.txt @@ -16,7 +16,8 @@ See http://www.latex-project.org/lppl.txt \postamble Originally developed by Martin Sievers (info@schoenerpublizieren.de) -Copyright (C) 2009-2018 by Beilstein-Institut for the Advancement of Chemical Sciences (Beilstein) +Copyright (C) 2009-2019 by Beilstein-Institut for the Advancement of Chemical +Sciences (Beilstein) Part of this bundle is derived from cite.sty, to which the following license applies: diff --git a/macros/latex/contrib/beilstein/beilstein.pdf b/macros/latex/contrib/beilstein/beilstein.pdf Binary files differindex d874e434ab..3bc8f9648c 100644 --- a/macros/latex/contrib/beilstein/beilstein.pdf +++ b/macros/latex/contrib/beilstein/beilstein.pdf diff --git a/macros/latex/contrib/epstopdf-pkg/epstopdf.dtx b/macros/latex/contrib/epstopdf-pkg/epstopdf.dtx index e5bd67ebcb..48a258ae07 100644 --- a/macros/latex/contrib/epstopdf-pkg/epstopdf.dtx +++ b/macros/latex/contrib/epstopdf-pkg/epstopdf.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % % File: epstopdf.dtx -% Version: 2019-11-30 v2.9 +% Version: 2019-12-09 v2.10 % Info: Conversion with epstopdf on the fly % % Copyright (C) @@ -80,7 +80,7 @@ \input docstrip.tex \Msg{************************************************************************} \Msg{* Installation} -\Msg{* Package: epstopdf 2019-11-30 v2.9 Conversion with epstopdf on the fly (HO)} +\Msg{* Package: epstopdf 2019-12-09 v2.10 Conversion with epstopdf on the fly (HO)} \Msg{************************************************************************} \keepsilent @@ -92,7 +92,7 @@ This is a generated file. Project: epstopdf -Version: 2019-11-30 v2.9 +Version: 2019-12-09 v2.10 Copyright (C) 2001, 2006-2010 Heiko Oberdiek @@ -112,7 +112,7 @@ This work has the LPPL maintenance status "maintained". The Current Maintainers of this work are Heiko Oberdiek and the Oberdiek Package Support Group -https://github.com/ho-tex/oberdiek/issues +https://github.com/ho-tex/epstopdf/issues This work consists of the main source file epstopdf.dtx @@ -131,10 +131,6 @@ and the derived files \file{epstopdf-base.sty}{\from{epstopdf.dtx}{base}}% % \usedir{doc/latex/epstopdf/test}% % \file{epstopdf-test1.tex}{\from{epstopdf.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/epstopdf/catalogue}% -% \file{epstopdf-pkg.xml}{\from{epstopdf.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -161,7 +157,7 @@ and the derived files %<*driver> \NeedsTeXFormat{LaTeX2e} \ProvidesFile{epstopdf.drv}% - [2019-11-30 v2.9 Conversion with epstopdf on the fly (HO)]% + [2019-12-09 v2.10 Conversion with epstopdf on the fly (HO)]% \documentclass{ltxdoc} \usepackage{holtxdoc}[2011/11/22] \begin{document} @@ -174,7 +170,7 @@ and the derived files % \GetFileInfo{epstopdf.drv} % % \title{The \xpackage{epstopdf} package} -% \date{2019-11-30 v2.9} +% \date{2019-12-09 v2.10} % \author{Heiko Oberdiek\thanks % {Please report any issues at \url{https://github.com/ho-tex/epstopdf/issues}}} % @@ -576,7 +572,7 @@ and the derived files \fi \expandafter\x\csname ver@epstopdf.sty\endcsname \ProvidesPackage{epstopdf}% - [2019-11-30 v2.9 Conversion with epstopdf on the fly (HO)]% + [2019-12-09 v2.10 Conversion with epstopdf on the fly (HO)]% % \end{macrocode} % Larger catcode set because of configuration files needed. % \begin{macrocode} @@ -729,7 +725,7 @@ and the derived files \fi \expandafter\x\csname ver@epstopdf-base.sty\endcsname \ProvidesPackage{epstopdf-base}% - [2019-11-30 v2.9 Base part for package epstopdf]% + [2019-12-09 v2.10 Base part for package epstopdf]% % \end{macrocode} % % \subsubsection{Catcodes} @@ -808,16 +804,16 @@ and the derived files \def\pdf@filesize{\pdffilesize} \def\pdf@system#{\immediate\write18 } \else - \directlua{require("pdftexcmds")} + \directlua{require('pdftexcmds')} \long\def\pdf@strcmp#1#2{\directlua{% - oberdiek.pdftexcmds.strcmp("\luaescapestring{#1}", - "\luaescapestring{#2}")}}% + oberdiek.pdftexcmds.strcmp('\luaescapestring{#1}', + '\luaescapestring{#2}')}}% \def\pdf@filemoddate#1{\directlua{% - oberdiek.pdftexcmds.filemoddate("\luaescapestring{#1}")}} - \def\pdf@filesize#1{\directlua0{% - oberdiek.pdftexcmds.filesize("\luaescapestring{#1}")}} + oberdiek.pdftexcmds.filemoddate('\luaescapestring{#1}')}} + \def\pdf@filesize#1{\directlua{% + oberdiek.pdftexcmds.filesize('\luaescapestring{#1}')}} \def\pdf@system#1{\directlua{% - oberdiek.pdftexcmds.system("\luaescapestring{#1}")}} + oberdiek.pdftexcmds.system('\luaescapestring{#1}')}} \fi \fi \else @@ -1263,128 +1259,6 @@ and the derived files \ETE@AtEnd% %</base> % \end{macrocode} -% -% \section{Test} -% -% \subsection{Preface for standard catcode check} -% -% \begin{macrocode} -%<*test1> -\input miniltx.tex\relax -\def\Gin@driver{pdftex.def} -\input graphicx.sty\relax -\resetatcatcode -%</test1> -% \end{macrocode} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input epstopdf.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -%</test1> -% \end{macrocode} -% % \section{Installation} % % \subsection{Download} @@ -1435,7 +1309,6 @@ and the derived files % epstopdf.sty & tex/latex/epstopdf/epstopdf.sty\\ % epstopdf-base.sty & tex/latex/epstopdf/epstopdf-base.sty\\ % epstopdf.pdf & doc/latex/epstopdf/epstopdf.pdf\\ -% test/epstopdf-test1.tex & doc/latex/epstopdf/test/epstopdf-test1.tex\\ % epstopdf.dtx & source/latex/epstopdf/epstopdf.dtx\\ % \end{tabular}^^A % }^^A @@ -1673,6 +1546,9 @@ and the derived files % \begin{Version}{2019-11-30 v2.9} % \item Read the \verb|epstopdf.cfg| file even in the base code is being used. % \end{Version} +% \begin{Version}{2019-12-09 v2.10} +% \item use \verb|'| not \verb|"| for Lua strings, as the latter not made safe. +% \end{Version} % \end{History} % % \PrintIndex diff --git a/macros/latex/contrib/epstopdf-pkg/epstopdf.pdf b/macros/latex/contrib/epstopdf-pkg/epstopdf.pdf Binary files differindex 662a8d3324..5d214c2b8c 100644 --- a/macros/latex/contrib/epstopdf-pkg/epstopdf.pdf +++ b/macros/latex/contrib/epstopdf-pkg/epstopdf.pdf diff --git a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf Binary files differindex b89f3dadce..7d5bbf11a2 100644 --- a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf +++ b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-criticalendotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalendotes.pdf Binary files differindex 322930baa7..560f758a36 100644 --- a/macros/latex/contrib/reledmac/examples/1-criticalendotes.pdf +++ b/macros/latex/contrib/reledmac/examples/1-criticalendotes.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf Binary files differindex 58c6e4ce85..215abf880f 100644 --- a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf +++ b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf Binary files differindex 2ea543fc16..9deb36549d 100644 --- a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf +++ b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-tabular.pdf b/macros/latex/contrib/reledmac/examples/1-tabular.pdf Binary files differindex 4de165dc0a..8075208b3e 100644 --- a/macros/latex/contrib/reledmac/examples/1-tabular.pdf +++ b/macros/latex/contrib/reledmac/examples/1-tabular.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf Binary files differindex fd60bafa02..e0f8040bd6 100644 --- a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf +++ b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-verses.pdf b/macros/latex/contrib/reledmac/examples/1-verses.pdf Binary files differindex f4f095b595..491845af1a 100644 --- a/macros/latex/contrib/reledmac/examples/1-verses.pdf +++ b/macros/latex/contrib/reledmac/examples/1-verses.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf Binary files differindex 5dcb362f70..63cbed5ff2 100644 --- a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf +++ b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf Binary files differindex 234992fdf2..486f86064e 100644 --- a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf +++ b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf Binary files differindex 6480469438..caa574e1fa 100644 --- a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf +++ b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-indexing.pdf b/macros/latex/contrib/reledmac/examples/2-indexing.pdf Binary files differindex 677c44a9c5..ef19a258ca 100644 --- a/macros/latex/contrib/reledmac/examples/2-indexing.pdf +++ b/macros/latex/contrib/reledmac/examples/2-indexing.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf Binary files differindex 70acd08039..fe674db007 100644 --- a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf +++ b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf Binary files differindex 5d4752be5b..8a27944538 100644 --- a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf +++ b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf Binary files differindex bb8ae05c2f..6cf2e41932 100644 --- a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf +++ b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf Binary files differindex 0216e039ae..e871e5c4e5 100644 --- a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf +++ b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf Binary files differindex 5ef4de321f..2670377118 100644 --- a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf +++ b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf Binary files differindex 7a947b174b..40bdf72ad0 100644 --- a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf +++ b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-performances.pdf b/macros/latex/contrib/reledmac/examples/2-performances.pdf Binary files differindex f0a65f74d9..7ab49c12f7 100644 --- a/macros/latex/contrib/reledmac/examples/2-performances.pdf +++ b/macros/latex/contrib/reledmac/examples/2-performances.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf Binary files differindex f433c7d9cf..ed2d15af68 100644 --- a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf +++ b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf Binary files differindex 9fc9ef903d..863610cb23 100644 --- a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf +++ b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf Binary files differindex b1c0bd12f7..fa33a6352f 100644 --- a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf +++ b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf Binary files differindex c92efe7977..70ee4bf509 100644 --- a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf +++ b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf Binary files differindex 4e8d6c1264..3a8edb993f 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf Binary files differindex 6d6da6afb9..367b06af3a 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf Binary files differindex 9e93e43193..dd197f8a64 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf Binary files differindex 1fbb65173e..5176ddf289 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf Binary files differindex f41bc6ec19..3d4734412b 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf Binary files differindex f05bbda71b..7e00415508 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf Binary files differindex 96725b22af..1cdfb9cb69 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf Binary files differindex 47025be988..df5bdc53df 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf Binary files differindex 7ef12227ac..5a0197ab90 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf Binary files differindex 9c8ca1d152..bca13cf2be 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf Binary files differindex b66493220a..300718ed42 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf Binary files differindex 54df95f896..823465b5c3 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf Binary files differindex 015eae1241..dbfd3e5af1 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf Binary files differindex bbd64cc382..58c83ab6d5 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf Binary files differindex 06573333e4..24446a9bf8 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf Binary files differindex a13e3104b5..0908188f29 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf Binary files differindex a4020afd58..1b9cbbed54 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf Binary files differindex ac438cedfd..6e44a8e686 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf Binary files differindex 0ecf092691..352536bd61 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf Binary files differindex 17e01486db..937bce80e7 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf Binary files differindex 52e8c83adf..f36f6d346e 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf Binary files differindex 1bde041e7c..7d35654b4d 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf Binary files differindex f8fec4e7bd..139300fe90 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf diff --git a/macros/latex/contrib/reledmac/migration.pdf b/macros/latex/contrib/reledmac/migration.pdf Binary files differindex 983f93b018..1d6205a36c 100644 --- a/macros/latex/contrib/reledmac/migration.pdf +++ b/macros/latex/contrib/reledmac/migration.pdf diff --git a/macros/latex/contrib/reledmac/reledmac.dtx b/macros/latex/contrib/reledmac/reledmac.dtx index 93056b89f3..4c9a2b16cd 100644 --- a/macros/latex/contrib/reledmac/reledmac.dtx +++ b/macros/latex/contrib/reledmac/reledmac.dtx @@ -538,6 +538,7 @@ % \changes{v2.32.1}{2019/07/21}{Do not print \protect\cs{Xendsep} if we print \protect\cs{Xendsymlinenum}.} % \changes{v2.32.1}{2019/07/21}{When using \protect\cs{parindentX} or \protect\cs{Xparindent} and stanza, use the normal indentation in the footnote, not the verse indentation.} % \changes{v2.32.2}{2019/11/28}{Fix spurious vertical space in familiar footnotes with \protect\LuaLaTeX.} +% \changes{v2.32.3}{2019/12/09}{Fix bug with critical footnotes when typesetting arabic text with \protect\package{polyglossia}.} % Typeset scholarly editions with \LaTeX\thanks{This file (\dtxfilename) % has version number \fileversion, last revised \filedate.}} % @@ -3999,8 +4000,7 @@ % You have to insert it manually via \protect\cs{beforeeledchapter}, which must be called outside of a numbered section. % % \subsection{Optimization}\label{optimize} -% \DescribeMacro{\noeledsec} -% If you are not going to have any \protect\cs{eledxxx} commands, then load \macpackage\ with \protect\cs{noeledsec} option. +% If you are not going to have any \protect\cs{eledxxx} commands, then load \macpackage\ with \protect\option{noeledsec} option. % That will suppress the generation of unneeded \file{.eledsec} files, save memory, and make \macpackage\ run faster. % % \section{Quotation environments} @@ -4317,7 +4317,7 @@ % \begin{macrocode} %<*code> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{reledmac}[2019/11/28 v2.32.2 typesetting critical editions]% +\ProvidesPackage{reledmac}[2019/12/09 v2.32.3 typesetting critical editions]% % \end{macrocode} % % \subsection{Package options} @@ -7860,7 +7860,7 @@ % It is used to add to insert hyperlinks between a notes and the lemma. % \begin{macrocode} \newcounter{edtext} -\renewcommand{\theedtext}{edtxt@\arabic{edtext}}% +\renewcommand{\theedtext}{edtxt@\the\c@edtext}% % \end{macrocode} % \end{macro} % \begin{macro}{\edtext} diff --git a/macros/latex/contrib/reledmac/reledmac.pdf b/macros/latex/contrib/reledmac/reledmac.pdf Binary files differindex 99446063be..e0aa3222c6 100644 --- a/macros/latex/contrib/reledmac/reledmac.pdf +++ b/macros/latex/contrib/reledmac/reledmac.pdf diff --git a/macros/latex/contrib/reledmac/reledpar.pdf b/macros/latex/contrib/reledmac/reledpar.pdf Binary files differindex 8bb5d7a97e..88307e5c0c 100644 --- a/macros/latex/contrib/reledmac/reledpar.pdf +++ b/macros/latex/contrib/reledmac/reledpar.pdf diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md index 1052b9b40b..d377bdfeb3 100644 --- a/macros/latex/required/babel/base/README.md +++ b/macros/latex/required/babel/base/README.md @@ -1,4 +1,4 @@ -## Babel 3.36 +## Babel 3.37 This package manages culturally-determined typographical (and other) rules, and hyphenation patterns for a wide range of languages. Many @@ -51,14 +51,22 @@ respective authors. ### Latest changes ``` +3.37 2019-12-08 + - Preliminary code for non-standard hyphenation, like ff -> + ff-f (lua). + - \babelprovide now can be used to add or modify values for the + keys in ini files. + - Line breaking in South East Asian and CKJ are assimilated to + hyphenation, and it is activated even without 'import' (lua). + 3.36 2019-11-14 - New - \babeladjust, with options: bidi.text, bidi.mirroring, bidi.mapdigits, layout.tabular, layout.lists, linebreak.sea, - linebreak.cjk. There are still some limitations. + linebreak.cjk. There are still some limitations (lua). - New - ini for Polytonic Greek, thanks to Claudio Beccari. - Fix - Language and script set for Chinese Tradicional and Chinese Simplified. - + 3.35 2019-10-15 - \markboth and \markright made robust with a recent LaTeX. - Shorthands work in bibs and refs even with safe=none. @@ -114,31 +122,6 @@ respective authors. necessary. - Minor improvements in babel-vi.ini. -3.26 2018-10-16 - - Fix for 3.25 - \babelprovide raised an error with xetex. - -3.25 2018-10-03 - - Fixes for 3.23 - mapfont=direction could raise an error. - - Language and Script were not always defined correctly. - - Improved tentative support for Thai, Lao and Khmer in both - luatex and xetex. - -3.24 2018-09-26 - - Prelimimary support for Thai interword spacing with luatex. - -3.23 2018-09-02 - - After extensive tests and fixing some issues, bidi=basic is - not experimental any longer. - - import in \babelprovide does not require a language code if - the language name is a recognized one. - - New macro: \ifbabelshorthand. - - TS1, T3 and TS3 have been added to the non-ascii list, to - avoid problems in case no ASCII-savvy encoding is requested. - - Define Language and Script if fontspec does not known them (eg, - the Japanese script). - - Set the \thepage bidi bahavior in foots/heads. - - Fix - Undefined \bbl@stripslash in Plain. - ``` Javier Bezos diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx index 7c64648ee5..209404a770 100644 --- a/macros/latex/required/babel/base/babel.dtx +++ b/macros/latex/required/babel/base/babel.dtx @@ -31,7 +31,7 @@ % % \iffalse %<*filedriver> -\ProvidesFile{babel.dtx}[2019/11/14 v3.36 The Babel package] +\ProvidesFile{babel.dtx}[2019/12/08 v3.37 The Babel package] \documentclass{ltxdoc} \GetFileInfo{babel.dtx} \usepackage{fontspec} @@ -202,29 +202,14 @@ Javier Bezos \vspace{2cm} \leftskip5mm \begin{minipage}{10cm} -\large\setlength\parskip{3mm}\raggedright - The standard distribution of \LaTeX\ contains a number of document - classes that are meant to be used, but also serve as examples for - other users to create their own document classes. These document - classes have become very popular among \LaTeX\ users. But it should - be kept in mind that they were designed for American tastes and - typography. At one time they even contained a number of hard-wired - texts. - - This manual describes \babel{}, a package that makes use of the - capabilities of \TeX, \xetex{} and \luatex{} to provide an - environment in which documents can be typeset in a language other - than US English, or in more than one language or script. - - Current development is focused on Unicode engines (Xe\TeX{} and - Lua\TeX) and the so-called \textit{complex scripts}. New features - related to font selection, bidi writing, line breaking and so on are - being added incrementally. - - \Babel{} provides support (total or partial) for about 200 languages, - either as a “classical” package option or as an |ini| file. - Furthermore, new languages can be created from scratch easily. - +\fontsize{35}{45}\selectfont +\setlength\parskip{3mm}\raggedright +Localization and internationalization\\[1cm] +\TeX\\ +pdf\TeX\\ +Lua\TeX\\ +LuaHB\TeX\\ +Xe\TeX \vspace{20cm} \end{minipage} \end{tabular} @@ -258,7 +243,7 @@ Javier Bezos \item The first sections describe the traditional way of loading a language (with |ldf| files). The alternative way based on |ini| - files, which complements the previous one (it will \textit{not} + files, which complements the previous one (it does \textit{not} replace it), is described below. \end{itemize} @@ -271,6 +256,14 @@ In most cases, a single language is required, and then all you need in purpose, namely, passing that language as an optional argument. In addition, you may want to set the font and input encodings. +Many languages are compatible with \textsf{xetex} and \textsf{luatex}. +With them you can use \babel{} to localize the documents. When these +engines are used, the Latin script is covered by default in current +\LaTeX{} (provided the document encoding is UTF-8), because the font +loader is preloaded and the font is switched to |lmroman|. Other +scripts require loading \textsf{fontspec}. You may want to set the font +attributes with \textsf{fontspec}, too. + \begin{example} Here is a simple full example for “traditional” \TeX{} engines (see below for \xetex{} and \luatex{}). The packages |fontenc| and @@ -293,14 +286,45 @@ Plus ça change, plus c'est la même chose! \end{document} \end{verbatim} \end{example} + +\begin{example} +And now a simple monolingual document in Russian (text from the +Wikipedia) with \xetex{} or \luatex{}. Note neither \textsf{fontenc} +nor \textsf{inputenc} are necessary, but the document should be encoded +in UTF-8 and a so-called Unicode font must be loaded (in this example +|\babelfont| is used, described below). + +\begin{verbatim} +\documentclass{article} + +_\usepackage[russian]{babel}_ + +\babelfont{rm}{DejaVu Serif} + +\begin{document} + +Россия, находящаяся на пересечении множества культур, а также +с учётом многонационального характера её населения, — отличается +высокой степенью этнокультурного многообразия и способностью к +межкультурному диалогу. + +\end{document} +\end{verbatim} +\end{example} + \begin{troubleshooting} \trouble{Paragraph ended before \textbackslash UTFviii@three@octets was complete} A common source of trouble is a wrong setting of the input encoding. -Very often you will get the following somewhat cryptic error: +Depending on the \LaTeX{} version you could get the following somewhat +cryptic error: \begin{verbatim} ! Paragraph ended before \UTFviii@three@octets was complete. \end{verbatim} +Or the more explanatory: +\begin{verbatim} +! Package inputenc Error: Invalid UTF-8 byte ... +\end{verbatim} Make sure you set the encoding actually used by your editor. \end{troubleshooting} @@ -430,39 +454,11 @@ _\foreignlanguage{french}{français}_. \end{verbatim} \end{example} -\subsection{Modifiers} - -\New{3.9c} The basic behavior of some languages can be modified when -loading \babel{} by means of \textit{modifiers}. They are set after -the language name, and are prefixed with a dot (only when the language -is set as package option -- neither global options nor the |main| key -accepts them). An example is (spaces are not significant and they can -be added or removed):\footnote{No predefined ``axis'' for modifiers -are provided because languages and their scripts have quite different -needs.} -\begin{verbatim} -\usepackage[latin_.medieval_, spanish_.notilde.lcroman_, danish]{babel} -\end{verbatim} - -Attributes (described below) are considered modifiers, ie, you can -set an attribute by including it in the list of modifiers. However, -modifiers are a more general mechanism. - -\subsection{\textsf{xelatex} and \textsf{lualatex}} - -Many languages are compatible with \textsf{xetex} and \textsf{luatex}. -With them you can use \babel{} to localize the documents. - -The Latin script is covered by default in current \LaTeX{} (provided -the document encoding is UTF-8), because the font loader is preloaded -and the font is switched to |lmroman|. Other scripts require loading -\textsf{fontspec}. You may want to set the font attributes with -\textsf{fontspec}, too. - \begin{example} - The following bilingual, single script document in UTF-8 encoding - just prints a couple of ‘captions’ and |\today| in Danish and - Vietnamese. No additional packages are required. + With \xetex{} and \luatex, the following bilingual, single script + document in UTF-8 encoding just prints a couple of ‘captions’ and + |\today| in Danish and Vietnamese. No additional packages are + required. \begin{verbatim} \documentclass{article} @@ -480,30 +476,23 @@ _\usepackage[vietnamese,danish]{babel}_ \end{verbatim} \end{example} -\begin{example} -Here is a simple monolingual document in Russian (text from the -Wikipedia). Note neither \textsf{fontenc} nor \textsf{inputenc} are -necessary, but the document should be encoded in UTF-8 and a -so-called Unicode font must be loaded (in this example |\babelfont| is -used, described below). +\subsection{Modifiers} +\New{3.9c} The basic behavior of some languages can be modified when +loading \babel{} by means of \textit{modifiers}. They are set after +the language name, and are prefixed with a dot (only when the language +is set as package option -- neither global options nor the |main| key +accepts them). An example is (spaces are not significant and they can +be added or removed):\footnote{No predefined ``axis'' for modifiers +are provided because languages and their scripts have quite different +needs.} \begin{verbatim} -\documentclass{article} - -_\usepackage[russian]{babel}_ - -\babelfont{rm}{DejaVu Serif} - -\begin{document} - -Россия, находящаяся на пересечении множества культур, а также -с учётом многонационального характера её населения, — отличается -высокой степенью этнокультурного многообразия и способностью к -межкультурному диалогу. - -\end{document} +\usepackage[latin_.medieval_, spanish_.notilde.lcroman_, danish]{babel} \end{verbatim} -\end{example} + +Attributes (described below) are considered modifiers, ie, you can +set an attribute by including it in the list of modifiers. However, +modifiers are a more general mechanism. \subsection{Troubleshooting} @@ -725,7 +714,7 @@ By default only the basic captions and |\today| are redefined, but you can add further macros with the key |include| in the optional argument (without commas). Macros not to be modified are listed in |exclude|. You can also enforce a font encoding with -|fontenc|.\footnote{With it encoded string may not work as expected.} +|fontenc|.\footnote{With it, encoded strings may not work as expected.} A couple of examples: \begin{verbatim} \babelensure[include=\Today]{spanish} @@ -775,18 +764,20 @@ use only shorthands provided by languages. char and on the same level are ignored. \item Since they are active, a shorthand cannot contain the same character in its definition (except if it is deactivated with, eg, - |string|). + |\string|). \end{enumerate} \end{note} -A typical error when using shorthands is the following: +\begin{troubleshooting} \trouble{Argument of \textbackslash language@active@arg" has an extra \textbraceright} +A typical error when using shorthands is the following: \begin{verbatim} ! Argument of \language@active@arg" has an extra }. \end{verbatim} It means there is a closing brace just after a shorthand, which is not allowed (eg,~|"}|). Just add |{}| after (eg,~|"{}}|). +\end{troubleshooting} \Describe{\shorthandon}{\marg{shorthands-list}} \DescribeOther{\shorthandoff}{% @@ -819,6 +810,10 @@ space, and |^| is the superscript character. The catcodes used are those when the shorthands are defined, usually when language files are loaded. +If you do not need shorthands, or prefer an alternative approach of +your own, you may want to switch them off with the package option +|shorthands=off|, as described below. + \Describe{\useshorthands}{% \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}% \marg{char}} @@ -881,36 +876,6 @@ system shorthands. Language-dependent user shorthands (new in is that expected in each context. \end{example} -\Describe{\aliasshorthand}{\marg{original}\marg{alias}} - -The command |\aliasshorthand| can be used to let another -character perform the same functions as the default shorthand -character. If one prefers for example to use the character |/| -over |"| in typing Polish texts, this can be achieved by entering -|\aliasshorthand{"}{/}|. - -\begin{note} - The substitute character must \textit{not} have been declared before - as shorthand (in such a case, |\aliashorthands| is ignored). -\end{note} - -\begin{example} - The following example shows how to replace a shorthand by another -\begin{verbatim} -\aliasshorthand{~}{^} -\AtBeginDocument{\shorthandoff*{~}} -\end{verbatim} -\end{example} - -\begin{warning} - Shorthands remember somehow the original character, and the fallback - value is that of the latter. So, in this example, if no shorthand if - found, |^| expands to a non-breaking space, because this is the - value of |~| (internally, |^| still calls |\active@char~| or - |\normal@char~|). Furthermore, if you change the |system| value of - |^| with |\defineshorthand| nothing happens. -\end{warning} - \Describe{\languageshorthands}{\marg{language}} The command |\languageshorthands| can be used to switch the shorthands on the language level. It takes one argument, the name of a language or @@ -943,6 +908,8 @@ off with |\shorthandoff| or (3) deactivated with the internal \verb|\babelshorthand{:}|. (You can conveniently define your own macros, or even your own user shorthands provided they do not overlap.) +\bigskip + For your records, here is a list of shorthands, but you must double check them, as they may change:\footnote{Thanks to Enrico Gregorio} @@ -969,7 +936,7 @@ check them, as they may change:\footnote{Thanks to Enrico Gregorio} \item[Kurmanji] |^| \item[Latin] |" ^ =| \item[Slovak] |" ^ ' -| -\item[Spanish] |" . < > '| +\item[Spanish] |" . < > ' ~| \item[Turkish] |: ! =| \end{description} In addition, the \babel{} core declares |~| as a one-char shorthand @@ -981,6 +948,37 @@ preserved for backward compatibility.} \New{3.23} Tests if a character has been made a shorthand. +\Describe{\aliasshorthand}{\marg{original}\marg{alias}} + +The command |\aliasshorthand| can be used to let another character +perform the same functions as the default shorthand character. If one +prefers for example to use the character |/| over |"| in typing Polish +texts, this can be achieved by entering |\aliasshorthand{"}{/}|. For +the reasons in the warning below, usage of this macro is not +recommended. + +\begin{note} + The substitute character must \textit{not} have been declared before + as shorthand (in such a case, |\aliashorthands| is ignored). +\end{note} + +\begin{example} + The following example shows how to replace a shorthand by another +\begin{verbatim} +\aliasshorthand{~}{^} +\AtBeginDocument{\shorthandoff*{~}} +\end{verbatim} +\end{example} + +\begin{warning} + Shorthands remember somehow the original character, and the fallback + value is that of the latter. So, in this example, if no shorthand if + found, |^| expands to a non-breaking space, because this is the + value of |~| (internally, |^| still calls |\active@char~| or + |\normal@char~|). Furthermore, if you change the |system| value of + |^| with |\defineshorthand| nothing happens. +\end{warning} + \subsection{Package options} \New{3.9a} @@ -1172,8 +1170,8 @@ LICR). They will be evolving with the time to add more features (something to keep in mind if backward compatibility is important). The following section shows how to make use of them currently (by means of |\babelprovide|), but a higher interface, based on package options, in -under development (in other words, |\babelprovide| is mainly intended -for auxiliary tasks). +under study. In other words, |\babelprovide| is mainly meant +for auxiliary tasks. \begin{example} Although Georgian has its own \texttt{ldf} file, here is how to @@ -1221,28 +1219,32 @@ for auxiliary tasks). \newfontscript{Devanagari}{deva} \end{verbatim} Other Indic scripts are still under development in \luatex{}. On the - other hand, \xetex{} is better. + other hand, \xetex{} is better. The upcoming \textsf{lualatex} will + be based on \textsf{luahbtex}, so Indic scripts will be rendered + correctly with the option |Renderer=Harfbuzz| in \textsc{fontspec}. \item[Southeast scripts] Thai works in both \luatex{} and \xetex{}, but line breaking differs (rules can be modified in \luatex; they are - hardcoded in \xetex). Lao seems to work, too, but there are no - patterns for the latter in \luatex{}. Some quick patterns could help, - with something similar to: + hard-coded in \xetex). Lao seems to work, too, but there are no + patterns for the latter in \luatex{}. Khemer clusters are rendered + wrongly. The comment about Indic scripts and \textsf{lualatex} also + applies here. Some quick patterns could help, with something similar + to: \begingroup \setmonofont[Script=Lao,Scale=MatchLowercase]{DejaVu Sans Mono} \begin{verbatim} \babelprovide[import,hyphenrules=+]{lao} -\babelpatterns[lao]{1ດ 1ມ 1ແ 1ອ 1ງ 1ກ 1າ} % Random +\babelpatterns[lao]{1ດ 1ມ 1ອ 1ງ 1ກ 1າ} % Random \end{verbatim} \endgroup - Khemer clusters are rendered wrongly. -\item[East Asia scripts] Settings for either Simplified of Tradicional +\item[East Asia scripts] Settings for either Simplified of Traditional should work out of the box. \luatex{} does basic line breaking, but currently \xetex{} does not (you may load \textsf{zhspacing}). Although for a few words and shorts texts the |ini| files should be fine, CJK texts are best set with a dedicated framework (\textsf{CJK}, -\textsf{luatexja}, \textsf{kotex}, \textsf{CTeX}, etc.). Actually, this -is what the |ldf| does in |japanese| with \luatex, because the -following piece of code loads \textsf{luatexja}: +\textsf{luatexja}, \textsf{kotex}, \textsf{CTeX}, etc.). This is what +the class |ltjbook| does with \luatex, which can be used in conjunction +with the |ldf| for |japanese|, because the following piece of code +loads \textsf{luatexja}: \begin{verbatim} \documentclass{ltjbook} \usepackage[japanese]{babel} @@ -1871,6 +1873,13 @@ also the package \textsf{combofont} for a complementary approach.} \Describe\babelfont{\oarg{language-list}\marg{font-family}% \oarg{font-options}\marg{font-name}} +The main purpose of |\babelfont| is to define at once in a multilingual +document the fonts required by the different languages, with their +corresponding language systems (script and language). So, if you load, +say, 4 languages, |\babelfont{rm}{FreeSerif}| defines 4 fonts (with their +variants, of course), which are switched with the language by \babel. +It is a tool to make things easier and transparent to the user. + Here \textit{font-family} is |rm|, |sf| or |tt| (or newly defined ones, as explained below), and \textit{font-name} is the same as in \textsf{fontspec} and the like. @@ -2007,6 +2016,7 @@ to select fonts in addition to the three basic families. font 'FONT' with script 'SCRIPT' 'Default' language used instead'} \textit{Package fontspec Warning: 'Language 'LANG' not available for font 'FONT' with script 'SCRIPT' 'Default' language used instead'}. +\textbf{This is \textit{not} and error.} This warning is shown by \textsf{fontspec}, not by \babel. It could be irrelevant for English, but not for many other languages, including Urdu and Turkish. This is a useful and harmless warning, and if @@ -2014,6 +2024,27 @@ everything is fine with your document the best thing you can do is just to ignore it altogether. \end{troubleshooting} +\begin{troubleshooting} +\trouble{Package babel Info: The following fonts are not babel standard families} +\textit{Package babel Info: The following fonts are not babel +standard families}. + +\textbf{This is \textit{not} and error.} \babel{} assumes that if you +are using |\babelfont| for a family, very likely you want to define the +rest of them. If you don't, you can find some inconsistencies between +families. This checking is done at the beginning of the document, at a +point where we cannot know which families will be used. + +Actually, there is no real need to use |\babelfont| in a monolingual +document, if you set the language system in |\setmainfont| (or not, +depending on what you want). + +As the message explains, \textit{there is nothing intrinsically wrong} +with not defining all the families. In fact, there is nothing +intrinsically wrong with not using |\babelfont| at all. But you must be +aware that this may lead to some problems. +\end{troubleshooting} + \subsection{Modifying a language} Modifying the behavior of a language (say, the chapter “caption”), is @@ -2085,10 +2116,11 @@ available, are set to the current ones, left and right hyphen mins are set to 2 and 3. In either case, caption, date and language system are not defined. -If no |ini| file is imported with |import|, \m{language-name} is -relevant because in such a case the hyphenation rules are based on it -as provided in the |ini| file corresponding to that name; the same -applies to OpenType language and script. +If no |ini| file is imported with |import|, \m{language-name} is still +relevant because in such a case the hyphenation and like breaking rules +(including those for South East Asian and CJK) are based on it as +provided in the |ini| file corresponding to that name; the same applies +to OpenType language and script. Conveniently, some options allow to fill the language, and \babel{} warns you about what to do if there is a missing string. Very likely @@ -2124,7 +2156,7 @@ If the language has been loaded as an argument in |\documentclass| or \New{3.13} Imports data from an |ini| file, including captions, date, and hyphenmins. For example: \begin{verbatim} -\babelprovide[import=hu]{hungarian} +\babelprovide[_import=hu_]{hungarian} \end{verbatim} Unicode engines load the UTF-8 variants, while 8-bit engines load the LICR (ie, with macros like |\'| or |\ss|) ones. @@ -2135,7 +2167,7 @@ file set in the corresponding |babel-<language>.tex| (where the list of recognized languages above. So, the previous example could be written: \begin{verbatim} -\babelprovide[import]{hungarian} +\babelprovide[_import_]{hungarian} \end{verbatim} There are about 200 |ini| files, with data taken from the |ldf| files @@ -2153,14 +2185,14 @@ calls |\<language>date{\the\year}{\the\month}{\the\day}|. \Describe{captions=}{\meta{language-tag}} Loads only the strings. For example: \begin{verbatim} -\babelprovide[captions=hu]{hungarian} +\babelprovide[_captions=hu_]{hungarian} \end{verbatim} \Describe{hyphenrules=}{\meta{language-list}} With this option, with a space-separated list of hyphenation rules, \babel{} assigns to the language the first valid hyphenation rules in the list. For example: \begin{verbatim} -\babelprovide[hyphenrules=chavacano spanish italian]{chavacano} +\babelprovide[_hyphenrules=chavacano spanish italian_]{chavacano} \end{verbatim} If none of the listed hyphenrules exist, the default behavior applies. Note in this example we set |chavacano| as first option -- @@ -2205,26 +2237,25 @@ cases. \Describe{mapfont=}{\texttt{direction}} Assigns the font for the writing direction of this language (only with -|bidi=basic|).\footnote{There will be another value, \texttt{language}, -not yet implemented.} More precisely, what |mapfont=direction| means -is, ‘when a character has the same direction as the script for the -“provided” language, then change its font to that set for this -language’. There are 3 directions, following the bidi Unicode -algorithm, namely, Arabic-like, Hebrew-like and left to -right.\footnote{In future releases a new value (\texttt{script}) will -be added.} So, there should be at most 3 directives of this kind. +|bidi=basic|). More precisely, what |mapfont=direction| means is, ‘when +a character has the same direction as the script for the “provided” +language, then change its font to that set for this language’. There +are 3 directions, following the bidi Unicode algorithm, namely, +Arabic-like, Hebrew-like and left to right.\footnote{In future releases +a couple of values (\texttt{language} and \texttt{script}) will be +added.} So, there should be at most 3 directives of this kind. \Describe{intraspace=}{\meta{base} \meta{shrink} \meta{stretch}} Sets the interword space for the writing system of the language, in em units (so, |0 .1 0| is |0em plus .1em|). Like |\spaceskip|, the em unit applied is that of the current text (more precisely, the previous glyph). Currently used only in Southeast Asian scrips, like Thai, and -CJK. Requires |import|. +CJK. \Describe{intrapenalty=}{\meta{penalty}} Sets the interword penalty for the writing system of this language. Currently used only in Southeast Asian scrips, like Thai. Ignored if 0 -(which is the default value). Requires |import|. +(which is the default value). \begin{note} (1) If you need shorthands, you can define them with |\useshorthands| @@ -2252,8 +2283,8 @@ For example: % \babelprovide[import, maparabic]{telugu} \babelfont{rm}{Gautami} \begin{document} -\telugudigits{1234} -\telugucounter{section} +_\telugudigits{1234}_ +_\telugucounter{section}_ \end{document} \end{verbatim} @@ -2519,11 +2550,12 @@ consider the intrinsic direction of scripts and weak directionality.) tentative, but it mostly works. For RL documents use the former, and for LR ones use the latter. -\New{3.32} There is some experimental support for \textsf{harftex}. -Since it is based on \luatex, the option |basic| mostly works. You may -need to deactivate the |rtlm| or the |rtla| font features (besides -loading \textsf{harfload} before \babel and activating |mode=harf|; -there is a sample in the GitHub repository). +\New{3.37} There is some experimental support for \textsf{luahbtex} +(with |lualatex-dev|) and the latest releases of \textsf{luaotfload} +(3.11), with |Renderer = Harfbuzz| in \textsf{fontspec}. Since it is +based on \luatex, the option |basic| mostly works (You may need +deactivate the |rtlm| or the |rtla| font features, or alternatively +deactive mirroring in \babel{} with |\babeladjust|.) There are samples on GitHub, under \texttt{/required/babel/samples}. See particularly |lua-bidibasic.tex| and |lua-secenum.tex|. @@ -3149,7 +3181,42 @@ See the code section for |\foreignlanguage*| (a new starred version of |\foreignlanguage|). \medskip -\textbf{Old stuff} +\textbf{Modifying, and adding, values of |ini| files} + +\New{3.37} There is a way to modify the values of |ini| files when they +get loaded with |\babelprovide|. To set, say, |digits.native| in the +|numbers| section, use something like +|numbers..digits.native=abcdefghij| (note the double dot between the +section and the key name). New keys may be added, too. + +\medskip +\textbf{Non-standard hyphenation} + +\New{3.37} With \luatex{} it is now possible to define non-standard +hyohenation rules, like |f-f| $\to$ |ff-f|. No rules are currently +provided by default, but they can be defined as shown in the following +example: +\begin{verbatim} +\babelposthyphenation{ngerman}{([fmtrp]) | {1}} +{ + { no = {1}, pre = {1}{1}-}, % Replace first char with disc + remove, % Remove automatic disc + {} % Keep last char, untouched +} +\end{verbatim} + +This feature must be explicitly activated with: +\begin{verbatim} +\babeladjust{ hyphenation.extra = on } +\end{verbatim} + +See the \babel{} wiki for a more detailed description and some examples: +\begin{verbatim} +https://github.com/latex3/babel/wiki +\end{verbatim} + +\medskip +\textbf{Old and deprecated stuff} A couple of tentative macros were provided by \babel{} ($\ge$3.9g) with a partial solution for ``Unicode'' fonts. These macros are now @@ -3171,16 +3238,6 @@ So, for example: \babelFSfeatures{turkish}{Language=Turkish} \end{verbatim} -\medskip -\textbf{Modifying values of |ini| files} - -\New{3.36} There is a way to modify the values of |ini| files when they -get loaded with |\babelprovide|. To set, say, |digits.native| in the -|numbers| section, use something like -|numbers..digits.native=abcdefghij| (note the double dot between the -section and the key name). The syntax may change, and currently it only -redefines existing keys. - \section{Loading languages with \file{language.dat}} \TeX{} and most engines based on it (pdf\TeX, \xetex, $\epsilon$-\TeX, @@ -3968,29 +4025,25 @@ help from Bernd Raichle, for which I am grateful. \begin{thebibliography}{9} \bibitem{AT} Huda Smitshuijzen Abifares, \textit{Arabic Typography}, Saqi, 2001. - \bibitem{DEK} Donald E. Knuth, - \emph{The \TeX book}, Addison-Wesley, 1986. - \bibitem{LLbook} Leslie Lamport, - \emph{\LaTeX, A document preparation System}, Addison-Wesley, - 1986. - \bibitem{treebus} K.F. Treebus. - \emph{Tekstwijzer, een gids voor het grafisch verwerken van - tekst}, - SDU Uitgeverij ('s-Gravenhage, 1988). - \bibitem{HP} Hubert Partl, - \emph{German \TeX}, - \emph{TUGboat} 9 (1988) \#1, p.~70--72. - \bibitem{LLth} Leslie Lamport, - in: \TeX hax Digest, Volume 89, \#13, 17 February 1989. \bibitem{BEP} Johannes Braams, Victor Eijkhout and Nico Poppelier, \emph{The development of national \LaTeX\ styles}, \emph{TUGboat} 10 (1989) \#3, p.~401--406. \bibitem{FE} Yannis Haralambous, \emph{Fonts \& Encodings}, O'Reilly, 2007. + \bibitem{DEK} Donald E. Knuth, + \emph{The \TeX book}, Addison-Wesley, 1986. \bibitem{UE} Jukka K. Korpela, \textit{Unicode Explained}, O'Reilly, 2006. + \bibitem{LLbook} Leslie Lamport, + \emph{\LaTeX, A document preparation System}, Addison-Wesley, + 1986. + \bibitem{LLth} Leslie Lamport, + in: \TeX hax Digest, Volume 89, \#13, 17 February 1989. \bibitem{CJKV} Ken Lunde, \textit{CJKV Information Processing}, O'Reilly, 2nd ed., 2009. + \bibitem{HP} Hubert Partl, + \emph{German \TeX}, + \emph{TUGboat} 9 (1988) \#1, p.~70--72. \bibitem{ilatex} Joachim Schrod, \emph{International \LaTeX\ is ready to use}, \emph{TUGboat} 11 (1990) \#1, p.~87--90. @@ -3998,6 +4051,10 @@ help from Bernd Raichle, for which I am grateful. Sofroniu, \emph{Digital typography using \LaTeX}, Springer, 2002, p.~301--373. + \bibitem{treebus} K.F. Treebus. + \emph{Tekstwijzer, een gids voor het grafisch verwerken van + tekst}, + SDU Uitgeverij ('s-Gravenhage, 1988). \end{thebibliography} \end{document} %</filedriver> @@ -4103,8 +4160,8 @@ help from Bernd Raichle, for which I am grateful. % \section{Tools} % % \begin{macrocode} -%<<version=3.36>> -%<<date=2019/11/14>> +%<<version=3.37>> +%<<date=2019/12/08>> % \end{macrocode} % % \textbf{Do not use the following macros in \texttt{ldf} files. They @@ -4639,9 +4696,6 @@ help from Bernd Raichle, for which I am grateful. if Babel.numbers and Babel.digits_mapped then head = Babel.numbers(head) end - if Babel.fixboxdirs then % Temporary! - head = Babel.fixboxdirs(head) - end if Babel.bidi_enabled then head = Babel.bidi(head, false, dir) end @@ -5680,7 +5734,6 @@ help from Bernd Raichle, for which I am grateful. \def\bbl@main@language{#1}% \let\languagename\bbl@main@language \bbl@id@assign - \chardef\localeid\@nameuse{bbl@id@@\languagename}% \bbl@patterns{\languagename}} % \end{macrocode} % @@ -8088,6 +8141,8 @@ help from Bernd Raichle, for which I am grateful. % intraspace.} % \changes{babel~3.34}{2019/09/20}{Fix - with main the language must not % be restored.} +% \changes{babel~3.37}{2019/12/07}{SEA and CJK linebreaking activated +% by default.} % % \begin{macrocode} \bbl@trace{Creating languages and reading ini files} @@ -8097,7 +8152,6 @@ help from Bernd Raichle, for which I am grateful. % Set name and locale id \def\languagename{#2}% \bbl@id@assign - \chardef\localeid\@nameuse{bbl@id@@\languagename}% \let\bbl@KVP@captions\@nil \let\bbl@KVP@import\@nil \let\bbl@KVP@main\@nil @@ -8159,8 +8213,8 @@ help from Bernd Raichle, for which I am grateful. \bbl@read@ini{##1}{basic data}% \bbl@exportkey{chrng}{characters.ranges}{}% \bbl@exportkey{dgnat}{numbers.digits.native}{}% - % \bbl@exportkey{hyphr}{typography.hyphenrules}{}% - % \bbl@exportkey{intsp}{typography.intraspace}{}% + \bbl@exportkey{hyphr}{typography.hyphenrules}{}% + \bbl@exportkey{intsp}{typography.intraspace}{}% \endgroup}% boxed, to avoid extra spaces: {\setbox\z@\hbox{\InputIfFileExists{babel-#2.tex}{}{}}}}% {}% @@ -8204,65 +8258,7 @@ help from Bernd Raichle, for which I am grateful. \ifx\bbl@KVP@intraspace\@nil\else % We can override the ini or set \bbl@csarg\edef{intsp@#2}{\bbl@KVP@intraspace}% \fi - \ifcase\bbl@engine\or % lua - \bbl@ifunset{bbl@intsp@\languagename}{}% - {\expandafter\ifx\csname bbl@intsp@\languagename\endcsname\@empty\else - \bbl@xin@{\bbl@cs{sbcp@\languagename}}{Hant,Hans,Jpan,Kore,Kana}% - \ifin@ % cjk - \bbl@cjkintraspace - \directlua{ - Babel = Babel or {} - Babel.locale_props = Babel.locale_props or {} - Babel.locale_props[\the\localeid].linebreak = 'c' - }% - \bbl@exp{\\\bbl@intraspace\bbl@cs{intsp@\languagename}\\\@@}% - \ifx\bbl@KVP@intrapenalty\@nil - \bbl@intrapenalty0\@@ - \fi - \else % sea - \bbl@seaintraspace - \bbl@exp{\\\bbl@intraspace\bbl@cs{intsp@\languagename}\\\@@}% - \directlua{ - Babel = Babel or {} - Babel.sea_ranges = Babel.sea_ranges or {} - Babel.set_chranges('\bbl@cs{sbcp@\languagename}', - '\bbl@cs{chrng@\languagename}') - }% - \ifx\bbl@KVP@intrapenalty\@nil - \bbl@intrapenalty0\@@ - \fi - \fi - \fi - \ifx\bbl@KVP@intrapenalty\@nil\else - \expandafter\bbl@intrapenalty\bbl@KVP@intrapenalty\@@ - \fi}% - \or % xe - \bbl@xin@{\bbl@cs{sbcp@\languagename}}{Thai,Laoo,Khmr}% - \ifin@ % sea (currently ckj not handled) - \bbl@ifunset{bbl@intsp@\languagename}{}% - {\expandafter\ifx\csname bbl@intsp@\languagename\endcsname\@empty\else - \ifx\bbl@KVP@intraspace\@nil - \bbl@exp{% - \\\bbl@intraspace\bbl@cs{intsp@\languagename}\\\@@}% - \fi - \ifx\bbl@KVP@intrapenalty\@nil - \bbl@intrapenalty0\@@ - \fi - \fi - \ifx\bbl@KVP@intraspace\@nil\else % We may override the ini - \expandafter\bbl@intraspace\bbl@KVP@intraspace\@@ - \fi - \ifx\bbl@KVP@intrapenalty\@nil\else - \expandafter\bbl@intrapenalty\bbl@KVP@intrapenalty\@@ - \fi - \ifx\bbl@ispacesize\@undefined - \AtBeginDocument{% - \expandafter\bbl@add - \csname selectfont \endcsname{\bbl@ispacesize}}% - \def\bbl@ispacesize{\bbl@cs{xeisp@\bbl@cs{sbcp@\languagename}}}% - \fi}% - \fi - \fi + \bbl@provide@intraspace % == maparabic == % Native digits, if provided in ini (TeX level, xe and lua) \ifcase\bbl@engine\else @@ -8477,7 +8473,10 @@ help from Bernd Raichle, for which I am grateful. % % The reader of |ini| files. There are 3 possible cases: a section name % (in the form |[...]|), a comment (starting with |;|) and a -% key/value pair. \textit{TODO - Work in progress.} +% key/value pair. +% +% \changes{babel~3.37}{2019/12/07}{Allow to define key/values +% (added \cs{bbl@renewlist}).} % % \begin{macrocode} \def\bbl@read@ini#1#2{% @@ -8511,6 +8510,14 @@ help from Bernd Raichle, for which I am grateful. \expandafter\bbl@iniline\bbl@line\bbl@iniline \fi \repeat + \bbl@foreach\bbl@renewlist{% + \bbl@ifunset{bbl@renew@##1}{}{\bbl@inisec[##1]\@@}}% + \global\let\bbl@renewlist\@empty + % Ends last section. See \bbl@inisec + \def\bbl@elt##1##2{\bbl@inireader##1=##2\@@}% + \@nameuse{bbl@renew@\bbl@section}% + \global\bbl@csarg\let{renew@\bbl@section}\relax + \@nameuse{bbl@secpost@\bbl@section}% \fi} \def\bbl@iniline#1\bbl@iniline{% \@ifnextchar[\bbl@inisec{\@ifnextchar;\bbl@iniskip\bbl@inipreread}#1\@@}% ] @@ -8519,7 +8526,10 @@ help from Bernd Raichle, for which I am grateful. % The special cases for comment lines and sections are handled by the % two following commands. In sections, we provide the posibility to % take extra actions at the end or at the start (TODO - but note the last -% section is not ended). By default, key=val pairs are ignored. +% section is not ended). By default, key=val pairs are ignored. The +% |secpost| ``hook'' is used only by `identification', while |secpre| +% only by |date.gregorian.licr|. +% % % \begin{macrocode} \def\bbl@iniskip#1\@@{}% if starts with ; @@ -8528,15 +8538,19 @@ help from Bernd Raichle, for which I am grateful. \@nameuse{bbl@renew@\bbl@section}% \global\bbl@csarg\let{renew@\bbl@section}\relax \@nameuse{bbl@secpost@\bbl@section}% ends previous section - \def\bbl@section{#1}% + \def\bbl@section{#1}% starts current section \def\bbl@elt##1##2{% \@namedef{bbl@KVP@#1..##1}{}}% \@nameuse{bbl@renew@#1}% - \@nameuse{bbl@secpre@#1}% starts current section + \@nameuse{bbl@secpre@#1}% pre-section `hook' \bbl@ifunset{bbl@inikv@#1}% {\let\bbl@inireader\bbl@iniskip}% {\bbl@exp{\let\\\bbl@inireader\<bbl@inikv@#1>}}} +\let\bbl@renewlist\@empty \def\bbl@renewinikey#1..#2\@@#3{% + \bbl@ifunset{bbl@renew@#1}% + {\bbl@add@list\bbl@renewlist{#1}}% + {}% \bbl@csarg\bbl@add{renew@#1}{\bbl@elt{#2}{#3}}} % \end{macrocode} % @@ -8565,8 +8579,10 @@ help from Bernd Raichle, for which I am grateful. % \end{macrocode} % % Key-value pairs are treated differently depending on the section in -% the |ini| file. The following macros are the readers for -% |identification| and |typography|. +% the |ini| file. The following macros are the readers for +% |identification| and |typography|. Note |\bbl@secpost@identification| +% is called always (via |\bbl@inisec|), while |\bbl@after@ini| must be +% called explicitly after |\bbl@read@ini| if necessary. % % \changes{babel~3.36}{2019/10/30}{New fields for CJK, because OpenType % and the CLDR follow different models.} @@ -8841,6 +8857,10 @@ help from Bernd Raichle, for which I am grateful. \bbl@adjust@layout{\let\list\bbl@NL@list}} \@namedef{bbl@ADJ@layout.lists@on}{% \bbl@adjust@layout{\let\list\bbl@OL@list}} +\@namedef{bbl@ADJ@hyphenation.extra@on}{% + \directlua{ + Babel.linebreaking.add_after(Babel.post_hyphenate_replace) + }} % \end{macrocode} % % \section{The kernel of Babel (\texttt{babel.def} for \LaTeX only)} @@ -10177,7 +10197,8 @@ help from Bernd Raichle, for which I am grateful. Babel.locale_props[\bbl@id@last] = {} }% \fi}% - {}} + {}% + \chardef\localeid\@nameuse{bbl@id@@\languagename}} % \end{macrocode} % % The unprotected part of |\selectlanguage|. @@ -10342,7 +10363,6 @@ help from Bernd Raichle, for which I am grateful. \languageshorthands{none}% % set the locale id \bbl@id@assign - \chardef\localeid\@nameuse{bbl@id@@\languagename}% % switch captions, date \ifcase\bbl@select@type \ifhmode @@ -10786,10 +10806,16 @@ help from Bernd Raichle, for which I am grateful. % so we can safely use its error handling interface. Otherwise % we'll have to `keep it simple'. % +% Infos are not written to the console, but on the other hand many +% people think warnings are errors, so a further message type is +% defined: an important info which is sent to the console. +% % \changes{babel~3.9a}{2012/07/30}{\cs{newcommand}s replaced by % \cs{def}'s, so that the file can be loaded twice} % \changes{babel~3.9a}{2013/01/26}{Define generic variants instead of % duplicating each predefined message} +% \changes{babel~3.37}{2019/12/07}{New message type: an into written to +% the console.} % % \begin{macrocode} \edef\bbl@nulllanguage{\string\language=0} @@ -10806,6 +10832,7 @@ help from Bernd Raichle, for which I am grateful. \def\\{^^J(babel) }% \message{\\#1}% \endgroup} + \let\bbl@infowarn\bbl@warning \def\bbl@info#1{% \begingroup \newlinechar=`\^^J @@ -10823,6 +10850,13 @@ help from Bernd Raichle, for which I am grateful. \def\\{\MessageBreak}% \PackageWarning{babel}{#1}% \endgroup} + \def\bbl@infowarn#1{% + \begingroup + \def\\{\MessageBreak}% + \GenericWarning + {(babel) \@spaces\@spaces\@spaces}% + {Package babel Info: #1}% + \endgroup} \def\bbl@info#1{% \begingroup \def\\{\MessageBreak}% @@ -10831,6 +10865,7 @@ help from Bernd Raichle, for which I am grateful. \fi \@ifpackagewith{babel}{silent} {\let\bbl@info\@gobble + \let\bbl@infowarn\@gobble \let\bbl@warning\@gobble} {} \def\bbl@nocaption{\protect\bbl@nocaption@i} @@ -11419,7 +11454,7 @@ help from Bernd Raichle, for which I am grateful. \def\bbl@nostdfont#1{% \bbl@ifunset{bbl@WFF@\f@family}% {\bbl@csarg\gdef{WFF@\f@family}{}% Flag, to avoid dupl warns - \bbl@warning{The current font is not a babel standard family:\\% + \bbl@infowarn{The current font is not a babel standard family:\\% #1% \fontname\font\\% There is nothing intrinsically wrong with this warning, and\\% @@ -11482,7 +11517,7 @@ help from Bernd Raichle, for which I am grateful. \expandafter\xdef\csname ##1default\endcsname{\f@family}}% {}}% \ifx\bbl@tempa\@empty\else - \bbl@warning{The following fonts are not babel standard families:\\% + \bbl@infowarn{The following fonts are not babel standard families:\\% \bbl@tempa There is nothing intrinsically wrong with it, but\\% 'babel' will no set Script and Language. Consider\\% @@ -11736,6 +11771,32 @@ help from Bernd Raichle, for which I am grateful. \def\bbl@intrapenalty#1\@@{% \bbl@csarg\gdef{xeipn@\bbl@cs{sbcp@\languagename}}% {\XeTeXlinebreakpenalty #1\relax}} +\def\bbl@provide@intraspace{% + \bbl@xin@{\bbl@cs{sbcp@\languagename}}{Thai,Laoo,Khmr}% + \ifin@ % sea (currently ckj not handled) + \bbl@ifunset{bbl@intsp@\languagename}{}% + {\expandafter\ifx\csname bbl@intsp@\languagename\endcsname\@empty\else + \ifx\bbl@KVP@intraspace\@nil + \bbl@exp{% + \\\bbl@intraspace\bbl@cs{intsp@\languagename}\\\@@}% + \fi + \ifx\bbl@KVP@intrapenalty\@nil + \bbl@intrapenalty0\@@ + \fi + \fi + \ifx\bbl@KVP@intraspace\@nil\else % We may override the ini + \expandafter\bbl@intraspace\bbl@KVP@intraspace\@@ + \fi + \ifx\bbl@KVP@intrapenalty\@nil\else + \expandafter\bbl@intrapenalty\bbl@KVP@intrapenalty\@@ + \fi + \ifx\bbl@ispacesize\@undefined + \AtBeginDocument{% + \expandafter\bbl@add + \csname selectfont \endcsname{\bbl@ispacesize}}% + \def\bbl@ispacesize{\bbl@cs{xeisp@\bbl@cs{sbcp@\languagename}}}% + \fi}% + \fi} \AddBabelHook{xetex}{loadkernel}{% <@Restore Unicode catcodes before loading patterns@>} \ifx\DisableBabelHook\@undefined\endinput\fi @@ -11771,6 +11832,7 @@ help from Bernd Raichle, for which I am grateful. % % \begin{macrocode} %<*texxet> +\providecommand\bbl@provide@intraspace{} \bbl@trace{Redefinitions for bidi layout} \def\bbl@sspre@caption{% \bbl@exp{\everyhbox{\\\bbl@textdir\bbl@cs{wdir@\bbl@main@language}}}} @@ -12226,6 +12288,8 @@ help from Bernd Raichle, for which I am grateful. % \changes{babel~3.24}{2018/09/24}{Lua code for interword spacing % in Southeast Asian scripts.} % \changes{babel~3.32}{2019/05/25}{Don't break with CJK if nohyphenation.} +% \changes{babel~3.37}{2019/12/07}{Added code for non-standard +% hyphenation.} % % \textit{In progress.} Replace regular (ie, implicit) discretionaries % by spaceskips, based on the previous glyph (which I think makes @@ -12236,6 +12300,21 @@ help from Bernd Raichle, for which I am grateful. % Unicode UAX 14). % % \begin{macrocode} +\directlua{ + Babel = Babel or {} + Babel.linebreaking = Babel.linebreaking or {} + Babel.linebreaking.before = {} + Babel.linebreaking.after = {} + Babel.locale = {} % Free to use, indexed with \localeid + function Babel.linebreaking.add_before(func) + tex.print([[\noexpand\csname bbl@luahyphenate\endcsname]]) + table.insert(Babel.linebreaking.before , func) + end + function Babel.linebreaking.add_after(func) + tex.print([[\noexpand\csname bbl@luahyphenate\endcsname]]) + table.insert(Babel.linebreaking.after, func) + end +} \def\bbl@intraspace#1 #2 #3\@@{% \directlua{ Babel = Babel or {} @@ -12375,7 +12454,17 @@ help from Bernd Raichle, for which I am grateful. if Babel.cjk_enabled then Babel.cjk_linebreak(head) end + if Babel.linebreaking.before then + for k, func in ipairs(Babel.linebreaking.before) do + func(head) + end + end lang.hyphenate(head) + if Babel.linebreaking.after then + for k, func in ipairs(Babel.linebreaking.after) do + func(head) + end + end if Babel.sea_enabled then Babel.sea_disc_to_space(head) end @@ -12384,6 +12473,38 @@ help from Bernd Raichle, for which I am grateful. } } \endgroup +\def\bbl@provide@intraspace{% + \bbl@ifunset{bbl@intsp@\languagename}{}% + {\expandafter\ifx\csname bbl@intsp@\languagename\endcsname\@empty\else + \bbl@xin@{\bbl@cs{sbcp@\languagename}}{Hant,Hans,Jpan,Kore,Kana}% + \ifin@ % cjk + \bbl@cjkintraspace + \directlua{ + Babel = Babel or {} + Babel.locale_props = Babel.locale_props or {} + Babel.locale_props[\the\localeid].linebreak = 'c' + }% + \bbl@exp{\\\bbl@intraspace\bbl@cs{intsp@\languagename}\\\@@}% + \ifx\bbl@KVP@intrapenalty\@nil + \bbl@intrapenalty0\@@ + \fi + \else % sea + \bbl@seaintraspace + \bbl@exp{\\\bbl@intraspace\bbl@cs{intsp@\languagename}\\\@@}% + \directlua{ + Babel = Babel or {} + Babel.sea_ranges = Babel.sea_ranges or {} + Babel.set_chranges('\bbl@cs{sbcp@\languagename}', + '\bbl@cs{chrng@\languagename}') + }% + \ifx\bbl@KVP@intrapenalty\@nil + \bbl@intrapenalty0\@@ + \fi + \fi + \fi + \ifx\bbl@KVP@intrapenalty\@nil\else + \expandafter\bbl@intrapenalty\bbl@KVP@intrapenalty\@@ + \fi}} % \end{macrocode} % % \subsection{CJK line breaking} @@ -12415,33 +12536,6 @@ help from Bernd Raichle, for which I am grateful. <@Font selection@> % \end{macrocode} % -% \textbf{Temporary} fix for luatex $<$1.10, which sometimes inserted a -% spurious closing dir node with a |\textdir| within |\hbox|es. This -% will be eventually removed. -% -% \begin{macrocode} -\def\bbl@luafixboxdir{% - \setbox\z@\hbox{\textdir TLT}% - \directlua{ - function Babel.first_dir(head) - for item in node.traverse_id(node.id'dir', head) do - return item - end - return nil - end - if Babel.first_dir(tex.box[0].head) then - function Babel.fixboxdirs(head) - local fd = Babel.first_dir(head) - if fd and fd.dir:sub(1,1) == '-' then - head = node.remove(head, fd) - end - return head - end - end - }} -\AtBeginDocument{\bbl@luafixboxdir} -% \end{macrocode} -% % \changes{babel~3.32}{2019/05/23}{New - \cs{babelcharproperty}.} % % The code for |\babelcharproperty| is straightforward. Just note the @@ -12489,6 +12583,255 @@ help from Bernd Raichle, for which I am grateful. \let\bbl@chprop@lb\bbl@chprop@linebreak % \end{macrocode} % +% Post-handling hyphenation patterns for non-standard rules, like |ff| +% to |ff-f|. There are still some issues with speed (not very slow, but +% still slow). +% +% After declaring the table containing the patterns with their +% replacements, we define some auxiliary functions: |str_to_nodes| +% converts the string returned by a function to a node list, taking the +% node at |base| as a model (font, language, etc.); |fetch_word| +% fetches a series of glyphs and discretionaries, which |pattern| is +% matched against (if there is a match, it is called again before +% trying other patterns, and this is very likely the main bottleneck). +% +% |post_hyphenate_replace| is the callback applied after +% |tex.hyphenate|. This means the automatic hyphenation points are +% known. As empty captures return a byte position (as explained in the +% \luatex{} manual), we must convert it to a utf8 position. With +% |first|, the last byte can be the leading byte in a utf8 sequence, +% so we just remove it and add 1 to the resulting length. With |last| +% we must take into account the capture position points to the next +% character. Here |word_head| points to the starting node of the text to +% be matched. +% +% \begin{macrocode} +\begingroup +\catcode`\#=12 +\catcode`\%=12 +\catcode`\&=14 +\directlua{ + Babel.linebreaking.replacements = {} + + function Babel.str_to_nodes(fn, matches, base) + local n, head, last + if fn == nil then return nil end + for s in string.utfvalues(fn(matches)) do + if base.id == 7 then + base = base.replace + end + n = node.copy(base) + n.char = s + if not head then + head = n + else + last.next = n + end + last = n + end + return head + end + + function Babel.fetch_word(head, funct) + local word_string = '' + local word_nodes = {} + local lang + local item = head + + while item do + + if item.id == 29 + and not(item.char == 124) &% ie, not | + and not(item.char == 61) &% ie, not = + and (item.lang == lang or lang == nil) then + lang = lang or item.lang + word_string = word_string .. unicode.utf8.char(item.char) + word_nodes[#word_nodes+1] = item + + elseif item.id == 7 and item.subtype == 2 then + word_string = word_string .. '=' + word_nodes[#word_nodes+1] = item + + elseif item.id == 7 and item.subtype == 3 then + word_string = word_string .. '|' + word_nodes[#word_nodes+1] = item + + elseif word_string == '' then + &% pass + + else + return word_string, word_nodes, item, lang + end + + item = item.next + end + end + + function Babel.post_hyphenate_replace(head) + local u = unicode.utf8 + local lbkr = Babel.linebreaking.replacements + local word_head = head + + while true do + local w, wn, nw, lang = Babel.fetch_word(word_head) + if not lang then return head end + + if not lbkr[lang] then + break + end + + for k=1, #lbkr[lang] do + local p = lbkr[lang][k].pattern + local r = lbkr[lang][k].replace + + while true do + local matches = { u.match(w, p) } + if #matches < 2 then break end + + local first = table.remove(matches, 1) + local last = table.remove(matches, #matches) + + &% Fix offsets, from bytes to unicode. + first = u.len(w:sub(1, first-1)) + 1 + last = u.len(w:sub(1, last-1)) + + local new &% used when inserting and removing nodes + local changed = 0 + + &% This loop traverses the replace list and takes the + &% corresponding actions + for q = first, last do + local crep = r[q-first+1] + local char_node = wn[q] + local char_base = char_node + + if crep and crep.data then + char_base = wn[crep.data+first-1] + end + + if crep == {} then + break + elseif crep == nil then + changed = changed + 1 + node.remove(head, char_node) + elseif crep and (crep.pre or crep.no or crep.post) then + changed = changed + 1 + d = node.new(7, 0) &% (disc, discretionary) + d.pre = Babel.str_to_nodes(crep.pre, matches, char_base) + d.post = Babel.str_to_nodes(crep.post, matches, char_base) + d.replace = Babel.str_to_nodes(crep.no, matches, char_base) + d.attr = char_base.attr + if crep.pre == nil then &% TeXbook p96 + d.penalty = crep.penalty or tex.hyphenpenalty + else + d.penalty = crep.penalty or tex.exhyphenpenalty + end + head, new = node.insert_before(head, char_node, d) + node.remove(head, char_node) + if q == 1 then + word_head = new + end + elseif crep and crep.string then + changed = changed + 1 + local str = crep.string(matches) + if str == '' then + if q == 1 then + word_head = char_node.next + end + head, new = node.remove(head, char_node) + elseif char_node.id == 29 and u.len(str) == 1 then + char_node.char = string.utfvalue(str) + else + local n + for s in string.utfvalues(str) do + if char_node.id == 7 then + log('Automatic hyphens cannot be replaced, just removed.') + else + n = node.copy(char_base) + end + n.char = s + if q == 1 then + head, new = node.insert_before(head, char_node, n) + word_head = new + else + node.insert_before(head, char_node, n) + end + end + + node.remove(head, char_node) + end &% string length + end &% if char and char.string + end &% for char in match + if changed > 20 then + texio.write('Too many changes. Ignoring the rest.') + elseif changed > 0 then + w, wn, nw = Babel.fetch_word(word_head) + end + + end &% for match + end &% for patterns + word_head = nw + end &% for words + return head + end + + function Babel.capture_func(key, cap) + local ret = "[[" .. cap:gsub('{([0-9])}', "]]..m[%1]..[[") .. "]]" + ret = ret:gsub("%[%[%]%]%.%.", '') + ret = ret:gsub("%.%.%[%[%]%]", '') + return key .. [[=function(m) return ]] .. ret .. [[ end]] + end +} +% \end{macrocode} +% +% Now the \TeX{} high level interface, which requires the function +% defined above for converting strings to functions returning a string. +% These functions handle the |{|\textit{n}|}| syntax. For example, +% |pre={1}{1}-| becomes |function(m) return m[1]..m[1]..'-' end|, where +% |m| are the matches returned after applying the pattern. The way it +% is done is somewhat tricky, but the effect in not dissimilar to lua +% |load| – save the code as string in a TeX macro, and expand this +% macro at the appropriate place. As |\directlua| does not take into +% account the current catcode of |@|, we just avoid this character in +% macro names (which explains the internal group, too). +% +% \begin{macrocode} +\catcode`\#=6 +\gdef\babelposthyphenation#1#2#3{&% + \begingroup + \def\babeltempa{\bbl@add@list\babeltempb}&% + \let\babeltempb\@empty + \bbl@foreach{#3}{&% + \bbl@ifsamestring{##1}{remove}&% + {\bbl@add@list\babeltempb{nil}}&% + {\directlua{ + local rep = [[##1]] + rep = rep:gsub( '(no)%s*=%s*([^%s,]*)', Babel.capture_func) + rep = rep:gsub( '(pre)%s*=%s*([^%s,]*)', Babel.capture_func) + rep = rep:gsub( '(post)%s*=%s*([^%s,]*)', Babel.capture_func) + rep = rep:gsub('(string)%s*=%s*([^%s,]*)', Babel.capture_func) + tex.print([[\string\babeltempa{{]] .. rep .. [[}}]]) + }}}&% + \directlua{ + local lbkr = Babel.linebreaking.replacements + local u = unicode.utf8 + &% Convert pattern: + local patt = string.gsub([[#2]], '%s', '') + if not u.find(patt, '()', nil, true) then + patt = '()' .. patt .. '()' + end + patt = u.gsub(patt, '{(.)}', + function (n) + return '%' .. (tonumber(n) and (tonumber(n)+1) or n) + end) + lbkr[\the\csname l@#1\endcsname] = lbkr[\the\csname l@#1\endcsname] or {} + table.insert(lbkr[\the\csname l@#1\endcsname], + { pattern = patt, replace = { \babeltempb } }) + }&% + \endgroup} +\endgroup +% \end{macrocode} +% % \subsection{Layout} % % \textbf{Work in progress}. diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins index e12e3c0458..ffd48121aa 100644 --- a/macros/latex/required/babel/base/babel.ins +++ b/macros/latex/required/babel/base/babel.ins @@ -26,7 +26,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. %% -\def\filedate{2019/11/14} +\def\filedate{2019/12/08} \def\batchfile{babel.ins} \input docstrip.tex diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf Binary files differindex f1eafff046..52640ec885 100644 --- a/macros/latex/required/babel/base/babel.pdf +++ b/macros/latex/required/babel/base/babel.pdf diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx index ea753554b2..205df53247 100644 --- a/macros/latex/required/babel/base/bbcompat.dtx +++ b/macros/latex/required/babel/base/bbcompat.dtx @@ -30,7 +30,7 @@ % % \iffalse %<*dtx> -\ProvidesFile{bbcompat.dtx}[2019/11/14 v3.36] +\ProvidesFile{bbcompat.dtx}[2019/12/08 v3.37] %</dtx> % %% File 'bbcompat.dtx' |