From 1903b598f8dda613f5c584bb18ccfd2fd8c278bb Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 4 Jan 2022 03:01:50 +0000 Subject: CTAN sync 202201040301 --- macros/latex/contrib/wrapfig2/README.txt | 2 +- macros/latex/contrib/wrapfig2/wrapfig2.dtx | 150 ++++----- macros/latex/contrib/wrapfig2/wrapfig2.pdf | Bin 511808 -> 532255 bytes macros/latex/contrib/yb-book/DEPENDS.txt | 33 ++ macros/latex/contrib/yb-book/README.md | 25 ++ macros/latex/contrib/yb-book/samples/sample.tex | 41 +++ macros/latex/contrib/yb-book/yb-book-logo.pdf | Bin 0 -> 5216 bytes macros/latex/contrib/yb-book/yb-book.cls | 341 +++++++++++++++++++++ macros/latex/contrib/yb-book/yb-book.pdf | Bin 0 -> 239404 bytes macros/latex/contrib/yb-book/yb-book.tex | 79 +++++ macros/luatex/generic/luatexja/README | 8 +- macros/luatex/generic/luatexja/doc/luatexja-en.pdf | Bin 694135 -> 713111 bytes macros/luatex/generic/luatexja/doc/luatexja-ja.pdf | Bin 1125361 -> 1140418 bytes macros/luatex/generic/luatexja/doc/luatexja.dtx | 156 ++++++++-- .../luatexja/src/addons/luatexja-adjust.sty | 4 +- macros/luatex/generic/luatexja/src/ltj-adjust.lua | 2 +- .../luatex/generic/luatexja/src/ltj-inputbuf.lua | 39 ++- macros/luatex/generic/luatexja/src/ltj-jfmglue.lua | 35 +-- macros/luatex/generic/luatexja/src/ltj-jfont.lua | 18 +- macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua | 11 +- macros/luatex/generic/luatexja/src/ltjclasses.dtx | 5 +- macros/luatex/generic/luatexja/src/ltjsclasses.dtx | 1 + macros/luatex/generic/luatexja/src/luatexja.sty | 2 +- .../generic/luatexja/src/patches/lltjp-siunitx.sty | 5 +- macros/texinfo/latest/texinfo.tex | 28 +- 25 files changed, 822 insertions(+), 163 deletions(-) create mode 100644 macros/latex/contrib/yb-book/DEPENDS.txt create mode 100644 macros/latex/contrib/yb-book/README.md create mode 100644 macros/latex/contrib/yb-book/samples/sample.tex create mode 100644 macros/latex/contrib/yb-book/yb-book-logo.pdf create mode 100644 macros/latex/contrib/yb-book/yb-book.cls create mode 100644 macros/latex/contrib/yb-book/yb-book.pdf create mode 100644 macros/latex/contrib/yb-book/yb-book.tex (limited to 'macros') diff --git a/macros/latex/contrib/wrapfig2/README.txt b/macros/latex/contrib/wrapfig2/README.txt index 38d2c8a284..c6f5011111 100644 --- a/macros/latex/contrib/wrapfig2/README.txt +++ b/macros/latex/contrib/wrapfig2/README.txt @@ -1,5 +1,5 @@ %%%% README.txt file -This README.txt for package wrapfig2[2021-12-25 v.4.0 ...] +This README.txt for package wrapfig2[2022-01-03 v.4.0.1 ...] This work is author maintained diff --git a/macros/latex/contrib/wrapfig2/wrapfig2.dtx b/macros/latex/contrib/wrapfig2/wrapfig2.dtx index 5b6d9f8813..36b142c967 100644 --- a/macros/latex/contrib/wrapfig2/wrapfig2.dtx +++ b/macros/latex/contrib/wrapfig2/wrapfig2.dtx @@ -45,7 +45,7 @@ wrapfig2.sty and wrapfig2.pdf, plus the auxiliary file README.txt. %<+package>\ProvidesPackage{wrapfig2}% %^^A<+readme>File README.txt for package wrapfig2 %<*package|readme> - [2021-12-21 v.4.0 Wrapfig extended] + [2022-01-03 v.4.0.1 Wrapfig extended] % %<*driver> % @@ -217,25 +217,27 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % % The original software had some idiosyncrasies; Donald Arseneau % described them in the documentation of his package; I am sorry -% to say that such idiosyncrasies have not been reduced; but in any case -% the solution is to wrap the inserted object with a sufficient -% number of lines, i.e. by a sufficiently long paragraph. -% -% The above implies that no wrapped object code should be inserted -% by the end of a paragraph; again no object code should be inserted -% within any list; not even close to the end or to the -% beginning of section. Arseneau's code is capable of +% to say that such idiosyncrasies have not been reduced; but in +% any case in order to avoid such peculiar anomalies, it is +% sufficient to wrap the inserted object with a reasonable +% number of lines, i.e. by a reasonably long paragraph. +% +% The above implies that no wrapped object code should be specified +% in the source file close the end of a paragraph; again no object +% code should be inserted within any list; not even close to the end +% or to the beginning of section. Arseneau's code is capable of % specifying the wrapping number of lines such that two or more % paragraphs can be indented so as to wrap a longish insertion, % but it is wise to avoid such risky situations. Moreover, if the % inserted figure or table has a numbered caption, the number might -% not result in the correct order with the normal corresponding +% not result in the correct sequence of the normal corresponding % floating objects. % % Therefore the usefulness of the wrapping procedure depends very % much from the document author ability to move around his/her code % until a suitable position is found. Certainly a good place is -% within a longish first section at the beginning of a new chapter. +% within a longish first section paragraph at the beginning of a +% new chapter. % % The code of this package does not do anything to correct such % idiosyncrasies. They are caused by the limitations of the @@ -246,17 +248,17 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % \meta{number of indented lines} argument does not mean the total % number, but the correction number to add-to or subtract-from to the % value computed by the default mechanism devised by Arseneau. We assume -% that any user first uses the software to insert an object to be wrapped +% that all user first use the software to insert an object to be wrapped % by the surrounding text without specifying any value with the -% specific optional argument; then evaluates the result, and if the +% specific optional argument; then they evaluate the result, and if the % space below the wrapped object is too large, or if such space is -% too small s/he counts the necessary number of lines and specifies +% too small they count the necessary number of lines and specify % it to be processed during another document compilation. When the % object to be wrapped is tall, it is very easy to miscount the % necessary number of lines, while is is very easy to evaluate the % necessary small correction to the default computed value. % -% A third purpose of this package is to define a new environment, +% A furher purpose of this package is to define a new environment, % \Env{wraptext}, to wrap a framed text block typeset on a grey % background as if it were a figure. On \texttt{texstackexchange} % a solution was suggested to a user who was asking for such an @@ -269,11 +271,11 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % of the indented lines number would still be necessary. We added also % the possibility of optionally specifying the measure of the % wrapped text, even if this measure should not be too different -% from a half of the wrapping text measure: with a value too different -% from \texttt{0.5\cs{linewidth}} either the wrapped text has problems -% with inter word spaces and hyphenation because of the small measure, -% or, on the opposite, the indented lines of the wrapping text have -% similar problems. +% from a half of the wrapping text measure.In facts, with a value too +% different from \texttt{0.5\cs{linewidth}} either the wrapped text has +% problems with inter word spaces and hyphenation because of the small +% measure, or, on the opposite, the indented lines of the wrapping text +% have similar problems. % %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Environment syntax} @@ -312,7 +314,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi %\section{Examples} %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % We display some examples by using fake objects such that suitably -% long paragraphs are available; some fake language long paragraphs are +% long paragraphs are available; some fake-language long-paragraphs are % obtained by means of the \pack{kantlipsum} package functionalities. % They contain paragraphs that look as Kant's sentences, but we % doubt that Immanuel Kant ever wrote such texts\dots @@ -322,7 +324,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % -%\begin{wrapfigure}{r}{50mm}* +%\begin{wrapfigure}{r}{50mm} %\centering\unitlength=1mm %\begin{picture}(40,30) %\polygon(0,0)(40,0)(40,30)(0,30) @@ -362,11 +364,11 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % case a \cs{centering} command might help to center the table % within the indention of the wrapping text. Nevertheless the % software can compute the object width if a zero value is specified -% or if the mandatory \meta{width} parameter is completely omitted; -% this second possibility is a feature of this package, that uses a -% \LaTeXiii property by which even a braced argument can be treated -% as an optional argument with a predefined default value; see below -% more details about this feature. +% or if the \meta{width} parameter is completely omitted together +% with its braces; this second possibility is a feature of this +% package, that uses a \LaTeXiii property by which even a braced +% argument can be treated as an optional argument with a predefined +% default value; see below more details about this feature. % %\begin{wraptable}{l} %\centering @@ -404,9 +406,9 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % this width parameter might yield better looking results. % % On the opposite if the user estimates that the table with its -% caption might use 5 lines, and specified such a value as the +% caption might use 5~lines, and specified such a value as the % first (optional) argument to the environment, the result would -% be this poor one, with the last caption line overlapping the +% be the following poor one, with the last caption line overlapping the % wrapping text. % %\begin{wraptable}[5]{l} @@ -421,8 +423,6 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi %\end{wraptable} %\kant[2] % -% If -% %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \subsection{A wrapped text} %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -524,7 +524,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % and its default value amounts to half the current measure; it can % be specified but it should not be too different from 50\% the % current measure. For the standard environments this parameter value -% is mandatory, but, we recall, for the redefined environments +% is mandatory, but, we recall, only for the redefined environments % \env{wrapfigure} and \env{wraptable}, this braced argument is optional. % %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -532,20 +532,19 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Pictures and textual arrays may be floated by means of the standard % \amb{figure} and \amb{table} environments. But other floating -% objects may be defined by means of the \pack{float} package, -% just to name one, or classes. Besides floating, the main difference -% is the name of the caption “label”: Figure, Table, Algorithm, -% Example, and so on. +% objects may be defined by means of other packages, for example the +% \pack{float}, or classes, such as \class{memoir}. Besides floating, +% the main difference is the name of the caption “label”: Figure, Table, +% Algorithm, Example, and so on. % % If floating is not necessary, this package (as well as the original % one) allows to use the underlying environment \Env{wrapfloat} % that uses the same syntax as \Env{wrapfigure} plus the mandatory % name of the new object: even a figure might be introduced without % using \amb{wrapfigure}, by using instead: -%\begin{flushleft}\ttfamily\obeylines -%\Benv{wrapfloat}\Marg{figure}\oarg{line number}\marg{placement}\% -%\quad \oarg{overhang}\marg{width}\meta{$\star$} -%\qquad\qquad\meta{image} +%\begin{flushleft}\setfontsize{9.275}\ttfamily\obeylines +%\Benv{wrapfloat}\Marg{figure}\oarg{line number}\marg{placement}\oarg{overhang}\marg{width}\meta{$\star$} +%\quad\qquad\meta{image} %\Eenv{wrapfloat} %\end{flushleft} % Another \meta{object} may be wrapped by using: @@ -588,7 +587,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi %\begin{quote} % Most, but not all, of the argument types defined by \pack{xparse} % are now supported at the kernel level. In particular, the types -% \texttt{g/G}, \texttt{l} and \texttt{u} are not provided by the +% \texttt{g/G}, \texttt{l} and \texttt{u}, are not provided by the % kernel code; these are \emph{deprecated} but still available by % explicitly loading \pack{xparse}. All other argument types are % now available directly within the \LaTeXe kernel. @@ -649,10 +648,10 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % and \pack{xfp} packages before loading \pack{wrapfig2}. % Notice that most of the \pack{xparse} package functionalities % at the date required for the format file are already included. The -% \pack{xparse} package has been available about in 2018; should the user -% have available a definitely older \TeX system installation, s/he +% \pack{xparse} package has been available about in 2018; should the users +% have available a definitely older \TeX system installation, they % should upgrade it, or must avoid using this \pack{wrapfig2} package -% and use the original one; if s/he needs to wrap text, s/he should +% and use the original one; if they need to wrap text, they should % resort to some ingenious tricks to do it. % % The opening command of the \Env{wrapfloat} environment receives @@ -696,10 +695,10 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % to be wrapped, that does not have a specific width; moreover the % inserted text must not be too wide, nor too short in order to avoid % problems for its justification or the justification of the wrapping -% text. The framed box width is preset to 50\% of the normal text measure, -% but it can be optionally specified to a different value (not too -% different from 50\%), while for the other environments the wrapped -% material width is an \emph{optional braced parameter}. +% lines. The framed box width is preset to 50\% of the normal text +% measure, but it can be optionally specified to a different value (not +% too different from 50\%), while for the other environments the wrapped +% material width is an \emph{braced optional parameter}. % % For what concerns the \Env{wraptext} environment, see below, % because the code is a little more complicated and requires some @@ -709,23 +708,26 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % because the computation of the insertion block height is pretty % precise and at most the user might desire one line more or less % depending on the measure of the whole text, and that of the -% inserted block and/or the measure of the indented wrapped lines. +% inserted block and/or the measure of the indented wrapped lines; +% sometimes it might be necessary to get rid of the space below the +% inserted block when it gets typeset at the bottom of a page. % % It is true that some of the input parameters specified to the opening -% command with \LaTeXiii are available also to the closing commands; see -% the last paragraph of section~2 in the \pack{xparse} documentation. +% command of any environment with \LaTeXiii are available also to the +% closing commands; see the last paragraph of section~2 in the +% \pack{xparse} documentation. % But the following definition, besides using special delimiters for % optional parameters, uses the separate opening and closing % macros of the \Env{wrapfloat} environment; such procedure % apparently breaks this second availability of the input parameters, % therefore it is necessary to save them into local macros or count -% registers (assignments of \TeX count registers are \emph{local}, -% while assignment of the \LaTeX\ named counters, through the +% registers (assignments to \TeX count registers are \emph{local}, +% while assignment to \LaTeX\ named counters, through the % \cs{setcounter} macro and its siblings, are \emph{global}) so % that we can use their values within the closing commands. % -% The \cs{NWF@box} has been assigned at the beginning; remember -% that \LaTeXiii registers of any kind are not limited in number +% The \cs{NWF@box} box register has been assigned at the beginning; +% remember that \LaTeXiii registers of any kind are not limited in number % as they were some years ago even with \LaTeXe. % The last opening commands are conceived to box the object to be % wrapped, typeset within a \Env{minipage} with the default or @@ -785,7 +787,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % arguments. % % The main function of this environment is to handle the box that -% contains the figure, or the table, or the framed test, or what +% contains the figure, or the table, or the framed text, or what % else, so that the inserted box is preceded and followed by the % suitable vertical spaces, and it is possible to compute the % number of lines to be indented; often this computed number is correct; @@ -793,7 +795,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % within prohibited wrapping text, such number might need to be % corrected. As it can be seen the optional star is not among % the argument descriptors of the opening commands; it will be -% the following macro \cs{WR@wr} to take care of examining +% the following macro \cs{WR@wr} responsible of taking care of % the list of arguments and see if a star has been specified and % not yet read by the preceding commands. % @@ -855,7 +857,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % After these adjustments, it computes the box total height plus some % fixed amounts needed mostly to set the wrapped material below the % first wrapping text first line. Here is where the \LaTeXiii -% \cs{fpeval} computing macro comes into play so as to assign such +% \cs{fpeval} computing function comes into play so as to assign such % height to \cs{WF@size}. Some unusual macros are executed; they % were devised by Arseneau to deal with possibly floating wrapped % objects. The optional star is not accepted by this macro; if the user @@ -864,11 +866,11 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % the user specifies it for this environment, an asterisk appears % at the beginning of the wrapped text. % -% The mandatory \texttt{\#4} \meta{width} parameter (actually a -% \meta{optional braced parameter}) may be specified +% The braced \texttt{\#4} \meta{width} parameter (actually a +% \meta{braced optional parameter}) may be specified % to be \texttt{0pt}; in any case \texttt{0pt} is the default parameter % value; if so, the object is treated at its natural width, by -% boxing it into an hbox and using this hbox width as the working width +% boxing it into an hbox and using this box width as the working width % \begin{macrocode} \NewDocumentCommand\WF@wr{o m o m s}{% \xdef\WF@wfname{wrap\@captype\space}% @@ -1030,7 +1032,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi \fi \xdef\WF@place{\the\lccode\lccode\WF@place}% }% twice to get only l or r - \hbox to\z@{% llap o rlap depending on lor r; calc effective width + \hbox to\z@{% llap o rlap depending on l or r; calc effective width \@tempdima\wd\WF@box \@tempdimb\WF@ovh \advance\@tempdima-\@tempdimb \advance\@tempdima\columnsep \@tempdimb\hsize \advance\@tempdimb-\@tempdima @@ -1062,7 +1064,6 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi \aftergroup\WF@startwrapping \fi } - % \end{macrocode} % % Here comes the very important macro that counts the wrapping indented @@ -1074,14 +1075,13 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % fact that this macro cannot preview actions that have not % yet taken place when this macro is executed. % -% This macro is the one that counts the lines to be indented by -% rounding the division of the box height by the current base -% line skip. Notice that \texttt{WF@wrappedlines} is the name -% of a \LaTeX named counter, not of a \TeX numeric register; -% therefore special LaTeX commands, such as \cs{setocounter} or -% \cs{value}, have to be used in order to set or access the -% numerical value stored within the \TeX register associated -% to the \LaTeX counter name. +% This macro counts the lines to be indented by rounding the division +% of the box height by the current base line skip. Notice that +% \texttt{WF@wrappedlines} is the name of a \LaTeX named counter, +% not of a \TeX numeric register; therefore special LaTeX commands, +% such as \cs{setocounter} or \cs{value}, have to be used in order +% to set or access the numerical value stored within the \TeX +% register associated to the \LaTeX counter name. % \begin{macrocode} \def\WF@startwrapping{% \ifnum\WF@wli=\z@ % no number was specified @@ -1309,7 +1309,7 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % % Here there is some Arseneau's code that renders his \pack{wrapfig} % code compatible with \cs{newfloat} of class \class{memoir}, and -% with \cs{newfoatlist} of package \pack{ccaption}. We leave his code +% with \cs{newfloatlist} of package \pack{ccaption}. We leave his code % hereafter; but we did not test it with this package. % \begin{macrocode} \let\WF@floatstyhook\relax @@ -1370,13 +1370,13 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % \end{macrocode} % We never described the package options; this code was present -% in Arseneau's code and ve leave it here, with the necessary -% package name change. We think that this \opz{verbose} option +% in Arseneau's code and we leave it here, with the necessary +% package-name changes. We think that this \opz{verbose} option % was and remains useless, since the instances of command % \cs{WF@info} were mostly commented out in the original code; % in any case, input of this code is stopped if the % \cs{DeclareOption} command is not defined; this command was -% defined with \LaTeXe; therefore this is a residual of the old +% defined with \LaTeXe; therefore might be a residual of the old % times when \LaTeXccix was still in use, more than 25 years % ago\dots % \begin{macrocode} diff --git a/macros/latex/contrib/wrapfig2/wrapfig2.pdf b/macros/latex/contrib/wrapfig2/wrapfig2.pdf index 5e60317074..1b17f61e8e 100644 Binary files a/macros/latex/contrib/wrapfig2/wrapfig2.pdf and b/macros/latex/contrib/wrapfig2/wrapfig2.pdf differ diff --git a/macros/latex/contrib/yb-book/DEPENDS.txt b/macros/latex/contrib/yb-book/DEPENDS.txt new file mode 100644 index 0000000000..df34424b3d --- /dev/null +++ b/macros/latex/contrib/yb-book/DEPENDS.txt @@ -0,0 +1,33 @@ +hard xkeyval +hard geometry +hard fontenc +hard inputenc +hard anyfontsize +hard tikz +hard chngcntr +hard lastpage +hard paralist +hard xcolor +hard graphicx +hard setspace +hard textcomp +hard enumitem +hard float +hard ulem +hard qrcode +hard wrapfig +hard xfp +hard soul} % in order to use \st{ +hard xifthen +hard csquotes +hard biblatex +hard imakeidx +hard microtype +hard libertine +hard footmisc +hard titlesec +hard titlesec +hard fancyhdr +hard wrapfig +hard mdframed +hard changepage diff --git a/macros/latex/contrib/yb-book/README.md b/macros/latex/contrib/yb-book/README.md new file mode 100644 index 0000000000..a9eae33589 --- /dev/null +++ b/macros/latex/contrib/yb-book/README.md @@ -0,0 +1,25 @@ +[![make](https://github.com/yegor256/yb-book/actions/workflows/make.yml/badge.svg)](https://github.com/yegor256/yb-book/actions/workflows/make.yml) +[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/yb-book/blob/master/LICENSE.txt) + +This LaTeX class I use to format [my books](https://www.yegor256.com/books.html), +which I sell [on Amazon](https://www.amazon.com/Yegor-Bugayenko/e/B01AM1QMDK). + +First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages) +from [CTAN](https://ctan.org/pkg/yb-book) +and then use in the preamble: + +```tex +\documentclass{yb-book} +\renewcommand*\theauthor{Jeff Lebowski} +\renewcommand*\thevolume{1} +\renewcommand*\thetitle{New Book About OOP} +\begin{document} +Hello, world! +\end{document} +``` + +If you want to contribute yourself, make a fork, then create a branch, +then run `make` in the root directory. +It should compile everything without errors. If not, submit an issue and wait. +Otherwise, make your changes and then run `make` again. If the build is +still clean, submit a pull request. diff --git a/macros/latex/contrib/yb-book/samples/sample.tex b/macros/latex/contrib/yb-book/samples/sample.tex new file mode 100644 index 0000000000..b5528d54ca --- /dev/null +++ b/macros/latex/contrib/yb-book/samples/sample.tex @@ -0,0 +1,41 @@ +% (The MIT License) +% +% Copyright (c) 2021 Yegor Bugayenko +% +% Permission is hereby granted, free of charge, to any person obtaining a copy +% of this software and associated documentation files (the 'Software'), to deal +% in the Software without restriction, including without limitation the rights +% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +% copies of the Software, and to permit persons to whom the Software is +% furnished to do so, subject to the following conditions: +% +% The above copyright notice and this permission notice shall be included in all +% copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +% SOFTWARE. + +\documentclass{../yb-book} +\renewcommand*\thetitle{\LaTeX{} Class yb-book} +\renewcommand*\theauthor{Yegor Bugayenko} +\begin{document} + +\ybPrintTitlePage + +\newpage + +\chapter{Overview} + +\section{Purpose} + +\index{computer} +This is a very interesting book about computers. + +\ybPrintIndex + +\end{document} \ No newline at end of file diff --git a/macros/latex/contrib/yb-book/yb-book-logo.pdf b/macros/latex/contrib/yb-book/yb-book-logo.pdf new file mode 100644 index 0000000000..5d49cb9daa Binary files /dev/null and b/macros/latex/contrib/yb-book/yb-book-logo.pdf differ diff --git a/macros/latex/contrib/yb-book/yb-book.cls b/macros/latex/contrib/yb-book/yb-book.cls new file mode 100644 index 0000000000..4b99e80514 --- /dev/null +++ b/macros/latex/contrib/yb-book/yb-book.cls @@ -0,0 +1,341 @@ +% (The MIT License) +% +% Copyright (c) 2021-2022 Yegor Bugayenko +% +% Permission is hereby granted, free of charge, to any person obtaining a copy +% of this software and associated documentation files (the 'Software'), to deal +% in the Software without restriction, including without limitation the rights +% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +% copies of the Software, and to permit persons to whom the Software is +% furnished to do so, subject to the following conditions: +% +% The above copyright notice and this permission notice shall be included in all +% copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +% SOFTWARE. + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{yb-book}[2022/01/03 0.1.0 YB Branded Book Style] + +\RequirePackage{xkeyval} + +\makeatletter +\newif\ifyb@draft +\DeclareOptionX{draft}{\yb@drafttrue} +\newif\ifyb@compact +\DeclareOptionX{compact}{\yb@compacttrue} +\newif\ifyb@manuscript +\DeclareOptionX{manuscript}{\yb@manuscripttrue} +\ProcessOptionsX +\makeatother + +\makeatletter\ifyb@draft + \PassOptionsToClass{11pt}{book} + \PassOptionsToClass{oneside}{book} +\else + \ifyb@manuscript + \PassOptionsToClass{12pt}{book} + \PassOptionsToClass{oneside}{book} + \else + \PassOptionsToClass{11pt}{book} + \PassOptionsToClass{twoside}{book} + \fi +\fi\makeatother + +\LoadClass{book} + +\RequirePackage{geometry} + \geometry{paperwidth=6in, paperheight=9in, bindingoffset=0.25in, left=0.75in, right=0.75in, top=0.75in, bottom=1.25in} + \makeatletter\ifyb@draft + \geometry{a4paper, margin=1in, left=1.5in} + \else + \ifyb@manuscript + \geometry{a4paper, margin=1.2in} + \fi + \fi\makeatother + +\RequirePackage[T1]{fontenc} +\RequirePackage[utf8]{inputenc} +\RequirePackage{anyfontsize} +\RequirePackage{tikz} + \usetikzlibrary{positioning} + \usetikzlibrary{shapes} + \usetikzlibrary{fit} +\RequirePackage{chngcntr} + \counterwithout{footnote}{chapter} +\RequirePackage{lastpage} +\RequirePackage{paralist} +\RequirePackage{xcolor} +\RequirePackage{graphicx} +\RequirePackage{setspace} + \setstretch{1.2} + \makeatletter\ifyb@draft\setstretch{1.1}\fi\makeatother + \makeatletter\ifyb@compact\setstretch{1.0}\fi\makeatother + \makeatletter\ifyb@manuscript\setstretch{1.1}\fi\makeatother +\RequirePackage{textcomp} +\RequirePackage[inline]{enumitem} + \setlist{nosep} +\RequirePackage{float} +\RequirePackage[normalem]{ulem} +\RequirePackage{qrcode} +\RequirePackage{wrapfig} + \pagestyle{plain} +\RequirePackage{xfp} +\RequirePackage{soul} % in order to use \st{} to strikethrough +\RequirePackage{xifthen} +\RequirePackage[autostyle=try]{csquotes} + +\RequirePackage[indexing=cite,style=authoryear,natbib=true,maxnames=1,minnames=1,doi=false,url=false,isbn=false,isbn=false]{biblatex} + \DeclareCiteCommand{\citetitle} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexnames{labelname}} + {}% + \printfield[citetitle]{labeltitle}} + {\multicitedelim} + {\usebibmacro{postnote}} + \DeclareCiteCommand*{\citetitle} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexnames{labelname}} + {}% + \printfield[citetitle]{title}} + {\multicitedelim} + {\usebibmacro{postnote}} +\RequirePackage{imakeidx} + \renewbibmacro*{citeindex}{\indexnames{labelname}{}} + \makeindex + \indexsetup{othercode={\hyphenpenalty=10000}} + +\newenvironment{condensed}{% + \begingroup\setstretch{1.0}% + % This lsstyle is defined by 'letterspace' in microtype + \lsstyle}{\endgroup} + +\makeatletter\ifyb@draft\else + \RequirePackage[letterspace=-50]{microtype} +\fi\makeatother + +\makeatletter\ifyb@manuscript + \RequirePackage[tt=false,type1=true]{libertine} +\fi\makeatother + +\RequirePackage[bottom,perpage,multiple]{footmisc} + % see https://tex.stackexchange.com/questions/40072/incompatibility-between-footmisc-option-multiple-and-hyperref/62091#62091 + \makeatletter\let\yb@oldfootnote\footnote\makeatother + \makeatletter\newcommand\yb@nexttoken\relax\makeatother + \makeatletter\newcommand\yb@isfootnote{% + \ifx\footnote\yb@nexttoken\textsuperscript{,}\fi}\makeatother + \makeatletter\renewcommand\footnote[1]{% + \yb@oldfootnote{#1}\futurelet\yb@nexttoken\yb@isfootnote}\makeatother + +\makeatletter + \let\yb@oldsection\section + \ifyb@draft + \RequirePackage[medium]{titlesec} + \else + \RequirePackage[raggedright]{titlesec} + \titlespacing{\section}{0in}{6pt}{6pt}[1in] + \renewcommand\section{\newpage\yb@oldsection} + \fi +\makeatother + +\makeatletter\ifyb@compact + \renewcommand\section{\vspace{2em}\yb@oldsection} +\fi\makeatother + +\makeatletter\ifyb@draft + \RequirePackage{fancyhdr} + \pagestyle{fancy} + \renewcommand\headrulewidth{0pt} + \renewcommand\footrulewidth{0pt} + \fancyhf{} + \fancyhead[L,C,LO,CO]{} + \fancyhead[R,RO]{ + \begin{textblock}{4}(11.5,1) + \begin{tikzpicture} + \node [color=gray, rotate=270, font=\ttfamily\scriptsize, text width=5in] at (0,0) { + Copyright \textcopyright{} \the\year{} by \theauthor{}. + All rights reserved. No part of the contents of this book may be + reproduced or transmitted in any form or by any means without the + written permission of the publisher. + This particular manuscript is printed for + \textbf{\thereviewer{}} and may be used only for one-time review. The + manuscript has to be destroyed after the review. + }; + \end{tikzpicture} + \end{textblock} + } + \fancyfoot[C,CO]{\small\ttfamily page \#\thepage{} of \pageref{LastPage}} +\fi\makeatother + +\renewcommand\maketitle{ + {\LARGE\textbf{\thetitle}} + \\[1em] + by \theauthor{} + \\[4em] + \ifx\thevolume\empty\else% + Volume \thevolume{}\\ + \fi + \ifx\thedate\empty\else% + Rendered on \thedate{} + \fi + \ifx\theversion\empty\else% + \\ + Ver. \theversion{} + \fi +} + +\makeatletter\newcommand\ybPrintTitlePage{ + \ifyb@draft\else + \begin{titlepage} + \ttfamily + \vspace*{\fill} + \noindent + {\Huge\textbf{\thetitle}} + \\[1em] + by \theauthor{} + \\[4em] + \ifx\thevolume\empty\else% + Volume \thevolume{}\\ + \fi + \ifx\thedate\empty\else% + \thedate{} + \fi + \ifx\thedate\empty\else% + \\ + \theversion{} + \fi + \vspace*{\fill} + \end{titlepage} + \fi +}\makeatother + +\makeatletter\newcommand\ybPrintTOC{ + \ifyb@draft\else + \ifyb@compact\else\cleardoublepage\fi + {\setstretch{0.7}\tableofcontents} + \fi +}\makeatother + +\makeatletter\newcommand\ybPrintIndex[1][Index]{ + \ifyb@draft\else + \cleardoublepage + { + \setstretch{1.0} + \small + \addcontentsline{toc}{chapter}{#1} + \printindex + } + \fi +}\makeatother + +\newcommand\ybPrintIcons{% + \ifdefempty{\theemail{}}{}{% + \includegraphics[height=1em]{images/icon-email.pdf}% + \theemail{}% + }% + \includegraphics[height=1em]{images/icon-twitter.pdf}% + \includegraphics[height=1em]{images/icon-linkedin.pdf}% + \includegraphics[height=1em]{images/icon-github.pdf}% + \includegraphics[height=1em]{images/icon-instagram.pdf}% + \includegraphics[height=1em]{images/icon-facebook.pdf}% + \thesocial{}% +} + +% quotes +\RequirePackage{wrapfig} +\RequirePackage{mdframed} +\RequirePackage{changepage} + \strictpagecheck +\mdfdefinestyle{quoteodd}{backgroundcolor=black!0, + leftmargin=6pt,rightmargin=0pt, + innerleftmargin=6pt,innerrightmargin=0pt, + innertopmargin=0pt,innerbottommargin=0pt, + skipabove=0pt,skipbelow=0pt, + linewidth=2pt, + topline=false,bottomline=false,rightline=false} +\mdfdefinestyle{quoteeven}{backgroundcolor=black!0, + rightmargin=6pt,leftmargin=0pt, + innerrightmargin=6pt,innerleftmargin=0pt, + innertopmargin=0pt,innerbottommargin=0pt, + skipabove=0pt,skipbelow=0pt, + linewidth=2pt, + topline=false,bottomline=false,leftline=false} +\makeatletter\newcommand\ybQuote[3]{% + \ifthenelse{\isempty{#3}}{}{ + \ifx\hfuzz#2\hfuzz% + \index{#3}% + \else% + \index{#3, #2}% + \fi% + }% + \def\yb@body{% + \raggedright% + \ifx\hfuzz#3\hfuzz% + #1% + \else% + ``#1''\\\raggedleft---#2 #3% + \fi% + } + \ifyb@draft% + \begin{wrapfigure}{r}{0.4\textwidth}% + \begin{mdframed}[style=quoteodd]% + \yb@body% + \end{mdframed}% + \end{wrapfigure}% + \else% + \begin{wrapfigure}{o}[12pt]{0.4\textwidth}% + \sffamily\checkoddpage% + \ifoddpage% + \begin{mdframed}[style=quoteodd]\yb@body\end{mdframed}% + \else% + \begin{mdframed}[style=quoteeven]\yb@body\end{mdframed}% + \fi% + \vspace{-12pt} + \end{wrapfigure}% + \fi% +}\makeatother + +\makeatletter\newcommand\ybPrintBibliography{% + \AtNextBibliography{\small}% + \raggedright% + \ifyb@manuscript% + \setlength\bibitemsep{0pt}% + \newpage% + \begin{multicols}{2}{\setstretch{1.0}\printbibliography}\end{multicols} + \else + \printbibliography + \fi +}\makeatother + +\AtBeginDocument{% + \raggedbottom% + \setlength\topskip{0mm}% + \setlength\parindent{0pt}% + \setlength\parskip{6pt}% + \interfootnotelinepenalty=10000% +} + +\newcommand*\thetitle{\textbackslash{}thetitle} +\newcommand*\thevolume{} +\newcommand*\thedate{} +\newcommand*\theemail{\textbackslash{}theemail} +\newcommand*\thesocial{\textbackslash{}thesocial} +\newcommand*\theversion{\textbackslash{}theversion} +\newcommand*\theauthor{\textbackslash{}theauthor} +\newcommand*\thereviewer{\textbackslash{}thereviewer} +\newcommand*\theyear{\textbackslash{}theyear} +\newcommand*\theprice{\textbackslash{}theprice} + +\endinput diff --git a/macros/latex/contrib/yb-book/yb-book.pdf b/macros/latex/contrib/yb-book/yb-book.pdf new file mode 100644 index 0000000000..cde5f931f5 Binary files /dev/null and b/macros/latex/contrib/yb-book/yb-book.pdf differ diff --git a/macros/latex/contrib/yb-book/yb-book.tex b/macros/latex/contrib/yb-book/yb-book.tex new file mode 100644 index 0000000000..0937552058 --- /dev/null +++ b/macros/latex/contrib/yb-book/yb-book.tex @@ -0,0 +1,79 @@ +% (The MIT License) +% +% Copyright (c) 2021-2022 Yegor Bugayenko +% +% Permission is hereby granted, free of charge, to any person obtaining a copy +% of this software and associated documentation files (the 'Software'), to deal +% in the Software without restriction, including without limitation the rights +% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +% copies of the Software, and to permit persons to whom the Software is +% furnished to do so, subject to the following conditions: +% +% The above copyright notice and this permission notice shall be included in all +% copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +% SOFTWARE. + +\documentclass[compact,manuscript]{./yb-book} +\usepackage{ffcode} +\usepackage{href-ul} +\renewcommand*\theversion{0.1.0} +\renewcommand*\thedate{2022/01/03} +\renewcommand*\thetitle{\LaTeX{} Class \ff{yb-book}} +\renewcommand*\theauthor{Yegor Bugayenko} + +\begin{document} + +\includegraphics[height=6em]{yb-book-logo.pdf} +\vspace*{24pt} + +\maketitle + +\index{Amazon} +The provided class \ff{yb-book} helps me design +\href{https://www.yegor256.com/books.html}{my books} and +publish them +\href{https://www.amazon.com/Yegor-Bugayenko/e/B01AM1QMDK}{on Amazon}. + +There are a few class options you can use: + +\ff{compact} --- when you need to make text more compact +and take less vertical space; + +\ff{manuscript} --- when the format is not for Amazon printing, +but for some other purposes (the page size is A4), like the document +you are reading right now; + +\ff{draft} --- when it's a draft for reviewers (the page size is A4) +and you want to have a watermark and a compact form of the content; + +\section*{Printers} + +There are a number of printers, commands that print large blocks of text +in the expected format: + +\ff{\textbackslash{}ybPrintTitlePage} --- prints the first page of a book. + +\ff{\textbackslash{}ybPrintTOC} --- prints the table of contents. + +\ff{\textbackslash{}ybQuote} --- prints a side quote. + +\ff{\textbackslash{}ybPrintBibliography} --- prints the list of bib references. + +\ff{\textbackslash{}ybPrintIcons} --- prints your social icons. + +\ff{\textbackslash{}ybPrintIndex[1]} --- prints index with an optional name of the section (instead of ``Index''). + +For more samples, check the directory \ff{samples/}. + +You are welcome to suggest additional commands, but the style +of my books is intentionally as simple as possible, avoiding formatting +as much as possible. + +\end{document} \ No newline at end of file diff --git a/macros/luatex/generic/luatexja/README b/macros/luatex/generic/luatexja/README index 6ecb431970..6d7fe60543 100644 --- a/macros/luatex/generic/luatexja/README +++ b/macros/luatex/generic/luatexja/README @@ -1,4 +1,4 @@ -The LuaTeX-ja Package 20211024.0 +The LuaTeX-ja Package 20220103.0 -------------------------------- Copyright (c) 2011--2021 The LuaTeX-ja project License: modified BSD (see COPYING) @@ -42,9 +42,9 @@ Installation 2. If you must/want to install manually: a. Download the source archive from CTAN, - or tagged as 20211024.0 in the Git repository by + or tagged as 20220103.0 in the Git repository by + ;a=snapshot;h=refs/tags/20220103.0;sf=tgz> b. Extract the archive and process following three files by LuaLaTeX to generate classes for Japanese typesetting: @@ -93,4 +93,4 @@ Notes This file and ltj-kinsoku.lua are not used anymore. (Do not remove ltj-kinsoku.tex.) -Last commit date: Sun Oct 24 13:28:03 2021 +0900 +Last commit date: Mon Jan 3 12:19:51 2022 +0900 diff --git a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf index 6f4ce08e8a..dcb0a086ee 100644 Binary files a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf and b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf index cc188cb9d0..f91aac1df4 100644 Binary files a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf and b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja.dtx b/macros/luatex/generic/luatexja/doc/luatexja.dtx index 46106f0930..4d553f38ec 100644 --- a/macros/luatex/generic/luatexja/doc/luatexja.dtx +++ b/macros/luatex/generic/luatexja/doc/luatexja.dtx @@ -4721,8 +4721,8 @@ we specify to $0.25/(0.5+0.25)=1/3$. JFMによって本来挿入されるグルーの他に \Param{kanjiskip}分の空白を自然長(\texttt{kanjiskip\_natural}),伸び量(\texttt{kanjiskip\_stretch}), -縮み量(\texttt{kanjiskip\_shrink})ごとに挿入する\footnote{本来\Param{xkanjiskip}が挿入される場所においては - \Param{xkanjiskip}分の空白を自然長・伸び量・縮み量ごとに.追加できる.}% +縮み量(\texttt{kanjiskip\_shrink})ごとに挿入する +% \footnote{本来\Param{xkanjiskip}が挿入される場所においては\Param{xkanjiskip}分の空白を自然長・伸び量・縮み量ごとに}% ための指定である.いずれも省略された場合のデフォルト値は0(追加しない)である. 例えば,\LuaTeX-jaの横組標準JFMの \texttt{jfm-ujis.lua} では, @@ -4730,8 +4730,8 @@ JFMによって本来挿入されるグルーの他に \item 通常の文字「あ」と開き括弧類の間に入るグルーは,自然長・縮み量半角,伸び量0のグルー となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け た分だけ伸びることが許される. - \item 同様に,閉じ括弧類(全角コンマ「,」も含む)と通常の文字「う」「え」の間にも -自然長・縮み量半角,伸び量0のグルー + \item 同様に,閉じ括弧類(全角コンマ「,」も含む)と和文文字「う」「え」, + 閉じ括弧類と「f」の間も自然長・縮み量半角,伸び量0のグルー となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け た分だけ伸びることが許される. \item 一方,開き括弧類と通常の文字の間,また通常の文字と閉じ括弧類の間は @@ -4741,16 +4741,16 @@ JFMによって本来挿入されるグルーの他に となっている.従って,以下のような組版結果を得る. \medskip -\begin{LTXexample}[width=16\zw] -\leavevmode -\ltjsetparameter{kanjiskip=0pt plus 3\zw} -\vrule\hbox to 15\zw{あ「い」う,えお}\vrule +\begin{LTXexample}[width=18\zw] +\leavevmode\let\V=\vrule +\ltjsetparameter{kanjiskip=0pt plus 5\zw} +\ltjsetparameter{xkanjiskip=0pt plus 0.5\zw} +\V\hbox spread 7\zw{aあ「い」う,えお」f}\V -\vrule\hbox{あ「い」う,えお}\vrule\par +\vrule\hbox{ああ「い」う,えお」f}\V\par \ltjsetparameter{kanjiskip=0pt minus \zw} -\vrule\hbox to 6.5\zw{あ「い」う,えお}\vrule +\V\hbox spread -2.5\zw{aあ「い」う,えお」f}\V \end{LTXexample} - \end{cslist} % %<*en> @@ -4767,7 +4767,7 @@ and is also easy to shrink. \item[kanjiskip\_natural=\textrm{, }% kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode -These keys specifies the amount of the natural width of \Param{kanjiskip} +These keys specifies the amount of the natural width of \Param{kanjiskip}% (the stretch/shrink part, respectively) which will be inserted in addition to the original JFM glue. Default values of them are all 0. @@ -4778,8 +4778,8 @@ a glue whose natural part and shrink part are both half-width, while its stretch zero. However, this glue also can be stretched as much as the stretch part of \Param{kanjiskip} times the value of \texttt{kanjiskip\_stretch} key (1 in this case). - \item Between an ideographic closeing brackets (the ideographic comma ``,'' - is included) and an ordinal letter, we have the same glue. + \item Between an ideographic closeing brackets (including the ideographic comma ``,'') + and an ordinal letter (including an \textbf{ALchar} ``f\/''), we have the same glue. Again, this glue also can be stretched as much as the stretch part of \Param{kanjiskip} times the value of \texttt{kanjiskip\_stretch} key (1 in this case). @@ -4791,14 +4791,15 @@ a glue whose natural part and shrink part are both half-width, while its stretch Hence we have the following result: \medskip -\begin{LTXexample}[width=16\zw] -\leavevmode -\ltjsetparameter{kanjiskip=0pt plus 3\zw} -\vrule\hbox to 15\zw{あ「い」う,えお}\vrule +\begin{LTXexample}[width=18\zw] +\leavevmode\let\V=\vrule +\ltjsetparameter{kanjiskip=0pt plus 5\zw} +\ltjsetparameter{xkanjiskip=0pt plus 0.5\zw} +\V\hbox spread 7\zw{aあ「い」う,えお」f}\V -\vrule\hbox{あ「い」う,えお}\vrule\par +\vrule\hbox{aあ「い」う,えお」f}\V\par \ltjsetparameter{kanjiskip=0pt minus \zw} -\vrule\hbox to 6.5\zw{あ「い」う,えお}\vrule +\V\hbox spread -2.5\zw{aあ「い」う,えお」f}\V \end{LTXexample} \end{cslist} @@ -7764,7 +7765,8 @@ for making the difference obvious.} \begin{cslist} \item[\cs{ltjenableadjust[...]}] \verb+...+ に指定したkey-valueリストに従い,「行末文字の位置調整」「優先順位付きの行長調整」 - 「『中身までみた』行送り計算」「段階的な行送り調整」を有効化/無効化する. + 「『中身までみた』行送り計算」「段階的な行送り調整」%「濁点・半濁点付き仮名文字の正規化」 + を有効化/無効化する. 指定できるキーは以下の通り. \begin{description} \item[\texttt{lineend=[false,true,extended]}] @@ -7776,6 +7778,8 @@ for making the difference obvious.} 「中身までみた」行送り計算を無効化(\texttt{false}),または有効化(\texttt{true}). \item[\texttt{linestep=[false,true]}] 段階的な行送り調整を無効化(\texttt{false}),または有効化(\texttt{true}). +% \item[\texttt{composekana=[false,true]}] +% 濁点・半濁点付き仮名文字の正規化を無効化(\texttt{false}),または有効化(\texttt{true}). \end{description} どのキーともキー名のみを指定した場合は値として\texttt{true}が指定されたものと扱われる. @@ -9939,6 +9943,116 @@ u その行はそこで改行するようにした方がいいだろう. % +\begin{table}[t] +% \caption{「基底文字+合成用濁点・半濁点」から合成済み文字への変換をサポートする組み合わせ} +% \caption{Normalization of Kana Character Sequences with Combining (Semi)-voiced Sound Mark}\medskip + \label{tab:kana_composite} + \def\D#1{% + {\fboxsep0pt\fcolorbox{cyan}{white}% + {\hbox to 1\zw{\hss#1}}}} %" + \def\DC#1{\D{\unitlength=1\zw + \begin{picture}(1,0) + \put(0.5,0.38){\arc[0,15]{0.25}}\put(0.5,0.38){\arc[30,45]{0.25}}\put(0.5,0.38){\arc[60,75]{0.25}} + \put(0.5,0.38){\arc[90,105]{0.25}}\put(0.5,0.38){\arc[120,135]{0.25}}\put(0.5,0.38){\arc[150,165]{0.25}} + \put(0.5,0.38){\arc[180,195]{0.25}}\put(0.5,0.38){\arc[210,225]{0.25}}\put(0.5,0.38){\arc[240,255]{0.25}} + \put(0.5,0.38){\arc[270,285]{0.25}}\put(0.5,0.38){\arc[300,315]{0.25}}\put(0.5,0.38){\arc[330,345]{0.25}} + \end{picture}\llap{#1\kern-.7\zw}}} + \def\CDJ#1#2{$\mbox{\D{\char"#1}}+\mbox{\DC{゛}}\rightarrow \mbox{\D{\char"#2}}$} + \def\CHJ#1#2{$\mbox{\D{\char"#1}}+\mbox{\DC{゜}}\rightarrow \mbox{\D{\char"#2}}$} + \small\centering + \begin{tabular}{@{}llllll@{}} + \CDJ{3046}{3094}& + \CDJ{304B}{304C}& + \CDJ{304D}{304E}& + \CDJ{304F}{3050}& + \CDJ{3051}{3052}& + \CDJ{3053}{3054}\\ + \CDJ{3055}{3056}& + \CDJ{3057}{3058}& + \CDJ{3059}{305A}& + \CDJ{305B}{305C}& + \CDJ{305D}{305E}& + \CDJ{305F}{3060}\\ + \CDJ{3061}{3062}& + \CDJ{3064}{3065}& + \CDJ{3066}{3067}& + \CDJ{3068}{3069}& + \CDJ{306F}{3070}& + \CDJ{3072}{3073}\\ + \CDJ{3075}{3076}& + \CDJ{3078}{3079}& + \CDJ{307B}{307C}& + \CDJ{309D}{309E}& + \CDJ{30A6}{30F4}& + \CDJ{30AB}{30AC}\\ + \CDJ{30AD}{30AE}& + \CDJ{30AF}{30B0}& + \CDJ{30B1}{30B2}& + \CDJ{30B3}{30B4}& + \CDJ{30B5}{30B6}& + \CDJ{30B7}{30B8}\\ + \CDJ{30B9}{30BA}& + \CDJ{30BB}{30BC}& + \CDJ{30BD}{30BE}& + \CDJ{30BF}{30C0}& + \CDJ{30C1}{30C2}& + \CDJ{30C4}{30C5}\\ + \CDJ{30C6}{30C7}& + \CDJ{30C8}{30C9}& + \CDJ{30CF}{30D0}& + \CDJ{30D2}{30D3}& + \CDJ{30D5}{30D6}& + \CDJ{30D8}{30D9}\\ + \CDJ{30DB}{30DC}& + \CDJ{30EF}{30F7}& + \CDJ{30F0}{30F8}& + \CDJ{30F1}{30F9}& + \CDJ{30F2}{30FA}& + \CDJ{30FD}{30FE}\\ + \CHJ{306F}{3071}& + \CHJ{3072}{3074}& + \CHJ{3075}{3077}& + \CHJ{3078}{307A}& + \CHJ{307B}{307D}& + \CHJ{30CF}{30D1}\\ + \CHJ{30D2}{30D4}& + \CHJ{30D5}{30D7}& + \CHJ{30D8}{30DA}& + \CHJ{30DB}{30DD} + \end{tabular} +\end{table} +%<*en> +\subsection{Composition of Kana from Combining Character Sequences} +In (u)\pTeX, Hiragana and Katakana in the NFD form% +\footnote{namely, character sequences which contains + ``COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK''~(\texttt{U+3099}) and + ``COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK''~(\texttt{U+309A}).} +are normalized to precomposed characters before (u)\pTeX\ looks into the input line. +Character sequences which are involved in this normalization are shown in \autoref{tab:kana_composite}. + +The above normalization process is also performed in \LuaTeX-ja version~20220103.0 or later, because +fonts might not have these transformation as an OpenType feature. +% + +%<*ja> +\subsection{濁点・半濁点付き仮名文字の正規化} +\TeX~Live~2016以降の(u)\pTeX では,合成用濁点(\texttt{U+3099})・合成用半濁点(\texttt{U+309A})を用いて +表現された平仮名・片仮名を合成済み文字に変換する(具体的には\autoref{tab:kana_composite}の組み合わせ)という処理を行っている. +この処理を行っている要因としては, +\begin{itemize} + \item 無用なトラブルを避けるため. + 濁点・半濁点付きの仮名文字が「合成用濁点・半濁点を使って入力されているか」「最初から合成済み文字で入力されているか」を + 見た目から判別することは難しい. + \item \pTeX との互換性のため.\pTeX は内部コードがJIS~X~0208の範囲に限られるため, + 合成用濁点・半濁点は利用できない.そのため上記の変換処理はさらに前から行われていた. +\end{itemize} + +一方,\LuaTeX(-ja)では入力の変換は基本的に行わず,文字の合成は使用しているフォントのOpenType機能に委ねるという立場である. +しかし,\autoref{tab:kana_composite}に挙げた変換はUnicode正規化の範疇であり,この内容を持っているフォントは多くない. +よって,前段落で述べた2つの理由(と\upTeX との互換性という意味も込めて)も考慮して, +バージョン20220103.0以降では,\LuaTeX-jaは入力行に対して\autoref{tab:kana_composite}の変換を行う. +% + %<*ja> %\section{Insertion of JFM glues, \Param{kanjiskip} and \Param{xkanjiskip}} diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty index 5636179464..d325df7dc6 100644 --- a/macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty +++ b/macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty @@ -64,7 +64,7 @@ \expandafter\let\csname ifltj@in@latex\expandafter\endcsname \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{luatexja-adjust}[2019-01-06] + \ProvidesPackage{luatexja-adjust}[2022-01-03] \fi % % Load core module if not yet. @@ -109,7 +109,7 @@ \the\ltjadj@status@lp, \the\ltjadj@status@ls)}\ignorespaces } \protected\def\ltjdisableadjust{% - \ltjenableadjust[lineend=false,priority=false,profile=false,linestep=false]} + \ltjenableadjust[lineend=false,priority=false,profile=false,linestep=false]}% \protected\def\ltjenableadjust{% \ltx@ifnextchar[{\@@ltjenableadjust}{\@@ltjenableadjust[lineend,priority]}}%] diff --git a/macros/luatex/generic/luatexja/src/ltj-adjust.lua b/macros/luatex/generic/luatexja/src/ltj-adjust.lua index 56effa3c57..76a1a68ec4 100644 --- a/macros/luatex/generic/luatexja/src/ltj-adjust.lua +++ b/macros/luatex/generic/luatexja/src/ltj-adjust.lua @@ -434,7 +434,7 @@ do luatexja.lineskip.setting( status_lp>0 and 'profile' or 'dummy', status_ls>0 and 'step' or 'dummy' - ) + ) end local function disable_cb() -- only for compatibility enable_cs(0,0,0,0) diff --git a/macros/luatex/generic/luatexja/src/ltj-inputbuf.lua b/macros/luatex/generic/luatexja/src/ltj-inputbuf.lua index e1623199e4..7f39b9b8d7 100644 --- a/macros/luatex/generic/luatexja/src/ltj-inputbuf.lua +++ b/macros/luatex/generic/luatexja/src/ltj-inputbuf.lua @@ -14,6 +14,43 @@ local id_glyph = node.id 'glyph' local getcatcode, getcount = tex.getcatcode, tex.getcount local ltjc_is_japanese_char_curlist = ltjc.is_japanese_char_curlist +local substituter +do + local uchar = utf.char + local cd, cp = uchar(0x3099), uchar(0x309A) + substituter = (utf.substituter or utf.subtituter) -- typo in lualibs? + { + ['ウ'..cd] = 'ヴ', ['う'..cd] = uchar(0x30F4), + ['か'..cd] = 'が', ['カ'..cd] = 'ガ', + ['き'..cd] = 'ぎ', ['キ'..cd] = 'ギ', + ['く'..cd] = 'ぐ', ['ク'..cd] = 'グ', + ['け'..cd] = 'げ', ['ケ'..cd] = 'ゲ', + ['こ'..cd] = 'ご', ['コ'..cd] = 'ゴ', + -- + ['さ'..cd] = 'ざ', ['サ'..cd] = 'ザ', + ['し'..cd] = 'じ', ['シ'..cd] = 'ジ', + ['す'..cd] = 'ず', ['ス'..cd] = 'ズ', + ['せ'..cd] = 'ぜ', ['セ'..cd] = 'ゼ', + ['そ'..cd] = 'ぞ', ['ソ'..cd] = 'ゾ', + -- + ['た'..cd] = 'だ', ['タ'..cd] = 'ダ', + ['ち'..cd] = 'ぢ', ['チ'..cd] = 'ヂ', + ['つ'..cd] = 'づ', ['ツ'..cd] = 'ヅ', + ['て'..cd] = 'で', ['テ'..cd] = 'デ', + ['と'..cd] = 'ど', ['ト'..cd] = 'ド', + -- + ['は'..cd] = 'ば', ['ハ'..cd] = 'バ', ['は'..cp] = 'ぱ', ['ハ'..cp] = 'パ', + ['ひ'..cd] = 'び', ['ヒ'..cd] = 'ビ', ['ひ'..cp] = 'ぴ', ['ヒ'..cp] = 'ピ', + ['ふ'..cd] = 'ぶ', ['フ'..cd] = 'ブ', ['ふ'..cp] = 'ぷ', ['フ'..cp] = 'プ', + ['へ'..cd] = 'べ', ['ヘ'..cd] = 'ベ', ['へ'..cp] = 'ぺ', ['ヘ'..cp] = 'ペ', + ['ほ'..cd] = 'ぼ', ['ホ'..cd] = 'ボ', ['ほ'..cp] = 'ぽ', ['ホ'..cp] = 'ポ', + -- + ['ゝ'..cd] = 'ゞ', ['ヽ'..cd] = 'ヾ', + ['ワ'..cd] = uchar(0x30F7), ['ヰ'..cd] = uchar(0x30F8), + ['ヱ'..cd] = uchar(0x30F9), ['ヲ'..cd] = uchar(0x30FA), + } +end + --- the following function is modified from jafontspec.lua (by K. Maeda). --- Instead of "%", we use U+FFFFF for suppressing spaces. --DEBUG require"socket" @@ -21,7 +58,7 @@ local time_line = 0 local start_time_measure, stop_time_measure = ltjb.start_time_measure, ltjb.stop_time_measure local function add_comment(buffer) - start_time_measure 'inputbuf' + start_time_measure 'inputbuf'; buffer = substituter(buffer) local i = utflen(buffer) local c = utfbyte(buffer, i) while (i>0) and (getcatcode(c)==1 or getcatcode(c)==2) do diff --git a/macros/luatex/generic/luatexja/src/ltj-jfmglue.lua b/macros/luatex/generic/luatexja/src/ltj-jfmglue.lua index 9ce7816070..a2bede6442 100644 --- a/macros/luatex/generic/luatexja/src/ltj-jfmglue.lua +++ b/macros/luatex/generic/luatexja/src/ltj-jfmglue.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.jfmglue', - date = '2021-09-18', + date = '2022-01-02', description = 'Insertion process of JFM glues, [x]kanjiskip and others', }) luatexja.jfmglue = luatexja.jfmglue or {} @@ -975,24 +975,20 @@ end -- NA, NB: alchar or math local function get_NA_skip() local pm = Np.met - local g, _, kn, kp, kh = new_jfm_glue( - pm.char_type, - fast_find_char_class( - (Nq.id == id_math and -1 or (Nq.xspc>=2 and 'alchar' or 'nox_alchar')), pm), - Np.class) - local k = ((Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc 'auto_xspc') - and get_xkanjiskip_low(false, pm, kn, kp, kh) + local qclass = fast_find_char_class( + (Nq.id == id_math and -1 or (Nq.xspc>=2 and 'alchar' or 'nox_alchar')), pm) + local g, _, kn, kp, kh = new_jfm_glue(pm.char_type, qclass, Np.class) + local k = g and (Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc 'auto_xspc' + and get_kanjiskip_low(true, pm, kn, kp, kh) return g, k end local function get_NB_skip() local qm = Nq.met - local g, _, kn, kp, kh = new_jfm_glue( - qm.char_type, Nq.class, - fast_find_char_class( - (Np.id == id_math and -1 or (Np.xspc%2==1 and 'alchar' or 'nox_alchar')), qm) - ) - local k = ((Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc 'auto_xspc') - and get_xkanjiskip_low(false, qm, kn, kp, kh) + local pclass = fast_find_char_class( + (Np.id == id_math and -1 or (Np.xspc%2==1 and 'alchar' or 'nox_alchar')), qm) + local g, _, kn, kp, kh = new_jfm_glue(qm.char_type, Nq.class, pclass) + local k = g and (Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc 'auto_xspc' + and get_kanjiskip_low(true, qm, kn, kp, kh) return g, k end @@ -1037,8 +1033,7 @@ local function handle_np_jachar(mode) if not g then g = get_kanjiskip() end handle_penalty_normal(0, Np.pre, g); real_insert(g); real_insert(k) elseif Nq.pre then - local g, k - if non_ihb_flag then g, k = get_NA_skip() end -- N_A->X + local g, k; if non_ihb_flag then g, k = get_NA_skip() end -- N_A->X if not g then g = get_xkanjiskip(Np) end handle_penalty_normal((qid==id_hlist and 0 or Nq.post), Np.pre, g); real_insert(g); real_insert(k) @@ -1059,8 +1054,10 @@ end -- jachar .. (anything) local function handle_nq_jachar() if Np.pre then - local g = non_ihb_flag and get_NB_skip() or get_xkanjiskip(Nq) -- N_B->X - handle_penalty_normal(Nq.post, (Np.id==id_hlist and 0 or Np.pre), g); real_insert(g) + local g, k; if non_ihb_flag then g, k = get_NB_skip()end -- N_B->X + if not g then g = get_xkanjiskip(Nq) end + handle_penalty_normal(Nq.post, (Np.id==id_hlist and 0 or Np.pre), g); + real_insert(g); real_insert(k) else local g =non_ihb_flag and (get_OB_skip()) -- O_B if Np.id==id_glue then handle_penalty_normal(Nq.post, 0, g) diff --git a/macros/luatex/generic/luatexja/src/ltj-jfont.lua b/macros/luatex/generic/luatexja/src/ltj-jfont.lua index b097809883..4c19e33cb2 100644 --- a/macros/luatex/generic/luatexja/src/ltj-jfont.lua +++ b/macros/luatex/generic/luatexja/src/ltj-jfont.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.jfont', - date = '2021-09-18', + date = '2021-11-06', description = 'Loader for Japanese fonts', }) @@ -889,12 +889,16 @@ do end end - local function prepare_extra_data_font(id, res) + local function prepare_extra_data_font(id, res, name) if type(res)=='table' and (res.psname or res.filename) then - local bname = res.psname or nameonly(res.filename) - local t = font_extra_basename[bname] - if not t then bname = prepare_extra_data_base(res) end - font_extra_info[id] = bname and (t or font_extra_basename[bname]) or dummytable + if (res.embedding=='no') and (type(name)=='string') and (name:sub(1,5)=='psft:') then + font_extra_info[id] = res.resources.ltj_extra + else + local bname = res.psname or nameonly(res.filename) + local t = font_extra_basename[bname] + if not t then bname = prepare_extra_data_base(res) end + font_extra_info[id] = bname and (t or font_extra_basename[bname]) or dummytable + end end end luatexbase.add_to_callback( @@ -907,7 +911,7 @@ do luatexbase.add_to_callback( 'luatexja.define_font', function (res, name, size, id) - prepare_extra_data_font(id, res) + prepare_extra_data_font(id, res, name) end, 'ltj.prepare_extra_data', 1) diff --git a/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua b/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua index 499d3eda4a..49f2018e4d 100644 --- a/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua +++ b/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua @@ -5,7 +5,7 @@ luatexja.load_module('base'); local ltjb = luatexja.base local cidfont_data = {} local cache_chars = {} -local cache_ver = 10 +local cache_ver = 11 local identifiers = fonts.hashes.identifiers local cid_reg, cid_order, cid_supp, cid_name @@ -157,6 +157,7 @@ do tth[pricode], cidmo[i], pricode = { index = i }, pricode, pricode+1; end + ttu[i] = cidmo[i] ttu[cid_order .. '.' .. i] = cidmo[i] end @@ -231,7 +232,7 @@ do cidf_vert_processor = { function (head, fnum) local fontdata = font_getfont(fnum) - if head and luatexja.jfont.font_metric_table[fnum].vert_activated then + if head and luatexja.jfont.font_metric_table[fnum] and luatexja.jfont.font_metric_table[fnum].vert_activated then local vt = fontdata.ltj_vert_table local nh = is_node(head) and to_direct(head) or head for n in traverse_id(id_glyph, head) do @@ -245,6 +246,9 @@ do } end +local dummy_vht, dummy_vorg = {}, {} +setmetatable(dummy_vht, {__index = function () return 1 end } ) +setmetatable(dummy_vorg, {__index = function () return 0.88 end } ) local function cid_cache_outdated(t) return t.version~=cache_ver end local function read_cid_font() local dat = ltjb.load_cache("ltj-cid-auto-" .. string.lower(cid_name), @@ -260,6 +264,9 @@ local function read_cid_font() end if cidfont_data[cid_name] then cidfont_data[cid_name].shared.processes = cidf_vert_processor + cidfont_data[cid_name].resources.ltj_extra + = { ind_to_uni = cidfont_data[cid_name].resources.unicodes, + vheight = dummy_vht, vorigin = dummy_vorg } for i,v in pairs(cidfont_data[cid_name].characters) do if not v.width then v.width = 655360 end v.height, v.depth = 576716.8, 78643.2 -- optimized for jfm-ujis.lua diff --git a/macros/luatex/generic/luatexja/src/ltjclasses.dtx b/macros/luatex/generic/luatexja/src/ltjclasses.dtx index a9c24bb5b9..2511e6e0ff 100644 --- a/macros/luatex/generic/luatexja/src/ltjclasses.dtx +++ b/macros/luatex/generic/luatexja/src/ltjclasses.dtx @@ -137,6 +137,7 @@ % \changes{v1.8f}{2020/09/30}{add a fourth argument for better % hyperref compability % (sync with ltsect.dtx 2020/07/27 v1.1e)} +% \changes{v1.8f-ltj-21}{2021-12-22}{余計なコメントの削除.} % \fi % % \iffalse @@ -166,7 +167,7 @@ %<11pt&bk>\ProvidesFile{ltjtbk11.clo} %<12pt&bk>\ProvidesFile{ltjtbk12.clo} % - [2020-09-30 v1.8f-ltj-20 + [2021-12-22 v1.8f-ltj-21 % Standard LuaLaTeX-ja class] %<10pt|11pt|12pt> Standard LuaLaTeX-ja file (size option)] %<*driver> @@ -4712,8 +4713,6 @@ % \section{各種パッケージへの対応} % もともと縦組での利用を想定されていないいくつかのパッケージについて、 % 補正するためのコードを記述しておきます。 -%% この節のコードは|filehook|パッケージ(Lua\TeX-ja読み込み時に自動でロードされます) -%% の機能を用いています。 % % [2020-08-03 LTJ] \LaTeX\~2020-10-01に対応するため、Lua\TeX-jaの提供する命令 % (|filehook|パッケージの命令の別名か、新\LaTeX のフック機構を利用して同様の内容を書いたもの) diff --git a/macros/luatex/generic/luatexja/src/ltjsclasses.dtx b/macros/luatex/generic/luatexja/src/ltjsclasses.dtx index f0c8830bfd..b47fe05311 100644 --- a/macros/luatex/generic/luatexja/src/ltjsclasses.dtx +++ b/macros/luatex/generic/luatexja/src/ltjsclasses.dtx @@ -5141,6 +5141,7 @@ \splittopskip\footnotesep \splitmaxdepth \dp\strutbox \floatingpenalty \@MM \hsize\columnwidth \@parboxrestore + \def\@currentcounter{footnote}% \protected@edef\@currentlabel{% \csname p@footnote\endcsname\@thefnmark }% diff --git a/macros/luatex/generic/luatexja/src/luatexja.sty b/macros/luatex/generic/luatexja/src/luatexja.sty index 5c86aa9b78..48db2624ec 100644 --- a/macros/luatex/generic/luatexja/src/luatexja.sty +++ b/macros/luatex/generic/luatexja/src/luatexja.sty @@ -27,7 +27,7 @@ \newif\ifltj@disablejfam %%%% VERSION -\def\LuaTeXjaversion{20211024.0} +\def\LuaTeXjaversion{20220103.0} %% Check if LaTeX is used. \begingroup\expandafter\expandafter\expandafter\endgroup diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty index db444aecb7..fcc8922fea 100644 --- a/macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty +++ b/macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty @@ -1,5 +1,5 @@ % -% lltjp-siunitx.sty 2021-04-19 +% lltjp-siunitx.sty 2021-10-31 % \NeedsTeXFormat{LaTeX2e} @@ -31,6 +31,9 @@ \__siunitx_print_text_replace:n {#1} } } +\cs_set_eq:NN \ltj_orig__siunitx_table_collect_begin:w \__siunitx_table_collect_begin:w +\cs_set_protected:Npn \__siunitx_table_collect_begin:w #1 \relax + { \ltj_orig__siunitx_table_collect_begin:w } }% siunitx v3.00 end {% siunitx v2.xx \cs_generate_variant:Nn \tl_if_in:NnT { coT } diff --git a/macros/texinfo/latest/texinfo.tex b/macros/texinfo/latest/texinfo.tex index dba0dec80b..951ac11fcf 100644 --- a/macros/texinfo/latest/texinfo.tex +++ b/macros/texinfo/latest/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2021-11-01.16} +\def\texinfoversion{2022-01-02.12} % % Copyright 1985, 1986, 1988, 1990-2021 Free Software Foundation, Inc. % @@ -3193,14 +3193,9 @@ end % \kern-0.4pt\hrule}% % \kern-.06em\raise0.4pt\hbox{\angleright}}}} -% definition of @key with no lozenge. If the current font is already -% monospace, don't change it; that way, we respect @kbdinputstyle. But -% if it isn't monospace, then use \tt. +% definition of @key with no lozenge. % -\def\key#1{{\setregularquotes - \nohyphenation - \ifmonospace\else\tt\fi - #1}\null} +\def\key#1{{\setregularquotes \nohyphenation \tt #1}\null} % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} @@ -11248,23 +11243,6 @@ directory should work if nowhere else does.} \defbodyindent = .5cm }} -% Use @smallerbook to reset parameters for 6x9 trim size. -% (Just testing, parameters still in flux.) -\def\smallerbook{{\globaldefs = 1 - \parskip = 1.5pt plus 1pt - \textleading = 12pt - % - \internalpagesizes{7.4in}{4.8in}% - {-.2in}{-.4in}% - {0pt}{14pt}% - {9in}{6in}% - % - \lispnarrowing = 0.25in - \tolerance = 700 - \contentsrightmargin = 0pt - \defbodyindent = .4cm -}} - % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt -- cgit v1.2.3