Hello community,
here is the log from the commit of package texlive-specs-o for openSUSE:Factory checked in at 2020-05-29 21:18:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/texlive-specs-o (Old)
and /work/SRC/openSUSE:Factory/.texlive-specs-o.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "texlive-specs-o"
Fri May 29 21:18:30 2020 rev:39 rq:806905 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/texlive-specs-o/texlive-specs-o.changes 2019-11-07 23:11:28.548202853 +0100
+++ /work/SRC/openSUSE:Factory/.texlive-specs-o.new.3606/texlive-specs-o.changes 2020-05-29 21:29:47.973296523 +0200
@@ -1,0 +2,60 @@
+Mon May 18 08:47:10 UTC 2020 - Dr. Werner Fink
+
+- Enhance spec file generator to find missing .so man page
+ links for better dependency resolution (bsc#1171682)
+
+-------------------------------------------------------------------
+Wed May 13 13:59:14 UTC 2020 - Dr. Werner Fink
+
+- Modify patch texdoc_cnf.dif to ignore tlpkg/texlive.tlpdb as
+ kpathsea uses the ls-R files as well
+
+-------------------------------------------------------------------
+Tue May 12 09:03:38 UTC 2020 - Dr. Werner Fink
+
+- Correct obsoletes for new packages
+
+-------------------------------------------------------------------
+Wed May 6 11:27:35 UTC 2020 - Dr. Werner Fink
+
+- Scan *.def files as well for RequirePackage
+
+-------------------------------------------------------------------
+Tue May 5 13:55:07 UTC 2020 - Dr. Werner Fink
+
+- Add Requires to tex(epstopdf-base.sty) to fix package split
+ of texlive-epstopdf
+
+-------------------------------------------------------------------
+Mon May 4 09:00:25 UTC 2020 - Dr. Werner Fink
+
+- Skip *-dev packages from file dependendcy scanner as otherwise
+ we see doubling name space for some style files like amsmath.sty
+
+-------------------------------------------------------------------
+Mon Apr 27 06:52:15 UTC 2020 - Dr. Werner Fink
+
+- Add patch pythontex_p2top3.dif and a removes file to fully
+ switch pythontex packages of TeXLive to python3
+
+-------------------------------------------------------------------
+Mon Apr 20 10:29:02 UTC 2020 - Dr. Werner Fink
+
+- Update to TeXLive 2020
+ * Port patches
+ kpathsea_cnf.dif
+ latexpand_perl.dif
+ luaotfload_varfonts.dif
+ luatex_cnf.dif
+ musixtex_various.dif
+ * Delete patches not needed anymore as files have moved
+ tetex_scripts.dif
+ * Delete patche updmap-map_roboto.dif as fixed upstream
+ * Add new patches to catch moved files
+ texlive-scripts-extra_scripts.dif
+ texlive-scripts_scripts.dif
+ * Add new patch xetex_conf.dif to fit FHS location
+ * Remove TeXLive installer files breaking rpm database
+ texlive-scripts.removes
+
+-------------------------------------------------------------------
Old:
----
ltxindex.doc.tar.xz
ltxindex.tar.xz
lua2dox.doc.tar.xz
lua2dox.tar.xz
mathalfa.doc.tar.xz
mathalfa.tar.xz
New:
----
ltxcmds.doc.tar.xz
ltxcmds.tar.xz
lua-uca.doc.tar.xz
lua-uca.source.tar.xz
lua-ul.doc.tar.xz
lua-ul.tar.xz
luacolor.doc.tar.xz
luacolor.tar.xz
luahbtex.doc.tar.xz
luajittex.doc.tar.xz
magicnum.doc.tar.xz
magicnum.tar.xz
makerobust.doc.tar.xz
makerobust.tar.xz
manfnt.doc.tar.xz
marcellus.doc.tar.xz
marcellus.tar.xz
mathalpha.doc.tar.xz
mathalpha.tar.xz
mathcommand.doc.tar.xz
mathcommand.tar.xz
mathlig.tar.xz
matrix-skeleton.doc.tar.xz
matrix-skeleton.tar.xz
media4svg.doc.tar.xz
media4svg.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ texlive-specs-o.spec ++++++
++++ 13150 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/texlive-specs-o/texlive-specs-o.spec
++++ and /work/SRC/openSUSE:Factory/.texlive-specs-o.new.3606/texlive-specs-o.spec
++++++ ltxguidex.doc.tar.xz ++++++
Binary files old/doc/latex/ltxguidex/ltxguidex.pdf and new/doc/latex/ltxguidex/ltxguidex.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/ltxguidex/ltxguidex.tex new/doc/latex/ltxguidex/ltxguidex.tex
--- old/doc/latex/ltxguidex/ltxguidex.tex 2019-01-14 23:07:57.000000000 +0100
+++ new/doc/latex/ltxguidex/ltxguidex.tex 2019-05-05 00:48:07.000000000 +0200
@@ -1,4 +1,5 @@
\documentclass{ltxguidex}
+\usepackage{changelog}
\usepackage{fontspec}
\setmainfont{Tiempos Text}
\usepackage{FiraSans}
@@ -10,7 +11,7 @@
\title{Towards Better \LaTeX\ Documentation With the \ltx\ Document Class}
\author{Rebecca Turner\thanks{Brandeis University;
\email{rebeccaturner@brandeis.edu}}}
-\date{2019/01/13 v0.1.0}
+\date{2019/04/15 0.2.0}
\begin{document}
\maketitle
@@ -356,9 +357,8 @@
These environments typeset ``notices'' with a hanging indent. Original
definitions written by Javier Bezos for the \ctan{enumitem} documenation.
-|\ltxguidex@noticestyle| is executed before the marker text (``warning,''
-``note,'' etc.) in a separate group. New notice environments can be created
-with |\newnotice|.
+|\noticestyle| is executed before the marker text (``warning,'' ``note,''
+etc.). New notice environments can be created with |\newnotice|.
\begin{bug}
If the first content in a notice environment is vertical, the marker
@@ -597,4 +597,13 @@
\end{LTXexample}
\end{example}
+\begin{changelog}[author=Rebecca Turner]
+\begin{version}[v=0.1.1, date=2019-04-15]
+\added
+ \item Renamed \cs{ltxguidex@noticestyle} to \cs{noticestyle} and committed
+ it to the public \textsc{api}.
+ \item The \cs{cs} and \cs{command} commands.
+\end{version}
+\end{changelog}
+
\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ltxguidex.doc.tlpobj new/tlpkg/tlpobj/ltxguidex.doc.tlpobj
--- old/tlpkg/tlpobj/ltxguidex.doc.tlpobj 2019-02-28 03:51:09.000000000 +0100
+++ new/tlpkg/tlpobj/ltxguidex.doc.tlpobj 2019-05-05 01:38:57.000000000 +0200
@@ -1,6 +1,6 @@
name ltxguidex.doc
category Package
-revision 49705
+revision 50992
shortdesc doc files of ltxguidex
relocated 1
docfiles size=27
++++++ ltxguidex.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/ltxguidex/ltxguidex.cls new/tex/latex/ltxguidex/ltxguidex.cls
--- old/tex/latex/ltxguidex/ltxguidex.cls 2019-01-14 23:07:57.000000000 +0100
+++ new/tex/latex/ltxguidex/ltxguidex.cls 2019-05-05 00:48:07.000000000 +0200
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesClass{ltxguidex}[2019/01/13 v0.1.0 Extended LaTeX documentation class]
+\ProvidesClass{ltxguidex}[2019/04/15 0.2.0 Extended LaTeX documentation class]
% Description: An improved document class for writing LaTeX documentation
% with extra tools for authors.
% Homepage: https://github.com/9999years/ltxguidex
@@ -81,11 +81,11 @@
\decl}
{\enddecl}
-\newcommand{\ltxguidex@noticestyle}{\sffamily\bfseries\color{notes}}
+\newcommand{\noticestyle}{\sffamily\bfseries\color{notes}}
\def\@begintheorem#1#2{%
\list{}{}%
\global\advance\@listdepth\m@ne
- \item[{\ltxguidex@noticestyle\MakeUppercase{#1}}]}
+ \item[{\noticestyle\MakeUppercase{#1}}]}
\newcommand{\newnotice}[2]{\newtheorem{#1}{#2}}
\newnotice{warning}{Warning}
@@ -208,6 +208,8 @@
\let\ctanlogo\ctan
\newcommand{\pipe}{\char"7C}
\newcommand{\bs}{\char"5C}
+\newcommand{\command}[1]{\texttt{\bs#1}}
+\let\cs\command
\newcommand{\email}[1]{\href{mailto:#1}{#1}}
\newcommand{\http}[1]{\href{http://#1}{#1}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ltxguidex.tlpobj new/tlpkg/tlpobj/ltxguidex.tlpobj
--- old/tlpkg/tlpobj/ltxguidex.tlpobj 2019-02-28 03:51:09.000000000 +0100
+++ new/tlpkg/tlpobj/ltxguidex.tlpobj 2019-05-05 01:38:57.000000000 +0200
@@ -1,6 +1,6 @@
name ltxguidex
category Package
-revision 49705
+revision 50992
shortdesc An extended ltxguide class
relocated 1
longdesc The ltxguidex document class extends ltxguide with a set of
@@ -11,7 +11,7 @@
catalogue-contact-bugs https://github.com/9999years/ltxguidex/issues
catalogue-contact-home https://github.com/9999years/ltxguidex
catalogue-ctan /macros/latex/contrib/ltxguidex
-catalogue-date 2019-01-20 05:31:27 +0100
+catalogue-date 2019-04-15 21:59:07 +0200
catalogue-license lppl1.3c
catalogue-topics class
-catalogue-version 0.1.0
+catalogue-version 0.2.0
++++++ ltximg.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/support/ltximg/CHANGUES.md new/texmf-dist/doc/support/ltximg/CHANGUES.md
--- old/texmf-dist/doc/support/ltximg/CHANGUES.md 2018-05-02 20:32:35.000000000 +0200
+++ new/texmf-dist/doc/support/ltximg/CHANGUES.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-## Changues
-```
- v1.5. (d) 2018-04-12 - Use GitHub to control version
- - Rewrite and optimize most part of code and options
- - Changue pdf2svg for pdftocairo
- - Complete support for pst-exa packpage
- - Clean take and optional
- v1.4. (d) 2016-11-29 - Remove and rewrite code for regex and system call
- - Append arara compiler, clean and comment code
- - Append dvips and dvipdfm for creation images
- - Append bmp, tif image format
- v1.3. (d) 2016-10-16 - All options its read from cmd line and input file
- - Rewrite some part of code (norun, nocrop, clean)
- - Suport minted and tcolorbox packpage for verbatim
- - Use /tmp dir for work process
- - Escape some characters in regex according to v5.2xx
- v1.2 (p) 2015-04-22 - Remove unused modules
- v1.1 (p) 2015-04-21 - Change mogrify to gs for image formats
- - Create output file
- - Rewrite source code and fix regex
- - Add more image format
- - Change date to iso format
- v1.0 (p) 2013-12-01 - First public release
-```
-Copyright 2013 - 2018 by Pablo González L .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/support/ltximg/README.md new/texmf-dist/doc/support/ltximg/README.md
--- old/texmf-dist/doc/support/ltximg/README.md 2018-05-02 20:32:35.000000000 +0200
+++ new/texmf-dist/doc/support/ltximg/README.md 2019-08-24 22:34:28.000000000 +0200
@@ -8,11 +8,11 @@
with only extracted environments and other with environments converted to `\includegraphics`.
## Syntax
-```
+```bash
$ ltximg [<compiler>] [<options>] [--] <input file>.
```
## Usage
-```
+```bash
$ ltximg --latex [<options>]
$ ltximg --arara [<options>]
$ ltximg [<options>]
@@ -20,19 +20,19 @@
```
If used without `[<compiler>]` and `[<options>]` the extracted environments are converted to `pdf` image format
and saved in the `/images` directory using `pdflatex` and `preview` package. Relative or absolute `paths` for files
-and directories is not supported and if the last `[<options>]` take a list separated by commas you need `--` at the end.
+and directories is not supported. If the last `[<options>]` take a *list separated by commas*, you need `--` at the end.
## Default environments extract
-```
+```bash
pspicture tikzpicture pgfpicture psgraph postscript PSTexample
```
## Options
-```
+```bash
[default]
-h, --help Display command line help and exit [off]
-l, --license Display GPL license and exit [off]
--v, --version Display current version (v1.5) and exit [off]
+-v, --version Display current version (1.7) and exit [off]
-t, --tif Create .tif files using ghostscript [gs]
-b, --bmp Create .bmp files using ghostscript [gs]
-j, --jpg Create .jpg files using ghostscript [gs]
@@ -48,6 +48,8 @@
-m <integer>, --margin <integer>
Set margins for pdfcrop [0]
--imgdir <dirname> Set name of directory to save images [images]
+--zip Compress files generated in .zip format [off]
+--tar Compress files generated in .tar.gz format [off]
-o <filename>, --output <filename>
Create output file [off]
--verbose Verbose printing [off]
@@ -75,14 +77,14 @@
--deltenv Delete environments in output file [empty]
```
## Example
-```
+```bash
$ ltximg --latex -e -p --srcenv --imgdir=mypics -o test-out test-in.ltx
```
-```
+```bash
$ ltximg --latex -ep --srcenv --imgdir mypics -o test-out test-in.ltx
```
Create a `/mypics` directory whit all extracted environments converted to
- image formats(`.pdf`, `.eps`, `.png`), individual files whit source code (`.tex`)
+ image formats (`.pdf`, `.eps`, `.png`), individual files whit source code (`.tex`)
for all extracted environments, a file `test-out.ltx` whit all environments converted to `\includegraphics`
and file `test-in-fig-all.tex` with only the extracted environments using
`latex>dvips>ps2pdf` and `preview` package for `<input file>` and `pdflatex`
@@ -90,9 +92,13 @@
## Documentation
For full documentation use:
-```
+```bash
$ texdoc ltximg
```
+ For recreation all documentation use:
+```bash
+$ arara ltximg-doc.dtx
+```
## Licence
This program is free software; you can redistribute it and/or modify it under the terms of the GNU
@@ -105,8 +111,8 @@
## Author
-Written by Pablo González L , last update 2018-04-12.
+Written by Pablo González L , last update 2019-08-24.
## Copyright
-Copyright 2013 - 2018 by Pablo González L
+Copyright 2013 - 2019 by Pablo González L
Binary files old/texmf-dist/doc/support/ltximg/ltximg-doc.pdf and new/texmf-dist/doc/support/ltximg/ltximg-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ltximg.doc.tlpobj new/tlpkg/tlpobj/ltximg.doc.tlpobj
--- old/tlpkg/tlpobj/ltximg.doc.tlpobj 2019-02-28 03:51:09.000000000 +0100
+++ new/tlpkg/tlpobj/ltximg.doc.tlpobj 2019-08-25 01:55:19.000000000 +0200
@@ -1,8 +1,7 @@
name ltximg.doc
category Package
-revision 47568
+revision 51951
shortdesc doc files of ltximg
-docfiles size=50
- texmf-dist/doc/support/ltximg/CHANGUES.md
+docfiles size=39
texmf-dist/doc/support/ltximg/README.md
texmf-dist/doc/support/ltximg/ltximg-doc.pdf
++++++ ltximg.tar.xz ++++++
++++ 2188 lines of diff (skipped)
++++++ luabidi.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/lualatex/luabidi/LICENCE.md new/doc/lualatex/luabidi/LICENCE.md
--- old/doc/lualatex/luabidi/LICENCE.md 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/lualatex/luabidi/LICENCE.md 2019-08-28 01:01:08.000000000 +0200
@@ -0,0 +1,6 @@
+# MIT Licence
+
+Copyright (c) Vafa Khalighi 2009, Arthur Reutenauer 2013, 2019, Jürgen Spitzmüller 2019.
+
+The licence for all files within this package is (the MIT
+licence)[https://opensource.org/licenses/MIT] unless otherwise noted.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/lualatex/luabidi/README new/doc/lualatex/luabidi/README
--- old/doc/lualatex/luabidi/README 2013-05-29 00:18:34.000000000 +0200
+++ new/doc/lualatex/luabidi/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-Luabidi is an attempt to offer the same functionality for LuaTeX as bidi
-does for XeTeX.
-
-Copyright (c) Vafa Khalighi 2009, and Arthur Reutenauer 2013
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/lualatex/luabidi/README.md new/doc/lualatex/luabidi/README.md
--- old/doc/lualatex/luabidi/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/lualatex/luabidi/README.md 2019-08-28 01:01:08.000000000 +0200
@@ -0,0 +1,8 @@
+# luabidi
+Luabidi is an attempt to offer the same functionality for LuaTeX as bidi
+does for XeTeX.
+
+## CTAN Package
+https://www.ctan.org/pkg/luabidi
+
+Copyright (c) Vafa Khalighi 2009, Arthur Reutenauer 2013, 2019, Jürgen Spitzmüller 2019
Binary files old/doc/lualatex/luabidi/luabidi.pdf and new/doc/lualatex/luabidi/luabidi.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/lualatex/luabidi/luabidi.tex new/doc/lualatex/luabidi/luabidi.tex
--- old/doc/lualatex/luabidi/luabidi.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/lualatex/luabidi/luabidi.tex 2019-10-28 21:55:00.000000000 +0100
@@ -0,0 +1,237 @@
+% !TeX spellcheck = en_US
+% !TeX TS-program = lualatex
+\documentclass[11pt]{ltxdoc}
+\usepackage{color}
+\usepackage{xspace,fancyvrb,booktabs}
+\usepackage[neverdecrease]{paralist}
+\definecolor{myblue}{rgb}{0.02,0.04,0.48}
+\definecolor{lightblue}{rgb}{0.61,.8,.8}
+\definecolor{myred}{rgb}{0.65,0.04,0.07}
+\usepackage[
+unicode=true,
+bookmarks=true,
+colorlinks=true,
+linkcolor=myblue,
+urlcolor=myblue,
+citecolor=myblue,
+hyperindex=false,
+hyperfootnotes=false,
+pdftitle={luabidi: Bidirectional typesetting in LuaLaTeX},
+pdfauthor={V Khalighi, A Reutenauer, J Spitzmüller},
+pdfkeywords={luatex, lualatex, multilingual, bidi}
+]{hyperref}
+\usepackage{metalogo}
+%\let\XeTeX\undefined
+%\let\XeLaTeX\undefined
+\usepackage{polyglossia}
+\usepackage{luabidi}
+
+\setmainlanguage{english}
+\usepackage[protrusion]{microtype}
+\newcommand*\Cmd[1]{\cmd{#1}\DescribeMacro{#1}\xspace}
+\newcommand*{\cscmd}[1]{\texttt{\textbackslash #1}}
+\newcommand*\pkg[1]{\textsf{\color{myblue}#1}}
+\newcommand*\file[1]{\texttt{\color{myblue}#1}}
+\newcommand*\TR[1]{\textcolor{myred}{#1}}
+\newcommand*\TX[1]{\hyperref[#1]{\textcolor{myred}{#1}}}
+\newcommand*\TB[1]{\textcolor{myblue}{\bf #1}}
+\newcommand*\TA[1]{\textsc{\color{myblue}#1}}
+\newcommand*\link[1]{\href{#1}{#1}}
+\def\eg{\textit{e.g.,}\xspace}
+\def\ie{\textit{i.e.,}\xspace}
+\def\ca{\textit{ca.}\@\xspace}
+\def\Eg{\textit{E.g.,}\xspace}
+\def\Ie{\textit{I.e.,}\xspace}
+\def\etc{\@ifnextchar.{\textit{etc}}{\textit{etc.}\@\xspace}}
+
+%% Sidenotes << copied from fontspec.dtx
+\newcommand\new[1]{%
+ \edef\thisversion{#1}%
+ \ifhmode\unskip~\fi{\ifx\thisversion\fileversion\color{blue}\else\color[gray]{0.5}\fi
+ $\leftarrow$}%
+ \marginpar{\centering
+ \small\ifx\thisversion\fileversion\color{blue}\else\color[gray]{0.5}\fi
+ \textsf{#1}}}
+\newcommand\displaycmd[2]{%
+ \\\DescribeMacro{#2}\centerline{\cmd{#1}}}
+\renewenvironment{itemize}{\begin{compactitem}[\char"2023]}%[{\fontspec{DejaVu Sans}\char"25BB}]}%
+ {\end{compactitem}}
+
+\def\condbreak#1{%
+ \vskip 0pt plus #1\pagebreak[3]\vskip 0pt plus -#1\relax}
+
+\newcommand*\lbd{\pkg{luabidi}}
+\newcommand*\Lbd{\pkg{Luabidi}}
+
+%% fontspec declarations:
+\setmainfont{Linux Libertine O}
+\setsansfont{Linux Biolinum O}
+\setmonofont[Scale=MatchLowercase]{DejaVu Sans Mono}
+
+\linespread{1.05}
+\frenchspacing
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+% COMMENT THE NEXT LINE TO INCLUDE THE CODE
+\AtBeginDocument{\OnlyDescription}
+
+
+\begin{document}
+\hyphenation{Kha-li-ghi Reu-ten-auer}
+\GetFileInfo{luabidi.sty}
+
+\title{\lbd\\\color{myblue}Bidirectional typesetting in \LuaLaTeX}
+
+\date{\color{myblue}\filedate \qquad \fileversion\\
+ \footnotesize (\textsc{pdf} file generated on \today)}
+
+\author{\TA{Vafa Khalighi} \and \TA{Arthur Reutenauer}\thanks{%
+ Current maintainer. Please submit bug reports and feature requests to \protect\url{https://github.com/bidi-tex/luabidi/issues}.}
+ \and \TA{Jürgen Spitzmüller}}
+
+\maketitle
+
+\DeleteShortVerb{\|}
+\MakeShortVerb{\¦}
+
+\tableofcontents
+
+\condbreak{2\baselineskip}
+\section{Objectives}
+\Lbd\ is an attempt to provide bidirectional writing support for the \LuaTeX\ engine in the same vein as the \pkg{bidi} package\footnote{%
+See \url{https://ctan.org/pkg/bidi}.} enables bidirectional writing with \XeTeX. The most prominent user of this package is \pkg{polyglossia}\footnote{%
+See \url{https://ctan.org/pkg/polyglossia}.} which uses \lbd\ with RTL languages and \LuaTeX\ output (as opposed to \pkg{bidi} with \XeTeX). Note, however, that \lbd\ is much more limited than \textsf{bidi}. Currently, only a very basic
+subset of the latter's features is supported.
+
+\section{Package Options}
+
+\begin{description}
+ \item[\TB{arabmaths}] By default, \lbd\ generates left-to-right maths. If you would like to have right-to-left maths, use this option.
+ \item[\TB{textwidthfootnoterule}] expands the footnote rule to the whole text width.
+ \item[\TB{autofootnoterule}] sets the footnote rule right or left aligned, depending on the direction of the first footnote
+ that follows the rule (\ie that comes on the current page).
+\end{description}
+
+\section{User Commands}
+
+\subsection{Main Text Direction}
+
+By default, the main directionality of the document is left-to-right. To change it to right-to-left, use the switch
+
+\begin{quote}
+ \Cmd\setRTLmain
+\end{quote}
+%
+This is advisable if your document consists mainly of right-to-left text.
+
+\subsection{Paragraph Text Direction}
+
+To change directionality for paragraphs, you can use the following switches:
+\begin{description}
+ \item[\cmd{\setRTL}]\DescribeMacro{\setRTL} (alias: \Cmd{\setRL}, \Cmd{\unsetLTR}) changes paragraph direction to right-to-left.
+ \item[\cmd{\setLTR}]\DescribeMacro{\setLTR} (alias: \Cmd{\setLR}, \Cmd{\unsetRTL}) changes paragraph direction to left-to-right.
+\end{description}
+%
+\condbreak{2\baselineskip}
+Alternatively,\DescribeMacro{RTL}\DescribeMacro{LTR} you can also use the environments
+
+\begin{quote}
+ \begin{verbatim}
+ \begin{RTL}
+ ...
+ \end{RTL}
+ \end{verbatim}
+\end{quote}
+%
+or
+
+\begin{quote}
+ \begin{verbatim}
+ \begin{LTR}
+ ...
+ \end{LTR}
+ \end{verbatim}
+\end{quote}
+
+\subsection{Inline Text Direction}
+
+To change directionality for text chunks inside paragraphs, use
+\begin{description}
+ \item[\cmd\RLE\{...\}]\DescribeMacro{\RLE} (alias: \Cmd\RL) changes the directionality locally to right-to-left.
+ \item[\cmd\LRE\{...\}]\DescribeMacro{\LRE} (alias: \Cmd\LR) changes the directionality locally to left-to-right.
+\end{description}
+
+\subsection{Footnotes}
+
+\subsubsection{Horizontal Footnote Position}
+
+\Lbd\ provides two additional footnote commands in addition to standard \cmd{\footnote}:
+\Cmd{\RTLfootnote}\new{v0.5} and \Cmd{\LTRfootnote}\new{v0.5}.
+The standard \cmd{\footnote} command thereby places the footnote always on the side that is currently the origin of direction:
+on the left side of the page in LTR paragraphs and on the right in RTL paragraphs.
+
+\cmd{\LTRfootnote}, in contrast, always places the footnote on the left side, notwithstanding the current
+directionality. \cmd{\RTLfootnote} always places it on the right side. Like \cmd{\footnote}, \cmd{\RTLfootnote}
+and \cmd{\LTRfootnote} have an optional argument to customize the number.
+
+
+\subsubsection{Footnote Rule Length and Position}
+
+By default, the placement of the footnote rule depends on the main text directionality:
+
+\begin{itemize}
+ \item In default mode (\ie if \cmd{\setRTLmain} is not used), the footnote rule is always set left-aligned (as usual in LTR documents).
+ \item If the main direction is RTL (\ie if \cmd{\setRTLmain} is used), the footnote rule is always set right-aligned (as usual in RTL documents)
+\end{itemize}
+%
+However, with the switch \Cmd{\leftfootnoterule}\new{v0.5}, all subsequent footnote rules are always placed on the left.
+Likewise, \Cmd{\rightfootnoterule}\new{v0.5} causes all subsequent footnote rules to be always placed on the right.
+
+The switch \Cmd{\autofootnoterule}\new{v0.5} and the corresponding package option advise \lbd\ to automatically determine the rule position,
+depending on the directionality of the first footnote on the page. Note that this automatic can fail with footnotes at page boundaries
+that differ in directionality from the first footnote on the page. You can work around such cases by switching to \cmd{\rightfootnoterule}
+or \cmd{\leftfootnoterule} on these pages.
+
+If you want a footnote rule that spans the whole text width, you can use the switch \Cmd{\textwidth\-footnoterule}\new{v0.5}
+or the respective package option.
+
+The length of left and right footnote rules can be adjusted via
+
+\begin{quote}
+ ¦\setlength\footenoterulewidth{⟨length⟩}¦\DescribeMacro{\footenoterulewidth}
+\end{quote}
+%
+The predefined ¦⟨length⟩¦ is ¦0.4\columnwidth¦.
+
+
+
+\section{Commands for Package Authors}
+
+The following tests are provided to be used in packages:
+
+\begin{description}
+ \item[\cscmd{if@RTL}]\DescribeMacro{\if@RTL} determines whether the current paragraph direction is right-to-left.
+ \item[\cscmd{if@RTLmain}]\DescribeMacro{\if@RTLmain} determines whether the main direction is right-to-left.
+\end{description}
+%
+The following macros are provided:
+\begin{description}
+ \item[\cscmd{@ensure@RTL\{...\}}]\DescribeMacro{\@ensure@RTL} Ensure that the argument is typeset RTL.
+ \item[\cscmd{@ensure@LTR\{...\}}]\DescribeMacro{\@ensure@LTR} Ensure that the argument is typeset LTR.
+ \item[\cscmd{@ensure@dir\{...\}}]\DescribeMacro{\@ensure@dir} (alias: \cmd{\@ensure@maindir\{...\}}\DescribeMacro{\@ensure@maindir}) If used in RTL mode, the argument is put inside \cmd{\RLE}, if used in LTR mode, the argument is output as is.
+ \item[\cscmd{hboxR\{...\}}]\DescribeMacro{\hboxR}\new{v0.5} Puts its argument in a RTL \cmd{\hbox}.
+\end{description}
+
+\section{Revision Log}
+
+\begin{description}
+ \item[v. 0.5 (2019/10/27)] Add \cmd{\RTLfootnote}, \cmd{\LTRfootnote}, and \cmd{\hboxR}; fix \texttt{autofootnoterule} option; add \cmd{\autofootnoterule},
+ \cmd{\leftfootnoterule}, \cmd{\rightfootnoterule} and \cmd{\textwidthfootnoterule}; add manual.
+ \item[v. 0.4 (2019/08/24)] Fix \cmd{\@ensure@RTL}.
+ \item[v. 0.3 (2019/07/10)] Fix compatibility with recent \LuaTeX\ (this version was never released to CTAN).
+ \item[v. 0.2 (2013/05/27)] Fix additional files.
+ \item[v. 0.1 (2009/04/01)] Initial release.
+\end{description}
+
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/lualatex/luabidi/test.tex new/doc/lualatex/luabidi/test.tex
--- old/doc/lualatex/luabidi/test.tex 2013-05-29 00:18:34.000000000 +0200
+++ new/doc/lualatex/luabidi/test.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-\documentclass[12pt]{article}
-\usepackage[arabmaths]{luabidi}
-\begin{document}
-\setRTLmain
-\section{ghesmate 1}
-
-in yek ghesmat ast ke an ra dar inja minevisam
-
-\begin{equation}
-1+2=3
-\end{equation}
-in ham dobare masalei ast ke man minevisam va shoma an ra mibinid.
-\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luabidi.doc.tlpobj new/tlpkg/tlpobj/luabidi.doc.tlpobj
--- old/tlpkg/tlpobj/luabidi.doc.tlpobj 2019-02-28 03:51:12.000000000 +0100
+++ new/tlpkg/tlpobj/luabidi.doc.tlpobj 2020-03-24 01:59:58.000000000 +0100
@@ -1,8 +1,10 @@
name luabidi.doc
category Package
-revision 30790
+revision 54512
shortdesc doc files of luabidi
relocated 1
-docfiles size=2
- RELOC/doc/lualatex/luabidi/README
- RELOC/doc/lualatex/luabidi/test.tex
+docfiles size=28
+ RELOC/doc/lualatex/luabidi/LICENCE.md
+ RELOC/doc/lualatex/luabidi/README.md
+ RELOC/doc/lualatex/luabidi/luabidi.pdf
+ RELOC/doc/lualatex/luabidi/luabidi.tex
++++++ luabidi.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luabidi/arabmaths.tex new/tex/lualatex/luabidi/arabmaths.tex
--- old/tex/lualatex/luabidi/arabmaths.tex 2013-05-29 00:18:34.000000000 +0200
+++ new/tex/lualatex/luabidi/arabmaths.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-\luatexmathdir TRT
-\def\@eqnnum{{\normalfont \normalcolor \luatextextdir TLT ({\luatextextdir TRT\theequation})}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luabidi/autofootnoterule.tex new/tex/lualatex/luabidi/autofootnoterule.tex
--- old/tex/lualatex/luabidi/autofootnoterule.tex 2013-05-29 00:18:34.000000000 +0200
+++ new/tex/lualatex/luabidi/autofootnoterule.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,116 +0,0 @@
-\ifx \CatEscape\undefined
- \chardef\CatEscape=0
- \chardef\CatOpen=1
- \chardef\CatClose=2
- \chardef\CatIgnore=9
- \chardef\CatLetter=11
- \chardef\CatOther=12
- \chardef\CatActive=13 % is defined in Plain already
-
- \chardef\CatUsCode=\catcode`\_
-\fi
-
-\catcode`\_=\CatLetter % top level macro file
-
-
-\def\l@fn{%
- \hbox to \columnwidth
- {\luatexpagedir TLT\vbox{\kern -3\p@
- \hrule width .4\columnwidth \kern2.6\p@}\hfil}}
-\def\r@fn{%
- \hrule width .4\columnwidth\kern 2.6\p@}
-
-
-\def\@makefnmark{\hbox{$^{\hbox{\scriptsize\@thefnmark}}\m@th$}}
-
-
-\def\leftfootnoterule{\global\def\footnoterule{\l@fn}}
-\def\rightfootnoterule{\global\def\footnoterule{\r@fn}}
-\leftfootnoterule
-
-%%% \beginprog
-\newread\old_foot_file
-\newwrite\foot_file
-\def\foot_file_name{\jobname.fot\relax}
-\def\init_footnote{%
- \openin\old_foot_file\foot_file_name
- \ifeof\old_foot_file \closein\old_foot_file
- \else \closein\old_foot_file
- \read_foot_file
- \fi
- \immediate\openout\foot_file\foot_file_name
- \immediate\write\foot_file{\relax}%
- \global\let\init_footnote\relax
- }
-
-\newcount\foot_name_no % for generating footnote mark names
-
-
-
-
-
-\newcount\autofootnote
-\def\fnpp_next_footnote{%
- \init_footnote
- \global\advance\foot_name_no\@ne
- \global\advance\c@footnote\@ne
- \edef\do_write{%
- \immediate\write\foot_file{%
- \string\advance\autofootnote\@ne
- \string\expandafter\xdef
- \string\csname\space f@\number\foot_name_no \endcsname{%
- \string\number\autofootnote
- }%
- }%
- }%
- \do_write
- \global\autofootnote 0\csname f@\number\foot_name_no \endcsname \relax
- }
-
-\def\read_foot_file{%
- \begingroup
- \catcode`\@\CatLetter \catcode`\^^M\CatIgnore
- \input \foot_file_name
- \endgroup
- }
-
-\let\fnpp_orig_outputpage=\@outputpage
-\def\@outputpage{%
- \ifx \init_footnote\relax
- \immediate\write\foot_file{\autofootnote\z@}%
- \fi
- \fnpp_orig_outputpage
- }
-
-\let\FnppOrigFootnote=\footnote % save original bindings
-\let\FnppOrigFootnotemark=\footnotemark
-
-\def\footnote{%
- \@ifnextchar[% % ] (Emacs)
- \@xfootnote
- {\fnpp_next_footnote \ifnum\autofootnote=1\rightfootnoterule\fi \@xfootnote[\the\c@footnote] %
-}%
- }
-\def\footnotemark{%
- \@ifnextchar[% % ] (Emacs)
- \@xfootnotemark
- {\fnpp_next_footnote \ifnum\autofootnote=1\rightfootnoterule\fi \@xfootnotemark[\the\c@footnote]}%
- }
-
-
-
-
-\def\footnotemarkLR{%
- \@ifnextchar[% % ] (Emacs)
- \@xfootnotemark
- {\fnpp_next_footnote \ifnum\autofootnote=1\leftfootnoterule\fi\@xfootnotemark[\the\c@footnote]}%
- }
-
-
-\def\Footnote#1{%
-\begingroup
-\footnotemarkLR%
-\renewcommand{\thefootnote}{\@arabic\c@footnote}%
-\luatexpardir TLT \luatextextdir TLT\footnotetext{#1}%
-\endgroup
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luabidi/luabidi-arabmaths.def new/tex/lualatex/luabidi/luabidi-arabmaths.def
--- old/tex/lualatex/luabidi/luabidi-arabmaths.def 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/lualatex/luabidi/luabidi-arabmaths.def 2019-10-28 21:55:00.000000000 +0100
@@ -0,0 +1,11 @@
+%% This file is luabidi-arabmaths.def
+%% This is part of the luabidi package
+%%
+%% Copyright © 2009 Vafa Khalighi, 2013--2019 Arthur Reutenauer, 2019 Jürgen Spitzmüller
+%%
+%%%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+
+\mathdir TRT
+\def\@eqnnum{{\normalfont \normalcolor \textdir TLT ({\textdir TRT\theequation})}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luabidi/luabidi-autofootnoterule.def new/tex/lualatex/luabidi/luabidi-autofootnoterule.def
--- old/tex/lualatex/luabidi/luabidi-autofootnoterule.def 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/lualatex/luabidi/luabidi-autofootnoterule.def 2019-10-28 21:55:00.000000000 +0100
@@ -0,0 +1,72 @@
+%% This file is luabidi-autofootnoterule.def
+%% This is part of the luabidi package
+%%
+%% Copyright © 2009 Vafa Khalighi, 2013--2019 Arthur Reutenauer, 2019 Jürgen Spitzmüller
+%%
+%%%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+
+
+%
+% Determine first footnote on current page
+%
+
+\RequirePackage{perpage}
+\newcounter{pagefnt}
+\setcounter{pagefnt}{0}
+\MakePerPage[0]{pagefnt}
+
+
+%
+% Footnote redefinitions
+%
+
+% Save original definitions
+\let\FnppOrigFootnote=\footnote
+\let\FnppOrigFootnotemark=\footnotemark
+
+% Default: left-aligned rule
+\leftfootnoterule
+
+% \footnote
+\def\footnote{%
+ \@ifnextchar[% % ] (Editor)
+ \@xfootnote
+ {\stepcounter\@mpfn\stepcounter{pagefnt}%
+ \ifnum\value{pagefnt}=0%
+ \if@RTL%
+ \rightfootnoterule%
+ \else%
+ \leftfootnoterule%
+ \fi%
+ \fi%
+ \@xfootnote[\the\c@footnote]%
+ }%
+}
+
+% \RTLfootnote
+\def\footnotemarkRL{%
+ \@ifnextchar[% % ] (Editor)
+ \@xfootnotemark
+ {\stepcounter\@mpfn\stepcounter{pagefnt}%
+ \ifnum\value{pagefnt}=0%
+ \rightfootnoterule%
+ \fi%
+ \@xfootnotemark[\the\c@footnote]%
+ }%
+}
+
+% \LTRfootnote
+\def\footnotemarkLR{%
+ \@ifnextchar[% % ] (Editor)
+ \@xfootnotemark
+ {\stepcounter\@mpfn\stepcounter{pagefnt}%
+ \ifnum\value{pagefnt}=0%
+ \leftfootnoterule%
+ \fi%
+ \@xfootnotemark[\the\c@footnote]%
+ }%
+}
+
+% Finis
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luabidi/luabidi-footnotes.def new/tex/lualatex/luabidi/luabidi-footnotes.def
--- old/tex/lualatex/luabidi/luabidi-footnotes.def 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/lualatex/luabidi/luabidi-footnotes.def 2019-10-28 21:55:00.000000000 +0100
@@ -0,0 +1,76 @@
+%% This file is luabidi-footnotes.def
+%% This is part of the luabidi package
+%%
+%% Copyright © 2009 Vafa Khalighi, 2013--2019 Arthur Reutenauer, 2019 Jürgen Spitzmüller
+%%
+%%%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+
+%
+% Footnotes
+%
+
+% These are defined in polyglossia. Provide simple fallbacks
+\providecommand*\localnumeral{\@ifstar\@@localnumeral\@localnumeral}
+
+\providecommand*\@localnumeral[1]{#1}
+\providecommand*\@@localnumeral[1]{%
+ \protect\@arabic\csuse{c@#1}%
+}
+
+\let\footnotemarkLR\footnotemark
+\let\footnotemarkRL\footnotemark
+
+\providecommand\LTRfootnote[2][]{%
+ \begingroup
+ \ifx#1\\\\\footnotemarkLR
+ \renewcommand{\thefootnote}{\localnumeral*{footnote}}%
+ \else%
+ \footnotemarkLR[#1]%
+ \renewcommand{\thefootnote}{\localnumeral{#1}}%
+ \fi
+ \pardir TLT \textdir TLT\footnotetext{#2}%
+ \endgroup
+}
+
+\providecommand\RTLfootnote[2][]{%
+ \begingroup
+ \ifx#1\\\\\footnotemarkRL%
+ \renewcommand{\thefootnote}{\localnumeral*{footnote}}%
+ \else%
+ \footnotemarkRL[#1]%
+ \renewcommand{\thefootnote}{\localnumeral{#1}}%
+ \fi
+ \pardir TRT \textdir TRT\footnotetext{#2}%
+ \endgroup
+}
+
+% backwards compatibility
+\def\Footnote#1{\LTRfootnote{#1}}
+
+%
+% Footnote rules
+%
+
+% adjustable rule length
+\newlength\footnoterulewidth
+\setlength\footnoterulewidth{.4\columnwidth}
+
+% The left, right and full width rules
+\def\luabidi@left@fn{%
+ \hbox to \columnwidth
+ {\pagedir TLT\textdir TLT\vbox{\kern -3\p@
+ \hrule\@width\footnoterulewidth\kern2.6\p@}\hfil}}
+\def\luabidi@right@fn{%
+ \pagedir TRT\textdir TRT\hrule\@width\footnoterulewidth\kern2.6\p@}
+\def\luabidi@textwidth@fn{%
+ \kern-3\p@\hrule\@width\textwidth\kern2.6\p@}
+
+% switches for the rule position
+\def\leftfootnoterule{\global\def\footnoterule{\luabidi@left@fn}}
+\def\rightfootnoterule{\global\def\footnoterule{\luabidi@right@fn}}
+\def\textwidthfootnoterule{\global\def\footnoterule{\luabidi@textwidth@fn}}
+\def\autofootnoterule{\luabidi@autofootnoteruletrue}
+
+% Finis
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luabidi/luabidi-test-arabmaths.tex new/tex/lualatex/luabidi/luabidi-test-arabmaths.tex
--- old/tex/lualatex/luabidi/luabidi-test-arabmaths.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/lualatex/luabidi/luabidi-test-arabmaths.tex 2019-10-28 21:55:00.000000000 +0100
@@ -0,0 +1,13 @@
+\documentclass[12pt]{article}
+\usepackage[arabmaths]{luabidi}
+\begin{document}
+\setRTLmain
+\section{ghesmate 1}
+
+in yek ghesmat ast ke an ra dar inja minevisam
+
+\begin{equation}
+1+2=3
+\end{equation}
+in ham dobare masalei ast ke man minevisam va shoma an ra mibinid.
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luabidi/luabidi.sty new/tex/lualatex/luabidi/luabidi.sty
--- old/tex/lualatex/luabidi/luabidi.sty 2013-05-29 00:18:34.000000000 +0200
+++ new/tex/lualatex/luabidi/luabidi.sty 2019-10-28 21:55:00.000000000 +0100
@@ -1,33 +1,50 @@
%% This file is luabidi.sty
+%% This is part of the luabidi package
%%
-%% Copyright © 2009 Vafa Khalighi, 2013 Arthur Reutenauer
+%% Copyright © 2009 Vafa Khalighi, 2013--2019 Arthur Reutenauer, 2019 Jürgen Spitzmüller
%%
%%%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{luabidi}[2013/05/27 v0.2
+\ProvidesPackage{luabidi}[2019/10/27 v0.5
Bidirectional typesetting in LuaTeX]
+
+\RequirePackage{etoolbox}
+
+%
+% Package options
+%
+
+\DeclareOption{arabmaths}{\input{luabidi-arabmaths.def}}
+\newif\ifluabidi@autofootnoterule
+\DeclareOption{autofootnoterule}{\luabidi@autofootnoteruletrue}
+\newif\ifluabidi@textwidthfootnoterule
+\DeclareOption{textwidthfootnoterule}{\luabidi@textwidthfootnoteruletrue}
+\ProcessOptions
+
+%
+% General command and switches
+%
+
\newif\if@RTL
\newif\if@RTLmain
-\def\setRTLmain{\luatexpagedir TRT \luatexbodydir TRT \luatexpardir TRT \luatextextdir TRT}
-\def\setRTL{\@RTLtrue\luatexpardir TRT \luatextextdir TRT}
+\@RTLmainfalse
+\def\setRTLmain{\@RTLmaintrue\pagedir TRT \bodydir TRT \pardir TRT \textdir TRT}
+\def\setRTL{\@RTLtrue\pardir TRT \textdir TRT}
\let\setRL=\setRTL
-\def\setLTR{\@RTLfalse\luatexpardir TLT \luatextextdir TLT}
+\def\setLTR{\@RTLfalse\pardir TLT \textdir TLT}
\let\setLR=\setLTR
\let\unsetRTL=\setLTR
\let\unsetLTR=\setRTL
-\def\RTL{\@RTLtrue\trivlist \luatexpardir TRT \luatextextdir TRT\item\relax}
+\def\RTL{\@RTLtrue\trivlist \pardir TRT \textdir TRT\item\relax}
\def\endRTL{\@RTLfalse\endtrivlist}
-\def\LTR{\trivlist \luatexpardir TLT \luatextextdir TLT\item\relax}
+\def\LTR{\trivlist \pardir TLT \textdir TLT\item\relax}
\def\endLTR{\endtrivlist}
\def\@ensure@RTL#1{\if@RTL#1\else\RLE{#1}\fi}
-\def\@ensure@LTR#1{\if@RTL#1\else\LRE{#1}\fi}
+\def\@ensure@LTR#1{\if@RTL\LRE{#1}\else{#1}\fi}
\def\@ensure@dir#1{\if@RTL\RLE{#1}\else{#1}\fi}
\let\@ensure@maindir=\@ensuredir
-\@RTLmainfalse
-\DeclareOption{arabmaths}{\input{arabmaths}}
-\DeclareOption{textwidthfootnoterule}{\input{textwidthfootnoterule}}
\let\n@xt=\
\DeclareRobustCommand*\LRE{\protect\pLRE}
\def\pLRE{\protect\afterassignment\moreLRE \let\n@xt= }
@@ -39,18 +56,25 @@
\def\moreRLE{\bracetext \aftergroup\unsetRTL \setRTL\@RTLtrue}
\let\LR=\LRE
\let\RL=\RLE
+\def\hboxR#1{\hbox{\RL{#1}}}
-\def\Footnote#1{%
-\begingroup
-\footnotemark
-\renewcommand{\thefootnote}{\@arabic\c@footnote}%
-\luatexpardir TLT \luatextextdir TLT\footnotetext{#1}%
-\endgroup
-}
+%
+% Footnotes
+%
-\DeclareOption{autofootnoterule}{\input{autofootnoterule}}
+\input{luabidi-footnotes.def}
+\ifluabidi@textwidthfootnoterule
+ \textwidthfootnoterule
+\fi
+% This needs to be loaded late because of the switch
+\AtEndPreamble{%
+ \makeatletter
+ \ifluabidi@autofootnoterule
+ \input{luabidi-autofootnoterule.def}
+ \fi
+ \makeatother
+}
-\ProcessOptions
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luabidi/textwidthfootnoterule.tex new/tex/lualatex/luabidi/textwidthfootnoterule.tex
--- old/tex/lualatex/luabidi/textwidthfootnoterule.tex 2013-05-29 00:18:34.000000000 +0200
+++ new/tex/lualatex/luabidi/textwidthfootnoterule.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-\def\footnoterule{\kern-3\p@
- \hrule \@width \textwidth \kern 2.6\p@}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luabidi.tlpobj new/tlpkg/tlpobj/luabidi.tlpobj
--- old/tlpkg/tlpobj/luabidi.tlpobj 2019-02-28 03:51:12.000000000 +0100
+++ new/tlpkg/tlpobj/luabidi.tlpobj 2020-03-24 01:59:58.000000000 +0100
@@ -1,19 +1,20 @@
name luabidi
category Package
-revision 30790
-shortdesc Bidirectional typesetting with LuaLaTeX
+revision 54512
+shortdesc Bidi functions for LuaTeX
relocated 1
longdesc The package attempts to emulate the XeTeX bidi package, in the
longdesc context of LuaTeX.
-runfiles size=4
- RELOC/tex/lualatex/luabidi/arabmaths.tex
- RELOC/tex/lualatex/luabidi/autofootnoterule.tex
+runfiles size=5
+ RELOC/tex/lualatex/luabidi/luabidi-arabmaths.def
+ RELOC/tex/lualatex/luabidi/luabidi-autofootnoterule.def
+ RELOC/tex/lualatex/luabidi/luabidi-footnotes.def
+ RELOC/tex/lualatex/luabidi/luabidi-test-arabmaths.tex
RELOC/tex/lualatex/luabidi/luabidi.sty
- RELOC/tex/lualatex/luabidi/textwidthfootnoterule.tex
catalogue-contact-bugs https://github.com/bidi-tex/luabidi/issues
+catalogue-contact-home https://github.com/bidi-tex/luabidi/
catalogue-contact-repository https://github.com/bidi-tex/luabidi
catalogue-ctan /macros/luatex/latex/luabidi
-catalogue-date 2018-11-28 20:29:19 +0100
-catalogue-license lppl1.3
+catalogue-license lppl1.3c mit
catalogue-topics typesetting luatex
-catalogue-version 0.2
+catalogue-version 0.5
++++++ lualatex-math.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/lualatex-math.doc.tlpobj new/tlpkg/tlpobj/lualatex-math.doc.tlpobj
--- old/tlpkg/tlpobj/lualatex-math.doc.tlpobj 2019-02-28 03:51:13.000000000 +0100
+++ new/tlpkg/tlpobj/lualatex-math.doc.tlpobj 2019-11-07 18:46:15.000000000 +0100
@@ -1,6 +1,6 @@
name lualatex-math.doc
category Package
-revision 49904
+revision 52663
shortdesc doc files of lualatex-math
relocated 1
docfiles size=49
++++++ lualatex-math.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/lualatex-math.tlpobj new/tlpkg/tlpobj/lualatex-math.tlpobj
--- old/tlpkg/tlpobj/lualatex-math.tlpobj 2019-02-28 03:51:13.000000000 +0100
+++ new/tlpkg/tlpobj/lualatex-math.tlpobj 2019-11-07 18:46:15.000000000 +0100
@@ -1,6 +1,6 @@
name lualatex-math
category Package
-revision 49904
+revision 52663
shortdesc Fixes for mathematics-related LuaLaTeX issues
relocated 1
longdesc The package patches a few commands of the LaTeX2e kernel and
@@ -10,6 +10,8 @@
longdesc functionality. The fixes are mostly moved from the unicode-math
longdesc package to this package since they are not directly related to
longdesc Unicode mathematics typesetting.
+depend etoolbox
+depend filehook
runfiles size=3
RELOC/tex/lualatex/lualatex-math/lualatex-math.lua
RELOC/tex/lualatex/lualatex-math/lualatex-math.sty
++++++ lualibs.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/lualibs/NEWS new/doc/luatex/lualibs/NEWS
--- old/doc/luatex/lualibs/NEWS 2019-02-25 23:22:22.000000000 +0100
+++ new/doc/luatex/lualibs/NEWS 2020-02-05 22:26:20.000000000 +0100
@@ -1,4 +1,23 @@
History of the lualibs package
+2020/02/02 v2.70/
+ * sync with Context current as of 2020/01/26.
+
+2019/11/06 v2.69/
+ * corrected github address and version info.
+
+2019/11/05 v2.68/
+ * sync with Context current as of 2019/10/29
+
+2019/08/11 v2.67/
+ * sync with Context current as of 2019/08/11
+
+2019/07/04 v2.66/
+ * sync with Context current as of 2019/07/04
+ * changed kpse initialization to avoid conflicts with latex-dev format
+
+2019/05/18 v2.65/
+ * sync with Context current as of 2019/05/18
+
2019/02/14 v2.64/
* sync with Context beta as of 2019/02/14
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/lualibs/README new/doc/luatex/lualibs/README
--- old/doc/luatex/lualibs/README 2019-02-25 23:22:22.000000000 +0100
+++ new/doc/luatex/lualibs/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,95 +0,0 @@
-********************************************************************************
- The Lualibs Package
-********************************************************************************
-
-
-Lualibs is a collection of Lua modules useful for general programming.
-
-This work is based on Lua modules shipped with ConTeXt, to make them available
-for use independent of ConTeXt.
-
-This package has been developed by the LuaLaTeX development team on
-http://github.com/lualatex/lualibs.
-
-The current verson 2.64 has been build by Ulrike Fischer on
-https://github.com/u-fischer/lualibs from context 2019-02-14.
-
-See the 'NEWS' file for version history.
-
-
-
-Installation
---------------------------------------------------------------------------------
-
-
-1. If you are using TeX Live 2010 or later use 'tlmgr install lualibs'.
- With miktex, use the miktex console.
- Alternatively, use your (TeX or Linux) distribution's package management
- system.
-
-2. a. Grab lualibs.tds.zip on CTAN.
- b. Unzip it at the root of one or your TDS trees.
- c. You may need to update some filename database after this, see your TeX
- distribution's manual for details.
-
-
-Manifest
---------------------------------------------------------------------------------
- file TDS location
-
-Source files:
- lualibs.dtx source/luatex/lualibs/lualibs.dtx
- lualibs-boolean.lua tex/luatex/lualibs/lualibs-boolean.lua
- lualibs-compat.lua tex/luatex/lualibs/lualibs-compat.lua
- lualibs-dir.lua tex/luatex/lualibs/lualibs-dir.lua
- lualibs-file.lua tex/luatex/lualibs/lualibs-file.lua
- lualibs-gzip.lua tex/luatex/lualibs/lualibs-gzip.lua
- lualibs-function.lua tex/luatex/lualibs/lualibs-function.lua
- lualibs-io.lua tex/luatex/lualibs/lualibs-io.lua
- lualibs-lpeg.lua tex/luatex/lualibs/lualibs-lpeg.lua
- lualibs-lua.lua tex/luatex/lualibs/lualibs-lua.lua
- lualibs-math.lua tex/luatex/lualibs/lualibs-math.lua
- lualibs-md5.lua tex/luatex/lualibs/lualibs-md5.lua
- lualibs-number.lua tex/luatex/lualibs/lualibs-number.lua
- lualibs-os.lua tex/luatex/lualibs/lualibs-os.lua
- lualibs-package.lua tex/luatex/lualibs/lualibs-package.lua
- lualibs-set.lua tex/luatex/lualibs/lualibs-set.lua
- lualibs-string.lua tex/luatex/lualibs/lualibs-string.lua
- lualibs-table.lua tex/luatex/lualibs/lualibs-table.lua
- lualibs-trac-inf.lua tex/luatex/lualibs/lualibs-trac-inf.lua
- lualibs-unicode.lua* tex/luatex/lualibs/lualibs-unicode.lua
- lualibs-url.lua tex/luatex/lualibs/lualibs-url.lua
- lualibs-util-deb.lua tex/luatex/lualibs/lualibs-util-deb.lua
- lualibs-util-dim.lua tex/luatex/lualibs/lualibs-util-dim.lua
- lualibs-util-jsn.lua tex/luatex/lualibs/lualibs-util-jsn.lua
- lualibs-util-lua.lua tex/luatex/lualibs/lualibs-util-lua.lua
- lualibs-util-prs.lua tex/luatex/lualibs/lualibs-util-prs.lua
- lualibs-util-sta.lua tex/luatex/lualibs/lualibs-util-sta.lua
- lualibs-util-sto.lua tex/luatex/lualibs/lualibs-util-sto.lua
- lualibs-util-str.lua tex/luatex/lualibs/lualibs-util-str.lua
- lualibs-util-tab.lua tex/luatex/lualibs/lualibs-util-tab.lua
- lualibs-util-tpl.lua tex/luatex/lualibs/lualibs-util-tpl.lua
- LICENSE doc/luatex/lualibs/LICENSE
- NEWS doc/luatex/lualibs/NEWS
- README doc/luatex/lualibs/README
-
-* the file has been modified to enable the unicode library again
-
-Derived files:
- lualibs.lua tex/luatex/lualibs/lualibs.lua
- lualibs-basic.lua tex/luatex/lualibs/lualibs-basic.lua
- lualibs-basic-merged.lua tex/luatex/lualibs/lualibs-basic-merged.lua
- lualibs-extended.lua tex/luatex/lualibs/lualibs-extended.lua
- lualibs-extended-merged.lua tex/luatex/lualibs/lualibs-extended-merged.lua
- lualibs.pdf doc/luatex/lualibs/lualibs.pdf
-
-License and Copyright
---------------------------------------------------------------------------------
-
-As a derived work of Context, this work and the derived files are under the
-GNU GPL v.2.0 license.
-The full text of the license is included in the file LICENSE.
-
-The files taken from Context (lualibs-*.lua) are copyright PRAGMA ADE / ConTeXt
-Development Team.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/lualibs/README.md new/doc/luatex/lualibs/README.md
--- old/doc/luatex/lualibs/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/luatex/lualibs/README.md 2020-02-05 22:26:20.000000000 +0100
@@ -0,0 +1,101 @@
+# The Lualibs Package
+
+VERSION: 2.70
+
+DATE: 2020-02-02
+
+FONTLOADERDATE: 2020-01-26
+
+Lualibs is a collection of Lua modules useful for general programming.
+
+This work is based on Lua modules shipped with ConTeXt, to make them available
+for use independent of ConTeXt.
+
+This package has been developed by the LuaLaTeX development team on
+https://github.com/lualatex/lualibs.
+
+The current version has been build by the LaTeX3 Project Team on
+https://github.com/latex3/lualibs/. The fontloader date equals the date of the context files.
+
+See the 'NEWS' file for version history.
+
+
+
+## Installation
+
+
+1. If you are using TeX Live 2010 or later use 'tlmgr install lualibs'.
+ With miktex, use the miktex console.
+ Alternatively, use your (TeX or Linux) distribution's package management
+ system.
+
+2.
+ 1. Grab lualibs.tds.zip on CTAN.
+ 2. Unzip it at the root of one or your TDS trees.
+ 3. You may need to update some filename database after this, see your TeX
+ distribution's manual for details.
+
+
+## Manifest
+
+### Source files:
+
+| file | TDS location
+|------------------------------------|-----------------------------------
+| lualibs.dtx |source/luatex/lualibs/lualibs.dtx
+| lualibs-boolean.lua |tex/luatex/lualibs/lualibs-boolean.lua
+| lualibs-compat.lua |tex/luatex/lualibs/lualibs-compat.lua
+| lualibs-dir.lua |tex/luatex/lualibs/lualibs-dir.lua
+| lualibs-file.lua | tex/luatex/lualibs/lualibs-file.lua
+| lualibs-gzip.lua | tex/luatex/lualibs/lualibs-gzip.lua
+| lualibs-function.lua | tex/luatex/lualibs/lualibs-function.lua
+| lualibs-io.lua | tex/luatex/lualibs/lualibs-io.lua
+| lualibs-lpeg.lua | tex/luatex/lualibs/lualibs-lpeg.lua
+| lualibs-lua.lua | tex/luatex/lualibs/lualibs-lua.lua
+| lualibs-math.lua | tex/luatex/lualibs/lualibs-math.lua
+| lualibs-md5.lua | tex/luatex/lualibs/lualibs-md5.lua
+| lualibs-number.lua | tex/luatex/lualibs/lualibs-number.lua
+| lualibs-os.lua | tex/luatex/lualibs/lualibs-os.lua
+| lualibs-package.lua | tex/luatex/lualibs/lualibs-package.lua
+| lualibs-set.lua | tex/luatex/lualibs/lualibs-set.lua
+| lualibs-string.lua | tex/luatex/lualibs/lualibs-string.lua
+| lualibs-table.lua | tex/luatex/lualibs/lualibs-table.lua
+| lualibs-trac-inf.lua | tex/luatex/lualibs/lualibs-trac-inf.lua
+| lualibs-unicode.lua\* | tex/luatex/lualibs/lualibs-unicode.lua
+| lualibs-url.lua | tex/luatex/lualibs/lualibs-url.lua
+| lualibs-util-deb.lua | tex/luatex/lualibs/lualibs-util-deb.lua
+| lualibs-util-dim.lua | tex/luatex/lualibs/lualibs-util-dim.lua
+| lualibs-util-jsn.lua | tex/luatex/lualibs/lualibs-util-jsn.lua
+| lualibs-util-lua.lua | tex/luatex/lualibs/lualibs-util-lua.lua
+| lualibs-util-prs.lua | tex/luatex/lualibs/lualibs-util-prs.lua
+| lualibs-util-sta.lua | tex/luatex/lualibs/lualibs-util-sta.lua
+| lualibs-util-sto.lua | tex/luatex/lualibs/lualibs-util-sto.lua
+| lualibs-util-str.lua | tex/luatex/lualibs/lualibs-util-str.lua
+| lualibs-util-tab.lua | tex/luatex/lualibs/lualibs-util-tab.lua
+| lualibs-util-tpl.lua | tex/luatex/lualibs/lualibs-util-tpl.lua
+| LICENSE | doc/luatex/lualibs/LICENSE
+| NEWS | doc/luatex/lualibs/NEWS
+| README | doc/luatex/lualibs/README
+
+\* the file has been modified to enable the unicode library again
+
+### Derived files:
+
+| file | TDS location
+|------------------------------------|-----------------------------------
+| lualibs.lua | tex/luatex/lualibs/lualibs.lua
+| lualibs-basic.lua | tex/luatex/lualibs/lualibs-basic.lua
+| lualibs-basic-merged.lua | tex/luatex/lualibs/lualibs-basic-merged.lua
+| lualibs-extended.lua | tex/luatex/lualibs/lualibs-extended.lua
+| lualibs-extended-merged.lua | tex/luatex/lualibs/lualibs-extended-merged.lua
+| lualibs.pdf | doc/luatex/lualibs/lualibs.pdf
+
+## License and Copyright
+
+As a derived work of Context, this work and the derived files are under the
+GNU GPL v.2.0 license.
+The full text of the license is included in the file LICENSE.
+
+The files taken from Context (lualibs-*.lua) are copyright PRAGMA ADE / ConTeXt
+Development Team.
+
Binary files old/doc/luatex/lualibs/lualibs.pdf and new/doc/luatex/lualibs/lualibs.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/lualibs.doc.tlpobj new/tlpkg/tlpobj/lualibs.doc.tlpobj
--- old/tlpkg/tlpobj/lualibs.doc.tlpobj 2019-02-28 03:51:13.000000000 +0100
+++ new/tlpkg/tlpobj/lualibs.doc.tlpobj 2020-02-06 01:55:05.000000000 +0100
@@ -1,10 +1,10 @@
name lualibs.doc
category Package
-revision 50130
+revision 53682
shortdesc doc files of lualibs
relocated 1
docfiles size=28
RELOC/doc/luatex/lualibs/LICENSE
RELOC/doc/luatex/lualibs/NEWS
- RELOC/doc/luatex/lualibs/README
+ RELOC/doc/luatex/lualibs/README.md
RELOC/doc/luatex/lualibs/lualibs.pdf
++++++ lualibs.tar.xz ++++++
++++ 4521 lines of diff (skipped)
++++++ luamplib.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luamplib/NEWS new/doc/luatex/luamplib/NEWS
--- old/doc/luatex/luamplib/NEWS 2019-03-26 22:01:21.000000000 +0100
+++ new/doc/luatex/luamplib/NEWS 2020-02-25 02:22:23.000000000 +0100
@@ -1,5 +1,21 @@
History of the luamplib package
+2020/02/24 2.20.5
+ * Extra check for \pdfliteral (PR #89)
+ * allow expansion of \mpdim and \mpcolor when they are used in
+ another macro
+ * step copyright year
+
+2019/12/11 2.20.4
+ * remove unnecessary setting of endlinechar
+ * \prependtomplibbox instead of \mplibhmodeornot
+
+2019/11/14 2.20.3
+ * fix issue #86 (LaTeX command inside metapost label)
+
+2019/10/11 2.20.2
+ * fix issue #84 (pgf package hinders \mpcolor process)
+
2019/03/26 2.20.1
* '\mpdim' and '\mpcolor' are allowed, even if '\mplibverbatim' is enabled.
Binary files old/doc/luatex/luamplib/luamplib.pdf and new/doc/luatex/luamplib/luamplib.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luamplib/test-luamplib-latex.tex new/doc/luatex/luamplib/test-luamplib-latex.tex
--- old/doc/luatex/luamplib/test-luamplib-latex.tex 2019-03-21 21:54:31.000000000 +0100
+++ new/doc/luatex/luamplib/test-luamplib-latex.tex 2019-12-11 22:54:44.000000000 +0100
@@ -31,7 +31,7 @@
draw btex g etex withcolor \mpcolor{orange};
draw btex\tracingcommands0
multi%
- \begin{huge}line\end{huge}%
+ \begin{huge}line\end{huge}
texcode
with \%
etex shifted (10,0);
@@ -63,7 +63,7 @@
endfor;
endfig;
\end{mplibcode}%
-B\par\leavevmode
+B\par\mplibforcehmode
\mplibcodeinherit{enable}%
\mplibglobaltextext{enable}%
\everymplib{ beginfig(0);}\everyendmplib{ endfig;}%
@@ -75,6 +75,7 @@
\begin{mplibcode}
currentpicture := pic scaled 2;
\end{mplibcode}%
+\mplibnoforcehmode
\everymplib{}\everyendmplib{}%
\mplibcodeinherit{disable}%
\mplibglobaltextext{disable}\par
@@ -101,8 +102,9 @@
\end{mplibcode}%
\newbox\mympbox
+\def\prependtomplibbox{\global\setbox\mympbox}%
\begin{mplibcode}
-verbatimtex \global\setbox\mympbox etex
+%verbatimtex \global\setbox\mympbox etex
beginfig(0);
breadth=.667\mpdim\linewidth;
height=2pt;
@@ -117,6 +119,7 @@
\copy\mympbox
\copy\mympbox
+\mplibnoforcehmode
\mplibnumbersystem{double}%
\begin{mplibcode}
beginfig(0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luamplib/test-luamplib-plain.tex new/doc/luatex/luamplib/test-luamplib-plain.tex
--- old/doc/luatex/luamplib/test-luamplib-plain.tex 2019-03-21 21:54:31.000000000 +0100
+++ new/doc/luatex/luamplib/test-luamplib-plain.tex 2019-12-11 22:54:44.000000000 +0100
@@ -61,7 +61,7 @@
endfor;
endfig;
\endmplibcode
-B\par\leavevmode
+B\par\mplibforcehmode
\mplibcodeinherit{enable}%
\mplibglobaltextext{enable}%
\everymplib{ beginfig(0);}\everyendmplib{ endfig;}%
@@ -73,6 +73,7 @@
\mplibcode
currentpicture := pic scaled 2;
\endmplibcode
+\mplibnoforcehmode
\everymplib{}\everyendmplib{}%
\mplibcodeinherit{disable}%
\mplibglobaltextext{disable}\par
@@ -99,8 +100,9 @@
\endmplibcode
\newbox\mympbox
+\def\prependtomplibbox{\global\setbox\mympbox}%
\mplibcode
-verbatimtex \global\setbox\mympbox etex
+%verbatimtex \global\setbox\mympbox etex
beginfig(0);
breadth=.667\mpdim\hsize;
height=2pt;
@@ -115,6 +117,7 @@
\copy\mympbox
\copy\mympbox
+\mplibnoforcehmode
\mplibnumbersystem{double}%
\mplibcode
beginfig(0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luamplib.doc.tlpobj new/tlpkg/tlpobj/luamplib.doc.tlpobj
--- old/tlpkg/tlpobj/luamplib.doc.tlpobj 2019-03-27 02:24:12.000000000 +0100
+++ new/tlpkg/tlpobj/luamplib.doc.tlpobj 2020-02-26 01:54:57.000000000 +0100
@@ -1,9 +1,9 @@
name luamplib.doc
category Package
-revision 50608
+revision 53904
shortdesc doc files of luamplib
relocated 1
-docfiles size=42
+docfiles size=43
RELOC/doc/luatex/luamplib/NEWS
RELOC/doc/luatex/luamplib/README
RELOC/doc/luatex/luamplib/luamplib.pdf
++++++ luamplib.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luamplib/luamplib.lua new/tex/luatex/luamplib/luamplib.lua
--- old/tex/luatex/luamplib/luamplib.lua 2019-03-26 22:01:21.000000000 +0100
+++ new/tex/luatex/luamplib/luamplib.lua 2020-02-25 02:22:23.000000000 +0100
@@ -11,8 +11,8 @@
luatexbase.provides_module {
name = "luamplib",
- version = "2.20.1",
- date = "2019/03/26",
+ version = "2.20.5",
+ date = "2020/02/24",
description = "Lua package to typeset Metapost with LuaTeX's MPLib.",
}
@@ -354,6 +354,10 @@
local tex_box_id = 2047
local factor = 65536*(7227/7200)
+local textext_fmt = [[image(addto currentpicture doublepath unitsquare ]]..
+ [[xscaled %f yscaled %f shifted (0,-%f) ]]..
+ [[withprescript "mplibtexboxid=%i:%f:%f")]]
+
local function process_tex_text (str)
if str then
tex_box_id = tex_box_id + 1
@@ -363,23 +367,22 @@
local wd = box.width / factor
local ht = box.height / factor
local dp = box.depth / factor
- return format("image(addto currentpicture doublepath unitsquare "..
- "xscaled %f yscaled %f shifted (0,-%f) "..
- "withprescript \"mplibtexboxid=%i:%f:%f\")",
- wd, ht+dp, dp, tex_box_id, wd, ht+dp)
+ return textext_fmt:format(wd, ht+dp, dp, tex_box_id, wd, ht+dp)
end
return ""
end
+local mplibcolor_fmt = [[\begingroup\let\XC@mcolor\relax]]..
+ [[\def\set@color{\global\mplibtmptoks\expandafter{\current@color}}]]..
+ [[\color %s \endgroup]]
+
local function process_color (str)
if str then
if not str:find("{.-}") then
str = format("{%s}",str)
end
- run_tex_code(format(
- "\\def\\set@color{\\toks0\\expandafter{\\current@color}}\\color %s", str),
- catat11)
- return format("1 withprescript \"MPlibOverrideColor=%s\"", texgettoks(0))
+ run_tex_code(mplibcolor_fmt:format(str), catat11)
+ return format('1 withprescript "MPlibOverrideColor=%s"', texgettoks"mplibtmptoks")
end
return ""
end
@@ -387,8 +390,8 @@
local function process_dimen (str)
if str then
str = str:gsub("{(.+)}","%1")
- run_tex_code(format("\\toks0\\expandafter{\\the\\dimexpr %s\\relax}", str))
- return format("begingroup %s endgroup", texgettoks(0))
+ run_tex_code(format([[\mplibtmptoks\expandafter{\the\dimexpr %s\relax}]], str))
+ return format("begingroup %s endgroup", texgettoks"mplibtmptoks")
end
return ""
end
@@ -418,7 +421,7 @@
local function process_verbatimtex_infig (str)
if str then
- return format("special \"postmplibverbtex=%s\";", str)
+ return format('special "postmplibverbtex=%s";', str)
end
return ""
end
@@ -577,30 +580,30 @@
local function protect_expansion (str)
if str then
- str = str:gsub("\\","\1Control\1")
- :gsub("%%","\1Comment\1")
- :gsub("#", "\1HashSign\1")
- :gsub("{", "\1LBrace\1")
- :gsub("}", "\1RBrace\1")
+ str = str:gsub("\\","!!!Control!!!")
+ :gsub("%%","!!!Comment!!!")
+ :gsub("#", "!!!HashSign!!!")
+ :gsub("{", "!!!LBrace!!!")
+ :gsub("}", "!!!RBrace!!!")
return format("\\unexpanded{%s}",str)
end
end
local function unprotect_expansion (str)
if str then
- return str:gsub("\1Control\1", "\\")
- :gsub("\1Comment\1", "%%")
- :gsub("\1HashSign\1","#")
- :gsub("\1LBrace\1", "{")
- :gsub("\1RBrace\1", "}")
+ return str:gsub("!!!Control!!!", "\\")
+ :gsub("!!!Comment!!!", "%%")
+ :gsub("!!!HashSign!!!","#")
+ :gsub("!!!LBrace!!!", "{")
+ :gsub("!!!RBrace!!!", "}")
end
end
local function process_mplibcode (data)
legacy_mplibcode_reset()
- local everymplib = texgettoks('everymplibtoks') or ''
- local everyendmplib = texgettoks('everyendmplibtoks') or ''
+ local everymplib = texgettoks'everymplibtoks' or ''
+ local everyendmplib = texgettoks'everyendmplibtoks' or ''
data = format("\n%s\n%s\n%s\n",everymplib, data, everyendmplib)
data = data:gsub("\r","\n")
@@ -619,9 +622,13 @@
if not luamplib.verbatiminput then
data = data:gsub("\".-\"", protect_expansion)
+
+ data = data:gsub("\\%%", "\0PerCent\0")
data = data:gsub("%%.-\n","")
- run_tex_code(format("\\toks0\\expanded{{%s}}",data))
- data = texgettoks(0)
+ data = data:gsub("%zPerCent%z", "\\%%")
+
+ run_tex_code(format("\\mplibtmptoks\\expanded{{%s}}",data))
+ data = texgettoks"mplibtmptoks"
data = data:gsub("##", "#")
data = data:gsub("\".-\"", unprotect_expansion)
data = data:gsub(btex_etex, function(str)
@@ -637,9 +644,9 @@
luamplib.process_mplibcode = process_mplibcode
local further_split_keys = {
- ["mplibtexboxid"] = true,
- ["sh_color_a"] = true,
- ["sh_color_b"] = true,
+ mplibtexboxid = true,
+ sh_color_a = true,
+ sh_color_b = true,
}
local function script2table(s)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luamplib/luamplib.sty new/tex/luatex/luamplib/luamplib.sty
--- old/tex/luatex/luamplib/luamplib.sty 2019-03-26 22:01:21.000000000 +0100
+++ new/tex/luatex/luamplib/luamplib.sty 2020-02-25 02:22:23.000000000 +0100
@@ -14,19 +14,19 @@
\else
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{luamplib}
- [2019/03/26 v2.20.1 mplib package for LuaTeX]
+ [2020/02/24 v2.20.5 mplib package for LuaTeX]
\ifx\newluafunction\@undefined
\input ltluatex
\fi
\fi
\directlua{require("luamplib")}
-\ifx\scantextokens\undefined
- \let\scantextokens\luatexscantextokens
-\fi
\ifx\pdfoutput\undefined
\let\pdfoutput\outputmode
\protected\def\pdfliteral{\pdfextension literal}
\fi
+\ifx\pdfliteral\undefined
+ \protected\def\pdfliteral{\pdfextension literal}
+\fi
\def\mplibsetformat#1{\directlua{luamplib.setformat("#1")}}
\ifnum\pdfoutput>0
\let\mplibtoPDF\pdfliteral
@@ -40,30 +40,18 @@
\write128{}
\fi
\fi
-\def\mplibforcehmode{\let\mplibhmodeornot\leavevmode}
-\def\mplibnoforcehmode{\let\mplibhmodeornot\relax}
+\def\mplibforcehmode{\let\prependtomplibbox\leavevmode}
+\def\mplibnoforcehmode{\let\prependtomplibbox\relax}
\mplibnoforcehmode
\def\mplibsetupcatcodes{%
- \mplibhmodeornot %catcode`\{=12 %catcode`\}=12
+ %catcode`\{=12 %catcode`\}=12
\catcode`\#=12 \catcode`\^=12 \catcode`\~=12 \catcode`\_=12
- \catcode`\&=12 \catcode`\$=12 \catcode`\%=12 \catcode`\^^M=12 \endlinechar=10
+ \catcode`\&=12 \catcode`\$=12 \catcode`\%=12 \catcode`\^^M=12
}
\def\mplibputtextbox#1{\vbox to 0pt{\vss\hbox to 0pt{\raise\dp#1\copy#1\hss}}}
-\newcount\mplibstartlineno
-\def\mplibpostmpcatcodes{%
- \catcode`\{=12 \catcode`\}=12 \catcode`\#=12 \catcode`\%=12 }
-\def\mplibreplacenewlinebr{%
- \begingroup \mplibpostmpcatcodes \mplibdoreplacenewlinebr}
-\begingroup\lccode`\~=`\^^M \lowercase{\endgroup
- \def\mplibdoreplacenewlinebr#1^^J{\endgroup\scantextokens{{}#1~}}}
\bgroup\expandafter\expandafter\expandafter\egroup
\expandafter\ifx\csname selectfont\endcsname\relax
-\def\mplibreplacenewlinecs{%
- \begingroup \mplibpostmpcatcodes \mplibdoreplacenewlinecs}
-\begingroup\lccode`\~=`\^^M \lowercase{\endgroup
- \def\mplibdoreplacenewlinecs#1^^J{\endgroup\scantextokens{\relax#1~}}}
\def\mplibcode{%
- \mplibstartlineno\inputlineno
\begingroup
\begingroup
\mplibsetupcatcodes
@@ -73,12 +61,10 @@
\endgroup
\directlua{luamplib.process_mplibcode([===[\unexpanded{#1}]===])}%
\endgroup
- \ifnum\mplibstartlineno<\inputlineno\expandafter\mplibreplacenewlinecs\fi
}
\else
\newenvironment{mplibcode}{%
- \global\mplibstartlineno\inputlineno
- \toks@{}\ltxdomplibcode
+ \mplibtmptoks{}\ltxdomplibcode
}{}
\def\ltxdomplibcode{%
\begingroup
@@ -88,16 +74,14 @@
\def\mplib@mplibcode{mplibcode}
\long\def\ltxdomplibcodeindeed#1\end#2{%
\endgroup
- \toks@\expandafter{\the\toks@#1}%
+ \mplibtmptoks\expandafter{\the\mplibtmptoks#1}%
\def\mplibtemp@a{#2}%
\ifx\mplib@mplibcode\mplibtemp@a
- \directlua{luamplib.process_mplibcode([===[\the\toks@]===])}%
+ \directlua{luamplib.process_mplibcode([===[\the\mplibtmptoks]===])}%
\end{mplibcode}%
- \ifnum\mplibstartlineno<\inputlineno
- \expandafter\expandafter\expandafter\mplibreplacenewlinebr
- \fi
\else
- \toks@\expandafter{\the\toks@\end{#2}}\expandafter\ltxdomplibcode
+ \mplibtmptoks\expandafter{\the\mplibtmptoks\end{#2}}%
+ \expandafter\ltxdomplibcode
\fi
}
\fi
@@ -121,7 +105,6 @@
\newtoks\everymplibtoks
\newtoks\everyendmplibtoks
\protected\def\everymplib{%
- \mplibstartlineno\inputlineno
\begingroup
\mplibsetupcatcodes
\mplibdoeverymplib
@@ -129,10 +112,8 @@
\long\def\mplibdoeverymplib#1{%
\endgroup
\everymplibtoks{#1}%
- \ifnum\mplibstartlineno<\inputlineno\expandafter\mplibreplacenewlinebr\fi
}
\protected\def\everyendmplib{%
- \mplibstartlineno\inputlineno
\begingroup
\mplibsetupcatcodes
\mplibdoeveryendmplib
@@ -140,8 +121,10 @@
\long\def\mplibdoeveryendmplib#1{%
\endgroup
\everyendmplibtoks{#1}%
- \ifnum\mplibstartlineno<\inputlineno\expandafter\mplibreplacenewlinebr\fi
}
+\def\mpdim#1{ mplibdimen("#1") }
+\def\mpcolor#1#{\domplibcolor{#1}}
+\def\domplibcolor#1#2{ mplibcolor("#1{#2}") }
\def\mplibnumbersystem#1{\directlua{
local t = "#1"
if t == "binary" then t = "decimal" end
@@ -196,6 +179,7 @@
}}
\ifx\mplibscratchbox\undefined \newbox\mplibscratchbox \fi
\def\mplibstarttoPDF#1#2#3#4{%
+ \prependtomplibbox
\hbox\bgroup
\xdef\MPllx{#1}\xdef\MPlly{#2}%
\xdef\MPurx{#3}\xdef\MPury{#4}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luamplib.tlpobj new/tlpkg/tlpobj/luamplib.tlpobj
--- old/tlpkg/tlpobj/luamplib.tlpobj 2019-03-27 02:24:12.000000000 +0100
+++ new/tlpkg/tlpobj/luamplib.tlpobj 2020-02-26 01:54:57.000000000 +0100
@@ -1,6 +1,6 @@
name luamplib
category Package
-revision 50608
+revision 53904
shortdesc Use LuaTeX's built-in MetaPost interpreter
relocated 1
longdesc The package enables the user to specify MetaPost diagrams
@@ -13,7 +13,6 @@
catalogue-contact-bugs https://github.com/lualatex/luamplib/issues
catalogue-contact-repository http://github.com/lualatex/luamplib
catalogue-ctan /macros/luatex/generic/luamplib
-catalogue-date 2019-03-26 13:13:24 +0100
catalogue-license gpl2
catalogue-topics mp-use graphics-in-tex luatex
-catalogue-version 2.20.1
+catalogue-version 2.20.5
++++++ luaotfload.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/NEWS new/texmf-dist/doc/luatex/luaotfload/NEWS
--- old/texmf-dist/doc/luatex/luaotfload/NEWS 2019-02-25 23:22:50.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/NEWS 2020-02-03 23:30:09.000000000 +0100
@@ -1,5 +1,45 @@
Change History
--------------
+2020-02-02 luaotfload v3.12
+ * new experimental feature multiscript
+ * new experimental feature fallback
+ * extension of the color feature to color output glyphs
+ * Small bug correction
+
+2019-11-10 luaotfload v3.11
+ * Changed the handling of the script key in harf mode to be more compatible with behaviour of the node mode.
+ It now expects the name of a script that is actually in the font instead of a ISO 15924 script tag. See issue 117.
+ * Corrected a number of small typos and bugs in harf mode.
+
+2019-11-04 luaotfload v3.1
+ * added code to use the harfbuzz library of luahbtex ("mode=harf")
+ * fonts in ttc can now be indexed by name
+ * remove a number of lua tables from the global enviroment (_G) to reduce the polution.
+ Kept there are only the tables luaotfload, fonts and nodes.
+ * sync with context files from 2019-10-29
+
+2019-09-13 luaotfload v3.0
+ * invisible option to avoid that some glyph are shown (issue #63)
+ * correct small bug in xheight calculation
+
+2019-08-11 luaotfload v2.99
+ * some clean up
+ * fix a bug in luaotfload.aux.resolve_fontname() (issue #76)
+ * removed dependency on slnunicode (PR#72)
+ * sync with context files from 2019-08-11
+
+2019-06-20 luaotfload v2.98
+ * add embolden key
+ * add missing char detection issue #65
+ * sync with context files from 2019-07-04
+
+2019-05-18 luaotfload v2.97
+ * fix issue #47
+ * fix whatsits interfering with letterspacing (issue #53)
+ * fix luaotfload-tool switches version and find not working correctly (PR#59)
+ * fix luaotfload-tool support of ttc fonts (PR#58)
+ * sync with context files from 2019-05-18 (improves handling of large fonts, see e.g. issue #55 and PR#58)
+
2019-01-28 luaotfload v2.96
* repaired broken letterspace (issue #38)
* changed handling of spaces in letterspacing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/README.md new/texmf-dist/doc/luatex/luaotfload/README.md
--- old/texmf-dist/doc/luatex/luaotfload/README.md 2019-02-25 23:22:50.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/README.md 2020-02-03 23:30:09.000000000 +0100
@@ -1,8 +1,8 @@
# The Luaotfload Package
-VERSION: 2.96
+VERSION: 3.12
-DATE: 2019-02-14
+DATE: 2020-02-02
## Description
Binary files old/texmf-dist/doc/luatex/luaotfload/filegraph.pdf and new/texmf-dist/doc/luatex/luaotfload/filegraph.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/filegraph.tex new/texmf-dist/doc/luatex/luaotfload/filegraph.tex
--- old/texmf-dist/doc/luatex/luaotfload/filegraph.tex 2018-10-04 00:43:11.000000000 +0200
+++ new/texmf-dist/doc/luatex/luaotfload/filegraph.tex 2019-08-14 22:52:07.000000000 +0200
@@ -65,6 +65,7 @@
if rowcnt % 2 == 0 then sep = "\\\\" else sep = "&" end
tex.sprint("\\mbox{"..v.gitpref..v.name..v.ext.."}".. sep)
end
+ if rowcnt % 2 == 1 then tex.sprint("\\\\") end -- if odd number we must end the matrix
end
function printscriptlist ()
Binary files old/texmf-dist/doc/luatex/luaotfload/luaotfload-conf.pdf and new/texmf-dist/doc/luatex/luaotfload/luaotfload-conf.pdf differ
Binary files old/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.pdf and new/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.tex new/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.tex
--- old/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.tex 2019-02-25 23:22:50.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.tex 2020-02-03 23:30:09.000000000 +0100
@@ -47,6 +47,7 @@
linkcolor=\primarycolor,
urlcolor=\secondarycolor,
citecolor=\primarycolor,
+ unicode,
pdftitle={The Luaotfload package},
pdfsubject={OpenType layout system for Plain TeX and LaTeX},
pdfauthor={Elie Roux \& Khaled Hosny \& Philipp Gesang \& Ulrike Fischer},
@@ -207,6 +208,7 @@
%% one that we could map directly onto Latex’s \verb|…|.
\usepackage{pdfpages}
\usepackage {listings}
+\usepackage{csquotes}
\usepackage {luatexbase}
\lstset {
basicstyle=\ttfamily,
@@ -279,7 +281,37 @@
end
end
}
-
+\directlua{
+ luaotfload.add_colorscheme("myscheme",
+ {
+ ["00FFFF30"] = {"default"},
+ ["FF0000"] = {"kabeng"},
+ ["00FF00"] = {"ivowelsignbeng"},
+ ["0000FF"] = {369} %% 369 is the GID of "nadarabeng"
+ })
+ }
+
+ \directlua{
+ luaotfload.add_multiscript
+ ("cyrlgrekbeng",
+ {
+ cyrl = "DejaVuSans:mode=node;script=cyrl;color=FF0000;",
+ grek = "texgyreheros:mode=harf;script=grek;color=0000FF;",
+ beng = "NotoSansBengali:mode=harf;script=bng2;color=00FF00"
+ }
+ )
+ }
+ \directlua
+ {luaotfload.add_fallback
+ ("myfallback",
+ {
+ "DejaVuSans:mode=harf;script=grek;color=FF0000;",
+ "cmuserif:mode=node;script=cyrl;color=00FF00;",
+ "NotoSansBengali:mode=harf;script=bng2;color=0000FF;",
+ "NotoColorEmoji:mode=harf;"
+ }
+ )
+ }
\def \listingpar {\endgraf}
\let \endlistingline \relax
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex new/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex
--- old/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex 2019-02-25 23:22:50.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex 2020-02-03 23:30:09.000000000 +0100
@@ -32,11 +32,10 @@
\beginfrontmatter
\setdocumenttitle {The \identifier{luaotfload} package}
- \setdocumentdate {2019-02-14 v2.96}
- \setdocumentauthor {Elie Roux · Khaled Hosny · Philipp Gesang · Ulrike Fischer\\
- Home: \hyperlink {https://github.com/lualatex/luaotfload}\\
- New Home: \hyperlink {https://github.com/u-fischer/luaotfload}\\
- Support: \email {lualatex-dev@tug.org}}
+ \setdocumentdate {2020-02-02 v3.12}
+ \setdocumentauthor {LaTeX3 Project\\
+ Elie Roux · Khaled Hosny · Philipp Gesang · Ulrike Fischer · Marcel Krüger\\
+ Home: \hyperlink {https://github.com/latex3/luaotfload}}
\typesetdocumenttitle
@@ -55,8 +54,71 @@
\pdfbookmark[1]{\contentsname}{table}
\typesetcontent
+\beginsection {Engine and version support}
+\identifier{luaotfload} is a quite large and complex package. It imports code from context which is actively developed along with the luatex binary. It is not possible
+to support a large number of engines variants or versions.
-\beginsection {New in version 2.96 (by Ulrike Fischer)}
+Supported is the \identifier{luatex} versions of a current TeXLive 2019 (and a current MiKTeX). Beginning with version 3.1 of this package also \identifier{luahbtex} is supported.
+\endsection
+
+\beginsection{Changes}
+\beginsubsection {New in version 3.12 (by Ulrike Fischer/Marcel Krüger)}
+\begin{itemize}
+\item Corrected a number of small bugs in harf mode.
+\item Extension\marginpar{Experimental!} of the \identifier{color} key to allow
+coloring of specific output glyphs, see page~\pageref{color-glyphs}
+\item A\marginpar{Experimental!} new \identifier{fallback} key to allow to define fallback fonts, see page~\pageref{fallback}
+\item A\marginpar{Experimental!} new \identifier{multiscript} key to allow to use a font
+for more than one script, see page~\pageref{multiscript}
+\end{itemize}
+
+\beginsubsection {New in version 3.11 (by Ulrike Fischer/Marcel Krüger)}
+\begin{itemize}
+\item Changed the handling of the \identifier{script} key in harf mode to be more compatible with behaviour of the node mode. It now expects the name of a script that is actually in the font instead of a ISO 15924 script tag. See issue 117.
+\item Corrected a number of small typos and bugs in harf mode.
+\end{itemize}
+\beginsubsection {New in version 3.1 (by Ulrike Fischer/Marcel Krüger)}
+\begin{itemize}
+\item The package has been moved to the github of the LaTeX3 Project and is now maintained
+ officially by the LaTeX3 Project team.
+\item Code to use the harfbuzz library of luahbtex has been added. See the description of the harf mode.
+\item fonts in ttc-collections can now be indexed by name.
+\item To reduce the polution of the global lua enviroment a number of lua tables have been removed.
+ Only the tables \identifier{luaotfload}, \identifier{fonts} and \identifier{nodes} have been kept there.
+\item The fontloader has been synched with the context files from 2019-10-29.
+
+\end{itemize}
+\endsubsection
+
+
+\beginsubsection {New in version 3.00 (by Ulrike Fischer/Marcel Krüger)}
+\begin{itemize}
+\item Default Ignorable characters are now invisible by default (issue 63). This can be deactivated with the option \texttt{invisible}.
+\end{itemize}
+\endsubsection
+
+\beginsubsection {New in version 2.99 (by Ulrike Fischer)}
+\begin{itemize}
+\item Code cleanup.
+\item The fontloader has been synched with the context files from 2019-08-11.
+\end{itemize}
+\endsubsection
+\beginsubsection {New in version 2.98 (by Ulrike Fischer)}
+\begin{itemize}
+\item The\marginpar{\mbox{}\hfill \textbf{breaking change!}} handling of missing chars has been changed. In This version a missing char will insert the \inlinecode{/.notdef} char of the fonts (this is sometimes a space, sometimes a rectangle with a cross) and no longer simply ignore the glyph. This behaviour can be reverted by using \inlinecode{notdef=false} as font feature.
+\item The font feature \inlinecode{embolden} can now be used to fake a bold font.
+\item The fontloader has been synched with the context files from 2019-07-04.
+\end{itemize}
+\endsubsection
+\beginsubsection {New in version 2.97 (by Ulrike Fischer)}
+\begin{itemize}
+\item the new generic fontloader improves the handling of large fonts (but some fonts still need a 64bit luatex version to create the font files).
+\item A number of small bug (also in luaotfload-tool) have been corrected, see the NEWS file for details.
+
+\end{itemize}
+\endsubsection
+
+\beginsubsection {New in version 2.96 (by Ulrike Fischer)}
\begin{itemize}
\item In\marginpar{\mbox{}\hfill \textbf{Incompatible change!}}
version 2.95 letterspacing was broken due to a change in the fontloader (issue 38). This has been repaired. At the same time a number of oddities and bugs in the letterspacing has been corrected. This can change existing documents. See page~\pageref{p:letterspace} for more information.
@@ -64,11 +126,11 @@
\item A problem with the detection of bold fonts has been corrected (issue 41, pull request 42).
\end{itemize}
-\endsection
+\endsubsection
-\beginsection {New in version 2.95 (by Ulrike Fischer)}
+\beginsubsection {New in version 2.95 (by Ulrike Fischer)}
\begin{itemize}
\item
This version imports from context the generic fontloader in the version of 2019-01-28. Contrary to the last announcement, it still works with luatex 1.07. So updates will continue.
@@ -80,8 +142,8 @@
\item The resolver code has be refactorated (pull request 36).
\end{itemize}
-\endsection
-\beginsection {New in version 2.94 (by Ulrike Fischer)}
+\endsubsection
+\beginsubsection {New in version 2.94 (by Ulrike Fischer)}
\begin{itemize}
\item
This version imports from context the generic fontloader in the version of 2018-12-19. It is the last version that works with luatex 1.07 and texlive 2018. As context has moved to luatex 1.09 newer versions of the fontloader needs now this luatex version too. This means that until the texlive 2018 freeze there will be probably no update of luaotfload.
@@ -90,13 +152,13 @@
\end{itemize}
-\endsection
+\endsubsection
-\beginsection {New in version 2.93 (by Ulrike Fischer)}
+\beginsubsection {New in version 2.93 (by Ulrike Fischer)}
Mainly internal clean up of the version info to allow automatic versioning.
-\endsection
+\endsubsection
-\beginsection {New in version 2.92 (by Ulrike Fischer)}
+\beginsubsection {New in version 2.92 (by Ulrike Fischer)}
\begin{itemize}
@@ -105,15 +167,15 @@
\item The syntax \inlinecode{file:} for legacy font works again (issue \#11).
\item The fontloader has been synched with the newest context version from october, 18.
\end{itemize}
-\endsection
-\beginsection {New in version 2.91 (by Ulrike Fischer)}
+\endsubsection
+\beginsubsection {New in version 2.91 (by Ulrike Fischer)}
This version mostly correct two bugs found in the previous fontloader: Glyphvariants weren't copied and pasted correctly. Glyphs encoded in the PUA couldn't be accessed anymore.
-\endsection
+\endsubsection
-\beginsection {New in version 2.9 (by Ulrike Fischer)}
+\beginsubsection {New in version 2.9 (by Ulrike Fischer)}
On the one side there is not very much new in this version: The native components of \identifier{Luaotfload} are nearly unchanged. A few bugs have been corrected, the various files lists which loads the components of the font loader have been cleaned up.
@@ -128,7 +190,7 @@
\beginaltitem {Lualibs} The update of the fontloader files also required an update of the \identifier{Lualibs} package. This \identifier{Luaotfload} version needs version 2.6 of \identifier{Lualibs}.
\endaltitem
- \beginaltitem {Maintenance} As the current maintainer wasn't available and it was urgent to get a \identifier{Luaotfload} compatible with \LUATEX 1.08/1.09 maintenance has been transfered to Ulrike Fischer and Marcel Krüger. The package is currently maintained and developed at \hyperlink{https://github.com/u-fischer/luaotfload}. Issues should be reported there.
+ \beginaltitem {Maintenance} As the current maintainer wasn't available and it was urgent to get a \identifier{Luaotfload} compatible with \LUATEX 1.08/1.09 maintenance has been transfered to Ulrike Fischer and Marcel Krüger. The package was maintained and developed at \hyperlink{https://github.com/u-fischer/luaotfload}. Issues should be reported there.
\endaltitem
\beginaltitem {Documentation}
@@ -137,6 +199,7 @@
\enddescriptions
+\endsubsection
\endsection
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\beginsection {Introduction}
@@ -155,11 +218,8 @@
as additional functionality like ligatures, old-style numbers, small
capitals, etc., and support more complex writing systems like Arabic
and Indic\footnote{%
- Unfortunately, \identifier{luaotfload} doesn‘t support many Indic
- scripts right now.
- Assistance in implementing the prerequisites is greatly
- appreciated.
-}
+ Unfortunately, the default fontloader of \identifier{luaotfload} doesn‘t support many Indic
+ scripts correctly. For these scripts it is recommended to use the harf mode along with the binary \identifier{luahbtex}.}
scripts.
\OpenType fonts are widely deployed and available for all modern
@@ -356,7 +416,7 @@
%
For a working example see the
\hyperlink [test in the luaotfload
- repo]{https://github.com/u-fischer/luaotfload/blob/master/testfiles/my-resolver.lvt}.
+ repo]{https://github.com/latex3/luaotfload/blob/master/testfiles/my-resolver.lvt}.
}
%
It determines whether the font loader should interpret the request as
@@ -537,8 +597,8 @@
\identifier{TrueType} collection files (the extension is usually
\inlinecode{.ttc}) contain more than a single font. In order to refer to these
-subfonts, the respective index may be added in parentheses after the file
-name.\footnote{%
+subfonts, the respective index or the respective PostScript font name may be
+added in parentheses after the file name.\footnote{%
Incidentally, this syntactical detail also prevents one from loading files
that end in balanced parentheses.
}
@@ -546,6 +606,8 @@
\beginlisting
\font \cambriamain = "file:cambria.ttc(0)" at 10pt
\font \cambriamath = "file:cambria.ttc(1)" at 10pt
+ \font \Cambriamain = "file:cambria.ttc(Cambria)" at 10pt
+ \font \Cambriamath = "file:cambria.ttc(CambriaMath)" at 10pt
\endlisting
and likewise, requesting subfont inside a TTC container by path:
@@ -695,10 +757,9 @@
\begindescriptions
\beginaltitem {mode}
- Until version 2.94
- \identifier{luaotfload} had two \OpenType processing
+ \identifier{luaotfload} had three \OpenType processing
\emphasis{modes}:
- \identifier{base} and \identifier{node}.
+ \identifier{base}, \identifier{node} and \identifier{harf}.
\identifier{base} mode works by mapping \OpenType
features to traditional \TEX ligature and kerning mechanisms.
@@ -718,13 +779,43 @@
mode, and \identifier{base} mode has to be requested where needed,
e.~g. for math fonts.
- Since version 2.94 it is possible to call other font renderers with the mode key. A simple example with a plain reader can be found at \hyperlink{https://github.com/u-fischer/luaotfload/pull/26\#issuecomment-437716326}.
- A more useful example needs the new experimental luahbtex engine (windows binaries can be found at w32tex.org), and the luahbtex-harf renderer (\hyperlink{https://github.com/khaledhosny/luahbtex-harf}). With both it is possible to render a font using the harfbuzz library (used also by xetex).
+ \identifier{harf} mode is new in version 3.1 and needs the new \identifier{luahbtex} engine (the mode is ignored if \identifier{luahbtex} is not used). With it is possible to render a font using the harfbuzz library in-built in the new engine. \identifier{harf} mode improves greatly the rendering of indic and arabic scripts and is highly recommended for such scripts.
+
+ When using \identifier{harf} mode it is required to set also the script correctly.
+
+
+ \beginlisting
+ \font\burmesefont={file:NotoSerifMyanmar-Regular.ttf:mode=harf;script=mym2;}
+ \font\devafont={file:NotoSansDevanagari-Regular.ttf:mode=harf;script=dev2;}
+ \font\banglafont={name:Noto Sans Bengali:mode=harf;script=ben2;}
+ \font\tibetanfont={name:Noto Serif Tibetan:mode=harf;script=tibt;}
+ \endlisting
+
+ \includegraphics{scripts-demo}
+ It is possible to call other font renderers with the mode key. A simple example with a plain reader can be found at \url{https://github.com/latex3/luaotfload/pull/26#issuecomment-437716326}.
+
\endaltitem
+ \beginaltitem {shaper} \phantomsection\label{shaper-tag}
+ If \identifier{luahbtex} and \identifier{harf} mode are used it is possible to specify a shaper, like \identifier{graphite2} or \identifier{ot} (open type).
+
+ \beginlisting
+ \pardir TRT\textdir TRT
+ \font\test={file:AwamiNastaliq-Regular.ttf:mode=harf;shaper=ot}
+ \endlisting
+
+ \includegraphics{shaper-demo}
+
+ \beginlisting
+ \pardir TRT\textdir TRT
+ \font\test={file:AwamiNastaliq-Regular.ttf:mode=harf;shaper=graphite2}
+ \endlisting
+
+ \includegraphics{shaper-demo-graphite}
- \beginaltitem {script} \label{script-tag}
+ \endaltitem
+ \beginaltitem {script} \phantomsection\label{script-tag}
An \OpenType script tag;\footnote{%
See \hyperlink {http://www.microsoft.com/typography/otspec/scripttags.htm}
for a list of valid values.
@@ -758,9 +849,60 @@
\beginlisting
\font \test = "Latin Modern Roman:color=FF0000BB"
\endlisting
+
+ Experimental!\marginpar{\mbox{}\hfill NEW in v3.12!}\phantomsection\label{color-glyphs} The \identifier{color} key has been
+ extended to accept a table with color declarations of (output) glyphs. For example
+
+ \beginlisting
+ \directlua{
+ luaotfload.add_colorscheme("myscheme",
+ {
+ ["00FFFF30"] = {"default"},
+ ["FF0000"] = {"kabeng","ebeng"},
+ ["00FF00"] = {"ivowelsignbeng"},
+ ["0000FF"] = {369} %% 369 is the GID of "nadarabeng"
+ })
+ }
+ \endlisting
+
+ The keys in such a table are like above RGB colors with an optional transparency setting.
+ The values are either lists of glyph names or GID numbers.
+ Both types are font dependant! Not every font use the same
+ glyph names (or even glyph names at all). GID number are font specific anyway. The GID can be found
+ by looking up the \verb+["index"]+ entry in the lua file of a font.
+
+ Such a colorscheme can then be used like this:
+ \beginlisting
+ \font\test={name:Noto Sans Bengali:mode=harf;script=bng2;color=myscheme}
+ \endlisting
+
+ and then would give this output:
+
+
+ {\font\test={name:Noto Sans Bengali:mode=harf;script=bng2;color=myscheme}\test
+ কণ্যা এখন কি করিবে
+ \char"0995 \char"09BF
+ \char"09A8 \char"09CD \char"09A6
+ \char"09CD \char"09B0}
+
+ \endaltitem
+
+
+ \beginaltitem {embolden}
+ A factor, defined as a decimal number.
+
+ For example
+
+ \beginlisting
+ \font\test = "Latin Modern Roman:mode=node;embolden=2;"
+ \endlisting
+
+ {\font\test= "Latin Modern Roman:mode=node;"\test Dies is not bold.
+ \font\test= "Latin Modern Roman:mode=node;embolden=2;" \test Dies is a faked bold font.}
+
\endaltitem
- \beginaltitem {kernfactor \& letterspace}\label{p:letterspace}
+ \beginaltitem {kernfactor \& letterspace}\phantomsection\label{p:letterspace}
Define a font with letterspacing (tracking) enabled.
%
In \identifier{luaotfload}, letterspacing is implemented by
@@ -907,6 +1049,139 @@
\font \test = LatinModernRoman:protrusion=default
\endlisting
\endaltitem
+
+ \beginaltitem {invisible}
+ Default Ignorable characters are control characters that should be invisible by default even if the font has glyphs for them. Since version 3.0 luaotfload makes them invisible, this can be switch on and off with the \texttt{invisible}. By default it is on.
+
+ For example
+
+ \beginlisting
+ \font\amiri={file:amiri-regular.ttf} at 20pt \amiri
+ \char"200Dي\char"200D
+ \endlisting
+
+ {\font\amiri={file:amiri-regular.ttf} at 20pt \amiri \char"200Dي\char"200D}
+
+ \beginlisting
+ \font\amiri={file:amiri-regular.ttf:-invisible;} at 20pt \amiri
+ \char"200Dي\char"200D
+ \endlisting
+
+ {\font\amiri={file:amiri-regular.ttf:-invisible;} at 20pt \amiri \char"200Dي\char"200D}
+
+
+ \endaltitem
+
+ \beginaltitem {multiscript}\phantomsection\label{multiscript}
+ In\marginpar{New in 3.12 -- experimental} fonts many shaping rules are implemented only for specific scripts and so you get correct typesetting only if the \identifier{script} feature is correctly set. This means that to write a text which uses more than one script you have to declare a font for each script and switch fonts even if the font contains glyphs for all scripts.
+ \identifier{multiscript} tries to help here. The feature is experimental and bound to change. Feedback is welcome but you use it at your risk.
+
+ \identifier{multiscript} allows you to declare fonts for various script. The value is either \identifier{auto} described below, or a name which has been previously declared or a combination of both. An example for such a named multiscript could look like this (the colors are only for demonstration):
+
+ \beginlisting
+ \directlua{
+ luaotfload.add_multiscript
+ ("cyrlgrekbeng",
+ {
+ Cyrl = "DejaVuSans:mode=node;script=cyrl;color=FF0000;",
+ Grek = "texgyreheros:mode=harf;script=grek;color=0000FF;",
+ Beng = "NotoSansBengali:mode=harf;script=bng2;color=00FF00;"
+ }
+ )
+ }
+ \endlisting
+
+ \identifier{cyrlgrekbeng} is the name of the multiscript (the name is case insensitive). The keys are ISO language tags (not open type tags!). They are case insensitive too: the example uses an uppercase letter for ISO tags to differentiate them from script tags. The values are font declarations.
+
+ The multiscript can then be used in a font like this:
+
+ \beginlisting
+ \font\test={name:DejaVuSans:mode=node;multiscript=cyrlgrekbeng;}
+ \endlisting
+
+ This would lead to this output:
+
+ {\Large \font\test={name:DejaVuSans:mode=node;multiscript=cyrlgrekbeng;}\test
+ „a^^^^0301123!?“ „π^^^^0301123!?“ „a!?“ „Б123!?“ a „\char"0995\char"09BF 123“
+ }
+
+ It shows that fonts are switched with the scripts.
+
+ Be aware of the following drawbacks:
+
+ \begin{itemize}
+ \item Quite a lot chars can and should be used with more than one script, they belong to the Common or Inherited class. Examples are punctuation chars, digits, accents but also emoji. Currently these chars follow the active script. That's why the digits are all typeset with a different font, the accent over the pi is different to the one over the a, and why the opening quote is sometimes different to the closing quote. It is clear that some tools to force a script (and so a font) locally and globally for such chars are needed.
+
+ \item \identifier{multiscript} doesn't change hyphenation patterns or other language or script related features.
+
+ \item Language packages like \identifier{babel} or \identifier{polyglossia} have code to change the script too which could interfere or clash. This hasn't been tested yet.
+
+ \item \identifier{multiscript} can slow down the compilation.
+ \end{itemize}
+
+ It is possible to use the value \identifier{auto} with \identifier{multiscript}. luaotfload will then switch the script if it detects a char belonging to another script (and if the font support this script). This can be useful for fonts supporting more than one script or when using the \identifier{fallback} key described below.
+
+ It is also possible to combine \identifier{auto} with a named multiscript with the syntax \identifier{multiscript=auto+name}. The rules of the named multiscript will in such cases take precedence and \identifier{auto} used only for other scripts.
+
+
+
+ \endaltitem
+
+ \beginaltitem {fallback}\label{fallback}
+ This\marginpar{New in 3.12 -- experimental} allows you to define a chain of fonts which are used if glyphs are missing in the main font. It works only for text fonts, not for math fonts set with the \identifier{unicode-math} package.
+ The feature is experimental and bound to change. Feedback is welcome but you use it at your risk.
+ For example
+
+ \beginlisting
+ \directlua
+ {luaotfload.add_fallback
+ ("myfallback",
+ {
+ "DejaVuSans:mode=harf;script=grek;color=FF0000;",
+ "cmuserif:mode=node;script=cyrl;color=00FF00;",
+ "NotoSansBengali:mode=harf;script=bng2;color=0000FF;"
+ "NotoColorEmoji:mode=harf;"
+ }
+ )
+ }
+ \endlisting
+
+ This fallback can then be used e.g. like this:
+
+ \beginlisting
+ \font\test={name:LatinModernRoman:mode=node;fallback=myfallback;}
+ \endlisting
+
+ {\Large
+ \font\test={name:LatinModernRoman:mode=node;fallback=myfallback;}\test
+ 1234 a^^^^0301 π^^^^0301 a!? π123!? a БѨ123!? a \char"1F600\ \char"1F986\ \char"0995\char"09BF a „π“ a „Б“
+ }
+
+ Interesting points in the output are
+ \begin{itemize}
+ \item The accent over the pi, the digits and the quotes are all from the base font. Only missing glyphs are from the fallback.
+ \item The cyrillic is printed with the DejaVu font, despite the fact that is sets the script to \identifier{grek} and that the next font in the fallback chain would fit better.
+ \item The duck emoji is from the Noto font, while the face is from DejaVu as it comes first in the chain.
+ \end{itemize}
+
+ The \identifier{fallback} can be combined with the \identifier{multiscript}. For example
+
+ \beginlisting
+ \font\test={name:LatinModernRoman:mode=node;fallback=myfallback;multiscript=auto;}
+ \endlisting
+
+ {\Large
+ \font\test={name:LatinModernRoman:mode=node;fallback=myfallback;multiscript=auto;}\test
+ 1234 a^^^^0301 π^^^^0301 a!? π123!? a БѨ123!? a \char"1F600\ \char"1F986\ \char"0995\char"09BF a „π“ a „Б“
+ }
+
+ Now the accent over the pi is better. The digits after the pi and the closing quote use the DejaVu font. The digits after
+ the cyrillic use the Latin Modern font because of an interesting \enquote{feature} of this font: It claims to know the \identifier{cyrl} script despite the fact that it doesn't contain any cyrillic glyphs.
+
+ \identifier{fallback} can be nested: fonts in the fallback table can refer to another \identifier{fallback} table.
+
+ As with the \identifier{multiscript} key more control over the used glyph and script in edge cases will be needed.
+ \endaltitem
\enddescriptions
\endsubsection
@@ -975,8 +1250,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\beginsection {Combining fonts}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-Version 2.7 and later support combining characters from multiple fonts into a
+Beside the new keys \identifier{multiscript} and \identifier{fallback} described earlier
+Version 2.7 and later support another method to combine characters from multiple fonts into a
single virtualized one. This requires that the affected fonts be loaded in
advance as well as a special \emphasis{request syntax}. Furthermore, this
allows to define \emphasis{fallback fonts} to supplement fonts that may lack
@@ -1780,18 +2055,32 @@
has glyph \luaident{index}.
\endaltitem
- \beginaltitem {aux.slot_of_name(name : string)}
- Translates an Adobe Glyph name to the corresponding glyph
- slot.
+ \beginaltitem {aux.slot_of_name(id : int, name : string)}
+ Translates a name for a glyph in font \luaident{id} to the
+ corresponding glyph slot which can be used e.g.\ as an argument to
+ \inlinecode{\char}. The number is assigned by the \identifier{luaotfload} code
+ and not related to the glyph index (GID) of the font as stored in the \identifier{[index]} field
+ of the lua-file.
+ \endaltitem
+
+ \beginaltitem {aux.gid_of_name(id : int, name : string)}
+ Translates\marginpar{New version 3.12} a name for a glyph in font \luaident{id} to the
+ corresponding glyph index (GID) as stored in the \identifier{[index]} field.
\endaltitem
- \beginaltitem {aux.name_of_slot(slot : int)}
+ \beginaltitem {aux.name_of_slot(id : int, slot : int)}
The inverse of \luaident{slot_of_name}; note that this
might be incomplete as multiple glyph names may map to the
same codepoint, only one of which is returned by
\luaident{name_of_slot}.
\endaltitem
+ \beginaltitem {aux.gid_of_name(id : int, name : string)}
+ Translates a Glyph name to the corresponding GID in font
+ \luaident{id}. This corresponds to the value returned by
+ \inlinecode{\XeTeXglyphindex} in \XeTeX.
+ \endaltitem
+
\beginaltitem {aux.provides_script(id : int, script : string)}
Test if a font supports \luaident{script}.
\endaltitem
Binary files old/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.pdf and new/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst new/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst
--- old/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst 2019-02-25 23:22:50.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst 2020-02-03 23:30:09.000000000 +0100
@@ -6,9 +6,9 @@
generate and query the Luaotfload font names database
-----------------------------------------------------------------------
-:Date: 2019-02-14
+:Date: 2020-02-02
:Copyright: GPL v2.0
-:Version: 2.96
+:Version: 3.12
:Manual section: 1
:Manual group: text processing
@@ -304,7 +304,7 @@
* ``texdoc luaotfload`` to display the manual for the *Luaotfload*
package
-* Luaotfload development `https://github.com/lualatex/luaotfload`_
+* Luaotfload development `https://github.com/latex3/luaotfload`_
* LuaLaTeX mailing list `http://tug.org/pipermail/lualatex-dev/`_
* LuaTeX `http://luatex.org/`_
* ConTeXt `http://wiki.contextgarden.net`_
@@ -319,8 +319,8 @@
=======================================================================
*Luaotfload* was developed by the LuaLaTeX dev team
-(`https://github.com/lualatex/`__). It is currently maintained by Ulrike Fischer
-and Marcel Krüger at `https://github.com/u-fischer/luaotfload`__
+(`https://github.com/lualatex/`__). It is currently maintained by the LaTeX
+Project Team at `https://github.com/latex3/luaotfload`__
The fontloader code is provided by Hans Hagen of Pragma ADE, Hasselt
NL (`http://pragma-ade.com/`__).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst new/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst
--- old/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst 2019-02-25 23:22:50.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst 2020-02-03 23:30:09.000000000 +0100
@@ -6,9 +6,9 @@
Luaotfload configuration file
-----------------------------------------------------------------------
-:Date: 2019-02-14
+:Date: 2020-02-02
:Copyright: GPL v2.0
-:Version: 2.96
+:Version: 3.12
:Manual section: 5
:Manual group: text processing
@@ -386,7 +386,7 @@
* ``texdoc luaotfload`` to display the PDF manual for the *Luaotfload*
package
-* Luaotfload development `https://github.com/u-fischer/luaotfload`_
+* Luaotfload development `https://github.com/latex3/luaotfload`_
* LuaLaTeX mailing list `http://tug.org/pipermail/lualatex-dev/`_
* LuaTeX `http://luatex.org/`_
* Luaotfload on CTAN `http://ctan.org/pkg/luaotfload`_
@@ -402,8 +402,8 @@
=======================================================================
*Luaotfload* was developed by the LuaLaTeX dev team
-(`https://github.com/lualatex/`_). It is currently maintained by Ulrike Fischer
-and Marcel Krüger at `https://github.com/u-fischer/luaotfload`_
+(`https://github.com/lualatex/`_). It is currently maintained by the
+LaTeX Project Team at `https://github.com/latex3/luaotfload`_
This manual page was written by Philipp Gesang .
Binary files old/texmf-dist/doc/luatex/luaotfload/scripts-demo.pdf and new/texmf-dist/doc/luatex/luaotfload/scripts-demo.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/scripts-demo.tex new/texmf-dist/doc/luatex/luaotfload/scripts-demo.tex
--- old/texmf-dist/doc/luatex/luaotfload/scripts-demo.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/scripts-demo.tex 2019-11-11 22:44:06.000000000 +0100
@@ -0,0 +1,15 @@
+\documentclass{standalone}
+
+\font\burmesefont={file:NotoSerifMyanmar-Regular.ttf:mode=harf;script=mym2;}
+\font\devafont={file:NotoSansDevanagari-Regular.ttf:mode=harf;script=dev2;}
+\font\banglafont={file:NotoSansBengali-Regular.ttf:mode=harf;script=bng2;}
+\font\tibetanfont={file:NotoSerifTibetan-Regular.ttf:mode=harf;script=tibt;}
+\standaloneenv{tabular}
+\begin{document}
+\begin{tabular}{l}
+\burmesefont မ္မတီခေါင်းလောင်းကြီ\\
+\devafont क्रर्कि \\
+\banglafont কণ্যা এখন কি করিবে\\
+\tibetanfont སྐྱེས་ཙམ་ཉིད་ནས་ཆེ་མཐོངས་དང༌།
+\end{tabular}
+\end{document}
Binary files old/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.pdf and new/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.tex new/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.tex
--- old/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.tex 2019-11-05 22:35:11.000000000 +0100
@@ -0,0 +1,9 @@
+\documentclass[12pt]{standalone}
+
+\begin{document}
+
+\pardir TRT\textdir TRT
+\font\test={file:AwamiNastaliq-Regular.ttf:mode=harf;shaper=graphite2}
+\test
+اُرْشَلیمئے
+\end{document}
Binary files old/texmf-dist/doc/luatex/luaotfload/shaper-demo.pdf and new/texmf-dist/doc/luatex/luaotfload/shaper-demo.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/luatex/luaotfload/shaper-demo.tex new/texmf-dist/doc/luatex/luaotfload/shaper-demo.tex
--- old/texmf-dist/doc/luatex/luaotfload/shaper-demo.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/texmf-dist/doc/luatex/luaotfload/shaper-demo.tex 2019-11-05 22:35:11.000000000 +0100
@@ -0,0 +1,7 @@
+\documentclass[12pt]{standalone}
+\begin{document}
+\pardir TRT\textdir TRT
+\font\test={file:AwamiNastaliq-Regular.ttf:mode=harf;shaper=ot}
+\test
+اُرْشَلیمئے
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/luaotfload-tool.1 new/texmf-dist/doc/man/man1/luaotfload-tool.1
--- old/texmf-dist/doc/man/man1/luaotfload-tool.1 2019-02-25 23:22:50.000000000 +0100
+++ new/texmf-dist/doc/man/man1/luaotfload-tool.1 2020-02-03 23:30:09.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH LUAOTFLOAD-TOOL 1 "2019-02-14" "2.96" "text processing"
+.TH LUAOTFLOAD-TOOL 1 "2020-02-02" "3.12" "text processing"
.SH NAME
luaotfload-tool \- generate and query the Luaotfload font names database
.
@@ -326,7 +326,7 @@
.SS miscellaneous
.INDENT 0.0
.TP
-.BI \-\-verbose\fB= N\fP,\fB \ \-v
+.BI \-\-verbose\fB= N\fR,\fB \ \-v
Set verbosity level to \fIn\fP or the number of
repetitions of \fB\-v\fP\&.
.TP
@@ -414,7 +414,7 @@
\fBtexdoc luaotfload\fP to display the manual for the \fILuaotfload\fP
package
.IP \(bu 2
-Luaotfload development \fI\%https://github.com/lualatex/luaotfload\fP
+Luaotfload development \fI\%https://github.com/latex3/luaotfload\fP
.IP \(bu 2
LuaLaTeX mailing list \fI\%http://tug.org/pipermail/lualatex\-dev/\fP
.IP \(bu 2
@@ -430,8 +430,8 @@
.SH AUTHORS
.sp
\fILuaotfload\fP was developed by the LuaLaTeX dev team
-(\fI\%https://github.com/lualatex/\fP). It is currently maintained by Ulrike Fischer
-and Marcel Krüger at \fI\%https://github.com/u\-fischer/luaotfload\fP
+(\fI\%https://github.com/lualatex/\fP). It is currently maintained by the LaTeX
+Project Team at \fI\%https://github.com/latex3/luaotfload\fP
The fontloader code is provided by Hans Hagen of Pragma ADE, Hasselt
NL (\fI\%http://pragma\-ade.com/\fP).
.sp
Binary files old/texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf and new/texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man5/luaotfload.conf.5 new/texmf-dist/doc/man/man5/luaotfload.conf.5
--- old/texmf-dist/doc/man/man5/luaotfload.conf.5 2019-02-25 23:22:50.000000000 +0100
+++ new/texmf-dist/doc/man/man5/luaotfload.conf.5 2020-02-03 23:30:09.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH LUAOTFLOAD.CONF 5 "2019-02-14" "2.96" "text processing"
+.TH LUAOTFLOAD.CONF 5 "2020-02-02" "3.12" "text processing"
.SH NAME
luaotfload.conf \- Luaotfload configuration file
.
@@ -605,7 +605,7 @@
\fBtexdoc luaotfload\fP to display the PDF manual for the \fILuaotfload\fP
package
.IP \(bu 2
-Luaotfload development \fI\%https://github.com/u\-fischer/luaotfload\fP
+Luaotfload development \fI\%https://github.com/latex3/luaotfload\fP
.IP \(bu 2
LuaLaTeX mailing list \fI\%http://tug.org/pipermail/lualatex\-dev/\fP
.IP \(bu 2
@@ -622,8 +622,8 @@
.SH AUTHORS
.sp
\fILuaotfload\fP was developed by the LuaLaTeX dev team
-(\fI\%https://github.com/lualatex/\fP). It is currently maintained by Ulrike Fischer
-and Marcel Krüger at \fI\%https://github.com/u\-fischer/luaotfload\fP
+(\fI\%https://github.com/lualatex/\fP). It is currently maintained by the
+LaTeX Project Team at \fI\%https://github.com/latex3/luaotfload\fP
.sp
This manual page was written by Philipp Gesang <\fI\%phg@phi\-gamma.net\fP>.
.SH COPYRIGHT
Binary files old/texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf and new/texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luaotfload.doc.tlpobj new/tlpkg/tlpobj/luaotfload.doc.tlpobj
--- old/tlpkg/tlpobj/luaotfload.doc.tlpobj 2019-02-28 03:51:15.000000000 +0100
+++ new/tlpkg/tlpobj/luaotfload.doc.tlpobj 2020-02-04 01:55:17.000000000 +0100
@@ -1,8 +1,8 @@
name luaotfload.doc
category Package
-revision 50131
+revision 53652
shortdesc doc files of luaotfload
-docfiles size=208
+docfiles size=254
texmf-dist/doc/luatex/luaotfload/COPYING
texmf-dist/doc/luatex/luaotfload/NEWS
texmf-dist/doc/luatex/luaotfload/README.md
@@ -16,6 +16,12 @@
texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst
texmf-dist/doc/luatex/luaotfload/luaotfload.conf.example
texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst
+ texmf-dist/doc/luatex/luaotfload/scripts-demo.pdf
+ texmf-dist/doc/luatex/luaotfload/scripts-demo.tex
+ texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.pdf
+ texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.tex
+ texmf-dist/doc/luatex/luaotfload/shaper-demo.pdf
+ texmf-dist/doc/luatex/luaotfload/shaper-demo.tex
texmf-dist/doc/man/man1/luaotfload-tool.1
texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf
texmf-dist/doc/man/man5/luaotfload.conf.5
++++++ luaotfload.tar.xz ++++++
++++ 92355 lines of diff (skipped)
++++++ luaotfload_varfonts.dif ++++++
--- /var/tmp/diff_new_pack.6jpmtL/_old 2020-05-29 21:29:53.721313633 +0200
+++ /var/tmp/diff_new_pack.6jpmtL/_new 2020-05-29 21:29:53.725313645 +0200
@@ -47,7 +47,7 @@
if cachepaths == "" then
--- texmf-dist/tex/luatex/luaotfload/fontloader-reference.lua
+++ texmf-dist/tex/luatex/luaotfload/fontloader-reference.lua 2019-05-10 09:32:16.562792353 +0000
-@@ -4314,12 +4314,35 @@ if not caches.namespace or caches.namesp
+@@ -4472,12 +4472,35 @@ if not caches.namespace or caches.namesp
end
do
local cachepaths=kpse.expand_var('$TEXMFCACHE') or ""
++++++ luapackageloader.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luapackageloader/README.md new/doc/luatex/luapackageloader/README.md
--- old/doc/luatex/luapackageloader/README.md 2017-06-06 23:51:05.000000000 +0200
+++ new/doc/luatex/luapackageloader/README.md 2019-12-22 22:55:58.000000000 +0100
@@ -1,6 +1,6 @@
# luapackageloader
-CTAN package to allow LuaTeX to load packages from the default `package.path` and `package.cpath` locations. This could be useful
-to load external Lua modules, including modules installed via [LuaRocks](https://luarocks.org).
+CTAN package to allow LuaTeX to load modules from the default `package.path` and `package.cpath` locations. This could be used
+to load external Lua modules outside the TEXMF tree, including modules installed via [LuaRocks](https://luarocks.org).
## Usage
See the [PDF documentation](luapackageloader.pdf) for details.
Binary files old/doc/luatex/luapackageloader/luapackageloader.pdf and new/doc/luatex/luapackageloader/luapackageloader.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luapackageloader.doc.tlpobj new/tlpkg/tlpobj/luapackageloader.doc.tlpobj
--- old/tlpkg/tlpobj/luapackageloader.doc.tlpobj 2019-02-28 03:51:18.000000000 +0100
+++ new/tlpkg/tlpobj/luapackageloader.doc.tlpobj 2020-04-19 18:10:18.000000000 +0200
@@ -1,6 +1,6 @@
name luapackageloader.doc
category Package
-revision 44865
+revision 54779
shortdesc doc files of luapackageloader
relocated 1
docfiles size=11
++++++ luapackageloader.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luapackageloader/luapackageloader.lua new/tex/luatex/luapackageloader/luapackageloader.lua
--- old/tex/luatex/luapackageloader/luapackageloader.lua 2017-07-22 01:06:28.000000000 +0200
+++ new/tex/luatex/luapackageloader/luapackageloader.lua 2019-12-22 22:55:58.000000000 +0100
@@ -1,7 +1,7 @@
-- Author: Deepak Jois
--- License: http://www.latex-project.org/lppl.txt
--- Date: 2017/05/26
--- Version: 0.1
+-- License: LPPL Version 1.3c or higher http://www.latex-project.org/lppl.txt
+-- Date: 2019/12/21
+-- Version: 0.2
local luapackageloader = {}
-- Cache the current kpse based searchers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luapackageloader/luapackageloader.sty new/tex/luatex/luapackageloader/luapackageloader.sty
--- old/tex/luatex/luapackageloader/luapackageloader.sty 2017-06-06 23:51:05.000000000 +0200
+++ new/tex/luatex/luapackageloader/luapackageloader.sty 2019-12-22 22:55:58.000000000 +0100
@@ -1,15 +1,15 @@
% Author: Deepak Jois
-% License: http://www.latex-project.org/lppl.txt
-% Date: 2017/05/26
-% Version: 0.1
-\def\luapackageloaderpkgdate{2017/05/26}
-\def\luapackageloaderversion{0.1}
+% License: LPPL Version 1.3c or higher http://www.latex-project.org/lppl.txt
+% Date: 2019/12/21
+% Version: 0.2
+\def\luapackageloaderpkgdate{2019/12/21}
+\def\luapackageloaderversion{0.2}
\expandafter\ifx\csname ProvidesPackage\endcsname\relax
\input ifluatex.sty\relax
\else
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{}[\luapackageloaderpkgdate\space v\luapackageloaderversion\space Lua package searchers for LuaTeX]
+ \ProvidesPackage{luapackageloader}[\luapackageloaderpkgdate\space v\luapackageloaderversion\space Lua package searchers for LuaTeX]
\RequirePackage{ifluatex}
\fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luapackageloader.tlpobj new/tlpkg/tlpobj/luapackageloader.tlpobj
--- old/tlpkg/tlpobj/luapackageloader.tlpobj 2019-02-28 03:51:18.000000000 +0100
+++ new/tlpkg/tlpobj/luapackageloader.tlpobj 2020-04-19 18:10:18.000000000 +0200
@@ -1,19 +1,19 @@
name luapackageloader
category Package
-revision 44865
+revision 54779
shortdesc Allow LuaTeX to load external Lua packages
relocated 1
longdesc This package allows LuaTeX to load packages from the default
longdesc package.path and package.cpath locations. This could be useful
longdesc to load external Lua modules, including modules installed via
longdesc LuaRocks. This package requires ifluatex.
+depend iftex
runfiles size=2
RELOC/tex/luatex/luapackageloader/luapackageloader.lua
RELOC/tex/luatex/luapackageloader/luapackageloader.sty
catalogue-contact-bugs https://github.com/deepakjois/luapackageloader/issues
catalogue-contact-repository https://github.com/deepakjois/luapackageloader
catalogue-ctan /macros/luatex/generic/luapackageloader
-catalogue-date 2017-06-07 05:22:03 +0200
catalogue-license lppl1.3c
catalogue-topics luatex lua-supp use-lua
-catalogue-version 0.1
+catalogue-version 0.2
++++++ luatex.doc.tar.xz ++++++
++++ 38926 lines of diff (skipped)
++++++ luatex.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/web2c/texmfcnf.lua new/texmf-dist/web2c/texmfcnf.lua
--- old/texmf-dist/web2c/texmfcnf.lua 2019-02-28 00:33:00.000000000 +0100
+++ new/texmf-dist/web2c/texmfcnf.lua 2020-03-01 23:41:34.000000000 +0100
@@ -45,13 +45,13 @@
-- only used for FONTCONFIG_PATH & TEXMFCACHE in TeX Live
TEXMFSYSVAR = "selfautoparent:texmf-var",
- TEXMFVAR = "home:.texlive2019/texmf-var",
+ TEXMFVAR = "home:.texlive2020/texmf-var",
-- We have only one cache path but there can be more. The first writable one
-- will be chosen but there can be more readable paths.
TEXMFCACHE = "$TEXMFSYSVAR;$TEXMFVAR",
- TEXMFCONFIG = "home:.texlive2019/texmf-config",
+ TEXMFCONFIG = "home:.texlive2020/texmf-config",
-- I don't like this texmf under home and texmf-home would make more
-- sense. One never knows what installers put under texmf anywhere and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luatex.tlpobj new/tlpkg/tlpobj/luatex.tlpobj
--- old/tlpkg/tlpobj/luatex.tlpobj 2019-03-27 02:24:13.000000000 +0100
+++ new/tlpkg/tlpobj/luatex.tlpobj 2020-03-29 03:11:17.000000000 +0200
@@ -1,6 +1,6 @@
name luatex
category TLCore
-revision 50602
+revision 54610
shortdesc The LuaTeX engine
longdesc LuaTeX is an extended version of pdfTeX using Lua as an
longdesc embedded scripting language. The LuaTeX project's main
@@ -19,10 +19,10 @@
depend plain
depend tex-ini-files
depend unicode-data
+depend hyph-utf8
depend luatex.ARCH
-execute AddFormat name=luatex engine=luatex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data
-execute AddFormat name=dviluatex engine=luatex options="dviluatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data
-execute AddFormat name=luajittex engine=luajittex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data
+execute AddFormat name=luatex engine=luatex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8
+execute AddFormat name=dviluatex engine=luatex options="dviluatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8
runfiles size=37
texmf-dist/tex/generic/config/luatex-unicode-letters.tex
texmf-dist/tex/generic/config/luatexiniconfig.tex
@@ -31,6 +31,5 @@
catalogue-contact-home http://luatex.org
catalogue-contact-repository https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/luatexdir
catalogue-contact-support http://lists.tug.org/luatex
-catalogue-date 2018-12-31 06:11:12 +0100
catalogue-license gpl2
catalogue-topics engine
++++++ luatex_cnf.dif ++++++
--- /var/tmp/diff_new_pack.6jpmtL/_old 2020-05-29 21:29:54.309315384 +0200
+++ /var/tmp/diff_new_pack.6jpmtL/_new 2020-05-29 21:29:54.309315384 +0200
@@ -3,7 +3,7 @@
1 file changed, 16 insertions(+), 8 deletions(-)
--- texmf-dist/web2c/texmfcnf.lua
-+++ texmf-dist/web2c/texmfcnf.lua 2019-05-10 09:42:30.695251184 +0000
++++ texmf-dist/web2c/texmfcnf.lua 2020-03-26 12:29:02.097164665 +0000
@@ -42,16 +42,24 @@ return {
-- "selfautoparent:",
-- }
@@ -18,7 +18,7 @@
-- only used for FONTCONFIG_PATH & TEXMFCACHE in TeX Live
- TEXMFSYSVAR = "selfautoparent:texmf-var",
-- TEXMFVAR = "home:.texlive2019/texmf-var",
+- TEXMFVAR = "home:.texlive2020/texmf-var",
+ TEXMFSYSVAR = "/var/lib/texmf",
+ TEXMFVAR = "$TEXMFSYSVAR",
+ HOMECACHE = "home:.cache/texmf/fonts",
@@ -27,7 +27,7 @@
-- will be chosen but there can be more readable paths.
- TEXMFCACHE = "$TEXMFSYSVAR;$TEXMFVAR",
-- TEXMFCONFIG = "home:.texlive2019/texmf-config",
+- TEXMFCONFIG = "home:.texlive2020/texmf-config",
+ TEXMFCACHE = "$TEXMFSYSVAR;$TEXMFVAR;$HOMECACHE",
+ TEXMFCONFIG = "$TEXMFSYSCONFIG",
++++++ luatexbase.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luatexbase.doc.tlpobj new/tlpkg/tlpobj/luatexbase.doc.tlpobj
--- old/tlpkg/tlpobj/luatexbase.doc.tlpobj 2019-02-28 03:52:48.000000000 +0100
+++ new/tlpkg/tlpobj/luatexbase.doc.tlpobj 2019-11-07 18:46:19.000000000 +0100
@@ -1,6 +1,6 @@
name luatexbase.doc
category Package
-revision 38550
+revision 52663
shortdesc doc files of luatexbase
relocated 1
docfiles size=66
++++++ luatexbase.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luatexbase.tlpobj new/tlpkg/tlpobj/luatexbase.tlpobj
--- old/tlpkg/tlpobj/luatexbase.tlpobj 2019-02-28 03:52:48.000000000 +0100
+++ new/tlpkg/tlpobj/luatexbase.tlpobj 2019-11-07 18:46:19.000000000 +0100
@@ -1,6 +1,6 @@
name luatexbase
category Package
-revision 38550
+revision 52663
shortdesc Basic resource management for LuaTeX code
relocated 1
longdesc The LaTeX kernel (LaTeX2e 2015/10/01 onward) builds in support
@@ -11,6 +11,7 @@
longdesc differences. This 'stub' package provides a compatibility layer
longdesc to allow existing packages to upgrade smoothly to the new
longdesc support structure.
+depend ctablestack
runfiles size=11
RELOC/tex/luatex/luatexbase/luatexbase-attr.sty
RELOC/tex/luatex/luatexbase/luatexbase-cctb.sty
++++++ luatexja.doc.tar.xz ++++++
++++ 3664 lines of diff (skipped)
++++++ luatexja.tar.xz ++++++
++++ 13763 lines of diff (skipped)
++++++ luatexko.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luatexko/ChangeLog new/doc/luatex/luatexko/ChangeLog
--- old/doc/luatex/luatexko/ChangeLog 2019-04-06 23:13:13.000000000 +0200
+++ new/doc/luatex/luatexko/ChangeLog 2020-03-20 22:28:12.000000000 +0100
@@ -1,3 +1,75 @@
+2020-03-20 Dohyun Kim <nomos at ktug org>
+
+ Version 2.8
+
+ * luatexko.lua, luatexko.sty:
+ use atbegshi package for dotemph, uline, and ruby
+
+2020-03-14 Dohyun Kim <nomos at ktug org>
+
+ Version 2.7
+
+ * luatexko.lua:
+ use post_linebreak_filter callback;
+ support expansion/protrusion in harf mode
+
+2020-02-17 Dohyun Kim <nomos at ktug org>
+
+ Version 2.6
+
+ * luatexko.lua:
+ discourage font substitution of monospaced ascii punctuations
+
+ * luatexko.sty:
+ use latex's newly introduced \@{rm|sf|tt|default}familyhook;
+ suppress bx-font-not-found warnings and make \bfseries work again
+
+2019-12-01 Dohyun Kim <nomos at ktug org>
+
+ Version 2.5
+
+ * luatexko.lua: start to support luahbtex
+ * luatexko.sty: 2020 expl3 deprecation removals
+
+2019-08-01 Dohyun Kim <nomos at ktug org>
+
+ Version 2.4
+
+ * luatexko.lua: allow linebreak before/after a normal hbox
+ * luatexko.{sty,lua}: moveleft horizontal box inside vertical writing
+
+2019-06-21 Dohyun Kim <nomos at ktug org>
+
+ Version 2.3
+
+ * luatexko.lua: prevent discretionary node after Kana;
+ provide lua functions deactivateall() and reactivateall().
+
+2019-06-07 Dohyun Kim <nomos at ktug org>
+
+ Version 2.2
+
+ * luatexko.sty, luatexko.lua: provide font option `InterCharStretch'
+
+2019-05-25 Dohyun Kim <nomos at ktug org>
+
+ Version 2.1
+
+ * luatexko.sty: give smallest stretch to quite short ruby;
+ allow star option to markoverwith.
+
+
+2019-05-01 Dohyun Kim <nomos at ktug org>
+
+ Version 2.0
+
+ * luatexko-core.sty: removed.
+ * luatexko.lua: totally rewritten.
+ * luatexko.sty: Package option `nofontspec' removed.
+ Font options `CompressPunctuations' `RemoveClassicSpaces'
+ and `InterCharacter' added.
+ `\registerbreakablebefore' and `\registerbreakableafter' added.
+
2019-04-06 Dohyun Kim <nomos at ktug org>
Version 1.24
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luatexko/README new/doc/luatex/luatexko/README
--- old/doc/luatex/luatexko/README 2019-04-06 23:13:13.000000000 +0200
+++ new/doc/luatex/luatexko/README 2020-03-20 22:28:12.000000000 +0100
@@ -1,17 +1,16 @@
-LuaTeX-ko Package version 1.24 (2019/04/06)
+LuaTeX-ko Package version 2.8 (2020/03/20)
===========================================
This is a Lua(La)TeX macro package that supports typesetting Korean
documents including Old Hangul texts. As LuaTeX has opened up access to
almost all the hidden routines of TeX engine, users can obtain more
-beautiful outcome using this package rather than other Hangul macros
+beautiful outcome using this package rather than other Hangul packages
operating on other engines.
-LuaTeX version 0.95+ and luaotfload package version 2.7+ are required for
+LuaTeX version 1.10+ and luaotfload package version 2.96+ are required for
this package to run.
-This package also requires both cjk-ko and xetexko packages for its full
-functionality.
+This package also requires cjk-ko package for its full functionality.
License
@@ -40,7 +39,6 @@
TeXinputs
luatexko.sty -> tex/luatex/luatexko/
- luatexko-core.sty -> tex/luatex/luatexko/
luatexko.lua -> tex/luatex/luatexko/
luatexko-normalize.lua -> tex/luatex/luatexko/
luatexko-uhc2utf8.lua -> tex/luatex/luatexko/
@@ -80,10 +78,6 @@
[hanja]
Load Hanja captions. Also apply other settings as [hangul] option does.
- [nofontspec]
-Prevents loading of fontspec package. Entire document will be typeset
-with Type1 fonts.
-
Hangul Font Commands
--------------------
@@ -114,8 +108,8 @@
\hanjafontspec \newhanjafontfamily \addhanjafontfeature
\fallbackfontspec \newfallbackfontfamily \addfallbackfontfeature
-If any of these CJK fonts are not specified, Nanum Type1 fonts from
-nanumtype1 package will be used for typesetting CJK characters.
+If any of these CJK fonts are not specified, UnBatang/UnDotum TrueType
+fonts will be used for typesetting CJK characters.
Hangul Font Options
@@ -134,13 +128,9 @@
Other User Commands
-------------------
- \luatexuhcinputencoding=<number>
-When <number> is 1 or greater, UHC (aka. Windows CP949) input encoding
-is allowed. <number> 0 restores UTF-8, the default input encoding.
-
\hangulpunctuations=<number>
-When <number> is 1 or greater, latin punctuations will be typeset with
-hangul fonts.
+When <number> is 1 or greater (being default value), latin punctuations
+will be typeset with hangul fonts.
\dotemph{...}
Emphasise Hangul or Hanja by putting dot above.
Binary files old/doc/luatex/luatexko/luatexko-doc.pdf and new/doc/luatex/luatexko/luatexko-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luatexko/luatexko-doc.tex new/doc/luatex/luatexko/luatexko-doc.tex
--- old/doc/luatex/luatexko/luatexko-doc.tex 2019-04-06 23:13:13.000000000 +0200
+++ new/doc/luatex/luatexko/luatexko-doc.tex 2020-03-20 22:28:12.000000000 +0100
@@ -8,468 +8,646 @@
%%
%% public domain
-%\RequirePackage{luatex85}
\documentclass[a4paper]{article}
\usepackage[hmargin=3.8cm]{geometry}
+\usepackage[svgnames]{xcolor}
+\usepackage{luacolor}
\usepackage[hangul]{luatexko}
-\usepackage{luamplib}
+\directlua{
+ local gidoffset = 0x120000
+ local notoserifcjkkr_hb = {
+ [171] = { 0.5, 0 }, % «
+ [187] = { 0, 0.5 }, % »
+ [62253+gidoffset] = { 0.5, 0 }, % (
+ [62254+gidoffset] = { 0, 0.5 }, % )
+ [62255+gidoffset] = { 0, 1 }, % ,
+ [62257+gidoffset] = { 0, 1 }, % .
+ [62259+gidoffset] = { 0, 0.5 }, % :
+ [62260+gidoffset] = { 0, 0.5 }, % ;
+ [62270+gidoffset] = { 1, 0 }, % ‘
+ [62271+gidoffset] = { 0, 1 }, % ’
+ [62273+gidoffset] = { 0.5, 0 }, % “
+ [62274+gidoffset] = { 0, 0.5 }, % ”
+ }
+ fonts.protrusions.setups.notoserifcjk = notoserifcjkkr_hb
+}
+\defaultfontfeatures+{Renderer=OpenType}
+\setmainfont{Latin Modern Roman}[Expansion] % for hb tlig
\setmainhangulfont{Noto Serif CJK KR}[
+ Scale=0.98,
AutoFakeSlant,
Script=Hangul,
Language=Korean,
- LocalForms=On,
UprightFont=* Light,
BoldFont=* Bold,
InterLatinCJK=.125em,
- Expansion, Protrusion,
+ Expansion, Protrusion=notoserifcjk,
]
+\setsansfont{Latin Modern Sans}
\setsanshangulfont{Noto Sans CJK KR}[
+ Scale=0.98,
Script=Hangul,
Language=Korean,
UprightFont=* DemiLight,
BoldFont=* Bold,
InterLatinCJK=.125em,
+ CompressPunctuations,
]
\setmonofont{Inconsolatazi4}[
- Color=191970, % MidnightBlue
+ Scale=0.98,
+ CharRaise=0.125ex,
+ Color=MidnightBlue,
]
\setmonohangulfont{Noto Sans CJK KR}[
+ Scale=0.98,
UprightFont=* DemiLight,
BoldFont=* Bold,
- CharRaise=-.25ex,
- Color=191970, % MidnightBlue
+ CharRaise=-.125ex,
+ Color=MidnightBlue,
+]
+\setmathhangulfont{Noto Sans CJK KR}[
+ Script=Hangul,
+ Language=Korean,
+ SizeFeatures={
+ {Size=-6, Font=* Medium},
+ {Size=6-9, Font=* Regular},
+ {Size=9-, Font=* DemiLight},
+ },
+]
+\newhangulfontfamily\verticalhangulfont{Noto Sans CJK KR}[
+ Renderer=Node,
+ Script=Hangul,
+ Language=Korean,
+ UprightFont=* DemiLight,
+ BoldFont=* Bold,
+ InterLatinCJK=.125em,
+ Vertical=Alternates,
+ RawFeature=vertical,
+ CompressPunctuations,
+ InterCharStretch=1pt,
+ CharRaise=3.6pt,
+ CharacterWidth=Full,
+]
+\newhangulfontface\rubyfont{Noto Serif CJK KR Medium}[
+ Script=Hangul,
+ Language=Korean,
]
\usepackage{hologo}
\def\luatex{\hologo{LuaTeX}}
-\def\MP{\hologo{METAPOST}}
\def\XeTeX{\hologo{XeTeX}}
-\usepackage[pdfencoding=auto,bookmarksnumbered,hidelinks]{hyperref}
+\usepackage[hidelinks]{hyperref}
\edef\verbatim{\unexpanded\expandafter{\verbatim\linespread{1.1}\selectfont}}
\edef\itemize{\unexpanded\expandafter{\itemize\small}}
-\catcode`|=13 \def|{\verb|\let\\=\textbackslash} %|
+\catcode`|=13 \protected\def|{\verb|\let\\=\textbackslash}
+\def\nohyphen{\language\csname l@nohyphenation\endcsname}
+\protected\def\cs#1{\texttt{\nohyphen \textbackslash\detokenize{#1}}}
+\protected\def\pkgkwd#1#{\leavevmode
+ \ifx\relax#1\relax \expandafter\luatexkopkgkwd
+ \else \expandafter\luatexkopkgkwdX \fi}
+\def\luatexkopkgkwd#1{\texttt{\nohyphen \string#1}\luatexkopkgkwdX{#1}}
+\def\luatexkopkgkwdX#1{\marginpar{%
+ \hfuzz\maxdimen \texttt{\nohyphen \footnotesize \string#1}}}
\def\logoko{\textsf{k}\kern-.0625em\textit{o}}
\def\luatexko{\luatex-\logoko}
\def\texlive{\TeX\ Live}
\def\kotex{\logoko\kern-.1ex .\kern-.1667em \TeX}
-\edef\section#1{\unexpanded\expandafter{\section{\empty}\vskip-5pt\hrule\nobreak\vskip5pt}}
\def\hemph#1{\textsf{\bfseries #1}}
-\def\cs#1{\texttt{\textbackslash\detokenize{#1}}}
\def\ldots{$\dots$}
-\registerpunctuations{`-}
-\widowpenalty10000 \clubpenalty10000
-\automatichyphenmode=1 % for emdash in tl2019 pretest
\begin{document}
\title{\luatexko\ 간단 매뉴얼}
\author{Dohyun Kim \normalsize |<nomos at ktug org>| \and
Soojin Nam \normalsize |<jsunam at gmail com>| \and
\normalsize <\url{http://github.com/dohyunkim/luatexko}>}
-\date{Version 1.24\quad 2019/04/06}
+\date{Version 2.8\quad 2020/03/20}
\maketitle
\begin{quote}\small
For a summary introduction in English, please see |README| file.
-\begin{itemize}\linespread{1.1}\selectfont
- \item[v1.0] ------
- \item \hyperref[sec:loading]{플레인텍에서도 luatexko.sty을 불러야 한다.}
- \item \hyperref[sec:fontoption]{글꼴 옵션값을 |<dimen>|으로 지시한다.}
- \item \hyperref[sec:metapost]{\MP\ 코드를 넣으려면 luamplib 패키지를
- 불러야 한다.}
- \item[v1.3] ------
- \item \hyperref[sec:fontcmds]{fallbackfont 계열의 명령이 추가되었다.}
- \item \hyperref[sec:fontswitch]{\cs{hangulpunctuations} 선언 추가,
- |[QuoteRaise]| 옵션 제거}
- \item \hyperref[sec:autojosa]{\cs{josaignoreparens=1}이 선언되면
- 자동조사 결정시 괄호 부분을 무시한다.}
- \item[v1.5] ------
- \item \hyperref[sec:verttype]{세로쓰기를 지원하기 위한 실험적 코드가
- 들어갔다.}
- \item \hyperref[sec:actualtext]{\cs{actualtext} 명령 추가}
- \item \hyperref[sec:fontswitch]{한글·한자 글꼴의 지정이 없으면
- 나눔 Type1을 이용한다.}
- \item \hyperref[sec:packageopt]{패키지 옵션 |[nofontspec]| 추가}
- \item[v1.6] ------
- \item \hyperref[sec:fontoption]{글꼴 옵션 |[NoEmbedding]| 추가}
- \item \hyperref[sec:fontcmds]{main/sans hangul/hanja/fallback 폰트의
- 디폴트 옵션으로 |[Ligatures=TeX]|이 주어진다.}
- \item[v1.7] ------
- \item 패키지 옵션 |[unfonts]|를 더는 지원하지 않는다. 이 옵션을 사용한
- 기존 문서는 기본 글꼴인 나눔 Type1으로 식자될 것이다.
- \item[v1.8] ------
- \item \hyperref[sec:ruby]{\cs{xxruby} 명령 추가}
- \item[v1.9] ------
- \item \hyperref[sec:verttype]{|horizontal| 환경 추가}
- \item[v1.22] ------
- \item \hyperref[sec:fontswitch]{\cs{hangulbyhangulfont} 명령 추가}
+ \begin{itemize}\linespread{1.1}\selectfont
+ \item[v2.6] ------
+ \item \hyperref[sec:fontswitch]{\cs{hangulbyhangulfont} 및
+ \cs{hanjabyhanjafont}가 지역적 효력만 가짐}
+ \item[v2.5] ------
+ \item LuaHB\TeX\ 지원 (세로쓰기 제외)
+ \item[v2.2] ------
+ \item \hyperref[sec:fontoption]{글꼴옵션 |InterCharStretch| 제공}
+ \item[v2.0] ------
+ \item \hyperref[sec:mathhangul]{수식 한글 글꼴을 자동으로 잡아주지 않음}
+ \item \cs{actualtext} 명령 작동 않음. 대신, 옛한글 텍스트 추출 자동 지원%
+ \footnote{%
+ PDF 리더 어플리케이션이 ActualText 기능을 지원해야 가능하다.
+ 어도비 리더는 확실히 가능할 것이다. }
+ \item \hyperref[sec:fontoption]{글꼴옵션 |CompressPunctuations|,
+ |RemoveClassicSpaces|, |InterCharacter| 추가}
+ \item \hyperref[sec:break]{\cs{registerbreakableafter},
+ \cs{registerbreakablebefore} 명령 추가}
\end{itemize}
\end{quote}
\smallskip
-\section{}
-\hemph{\texlive\ 2016 이상}{\small (\luatex\ v0.95 이상)}을 사용해야 한다.
-아직 \luatex은 베타 상태로 개발 중에 있으므로 안정적인 동작을 보장하지 않는다.
-
-\section{}\label{sec:loading}
-\luatexko\ 로드하기: \cs{usepackage{luatexko}} 혹은 \cs{usepackage{kotex}}.
-플레인텍에서는 \cs{input luatexko.sty} 혹은 \cs{input kotex.sty}.
+\section{부르기}\label{sec:loading}
+
+\hemph{\texlive\ 2020 이상}{ \small (\luatex\ v1.12 이상)}을 사용해야 한다.
+
+\luatexko\ 부르기: \cs{usepackage{luatexko}} 혹은 \cs{usepackage{kotex}}.%
+\footnote{%
+ 플레인텍에서는 \cs{input luatexko.sty} 혹은 \cs{input kotex.sty}. }
+
입력은 원칙적으로 UTF-8으로 한다.
BOM (Byte Order Mark)은 있어도 좋고 없어도 좋다.
CP949 인코딩에 관해서는 제\ref{sec:uhcencoding}절 참조.
-\section{}\label{sec:packageopt}
-패키지 옵션으로 |[hangul]|과 |[hanja]|가 제공된다. 행간격 조정이 행해지며
-장 제목이나 표·그림 캡션 따위가 한글 또는 한자 방식으로 표시된다. 다만
+\section{패키지 옵션}\label{sec:packageopt}
+
+패키지 옵션으로 \pkgkwd{hangul}과 \pkgkwd{hanja}가 제공된다.%
+\footnote{%
+ |[nofontspec]| 옵션은 v2.0부터 더는 제공되지 않는다. }
+행간격 조정이 행해지며
+장 제목이나 표·그림 캡션 따위가 한글 또는 한자 방식으로 표시된다.
장(chapter) 제목과 편(part) 제목에만 ``제(第)''가 붙어 ``제~1 편''
``제~3 장''과 같은 방식으로 표시되며 절 제목 이하에는 붙지 않는다.
-|[nofontspec]| 옵션을 주면 fontspec을 부르지 않는다.
-따라서 아래 \ref{sec:fontcmds}, \ref{sec:fontswitch}, \ref{sec:fontoption},
-\ref{sec:verttype}, \ref{sec:mathhangul}절의 유니코드 한국어 글꼴 설정
-명령들도 사용할 수 없다.
-
-\section{}\label{sec:fontcmds}
-\luatexko를 로드하면 fontspec 패키지를 자동으로 불러온다. 글꼴 설정에
-대해서는 fontspec 문서를 참조하라.
+\section{글꼴명령}\label{sec:fontcmds}
-한국어 글꼴을 위해 새로 마련한 명령은 다음과 같다.
+\luatexko를 부르면 fontspec 패키지도 자동 불러온다. 글꼴 설정은
+fontspec 문서 참조.
+
+한국어 글꼴을 위해 새로 마련한 명령은 다음과 같다.%
+\pkgkwd*{\setmainhangulfont}%
+\pkgkwd*{\setsanshangulfont}%
+\pkgkwd*{\setmonohangulfont}%
+\pkgkwd*{\newhangulfontfamily}%
+\pkgkwd*{\newhangulfontface}%
+\pkgkwd*{\addhangulfontfeature}%
+\pkgkwd*{\hangulfontspec}
+첫 두 줄, 즉 main/sans 글꼴들에는 |Ligatures=TeX| 옵션이 자동으로 주어진다.%
+\footnote{%
+ \cs{adhochangulfont} \cs{adhochanjafont} \cs{addhocfallbackfont}는
+ 마지막 줄 명령들의 다른 이름들이다. }\,%
+\footnote{%
+ 플레인텍에서 한글 글꼴 설정은 다음과 같이 한다:\par
+ \leftskip=3em\noindent
+ \cs{hangulfont=UnDotum\relax}\\
+ \cs{hanjafont=UnDotum at 14pt}\\
+ \cs{fallbackfont=HanaMinB at 12pt} }
\begin{verbatim}
\setmainhangulfont \setmainhanjafont \setmainfallbackfont
\setsanshangulfont \setsanshanjafont \setsansfallbackfont
\setmonohangulfont \setmonohanjafont \setmonofallbackfont
\newhangulfontfamily \newhanjafontfamily \newfallbackfontfamily
+ \newhangulfontface \newhanjafontface \newfallbackfontface
\addhangulfontfeature \addhanjafontfeature \addfallbackfontfeature
\hangulfontspec \hanjafontspec \fallbackfontspec
\end{verbatim}
-\cs{adhochangulfont} \cs{adhochanjafont} \cs{addhocfallbackfont}는
-마지막 줄 명령들의 다른 이름들이다.
-첫 두 줄, 즉 main/sans hangul/hanja/fallback 글꼴에는
-|Ligatures=TeX| 옵션이 자동으로 주어진다.
-\begin{itemize}\item[]
-플레인텍에서 한글 글꼴 설정은 영문 글꼴 지정하는 방식과 거의 같다.
-\begin{verbatim}
- \hangulfont=UnDotum\relax
- \hanjafont=UnDotum at 14pt
- \fallbackfont=HanaMinB at 12pt
- \hangulfont=UnDotum scaled 2000
- \hanjafont="HCR Batang LVT"\relax
- \hangulfont={HCR Batang LVT:script=hang;+dlig} at 12pt
-\end{verbatim}
-\end{itemize}
-\section{}\label{sec:fontswitch}
+\section{글꼴 대체}\label{sec:fontswitch}
+
원칙적으로 \luatexko는 지시된 글자가 영문폰트에 없으면 한글폰트에서,
한글폰트에도 없으면 한자폰트에서, 한자폰트에도 없으면 fallback
-폰트에서 글자를 찾아 찍는다. 세 가지 \hemph{모두 지정되지 않았다면 나눔 Type1
-폰트를} 이용한다. 기존 \kotex과는 글꼴 대체 방식이 다르므로 주의해야 한다.
-
-하지만 \cs{hangulbyhangulfont=1}을 선언하면 한글은 우선 한글폰트로
-식자한다. 또한
-\cs{hanjabyhanjafont=1}을 선언하면 한자는 우선 한자폰트로
-식자한다. 둘 다 |0|을 선언하면 원래 방식으로 되돌아간다. 이 명령들은 문단
-중간에서 사용하지 않도록 주의해야 한다. 문단 중에 사용되었다면
-그 문단의 처음부터 효력이 발생한다.
-
-\cs{hangulpunctuations=1}을 선언하면 영문 \hemph{문장부호들을 한글 폰트로}
-식자한다. |0|을 지시하면 원래 상태로 되돌린다.
-|[hangul]| 옵션을 주면 \cs{hangulpunctuations=1}이 자동으로
-선언된다.\footnote{나눔 Type1 상태면 그러하지 아니하다.}
-이 선언에 의해 영향 받는 문장부호들을 다음처럼 지정할 수 있다.
+폰트에서 글자를 찾아 찍는다.
+한글폰트가 지정되지 않았고 기본폰트에 한글 글리프가 없다면
+\hemph{은바탕, 은돋움 트루타입}을 자동으로 불러온다.%
+\footnote{%
+ 은글꼴 트루타입은 \texlive에 포함되어 있다. }
+
+하지만 \pkgkwd{\hangulbyhangulfont}|=1|을 선언하면 한글은 우선 한글폰트로
+식자한다. 또한 \pkgkwd{\hanjabyhanjafont}|=1|을 선언하면 한자는 우선 한자폰트로
+식자한다. 두 경우 모두 |0|을 선언하면 원래 방식으로 되돌아간다.
+문단 중간에서 사용해도 동작한다. \sout{그러나 루아코드가 실행되므로
+텍의 그룹에 의해 영향받지 않는 전역적 효과를 가진다.}
+
+일정한 영문 문장부호들은 한글 폰트로 식자된다.
+즉, \pkgkwd{\hangulpunctuations}|=1|이 기본으로 작동하고,
+|0|을 지시해야 이 기능이 비로소 꺼진다.
+verbatim 코드를 식자할 때는 이 기능이 작동하지 않으며,%
+\footnote{%
+ 정확히 말하자면 |\\language=\\l@nohyphenation|, 즉 하이프네이션이
+ 허용 안 되는 상황에서는 작동하지 않는다.
+ 부연하건대, |\\language=\\l@nohyphenation| 상황에서 작동하지 않는
+ 그밖의 기능은 다음과 같다: 줄바꿈 허용, InterCharacter, InterHangul,
+ InterLatinCJK, CompressPunctuations, RemoveClassicSpaces,
+ 한글^^b7한자 폰트 문자 다음의 공백 크기 조정 등. }
+문장부호가 고정폭 글꼴일 때에도 작동하지 않는다.%
+\footnote{%
+ 또한 플레인텍에서는 영문글꼴을 트루타입/오픈타입으로 지정해야만 작동한다. }
+영향 받는 문장부호들의 기본값은 다음과 같다:
+\begin{verbatim}
+ [0x21] ! [0x27] ' [0x28] ( [0x29] )
+ [0x2C] , [0x2E] . [0x3A] : [0x3B] ;
+ [0x3F] ? [0x60] ` [0xB7] · [0x2014] —
+ [0x2015] ― [0x2018] ‘ [0x2019] ’ [0x201C] “
+ [0x201D] ” [0x2026] … [0x203B] ※
+\end{verbatim}
+다음과 같은 명령으로 이 목록에 문자를 추가하거나 제거할 수 있다.%
+\pkgkwd*{\registerpunctuations}%
+\pkgkwd*{\unregisterpunctuations}
인자는 콤마로 분리된 숫자 형식으로서 유니코드 코드포인트를 뜻한다.
\begin{verbatim}
\registerpunctuations{45, "2D, `-}
\unregisterpunctuations{"2D, "2015}
\end{verbatim}
-이들 두 명령은 항상 전역적 효과를 가진다.
+이상 문장부호 관련 명령들은 문단 중간에서도 쓸 수 있지만, 전역적 효과를 가진다.
+\section{줄바꿈 허용}\label{sec:break}
-\section{}\label{sec:fontoption}
-fontspec의 글꼴 옵션 외에 \luatexko가 따로 제공하는 것들이
-있다.\footnote{ 옛한글 식자를 위해서는
- |[Script=Hangul]| 옵션을 사용하는 것으로 충분하다.
- 플레인텍이라면 |script=hang|.}
+어떤 글자 앞이나 뒤에서 줄바꿈을 허용하고 싶을 때 아래와 같이 명령을 준다.%
+\pkgkwd*{\registerbreakableafter}%
+\pkgkwd*{\registerbreakablebefore}
+이들 명령을 문단 중간에서 사용하면 문단의 처음부터 전역적 효력을 가진다.
+\begin{verbatim}
+\registerbreakableafter{"2460, "2461}
+\registerbreakablebefore{"2460, "2461}
+\end{verbatim}
+\luatexko는 다분히 보수적으로 줄바꿈을 허용하고 있다.
+예시한 유니코드는 `①'과 `②'인데 기본적으로
+이들 문자 앞뒤 모두에서 줄바꿈이 되지 않는다.
+
+\section{글꼴 옵션}\label{sec:fontoption}
+
+fontspec의 글꼴 옵션 외에 \luatexko가 따로 제공하는 것들이 있다.%
+\footnote{%
+ 옛한글 식자를 위해서는 적어도 |Script=Hangul|
+ (플레인텍이라면 |script=hang|)을 주어야 한다.
+ 옛한글이 아니더라도 한글을 쓴다면 이 옵션과 |Language=Korean|
+ (플레인텍은 |language=KOR|)을 주는 것이 좋다. }\,%
+\footnote{%
+ |PunctRaise|, |NoEmbedding| 옵션은 v2.0부터 더는 제공하지 않는다. }
+
+\def\hunmintxt{%
+ \noindent\textbf{%
+ 世솅〮宗조ᇰ御ᅌᅥᆼ〮製졩〮訓훈〮民민正져ᇰ〮音ᅙᅳᆷ
+ }\par
+ 製졩〮ᄂᆞᆫ〮글〮지ᅀᅳᆯ〮씨〮니〮御ᅌᅥᆼ〮製졩〮ᄂᆞᆫ〮님〯금〮지〯ᅀᅳ샨〮그〮리라〮%
+ 訓훈〮은〮ᄀᆞᄅᆞ칠〮씨〮오〮民민ᄋᆞᆫ〮百ᄇᆡᆨ〮姓셔ᇰ〮이〮오〮音ᅙᅳᆷ은〮소리〮니〮%
+ 訓훈〮民민正져ᇰ〮音ᅙᅳᆷ은〮百ᄇᆡᆨ〮姓셔ᇰ〮ᄀᆞᄅᆞ치〮시논〮正져ᇰ〮ᄒᆞᆫ소리〮라〮
+ \par\medskip
+ \noindent\textbf{%
+ 國귁〮之징語ᅌᅥᆼ〯音ᅙᅳᆷ이〮
+ }\par
+ 國귁〮ᄋᆞᆫ〮나라〮히라〮之징ᄂᆞᆫ〮입〮겨〮지라〮語ᅌᅥᆼ〯는말〯ᄊᆞ미라〮
+ \par
+ 나랏〮말〯ᄊᆞ미〮
+ \par\medskip
+ \noindent\textbf{%
+ 異잉〮乎ᅘᅩᆼ中듀ᇰ國귁〮ᄒᆞ〮야〮
+ }\par
+ 異잉〮ᄂᆞᆫ〮다ᄅᆞᆯ씨라乎ᅘᅩᆼᄂᆞᆫ〮아〯모〮그ᅌᅦᄒᆞ〮논겨〮체ᄡᅳ〮는字ᄍᆞᆼ〮ㅣ라〮%
+ 中듀ᇰ國귁〮ᄋᆞᆫ〮皇ᅘᅪᇰ帝뎽〮겨〯신나라〮히니〮우〮리〮나랏〮常쌰ᇰ談땀애〮%
+ 江가ᇰ南남이〮라〮ᄒᆞ〮ᄂᆞ〮니라〮
+ \par
+ 中듀ᇰ國귁〮에〮달아〮
+}
\begin{figure}
\fboxsep=1em
- \fbox{\parbox{\dimexpr\linewidth-2.1em\relax}{%
- \sffamily \leftskip2.5cm
-뎨 가ᄂᆞᆫ 뎌 각시 본 듯도 ᄒᆞᆫ뎌이고.\\
-天텬上상白ᄇᆡᆨ玉옥京경을 엇디ᄒᆞ야 離니別별ᄒᆞ고\\
-ᄒᆡ 다 져믄 날의 눌을 보라 가시ᄂᆞᆫ고
-
-\medskip
-
-어와 네여이고 내 ᄉᆞ셜 드러보오.\\
-내 얼굴 이 거동이 님 괴얌즉 ᄒᆞᆫ가마ᄂᆞᆫ\\
-엇딘디 날 보시고 네로다 녀기실ᄉᆡ\\
-나도 님을 미더 군 ᄠᅥ디 전혀 업서\\
-이ᄅᆡ야 교ᄐᆡ야 어ᄌᆞ러이 구돗ᄯᅥᆫ디\\
-반기시ᄂᆞᆫ ᄂᆞᆺ비치 녜와 엇디 다ᄅᆞ신고.%\\
-%누어 ᄉᆡᆼ각ᄒᆞ고 니러 안자 혜여ᄒᆞ니\\
-%내 몸의 지은 죄 뫼ᄀᆞ티 ᄡᅡ혀시니\\
-%하ᄂᆞᆯ히라 원망ᄒᆞ고 사ᄅᆞᆷ이라 허믈ᄒᆞ랴\\
-%셜워 플텨 혜니 造조物믈의 타시로다.
-}}
-\caption{옛한글 조판 보기}\label{fig:yethangul}
+ \fbox{\parbox{\dimexpr\linewidth-2.1em\relax}{\sffamily
+ \parindent1em
+ \hunmintxt
+ }}
+ \caption{옛한글 조판 보기}\label{fig:yethangul}
\end{figure}
-그러나 \cs{defaulthangulfontfeatures} 따위 명령은 따로 구현돼 있지 않으며,
-설혹 사용하더라도 fontspec의 \cs{defaultfontfeatures}와 같은 효과를 가진다.
-다시 말해 한글 폰트 옵션과 라틴 폰트 옵션에 차이는 없다.
-
\begin{description}
- \item[InterHangul] {\addhangulfontfeature{InterHangul=.5ex}한글 글자
- 사이의 자간}. 아래는 $-0.04$em 만큼 한글
- 자간을 지시한다. 플레인텍에서는 |interhangul|.
+ \item[InterHangul] \pkgkwd*{InterHangul}%
+ {\addhangulfontfeature{InterHangul=.5ex}한글 글자
+ 사이의 자간}. 아래는 $-0.04$em 만큼 한글 자간을 지시한다.%
+ \footnote{%
+ 플레인텍에서는 |interhangul=<dimen>|. }
\begin{verbatim}
[InterHangul=-0.04em]
\end{verbatim}
-\item[InterLatinCJK] 한글 또는 한자와 라틴 문자 사이의 자간을
- 설정한다. 플레인텍에서는 |interlatincjk|.
+\item[InterLatinCJK] \pkgkwd*{InterLatinCJK}%
+ 한글 또는 한자와 Latin문자 사이의 자간을 설정한다.%
+ \footnote{%
+ 플레인텍에서는 |interlatincjk=<dimen>|. }
+ 한글^^b7한자 다음에 라틴 문자가 오는 경우 원래는 줄바꿈이 되지 않지만
+ 이 옵션을 주면 줄바꿈이 가능해진다.
\begin{verbatim}
- [InterLatinCJK=0.125em]
+ [InterLatinCJK=0.25em]
\end{verbatim}
-\item[CharRaise] 글자의 세로 위치를
- {\addhangulfontfeature{CharRaise=.3em} 조절}할 수 있는 기능이다.
- 이로써 주변에 식자되는 다른 글꼴과 조화를 이루게 한다.
- 따라서 영문폰트에는 작동하지 않는다.
- 플레인텍에서는 |charraise|.
+\item[InterCharacter] \pkgkwd*{InterCharacter}%
+ CJK 글자들 사이의 자간을 지시한다.%
+ \footnote{%
+ 플레인텍에서는 |intercharacter=<dimen>|. }
+ fontspec의 |LetterSpace| 옵션과 기능이 유사하지만, 옛한글을 깨뜨리는 등의
+ 오작동을 하지 않는다. 전술한 자간 옵션들보다 후순위로 동작한다.
\begin{verbatim}
- [CharRaise=0.1em]
+ [InterCharacter=.125em]
\end{verbatim}
-\item[PunctRaise] 한글 또는 한자 다음에 라틴 구두점---마침표에
- 한한다---이 왔을 때 그 세로 위치를 조절할 수 있다.
- \cs{hangulpunctuations}로 인해 거의 쓸 일이 없게 되었다.
- 플레인텍에서는 |punctraise|.
+\item[InterCharStretch] \pkgkwd*{InterCharStretch}%
+ CJK 글자간 가변공백{\small(글루)}의 stretch 값을 지시한다.%
+ \footnote{%
+ 플레인텍에서는 |intercharstretch=<dimen>|. }
\begin{verbatim}
- [PunctRaise=-0.125em]
+ [InterCharStretch=0.5pt]
\end{verbatim}
-\item[NoEmbedding] |NoEmbed|와 동의어.
- 폰트를 내장하지 않으므로 결과물의 크기가 대폭 줄어든다.
- 하지만 대외적 배포에 적합하지 않음에 유의.\footnote{%
- Adobe Reader에 번들된 폰트를 쓴다면 대외적 배포도 대체로 무난하다.}
- 플레인텍에서는 |embedding=no|.
-\begin{verbatim}
- [NoEmbedding]
-\end{verbatim}
-
-\item[Protrusion] 특정 글자가 행 끌에 왔을 때 판면 바깥으로 끌어내는
- 기능이다. Lua\LaTeX의 기본값은 구두점들만 완전히 글자내밀기 한다. 즉
- hanging punctuation이 작동한다.
-\begin{verbatim}
- [Protrusion]
-\end{verbatim}
- 이는 |Protrusion=default|와 같은 뜻이다.
- 플레인텍에서는 |protrusion=default|.
- 마이크로타입에 관심 있으면 자신만의 설정을 만들어 지정할 수 있다.\footnote{%
- default 설정을 고치는 방법은 이를테면 다음과 같다:\par
- \cs{directlua{ fonts.protrusions.setups.default[0x201C] = { 1, 0 } }}
- }
-
-\item[Expansion] 판면의 균일한 조판을 위해 글자들을 미세하게 늘이거나
- 줄이는 기능이다.
-\begin{verbatim}
- [Expansion]
-\end{verbatim}
- 이는 |Expansion=default|와 마찬가지 뜻이다.
- 플레인텍에서는 |expansion=default|.
+\item[CharRaise] \pkgkwd*{CharRaise}%
+ 글자의 세로 위치를
+ {\addhangulfontfeature{CharRaise=.3em} 조절}할 수 있는 기능이다.
+ 이로써 주변에 식자되는 다른 글꼴과 조화를 이루게 한다.%
+ \footnote{%
+ 플레인텍에서는 |charraise=<dimen>|. }
+\begin{verbatim}
+ [CharRaise=2pt]
+\end{verbatim}
+ 세로쓰기에서는 모든 글자들을 지정한 값만큼 오른쪽으로 이동시킨다.
+ 세로쓰기에서 이 옵션 값을 고정길이{\small(가령 |pt| 단위)}로 주면
+ 크기가 다른 폰트들간에 중앙정렬이 이루어진다.
+ 세로쓰기에서 이 옵션을 주지 않으면 |0.5ex|가 기본값으로 동작한다.
+
+\item[RemoveClassicSpaces] \pkgkwd*{RemoveClassicSpaces}%
+ 고문헌 조판시에 CJK 글자들 사이의 공백을 없애준다.%
+ \footnote{%
+ 플레인텍에서는 |+removeclassicspaces|. }
+
+\item[CompressPunctuations] \pkgkwd*{CompressPunctuations}%
+ CJK 구두점 {\small (낫표 따위)}의 글자폭을
+ 반각으로 만든다. v2.0부터는 사용자가 지시하지 않는 한 자동으로 글자폭을
+ 줄여주지 않는다.%
+ \footnote{%
+ 플레인텍에서는 |+compresspunctuations|. }
+ 이 옵션은 |CharacterWidth=AlternateHalf| 내지 {\small (세로쓰기의 경우)}
+ |Vertical=HalfMetrics|와 거의 같은 기능을 한다.%
+ \footnote{%
+ 플레인텍에서는 각각 |+halt| 및 |+vhal|이다. 이들과 완전 동일하진
+ 않다. 가령 U+3002 (\char"3002) 처리의 경우.}
+
+\item[Protrusion] \pkgkwd*{Protrusion}%
+ 특정 글자가 행 끝에 왔을 때 판면 바깥으로 끌어내는
+ 기능이다. \luatex은 기본값으로 온점 반점 등을 완전 글자내밀기 한다.
+ |Protrusion|은 |Protrusion=default|와 같은 뜻이다.%
+ \footnote{%
+ 플레인텍에서는 |protrusion=default|. }
+ 자신만의 설정을 만들어 지정할 수 있다.%
+ \footnote{%
+ default 설정을 고치는 방법은 이를테면 다음과 같다
+ (이 매뉴얼의 소스 앞부분을 참고하라):\par
+ \leftskip=3em\noindent
+ \cs{directlua{ fonts.protrusions.setups.default[0x201C] = { 1, 0 } }} }
+
+\item[Expansion] \pkgkwd*{Expansion}%
+ 판면의 균일한 조판을 위해 글자들을 미세하게 늘이거나
+ 줄이는 기능이다. |Expansion|은 |Expansion=default|와 마찬가지 뜻이다.%
+ \footnote{%
+ 플레인텍에서는 |expansion=default|. }
\end{description}
-\section{}
-고문헌·일본어·중국어 조판을 위해 japanese, Schinese, Tchinese 환경을
-제공한다. chinese는 Schinese의 다른 이름이다. korean 환경도
-마련했는데 이들 환경 안에서 잠깐 한국어를 조판하는 데 사용한다.
-일반적으로 우리 고문헌 조판에는 japanese 환경을 이용하면 무난하다.
-그림~\ref{fig:ancientdoc} 참조.
-플레인텍에서는 {\small(문서 전체에 적용하지 않는다면 그룹을 열고)}
-\cs{chinese} \cs{japanese} 따위를 사용한다.
+\section{고문헌}\label{sec:classic}
-\begin{figure}
- \centering
- \fbox{\parbox{37em}{\japanese\sffamily
-子曰:「學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,
-不亦君子乎?」\par
-有子曰:「其爲人也孝弟,而好犯上者,鮮矣!不好犯上,而好作亂者,未之有也!
-君子務本,本立而道生;孝弟也者,其爲仁之本與?」\par
+\def\analectstext{%
+子曰:「學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?」\par
+有子曰:「其爲人也孝弟,而好犯上者,鮮矣!不好犯上,而好作亂者,未之有也!君子務本,本立而道生;孝弟也者,其爲仁之本與?」\par
子曰:「巧言令色,鮮矣仁!」\par
-曾子曰:「吾日三省吾身:爲人謀,而不忠乎?與朋友交,而不信乎?傳,
-不習乎?」\par
+曾子曰:「吾日三省吾身:爲人謀,而不忠乎?與朋友交,而不信乎?傳,不習乎?」\par
子曰:「道千乘之國,敬事而信,節用而愛人,使民以時。」\par
子曰:「弟子入則孝,出則弟;謹而信,汎愛衆;而親仁,行有餘力,則以學文。」
+}
+\begin{figure}
+ \centering
+ \fbox{\parbox{37em}{\typesetclassic\sffamily
+ \analectstext
}}
-\caption{고문헌 조판 보기. japanese 환경을 이용했다.}\label{fig:ancientdoc}
+ \caption{고문헌 조판 보기. typesetclassic 환경을 이용했다.
+ 글꼴에 |CompressPunctuations| 옵션을 주었다.
+ }\label{fig:gomun}
\end{figure}
-일본어·중국어라도 글꼴 설정은 \cs{newhangulfontfamily}
-\cs{newhanjafontfamily} 따위를 이용한다.
+고문헌 조판을 위해 \pkgkwd{typesetclassic} 환경을 제공한다.%
+\footnote{%
+ 플레인텍에서는 (문서 전체에 적용하지 않는다면 그룹 안에서)
+ \cs{typesetclassic}을 사용한다.
+ |japanese|, |chinese|, |Schinese|, |Tchinese|, |korean| 따위의 환경은
+ 지난 버전과의 호환성을 위해 당분간 제공되고 있을 뿐이다. }
+그림~\ref{fig:gomun} 참조.
+
+v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나오더라도 자동으로
+간격을 잡아주지 않으므로 이런 경우 사용자가 |InterLatinCJK| 옵션을
+지정해야 한다.
+또한 불필요한 공백이 오더라도 자동으로 제거해주지 않으므로 이런 경우
+사용자가 |RemoveClassicSpaces| 옵션을 주어야 한다.
+
+\pkgkwd{typesetmodern} 환경은 고문헌 조판 중에 잠깐 현대 한국어를 조판하는 데
+사용한다.%
+\footnote{%
+ 플레인텍에서는 (문서 전체에 적용하지 않는다면 그룹 안에서)
+ \cs{typesetmodern}을 사용한다. }
-\luatexko가 글자 사이에 삽입하는 미세간격을 사용자가 영(zero)으로
-강제하기 위해선 \cs{inhibitglue} 명령을 이용한다.
-대체로 일본어·중국어 환경에서만 문제된다.
+고문헌 조판 중 \luatexko가 글자 사이에 삽입하는 미세간격을 사용자가
+영{\small(zero)}으로 강제하기 위해선 \pkgkwd{\inhibitglue} 명령을 이용한다.
+
+\section{세로쓰기}\label{sec:verttype}
-\section{}\label{sec:verttype}
세로쓰기는 폰트의 고급 오픈타입 속성을 이용하므로 폰트가 이를 지원해야
-가능한 일이다. 폰트에 |Vertical=RotatedGlyphs| 옵션을 준다. 이는
-플레인텍에서 |vertical;+vrt2| 옵션을 주는 것과 같다.\footnote{|vmtx| 정보를
- 가지고 있지 않은 글꼴은 세로쓰기에 적합치 않은 글꼴이다.
- |otfinfo -t <파일>| 명령으로 글꼴에 들어있는 테이블 정보를 알 수 있다.}
-
-문서의 일부를 세로쓰기하려면 \cs{begin{vertical}{<dimen>}} \ldots\ \cs{end{vertical}}
-환경을 이용하라. |<dimen>|으로 세로쓰기 박스의 높이를 지시한다.
-그림~\ref{fig:vertical} 참조.
-플레인텍에서는 \cs{vertical{<dimen>}} \ldots\ \cs{endvertical}.
+가능한 일이다. 폰트에 |Vertical=Alternates|와 \pkgkwd{RawFeature=vertical}
+옵션을 준다.%
+\footnote{%
+ 이는 플레인텍에서 |vertical;+vert| 옵션을 주는 것과 같다.
+ 사실 |vertical|을 선언하면 |vert|는 자동으로 켜지도록 해 두었다. }\,%
+\footnote{%
+ |vmtx| 정보를 가지고 있지 않은 글꼴은 세로쓰기에 적합치 않은 글꼴이다.
+ |otfinfo -t <파일>| 명령으로 글꼴에 들어있는 테이블 정보를 알 수 있다. }\,%
+\footnote{%
+ 폰트 옵션 |Renderer=OpenType| 또는 |Renderer=HarfBuzz| 등
+ (플레인텍에서는 |mode=harf| 옵션)을 주고
+ 컴파일하여 Harfbuzz 모듈을 이용하려는 경우 세로쓰기가
+ 현재로서는 지원되지 않는다. 세로쓰기를 하려면 이 옵션을 빼고 디폴트 값인
+ |Renderer=Node| (플레인텍에서는 |mode=node|)를 사용하라.}
+세로쓰기에서 |CharRaise| 옵션의 효과에 대해서는 제\ref{sec:fontoption}절을
+참조할 것.
+
+세로쓰기에서는 \cs{typesetclassic}의 아종인 \cs{typesetvertical}이
+기본으로 셋팅되어 있다. 일종의 고문헌 조판으로 보는 것이다.
\begin{figure}
-\framebox[\linewidth]{\begin{vertical}{17em}
- \sffamily
- \addhangulfontfeature{Vertical=RotatedGlyphs,
- RawFeature=vertical,
- CharacterWidth=Full, CharRaise=0.1ex, }
-\parindent-1em\leftskip1em \linespread{1.5}\selectfont
-\noindent 님의 침묵(The Silent Beloved)
-\smallbreak
-\hfil\hfil 한 용 운\hfil
-\bigbreak
-님은 갓슴니다 아아 사랑하는나의님은 갓슴니다\par
-푸른산빗을깨치고 단풍나무숩을향하야난 적은길을 거러서 참어떨치고
-갓슴니다\par
-黃金의꽃가티 굿고빗나든 옛盟誓는 차듸찬띠끌이되야서 한숨의 微風에
-나러갓슴니다\par
-날카로은 첫〈키쓰〉의追憶은 나의運命의指針을 돌너노코 뒷거름처서 사러젓슴니다\par
-\hellipsis\par
-아아 님은갓지마는 나는 님을보내지 아니하얏슴니다\par
-제곡조를못이기는 사랑의노래는 님의沈默을 휩싸고돔니다\par
-\end{vertical}}
-\caption{세로쓰기의 예. 박스 높이 \texttt{17em}을 지시했다.}\label{fig:vertical}
+ \framebox[\linewidth]{
+ \begin{vertical}{20em}
+ \linespread{1.5}\sffamily \verticalhangulfont
+ \hunmintxt
+ \end{vertical}
+ }
+ \caption{세로쓰기의 예. 박스 높이 |20em|을 지시했다.}\label{fig:vertical}
+\end{figure}
+
+\begin{figure}
+ \framebox[\linewidth]{
+ \begin{vertical}{19em}
+ \linespread{1.5}\sffamily \verticalhangulfont
+ \parindent0pt \everypar{\hangindent1em \hangafter1 }
+ \analectstext
+ \end{vertical}
+ }
+ \caption{세로쓰기의 다른 예. 박스 높이 |19em|을 지시했다.
+ 글꼴에 |CompressPunctuations|와 더불어
+ |InterCharStretch=1pt|를 옵션으로 주었다. 공백이 없는 문서는 자간늘이기 값을
+ 넉넉하게 주는 것이 좋다.
+ }\label{fig:vertical3}
\end{figure}
+문서의 일부를 세로쓰기하려면
+|\begin{|\pkgkwd{vertical}|}{<dimen>}| \ldots\ |\end{vertical}|
+환경을 이용한다. |<dimen>|으로 세로쓰기 박스의 높이를 지시한다.%
+\footnote{%
+ 플레인텍에서는 \cs{vertical{<dimen>}} \ldots\ \cs{endvertical}. }
+그림~\ref{fig:vertical},~\ref{fig:vertical3} 및 \ref{fig:vertical2} 참조.
+
문서 전체를 세로쓰기한다면 이 환경을 쓰는 대신
-\cs{verticaltypesetting} 명령을 전처리부에 선언한다.
+\pkgkwd{\verticaltypesetting} 명령을 전처리부에 선언한다.
이때 면주는 가로로 식자되며 면주 폰트의 설정은 사용자의 몫이다.
세로쓰기 도중에 문서의 일부를 가로쓰기하려면
-\cs{begin{horizontal}{<dimen>}} \ldots\ \cs{end{horizontal}}
-환경을 이용하라. |<dimen>|은 가로쓰기 박스의 너비를 지시한다.
-플레인텍에서는 \cs{horizontal{<dimen>}} \ldots\ \cs{endhorizontal}.
-가로쓰기 영역의 폰트 설정은 사용자의 몫이다.
-
-\section{}\label{sec:metapost}
-전처리부에서 \cs{usepackage{luamplib}}을 선언하면 \MP\ 코드를 문서 중간에
-삽입할 수 있다. 한글이나 수식은 |btex| \ldots\ |etex| 안에 넣어야 한다.
-그림~\ref{fig:mplib} 참조. 상세한 것은 luamplib 패키지 문서를 참조하라.
+|\begin{|\pkgkwd{horizontal}|}{<dimen>}| \ldots\ |\end{horizontal}|
+환경을 이용한다. |<dimen>|은 가로쓰기 박스의 너비를 지시한다.%
+\footnote{%
+ 플레인텍에서는 \cs{horizontal{<dimen>}} \ldots\ \cs{endhorizontal}. }
+가로쓰기 영역의 폰트 설정은 사용자의 몫이다.%
+\footnote{폰트 지시는 |horizontal| 환경 안에서 행하는 것을 권장한다.}
\begin{figure}
-\setbox0\vbox{\kern10pt
-\begin{verbatim}
- \usepackage{luamplib}
- ...
- \begin{mplibcode}
- beginfig(1);
- draw fullcircle scaled 2cm;
- dotlabel.bot(btex \TeX etex, origin);
- dotlabel.rt(btex 루아 etex, dir45*1cm);
- endfig;
- \end{mplibcode}
-\end{verbatim}}
-\begin{mplibcode}
-beginfig(1);
- draw btex \copy0 etex shifted (-\mpdim{\textwidth-3cm},-\mpdim{.5\ht0});
- draw fullcircle scaled 2cm;
- dotlabel.bot(btex\TeX etex, origin);
- dotlabel.rt(btex 루아 etex, dir 45*1cm);
- bboxmargin:=0; draw bbox currentpicture;
-endfig;
-\end{mplibcode}
-\caption{mplib 용례}\label{fig:mplib}
+ \framebox[\linewidth]{
+ \begin{vertical}{17em}
+ \linespread{1.5}\sffamily \verticalhangulfont
+ \parindent0pt \everypar{\hangindent1em \hangafter1 }
+ \spaceskip=.5em plus.25em minus.125em
+ \quad 님의 침묵(The Silent Beloved)
+ \smallbreak
+ \hfil\hfil 한 용 운\hfil
+ \bigbreak
+ 님은 갓슴니다 아아 사랑하는나의님은 갓슴니다\par
+ 푸른산빗을깨치고 단풍나무숩을향하야난 적은길을 거러서 참어떨치고
+ 갓슴니다\par
+ 黃金의꽃가티 굿고빗나든 옛盟誓는 차듸찬띠끌이되야서 한숨의 微風에
+ 나러갓슴니다\par
+ 날카로은 첫〈키쓰〉의追憶은 나의運命의指針을 돌너노코 뒷거름처서 사러젓슴니다\par
+ \hellipsis\par
+ 아아 님은갓지마는 나는 님을보내지 아니하얏슴니다\par
+ 제곡조를못이기는 사랑의노래는 님의沈默을 휩싸고돔니다\par
+ \end{vertical}
+ }
+ \caption{세로쓰기의 또 다른 예. 박스 높이 |17em|을 지시했다.
+ Noto Sans CJK 글꼴의 세로쓰기 공백은 원래 |1em|,
+ 즉 전각크기로 매우 크기 때문에, 여기서는 \cs{spaceskip} 명령을 이용하여
+ 반각 크기로 강제했다.
+ }\label{fig:vertical2}
\end{figure}
-\section{}\label{sec:mathhangul}
-\begin{quote}
- |$가^{나^다}$|\quad$\Rightarrow\quad가^{나^다}$
-\end{quote}
-수식 모드에서도 한글을 {\small(hbox로 감싸지 않고)} 직접 입력할 수
-있다. 문서의 기본 한글 글꼴이 자동으로 수식 한글에도 적용되므로 따로
-설정할 것이 없지만 굳이 한다면 다음처럼 지시한다.
-\begin{verbatim}
- \setmathhangulfont{HCRBatang}
-\end{verbatim}
-현재 한글만 쓸 수 있게 설정되어 있다.
-한자도 수식에 직접 입력하려면 사용자는
-\begin{verbatim}
- \setmathhangulblock{4E00}{9FC3}
-\end{verbatim}
-명령으로 유니코드 블럭을 추가 지정해야 한다.
+\section{드러냄표}\label{sec:dotemph}
-\section{}
-\cs{dotemph} 명령으로 \dotemph{드러냄표}%
+\pkgkwd{\dotemph} 명령으로 \dotemph{드러냄표}%
를 이용한 강조를 할 수 있다. 기본은 글자 위에 점을 찍는 형태이나
다음과 같이 명령을 주어 개인적으로 선호하는 기호를 드러냄표로 쓸 수
있다.
-①~|\def\dotemphraise{0.4em }|: 드러냄표를 피강조 글자 위로 끌어올리는 길이
+\medskip
+①~|\def|\pkgkwd{\dotemphraise}|{0.4em }|:
+드러냄표를 피강조 글자 위로 끌어올리는 길이
-②~|\def\dotemphchar{\bfseries ^^^^02d9}|: 드러냄표 기호 자체를 정의.
-|^^^^02d9|는 유니코드 코드포인트를 뜻하는 16진수이고 소문자로만 써야 한다.
-숫자 대신 직접 문자를 입력해도 된다. 플레인텍에서도 쓸 수 있다.
+②~|\def|\pkgkwd{\dotemphchar}|{\bfseries ^^^^02d9}|: 드러냄표 기호 자체를 정의.
+
+\section{루비}\label{sec:ruby}
-\section{}\label{sec:ruby}
루비를 달 수 있다. ruby 패키지가 이미 존재하지만 \luatexko와 궁합이 잘
-맞지 않아 새로 매크로를 제공한다. 플레인텍도 지원한다.
+맞지 않아 새로 매크로를 제공한다.
\begin{quote}
- \cs{ruby{漢字}{한자}}\quad$\Rightarrow$\quad\ruby{漢字}{한자}
+ \pkgkwd{\ruby}|{漢字}{한자}|\quad$\Rightarrow$\quad\ruby{漢字}{한자}
\end{quote}
이처럼 글자별로 따로 루비를 달 필요가 없다. 관련 설정은 다음처럼
한다.
-①~\cs{rubyfont}: 루비를 식자할 폰트를 지시해 둔다. 기본값은 현재 폰트.
-
-②~|\def\rubysize{0.6}|: 루비 글자 크기를 본문 글자 크기에 대한 비율로
-지정
+\medskip
+①~\pkgkwd{\rubyfont}: 루비를 식자할 폰트를 지시해 둔다. 기본값은 현재 폰트%
+\footnote{%
+ 루비는 글자 크기가 작기 때문에 본문 폰트보다 약간 굵은 폰트로
+ 지정하는 것이 좋다. }
+
+②~|\def|\pkgkwd{\rubysize}|{0.6}|:
+루비 글자 크기를 본문 글자 크기에 대한 비율로 지정%
+\footnote{%
+ 플레인텍에서는 루비의 글꼴크기를 따로 조정해주지 않는다.
+ 사용자가 \cs{rubyfont}를 설정할 때 크기도 함께 지시하도록 한다.
+ 가령:\par
+ \leftskip=3em\noindent
+ |\\font\\rubyfont=UnBatang at \\rubysize em| }
-③~|\def\rubysep{0.2ex}|: 루비와 본문 글자 사이의 간격을 지정
+③~|\def|\pkgkwd{\rubysep}|{0.1ex}|: 루비와 본문 글자 사이의 간격을 지정
-④~\cs{rubynooverlap}: 루비의 폭이 본문 글자의 폭보다 클 때 루비가 이웃
+④~\pkgkwd{\rubynooverlap}: 루비의 폭이 본문 글자의 폭보다 클 때 루비가 이웃
글자들 위로 삐져나가지 못하게 한다. 본문 글자의 흐름을 중시하여
-\cs{rubyoverlap}을 기본값으로 하였으므로 이는 따로 선언할 필요가 없다.
+\pkgkwd{\rubyoverlap}을 기본값으로 하였으므로 이는 따로 선언할 필요가 없다.
+\medskip
한편, 연속된 본문 글자들에 각각 한 글자씩 루비를 달고자 한다면
-|\xxruby{...}{...}| 명령을 사용하라. 글자들 사이에 줄바꿈이 허용된다.
-다만 두 인자의 글자 수가 동일해야 한다.
+\pkgkwd{\xxruby}|{...}{...}| 명령을 사용한다. 글자들 사이에 줄바꿈이 허용된다.
+두 인자의 글자 수가 동일해야 한다.
+
+\section{밑줄긋기}\label{sec:uline}
-\section{}
-ulem 패키지가 \luatexko와 궁합이 잘 맞지 않아{\small (줄바꿈에 문제가 있음)}
-명령을 따로 제공한다. 플레인텍에서도 쓸 수 있다.
-
-\bigskip
-\begin{tabular}{l@{\quad$\Rightarrow$\quad}l}
-\cs{uline{밑줄을 그을 수 있다}}&\uline{밑줄을 그을 수 있다}\\
-\cs{sout{취소선을 그을 수 있다}}&\sout{취소선을 그을 수 있다}\\
-\cs{uuline{밑줄을 두 줄 긋는다}}&\uuline{밑줄을 두 줄 긋는다}\\
-\cs{xout{빗금으로 취소할 수 있다}}&\xout{빗금으로 취소할 수 있다}\\
-\cs{uwave{물결표로 밑줄을 삼는다}}&\uwave{물결표로 밑줄을 삼는다}\\
-\cs{dashuline{대시로 밑줄을 삼는다}}&\dashuline{대시로 밑줄을 삼는다}\\
-\cs{dotuline{밑줄을 점선으로 긋는다}}&\dotuline{밑줄을 점선으로 긋는다}\\
-\end{tabular}
-\bigskip
+ulem 패키지가 \luatexko와 궁합이 맞지 않아{\small (줄바꿈에 문제가 있음)}
+명령을 따로 제공한다.%
+\pkgkwd*{\uline}%
+\pkgkwd*{\sout}%
+\pkgkwd*{\uuline}%
+\pkgkwd*{\xout}%
+\pkgkwd*{\uwave}%
+\pkgkwd*{\dashuline}%
+\pkgkwd*{\dotuline}
+
+\def\RA{\>$\Rightarrow$\>}
+\begin{tabbing}
+ \cs{dotuline{밑줄을 점선으로 긋는다}}\quad\=$\Rightarrow$\quad\= \kill
+ \cs{uline{밑줄을 그을 수 있다}}\RA\uline{밑줄을 그을 수 있다}\\
+ \cs{sout{취소선을 그을 수 있다}}\RA\sout{취소선을 그을 수 있다}\\
+ \cs{uuline{밑줄을 두 줄 긋는다}}\RA\uuline{밑줄을 두 줄 긋는다}\\
+ \cs{xout{빗금으로 취소할 수 있다}}\RA\xout{빗금으로 취소할 수 있다}\\
+ \cs{uwave{물결표로 밑줄을 삼는다}}\RA\uwave{물결표로 밑줄을 삼는다}\\
+ \cs{dashuline{대시로 밑줄을 삼는다}}\RA\dashuline{대시로 밑줄을 삼는다}\\
+ \cs{dotuline{밑줄을 점선으로 긋는다}}\RA\dotuline{밑줄을 점선으로 긋는다}
+\end{tabbing}
관련하여 다음 설정을 할 수 있다.
-①~|\def\ulinedown{0.24em}|: 밑줄을 베이스라인 아래로 끌어내리는 정도
+\medskip
+①~|\def|\pkgkwd{\ulinedown}|{0.5ex}|: 밑줄을 베이스라인 아래로 끌어내리는 정도
+
+②~|\def|\pkgkwd{\ulinewidth}|{0.04em}|: 밑줄의 굵기
+
+\medskip
+사실 위 밑줄 양식들을 만드는 데는 예외없이
+\pkgkwd{\markoverwith} 명령이 사용되었다.
+따라서 사용자는 이를 이용해 원하는 양식을 만들 수 있다.
+가령 노란색 마커펜을 흉내내려면,%
+\footnote{%
+ 이 명령의 인자로 들어갈 수 있는 것은 box와 rule에 국한된다.
+ 예시에서는 박스를 넣었다.}\,%
+\footnote{%
+ 별표 붙은 명령 \cs{markoverwith*}는 \cs{xleaders}를 실행하고,
+ 예시처럼 별표가 없으면 \cs{cleaders}를 실행한다. }
+\begin{verbatim}
+ \def\ymarker{%
+ \markoverwith{%
+ \hbox{{\color{yellow!50}\vrule width 1pt height 9pt depth 2pt}}%
+ }}
+\end{verbatim}
+
+\def\ymarker{\markoverwith{%
+ \hbox{{\color{yellow!50}\vrule width 1pt height 9pt depth 2pt}}}}
-②~|\def\ulinewidth{0.04em}|: 밑줄의 굵기
+\cs{ymarker{노란색을 칠해서 강조한다}}\quad$\Rightarrow$\quad
+\ymarker{노란색을 칠해서 강조한다}.
+
+\section{자동조사}\label{sec:autojosa}
-\section{}\label{sec:autojosa}
자동조사는 \kotex 과 동일하게 \cs{은} \cs{는} \cs{이} \cs{가} \cs{을} \cs{를}
\cs{와} \cs{과} \cs{로} \cs{으로} \cs{라} \cs{이라} 따위를 사용한다.
-문장 중에서도 작동할 뿐만 아니라 플레인텍도 지원한다.
-버전 1.3부터는 \cs{josaignoreparens=1}이 선언되어 있으면 자동조사는
+버전 1.3부터는 \pkgkwd{\josaignoreparens}|=1|이 선언되어 있으면 자동조사는
\hemph{괄호 부분을 건너뛰고} 그 앞 글자에 매칭한다.
|0|이 선언되면 원래 방식으로 돌아간다.
\begin{quote}
@@ -481,39 +659,76 @@
|홍길동(2001)\로|\quad$\Rightarrow$\quad 홍길동(2001)\로
\end{quote}
-\section{}
-항목 번호를 한국어 기호로 붙일 수 있다. \kotex과 동일하게 \cs{jaso} \cs{gana}
-\cs{ojaso} \cs{ogana} \cs{pjaso} \cs{pgana} \cs{onum} \cs{pnum} \cs{oeng}
-\cs{peng} \cs{hnum} \cs{Hnum} \cs{hroman} \cs{hRoman} \cs{hNum} \cs{hanjanum}
-따위를 사용한다.
-
-\section{}\label{sec:actualtext}
-\cs{actualtext{...}} 명령은 인자를 식자함과 동시에, \hemph{입력한 문자 그대로}
-PDF에서 텍스트로 추출할 수 있게 해준다. 인자가 두 페이지에 나눠지지 않도록
-유의한다. 모든 PDF 리더가 이를 지원하는 것은 아니다. 예:
-$\actualtext{\sqrt 2}$,
-{\sffamily \actualtext{ᄆᆞᄎᆞᆷ〮내〯}}.
-인자가 글자 없이 그림으로만 돼있다면 \cs{actualtext*{...}} 방식을 이용한다.
+\section{루아 모듈의 제거 및 복원}\label{sec:luamodule}
+
+루아 코드 |luatexko.deactivateall()|은 이상 언급한 \luatexko 의 거의 모든
+기능을 무력화한다. |luatexko.reactivateall()|은 이를 복원한다.%
+\footnote{수직 모드 (문단과 문단 사이)에서 사용할 것.
+ 수평 모드에서는 정상작동을 보장하지 못한다.}
+다른 패키지와 충돌할 때 시도해 볼 수 있다.
+전자의 함수에는 문자열을 인자로 줄 수도 있는데, 해당하는 다른 패키지의
+모듈들을 잠시 제거할 수 있다.
+
+\section{수식 한글}\label{sec:mathhangul}
-\section{}
-\cs{luatexhangulnormalize=1}이라 지시하면 첫가끝 자모를 완성형 음절로,
+\begin{quote}
+ |$가^{나^다}$|\quad$\Rightarrow\quad가^{나^다}$
+\end{quote}
+수식 한글 폰트를 설정하면 수식 모드에서도 한글을 {\small(hbox로 감싸지 않고)}
+직접 입력할 수 있다.%
+\footnote{%
+ 플레인텍에서는 \cs{mathhangulfont=UnBatang}과 같이 설정한다.
+ 또는 좀 더 그럴듯하게 하려면:\par
+ \leftskip=3em\noindent
+ |\\font\\texthangul="Noto Sans CJK KR DemiLight" at 10pt|\\
+ |\\font\\scripthangul="Noto Sans CJK KR Regular" at 7pt|\\
+ |\\font\\scriptscripthangul="Noto Sans CJK KR Medium" at 5pt|\\
+ |\\setmathhangulfonts\\texthangul\\scripthangul\\scriptscripthangul| }
+v2.0부터는 자동으로 수식 한글을 잡아주지 않는다.%
+\pkgkwd*{\setmathhangulfont}
+\begin{verbatim}
+ \setmathhangulfont{Noto Sans CJK KR}[
+ SizeFeatures={
+ {Size=-6, Font=* Medium},
+ {Size=6-9, Font=* Regular},
+ {Size=9-, Font=* DemiLight},
+ } ]
+\end{verbatim}
+현재 한글만 쓸 수 있게 설정되어 있다. 한자도 수식에 직접 입력하려면 사용자는
+다음 명령으로 유니코드 블럭을 추가 지정해야 한다.%
+\pkgkwd*{\setmathhangulblock}
+\begin{verbatim}
+ \setmathhangulblock{4E00}{9FC3}
+\end{verbatim}
+
+\section{한국어 항목 번호}\label{sec:hangulnums}
+
+\kotex과 동일하게 항목 번호를 한국어 기호로 붙일 수 있다.%
+\footnote{%
+ \cs{jaso} \cs{gana} \cs{ojaso} \cs{ogana} \cs{pjaso} \cs{pgana}
+ \cs{onum} \cs{pnum} \cs{oeng} \cs{peng} \cs{hnum} \cs{Hnum}
+ \cs{hroman} \cs{hRoman} \cs{hNum} \cs{hanjanum} 따위를 사용한다. }
+
+\section{입력 변환}\label{sec:normalize}
+
+\pkgkwd{\luatexhangulnormalize}|=1|이라 지시하면 첫가끝 자모를 완성형 음절로,
|2|라면 완성형 음절을 첫가끝 자모로 인코딩 변환한다. |0|이 할당되면
인코딩 변환 기능이 꺼진다. \XeTeX의 \cs{XeTeXinputnormalization} 명령과
-유사하나 오직 한글과 일부 한자에 대해서만 정규화가 작동하는 점에서
-\XeTeX의 그것에 비해 기능이 한참 모자란다.
+유사하나, 오직 한글과 일부 한자에 대해서만 정규화가 작동할 뿐이다.
+
+\section{UHC 입력 인코딩}\label{sec:uhcencoding}
+
+권장하지 않지만 불가피하게 입력 인코딩이 UHC (Unified Hangul Code)%
+\footnote{%
+ CP949라고도 하며 EUC-KR을 포함한다. }%
+로 되어 있는 파일을 처리할 때는 \pkgkwd{\luatexuhcinputencoding}|=1|을 선언한다.
+|0|을 할당하면 다시 UTF-8 입력으로 간주한다. \XeTeX의 \cs{XeTeXinputencoding}
+명령과 유사하나, 오직 한국어 문자만 처리할 수 있다.%
+\footnote{%
+ 윈도 운영체제에서의 한글 파일이름 불러오기 기능은 v2.0부터는 제공하지 않는다.
+ 대신 |luatex -cmdx ...|, |lualatex -cmdx ...|와 같이 컴파일시 명령행에
+ |-cmdx| 옵션을 주면 된다고 하니 테스트해 보시기 바란다. }
-\section{}\label{sec:uhcencoding}
-권장하지 않지만 불가피하게 입력 인코딩이 UHC (Unified Hangul Code)\footnote{%
- CP949라고도 하며 EUC-KR을 포함한다}로 되어 있는 파일을 처리할 때는
-\cs{luatexuhcinputencoding=1}을 선언한다.
-|0|을 할당하면 다시 UTF-8 입력으로 간주한다.
-\XeTeX의 \cs{XeTeXinputencoding} 명령과 유사하나 오직 한국어 문자만 처리할 수
-있어 \XeTeX의 그것에 비해 기능이 한참 모자란다.
-
-\section{}
-마찬가지로 바람직하지는 않지만 불가피하게 파일 이름이 UHC로 인코딩되어
-있다면 \cs{luatexuhcfilenames=1}을 선언한다. |0|을 할당하면 다시 UTF-8
-이름으로 간주한다. 윈도 계열 운영체제에서만 문제될 것이다.
\hfill \fboxsep=-\fboxrule \fbox{\vbox to 1em{\hbox to 1em{\hss}\vss}}
\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luatexko.doc.tlpobj new/tlpkg/tlpobj/luatexko.doc.tlpobj
--- old/tlpkg/tlpobj/luatexko.doc.tlpobj 2019-04-06 23:33:58.000000000 +0200
+++ new/tlpkg/tlpobj/luatexko.doc.tlpobj 2020-03-20 23:58:34.000000000 +0100
@@ -1,9 +1,9 @@
name luatexko.doc
category Package
-revision 50816
+revision 54438
shortdesc doc files of luatexko
relocated 1
-docfiles size=66
+docfiles size=91
RELOC/doc/luatex/luatexko/ChangeLog
RELOC/doc/luatex/luatexko/README
RELOC/doc/luatex/luatexko/luatexko-doc.pdf
++++++ luatexko.tar.xz ++++++
++++ 6274 lines of diff (skipped)
++++++ luatodonotes.doc.tar.xz ++++++
Binary files old/doc/lualatex/luatodonotes/luatodonotes.pdf and new/doc/lualatex/luatodonotes/luatodonotes.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luatodonotes.doc.tlpobj new/tlpkg/tlpobj/luatodonotes.doc.tlpobj
--- old/tlpkg/tlpobj/luatodonotes.doc.tlpobj 2019-02-28 03:52:51.000000000 +0100
+++ new/tlpkg/tlpobj/luatodonotes.doc.tlpobj 2020-02-18 01:54:47.000000000 +0100
@@ -1,8 +1,8 @@
name luatodonotes.doc
category Package
-revision 45454
+revision 53825
shortdesc doc files of luatodonotes
relocated 1
-docfiles size=53
+docfiles size=54
RELOC/doc/lualatex/luatodonotes/README.md
RELOC/doc/lualatex/luatodonotes/luatodonotes.pdf
++++++ luatodonotes.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luatodonotes/luatodonotes.lua new/tex/lualatex/luatodonotes/luatodonotes.lua
--- old/tex/lualatex/luatodonotes/luatodonotes.lua 2015-12-06 00:01:08.000000000 +0100
+++ new/tex/lualatex/luatodonotes/luatodonotes.lua 2020-02-17 23:18:23.000000000 +0100
@@ -1,5 +1,5 @@
--
--- Copyright (C) 2014-2015 by Fabian Lipp
+-- Copyright (C) 2014-2020 by Fabian Lipp
-- ------------------------------------------------------------
--
-- This file may be distributed and/or modified under the
@@ -374,8 +374,7 @@
end
function luatodonotes.linePositionsAddLine(ycoord, lineheight, linedepth)
- local baseline = ycoord - tex.pageheight
- linePositionsCurPage[#linePositionsCurPage + 1] = {baseline, baseline + lineheight, baseline - linedepth}
+ linePositionsCurPage[#linePositionsCurPage + 1] = {ycoord, lineheight, linedepth}
end
@@ -741,7 +740,7 @@
end
if foundGlyph then
- local w = node.new("whatsit", "write") -- 8/1
+ local w = node.new("whatsit", "write")
w.stream = lpoFileStream
local tokenlist = {
{12, 92, 0}, -- \
@@ -770,19 +769,31 @@
{12, 110, 0}, -- n
{12, 123, 0} -- {
}
- t = token.create("@todonotes@pdflastypos")
- tokenlist[#tokenlist + 1] = t
- tokenlist[#tokenlist + 1] = {12, 125, 0}
- tokenlist[#tokenlist + 1] = {12, 123, 0}
+ local t = token.create("@todonotes@pdflastypos")
+ -- the token handling changed with newer LuaTeX versions
+ if tex.luatexversion > 81 then
+ tokenlist[#tokenlist + 1] = {0, t.tok}
+ else
+ tokenlist[#tokenlist + 1] = t
+ end
+ tokenlist[#tokenlist + 1] = {12, 125, 0} -- }
+ tokenlist[#tokenlist + 1] = {12, 123, 0} -- {
appendStrToTokenlist(tokenlist, tostring(head.height))
- tokenlist[#tokenlist + 1] = {12, 125, 0}
- tokenlist[#tokenlist + 1] = {12, 123, 0}
+ tokenlist[#tokenlist + 1] = {12, 125, 0} -- }
+ tokenlist[#tokenlist + 1] = {12, 123, 0} -- {
appendStrToTokenlist(tokenlist, tostring(head.depth))
- tokenlist[#tokenlist + 1] = {12, 125, 0}
+ tokenlist[#tokenlist + 1] = {12, 125, 0} -- }
w.data = tokenlist
head.head = node.insert_before(head.head,head.head,w)
- local w = node.new("whatsit", "pdf_save_pos") -- 8/23
+ -- the name of the whatsit node changed with newer LuaTeX versions
+ local whatsitName
+ if tex.luatexversion > 80 then
+ whatsitName = "save_pos"
+ else
+ whatsitName = "pdf_save_pos"
+ end
+ local w = node.new("whatsit", whatsitName)
head.head = node.insert_before(head.head,head.head,w)
end
end
@@ -1742,7 +1753,18 @@
local function posPoLeaders(notes, rightSide, avoidLines)
local linePositionsCurPage
if avoidLines then
- linePositionsCurPage = linePositions[currentPage] or {}
+ linePositionsCurPage = {}
+ -- use the current pageheight to convert coordinates:
+ -- savepos yields coordinates relativ to lower left corner of page,
+ -- while our tikzpicture is anchored at the upper left corner
+ for k, v in pairs(linePositions[currentPage] or {}) do
+ local baseline = v[1] - tex.pageheight
+ linePositionsCurPage[k] = {baseline, baseline + v[2], baseline - v[3]}
+ if todonotesDebug then
+ print("linePositionsAddLine, add: " .. v[1] .. ", pageheight: " .. tex.pageheight ..
+ ", result: " .. baseline)
+ end
+ end
end
-- number of slots on the whole page
@@ -1759,11 +1781,16 @@
-- sort notes by inputY
table.sort(notes, compareNoteIndInputYDesc)
- -- draw slots
+ -- draw slots and line positions
if todonotesDebug then
for i = 1,totalNumSlots+1 do
local pos = area.top - (i-1) * rasterHeight
- tex.print("\\draw[blue,dashed] (0," .. pos .. "sp) -- +(21cm,0);")
+ tex.print("\\draw[blue,dashed] (0," .. pos .. "sp) -- +(21cm,0);")
+ end
+ for ind, v in pairs(linePositionsCurPage) do
+ local pos = v[1]
+ tex.print("\\draw[red,dashed] (0," .. pos .. "sp) -- +(21cm,0);")
+ tex.print("\\node[red] at (1cm," .. pos .. "sp) {" .. ind .. "};")
end
end
@@ -1870,7 +1897,7 @@
if avoidLines then
leaderArmR = labelTopR - noteInnerSep - r:getHeight() / 2 -- east anchor
- -- find first line (from the top) which lower bound is below leaderArmR
+ -- find first line (from the top) whose lower bound is below leaderArmR
local lineBelowInd
for ind, v in pairs(linePositionsCurPage) do
if v[3] <= leaderArmR then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/luatodonotes/luatodonotes.sty new/tex/lualatex/luatodonotes/luatodonotes.sty
--- old/tex/lualatex/luatodonotes/luatodonotes.sty 2017-10-02 23:58:58.000000000 +0200
+++ new/tex/lualatex/luatodonotes/luatodonotes.sty 2020-02-17 23:18:23.000000000 +0100
@@ -8,7 +8,7 @@
%%
%% This is a generated file.
%%
-%% Copyright (C) 2014-2015 by Fabian Lipp
+%% Copyright (C) 2014-2020 by Fabian Lipp
%% based on the todonotes package by
%% Henrik Skov Midtiby
%%
@@ -24,7 +24,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{luatodonotes}
- [2017/09/30 v0.4 luatodonotes source and documentation.]
+ [2020/02/16 v0.5 luatodonotes source and documentation.]
\@ifpackageloaded{todonotes}{
\PackageError{luatodonotes}{%
@@ -280,13 +280,20 @@
\if@todonotes@additionalMarginEnabled
\newlength{\@todonotes@modpaperwidth}
\AfterEndPreamble{%
- \setlength{\@todonotes@modpaperwidth}{\paperwidth}%
- \addtolength{\@todonotes@modpaperwidth}{\@todonotes@additionalMargin}%
- \addtolength{\@todonotes@modpaperwidth}{\@todonotes@additionalMargin}%
- \pdfpagewidth=\@todonotes@modpaperwidth%
- \addtolength{\hoffset}{\@todonotes@additionalMargin}%
+ \@todonotes@setAdditionalMargin%
+ \ifdefined\Gm@changelayout
+ \g@addto@macro{\Gm@changelayout}{\@todonotes@setAdditionalMargin}
+ \fi
}%
\fi%
+\newcommand{\@todonotes@setAdditionalMargin}{
+ \setlength{\@todonotes@modpaperwidth}{\paperwidth}%
+ \addtolength{\@todonotes@modpaperwidth}{\@todonotes@additionalMargin}%
+ \addtolength{\@todonotes@modpaperwidth}{\@todonotes@additionalMargin}%
+ \ifdefined\pdfpagewidth\else\let\pdfpagewidth\pagewidth\fi
+ \pdfpagewidth=\@todonotes@modpaperwidth%
+ \addtolength{\hoffset}{\@todonotes@additionalMargin}%
+}
\newdimen\@todonotes@extractx
\newdimen\@todonotes@extracty
\newsavebox\@todonotes@heightcalcbox
@@ -315,6 +322,7 @@
\directlua{luatodonotes.setPositioningAlgo("\luatexluaescapestring{\@todonotes@positioning}")}
\directlua{luatodonotes.setSplittingAlgo("\luatexluaescapestring{\@todonotes@splitting}")}
\directlua{luatodonotes.setLeaderType("\luatexluaescapestring{\@todonotes@leadertype}")}
+\ifdefined\pdflastypos\else\let\pdflastypos\lastypos\fi
\def\@todonotes@pdflastypos{\the\pdflastypos}
\newcommand{\@todonotes@lineposition}[3]{%
\directlua{luatodonotes.linePositionsAddLine(#1,#2,#3)}%
@@ -336,6 +344,9 @@
\newcommand{\@todonotes@AtBeginShipoutUpperLeft}
{\AtBeginShipoutUpperLeft}
\fi
+\newcommand{\@todonotes@before@tikzpict}{\begingroup%
+ \ifdefined\tikzexternaldisable\tikzexternaldisable\fi}
+\newcommand{\@todonotes@after@tikzpict}{\endgroup}
\directlua{luatodonotes.initTodonotes()}
\soulregister{\ }{0}
\newlength{\todonotes@textmark@width}
@@ -366,6 +377,7 @@
{@todonotes@\arabic{@todonotes@numberoftodonotes}%
@\arabic{@todonotes@numberofLinesInArea} }%
\hspace*{\todonotes@textmark@shift}{\smash{%
+ \@todonotes@before@tikzpict%
\begin{tikzpicture}[overlay,remember picture,
deco/.style={}]%
\setlength\todonotes@textmark@linebelow%
@@ -394,7 +406,8 @@
-- (\@todonotes@nodeNamePrefix areaSE)
}
-- cycle;
- \end{tikzpicture}%
+ \end{tikzpicture}%
+ \@todonotes@after@tikzpict%
}}%
}%
\newcommand{\@todonotes@currentlinecolor}{}%
@@ -548,17 +561,21 @@
\@todonotes@areaselectedtrue%
\@todocommon{#1}{#2}%
\todonotes@textmark@highlight{#3}%
+ \@todonotes@before@tikzpict%
\begin{tikzpicture}[remember picture, overlay]%
\node [coordinate] (@todonotes@\arabic{@todonotes@numberoftodonotes} %
inTextEnd) {};%
\end{tikzpicture}%
+ \@todonotes@after@tikzpict%
\zref@label{@todonotes@\arabic{@todonotes@numberoftodonotes}@end}%
}%
\newcommand{\@todonotes@drawMarginNoteWithLine}{%
+ \@todonotes@before@tikzpict%
\begin{tikzpicture}[remember picture, overlay]%
\node [coordinate] (@todonotes@\arabic{@todonotes@numberoftodonotes} %
inText) {};%
\end{tikzpicture}%
+ \@todonotes@after@tikzpict%
\@todonotes@baselineskip=\baselineskip%
\@todonotes@normalbaselineskip=\normalbaselineskip%
\@todonotes@fontsize=\f@size pt%
@@ -607,7 +624,9 @@
\addcontentsline{tdo}{todo}{\@todonotes@caption}%
\fi}%
\newcommand{\@todonotes@drawInlineNote}{%
- {\par\noindent\begin{tikzpicture}[remember picture]%
+ {\par\noindent%
+ \@todonotes@before@tikzpict%
+ \begin{tikzpicture}[remember picture]%
\draw node[@todonotes@inlinenote,font=\@todonotes@sizecommand]{%
\if@todonotes@authorgiven%
{\noindent \@todonotes@sizecommand %
@@ -615,13 +634,16 @@
\else%
{\noindent \@todonotes@sizecommand \@todonotes@text}%
\fi};%
- \end{tikzpicture}\par}%
+ \end{tikzpicture}%
+ \@todonotes@after@tikzpict%
+ \par}%
}%
\newcommand{\missingfigure}[2][]{%
\setkeys{todonotes}{#1}%
\addcontentsline{tdo}{todo}{\@todonotes@MissingFigureText: #2}%
\par
\noindent
+\@todonotes@before@tikzpict%
\begin{tikzpicture}
\draw[fill=\@todonotes@currentfigcolor, draw = black!40, line width=2pt]
(-2, -2.5) rectangle +(\@todonotes@currentfigwidth, \@todonotes@currentfigheight);
@@ -632,6 +654,7 @@
\draw (0, 0.3) node {\@todonotes@MissingFigureUp};
\draw (0, -0.3) node {\@todonotes@MissingFigureDown};
\end{tikzpicture}\hfill
+\@todonotes@after@tikzpict%
}% Ending \missingfigure command
\fi% Ending \@todonotes@ifdisabled
\newcommand{\todototoc}
@@ -659,10 +682,12 @@
\directlua{luatodonotes.calcHeightsForNotes()}% has to be outside of tikzpicture
\raisebox{\voffset}{%
\hspace{-\hoffset}%
+ \@todonotes@before@tikzpict%
\begin{tikzpicture}[remember picture,overlay]
\directlua{luatodonotes.getInputCoordinatesForNotes()}
\directlua{luatodonotes.printNotes()}
\end{tikzpicture}%
+ \@todonotes@after@tikzpict%
}%
\directlua{luatodonotes.clearNotes()}%
\EndCatcodeRegime
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luatodonotes.tlpobj new/tlpkg/tlpobj/luatodonotes.tlpobj
--- old/tlpkg/tlpobj/luatodonotes.tlpobj 2019-02-28 03:52:51.000000000 +0100
+++ new/tlpkg/tlpobj/luatodonotes.tlpobj 2020-02-18 01:54:47.000000000 +0100
@@ -1,6 +1,6 @@
name luatodonotes
category Package
-revision 45454
+revision 53825
shortdesc Add editing annotations in a LuaLaTeX document
relocated 1
longdesc The package allows the user to insert comments into a document
@@ -10,7 +10,7 @@
longdesc selected using package options. The package is based on the
longdesc package todonotes, and depends heavily on Lua, so it can only
longdesc be used with LuaLaTeX.
-runfiles size=34
+runfiles size=35
RELOC/tex/lualatex/luatodonotes/inspect.lua
RELOC/tex/lualatex/luatodonotes/luatodonotes.lua
RELOC/tex/lualatex/luatodonotes/luatodonotes.sty
@@ -20,7 +20,6 @@
catalogue-contact-bugs https://github.com/fabianlipp/luatodonotes/issues
catalogue-contact-repository https://github.com/fabianlipp/luatodonotes
catalogue-ctan /macros/luatex/latex/luatodonotes
-catalogue-date 2017-10-01 23:18:24 +0200
catalogue-license lppl1.2
catalogue-topics notes editorial luatex use-lua
-catalogue-version 0.4
+catalogue-version 0.5
++++++ luavlna.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luavlna/README.md new/doc/luatex/luavlna/README.md
--- old/doc/luatex/luavlna/README.md 2018-05-31 23:52:21.000000000 +0200
+++ new/doc/luatex/luavlna/README.md 2019-11-07 23:21:01.000000000 +0100
@@ -1,4 +1,4 @@
-# Luavlna, version v0.1b, 2018-05-31
+# Luavlna, version v0.1f, 2019-11-06
# Introduction
Binary files old/doc/luatex/luavlna/luavlna-doc.pdf and new/doc/luatex/luavlna/luavlna-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luavlna/luavlna-doc.tex new/doc/luatex/luavlna/luavlna-doc.tex
--- old/doc/luatex/luavlna/luavlna-doc.tex 2018-05-31 23:52:21.000000000 +0200
+++ new/doc/luatex/luavlna/luavlna-doc.tex 2019-11-07 23:21:01.000000000 +0100
@@ -44,7 +44,7 @@
\verb!impnattypo! for Lua\LaTeX). %This package is for plain
%lua\TeX and for lua\LaTeX.
-Other feature of this package is including of non-breakable space after
+Another feature is inclusion of a non-breakable space after
initials, like in personal names, after or before academic degrees
and between numbers and units (SI and others).
@@ -52,10 +52,11 @@
TeX.sx\footnote{\url{http://tex.stackexchange.com/a/28128/2891}}.
The difference is that it is possible to specify which single letters
should be taken into account for different languages.
-The support for degrees and units was added as well.
+% The support for degrees and units was added as well.
% The code works also for single letters at the beginning of the brackets.
+
\section{Usage}
The usage is simple:
@@ -129,6 +130,19 @@
in the preamble.
+\section{Package options}
+The \verb|luavlna| package recognizes the following options
+
+\begin{description}
+ \item[\texttt{noprocess}] -- disable the automatic document processing.
+ \item[\texttt{noinitials}] -- disable processing of the initials.
+ \item[\texttt{nounits}] -- disable processing of the SI units.
+ \item[\texttt{nopredegrees}] -- disable processing of the the academic degrees before names.
+ \item[\texttt{nosufdegrees}] -- disable processing of the the academic degrees after names.
+ \item[\texttt{debug}] -- enable the debugging mode.
+ \item[\texttt{defaults}] -- load default settings. Enabled by default.
+\end{description}
+
\section{Commands}
\begin{mycode}
@@ -169,6 +183,35 @@
\end{verbatim}
\end{mycode}
+
+\subsection{Split hyphens}
+
+The hyphenated words like ``je-li'' should be be hyphenated as ``je-/-li``
+according to the Czech typesetting rules. This behaviour can be enabled or disabled for a particular
+language using the following commands:
+
+\begin{mycode}
+ \cmd{\enablesplithyphens}\marg{language name}\\
+ \cmd{\disablesplithyphens}\marg{language name}
+\end{mycode}
+
+By default, it is enabled for the Czech language.
+
+Example in action:
+
+\begin{minipage}{3in}
+ \selectlanguage{czech}
+ Sedlec-Prčice, modro-zelený, překladatel-tlumočník, kuchař-číšník, propan-butan,
+ Otýlie Sklenářová-Malá, František Jílek-Oberpfalcer.
+ \selectlanguage{english}
+\end{minipage}
+
+The similar behaviour can be achieved using the \verb|\splithyphens| command
+provided by Czech langauge definitions for the Babel package, but it's use is
+discouraged. It prevents use ot the hyphen character in many situations. The
+solution provided by Luavlna should be safe.
+
+
\subsection{Turning off language switching}
By default, language of the nodes is taken into account. If you want to use
@@ -192,14 +235,16 @@
\cmd{\preventsingleon}
\end{mycode}
-You can also disable units and degrees processing:
+You can also disable initials, units and degrees processing:
\begin{mycode}
+ \cmd{\noinitials}\\
\cmd{\nounits}\\
\cmd{\nopredegrees}\\
\cmd{\nosufdegrees}
\end{mycode}
+
\subsection{Debugging commands}
\begin{mycode}
\cmd{\preventsingledebugon}\par
@@ -227,7 +272,7 @@
\subsection{Recognized languages}
\subsubsection{Lua\TeX\ and Lua\LaTeX}
-File \verb|language.dat| is processed to load language names, aliases and assigned numbers. These language names are the same as supported by \verb|babel| package.
+File \verb|language.dat| is processed to load language names, aliases and assigned numbers. These language names are the same as names supported by the \verb|babel| package.
\begin{quotation}
\small\noindent
@@ -248,10 +293,7 @@
\subsubsection{CSplain}
-Different method is used. File \verb|hyphen.lan| is included in CSplain, where
-language numbers are assigned to ISO-639-1 or ISO-639-2 language codes.
-These language codes were then normalized to names used vy \verb|babel|, or
-standard English language names.
+Different method is used with the CSplain format. The \verb|lua-hyphen.lan| file is parsed for the language codes.
\begin{quotation}
\small\noindent
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luavlna/luavlna.tex new/doc/luatex/luavlna/luavlna.tex
--- old/doc/luatex/luavlna/luavlna.tex 2018-05-31 23:52:21.000000000 +0200
+++ new/doc/luatex/luavlna/luavlna.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,104 +0,0 @@
-% detect LaTeX and use the correct method for luatexbase inclusion
-\ifx\RequirePackage\undefined
- \input{luatexbase.sty}%
-\else
- \RequirePackage{luatexbase}
-\fi
-
-\newluatexattribute\preventsinglestatus
-% Modify pre_linebreak_filter callback so the spaces can be inserted
-\directlua{%
-luavlna = require "luavlna"
-langno = require "luavlna-langno"
-luatexbase.add_to_callback("pre_linebreak_filter", luavlna.preventsingle," ")
-
-local languages = langno.load_languages()
-local get_lang_id = function(lang)
- local langid = lang
- if not tonumber(lang) then
- langid = languages:get_number(lang)
- end
- return langid
-end
-
-% Process string and make table of enabled single letters
-% By default, spaces for all single letters are inserted
-% This can be modified with \singlechars macro
-set_singlechars = function(lang,chars)
- local utf_gmatch = unicode.utf8.gmatch
- % local langnumbers = languages.names
- local langid = get_lang_id(lang)
- if not langid then return nil, "Cannot find language number for: "..lang end
- local chars = chars or ""
- local singlechars = {}
- local percent = string.char(37)
- local alpha = percent .. "a"
- for char in utf_gmatch(chars,"("..alpha..")") do
- singlechars[char] = true
- end
- luavlna.singlechars(langid,singlechars)
-end
-
-% set compound characters for initials handling
-% useful for Czech "Ch" etc.
-% comma separated list of compounds
-set_compounds = function(lang, compounds)
- local langid = get_lang_id(lang)
- if not langid then return nil, "Cannot find language number for: "..lang end
- local c = compounds:explode(",+") % match multiple colons as one
- local compoundstable = {}
- for _, compound in pairs(c) do
- compoundstable[compound] = true
- end
- luavlna.initials(langid, compoundstable)
-end
-
-set_main_language = function(lang)
- local langid = languages:get_number(lang)
- if not langid then return nil, "Cannot find language number for: "..lang end
- luavlna.set_main_language(langid)
-end
-}
-
-% Set letters which are prevented from breaking
-\def\singlechars#1#2{%
-\directlua{set_singlechars("#1","#2")}
-}
-
-% Define compound initials
-\def\compoundinitials#1#2{%
-\directlua{set_compounds("#1","#2")}
-}
-% Enable inserting of visual marks for debugging
-\def\preventsingledebugon{%
-\directlua{luavlna.debug(true)}
-}
-
-\def\preventsinglelang#1{%
- \directlua{set_main_language("#1")}
-}
-
-\def\preventsingleon{%
- \preventsinglestatus=2
-}
-
-\def\preventsingleoff{
- \preventsinglestatus=1
-}
-% Disable inserting of visual marks for dewbugging
-\def\preventsingledebugoff{%
-\directlua{luavlna.debug(false)}
-}
-
-% disable processing of units or degrees
-
-\def\nopredegrees{\directlua{luavlna.no_predegrees = true}}
-\def\nosufdegrees{\directlua{luavlna.no_sufdegrees = true}}
-\def\nounits{\directlua{luavlna.no_unit = true}}
-
-\ifdefined\nosingledefaults\else
- \singlechars{czech}{AIiVvOoUuSsZzKk}
- \singlechars{slovak}{AIiVvOoUuSsZzKk}
- \compoundinitials{czech}{Ch,CH}
-\fi
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luavlna.doc.tlpobj new/tlpkg/tlpobj/luavlna.doc.tlpobj
--- old/tlpkg/tlpobj/luavlna.doc.tlpobj 2019-02-28 03:52:51.000000000 +0100
+++ new/tlpkg/tlpobj/luavlna.doc.tlpobj 2019-11-08 01:56:05.000000000 +0100
@@ -1,10 +1,9 @@
name luavlna.doc
category Package
-revision 47892
+revision 52682
shortdesc doc files of luavlna
relocated 1
-docfiles size=26
+docfiles size=27
RELOC/doc/luatex/luavlna/README.md
RELOC/doc/luatex/luavlna/luavlna-doc.pdf
RELOC/doc/luatex/luavlna/luavlna-doc.tex
- RELOC/doc/luatex/luavlna/luavlna.tex
++++++ luavlna.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luavlna/luavlna-csplain-langs.lua new/tex/luatex/luavlna/luavlna-csplain-langs.lua
--- old/tex/luatex/luavlna/luavlna-csplain-langs.lua 2018-05-31 23:52:21.000000000 +0200
+++ new/tex/luatex/luavlna/luavlna-csplain-langs.lua 2019-05-05 00:48:20.000000000 +0200
@@ -1,59 +1,21 @@
-return {
-["spanish; castilian"]={26, 126},
-["magyar; hungarian"]={30, 130},
-["english; usenglish; american"]={100},
-["icelandic"]={42, 142},
-["basque"]={33, 133},
-["coptic"]={205},
-["catalan; valencian"]={204},
-["welsh"]={24, 124},
-["irish"]={34, 134},
-["armenian"]={210},
-["chinese"]={41, 141},
-["danish"]={25, 125},
-["turkish"]={31, 131},
-["interlingua "]={103},
-["slovak"]={6, 16, 116},
-["english; ukenglish; british"]={101},
-["ukrainian"]={209},
-["turkmen"]={47, 147},
-["sanskrit"]={207},
-["hindi"]={212},
-["lao"]={214},
-["finnish"]={29, 129},
-["assamese"]={211},
-["greek; polutonikogreek"]={203},
-["czech"]={5, 15, 115},
-["tamil"]={221},
-["italian"]={102},
-["french; francais; canadien; acadian"]={22, 122},
-["telugu"]={222},
-["croatian"]={40, 140},
-["panjabi; punjabi"]={220},
-["oriya"]={219},
-["russian"]={208},
-["malayalam"]={217},
-["marathi"]={218},
-["uppersorbian"]={43, 143},
-["portuges; portuguese; brazilian; brazil"]={38, 138},
-["galician"]={45, 145},
-["latvian"]={215},
-["afrikaans"]={44, 144},
-["lithuanian"]={216},
-["slovenian;slovene"]={28, 128},
-["mongolian"]={206},
-["greek; polutonikogreek"]={202},
-["latin"]={48, 148},
-["indonesian; indon; bahasai; bahasam; malay; meyalu"]={104},
-["polish"]={23, 123},
-["bokmål"]={35, 135},
-["dutch; flemish"]={37, 137},
-["greek; polutonikogreek"]={201},
-["norsk; nynorsk; norwegian"]={36, 136},
-["kannada"]={213},
-["estonian"]={32, 132},
-["english; usenglish; american; ukenglish; british; canadian; australian; newzealand"]={0},
-["romanian; moldavian; moldovan"]={39, 139},
-["german; germanb; ngerman; naustrian"]={21, 121},
-["kurdish"]={46, 146},
-}
+local languages = {}
+local function parse_language_lan(content)
+ for name, id in content:gmatch("preplang%s+.-%s+(.-)%s+.-%s(.-)%s+") do
+ -- skip invalid languages
+ if not name:match("%#") then
+ languages[name] = id
+ end
+ end
+end
+
+local langfile = kpse.find_file("lua-hyphen.lan")
+if langfile then
+ local f = io.open(langfile, "r")
+ local content = f:read("*all")
+ parse_language_lan(content)
+ f:close()
+end
+
+
+return languages
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luavlna/luavlna-langno.lua new/tex/luatex/luavlna/luavlna-langno.lua
--- old/tex/luatex/luavlna/luavlna-langno.lua 2018-05-31 23:52:21.000000000 +0200
+++ new/tex/luatex/luavlna/luavlna-langno.lua 2019-05-05 00:48:20.000000000 +0200
@@ -67,7 +67,6 @@
local numlang = {}
for k, v in pairs(l) do
local first = k:gsub(" *;.*","")
- --print(first)
langnum[first] = v
for _,i in ipairs(v) do
numlang[i] = first
@@ -85,7 +84,7 @@
drivers["default"] = load_lang_dat
drivers["csplain"] = load_csplain
drivers["pdfcsplain"] = load_csplain
-drivers["luaplain"] = load_csplain
+drivers["luacsplain"] = load_csplain
local load_languages = function(name)
local name = name or format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luavlna/luavlna.lua new/tex/luatex/luavlna/luavlna.lua
--- old/tex/luatex/luavlna/luavlna.lua 2018-05-31 23:52:21.000000000 +0200
+++ new/tex/luatex/luavlna/luavlna.lua 2019-11-07 23:21:01.000000000 +0100
@@ -14,6 +14,7 @@
local glyph_id = node.id "glyph"
local hlist_id = node.id "hlist"
local vlist_id = node.id "vlist"
+local penalty_id = node.id "penalty"
local math_id = node.id "math"
local period_char = string.byte(".")
@@ -47,15 +48,12 @@
-- must be table in the {char = true, char2=true} form
local set_singlechars= function(lang,c)
--print("Set single chars lua")
- print(type(lang), lang)
if type(lang) == "table" then
for _,l in pairs(lang) do
- print("language: ",l)
singlechars[l] = c
end
else
local lang = tonumber(lang)
- print("language: ",lang)
-- for k,_ in pairs(c) do print(k) end
singlechars[lang] = c
end
@@ -227,11 +225,13 @@
local word = ""
local no_predegrees = M.no_predegrees
local no_sufdegrees = M.no_sufdegrees
+ local no_initials = M.no_initials
local in_math = false
while head do
local id = head.id
local nextn = head.next
- local skip = node.has_attribute(head, luatexbase.attributes.preventsinglestatus)
+ -- local skip = node.has_attribute(head, luatexbase.attributes.preventsinglestatus)
+ local skip = node.has_attribute(head, M.preventsingleid)
if id == math_id then
if head.subtype == 0 then
word = ""
@@ -286,7 +286,7 @@
space = false
-- handle initials
-- uppercase letter followed by period (code 46)
- elseif init and head.id == glyph_id and head.char == period_char and nextn.id == glue_id and utf_len(word) == 1 then
+ elseif no_initials~=true and init and head.id == glyph_id and head.char == period_char and nextn.id == glue_id and utf_len(word) == 1 then
head = insert_penalty(head)
elseif head.id == glyph_id then
local char = utf_char(head.char)
@@ -307,10 +307,79 @@
return true
end
+local hyphenate_langs = {}
+local hyphenchar = string.byte("-")
+-- don't break if the next or previous char is hyphen, in order to support ligaturing of dashes
+local is_hyphen_ligature = function(n)
+ local next_node = n.next
+ -- split_hyphens code
+ if next_node and next_node.id == glyph_id and next_node.char == hyphenchar then
+ return true
+ end
+ local prev_node = n.prev
+ if prev_node and prev_node.id == glyph_id and prev_node.char == hyphenchar then
+ return true
+ end
+ return false
+end
+
+-- detect if the current character is a hyphen
+local function is_breakable_hyphen(n)
+ return n.id == glyph_id and hyphenate_langs[n.lang] and n.char == hyphenchar
+end
+
+-- don't process hyphens if the next node is penalty
+-- necessary to support \nobreakdash
+local function is_next_penalty(n)
+ local next_node = n.next
+ if next_node and next_node.id == penalty_id then
+ return true
+ end
+end
+
+-- Enable hyphenation of words that contain hyphens
+-- and repeating of the explicit hyphen on a new line when
+-- the hyphen is hyphenated
+-- It should be used in the `hyphenate` callback
+-- based on ShreewatsaR's code from:
+-- https://tex.stackexchange.com/a/417883/2891
+local break_hyphens = function(head, tail)
+ local glyph_id = node.id("glyph")
+ local n = head
+ while n do
+ local skip = node.has_attribute(n, M.preventsingleid)
+ if skip ~= 1 and is_breakable_hyphen(n) and not is_next_penalty(n) and not is_hyphen_ligature(n) then
+ -- Insert an infinite penalty before, and a zero-width glue node after, the hyphen.
+ -- Like writing "\nobreak-\hspace{0pt}" or equivalently "\penalty10000-\hskip0pt"
+ local p = node.new(node.id('penalty'))
+ p.penalty = 10000
+ head, p = node.insert_before(head, n, p)
+ local g = node.new(node.id('glue'))
+ head, g = node.insert_after(head, n, g)
+ -- insert the discretionary
+ local disc = node.new("disc")
+ disc.penalty = tex.hyphenpenalty
+ disc.subtype = 2
+ disc.pre = node.copy(n)
+ disc.post = node.copy(n)
+ disc.replace = node.copy(n)
+ node.insert_before(head, g, disc)
+ -- insert another penalty
+ node.insert_before(head, g, node.copy(p))
+ node.remove(head,n)
+ n = g
+ end
+ n = n.next
+ end
+ lang.hyphenate(head, tail)
+end
+
M.preventsingle = prevent_single_letter
M.singlechars = set_singlechars
M.initials = set_initials
M.set_tex4ht = set_tex4ht
M.debug = set_debug
M.set_main_language = set_main_language
+M.split_hyphen_langs = hyphenate_langs
+M.split_hyphens = break_hyphens
return M
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luavlna/luavlna.sty new/tex/luatex/luavlna/luavlna.sty
--- old/tex/luatex/luavlna/luavlna.sty 2018-05-31 23:52:21.000000000 +0200
+++ new/tex/luatex/luavlna/luavlna.sty 2019-11-07 23:21:01.000000000 +0100
@@ -1,8 +1,12 @@
-\ProvidesPackage{luavlna}[2017/09/30 luavlna]
+\ProvidesPackage{luavlna}[2019/10/30 luavlna]
+
+\RequirePackage{kvoptions}
\def\nosingledefaults{\relax}
\input luavlna
+% we need to redefine the setting functions to use directly the language numbers
+% in order to support polyglossia
\def\singlechars#1#2{%
\ifcsname l@#1\endcsname%
\expandafter\directlua\expandafter{set_singlechars("\the\csname l@#1\endcsname","#2")}%
@@ -16,9 +20,36 @@
\fi%
}
+
+\def\enablesplithyphens#1{%
+ \ifcsname l@#1\endcsname%
+ \typeout{set lang #1, \the\csname l@#1\endcsname}
+ \directlua{enable_split_hyphens("\the\csname l@#1\endcsname")}%
+ \fi%
+}
+
+\def\disablesplithyphens#1{%
+ \ifcsname l@#1\endcsname%
+ \directlua{disable_split_hyphens("\the\csname l@#1\endcsname")}%
+ \fi%
+}
+
+\DeclareVoidOption{noinitials}{\noinitials}
+\DeclareVoidOption{nounits}{\nounits}
+\DeclareVoidOption{nopredegrees}{\nopredegrees}
+\DeclareVoidOption{nosufdegrees}{\nosufdegrees}
+\DeclareVoidOption{noprocess}{\preventsingleoff}
+\DeclareVoidOption{debug}{\preventsingledebugon}
+\DeclareBoolOption[true]{defaults}
+\ProcessKeyvalOptions*
+
+\ifluavlna@defaults
\AtBeginDocument{%
\singlechars{czech}{AIiVvOoUuSsZzKk}
\singlechars{slovak}{AIiVvOoUuSsZzKk}
\compoundinitials{czech}{Ch,CH}
+ \enablesplithyphens{czech}
+ \enablesplithyphens{slovak}
}
+\fi
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/luatex/luavlna/luavlna.tex new/tex/luatex/luavlna/luavlna.tex
--- old/tex/luatex/luavlna/luavlna.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/luatex/luavlna/luavlna.tex 2019-11-07 23:21:01.000000000 +0100
@@ -0,0 +1,124 @@
+% Modify pre_linebreak_filter callback so the spaces can be inserted
+\directlua{%
+luavlna = require "luavlna"
+langno = require "luavlna-langno"
+
+require "ltluatex"
+luatexbase.add_to_callback("pre_linebreak_filter", luavlna.preventsingle,"LuaVlna")
+luatexbase.add_to_callback("hyphenate", luavlna.split_hyphens, "allow hyphen breaks")
+% -- define the attribute number
+luavlna.preventsingleid = math.random(2^16)
+
+local languages = langno.load_languages()
+local get_lang_id = function(lang)
+ local langid = tonumber(lang)
+ if not tonumber(lang) then
+ langid = languages:get_number(lang)
+ end
+ return langid
+end
+
+% Process string and make table of enabled single letters
+% By default, spaces for all single letters are inserted
+% This can be modified with \singlechars macro
+set_singlechars = function(lang,chars)
+ local utf_gmatch = unicode.utf8.gmatch
+ % local langnumbers = languages.names
+ local langid = get_lang_id(lang)
+ if not langid then return nil, "Cannot find language number for: "..lang end
+ local chars = chars or ""
+ local singlechars = {}
+ local percent = string.char(37)
+ local alpha = percent .. "a"
+ for char in utf_gmatch(chars,"("..alpha..")") do
+ singlechars[char] = true
+ end
+ luavlna.singlechars(langid,singlechars)
+end
+
+% set compound characters for initials handling
+% useful for Czech "Ch" etc.
+% comma separated list of compounds
+set_compounds = function(lang, compounds)
+ local langid = get_lang_id(lang)
+ if not langid then return nil, "Cannot find language number for: "..lang end
+ local c = compounds:explode(",+") % match multiple colons as one
+ local compoundstable = {}
+ for _, compound in pairs(c) do
+ compoundstable[compound] = true
+ end
+ luavlna.initials(langid, compoundstable)
+end
+
+set_main_language = function(lang)
+ local langid = languages:get_number(lang)
+ if not langid then return nil, "Cannot find language number for: "..lang end
+ luavlna.set_main_language(langid)
+end
+
+enable_split_hyphens = function(lang)
+ local langid = get_lang_id(lang)
+ if not langid then return nil, "Cannot find language number for: "..lang end
+ luavlna.split_hyphen_langs[langid] = true
+end
+
+disable_split_hyphens = function(lang)
+ local langid = get_lang_id(lang)
+ if not langid then return nil, "Cannot find language number for: "..lang end
+ luavlna.split_hyphen_langs[langid] = nil
+end
+}
+
+% Set letters which are prevented from breaking
+\def\singlechars#1#2{%
+\directlua{set_singlechars("#1","#2")}
+}
+
+% Define compound initials
+\def\compoundinitials#1#2{%
+\directlua{set_compounds("#1","#2")}
+}
+% Enable inserting of visual marks for debugging
+\def\preventsingledebugon{%
+\directlua{luavlna.debug(true)}
+}
+
+\def\preventsinglelang#1{%
+ \directlua{set_main_language("#1")}
+}
+
+%\newluatexattribute\preventsinglestatus
+\attributedef\preventsinglestatus=\directlua{tex.print(luavlna.preventsingleid)} % just a random number
+
+\def\preventsingleon{%
+ \preventsinglestatus=2
+}
+
+\def\preventsingleoff{
+ \preventsinglestatus=1
+}
+% Disable inserting of visual marks for dewbugging
+\def\preventsingledebugoff{%
+\directlua{luavlna.debug(false)}
+}
+
+% enable/disable split hyphens for a language
+
+\def\enablesplithyphens#1{\directlua{enable_split_hyphens("#1")}}
+\def\disablesplithyphens#1{\directlua{disable_split_hyphens("#1")}}
+
+% disable processing of units or degrees
+
+\def\nopredegrees{\directlua{luavlna.no_predegrees = true}}
+\def\nosufdegrees{\directlua{luavlna.no_sufdegrees = true}}
+\def\nounits{\directlua{luavlna.no_unit = true}}
+\def\noinitials{\directlua{luavlna.no_initials = true}}
+
+\ifdefined\nosingledefaults\else
+ \singlechars{czech}{AIiVvOoUuSsZzKk}
+ \singlechars{slovak}{AIiVvOoUuSsZzKk}
+ \compoundinitials{czech}{Ch,CH}
+ \enablesplithyphens{czech}
+ \enablesplithyphens{slovak}
+\fi
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luavlna.tlpobj new/tlpkg/tlpobj/luavlna.tlpobj
--- old/tlpkg/tlpobj/luavlna.tlpobj 2019-02-28 03:52:51.000000000 +0100
+++ new/tlpkg/tlpobj/luavlna.tlpobj 2019-11-08 01:56:05.000000000 +0100
@@ -1,6 +1,6 @@
name luavlna
category Package
-revision 47892
+revision 52682
shortdesc Prevent line breaks after single letter words, units, or adademic titles
relocated 1
longdesc In some languages, like Czech or Polish, there should be no
@@ -16,7 +16,7 @@
longdesc BTW: "vlna" is the Czech word for "wave" or "curl" and also
longdesc denotes the tilde which, in TeX, is used for "unbreakable
longdesc spaces".
-runfiles size=11
+runfiles size=12
RELOC/tex/luatex/luavlna/luavlna-csplain-langs.lua
RELOC/tex/luatex/luavlna/luavlna-langno.lua
RELOC/tex/luatex/luavlna/luavlna-predegrees.lua
@@ -26,11 +26,12 @@
RELOC/tex/luatex/luavlna/luavlna.4ht
RELOC/tex/luatex/luavlna/luavlna.lua
RELOC/tex/luatex/luavlna/luavlna.sty
+ RELOC/tex/luatex/luavlna/luavlna.tex
catalogue-also encxvlna xevlna
catalogue-contact-bugs https://github.com/michal-h21/luavlna/issues
catalogue-contact-repository https://github.com/michal-h21/luavlna
catalogue-ctan /macros/luatex/generic/luavlna
-catalogue-date 2018-06-01 05:09:44 +0200
+catalogue-date 2019-11-07 14:38:13 +0100
catalogue-license lppl1.3
catalogue-topics typesetting czech slovak polish luatex
-catalogue-version 0.1b
+catalogue-version 0.1f
++++++ luaxml.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luaxml/README new/doc/luatex/luaxml/README
--- old/doc/luatex/luaxml/README 2019-01-10 23:20:52.000000000 +0100
+++ new/doc/luatex/luaxml/README 2019-09-20 23:33:58.000000000 +0200
@@ -28,7 +28,7 @@
------
Michal Hoftich
Email: michal.h21@gmail.com
-Version: v0.1h, 2018-12-18
+Version: 0.1l, 2019-09-16
Original authors: Paul Chakravarti and Manoel Campos (http://manoelcampos.com)
Binary files old/doc/luatex/luaxml/luaxml.pdf and new/doc/luatex/luaxml/luaxml.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/luatex/luaxml/luaxml.tex new/doc/luatex/luaxml/luaxml.tex
--- old/doc/luatex/luaxml/luaxml.tex 2019-01-10 23:20:52.000000000 +0100
+++ new/doc/luatex/luaxml/luaxml.tex 2019-09-20 23:33:58.000000000 +0200
@@ -7,7 +7,7 @@
\usepackage{framed}
% Version is defined in the makefile, use default values when compiled directly
\ifdefined\version\else
-\def\version{v0.1h}
+\def\version{0.1l}
\let\gitdate\date
\fi
\newcommand\modulename[1]{\subsection{#1}\label{sec:#1}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/luaxml.doc.tlpobj new/tlpkg/tlpobj/luaxml.doc.tlpobj
--- old/tlpkg/tlpobj/luaxml.doc.tlpobj 2019-02-28 03:52:51.000000000 +0100
+++ new/tlpkg/tlpobj/luaxml.doc.tlpobj 2019-09-21 01:53:52.000000000 +0200
@@ -1,6 +1,6 @@
name luaxml.doc
category Package
-revision 49663
+revision 52137
shortdesc doc files of luaxml
relocated 1
docfiles size=32
++++++ luaxml.tar.xz ++++++
++++ 4538 lines of diff (skipped)
++++++ lwarp.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/latex/lwarp/README.txt new/texmf-dist/doc/latex/lwarp/README.txt
--- old/texmf-dist/doc/latex/lwarp/README.txt 2019-04-03 23:40:52.000000000 +0200
+++ new/texmf-dist/doc/latex/lwarp/README.txt 2020-03-27 22:13:53.000000000 +0100
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.70 README.txt
+LaTeX lwarp package v0.83 README.txt
Files included are:
@@ -41,7 +41,7 @@
version 2005/12/01 or later.
-Copyright 2016-2019 Brian Dunn
+Copyright 2016-2020 Brian Dunn
Homepage: http://BDTechConcepts.com
Email: bd@BDTechConcepts.com
Binary files old/texmf-dist/doc/latex/lwarp/lwarp.pdf and new/texmf-dist/doc/latex/lwarp/lwarp.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/lwarp.doc.tlpobj new/tlpkg/tlpobj/lwarp.doc.tlpobj
--- old/tlpkg/tlpobj/lwarp.doc.tlpobj 2019-04-04 01:24:46.000000000 +0200
+++ new/tlpkg/tlpobj/lwarp.doc.tlpobj 2020-03-28 01:55:24.000000000 +0100
@@ -1,8 +1,8 @@
name lwarp.doc
category Package
-revision 50739
+revision 54586
shortdesc doc files of lwarp
-docfiles size=594
+docfiles size=650
texmf-dist/doc/latex/lwarp/README.txt
texmf-dist/doc/latex/lwarp/lwarp.pdf
texmf-dist/doc/latex/lwarp/lwarp_tutorial.txt
++++++ lwarp.tar.xz ++++++
++++ 23816 lines of diff (skipped)
++++++ lyluatex.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/support/lyluatex/LICENSE new/doc/support/lyluatex/LICENSE
--- old/doc/support/lyluatex/LICENSE 2018-03-13 23:07:05.000000000 +0100
+++ new/doc/support/lyluatex/LICENSE 2019-05-28 23:25:42.000000000 +0200
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2015--2018 jperon and others
+Copyright (c) 2015--2019 jperon and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/support/lyluatex/README.md new/doc/support/lyluatex/README.md
--- old/doc/support/lyluatex/README.md 2018-03-13 23:07:05.000000000 +0100
+++ new/doc/support/lyluatex/README.md 2019-05-28 23:25:42.000000000 +0200
@@ -84,3 +84,14 @@
# Credits
Cf. [Contributors.md](Contributors.md)
+
+# Contributing
+
+If you want improvements or encounter an error, do not hesitate to
+to report the [issue](https://github.com/jperon/lyluatex/issues).
+If you have programming skills, you may also propose your changes
+via a [pull request](https://github.com/jperon/lyluatex/pulls).
+
+This extension is and will remain free; if you find it useful and
+wish to encourage its development by a
+[donation](https://www.paypal.me/abjperon), many thanks!
Binary files old/doc/support/lyluatex/lyluatex.pdf and new/doc/support/lyluatex/lyluatex.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/support/lyluatex/lyluatex.tex new/doc/support/lyluatex/lyluatex.tex
--- old/doc/support/lyluatex/lyluatex.tex 2018-03-13 23:07:05.000000000 +0100
+++ new/doc/support/lyluatex/lyluatex.tex 2019-05-28 23:25:42.000000000 +0200
@@ -40,37 +40,37 @@
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\newenvironment{Shaded}{}{}
-\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
-\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
-\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
+\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
+\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
+\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
-\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
-\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
+\newcommand{\BuiltInTok}[1]{#1}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
-\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
-\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
-\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
-\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
-\newcommand{\ImportTok}[1]{#1}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}}
-\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
-\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
-\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
-\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
-\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
+\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
-\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
-\newcommand{\BuiltInTok}[1]{#1}
+\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
+\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
+\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
+\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\ExtensionTok}[1]{#1}
+\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
+\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
+\newcommand{\ImportTok}[1]{#1}
+\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
+\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
+\newcommand{\NormalTok}[1]{#1}
+\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
+\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
-\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
\newcommand{\RegionMarkerTok}[1]{#1}
-\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
+\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
+\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
+\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
+\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
+\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
-\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
-\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
-\newcommand{\NormalTok}[1]{#1}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
@@ -93,9 +93,9 @@
\title{\lyluatex}
\providecommand{\subtitle}[1]{}
-\subtitle{1.0b}
+\subtitle{1.0f}
\author{Fr. Jacques Peron \and Urs Liska \and Br. Samuel Springuel}
-\date{}
+\date{\lyluatexmanualdate}
\begin{document}
\maketitle
@@ -107,8 +107,8 @@
\hypertarget{introduction}{%
\section{Introduction}\label{introduction}}
-\lyluatex~is a \LaTeX~package that manages the inclusion of musical
-scores in \LaTeX~documents. It uses the GNU LilyPond\footnote{\url{http://lilypond.org}}
+\lyluatex~is a comprehensive \LuaLaTeX~package to manage the inclusion
+of musical scores in text documents. It uses the GNU LilyPond\footnote{\url{http://lilypond.org}}
score writer to produce beautiful music elements in beautifully typeset
text documents. \lyluatex~supports a wide range of use cases and lends
itself equally well to authoring musicological texts with music examples
@@ -119,10 +119,10 @@
\lyluatex~is inspired by and provides a fully compatible drop-in
replacement to
\href{http://lilypond.org/doc/v2.18/Documentation/usage/invoking-lilypond_002dbook.html}{lilypond-book},
-a \LaTeX~document preprocessor shipping with LilyPond. However, thanks
-to the use of \LuaLaTeX~it can overcome substantial limitations of the
-scripted solution, and it actually is a \emph{superset} of
-\texttt{lilypond-book}, providing numerous additional features.
+a \LaTeX~document preprocessor shipping with LilyPond, which it actually
+is a \emph{superset} of. However, thanks to the use of \LuaLaTeX~it can
+overcome substantial usability limitations of the scripted solution and
+provide numerous additional features.
\lyluatex's main features include:
@@ -141,79 +141,89 @@
Comprehensive configuration through global and per-score options
\end{itemize}
-\hypertarget{installation}{%
-\subsection{Installation}\label{installation}}
-
-\hypertarget{for-a-single-document}{%
-\subsubsection{For a single document}\label{for-a-single-document}}
-
-Copy \texttt{lyluatex.sty} and \texttt{lyluatex.lua} into the folder
-containing the document you wish to typeset.
-
-\hypertarget{for-all-documents-compiled-with-your-latex-distribution}{%
-\subsubsection{For all documents compiled with your LaTeX
-distribution}\label{for-all-documents-compiled-with-your-latex-distribution}}
-
-\hypertarget{texlive-version}{%
-\paragraph{TeXLive version}\label{texlive-version}}
-
-Just run this command~:
+What \lyluatex~does \emph{not} try to do is managing the handling of
+floating environments, counters and lists of music examples. The
+\emph{ly}\LuaTeX\textsc{mp} package\footnote{\url{https://github.com/uliska/lyluatexmp}}
+is currently under construction and practical testing and will
+eventually be released to become a suitable wrapper for using
+\lyluatex~to create numbered music examples.
+
+\hypertarget{installation-and-requirements}{%
+\subsection{Installation and
+Requirements}\label{installation-and-requirements}}
+
+\hypertarget{prerequisites}{%
+\subsubsection{Prerequisites}\label{prerequisites}}
+
+As the name \lyluatex~implies this package can only be used with the
+\LuaLaTeX~engine. For more information on this please refer to
+\protect\hyperlink{usage}{Usage} below.
+
+Musical scores are created in real-time (instead of incorporating
+pre-built \emph{image} files) using the GNU LilyPond\footnote{\url{http://lilypond.org}}
+score writer, so of course this has to be installed too.
+\lyluatex~should work with any versions of LilyPond but it has been
+developed against the stable and development versions that were current
+at the time of this writing: 2.18.2 and 2.19.83.
+
+\hypertarget{texlive-and-miktex}{%
+\subsubsection{TeXLive and MiKTeX}\label{texlive-and-miktex}}
+
+\lyluatex~is included in both the TeXLive and MiKTeX
+\LaTeX~distributions and can be installed through their package
+management systems. In TeXLive it is included in the
+\texttt{texlive-music} collection and -- of course -- in
+\texttt{texlive-full}. If neither of these collections is installed
+\lyluatex~can be added to a TeXLive installation by running
\begin{verbatim}
tlmgr install lyluatex
\end{verbatim}
-\hypertarget{latest-version}{%
-\paragraph{Latest version}\label{latest-version}}
-
-Copy \texttt{lyluatex.sty} and \texttt{lyluatex.lua} from this
-repository into your \texttt{TEXMF} tree, or clone this repostory into
-your \texttt{TEXMF} tree using Git, then run \texttt{mktexlsr}. Note
-that in this case your local copy will shadow the version possibly
-installed in your \TeX~distribution.
+from the command line.
-\hypertarget{usage}{%
-\section{Usage}\label{usage}}
+\textbf{TODO:} Document handling with MiKTeX.
-\lyluatex~is loaded with the command
-\texttt{\textbackslash{}usepackage\{lyluatex\}} which also accepts a
-number of \texttt{key=value} options. Their general use is described in
-the \protect\hyperlink{option-handling}{Option Handling} section below.
+\hypertarget{latest-version}{%
+\subsubsection{Latest version}\label{latest-version}}
-By default \lyluatex~invokes LilyPond simply as \texttt{lilypond}. If
-LilyPond is installed in another location or a specific version of
-LilyPond should be used the invocation is controlled with the
-\option{program} option, see \protect\hyperlink{program}{The LilyPond
-Executable}.
+The \lyluatex~versions shipped with the \LaTeX~distributions may be
+significantly outdated so you may want to install and use the latest
+version from the Github repository\footnote{\url{https://github.com/jperon/lyluatex}}
+instead.
-\lyIssue{Note:} \lyluatex~can only be used with \LuaLaTeX, and compiling
-with any other \LaTeX~engine will fail.
+Copy \texttt{lyluatex.sty} and \texttt{lyluatex.lua} from this
+repository into your \texttt{\$TEXMFHOME} tree, or clone this repostory
+into your \texttt{\$TEXMFHOME} tree using Git. In many cases this will
+be \texttt{\$HOME/texmf}, and \lyluatex~should be located below
+\texttt{\$TEXMFHOME/tex/luatex}. It is important that this is the
+\texttt{tex/luatex} subtree rather than \texttt{tex/latex}: if
+\lyluatex~should \emph{also} be present in the \LaTeX~distribution
+\LuaLaTeX~would otherwise find that version first and use that instead
+of your local clone.
+
+\lyMargin{Note:}
+
+It may be useful to clone the Git repository not into the
+\texttt{\$TEXMFHOME} tree directly but to some arbitrary location and
+link to that. Please note that \LuaLaTeX~will only follow such symbolic
+links if there is at least one \emph{real} subdirectory in each
+directory. So if there is a directory \texttt{\$TEXMFHOME/tex/luatex}
+containing \emph{only} symbolic links it is necessary to create a dummy
+subdirectory in it.
-\lyIssue{Note:} In order to avoid unexpected behaviour it is strongly
-suggested that documents are generally compiled from their actual
-directory, i.e.~without referring to it through a path.
+\hypertarget{for-a-single-document}{%
+\subsubsection{For a single document}\label{for-a-single-document}}
-\lyIssue{NOTE:} \lyluatex~requires that \LuaLaTeX~is started with the
-\texttt{-\/-shell-escape} command line option to enable the execution of
-arbitrary shell commands, which is necessary to let LilyPond compile the
-inserted scores on-the-fly and to perform some auxiliary shell
-operations. However, this opens a significant security hole, and only
-fully trusted input files should be compiled. You may mitigate (but not
-totally remove) this security hole by adding \texttt{lilypond} and
-\texttt{gs} to \texttt{shell\_escape\_commands}, and using
-\texttt{-\/-shell-restricted} instead of \texttt{-\/-shell-escape}: look
-at the documentation of your \TeX~distribution. For example, on Debian
-Linux with TeXLive:
+Copy \texttt{lyluatex.sty} and \texttt{lyluatex.lua} into the folder
+containing the document you wish to typeset.
-\begin{Shaded}
-\begin{Highlighting}[]
-\ExtensionTok{%}\NormalTok{ export shell_escape_commands=}\VariableTok{$(}\ExtensionTok{kpsewhich}\NormalTok{ -expand-var }\StringTok{'$shell_escape_commands'}\VariableTok{)}\NormalTok{,lilypond,gs}
-\ExtensionTok{%}\NormalTok{ lualatex --shell-restricted DOCUMENT.tex}
-\end{Highlighting}
-\end{Shaded}
+\hypertarget{usage}{%
+\section{Usage}\label{usage}}
-\hypertarget{basic-operation}{%
-\subsection{Basic Operation}\label{basic-operation}}
+\hypertarget{the-big-picture-and-caveats}{%
+\subsection{The Big Picture and
+caveats}\label{the-big-picture-and-caveats}}
Once \lyluatex~is loaded it provides commands and environments to
include musical scores and score fragments which are produced using the
@@ -224,7 +234,11 @@
mechanism --, and it will match the score's layout to that of the text
document. \lyluatex~will produce PDF image files which are automatically
included within the current paragraph, in their own paragraphs or as
-full pages.
+full pages. The behaviour of \lyluatex~and the appearance of the
+resulting scores are highly configurable through package, global, and
+per-score options which are globally described in the
+\protect\hyperlink{option-handling}{Option Handling} section below and
+in detail throughout the rest of this manual.
\lyluatex~aims at being an upwards-compatible drop-in replacement for
the \highlight{lilypond-book} preprocessor shipping with
@@ -257,6 +271,67 @@
\highlight{lilypond-book}, you should load it with options as follows:
\cmd{usepackage[nofragment, insert=systems]\{lyluatex\}}.
+\lyIssue{Note:}
+
+By default \lyluatex~invokes LilyPond simply as \texttt{lilypond}. If
+LilyPond is installed in another location or a specific version of
+LilyPond should be used the invocation is controlled with the
+\option{program} option, see \protect\hyperlink{program}{The LilyPond
+Executable}.
+
+\lyIssue{Note:} \lyluatex~can only be used with \LuaLaTeX, and compiling
+with any other \LaTeX~engine will fail.
+
+\lyIssue{Note:} In order to avoid unexpected behaviour it is strongly
+suggested that documents are generally compiled from their actual
+directory, i.e.~without referring to it through a path. This is because
+in many places during the compilation process relative paths are
+calculated from this starting point. Building \emph{out-of-tree} isn't
+supported, though it should be possible with the following workarounds:
+
+\begin{enumerate}
+\def\labelenumi{\arabic{enumi}.}
+\tightlist
+\item
+ \texttt{includepaths=\{..\}}: (for example, if you build from a
+ subdirectory of main directory) tell lyluatex to search the parent
+ directory;
+\item
+ if the book contain figures, enter only the name of the files, then
+ set two paths, e.g.:
+ \texttt{\textbackslash{}graphicspath\{\{images/\}\{../images/\}\}}, so
+ images will be found either way.
+\end{enumerate}
+
+\lyIssue{NOTE:} \lyluatex~requires that \LuaLaTeX~is started with the
+\texttt{-\/-shell-escape} command line option to enable the execution of
+arbitrary shell commands, which is necessary to let LilyPond compile the
+inserted scores on-the-fly and to perform some auxiliary shell
+operations. However, this opens a significant security hole, and only
+fully trusted input files should be compiled. You may mitigate (but not
+totally remove) this security hole by adding \texttt{lilypond} and
+\texttt{gs} to \texttt{shell\_escape\_commands}, and using
+\texttt{-\/-shell-restricted} instead of \texttt{-\/-shell-escape}: look
+at the documentation of your \TeX~distribution. For example, on Debian
+Linux with TeXLive:
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\ExtensionTok{%}\NormalTok{ export shell_escape_commands=}\VariableTok{$(}\ExtensionTok{kpsewhich}\NormalTok{ -expand-var }\StringTok{'$shell_escape_commands'}\VariableTok{)}\NormalTok{,lilypond,gs}
+\ExtensionTok{%}\NormalTok{ lualatex --shell-restricted DOCUMENT.tex}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{basic-operation}{%
+\subsection{Basic Operation}\label{basic-operation}}
+
+\lyluatex~is loaded with the command
+\texttt{\textbackslash{}usepackage\{lyluatex\}} which also accepts a
+number of \texttt{key=value} options. Their general use is described in
+the \protect\hyperlink{option-handling}{Option Handling} section below.
+If LilyPond can be invoked through \texttt{lilypond} on the given system
+using the package without any options already provides a usable system.
+
\lyMargin{lilypond\index{lilypond}}
The basic mode of inserting scores into text documents is the
@@ -311,6 +386,15 @@
and all options will be used to determine if the score has already been
compiled earlier, so unnecessary recompilations are avoided.
+\lyIssue{Note:} Despite its familiar appearance, this environment is
+very special, using a mechanism specific to \LuaLaTeX. One consequence
+is that you necessarily need a newline after
+\texttt{\textbackslash{}begin\{lilypond\}}, and before
+\texttt{\textbackslash{}end\{lilypond\}}; another is that you have to be
+careful when you want to wrap this environment in a custom one: see
+\protect\hyperlink{wrapping-commands}{Wrapping \lyluatex~commands} and
+the examples at the end of the manual.
+
\lyCmd{lilypond}
Very short fragments of LilyPond code can be entered inline using the
@@ -479,10 +563,28 @@
files representing one system each. By default the systems are separated
by a paragraph and a variable skip depending on the staffsize.
+\lyIssue{Note:}
+
+\option{insert=systems} implies the use of
+\texttt{lilypond-book-preamble.ly}. It is worth pointing out that the
+score will \emph{not} have any notion of pages anymore - resulting in
+the staff-staff spacing to be minimal/natural. Usually LilyPond will
+space out the inter-staff (not -system!) space when the page is not
+filled, but with \option{insert=systems} this will not happen. While
+this behavior is usually desirable when including score examples in
+text, it may result in suboptimal output for multi-page scores, when
+there's the typical issues of how many systems will fit on a page.
+
+Also notice that by default pages will be ragged-bottom, and LilyPond
+will not make any efforts to optimize page breaks.
+\cmd{betweenLilyPondSystem} can be used when the space between systems
+seems too tight, for example using something like
+\texttt{\textbackslash{}vfill}.
+
\lyCmd{betweenLilyPondSystem}
-However, if a macro \cmd{betweenLilyPondSystem} is defined it will be
-expanded between each system. This macro is documented in
+If a macro \cmd{betweenLilyPondSystem} is defined it will be expanded
+between each system. This macro is documented in
\href{http://lilypond.org/doc/v2.18/Documentation/usage/latex}{LilyPond
documentation}. It must accept one argument, which will be the number of
systems already printed in the score (`1' after the first system). With
@@ -540,6 +642,15 @@
setting of these two options means that LilyPond does \emph{not} print
page numbers while \LaTeX~continues to print headers and footers.
+The same may be achieved only for first page with
+\option{print-first-page-number}.
+
+\lyOption{first-page-number}{false}
+
+Normally, \lyluatex~should automatically determine the first page number
+of the score to match its place in the document. Should you like to
+force it to another value, you may do it thanks to this option.
+
\hypertarget{inline}{%
\subsubsection{Inline}\label{inline}}
@@ -685,6 +796,13 @@
\option{indent=0pt}. Please also see the section about
\protect\hyperlink{indent}{Dynamic Indentation}.
+\lyOption{system-count}{}
+
+Forces LilyPond to produce a fixed number of systems. This may be useful
+when LilyPond breaks a score that can manually be squeezed to one system
+less, but it is also possible to spread out a score to more systems than
+LilyPond would consider necessary.
+
\lyOption{quote}{false}
This option, which is there for compatibility with
@@ -768,7 +886,9 @@
}
\end{lilypond}
-\lyOption{max-protrusion}{\cmd{maxdimen}}\lyOption{max-left-protrusion}{default}\lyOption{max-right-protrusion}{default}
+\lyOption{max-protrusion}{\cmd{maxdimen}}
+\lyOption{max-left-protrusion}{default}
+\lyOption{max-right-protrusion}{default}
These options set the protrusion limit. If either of the \texttt{-left-}
or \texttt{-right-} options is unset then the value will be taken from
@@ -1116,7 +1236,9 @@
each other. Therefore \lyluatex~by default passes the text document's
three font families to their directy LilyPond counterparts.
-\lyOption{rmfamily}{}\lyOption{sffamily}{}\lyOption{ttfamily}{}
+\lyOption{rmfamily}{}
+\lyOption{sffamily}{}
+\lyOption{ttfamily}{}
The roman, sans, and mono fonts can also be specified explicitly to be
passed into the LilyPond document independently from the text document's
@@ -1359,10 +1481,10 @@
\lyOption{includepaths}{./}
-With the \option{includepaths} option a comma-separated list of search
-paths can be specified. These paths will be used by \lyluatex~to locate
-external files, and relative paths are searched for in the following
-order:
+With the \option{includepaths} option a comma-separated list (enclosed
+in curly brackets) of search paths can be specified. These paths will be
+used by \lyluatex~to locate external files, and relative paths are
+searched for in the following order:
\begin{itemize}
\tightlist
@@ -1381,6 +1503,14 @@
code. Paths starting with the tilde will implicitly be expanded to
absolute paths in that process.
+\begin{Shaded}
+\begin{Highlighting}[]
+\FunctionTok{\textbackslash{}lysetoption}\NormalTok{\{includepaths\}\{}\FunctionTok{\textbackslash{}string}\NormalTok{~/lilypond-lib\}}
+
+\FunctionTok{\textbackslash{}lilypondfile}\NormalTok{[includepaths=\{}\FunctionTok{\textbackslash{}string}\NormalTok{~/lilypond-lib,/home/johndoe/project-lib\}]}
+\end{Highlighting}
+\end{Shaded}
+
\hypertarget{program}{%
\subsubsection{LilyPond Executable}\label{program}}
@@ -1454,6 +1584,36 @@
\texttt{\textless{}documentname\textgreater{}.list} files and only
remove scores that are not referenced by \emph{any} list file.
+\hypertarget{writing-headers-to-include-file}{%
+\subsubsection{Writing headers to include
+file}\label{writing-headers-to-include-file}}
+
+\lyOption{write-headers}{false}
+
+When using \texttt{\textbackslash{}lilypondfile} it is possible to write
+a copy of the LilyPond headers defining the layout and appearance of the
+score to an include file. When working on the score in an external
+editor this makes it possible to include this file to see the score in
+the layout it will have in the final \LaTeX\\
+document. Using this option together with non-filebased scores makes no
+sense, therefore it is ignored while a warning is issued.
+
+\emph{NOTE}: Of course this will produce conflicts if a LilyPond file is
+used in multiple \LaTeX~documents.
+
+If set to a \emph{path} the LilyPond headers defining the layout and
+appearance of the score will be exported to a file
+\texttt{\textless{}path\textgreater{}/\textless{}input-file-basename\textgreater{}-lyluatex-headers.ily}.
+The target directory will be created if necessary.
+
+If set to a \emph{filename} (i.e.~a path with a file extension) the
+headers will be written to this specific file. This is useful because in
+most cases the headers will be consistent throughout a \LaTeX~document,
+so it should be unncecessary to copy them for all input files. A typical
+use case might be to specify one header file as a package option while
+overriding the option for specific scores that require different headers
+(e.g.~in combination with a different \texttt{staffsize})
+
\hypertarget{pdf-optimization}{%
\subsubsection{PDF optimization}\label{pdf-optimization}}
@@ -1472,7 +1632,10 @@
basic problem is when LilyPond can't be started at all. \lyluatex~will
correctly determine and report an error if \LuaLaTeX~has been started
without the \option{--shell-escape} option or if the \option{program}
-option doesn't point to a valid LilyPond executable.
+option doesn't point to a valid LilyPond executable. However, if the
+\option{showfailed} option is also set then only a \emph{warning} is
+issued while instead of a score an information box is created in the
+document, informing about the problem.
Two other situations that are correctly recognized are when LilyPond
\emph{reports} a compilation failure but still produces a (potentially
@@ -1501,6 +1664,30 @@
warning is issued and a box with an informative text is typeset into the
resulting document.
+\hypertarget{forcing-re-compilation}{%
+\subsubsection{Forcing (Re-)Compilation}\label{forcing-re-compilation}}
+
+\lyOption{force-compilation}{false}
+
+In some cases \lyluatex's heuristics to determine the need for
+recompilation may fail, especially when not all relevant code is
+included through LilyPond's \cmd{include} command, in which cases
+\lyluatex~may consider the content unchanged. In such cases the
+\option{force-compilation} option skips the checks and unconditionally
+recompiles the score, which may be a better solution than to
+(selectively) delete the scores from the \option{tmpdir} directory.
+
+\hypertarget{bug-workaround}{%
+\subsubsection{Bug workaround}\label{bug-workaround}}
+
+\lyOption{fix\_badly\_cropped\_staffgroup\_brackets}{false}
+
+This option is a dirty workaround for a
+\href{https://lists.gnu.org/archive/html/lilypond-user/2018-11/msg00039.html}{known
+bug} of LilyPond. It's disabled by default; should you enable it
+globally, you may cancel it locally with
+\option{nofix\_badly\_cropped\_staffgroup\_brackets}.
+
\hypertarget{musicxml-options}{%
\subsection{MusicXML options}\label{musicxml-options}}
@@ -1509,7 +1696,9 @@
This option does the same for \texttt{\textbackslash{}musicxmlfile} as
\option{program} for \texttt{\textbackslash{}lilypondfile}.
-\lyOption{language}{}\lyOption{absolute, lxml, verbose}{false}\lyOption{
+\lyOption{language}{}
+\lyOption{absolute, lxml, verbose}{false}
+\lyOption{
no-articulation-directions, no-beaming, no-page-layout, no-rest-positions
}{true}
@@ -1574,7 +1763,8 @@
be found in \protect\hyperlink{insert-raw-pdf}{Wrapping Raw PDF
Filenames}.
-\printindex\addcontentsline{toc}{section}{Index}
+\printindex
+\addcontentsline{toc}{section}{Index}
\hypertarget{examples}{%
\section{Examples}\label{examples}}
@@ -1584,31 +1774,22 @@
\addcontentsline{toc}{subsection}{Insert Systems}
\hypertarget{insert-systems}{}
-
\section*{Insert System-by-System}
-
By default scores defined by the \option{lilypond} environment or the \cmd{lilypondfile} command are inserted as a sequence of systems.
-
\lyluatex\ determines the vertical space between the systems as a flexible length calculated from the \emph{staff size} of the score (as opposed to from the font size) to produce an regular-looking vertical spacing:
-
\begin{lilypond}[]
{
\repeat unfold 30 { c' d' e' d' }
}
\end{lilypond}
-
The following score has a significantly smaller staff size, and consequently the inter-system space is reduced:
-
\begin{lilypond}[staffsize=12]
{
\repeat unfold 36 { c' d' e' d' }
}
\end{lilypond}
-
\subsection*{Before and After the Score}
-
\cmd{preLilyPondExample} and \cmd{postLilyPondExample} allow some code to be printed before and after the score. This may for example be used to wrap the resulting score in an environment. In the following example rules are printed:
-
\def\preLilyPondExample{%
\par\bigskip
\noindent Before the score:
@@ -1617,43 +1798,35 @@
\par\bigskip
\hrule\par\medskip\noindent After the score
\par\bigskip}
-
\begin{verbatim}
\newcommand{\preLilyPondExample}{%
\par\bigskip
\noindent Before the score:
\par\medskip\hrule\par\medskip}
-
\newcommand{\postLilyPondExample}{%
\par\bigskip
\hrule\par\medskip\noindent After the score
\par\bigskip}
\end{verbatim}
-
\begin{lilypond}[]
{
\repeat unfold 30 { c' d' e' d' }
}
\end{lilypond}
-
\subsection*{Configuring the Inter-System Content}
-
\let\preLilyPondExample\undefined
\let\postLilyPondExample\undefined
-
Using \cmd{betweenLilyPondSystem} it is possible to define a macro that is
expanded between each system pair. It is given the index of the previous system
as an argument to work with. The following example simply prints that index
between the systems, but with some programming more complicated and useful
things could be done, for example printing a rule after every third system or
conditionally insert a page break.
-
\def\betweenLilyPondSystem#1{%
\begin{center}
System #1
\end{center}
}
-
\begin{verbatim}
\newcommand{\betweenLilyPondSystem}[1]{%
\begin{center}
@@ -1661,53 +1834,42 @@
\end{center}
}
\end{verbatim}
-
\bigskip
-
\begin{lilypond}[]
{
\repeat unfold 30 { c' d' e' d' }
}
\end{lilypond}
-
\let\betweenLilyPondSystem\undefined
-
\addcontentsline{toc}{subsection}{Insert Inline}
\hypertarget{insert-inline}{}
-
\section*{Insert Scores Inline}
-
With the \option{insert=inline} option it is simple to insert arbitrary
notational fragments in the \lilypond{ e'8 d'16 e' } continuous text of a
document. By default the staffsize is scaled to be 2/3 of the staffsize a
regular score would have at this point. This means if the \option{staffsize}
option is modified globally or locally then the staffsize of the inline score is
changed too.
-
In order to make the size of inline scores independent from the regular
staffsize the option \option{inline-staffsize} can be used the same way as
\option{staffsize}. \lilypond[inline-staffsize=8]{ e'8 d'16 e' } has the inline
staffsize manually set to \texttt{8}.
-
\paragraph{Alignment and padding} By default inline scores are vertically
centered to a line 1/2em above the text's baseline. \lilypond[valign=top]{ e'8
d'16 e' } but the score can also be aligned \lilypond[valign=bottom]{ e'8 d'16
e' } to the top or the baseline of the text.
-
Unfortunately this can only consider the borders of the \emph{image} and not
those of the \emph{score} or the staff lines. To alleviate this situation a
specific vertical offset can be given with \option{voffset=-3pt} (or any other
\TeX\ lengths). This offset is calculated after the alignment.
\lilypond[valign=bottom,voffset=-6pt]{ e'8 d'16 e' } is inserted with
\option{valign=bottom,voffset=-4pt}.
-
Horizontally inline scores are padded by \option{hpadding=0.75ex} -- except if
they happen to appear at the beginning or end of a line, as can be seen in the
last score in the previous paragraph. \lilypond[hpadding=2em]{ e'8 d'16 e' }
Increasing the \option{hpadding} will ensure more space around the score.
-
\paragraph{Bare Inline scores} \option{insert=bare-inline} will remove all the
staff elements (staff symbol, time signature, clef) by implicitly applying
\option{nostaff}, which is most useful for including notational symbols like
@@ -1723,156 +1885,121 @@
precompiled PDF images.
-
\addcontentsline{toc}{subsection}{Choosing Systems}
\hypertarget{print-only}{}
-
\def\postLilyPondExample{\par\bigskip\hrule\par\bigskip}
-
\section*{Print only Selected Systems or Pages}
-
-The \texttt{print-only} option allows to limit the printed systems or pages from
-a score. A typical use case is to print a score interspersed with comments. The
-advantage of this approach is that the score is compiled only once while the
-individual systems are simply reused by \LaTeX.
-
+The \texttt{print-only} and \texttt{do-not-print} options allow to limit
+the printed systems or pages from a score. A typical use case is to print
+a score interspersed with comments. The advantage of this approach is that
+the score is compiled only once while the individual systems are simply
+reused by \LaTeX.
Throughout this document we'll demonstrate the different options to
select systems from the following score:
-
\lilypondfile[verbatim]{eight-systems.ly}
-
The simplest selection is a single system: \texttt{print-only=4}
-
\lilypondfile[print-only=4]{eight-systems.ly}
-
Ranges are also possible: \texttt{print-only=3-5}, with the special form of
\texttt{print-only=6-} which prints from the given system throughout the end of
the score. Negative ranges can be given with \texttt{print-only=7-5}
-
\lilypondfile[print-only=3-5]{eight-systems.ly}
-
\lilypondfile[print-only=6-]{eight-systems.ly}
-
\lilypondfile[print-only=7-5]{eight-systems.ly}
-
With a comma-separated list an arbitrary sequence of systems can be specified.
The list has to be enclosed in curly brackets: \texttt{print-only={4,1,2}}
-
\lilypondfile[print-only={4,1,2}]{eight-systems.ly}
-
Each element of the list can include any of the forms described above:\\
\texttt{print-only={3,5-7,4,7-}}
-
\lilypondfile[print-only={3,5-7,4,7-}]{eight-systems.ly}
-
+\texttt{do-not-print} does the opposite: it prevents the list of systems from
+being printed. It might be used alone, or in combination with
+\texttt{print-only}:\\
+\texttt{print-only=3-,do-not-print=6}
+\lilypondfile[print-only=3-,do-not-print=6]{eight-systems.ly}
The functionality is identical with fullpage scores where the selection applies
to \emph{pages} instead. This can for example be used when the “score” file
contains a number of individual pieces (e.g. songs for a song book), and
individual selections are to be printed.
-
-Systems have some specific behaviour with regard to \emph{indent}, but this is demonstrated in its own file \texttt{dynamic-indent.tex}.
-
+Systems have some specific behaviour with regard to \emph{indent},
+but this is demonstrated in its own file \texttt{dynamic-indent.tex}.
\let\postLilyPondExample\undefined
-
\addcontentsline{toc}{subsection}{Dynamic Indent Handling}
\hypertarget{dynamic-indent}{}
-
\def\postLilyPondExample{\par\bigskip\hrule\par\bigskip}
-
\section*{Dynamic Indent}
-
This document demonstrates the use of \texttt{indent} and \texttt{autoindent},
partially in combination with \texttt{print-only}.
-
\texttt{indent=1cm} indents the first line, but if the resulting score contains
only one system this indent is suppressed (issuing a warning on the console):
-
\begin{lilypond}[indent=1cm]
\set Staff.instrumentName = "Violin"
\repeat unfold 12 { c' d' e' d' }
\end{lilypond}
-
\begin{lilypond}[indent=1cm]
{
\set Staff.instrumentName = "Violin"
c' d' e' d'
}
\end{lilypond}
-
If the output of a score which contains more than one system is limited to the
first system using \texttt{print-only=1} then the indent is removed but the
score is recompiled to ensure a full-length system. The following score shows
the two-system score from above (with \texttt{indent=1cm}), limited to its first
system:
-
\begin{lilypond}[indent=1cm,print-only=1]
\set Staff.instrumentName = "Violin"
\repeat unfold 12 { c' d' e' d' }
\end{lilypond}
-
Note that this behaviour also applies when \texttt{print-only} causes the first
system to be printed at another position, e.g. with \texttt{print-only={3,1,2}}.
In this case the indent of the first system is suppressed in order to avoid a
“hole”. Of course this is a corner case, but might be useful when a score
consists of separate entities (examples, exercises) per system.
-
\begin{lilypond}[indent=1cm,print-only={3,1,2},max-protrusion=0.5cm]
\repeat unfold 25 { c' d' e' d' }
\end{lilypond}
-
If a protrusion limit has been set with \texttt{max-protrusion=0.5cm} and the
score exceeds that limit in spite of \texttt{indent=1cm} then the whole score
will appropriately be narrowed:
-
\begin{lilypond}[indent=1cm,max-protrusion=0.5cm]
\set Staff.instrumentName = "Violin I. and II."
\repeat unfold 11 { c' d' e' d' }
\end{lilypond}
-
-
This doesn't really look good because the indentation of the second system
wouldn't have been necessary since only the first system exceeds the protrusion
limit. The solution to this situation is the option \texttt{autoindent} which
handles the indentation \emph{automatically} and set the indent to a value that
will make the \emph{first} system fit into the protrusion limit and leave the
remaining systems unchanged:
-
\begin{lilypond}[autoindent=true,max-protrusion=0.5cm]
\set Staff.instrumentName = "Violin I. and II."
\repeat unfold 11 { c' d' e' d' }
\end{lilypond}
-
-
However, if the protrusion limit is not only exceeded by the \emph{first} system
(which should be the typical case due to the instrument name) \texttt{lyluatex}
will deal with the situation by narrowing the \emph{whole} score by the
appropriate amount and adjusting the indent of the first system so all systems
will just fit into the protrusion limit:
-
\begin{lilypond}[autoindent=true,max-protrusion=0.5cm]
\set Staff.instrumentName = "Violin I. and II."
\set Staff.shortInstrumentName = "Violin I/II"
\repeat unfold 11 { c' d' e' d' }
\end{lilypond}
-
There is one special case to be mentioned. As described above the indent is
deactivated if the first system of a score is printed at a later position.
However, if this score will exceed the left protrusion limit \texttt{autoindent}
will be automatically activated to avoid having the \emph{whole} score narrowed:
-
\begin{lilypond}[indent=1cm,print-only={3,1,2},max-protrusion=0.5cm]
\set Staff.instrumentName = "Violin"
\repeat unfold 25 { c' d' e' d' }
\end{lilypond}
-
\paragraph{Right protrusion}
The dynamic handling of (automatic) indent also works correctly when there is
protrusion handling to the right. The following score has the ties manually
shaped to exceed the staff symbol by 10, and 7 staff spaces, and
\texttt{max-protrusion=1cm} .
-
\begin{lilypond}[nofragment,max-protrusion=1cm,]
{
\set Staff.instrumentName = "Violin 1 & 2"
@@ -1884,57 +2011,42 @@
c'
}
\end{lilypond}
-
-
\paragraph{Performance considerations}
The handling of indent suppression may require up to four compilations of the
score, but these are handled automatically, and the resulting intermediate
stages of the score are cached just like the scores actually used in the
document.
-
The \texttt{autoindent} option is active by default but will be deactivated if
\texttt{indent} is set explicitly. It has to be noted that this option will add
more LilyPond compilations and therefore compilation time. But it will only
apply and be executed if the score exceeds the protrusion limit, so it can only
occur in circumstances where multiple LilyPond runs are expected anyway.
-
\let\postLilyPondExample\undefined
-
\addcontentsline{toc}{subsection}{Font Handling}
\hypertarget{fonts}{}
-
\defaultfontfeatures{Ligatures=TeX,Numbers=OldStyle,Scale=MatchLowercase}
\setmainfont{Linux Libertine O}
\setsansfont[BoldFont={Linux Biolinum O Bold}]{Linux Biolinum O}
\setmonofont{Inconsolata}
-
\section*{Font Handling}
-
To demonstrate the font handling features of \lyluatex\ we will repeatedly
include the following score from an external file. It includes roman (lyrics,
instrument name), sans (rehearsal mark), and mono (tempo) text, first using
LilyPond's built-in default fonts.
-
\lilypondfile[verbatim]{fonts}
-
\bigskip
The current document uses \option{fontspec} to set roman font to \emph{Linux
Libertine O}, sans font to \emph{Linux Biolinum O}, and mono font to
\emph{Inconsolata}. So if you compile this document yourself and don't have
these fonts installed you will receive unexpected results.
-
\subsection*{Passing Document Fonts to Score}
-
With \option{pass-fonts} the currently active font families for roman, sans, and
mono fonts are passed to LilyPond in order to achieve the most coherent
appearance between text and music.
-
\bigskip
-
\lilypondfile[pass-fonts]{fonts}
-
\bigskip
Note that LilyPond loads fonts differently than \LaTeX\ and can only make use of
fonts installed as system fonts, fonts that are only installed through a \LaTeX\
@@ -1942,14 +2054,11 @@
not installed system-wide (e.\,g. the default fonts) LilyPond will use rather
ugly fallback fonts. This can't be demonstrated here but the section about
explicitly setting font families will include an example.
-
The inherent problem of fallback fonts, especially with \LaTeX's default
settings, is the reason \option{pass-fonts} is inactive by default. But the
general recommendation is to set \option{pass-fonts} as package option if the
text document uses fonts that are available to LilyPond.
-
\bigskip
-
\sffamily \option{current-font-as-main} will use the font that is
\emph{currently} used for typesetting as LilyPond's main (roman) font. This can
make sure that the score's main font (and roman is usually the font used most in
@@ -1960,12 +2069,9 @@
inconsistency not between the score and the surrounding text but between
different scores in a document. For all these reasons the option is by default
set to \texttt{false}.
-
\bigskip
\lilypondfile[pass-fonts,current-font-as-main]{fonts}
-
\subsection*{Setting Score Fonts Explicitly}
-
With \option{rmfamily}, \option{sffamily}, and \option{ttfamily} specific
families can be set to arbitrary fonts, independently from the text document.
For the following score \option{ttfamily=\{TeXGyre Adventor\}} is
@@ -1973,31 +2079,24 @@
installed if you want to successfully compile this document.} Note that this
implicitly sets \option{pass-fonts=true}, and \emph{Linux Libertine O} and
\emph{Linux Biolinum O} are used from the text document.
-
\bigskip
\lilypondfile[ttfamily={TeXGyre Adventor}]{fonts}
-
\highlight{NOTE:} when \option{rmfamily} is set explicitly
\option{current-font-as-main} is forced to \texttt{false} to ensure that the
roman font is actually used. The next score sets \option{rmfamily=\{TeXGyre
Adventor\}} and \option{current-font-as-main}, and despite the current font still being \cmd{sffamily}
\emph{Adventor} is used as the score's main font:
-
\bigskip
\lilypondfile[current-font-as-main,rmfamily={TeXGyre Adventor}]{fonts}
-
\subsection*{LilyPond's Font Fallback}
-
If unavailable fonts are set in a LilyPond document they will \emph{silently} be
replaced with fallback fonts that tend to cause ugly results. This will be shown
by setting \option{rmfamily=FantasyFontOne}, \option{sffamily=FantasyFontTwo},
and \option{tfamily=FantasyFontThree}:
-
\bigskip
\lilypondfile[rmfamily=FantasyFontOne,%
sffamily=FantasyFontTwo,%
ttfamily=FantasyFontThree]{fonts}
-
This can happen in several contexts: apart from compiling the document on a
different computer where the used fonts are missing it is most likely to occur
with the \option{pass-fonts} option, when the text document uses internal
@@ -2005,27 +2104,28 @@
family is specified explicitly with an option and the other families are passed
from the text document.
-
+\defaultfontfeatures{Ligatures=TeX,Numbers=OldStyle,Scale=MatchLowercase}
+\setmainfont{Linux Libertine O}
+\setsansfont[BoldFont={Linux Biolinum O Bold}]{Linux Biolinum O}
+\setmonofont{Inconsolata}
\addcontentsline{toc}{subsection}{Wrapping Commands}
\hypertarget{wrappingcommands}{}
-
+\VerbatimFootnotes
\section*{Wrapping Commands}
-
+\subsection*{Command within commands}
\cmd{lily} can be wrapped within another command as usual:
-
\begin{verbatim}
\newcommand\mylily[2][1]{\lily[inline-staffsize=10, #1]{#2}}
-
This is \mylily[voffset=10pt]{a' b' c''} an example.
\end{verbatim}
-
\newcommand\mylily[2][1]{\lily[inline-staffsize=10, #1]{#2}}
-
-This is \mylily[voffset=10pt]{a' b' c''} an example.
-
+This is \mylily[voffset=10pt]{a' b' c''} an example.\par
+\subsection*{Environment within environments}
+\emph{It isn't possible to wrap \highlight{ly} environment within a command.}\par
It's possible to wrap \highlight{ly} within and environment, but there are
-several drawbacks:
+several drawbacks\footnote{%
+Those drawbacks are:
\begin{itemize}
\item this custom environment cannot have optional parameters. To be more
precise, if it has only optional parameters, it will be necessary to add \verb`[]`
@@ -2038,34 +2138,32 @@
\item or use the \TeX\ primitives \verb`\ly \endly` (not only for \highlight{ly},
but also for other environments).
\end{itemize}
-\end{itemize}
-
+\end{itemize}%
+}.
+To avoid those drawbacks, \lyluatex\ defines a special command, \verb`\lynewenvironment`,
+that behaves as you'd expect from \verb`\newenvironment`.
\begin{verbatim}
-\newenvironment{myly}{%
+\lynewenvironment{myly}{%
This is \emph{my} lilypond environment.
- \begin{ly}[]%
+ \begin{ly}%
}{%
\end{ly}
}
-
\begin{myly}
a b c
\end{myly}
\end{verbatim}
-
\newenvironment{myly}{%
This is \emph{my} lilypond environment.
- \begin{ly}[]%
+ \begin{ly}%
}{%
\end{ly}
}
-
\begin{myly}
a b c
\end{myly}
-
\begin{verbatim}
-\newenvironment{lyfigure}[2][]{%
+\lynewenvironment{lyfigure}[2][]{%
\edef\mycaption{#2}
\begin{figure}
\begin{center}
@@ -2076,14 +2174,12 @@
\end{center}
\end{figure}
}
-
-\begin{lyfigure}{caption}
+\begin{lyfigure}{This is a caption}
a' b' c
d' e' f
\end{lyfigure}
\end{verbatim}
-
-\newenvironment{lyfigure}[2][]{%
+\lynewenvironment{lyfigure}[2][]{%
\edef\mycaption{#2}
\begin{figure}
\begin{center}
@@ -2094,14 +2190,12 @@
\end{center}
\end{figure}
}
-
-\begin{lyfigure}{caption}
+\begin{lyfigure}{This is a caption}
a' b' c
d' e' f
\end{lyfigure}
-
\begin{verbatim}
-\newenvironment{lyotherfigure}[1][]{%
+\lynewenvironment{lyotherfigure}[1][]{%
\edef\option{#1}
\figure
\center
@@ -2112,14 +2206,12 @@
\endcenter
\endfigure
}
-
-\begin{lyotherfigure}[]
+\begin{lyotherfigure}
d' e' f
a' b' c
\end{lyotherfigure}
\end{verbatim}
-
-\newenvironment{lyotherfigure}[1][]{%
+\lynewenvironment{lyotherfigure}[1][]{%
\edef\option{#1}
\figure
\center
@@ -2130,35 +2222,121 @@
\endcenter
\endfigure
}
-
-\begin{lyotherfigure}[]
+\begin{lyotherfigure}
d' e' f
a' b' c
\end{lyotherfigure}
-
+\begin{verbatim}
+\begin{lyotherfigure}[This time with a caption]
+d' e' f
+a' b' c
+\end{lyotherfigure}
+\end{verbatim}
+\begin{lyotherfigure}[This time with a caption]
+d' e' f
+a' b' c
+\end{lyotherfigure}
+\textbf{Important note:} \verb`\lynewenvironment` is intended to insert \LaTeX\ code before
+and after the scores; due to the special behavior of \verb`ly` environment, it isn't possible
+to insert \emph{LilyPond} code that way. So this won't work:
+\begin{verbatim}
+ \lynewenvironment{myly}{%
+ \begin{ly}
+ a b c
+ }{%
+ \end{ly}
+ }
+\end{verbatim}
+To do such a thing, \lyluatex\ defines a command and four options:
+\begin{itemize}
+ \item \verb`\lysavefrag` lets one save a LilyPond fragment to be re-used afterward;
+ \item \verb`include_header`, \verb`include_footer`, \verb`include_before_body` and \verb`include_after_body` options
+ let one insert such fragments at designed places within inserted score.
+\end{itemize}
+So this works:
+\begin{verbatim}
+\begin{lysavefrag}{head}
+a b c
+\end{lysavefrag}
+\begin{lysavefrag}{foot}
+g a' b
+\end{lysavefrag}
+\begin{lysavefrag}{mymark}
+\mark \default
+\end{lysavefrag}
+\begin{lysavefrag}{mymark}
+\mark \default
+\end{lysavefrag}
+begin{ly}[
+ include_before_body={head,mymark,head},
+ include_after_body=foot,
+]
+d e f
+\end{ly}
+\end{verbatim}
+It's also possible to use \verb`\lynewenvironment` to wrap such a command:
+\begin{verbatim}
+\begin{lysavefrag}{head}
+a b c
+\end{lysavefrag}
+\begin{lysavefrag}{foot}
+g a' b
+\end{lysavefrag}
+\begin{lysavefrag}{mymark}
+\mark \default
+\end{lysavefrag}
+\lynewenvironment{yourly}[1][]{%
+ {\centering test \par}
+ \begin{ly}[
+ include_before_body={head,mymark,head},
+ include_after_body=foot,
+ ]
+}{
+ \end{ly}
+}
+\begin{yourly}
+d e f
+\end{yourly}
+\end{verbatim}
+\begin{lysavefrag}{head}
+a b c
+\end{lysavefrag}
+\begin{lysavefrag}{foot}
+g a' b
+\end{lysavefrag}
+\begin{lysavefrag}{mymark}
+\mark \default
+\end{lysavefrag}
+\lynewenvironment{yourly}[1][]{%
+ {\centering test \par}
+ \begin{ly}[
+ include_before_body={head,mymark,head},
+ include_after_body=foot,
+ ]
+}{
+ \end{ly}
+}
+\begin{yourly}
+d e f
+\end{yourly}
\addcontentsline{toc}{subsection}{Wrapping Raw PDF Filenames}
\hypertarget{insert-raw-pdf}{}
-
\section*{Wrapping Raw PDF Filenames}
-
With the \option{raw-pdf} option it is possible to create wrapping commands that
circumvent \lyluatex's layout considerations by working with the raw PDF
filename of the generated score. This is especially useful for developing
packages or personal class and style files. For this scores generated with
\option{raw-pdf} define a command \cmd{lyscore} that can be used in the wrapping
commands or environments.
-
All examples in this document could also be realized using “default” \lyluatex\
without \option{raw-pdf}, but they are intended to show how this low-level
access can be used to retrieve the information from the generated score in order
to build custom versions of commands that don't have to adhere to \lyluatex's
pre-built strategies of including the score in the document
-
The easiest way to use a “raw” score is to simply access \cmd{lyscore} in a
command and pass it to an \cmd{includegraphics} macro:
-
\begin{verbatim}
\newcommand\lilyinline[2][]{%
\lily[raw-pdf,%
@@ -2170,33 +2348,27 @@
\includegraphics{\lyscore{}}%
}
\end{verbatim}
-
\newcommand\lilyinline[2][]{%
\lily[raw-pdf,insert=bare-inline,inline-staffsize=8,hpadding=0.25ex,#1]{
\omit Stem
#2}%
\includegraphics{\lyscore{}}%
}
-
This basically is a way to provide pre-configured commands. In this case
\lilyinline{ c'8 d' c' d'} it is used to pre-configure an inline
type, entered as \verb+\lilyinline{ c'8 d' c' d'}+.
-
-
\bigskip \cmd{lyscore} takes one mandatory argument which can be empty -- as in
the example above --, receive a number, one of the keywords \texttt{nsystems}
and \texttt{hoffset}, or any of the score's options. If passed a number it will
return the filename of the N-th system. With \texttt{nsystems} the number of
systems in the generated score will be returned, while \texttt{hoffset}
generates the code that shifts the score to the left to accommodate protrusion.
-
The following example takes an optional argument with options that are passed to
\lyluatex, and one mandatory argument which expects the system to be used. It
prints the given system centered in a figure and uses the file name as the
caption and makes use of the score's \texttt{label}. Figure \ref{centered} shows
the centering of a short fragment, figure \ref{fifth} the selection of the fifth
system from a larger score.
-
\begin{verbatim}
\newenvironment{centeredlilypondsystem}[2][]{%
\def\usesystem{#2}
@@ -2211,16 +2383,13 @@
\end{center}
\end{figure}
}
-
\begin{centeredlilypondsystem}[label=centered]{1}
c'1 d' e'
\end{centeredlilypondsystem}
-
\begin{centeredlilypondsystem}[label=fifth]{5}
\repeat unfold 8 { c'1 \break }
\end{centeredlilypondsystem}
\end{verbatim}
-
\newenvironment{centeredlilypondsystem}[2][]{%
\def\usesystem{#2}
\begin{figure}
@@ -2234,22 +2403,17 @@
\end{center}
\end{figure}
}
-
\begin{centeredlilypondsystem}[label=centered]{1}
c'1 d' e'
\end{centeredlilypondsystem}
-
\begin{centeredlilypondsystem}[label=fifth]{5}
\repeat unfold 8 { c'1 \break }
\end{centeredlilypondsystem}
-
-
Finally there's an example showing how to iterate over the systems of a score
using \cmd{foreach} from the \option{pgffor} package. It iterates over all the
systems in the given score, prints them using the protrusion adjustment seen
before, and if the system is the third it prints this information, otherwise
just a line break:
-
\begin{verbatim}
\newcommand\myforlily[2][]{%
\lily[insert=systems,raw-pdf,#1]{#2}%
@@ -2258,12 +2422,10 @@
\ifthenelse{\equal{\n}{3}}{\par Third system\par}{\\}
}%
}
-
\myforlily[staffsize=24]{
\set Staff.instrumentName = "Vl. "
\repeat unfold 4 { c'1 \break } }
\end{verbatim}
-
\newcommand\myforlily[2][]{%
\lily[insert=systems,raw-pdf,#1]{#2}%
\foreach \n in {1,...,\lyscore{nsystems}}%
@@ -2271,11 +2433,9 @@
\ifthenelse{\equal{\n}{3}}{\par\bigskip Third system\par\bigskip}{\\}
}%
}
-
\myforlily[staffsize=24]{
\set Staff.instrumentName = "Vl. "
\repeat unfold 4 { c'1 \break } }
-
\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/support/lyluatex/lyluatexbase.cls new/doc/support/lyluatex/lyluatexbase.cls
--- old/doc/support/lyluatex/lyluatexbase.cls 2018-03-13 23:07:05.000000000 +0100
+++ new/doc/support/lyluatex/lyluatexbase.cls 2019-05-28 23:25:42.000000000 +0200
@@ -1,11 +1,11 @@
%Lyluatex LaTeX class.
%
-% Copyright (C) 2015-2018 jperon and others (see CONTRIBUTORS.md)
+% Copyright (C) 2015-2019 jperon and others (see CONTRIBUTORS.md)
% License: MIT
% This file is part of lyluatex.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{lyluatexbase}[2018/03/12 v1.0b] %%LYLUATEX_DATE LYLUATEX_VERSION
+\ProvidesClass{lyluatexbase}[2019/05/27 v1.0f] %%LYLUATEX_DATE LYLUATEX_VERSION
\LoadClass[DIV=11]{scrartcl}
\RequirePackage{lyluatex}
@@ -14,6 +14,7 @@
\RequirePackage{listings}
\RequirePackage{minted}
\RequirePackage{pgffor}
+\RequirePackage{fancyvrb}
\RequirePackage[colorlinks=true]{hyperref}
\lysetoption{includepaths}{./, ly/}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/support/lyluatex/lyluatexmanual.cls new/doc/support/lyluatex/lyluatexmanual.cls
--- old/doc/support/lyluatex/lyluatexmanual.cls 2018-03-13 23:07:05.000000000 +0100
+++ new/doc/support/lyluatex/lyluatexmanual.cls 2019-05-28 23:25:42.000000000 +0200
@@ -1,11 +1,11 @@
%Lyluatex LaTeX class for the manual.
%
-% Copyright (C) 2015-2018 jperon and others (see CONTRIBUTORS.md)
+% Copyright (C) 2015-2019 jperon and others (see CONTRIBUTORS.md)
% License: MIT
% This file is part of lyluatex.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{lyluatexmanual}[2018/03/12 v1.0b] %%LYLUATEX_DATE LYLUATEX_VERSION
+\ProvidesClass{lyluatexmanual}[2019/05/27 v1.0f] %%LYLUATEX_DATE LYLUATEX_VERSION
\LoadClass{lyluatexbase}
@@ -28,3 +28,14 @@
\addcontentsline{toc}{subsection}{#2}
\hypertarget{#1}{}
}
+
+
+\newcommand{\lyluatexmanualdate}{
+ \directlua{
+ local PC = string.char(37)
+ local date_fmt = PC..'Y-'..PC..'m-'..PC..'d'
+ local p = io.popen('git log -n1 --date=short --format='..PC..'"ad"', 'r')
+ tex.sprint(p and p:read('*a') or os.date(date_fmt))
+ if p then p:close() end
+ }
+}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/lyluatex.doc.tlpobj new/tlpkg/tlpobj/lyluatex.doc.tlpobj
--- old/tlpkg/tlpobj/lyluatex.doc.tlpobj 2019-02-28 03:52:55.000000000 +0100
+++ new/tlpkg/tlpobj/lyluatex.doc.tlpobj 2019-05-29 01:39:00.000000000 +0200
@@ -1,9 +1,9 @@
name lyluatex.doc
category Package
-revision 47584
+revision 51252
shortdesc doc files of lyluatex
relocated 1
-docfiles size=436
+docfiles size=439
RELOC/doc/support/lyluatex/Contributors.md
RELOC/doc/support/lyluatex/LICENSE
RELOC/doc/support/lyluatex/README.md
++++++ lyluatex.tar.xz ++++++
++++ 1872 lines of diff (skipped)
++++++ m-tx.doc.tar.xz ++++++
Binary files old/texmf-dist/doc/man/man1/prepmx.man1.pdf and new/texmf-dist/doc/man/man1/prepmx.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/m-tx.doc.tlpobj new/tlpkg/tlpobj/m-tx.doc.tlpobj
--- old/tlpkg/tlpobj/m-tx.doc.tlpobj 2019-03-27 02:25:19.000000000 +0100
+++ new/tlpkg/tlpobj/m-tx.doc.tlpobj 2019-11-19 01:55:49.000000000 +0100
@@ -1,6 +1,6 @@
name m-tx.doc
category Package
-revision 50602
+revision 52851
shortdesc doc files of m-tx
docfiles size=259
texmf-dist/doc/generic/m-tx/Makefile
++++++ m-tx.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/m-tx.tlpobj new/tlpkg/tlpobj/m-tx.tlpobj
--- old/tlpkg/tlpobj/m-tx.tlpobj 2019-03-27 02:25:20.000000000 +0100
+++ new/tlpkg/tlpobj/m-tx.tlpobj 2019-11-19 01:55:49.000000000 +0100
@@ -1,6 +1,6 @@
name m-tx
category Package
-revision 50602
+revision 52851
shortdesc A preprocessor for pmx
longdesc M-Tx is a preprocessor to pmx, which is itself a preprocessor
longdesc to musixtex, a music typesetting system. The prime motivation
++++++ make4ht.doc.tar.xz ++++++
++++ 3967 lines of diff (skipped)
++++++ make4ht.tar.xz ++++++
++++ 4475 lines of diff (skipped)
++++++ makeindex.doc.tar.xz ++++++
Binary files old/texmf-dist/doc/man/man1/makeindex.man1.pdf and new/texmf-dist/doc/man/man1/makeindex.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/mkindex.man1.pdf and new/texmf-dist/doc/man/man1/mkindex.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/makeindex.doc.tlpobj new/tlpkg/tlpobj/makeindex.doc.tlpobj
--- old/tlpkg/tlpobj/makeindex.doc.tlpobj 2019-03-27 02:25:20.000000000 +0100
+++ new/tlpkg/tlpobj/makeindex.doc.tlpobj 2019-11-19 01:55:49.000000000 +0100
@@ -1,6 +1,6 @@
name makeindex.doc
category Package
-revision 50602
+revision 52851
shortdesc doc files of makeindex
docfiles size=131
texmf-dist/doc/man/man1/makeindex.1
++++++ makeindex.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/makeindex.tlpobj new/tlpkg/tlpobj/makeindex.tlpobj
--- old/tlpkg/tlpobj/makeindex.tlpobj 2019-03-27 02:25:20.000000000 +0100
+++ new/tlpkg/tlpobj/makeindex.tlpobj 2019-11-19 01:55:49.000000000 +0100
@@ -1,6 +1,6 @@
name makeindex
category Package
-revision 50602
+revision 52851
catalogue makeindexk
shortdesc Makeindex development sources
longdesc The package contains the development sources of makeindex, as
++++++ manfnt.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/manfnt.tlpobj new/tlpkg/tlpobj/manfnt.tlpobj
--- old/tlpkg/tlpobj/manfnt.tlpobj 2019-02-28 03:53:04.000000000 +0100
+++ new/tlpkg/tlpobj/manfnt.tlpobj 2020-04-12 01:55:36.000000000 +0200
@@ -1,6 +1,6 @@
name manfnt
category Package
-revision 42428
+revision 54684
shortdesc LaTeX support for the TeX book symbols
relocated 1
longdesc A LaTeX package for easy access to the symbols of the Knuth's
@@ -9,6 +9,5 @@
runfiles size=1
RELOC/tex/latex/manfnt/manfnt.sty
catalogue-ctan /macros/latex/contrib/manfnt
-catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics font-supp
++++++ markdown.doc.tar.xz ++++++
++++ 4776 lines of diff (skipped)
++++++ markdown.tar.xz ++++++
++++ 3016 lines of diff (skipped)
++++++ mathastext.doc.tar.xz ++++++
++++ 1972 lines of diff (skipped)
++++++ mathastext.tar.xz ++++++
++++ 2000 lines of diff (skipped)
++++++ mathfam256.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/mathfam256/LICENSE new/doc/latex/mathfam256/LICENSE
--- old/doc/latex/mathfam256/LICENSE 2018-01-22 23:49:36.000000000 +0100
+++ new/doc/latex/mathfam256/LICENSE 2020-01-23 22:57:56.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (c) 2016-2018 Hironobu Yamashita
+Copyright (c) 2016-2020 Hironobu Yamashita
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -11,9 +11,9 @@
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-* Neither the name of platex nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
+* Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/mathfam256/README.md new/doc/latex/mathfam256/README.md
--- old/doc/latex/mathfam256/README.md 2018-01-22 23:49:36.000000000 +0100
+++ new/doc/latex/mathfam256/README.md 2020-01-23 22:57:56.000000000 +0100
@@ -34,6 +34,6 @@
## Release Date
-2018-01-22
+2020-01-23
Hironobu Yamashita
Binary files old/doc/latex/mathfam256/mathfam256.pdf and new/doc/latex/mathfam256/mathfam256.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/mathfam256/mathfam256.tex new/doc/latex/mathfam256/mathfam256.tex
--- old/doc/latex/mathfam256/mathfam256.tex 2018-01-22 23:49:36.000000000 +0100
+++ new/doc/latex/mathfam256/mathfam256.tex 2019-09-14 23:36:52.000000000 +0200
@@ -36,8 +36,8 @@
However, the ``native'' kernel support is limited:
\begin{itemize}
-\item Lamed (\LaTeX\ on Aleph) is not supported at all.
\item The upper limit for math symbol families is still limited to 16.
+\item Lamed (\LaTeX\ on Aleph) is not supported at all.
\end{itemize}
The package \textsf{mathfam256} is an attempt to resolve this situation;
@@ -55,7 +55,7 @@
\OMEGA\ (Omega), and are currently available in the followings.
Without one of these, the package causes an error.
\begin{itemize}
-\item \pLaTeX/\upLaTeX, run on \epTeX/\eupTeX\ (Japanese TeX engine)
+\item \pLaTeX/\upLaTeX, run on \epTeX/\eupTeX\ (Japanese \TeX\ engine)
\item Lamed, run on Aleph (successor of \OMEGA)
\end{itemize}
@@ -81,7 +81,7 @@
256個までの数式ファミリをサポートするものが現れています。
この状況を鑑み、\LaTeXe カーネル(2015/01/01以降)では、
-Unicode対応のXe\TeX とLua\LaTeX について、数式ファミリ(正確には
+Unicode対応のXe\TeX とLua\TeX について、数式ファミリ(正確には
\verb+\DeclareMathAlphebet+で使われる数式アルファベット)の上限を256に
増やしています。同様に、\pLaTeXe/\upLaTeXe カーネル(2016/11/29以降)も、
\OMEGA ベースのいわゆる「FAM256パッチ」が適用された\epTeX/\eupTeX について、
@@ -93,8 +93,8 @@
しかし、この“ネイティブな”カーネルのサポートには限界があります:
\begin{itemize}
-\item Lamed (\LaTeX\ on Aleph)は全く考慮されていない。
\item 数式シンボルフォントの上限は依然として16のままである(安全のため)。
+\item Lamed (\LaTeX\ on Aleph)は全く考慮されていない。
\end{itemize}
この\textsf{mathfam256}パッケージは、この状況を改善する試みです。
@@ -139,7 +139,7 @@
掲示板「\TeX\ Q\ \&\ A」,2009/02/21.\\
\url{http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/52799.html}
\bibitem{eptexdoc} 北川 弘典,「\epTeX について」.\\
- \verb+$TEXMFDIST/doc/ptex/ptex-base/etex_man.pdf+
+ \verb+$TEXMFDIST/doc/ptex/ptex-base/eptexdoc.pdf+
\end{thebibliography}
\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/mathfam256.doc.tlpobj new/tlpkg/tlpobj/mathfam256.doc.tlpobj
--- old/tlpkg/tlpobj/mathfam256.doc.tlpobj 2019-02-28 03:53:14.000000000 +0100
+++ new/tlpkg/tlpobj/mathfam256.doc.tlpobj 2020-01-24 01:57:16.000000000 +0100
@@ -1,9 +1,9 @@
name mathfam256.doc
category Package
-revision 46412
+revision 53519
shortdesc doc files of mathfam256
relocated 1
-docfiles size=24
+docfiles size=25
RELOC/doc/latex/mathfam256/LICENSE
RELOC/doc/latex/mathfam256/README.md
RELOC/doc/latex/mathfam256/mathfam256.pdf
++++++ mathfam256.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/mathfam256/mathfam256.sty new/tex/latex/mathfam256/mathfam256.sty
--- old/tex/latex/mathfam256/mathfam256.sty 2018-01-22 23:49:36.000000000 +0100
+++ new/tex/latex/mathfam256/mathfam256.sty 2020-01-23 22:57:56.000000000 +0100
@@ -1,6 +1,9 @@
%
% mathfam256.sty
-% 2018/01/22 v0.2 Hironobu Yamashita (aminophen)
+% 2020/01/23 v0.5 -- compatibility with amstext
+% 2020/01/22 v0.4 -- sync with LaTeX2e 2020-02-02 dev
+% 2019/09/14 v0.3 -- bug fix and support LaTeX2e 2019-10-01
+% 2018/01/22 v0.2 -- first CTAN version
% 2016/12/26 v0.1 Hironobu Yamashita (aminophen)
% 2009/02/20 v0.01 Kazuyoshi Yamamoto (ymt)
%
@@ -13,7 +16,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mathfam256}
- [2018/01/22 v0.2 Extend math family up to 256]
+ [2020/01/23 v0.5 Extend math family up to 256]
%% engine check
\ifx\omathchar\@undefined
@@ -24,9 +27,11 @@
* upLaTeX (run on e-upTeX)\MessageBreak
* Lamed (run on Aleph)\MessageBreak
It seems you are running unsupported engine}\@ehc
+ \expandafter\endinput
\fi
\ifx\numexpr\@undefined
\PackageError{mathfam256}{This package requires e-TeX features}\@ehc
+ \expandafter\endinput
\fi
%% engine check has been done, so always 256
@@ -93,6 +98,25 @@
{\e@alloc\mathgroup\chardef{\count18}\m@ne\e@mathgroup@top}%
}
+%% LaTeX2e 2019/10/01 makes lots of commands robust;
+%% follow both old and new behavior
+%% -- Among the changes in 2019/10/01,
+%% "making math delimiters robust with \MakeRobust"
+%% was backed out and replaced with "engine protection"
+%% in 2020/02/02.
+%% (see https://github.com/latex3/latex2e/issues/251)
+\edef\omfcclvi@reset{%
+ \catcode`\noexpand\&=\the\catcode`\&\relax
+ \catcode`\noexpand\~=\the\catcode`\~\relax
+ \let\noexpand\omfcclvi@reset\noexpand\@undefined}
+\@ifl@t@r\fmtversion{2019/10/01}{%
+ \catcode`\&=9\relax
+ \catcode`\~=14\relax
+}{%
+ \catcode`\&=14\relax
+ \catcode`\~=9\relax
+}
+
%% use \omath... primitives for low-level commands
\def\set@mathchar#1#2#3#4{%
\ifnum#1<\sixt@@n
@@ -114,14 +138,17 @@
\else
\xdef#2{\omathaccent"\mathchar@type#3\hexnumber@@#100#4\relax}%
\fi
+& \MakeRobust#2%
}
\def\set@mathdelimiter#1#2#3#4#5#6{%
\@tempswatrue
\ifnum#1<\sixt@@n\relax\else\@tempswafalse\fi
\ifnum#2<\sixt@@n\relax\else\@tempswafalse\fi
\if@tempswa
+& \protected
\xdef#3{\delimiter"\mathchar@type#4\hexnumber@#1#5\hexnumber@#2#6\relax}%
\else
+& \protected
\xdef#3{\odelimiter"\mathchar@type#4\hexnumber@@#100#5%
"\hexnumber@@#200#6\relax}%
\fi
@@ -248,9 +275,7 @@
E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or E8\or
E9\or EA\or EB\or EC\or ED\or EE\or EF\or
F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or F8\or
- F9\or FA\or FB\or FC\or FD\or FE\or FF
- \fi
-}
+ F9\or FA\or FB\or FC\or FD\or FE\or FF\fi}
%% patch LaTeX2e internal only if newer than (or equal to) 2015/01/01
%% since the error code was introduced at that time
@@ -302,13 +327,19 @@
\ifin@
\begingroup
\if\relax\noexpand#1% is command?
- \edef\reserved@a{\noexpand\in@{\string\mathchar}{\meaning#1}}%
+& \edef\reserved@b{\expandafter\noexpand
+& \csname\expandafter\@gobble\string#1\space\endcsname}%
+ \edef\reserved@a
+ {\noexpand\in@{\expandafter\@gobble\string\mathchar}%
+~ {\meaning#1}}%
+& {\meaning#1\expandafter\meaning\reserved@b}}%
\reserved@a
+& \global\expandafter\let\reserved@b\@undefined
\ifin@
\oset@mathsymbol{#1}{#2}{#3}{#4}%
\@font@info{Redeclaring math symbol \string#1}%
\else
- \expandafter\ifx
+ \expandafter\ifx
\csname\expandafter\@gobble\string#1\endcsname
\relax
\oset@mathsymbol{#1}{#2}{#3}{#4}%
@@ -341,9 +372,16 @@
\ifin@
\begingroup
\if\relax\noexpand#1% is command?
- \edef\reserved@a{\noexpand\in@{\string\mathaccent}{\meaning#1}}%
+ \edef\reserved@a{\noexpand\in@
+~ {\expandafter\@gobble\string\mathaccent}{\meaning#1}}%
+& {\expandafter\@gobble\string\mathaccent}
+& {\expandafter\meaning
+& \csname\expandafter\@gobble\string#1\space\endcsname}}%
\reserved@a
\ifin@
+& \expandafter\let
+& \csname\expandafter\@gobble\string#1\space\endcsname
+& \@undefined
\oset@mathaccent{#1}{#2}{#3}{#4}%
\@font@info{Redeclaring math accent \string#1}%
\else
@@ -367,7 +405,9 @@
\def\oset@mathaccent#1#2#3#4{%
\xdef#1{\omathaccent%
\number
- \numexpr"1000000*\mathchar@type#2+"10000*\csname sym#3\endcsname+#4}}
+ \numexpr"1000000*\mathchar@type#2+"10000*\csname sym#3\endcsname+#4}%
+& \MakeRobust#1%
+}
\@onlypreamble\oset@mathaccent
%\def\DeclareMathDelimiter#1{%
% \if\relax\noexpand#1%
@@ -398,19 +438,35 @@
\expandafter{\group@list}%
\ifin@
\begingroup
- \edef\reserved@a{\noexpand\in@{\string\delimiter}{\meaning#1}}%
+ \edef\reserved@a{\noexpand\in@
+ {\expandafter\@gobble\string\delimiter}{\meaning#1}}%
\reserved@a
\ifin@
\oset@mathdelimiter{#1}{#2}{#3}{#4}{#5}{#6}%
\@font@info{Redeclaring math delimiter \string#1}%
\else
- \expandafter\ifx
+ %%%%% BEGIN -- only for "real" format as of 2019-10-01 which used \MakeRobust
+ \edef\reserved@a{\noexpand\in@
+ {\expandafter\@gobble\string\delimiter}%
+ {\expandafter\meaning\csname\expandafter\@gobble\string#1\space\endcsname}}%
+ \reserved@a
+ \ifin@
+ \global % to cancel global assignment done by \MakeRobust
+ \expandafter\let\csname\expandafter\@gobble\string#1\space\endcsname\@undefined
+ \oset@mathdelimiter{#1}{#2}{#3}{#4}{#5}{#6}%
+ \@font@info{Redeclaring math delimiter \string#1}%
+ \else
+ %%%%% END
+ \expandafter\ifx
\csname\expandafter\@gobble\string#1\endcsname
\relax
\oset@mathdelimiter{#1}{#2}{#3}{#4}{#5}{#6}%
\else
\@latex@error{Command `\string#1' already defined}\@eha
\fi
+ %%%%% BEGIN -- only for "real" format as of 2019-10-01 which used \MakeRobust
+ \fi
+ %%%%% END
\fi
\endgroup
\else
@@ -443,6 +499,7 @@
\numexpr"1000000*\mathchar@type#2+"10000*\csname sym#3\endcsname+#4%
\count\tw@
\numexpr"10000*\csname sym#5\endcsname+#6%
+& \protected
\xdef#1{\odelimiter\number\count\z@\space \number\count\tw@}%
\endgroup
}
@@ -461,7 +518,8 @@
\relax
\let#1\radical
\fi
- \edef\reserved@a{\noexpand\in@{\string\radical}{\meaning#1}}%
+ \edef\reserved@a{\noexpand\in@
+ {\expandafter\@gobble\string\radical}{\meaning#1}}%
\reserved@a
\ifin@
\expandafter\in@\csname sym#2\expandafter\endcsname
@@ -491,5 +549,34 @@
}
\@onlypreamble\oset@mathradical
+%% reset
+\omfcclvi@reset
+
+%% patch: amstext.sty redefines \mathhexbox to use its own \text
+\let\omfcclvi@my@mathhexbox\mathhexbox
+\def\omfcclvi@patch@mathhexbox{%
+ \ifx\mathhexbox\omfcclvi@old@mathhexbox
+ \expandafter\@firstoftwo % known -> info only
+ \else\ifx\mathhexbox\omfcclvi@my@mathhexbox
+ \expandafter\expandafter\expandafter\@firstoftwo % known -> info only
+ \else
+ \expandafter\expandafter\expandafter\@secondoftwo % unknown -> warning
+ \fi\fi
+ \PackageInfo\PackageWarning{mathfam256}{Redefining \string\mathhexbox}%
+ \let\mathhexbox\omfcclvi@new@mathhexbox
+ \let\omfcclvi@old@mathhexbox\@undefined
+ \let\omfcclvi@new@mathhexbox\@undefined
+ \let\omfcclvi@patch@mathhexbox\@undefined}
+\begingroup \catcode`\"=12
+\gdef\omfcclvi@old@mathhexbox#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
+\gdef\omfcclvi@new@mathhexbox#1#2#3{%
+ \ifnum"#1<\sixt@@n
+ \text{$\m@th \mathchar"#1#2#3$}%
+ \else
+ \text{$\m@th \omathchar"#100#2#3$}%
+ \fi}
+\endgroup
+\AtBeginDocument{\ifx\text\@undefined\else \omfcclvi@patch@mathhexbox \fi}
+
%% all done
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/mathfam256.tlpobj new/tlpkg/tlpobj/mathfam256.tlpobj
--- old/tlpkg/tlpobj/mathfam256.tlpobj 2019-02-28 03:53:14.000000000 +0100
+++ new/tlpkg/tlpobj/mathfam256.tlpobj 2020-01-24 01:57:16.000000000 +0100
@@ -1,6 +1,6 @@
name mathfam256
category Package
-revision 46412
+revision 53519
shortdesc Extend math family up to 256 for pLaTeX/upLaTeX/Lamed
relocated 1
longdesc This package increases the upper limit of math symbols up to
@@ -8,11 +8,10 @@
longdesc originally introduced in Omega and are currently available in
longdesc the following formats: pLaTeX (runs on e-pTeX), upLaTeX (runs
longdesc on e-upTeX), Lamed (runs on Aleph, successor of Omega).
-runfiles size=4
+runfiles size=5
RELOC/tex/latex/mathfam256/mathfam256.sty
catalogue-contact-repository https://github.com/aminophen/mathfam256
catalogue-ctan /macros/latex/contrib/mathfam256
-catalogue-date 2018-01-24 04:32:31 +0100
catalogue-license bsd3
catalogue-topics maths omega japanese etex
-catalogue-version 0.2
+catalogue-version 0.5
++++++ mathfont.doc.tar.xz ++++++
++++ 1606 lines of diff (skipped)
++++++ mathfont.tar.xz ++++++
++++ 1633 lines of diff (skipped)
++++++ mathpazo.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/mathpazo.doc.tlpobj new/tlpkg/tlpobj/mathpazo.doc.tlpobj
--- old/tlpkg/tlpobj/mathpazo.doc.tlpobj 2019-02-28 03:53:15.000000000 +0100
+++ new/tlpkg/tlpobj/mathpazo.doc.tlpobj 2019-11-07 18:46:22.000000000 +0100
@@ -1,6 +1,6 @@
name mathpazo.doc
category Package
-revision 15878
+revision 52663
shortdesc doc files of mathpazo
relocated 1
docfiles size=109
++++++ mathpazo.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/mathpazo.tlpobj new/tlpkg/tlpobj/mathpazo.tlpobj
--- old/tlpkg/tlpobj/mathpazo.tlpobj 2019-02-28 03:53:15.000000000 +0100
+++ new/tlpkg/tlpobj/mathpazo.tlpobj 2019-11-07 18:46:23.000000000 +0100
@@ -1,6 +1,6 @@
name mathpazo
category Package
-revision 15878
+revision 52663
shortdesc Fonts to typeset mathematics to match Palatino
relocated 1
longdesc The Pazo Math fonts are a family of PostScript fonts suitable
@@ -22,6 +22,8 @@
longdesc sets (C, I, N, Q, R, and Z) in blackboard bold. LaTeX macro
longdesc support (using package mathpazo.sty) is provided in psnfss (a
longdesc required part of any LaTeX distribution).
+depend fpl
+depend palatino
runfiles size=41
RELOC/fonts/afm/public/mathpazo/fplmb.afm
RELOC/fonts/afm/public/mathpazo/fplmbb.afm
++++++ mathtools.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/mathtools/README new/doc/latex/mathtools/README
--- old/doc/latex/mathtools/README 2017-06-06 23:53:26.000000000 +0200
+++ new/doc/latex/mathtools/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,84 +0,0 @@
-The mathtools bundle
-=============
-Morten Hoegholm (c) 2002-2011
-Lars Madsen (c) 2012-
-email: daleif@math.au.dk
-License: LaTeX Project Public License
-
-The files in the mathtools bundle are:
- mhsetup.dtx
- mathtools.dtx
- empheq.dtx
-and derived files. The derived files of each .dtx-file are listed
-at the top of the respective .dtx-file.
-
-
-INSTALLATION
-============
-Running TeX on each dtx file extracts the runtime files. See the dtx
-files for details.
-
-DESCRIPTION
-===========
-
-
-mathtools
-=========
-
-The mathtools package provides many useful tools for mathematical
-typesetting. It is based on amsmath and fixes various deficiencies
-of amsmath and standard LaTeX. It provides:
- -- Extensible symbols, such as brackets, arrows, harpoons, etc.
- -- Various symbols such as \coloneqq (:=).
- -- Easy creation of new tag forms.
- -- Showing only the referenced equations.
- -- Extensible arrows, harpoons and hookarrows.
- -- Starred versions of the amsmath matrix environments for
- specifying the column alignment.
- -- More building blocks: multlined, cases-like environments, new
- gathered environments.
- -- Math versions of \makebox, \llap, \rlap etc.
- -- Cramped math styles.
- -- Macro generators.
- -- and more...
-
-mathtools requires mhsetup.
-
-empheq
-======
-
-The empheq package is a visual markup extension designed to
-function on top of amsmath. It features:
- -- Boxing multi line math displays while leaving equation
- numbers untouched at the margin. Any kind of box will do.
- -- Making the ntheorem package place end-of-theorem markers
- perfectly.
- -- Placing arbitrary material on either side of math displays.
- This includes delimiters that automatically scale to the
- correct size.
-
-empheq requires mathtools.
-
-
-mhsetup
-=======
-
-The mhsetup package defines various programming tools needed by
-both empheq and mathtools. The syntax is the same as for expl3,
-but there is no code overlap (anymore as of May 2017).
-In the future, most of these tools will probably be an integral part of LaTeX3 (they were).
-
-
-BUG REPORTS
-===========
-
-The bundle is maintained by:
-
- Morten H\o gholm
- Lars Madsen
-
-
-Please report bugs to daleif@math.au.dk
-
-===========
-This README file was last revised 2017/05/24.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/mathtools/README.md new/doc/latex/mathtools/README.md
--- old/doc/latex/mathtools/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/mathtools/README.md 2020-03-24 21:50:35.000000000 +0100
@@ -0,0 +1,56 @@
+The `mathtools` bundle
+======================
+
+`mathtools`
+-----------
+
+The `mathtools` package provides many useful tools for mathematical
+typesetting. It is based on `amsmath` and fixes various deficiencies
+of `amsmath` and standard LaTeX. It provides:
+
+- Extensible symbols, such as brackets, arrows, harpoons, etc.
+- Various symbols such as `\coloneqq` (:=).
+- Easy creation of new tag forms.
+- Showing only the referenced equations.
+- Extensible arrows, harpoons and hook arrows.
+- Starred versions of the `amsmath` matrix environments for
+ specifying the column alignment.
+- More building blocks: multlined, cases-like environments, new
+ gathered environments.
+- Math versions of `\makebox`, `\llap`, `\rlap`, etc.
+- Cramped math styles.
+- and more ...
+
+`mathtools` requires `mhsetup`.
+
+`empheq`
+--------
+
+The `empheq` package is a visual markup extension designed to
+function on top of `amsmath`. It features:
+
+- Boxing multi line math displays while leaving equation
+ numbers untouched at the margin. Any kind of box will do.
+- Making the `ntheorem` package place end-of-theorem markers
+ perfectly.
+- Placing arbitrary material on either side of math displays.
+ This includes delimiters that automatically scale to the
+ correct size.
+
+`empheq` requires `mathtools`.
+
+`mhsetup`
+---------
+
+The `mhsetup` package defines various programming tools needed by
+both `empheq` and `mathtools`. In the future, most of these tools will
+probably be an integral part of LaTeX3.
+
+-----
+
+Copyright (C) 2002-2011 Morten Hoegholm
+Copyright (C) 2012-2019 Lars Madsen
+Copyright (C) 2020 Lars Madsen, The LaTeX3 Project
+https://latex-project.org/
+All rights reserved.
+
Binary files old/doc/latex/mathtools/empheq.pdf and new/doc/latex/mathtools/empheq.pdf differ
Binary files old/doc/latex/mathtools/mathtools.pdf and new/doc/latex/mathtools/mathtools.pdf differ
Binary files old/doc/latex/mathtools/mhsetup.pdf and new/doc/latex/mathtools/mhsetup.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/mathtools.doc.tlpobj new/tlpkg/tlpobj/mathtools.doc.tlpobj
--- old/tlpkg/tlpobj/mathtools.doc.tlpobj 2019-02-28 03:53:18.000000000 +0100
+++ new/tlpkg/tlpobj/mathtools.doc.tlpobj 2020-03-25 16:13:13.000000000 +0100
@@ -1,10 +1,10 @@
name mathtools.doc
category Package
-revision 46250
+revision 54516
shortdesc doc files of mathtools
relocated 1
-docfiles size=243
- RELOC/doc/latex/mathtools/README
+docfiles size=248
+ RELOC/doc/latex/mathtools/README.md
RELOC/doc/latex/mathtools/empheq.pdf
RELOC/doc/latex/mathtools/mathtools.pdf
RELOC/doc/latex/mathtools/mhsetup.pdf
++++++ mathtools.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/mathtools/empheq.sty new/tex/latex/mathtools/empheq.sty
--- old/tex/latex/mathtools/empheq.sty 2017-06-06 23:53:26.000000000 +0200
+++ new/tex/latex/mathtools/empheq.sty 2020-03-24 21:50:35.000000000 +0100
@@ -9,7 +9,8 @@
%% This is a generated file.
%%
%% Copyright (C) 2002-2007 by Morten Hoegholm
-%% Copyright (C) 2012- by Lars Madsen
+%% Copyright (C) 2012-2019 by Lars Madsen
+%% Copyright (C) 2020- by Lars Madsen, The LaTeX3 Project
%%
%%
%% This work may be distributed and/or modified under the
@@ -23,7 +24,7 @@
%% This work has the LPPL maintenance status "maintained".
%%
%% This Current Maintainer of this work is
-%% Lars Madsen
+%% Lars Madsen, The LaTeX3 Project
%%
%% This work consists of the main source file empheq.dtx
%% and the derived files
@@ -75,6 +76,7 @@
\newdimen\l_EQ_displaywidth_dim
\def\EmphEqdisplaywidth{\l_EQ_displaywidth_dim}
\newdimen\l_EQ_temp_linewidth_dim
+\newdimen\l_EQ_linewidth_dim
\newdimen\EmphEqdelimitershortfall
\newcount\EmphEqdelimiterfactor
\EmphEqdelimiterfactor950
@@ -117,8 +119,8 @@
\MH_else:
\setkeys{\MT_options_name:}{multlined-pos=t}
\MH_fi:
- \g@addto@macro\EQ_complete_mathdisplay:{
- \begin{MTmultlined}\relax}
+ \g@addto@macro\EQ_complete_mathdisplay:{
+ \begin{MTmultlined}\relax}
}
\g@addto@macro\EQ_complete_mathdisplay:\EQ_mathbody:
\MH_if_boolean:nT {outer_mult}{
@@ -190,6 +192,19 @@
\MH_let:NwN\SetTagPlusEndMark\EQ_tag_plus_endmark:
\MH_let:NwN\SetOnlyEndMark\EQ_only_endmark:
\l_EQ_temp_linewidth_dim\linewidth
+ \l_EQ_linewidth_dim\linewidth
+ \@tempdima\z@
+ \begingroup
+ \ifdefined\fullwidthdisplay\relax
+ \fullwidthdisplay
+ \global\@tempdima\displaywidth
+ \fi
+ \endgroup
+ \ifdim\@tempdima>\linewidth\relax
+ \l_EQ_temp_linewidth_dim\@tempdima
+ \l_EQ_linewidth_dim\@tempdima
+ \fi
+ \@tempdima\z@
\g_EQ_toprow_height_dim\z@
\g_EQ_bottomrow_depth_dim\z@
\g_EQ_toptag_height_dim\z@
@@ -420,7 +435,9 @@
\MH_if_num:w \maxfields@=\tw@
\MH_else:
\setlength{\l_EQ_temp_linewidth_dim}{%
- \linewidth-\l_EQ_totalwidth_dim-\widthof{\EQ_outerbox:{}}}%
+ % \linewidth
+ \l_EQ_linewidth_dim
+ -\l_EQ_totalwidth_dim-\widthof{\EQ_outerbox:{}}}%
\MH_fi:}
\def\EQ_modify_linewidth_ii:{\EQ_modify_linewidth_i:}
\def\EQ_find_displaywidth_i:{%
@@ -492,191 +509,209 @@
\MH_let:NwN \MTmultlined \multlined
\MH_let:NwN \endMTmultlined \endmultlined
\MH_if_boolean:nTF {good_mult}{
-\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{multline}{gather}
- {\MH_set_boolean_T:n {outer_mult}}
-\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{multline*}{gather*}
- {\MH_set_boolean_T:n {outer_mult}}
-\def\EQ_modify_linewidth_iii_mult:{
- \setlength{\l_EQ_temp_linewidth_dim}{%
- \linewidth-\widthof{\EQ_outerbox:{}}}%
- \MH_if_dim:w \g_EQ_widesttag_dim>\z@
- \EQ_multline_modify_linewidth_tag:
- \MH_else:
- \EQ_multline_modify_linewidth_notag:
- \MH_fi:
- \MH_setlength:dn \l_MT_multwidth_dim{\l_EQ_temp_linewidth_dim}
-}
-\def\EQ_modify_linewidth_iv_mult:{\EQ_modify_linewidth_iii_mult:}
-\def\EQ_find_displaywidth_iii_mult:{%
- \MH_setlength:dn \l_EQ_displaywidth_dim{\totwidth@}%
- \MH_if_case:w \l_EQ_alignmentmode_int \MH_or: \MH_or: % #1 & #2:
- \MH_or: % #3:
- \MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
- \MH_or: % #4:
- \MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
- \MH_fi:}
-\def\EQ_find_displaywidth_iv_mult:{\EQ_find_displaywidth_iii_mult:}
-\def\EQ_place_display_iii_mult:{
- \MH_if_case:w \l_EQ_alignmentmode_int
- \MH_or: % #1:
+ \MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{multline}{gather}
+ {\MH_set_boolean_T:n {outer_mult}}
+ \MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{multline*}{gather*}
+ {\MH_set_boolean_T:n {outer_mult}}
+ \def\EQ_modify_linewidth_iii_mult:{
+ \setlength{\l_EQ_temp_linewidth_dim}{%
+ % \linewidth
+ \l_EQ_linewidth_dim
+ -\widthof{\EQ_outerbox:{}}}%
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
- \abovedisplayshortskip=\abovedisplayskip
- \rlap{
- \kern-.5\linewidth
- \kern\multlinegap
- \EQ_use_mathdisplay:
- }
+ \EQ_multline_modify_linewidth_tag:
\MH_else:
- \EQ_use_mathdisplay:
+ \EQ_multline_modify_linewidth_notag:
\MH_fi:
- \MH_or: % #2:
- \MH_if_dim:w \g_EQ_widesttag_dim>\z@
- \llap{
- \EQ_use_mathdisplay:
- \kern-.5\linewidth
- \kern\multlinegap
- }%
- \MH_else:
- \EQ_use_mathdisplay:
+ \MH_setlength:dn \l_MT_multwidth_dim{\l_EQ_temp_linewidth_dim}
+ \MH_if_case:w \l_EQ_alignmentmode_int
+ \MH_or: \MH_or: % 1 and 2
+ \MH_or:
+ \MH_addtolength:dn
+ \l_EQ_temp_linewidth_dim{\@mathmargin}%
+ \MH_or:
+ \MH_addtolength:dn
+ \l_EQ_temp_linewidth_dim{\@mathmargin}%
\MH_fi:
- \MH_or: % #3:
- \EQ_use_mathdisplay:
- \MH_or: % #4:
- \EQ_use_mathdisplay:
- \MH_fi:
-}
-\def\EQ_place_display_iv_mult: {\EQ_place_display_iii_mult:}
-}{
-\def\EQ_generic_multline:nnnnn #1#2#3#4#5{%
- \hskip1sp#2#3{{}#5}#4%
- \MH_if:w *#1\relax\MH_else:\notag\MH_fi:}
-\def\multleft{\@ifstar{%
- \MH_if_boolean:nTF {multlined}{
- \def\EQ_next:{\EQ_multlined_left:n}
- }{
- \def\EQ_next:{
- \EQ_generic_multline:nnnnn {*}{}{\mathrlap}{&&&&&}}
- }
- \EQ_next:}{%
- \MH_if_boolean:nTF {multlined}{
- \def\EQ_next:{\EQ_multlined_left:n}%
- }{
- \def\EQ_next:{
- \EQ_generic_multline:nnnnn {}{}{\mathrlap}{&&&&&}}
}
- \EQ_next:}}%
-\def\multcenter{\@ifstar{%
- \MH_if_boolean:nTF {multlined}{
- \def\EQ_next:{\EQ_multlined_center:n}%
- }{
- \def\EQ_next:{
- \EQ_generic_multline:nnnnn {*}{&&}{\mathclap}{&&&}}
- }
- \EQ_next:}{%
- \MH_if_boolean:nTF {multlined}{
- \def\EQ_next:{\EQ_multlined_center:n }%
- }{
- \def\EQ_next:{
- \EQ_generic_multline:nnnnn {}{&&}{\mathclap}{&&&}}
- }
- \EQ_next:}}%
-\def\multright{\@ifstar{%
- \MH_if_boolean:nTF {multlined}{
- \def\EQ_next:{\EQ_multlined_right:n }%
- }{
- \def\EQ_next:{
- \EQ_generic_multline:nnnnn {*}{&&&&&}{\mathllap}{}}
- }
- \EQ_next:}{%
- \MH_if_boolean:nTF {multlined}{
- \def\EQ_next:{\EQ_multlined_right:n }%
- }{
- \def\EQ_next:{
- \EQ_generic_multline:nnnnn {}{&&&&&}{\mathllap}{}}
- }
- \EQ_next:}}
-\def\multfirst{%
- \MH_if_boolean:nTF {multlined}{
- \def\EQ_next:{\EQ_multlined_left:n }%
- }{
+ \def\EQ_modify_linewidth_iv_mult:{\EQ_modify_linewidth_iii_mult:}
+ \def\EQ_find_displaywidth_iii_mult:{%
+ \MH_setlength:dn \l_EQ_displaywidth_dim{\totwidth@}%
+ \MH_if_case:w \l_EQ_alignmentmode_int \MH_or: \MH_or: % #1 & #2:
+ \MH_or: % #3:
+ \MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
+ \MH_or: % #4:
+ \MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
+ \MH_fi:}
+ \def\EQ_find_displaywidth_iv_mult:{\EQ_find_displaywidth_iii_mult:}
+ \def\EQ_place_display_iii_mult:{
\MH_if_case:w \l_EQ_alignmentmode_int
\MH_or: % #1:
- \def\EQ_next:{\multleft}%
+ \MH_if_dim:w \g_EQ_widesttag_dim>\z@
+ \abovedisplayshortskip=\abovedisplayskip
+ \rlap{
+ % \kern-.5\linewidth
+ \kern-.5\l_EQ_linewidth_dim
+ \kern\multlinegap
+ \EQ_use_mathdisplay:
+ }
+ \MH_else:
+ \EQ_use_mathdisplay:
+ \MH_fi:
\MH_or: % #2:
- \def\EQ_next:{\multleft*}%
+ \MH_if_dim:w \g_EQ_widesttag_dim>\z@
+ \llap{
+ \EQ_use_mathdisplay:
+ % \kern-.5\linewidth
+ \kern-.5\l_EQ_linewidth_dim
+ \kern\multlinegap
+ }%
+ \MH_else:
+ \EQ_use_mathdisplay:
+ \MH_fi:
\MH_or: % #3:
- \def\EQ_next:{\multleft}%
+ \EQ_use_mathdisplay:
\MH_or: % #4:
- \def\EQ_next:{\multleft*}%
+ \EQ_use_mathdisplay:
\MH_fi:
}
- \EQ_next:}
-\def\multmiddle{%
- \def\EQ_next:{%
+ \def\EQ_place_display_iv_mult: {\EQ_place_display_iii_mult:}
+}{% on to the 'bad' version
+ \def\EQ_generic_multline:nnnnn #1#2#3#4#5{%
+ \hskip1sp#2#3{{}#5}#4%
+ \MH_if:w *#1\relax\MH_else:\notag\MH_fi:}
+ \def\multleft{\@ifstar{%
\MH_if_boolean:nTF {multlined}{
- \expandafter\EQ_multlined_center:n
+ \def\EQ_next:{\EQ_multlined_left:n}
}{
- \expandafter\multcenter
+ \def\EQ_next:{
+ \EQ_generic_multline:nnnnn {*}{}{\mathrlap}{&&&&&}}
}
- }%
- \@ifstar{\EQ_next:}{\EQ_next:}}
-\def\multlast{%
- \MH_if_boolean:nTF {multlined}{
- \def\EQ_next:{\EQ_multlined_right:n }%
- }{
- \MH_if_case:w \l_EQ_alignmentmode_int
- \MH_or: % #1:
- \def\EQ_next:{\multright*}%
- \MH_or: % #2:
- \def\EQ_next:{\multright}%
- \MH_or: % #3:
- \def\EQ_next:{\multright*}%
- \MH_or: % #4:
- \def\EQ_next:{\multright}%
- \MH_fi:
- }
- \EQ_next:}
-\MH_new_boolean:n {multlined}
-\newdimen\multlinedwidth
-\MH_setlength:dn \multlinedwidth{.7\linewidth}
-\renewenvironment{multlined}%
- {\MH_nospace_ifnextchar:Nnn [ {\EQ_multlined_I:w}
- {\EQ_multlined_I:w[c]}
- }
- { \endaligned }
-\def\EQ_multlined_I:w[#1]{%
- \MH_nospace_ifnextchar:Nnn[ {\EQ_multlined_II:w[#1]}
- {\EQ_multlined_II:w[#1][\multlinedwidth]}}
-\def\EQ_multlined_II:w[#1][#2]{%
- \MH_set_boolean_T:n {multlined}
- \MH_let:NwN \Let@\MT_saved_Let:
- \MH_if:w t#1\relax \EQ_multlined_III:nn {#1}{#2}%
- \MH_else:
- \MH_if:w b#1\relax \EQ_multlined_III:nn {#1}{#2}%
+ \EQ_next:}{%
+ \MH_if_boolean:nTF {multlined}{
+ \def\EQ_next:{\EQ_multlined_left:n}%
+ }{
+ \def\EQ_next:{
+ \EQ_generic_multline:nnnnn {}{}{\mathrlap}{&&&&&}}
+ }
+ \EQ_next:}}%
+ \def\multcenter{\@ifstar{%
+ \MH_if_boolean:nTF {multlined}{
+ \def\EQ_next:{\EQ_multlined_center:n}%
+ }{
+ \def\EQ_next:{
+ \EQ_generic_multline:nnnnn {*}{&&}{\mathclap}{&&&}}
+ }
+ \EQ_next:}{%
+ \MH_if_boolean:nTF {multlined}{
+ \def\EQ_next:{\EQ_multlined_center:n }%
+ }{
+ \def\EQ_next:{
+ \EQ_generic_multline:nnnnn {}{&&}{\mathclap}{&&&}}
+ }
+ \EQ_next:}}%
+ \def\multright{\@ifstar{%
+ \MH_if_boolean:nTF {multlined}{
+ \def\EQ_next:{\EQ_multlined_right:n }%
+ }{
+ \def\EQ_next:{
+ \EQ_generic_multline:nnnnn {*}{&&&&&}{\mathllap}{}}
+ }
+ \EQ_next:}{%
+ \MH_if_boolean:nTF {multlined}{
+ \def\EQ_next:{\EQ_multlined_right:n }%
+ }{
+ \def\EQ_next:{
+ \EQ_generic_multline:nnnnn {}{&&&&&}{\mathllap}{}}
+ }
+ \EQ_next:}}
+ \def\multfirst{%
+ \MH_if_boolean:nTF {multlined}{
+ \def\EQ_next:{\EQ_multlined_left:n }%
+ }{
+ \MH_if_case:w \l_EQ_alignmentmode_int
+ \MH_or: % #1:
+ \def\EQ_next:{\multleft}%
+ \MH_or: % #2:
+ \def\EQ_next:{\multleft*}%
+ \MH_or: % #3:
+ \def\EQ_next:{\multleft}%
+ \MH_or: % #4:
+ \def\EQ_next:{\multleft*}%
+ \MH_fi:
+ }
+ \EQ_next:}
+ \def\multmiddle{%
+ \def\EQ_next:{%
+ \MH_if_boolean:nTF {multlined}{
+ \expandafter\EQ_multlined_center:n
+ }{
+ \expandafter\multcenter
+ }
+ }%
+ \@ifstar{\EQ_next:}{\EQ_next:}}
+ \def\multlast{%
+ \MH_if_boolean:nTF {multlined}{
+ \def\EQ_next:{\EQ_multlined_right:n }%
+ }{
+ \MH_if_case:w \l_EQ_alignmentmode_int
+ \MH_or: % #1:
+ \def\EQ_next:{\multright*}%
+ \MH_or: % #2:
+ \def\EQ_next:{\multright}%
+ \MH_or: % #3:
+ \def\EQ_next:{\multright*}%
+ \MH_or: % #4:
+ \def\EQ_next:{\multright}%
+ \MH_fi:
+ }
+ \EQ_next:}
+ \MH_new_boolean:n {multlined}
+ \newdimen\multlinedwidth
+ \MH_setlength:dn \multlinedwidth{
+ % .7\linewidth
+ 0.7\l_EQ_linewidth_dim
+ }
+ \renewenvironment{multlined}%
+ {\MH_nospace_ifnextchar:Nnn [ {\EQ_multlined_I:w}
+ {\EQ_multlined_I:w[c]}
+ }
+ { \endaligned }
+ \def\EQ_multlined_I:w[#1]{%
+ \MH_nospace_ifnextchar:Nnn[ {\EQ_multlined_II:w[#1]}
+ {\EQ_multlined_II:w[#1][\multlinedwidth]}}
+ \def\EQ_multlined_II:w[#1][#2]{%
+ \MH_set_boolean_T:n {multlined}
+ \MH_let:NwN \Let@\MT_saved_Let:
+ \MH_if:w t#1\relax \EQ_multlined_III:nn {#1}{#2}%
\MH_else:
- \MH_if:w c#1\relax \EQ_multlined_III:nn {#1}{#2}%
+ \MH_if:w b#1\relax \EQ_multlined_III:nn {#1}{#2}%
\MH_else:
- \EQ_multlined_III:nn {#2}{#1}%
+ \MH_if:w c#1\relax \EQ_multlined_III:nn {#1}{#2}%
+ \MH_else:
+ \EQ_multlined_III:nn {#2}{#1}%
+ \MH_fi:
\MH_fi:
\MH_fi:
- \MH_fi:
- \mkern-\thinmuskip
- \EQ_next:}
-\def\EQ_multlined_III:nn #1#2{%
- \def\EQ_next:{\setlength\multlinedwidth{#2}%
- \start@aligned{#1}{\thr@@}}}
-\def\EQ_multlined_left:n #1{%
- \mathrlap{#1}&\hskip.5\multlinedwidth&&\hskip.5\multlinedwidth&&}
-\def\EQ_multlined_center:n #1{%
- &\hskip.5\multlinedwidth&&\mathclap{#1}\hskip.5\multlinedwidth&&}
-\def\EQ_multlined_right:n #1{%
- &\hskip.5\multlinedwidth&&\hskip.5\multlinedwidth&&\mathllap{#1}}
+ \mkern-\thinmuskip
+ \EQ_next:}
+ \def\EQ_multlined_III:nn #1#2{%
+ \def\EQ_next:{\setlength\multlinedwidth{#2}%
+ \start@aligned{#1}{\thr@@}}}
+ \def\EQ_multlined_left:n #1{%
+ \mathrlap{#1}&\hskip.5\multlinedwidth&&\hskip.5\multlinedwidth&&}
+ \def\EQ_multlined_center:n #1{%
+ &\hskip.5\multlinedwidth&&\mathclap{#1}\hskip.5\multlinedwidth&&}
+ \def\EQ_multlined_right:n #1{%
+ &\hskip.5\multlinedwidth&&\hskip.5\multlinedwidth&&\mathllap{#1}}
}
\EQ_new_equationtype:nnn {EmphEqEnv}{flalign}{5}
\EQ_new_equationtype:nnn {EmphEqEnv}{flalign*}{6}
\def\EQ_modify_linewidth_v:{%
\setlength{\l_EQ_temp_linewidth_dim}{%
- \linewidth-\l_EQ_totalwidth_dim-\widthof{\EQ_outerbox:{}}}%
+ % \linewidth
+ \l_EQ_linewidth_dim
+ -\l_EQ_totalwidth_dim-\widthof{\EQ_outerbox:{}}}%
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
\MH_if_boolean:nTF {multline}{
\EQ_multline_modify_linewidth_tag:
@@ -711,11 +746,15 @@
\MH_or: % #1:
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
\MH_if_boolean:nTF {multline}{
- \rlap{\kern\multlinegap \kern-.5\linewidth
+ \rlap{\kern\multlinegap
+ % \kern-.5\linewidth
+ \kern-.5\l_EQ_linewidth_dim
\EQ_use_mathdisplay:
\kern-\mintagsep \kern\multlinetaggap}%
}{
- \rlap{\kern-.5\linewidth\EQ_use_mathdisplay:}%
+ \rlap{%\kern-.5\linewidth
+ \kern-.5\l_EQ_linewidth_dim
+ \EQ_use_mathdisplay:}%
}
\MH_else:
\EQ_use_mathdisplay:
@@ -725,15 +764,22 @@
\MH_if_boolean:nTF {multline}{
\llap{\kern-\mintagsep \kern\multlinetaggap
\EQ_use_mathdisplay:
- \kern\multlinegap \kern-.5\linewidth}%
+ \kern\multlinegap
+ % \kern-.5\linewidth
+ \kern-.5\l_EQ_linewidth_dim
+ }%
}{
- \llap{\EQ_use_mathdisplay:\kern-.5\linewidth}%
+ \llap{\EQ_use_mathdisplay:
+ % \kern-.5\linewidth
+ \kern-.5\l_EQ_linewidth_dim
+ }%
}
\MH_else:
\EQ_use_mathdisplay:
\MH_fi:
\MH_or: % #3:
- \MH_if_boolean:nF {multline}{ \kern-\multlinetaggap }
+ \MH_if_boolean:nTF {multline}{ \kern-\multlinetaggap }
+ { \kern-\@mathmargin }
\EQ_use_mathdisplay:
\MH_or: % #4:
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
@@ -902,6 +948,10 @@
\rule[-\dp\z@-\shadowsize]{\shadowsize}{\ht\z@+\dp\z@}}}}%
}{}%
}
+\g@addto@macro\EQ_typeset_display_hook:{
+ % \columnwidth\linewidth
+ \def\fullwidthdisplay{}
+}
\def\EQ_overload_ams_begin:n #1{%
\MH_let:cc {AmS#1}{#1}%
\MH_let:cc {AmS#1*}{#1*}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/mathtools/mathtools.sty new/tex/latex/mathtools/mathtools.sty
--- old/tex/latex/mathtools/mathtools.sty 2018-01-08 23:18:48.000000000 +0100
+++ new/tex/latex/mathtools/mathtools.sty 2020-03-24 21:50:35.000000000 +0100
@@ -9,7 +9,8 @@
%% This is a generated file.
%%
%% Copyright (C) 2002-2011 by Morten Hoegholm
-%% Copyright (C) 2012- by Lars Madsen
+%% Copyright (C) 2012-2019 by Lars Madsen
+%% Copyright (C) 2020 by Lars Madsen, the LaTeX3 project
%%
%%
%% This work may be distributed and/or modified under the
@@ -23,14 +24,14 @@
%% This work has the LPPL maintenance status "maintained".
%%
%% This Current Maintainer of this work is
-%% Lars Madsen
+%% Lars Madsen and the LaTeX3 project
%%
%% This work consists of the main source file mathtools.dtx
%% and the derived files
%% mathtools.sty, mathtools.pdf, mathtools.ins, mathtools.drv.
%%
\ProvidesPackage{mathtools}%
- [2018/01/08 v1.21 mathematical typesetting tools]
+ [2020/03/24 v1.24 mathematical typesetting tools]
\RequirePackage{keyval,calc}
\RequirePackage{mhsetup}[2017/03/31]
\MHInternalSyntaxOn
@@ -195,7 +196,7 @@
{ \MT_prev_tagform:n {#1} }
{ \@safe@activestrue
\@ifundefined{MT_r_\df@label}
- { \global\MH_set_boolean_F:n {manual_tag} }
+ { \global\MH_set_boolean_F:n {manual_tag} \kern1sp } % kern added 2020
{ \MT_prev_tagform:n {#1} }
\@safe@activesfalse
}
@@ -203,7 +204,7 @@
{
\@safe@activestrue
\@ifundefined{MT_r_\df@label}
- { }
+ { \kern1sp }% kern added 2020
{ \refstepcounter{equation}\MT_prev_tagform:n {#1} }
\@safe@activesfalse
}
@@ -320,11 +321,11 @@
\def\MT_leftrightarrow_fill:{%
\arrowfill@\leftarrow\relbar\rightarrow}
\providecommand*\xLeftarrow[2][]{%
- \ext@arrow 0055{\Leftarrowfill@}{#1}{#2}}
+ \ext@arrow 0055{\Leftarrowfill@}{\ #1}{\ #2}}
\providecommand*\xRightarrow[2][]{%
- \ext@arrow 0055{\Rightarrowfill@}{#1}{#2}}
+ \ext@arrow 0055{\Rightarrowfill@}{#1\ }{#2\ }}
\providecommand*\xLeftrightarrow[2][]{%
- \ext@arrow 0055{\Leftrightarrowfill@}{#1}{#2}}
+ \ext@arrow 0055{\Leftrightarrowfill@}{\ #1\ }{\ #2\ }}
\def\MT_rightharpoondown_fill:{%
\arrowfill@\relbar\relbar\rightharpoondown}
\def\MT_rightharpoonup_fill:{%
@@ -624,6 +625,37 @@
}{%
\crcr\egroup\egroup
}
+ \renewenvironment{crampedsubarray}[1]{%
+ \vcenter\bgroup
+ \Let@ \restore@math@cr \default@tag
+ \let\math@cr@@\AMS@math@cr@@ % <--- the fix
+ \baselineskip\fontdimen10 \scriptfont\tw@
+ \advance\baselineskip\fontdimen12 \scriptfont\tw@
+ \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
+ \lineskiplimit\lineskip
+ \ialign\bgroup\ifx c##1\hfil\fi
+ $\m@th\scriptstyle\kern-\nulldelimiterspace\radical\z@{####}$
+ \hfil\crcr
+ }{%
+ \crcr\egroup\egroup
+ }
+ % from mathtolls
+ \def\MT_smallmatrix_begin:N ##1{%
+ \Let@\restore@math@cr\default@tag
+ \let\math@cr@@\AMS@math@cr@@ % <--- the fix
+ \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
+ \csname MT_smallmatrix_##1_begin:\endcsname
+ }
+ % from amsmath
+ \renewenvironment{smallmatrix}{\null\,\vcenter\bgroup
+ \Let@\restore@math@cr\default@tag
+ \let\math@cr@@\AMS@math@cr@@ % <--- the fix
+ \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
+ \ialign\bgroup\hfil$\m@th\scriptstyle####$\hfil&&\thickspace\hfil
+ $\m@th\scriptstyle####$\hfil\crcr
+ }{%
+ \crcr\egroup\egroup\,%
+ }
}
\newenvironment{multlined}[1][]
@@ -1447,6 +1479,20 @@
\def\MT_cramped_rlap_internal:Nn #1#2{
{}\rlap{\MT_cramped_internal:Nn #1{#2}}
}
+\newenvironment{crampedsubarray}[1]{%
+ \vcenter\bgroup
+ \Let@ \restore@math@cr \default@tag
+ \baselineskip\fontdimen10 \scriptfont\tw@
+ \advance\baselineskip\fontdimen12 \scriptfont\tw@
+ \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
+ \lineskiplimit\lineskip
+ \ialign\bgroup\ifx c#1\hfil\fi
+ $\m@th\scriptstyle\kern-\nulldelimiterspace\radical\z@{##}$% <-- changed line
+ \hfil\crcr%
+}{%
+\crcr\egroup\egroup
+}
+\newcommand{\crampedsubstack}[1]{\crampedsubarray{c}#1\endcrampedsubarray}
\newcommand{\MT_prescript_inner:}[4]{
\@mathmeasure\z@#4{\MT_prescript_sup:{#1}}
\@mathmeasure\tw@#4{\MT_prescript_sub:{#2}}
@@ -1657,6 +1703,24 @@
\MaybeMHPrecedingSpacesOff
\renewcommand\aligned@a[1][c]{\start@aligned{#1}\m@ne}
\MHPrecedingSpacesOn
+\newbox\xmathstrut@box
+\newdimen\xmathstrut@dim
+\def\xmathstrut{\@dblarg\xmathstrut@}
+\def\xmathstrut@[#1]#2{%
+ \def\xmathstrut@dp{#1}%
+ \vphantom{\mathpalette\xmathstrut@do{#2}}%
+}
+\def\xmathstrut@do#1#2{%
+ \setbox\xmathstrut@box\hbox{$#1($}%)%emacs
+ \xmathstrut@dim\dimexpr\ht\xmathstrut@box+\dp\xmathstrut@box\relax
+ \ht\xmathstrut@box\dimexpr\ht\xmathstrut@box
+ +#2\xmathstrut@dim
+ \relax
+ \dp\xmathstrut@box\dimexpr\dp\xmathstrut@box
+ +\xmathstrut@dp\xmathstrut@dim
+ \relax
+ \box\xmathstrut@box}
+
\endinput
%%
%% End of file `mathtools.sty'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/mathtools/mhsetup.sty new/tex/latex/mathtools/mhsetup.sty
--- old/tex/latex/mathtools/mhsetup.sty 2017-06-06 23:53:26.000000000 +0200
+++ new/tex/latex/mathtools/mhsetup.sty 2020-03-24 21:50:35.000000000 +0100
@@ -9,7 +9,8 @@
%% This is a generated file.
%%
%% Copyright (C) 2002-2007,2010 by Morten Hoegholm
-%% Copyright (C) 2017 by Lars Madsen
+%% Copyright (C) 2017-2019 by Lars Madsen
+%% Copyright (C) 2020- by Lars Madsen, The LaTeX3 team
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -21,7 +22,8 @@
%%
%% This work has the LPPL maintenance status "maintained".
%%
-%% This Current Maintainer of this work is Lars Madsen
+%% This Current Maintainer of this work is Lars Madsen
+%% , The LaTeX3 team https://github.com/latex3/mathtools
%%
%% This work consists of the main source file mhsetup.dtx
%% and the derived files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/mathtools.tlpobj new/tlpkg/tlpobj/mathtools.tlpobj
--- old/tlpkg/tlpobj/mathtools.tlpobj 2019-02-28 03:53:18.000000000 +0100
+++ new/tlpkg/tlpobj/mathtools.tlpobj 2020-03-25 16:13:14.000000000 +0100
@@ -1,6 +1,6 @@
name mathtools
category Package
-revision 46250
+revision 54516
shortdesc Mathematical tools to use with amsmath
relocated 1
longdesc Mathtools provides a series of packages designed to enhance the
@@ -24,8 +24,8 @@
RELOC/tex/latex/mathtools/mathtools.sty
RELOC/tex/latex/mathtools/mhsetup.sty
catalogue-also mhsetup empheq
+catalogue-contact-repository https://github.com/latex3/mathtools
catalogue-ctan /macros/latex/contrib/mathtools
-catalogue-date 2018-01-08 15:01:37 +0100
catalogue-license lppl1.3
catalogue-topics maths
-catalogue-version 1.21
+catalogue-version 1.24
++++++ mcf2graph.doc.tar.xz ++++++
++++ 2161 lines of diff (skipped)
++++++ mcf2graph.tar.xz ++++++
++++ 1764 lines of diff (skipped)
++++++ mcmthesis.doc.tar.xz ++++++
++++ 28330 lines of diff (skipped)
++++++ mcmthesis.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/mcmthesis/mcmthesis.cls new/tex/latex/mcmthesis/mcmthesis.cls
--- old/tex/latex/mcmthesis/mcmthesis.cls 2019-01-26 23:57:28.000000000 +0100
+++ new/tex/latex/mcmthesis/mcmthesis.cls 2020-01-23 22:54:54.000000000 +0100
@@ -11,8 +11,9 @@
%% This is a generated file.
%%
%% Copyright (C)
-%% 2010 -- 2015 by Zhaoli Wang
-%% 2014 -- present by Liam Huang
+%% 2010 -- 2015 by Zhaoli Wang
+%% 2014 -- 2019 by Liam Huang
+%% 2019 -- present by latexstudio.net
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -28,9 +29,9 @@
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{mcmthesis}
- [2019/01/26 v6.2.2 The Thesis Template Designed For MCM/ICM]
+ [2020/01/18 v6.3 The Thesis Template Designed For MCM/ICM]
\typeout{The Thesis Template Designed For MCM/ICM}
-\def\MCMversion{v6.2.2}
+\def\MCMversion{v6.3}
\RequirePackage{xkeyval}
\RequirePackage{etoolbox}
\define@boolkey{MCM}[MCM@opt@]{CTeX}[false]{}
@@ -94,7 +95,7 @@
\RequirePackage{bmpsize}
\fi
\fi
-\RequirePackage{xcolor}
+\RequirePackage[svgnames]{xcolor}
\ifpdf
\hypersetup{hidelinks}
\else
@@ -104,7 +105,7 @@
\hypersetup{dvipdfm, hidelinks}
\fi
\fi
-\geometry{a4paper, margin = 1.2in}
+\geometry{a4paper, margin = 1in}
\pagestyle{fancy}
\fancyhf{}
\lhead{\small\sffamily \team}
@@ -164,6 +165,14 @@
\@abstract\par
}
\fi
+\newenvironment{letter}[1]{%
+ \par%
+ \bgroup\parindent0pt%
+ \begin{minipage}{5cm}
+ \flushleft #1%
+ \end{minipage}}
+ {\egroup\smallskip}
+
\def\keywordsname{Keywords}
\ifMCM@opt@CTeX
\newbox\@keywords
@@ -180,7 +189,7 @@
\@keywords\par
}
\fi
-\newcommand{\headset}{{\Large\the\year}\\MCM/ICM\\Summary Sheet}
+\newcommand{\headset}{{\the\year}\\MCM/ICM\\Summary Sheet}
\newcommand{\problem}[1]{\mcmsetup{problem = #1}}
\def\makesheet{%
\pagestyle{empty}%
@@ -189,30 +198,21 @@
\begin{center}
\begingroup
\setlength{\parindent}{0pt}
- \begin{minipage}{0.28\linewidth}
- For office use only\\[4pt]
- \makebox[0.15\linewidth][l]{T1}\rule[-2pt]{0.85\linewidth}{0.5pt}\\[4pt]
- \makebox[0.15\linewidth][l]{T2}\rule[-2pt]{0.85\linewidth}{0.5pt}\\[4pt]
- \makebox[0.15\linewidth][l]{T3}\rule[-2pt]{0.85\linewidth}{0.5pt}\\[4pt]
- \makebox[0.15\linewidth][l]{T4}\rule[-2pt]{0.85\linewidth}{0.5pt}
- \end{minipage}%
- \begin{minipage}{0.44\linewidth}
- \centering
- Team Control Number\\[0.7pc]
- {\Huge\textbf{\MCM@opt@tcn}}\\[1.8pc]
+ \begin{minipage}[t]{0.33\linewidth}
+ \bfseries\centering%
Problem Chosen\\[0.7pc]
- {\Huge\textbf{\MCM@opt@problem}}
+ {\Huge\textbf{\MCM@opt@problem}}\\[2.8pc]
+ \end{minipage}%
+ \begin{minipage}[t]{0.33\linewidth}
+ \centering%
+ \textbf{\headset}%
\end{minipage}%
- \begin{minipage}{0.28\linewidth}
- For office use only\\[4pt]
- \makebox[0.15\linewidth][l]{F1}\rule[-2pt]{0.85\linewidth}{0.5pt}\\[4pt]
- \makebox[0.15\linewidth][l]{F2}\rule[-2pt]{0.85\linewidth}{0.5pt}\\[4pt]
- \makebox[0.15\linewidth][l]{F3}\rule[-2pt]{0.85\linewidth}{0.5pt}\\[4pt]
- \makebox[0.15\linewidth][l]{F4}\rule[-2pt]{0.85\linewidth}{0.5pt}
+ \begin{minipage}[t]{0.33\linewidth}
+ \centering\bfseries%
+ Team Control Number\\[0.7pc]
+ {\Huge\textbf{\MCM@opt@tcn}}\\[2.8pc]
\end{minipage}\par
- \rule{\linewidth}{0.5pt}\par
- \textbf{\headset}%
- \par
+ \rule{\linewidth}{0.8pt}\par
\endgroup
\vskip 10pt%
\ifMCM@opt@titleinsheet
@@ -294,9 +294,27 @@
\newtheorem{Proposition}[Theorem]{Proposition}
\newtheorem{Definition}[Theorem]{Definition}
\newtheorem{Example}[Theorem]{Example}
+\renewcommand\section{\@startsection{section}{1}{\z@}%
+ {-0pt\@plus -.2ex \@minus -.2ex}%
+ {1pt \@plus .2ex}%
+ {\rmfamily\Large\bfseries}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-0pt\@plus -.2ex \@minus -.2ex}%
+ {1pt \@plus .2ex}%
+ {\rmfamily\large\bfseries}}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-.5ex\@plus -1ex \@minus -.2ex}%
+ {.25ex \@plus .2ex}%
+ {\rmfamily\normalsize\bfseries}}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {1ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\rmfamily\normalsize}}
+
\providecommand{\dif}{\mathop{}\!\mathrm{d}}
\providecommand{\me}{\mathrm{e}}
\providecommand{\mi}{\mathrm{i}}
+
\definecolor{grey}{rgb}{0.8,0.8,0.8}
\definecolor{darkgreen}{rgb}{0,0.3,0}
\definecolor{darkblue}{rgb}{0,0,0.3}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/mcmthesis.tlpobj new/tlpkg/tlpobj/mcmthesis.tlpobj
--- old/tlpkg/tlpobj/mcmthesis.tlpobj 2019-02-28 03:53:21.000000000 +0100
+++ new/tlpkg/tlpobj/mcmthesis.tlpobj 2020-01-24 01:57:16.000000000 +0100
@@ -1,16 +1,15 @@
name mcmthesis
category Package
-revision 49825
+revision 53513
shortdesc Template designed for MCM/ICM
relocated 1
longdesc The package offers a template for MCM (The Mathematical Contest
longdesc in Modeling) and ICM (The Interdisciplinary Contest in
-longdesc Modeling).
+longdesc Modeling) for typesetting the submitted paper.
runfiles size=3
RELOC/tex/latex/mcmthesis/mcmthesis.cls
-catalogue-contact-repository https://github.com/Liam0205/mcmthesis
+catalogue-contact-home https://github.com/latexstudio-org/mcmthesis
catalogue-ctan /macros/latex/contrib/mcmthesis
-catalogue-date 2019-01-26 10:02:14 +0100
catalogue-license lppl1.3
catalogue-topics dissertation class
-catalogue-version 6.2.2
+catalogue-version 6.3
++++++ media9.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/media9/ChangeLog new/doc/latex/media9/ChangeLog
--- old/doc/latex/media9/ChangeLog 2019-02-23 00:12:42.000000000 +0100
+++ new/doc/latex/media9/ChangeLog 2020-03-25 22:11:52.000000000 +0100
@@ -1,3 +1,82 @@
+2020-03-24
+ * v1.10 : media9.sty
+ * v0.41 : pdfbase.sty
+ * fix : pdfbase.sty, dvisvgm driver: missing id and class attrs in
+ \pbs_pdfxform:nnnnn
+
+2020-03-24
+ * v1.09 : media9.sty
+ * v0.40 : pdfbase.sty
+ * fix : pdfbase.sty, dvisvgm driver: supporting latest dvisvgm-2.9.1
+ additions
+
+2020-03-23
+ * v1.08 : media9.sty
+ * v0.39 : pdfbase.sty
+ * fix : pdfbase.sty, dvisvgm driver: minor change of transform attr in
+ \pbs_pdfxform:nnnnn to cope with a dvisvgm issue
+
+2020-03-20
+ * v1.07 : media9.sty
+ * v0.38 : pdfbase.sty
+ * fix : pdfbase.sty, dvisvgm driver: transform attr in \pbs_pdfxform:nnnnn
+
+2020-03-04
+ * v1.06 : media9.sty
+ * v0.37 : pdfbase.sty
+ * fix : pdfbase.sty, dvisvgm driver: fixed behaviour of
+ \pbs_pdfrefxform:n under rotation/scaling, \pbs_pdfxform:nnnnn not changing
+ page bbox anymore
+
+2020-01-27
+ * v1.05 : media9.sty
+ * v0.36 : pdfbase.sty
+ * fix : dependency on pdftexcmds.sty removed; deprecated l3 functions
+ replaced
+
+2019-11-04
+ * v1.04 : media9.sty
+ * v0.35 : pdfbase.sty
+ * fix : output driver set-up
+
+2019-09-30
+ * v1.03 : media9.sty
+ * v0.34 : pdfbase.sty
+ * fix : expl3 functions to be deprecated in 2020
+
+2019-07-11
+ * v1.02 : media9.sty
+ * v0.33 : pdfbase.sty
+ * fix : dvipdfmx warning about off-page annotation, occuring if
+ ocgbase.sty is loaded at the same time
+
+2019-05-24
+ * v1.01 : media9.sty
+ * v0.32 : pdfbase.sty
+ * fix : pdfbase: \pbs_pdfdest:nnnn (luaTeX version)
+
+2019-05-17
+ * v1.0 : media9.sty
+ * v0.31 : pdfbase.sty
+ * fix : pdfbase: missing expansion when writing label to
+ aux file (PDF dest, dvips)
+
+2019-05-15
+ * v0.99 : media9.sty
+ * v0.30 : pdfbase.sty
+ * fix : pdfbase, dvipdfmx: missing space after dim expression in
+ \pbs_pdfxform:nnnnn
+
+2019-05-10
+ * v0.98 : media9.sty
+ * v0.29 : pdfbase.sty
+ * fix : deprecated expl3 commands replaced
+
+2019-05-02
+ * v0.97 : media9.sty
+ * v0.28 : pdfbase.sty
+ * new : pdfbase.sty: PDF Link destinations (doc level navigation)
+
2019-02-21
* v0.96 : media9.sty
* v0.27 : pdfbase.sty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/media9/README.txt new/doc/latex/media9/README.txt
--- old/doc/latex/media9/README.txt 2019-01-02 23:37:03.000000000 +0100
+++ new/doc/latex/media9/README.txt 2019-05-11 23:31:47.000000000 +0200
@@ -30,6 +30,7 @@
Requirements:
+Recent versions of
* l3kernel (LaTeX package), version >=2012/07/16
* l3packages (LaTeX package), version >=2012/07/16
* pdfTeX, version >=1.30
Binary files old/doc/latex/media9/media9.pdf and new/doc/latex/media9/media9.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/media9.doc.tlpobj new/tlpkg/tlpobj/media9.doc.tlpobj
--- old/tlpkg/tlpobj/media9.doc.tlpobj 2019-02-28 03:53:24.000000000 +0100
+++ new/tlpkg/tlpobj/media9.doc.tlpobj 2020-03-26 01:56:08.000000000 +0100
@@ -1,9 +1,9 @@
name media9.doc
category Package
-revision 50089
+revision 54554
shortdesc doc files of media9
relocated 1
-docfiles size=920
+docfiles size=915
RELOC/doc/latex/media9/ChangeLog
RELOC/doc/latex/media9/README.txt
RELOC/doc/latex/media9/media9.pdf
++++++ media9.tar.xz ++++++
++++ 1708 lines of diff (skipped)
++++++ memoir.doc.tar.xz ++++++
++++ 2208 lines of diff (skipped)
++++++ memoir.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/memoir/mem9.clo new/tex/latex/memoir/mem9.clo
--- old/tex/latex/memoir/mem9.clo 2018-04-05 23:10:27.000000000 +0200
+++ new/tex/latex/memoir/mem9.clo 2019-11-21 22:48:59.000000000 +0100
@@ -27,7 +27,7 @@
%% This work consists of the files listed in the README file.
%%
\ProvidesFile{mem9.clo}%
- [2008/01/30 v0.4 memoir class 9pt size option]
+ [2008/01/30 v0.4 memoir class 9pt size option]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@ixpt\@xpt
\abovedisplayskip 9\p@ \@plus 2\p@ \@minus 4.5\p@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/memoir/memhfixc.sty new/tex/latex/memoir/memhfixc.sty
--- old/tex/latex/memoir/memhfixc.sty 2018-04-05 23:10:27.000000000 +0200
+++ new/tex/latex/memoir/memhfixc.sty 2019-11-15 22:40:34.000000000 +0100
@@ -41,6 +41,7 @@
%% With thanks to Heiko Oberdiek, if you use hyperref dated 2006/11/15
%% or later, memhfixc will be automatically loaded after hyperref.
%%
+%% Version 1.18 2019/10/24
%% Version 1.17 2013/05/30
%% Version 1.16 2013/05/16
%% Version 1.15 2010/08/17
@@ -60,7 +61,7 @@
%% Version 1.1 2003/01/22
%% Version 1.0 2002/10/22
%%
-\ProvidesPackage{memhfixc}[2013/05/30 v1.17 nameref/hyperref package fixes for memoir class]
+\ProvidesPackage{memhfixc}[2019/10/24 v1.18 nameref/hyperref package fixes for memoir class]
\let\M@hfixcfinish\relax
\@ifclassloaded{memoir}{}%
{\let\M@hfixcfinish\endinput
@@ -250,6 +251,7 @@
\setcounter{memhycontfloat}{0}
\renewcommand{\contcaption}{%
+ \par%
\refstepcounter{memhycontfloat}%
\addtocounter{\@captype}{\m@ne}\H@refstepcounter{\@captype}%
\@contcaption\@captype}
@@ -350,6 +352,19 @@
\@namedef{mem@pnmm@end@hook}{\hyper@linkend}
\fi
+\AtEndPackage{hypcap}{%
+ \long\def\@@contcaption##1##2{%
+ \par
+ \begingroup
+ \@parboxrestore
+ \if@minipage
+ \@setminipage
+ \fi
+ \global\@capstartfalse% added
+ \normalsize
+ \@makecaption{\csname fnum@##1\endcsname}{\ignorespaces ##2}\par
+ \endgroup}
+}
\endinput
%%
%% End of file `memhfixc.sty'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/memoir/memoir.cls new/tex/latex/memoir/memoir.cls
--- old/tex/latex/memoir/memoir.cls 2018-12-12 22:24:10.000000000 +0100
+++ new/tex/latex/memoir/memoir.cls 2020-03-25 22:12:10.000000000 +0100
@@ -28,8 +28,8 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{memoir}%
- [2018/12/12 v3.7h configurable book, report, article document class]
-\newcommand\memversion{v3.7h, 2018/12/12}
+ [2020/03/25 v3.7k configurable book, report, article document class]
+\newcommand\memversion{v3.7k, 2020/03/25}
\newcommand*{\@ptsize}{}
\newcommand*{\@memptsize}{}
\newlength{\onelineskip}
@@ -135,12 +135,26 @@
\@namelet{ver@#1.\@pkgextension}\relax}
\@onlypreamble\DisemulatePackage
+\ifcsname InputIfFileExists \endcsname% looking for an explicit space
+ % here aka the robust version
+ \DeclareRobustCommand \InputIfFileExists[2]{%
+ \IfFileExists{#1}%
+ {%
+ \expandafter\@swaptwoargs\expandafter
+ {\@filef@und\m@matendf{#1}\killm@matf{#1}}{%
+ #2\@addtofilelist{#1}\m@matbeginf{#1}\@@input%
+ }%
+ }%
+ }
+\else
+ % Old definition
\renewcommand{\InputIfFileExists}[2]{%
\IfFileExists{#1}%
{#2\@addtofilelist{#1}\m@matbeginf{#1}%
\@@input \@filef@und
\m@matendf{#1}%
\killm@matf{#1}}}
+\fi
\newcommand{\m@matbeginf}[1]{\@ifundefined{#1-m@mfb}{}%
{\@nameuse{#1-m@mfb}}}
@@ -217,11 +231,7 @@
\newcommand{\cmd}[1]{\cmdprint{#1}%
\index{\expandafter\@gobble\string#1?\string\cmdprint{\string#1}}}
-\RequirePackage{ifpdf}[2017/03/15]
-\RequirePackage{ifetex}
-\RequirePackage{ifxetex}[2010/09/12]
-\RequirePackage{ifluatex}[2016/05/16]
-
+\RequirePackage{iftex}[2019/11/07]
\edef\wo@dmacro{%
\string m\string a\string c\string r\string o\string :%
}
@@ -406,6 +416,7 @@
\newcommand*{\stockaiv} {\stockheight=297mm \stockwidth=210mm}
\newcommand*{\stockav} {\stockheight=210mm \stockwidth=148mm}
\newcommand*{\stockavi} {\stockheight=148mm \stockwidth=105mm}
+\newcommand*{\stockavii}{\stockheight=105mm \stockwidth=74mm}
\newcommand*{\stockbo} {\stockheight=1414mm \stockwidth=1000mm}
\newcommand*{\stockbi} {\stockheight=1000mm \stockwidth=707mm}
@@ -414,6 +425,7 @@
\newcommand*{\stockbiv} {\stockheight=353mm \stockwidth=250mm}
\newcommand*{\stockbv} {\stockheight=250mm \stockwidth=176mm}
\newcommand*{\stockbvi} {\stockheight=176mm \stockwidth=125mm}
+\newcommand*{\stockbvii}{\stockheight=125mm \stockwidth=88mm}
\newcommand*{\pagedbill} {\paperheight=7in \paperwidth=3in}
\newcommand*{\pagestatement} {\paperheight=8.5in \paperwidth=5.5in}
@@ -450,6 +462,7 @@
\newcommand*{\pageaiv} {\paperheight=297mm \paperwidth=210mm}
\newcommand*{\pageav} {\paperheight=210mm \paperwidth=148mm}
\newcommand*{\pageavi} {\paperheight=148mm \paperwidth=105mm}
+\newcommand*{\pageavii}{\paperheight=105mm \paperwidth=74mm}
\newcommand*{\pagebo} {\paperheight=1414mm \paperwidth=1000mm}
\newcommand*{\pagebi} {\paperheight=1000mm \paperwidth=707mm}
@@ -458,6 +471,7 @@
\newcommand*{\pagebiv} {\paperheight=353mm \paperwidth=250mm}
\newcommand*{\pagebv} {\paperheight=250mm \paperwidth=176mm}
\newcommand*{\pagebvi} {\paperheight=176mm \paperwidth=125mm}
+\newcommand*{\pagebvii}{\paperheight=125mm \paperwidth=88mm}
\DeclareOption{a0paper}{\stockao}
\DeclareOption{a1paper}{\stockai}
@@ -466,6 +480,7 @@
\DeclareOption{a4paper}{\stockaiv}
\DeclareOption{a5paper}{\stockav}
\DeclareOption{a6paper}{\stockavi}
+\DeclareOption{a7paper}{\stockavii}
\DeclareOption{b0paper}{\stockbo}
\DeclareOption{b1paper}{\stockbi}
\DeclareOption{b2paper}{\stockbii}
@@ -473,6 +488,7 @@
\DeclareOption{b4paper}{\stockbiv}
\DeclareOption{b5paper}{\stockbv}
\DeclareOption{b6paper}{\stockbvi}
+\DeclareOption{b7paper}{\stockbvii}
\DeclareOption{mcrownvopaper}{\stockmcrownvo}
\DeclareOption{mlargecrownvopaper}{\stockmlargecrownvo}
\DeclareOption{mdemyvopaper}{\stockmdemyvo}
@@ -1361,6 +1377,7 @@
}
\AtBeginDocument{\mem@fixpagelayout}
+\let\refixpagelayout\mem@fixpagelayout
\newcommand*{\fixpdflayout}{%
\ClassWarning{memoir}{As of 2018, \string\fixpdflayout\ is no longer used}
@@ -1472,6 +1489,7 @@
\advance\trimtop -0.5\trimtop
\trimedge=\stockwidth \advance\trimedge -\paperwidth
\advance\trimedge -0.5\trimedge}
+\let\setpagemm\setpagecc
\setcounter{topnumber}{3}
\renewcommand{\topfraction}{.85}
@@ -1857,22 +1875,55 @@
\fi}
\newcommand\createmark[5]{%
- \def\@tempa{00}
+ % \def\@tempa{00}
+ % \nametest{#3}{nonumber}%
+ % \ifsamename
+ % \def\@tempa{01}%
+ % \else
+ % \nametest{#3}{shownumber}
+ % \ifsamename\else
+ % \@memerror{Unknown numbering value `#3' for #1mark}%
+ % {I expected `shownumber' or `nonumber'.\MessageBreak
+ % I will assume you meant `shownumber'}%
+ % \fi
+ % \fi
+ % \expandafter\if\@tempa% compares the two \@tempa digits
+ % \@namedef{#1marksn}##1{##1}%
+ % \else
+ % \@namedef{#1marksn}{\@gobble}%
+ % \fi
+ \def\@tempa{1}
\nametest{#3}{nonumber}%
\ifsamename
- \def\@tempa{01}%
+ \def\@tempa{0}
\else
\nametest{#3}{shownumber}
- \ifsamename\else
- \@memerror{Unknown numbering value `#3' for #1mark}%
- {I expected `shownumber' or `nonumber'.\MessageBreak
- I will assume you meant `shownumber'}%
+ \ifsamename
+ \def\@tempa{1}
+ \else
+ \nametest{#3}{notitle}
+ \ifsamename
+ \def\@tempa{2}
+ \else
+ \@memerror{Unknown numbering value `#3' for
+ #1mark,\MessageBreak
+ please use one of 'shownumber', 'nonumber' or 'notitle'}%
+ {I expected `shownumber', `nonumber' or 'notitle'.\MessageBreak
+ I will assume you meant `shownumber'}%
+ \fi
\fi
\fi
- \expandafter\if\@tempa% compares the two \@tempa digits
- \@namedef{#1marksn}##1{##1}%
- \else
+ \@namedef{#1markst}##1{##1}
+ \ifcase\@tempa\relax
+ % nonumber
\@namedef{#1marksn}{\@gobble}%
+ \or % 1
+ % shownumber
+ \@namedef{#1marksn}##1{##1}
+ \or % 2, 2 implies shownumber
+ % shownumber
+ \@namedef{#1marksn}##1{##1}
+ \@namedef{#1markst}{\@gobble}
\fi
\nametest{#2}{left}%
\ifsamename
@@ -1886,7 +1937,11 @@
\@nameuse{#1marksn}{#4\@nameuse{the#1}#5}%
\fi
\fi
- ##1}}{}}%
+ \@nameuse{#1markst}{##1}%
+ }%
+ }%
+ {}% just left
+ }%
\else
\nametest{#2}{right}
\ifsamename
@@ -1900,7 +1955,10 @@
\@nameuse{#1marksn}{#4\@nameuse{the#1}#5}%
\fi%
\fi%
- ##1}}}%
+ \@nameuse{#1markst}{##1}%
+ }%
+ }%
+ }%
\else
\nametest{#2}{both}%
\ifsamename\else
@@ -1919,16 +1977,22 @@
\@nameuse{#1marksn}{#4\@nameuse{the#1}#5}%
\fi
\fi
- ##1}}{%
+ \@nameuse{#1markst}{##1}%
+ }%
+ }{%
\memUChead{%
\ifnum \c@secnumdepth > \c@@memmarkcntra
\if@mainmatter
\@nameuse{#1marksn}{#4\@nameuse{the#1}#5}%
\fi
\fi
- ##1}}}%
+ \@nameuse{#1markst}{##1}%
+ }%
+ }%
+ }%
\fi
- \fi}
+ \fi
+}
\newcommand\addtopsmarks[3]{%
\mem@ps@safe@change{#1}%
@@ -5954,6 +6018,7 @@
\ifx\longtable\undefined
\let\@BTswitch\@BTnormal
\else\ifx\hline\LT@hline
+ \nobreak
\let\@BTswitch\@BLTrule
\else
\let\@BTswitch\@BTnormal
@@ -6817,6 +6882,7 @@
\@contbotsubtrue
\newcommand{\subcaption}{%
+ \par
\bgroup
\let\label=\memsub@label
\ifdonemaincaption\else
@@ -6859,6 +6925,9 @@
{\@memsubcap{sub\@captype}[\@empty]}}
\newenvironment{subfloat}{}{}
+\newcommand\mem@step@subcounter{%
+ \refstepcounter{sub\@captype}\@contkeep%
+}
\newcommand{\subbottom}{%
\@contbotsubtrue
\@memsubbody}
@@ -6869,7 +6938,7 @@
\ifdonemaincaption\else
\advance\csname c@\@captype\endcsname\@ne
\fi
- \refstepcounter{sub\@captype}\@contkeep%
+ % \refstepcounter{sub\@captype}\@contkeep%
\leavevmode
\@ifnextchar [%
{\@memsubfig}%
@@ -6883,7 +6952,7 @@
\bgroup
\let\label=\memsub@label
\@contset
- \refstepcounter{sub\@captype}\@contkeep%
+ % \refstepcounter{sub\@captype}\@contkeep%
\leavevmode
\@ifnextchar [%
{\@memsubfig}%
@@ -6924,7 +6993,8 @@
\fi
\setbox\@tempboxa \hbox{#4}%
\@tempdima=\wd\@tempboxa
- \vtop\bgroup
+ \vbox\bgroup%
+ \mem@step@subcounter%
\vbox\bgroup
\ifcase\@tempcnta
\@minipagefalse
@@ -7064,10 +7134,12 @@
\@esphack}
}{}%
}% end no nameref
- \@ifpackageloaded{showkeys}{%
- \renewcommand\sf@@memsub@label@hook[1]{%
- \SK@\SK@@label{#1}%
- }
+ \@ifpackageloaded{showkeys}{%
+ \ifdefined\SK@\relax
+ \renewcommand\sf@@memsub@label@hook[1]{%
+ \SK@\SK@@label{#1}%
+ }
+ \fi
}{}
} % end AtBeginDocument
@@ -7694,13 +7766,13 @@
\ensureonecol
\par
\begingroup
- \@nameuse{@#2maketitle}
+ \phantomsection
\if##1
\ifmem@em@starred@listof\else
- \phantomsection
\addcontentsline{toc}{chapter}{#3}
\fi
\fi
+ \@nameuse{@#2maketitle}
\parskip\cftparskip
\@nameuse{cft#2beforelisthook}%
\@starttoc{#2}%
@@ -8467,7 +8539,8 @@
\AtBeginDocument{%
\def\@@@wrindexm@m#1#2{%
\if@filesw
- \immediate\write \@idxfile{\string\indexentry{#1}{#2}}%
+ %\immediate\write \@idxfile{\string\indexentry{#1}{#2}}%
+ \immediate@protected@write\@idxfile{}{\string\indexentry{#1}{#2}}%
\fi
\endgroup}%
}
@@ -8721,9 +8794,11 @@
\newcommand{\memwritetoglo}[5]{\endgroup}
\newcommand{\@ctualm@mwritetoglo}[5]{%
- \immediate\write \memglofile{\string\glossaryentry{#1\@nameuse{memglsact\m@mgf}
- {\string\memgloterm{#2}}{\string\memglodesc{#3}}
- {\string\memgloref{#4}}\@nameuse{memglsnf\m@mgf}}{#5}}%
+ %\immediate\write \memglofile%
+ \immediate@protected@write\memglofile{}%
+ {\string\glossaryentry{#1\@nameuse{memglsact\m@mgf}
+ {\string\memgloterm{#2}}{\string\memglodesc{#3}}
+ {\string\memgloref{#4}}\@nameuse{memglsnf\m@mgf}}{#5}}%
\endgroup}
\AtBeginDocument{%
\let\memwritetoglo\@ctualm@mwritetoglo}
@@ -9362,7 +9437,7 @@
\m@makefootfootmark{#1}% -> \footfootmark#1
\m@makemakefootmark{#1}% -> \makefootmark#1
\m@makefootmarkstyle{#1}% -> \footmarkstyle#1
- \@namedef{@makefntext#1}##1{\@nameuse{makefootmark#1} ##1}%
+ \@namelongdef{@makefntext#1}##1{\@nameuse{makefootmark#1} ##1}%
\m@make@footstart{#1}% -> \@footstart#1
\m@make@footgroup{#1}% -> \@footgroup#1
\expandafter\newinsert\csname @mpfootins#1\endcsname% -> \@mpfootins#1
@@ -10473,17 +10548,19 @@
\typeout{Writing note file \jobname.ent}%
\let\makepagenote\@empty}
-\newcommand{\immediate@protected@write}[3]{%
+\providecommand{\immediate@protected@write}[3]{%
\begingroup
#2%
\let\protect\@unexpandable@protect
- \edef\reserved@a{\immediate\write#1{#3}}%
- \reserved@a
+ %\edef\reserved@a{\immediate\write#1{#3}}%
+ %\reserved@a
+ \immediate\write#1{#3}%
\endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi}
+ %\if@nobreak\ifvmode\nobreak\fi\fi%
+}
\newcommand{\m@m@pnwrite}[3]{\immediate\write#1{#3}}
-\newcommand{\m@m@pnwrited}[3]{\immediate\write#1{\detokenize{#3}}}
+\newcommand{\m@m@pnwrited}[3]{\immediate\write#1{\detokenize{#3}\@percentchar}}
\newcommand*{\pnchap}{\f@rtoc}
\newcommand*{\pnschap}{\f@rbdy}
@@ -10514,7 +10591,7 @@
\m@mmf@prepare% rerun
\fi%
\mem@pn@multiple@marker{\notenumintext{\thepagenote}}%
- }{}%
+ }{\m@mmf@prepare}%
\fi%
\ifm@mpn@new@chap%
\global\m@mpn@new@chapfalse%
@@ -12843,44 +12920,61 @@
\AtEndDocument{\@memensuresigpages}
-%%%% Nearly a carbon copy from textcase.dtx by David Carlisle
-\def\@uclcnotmath#1#2#3#4{\begingroup
- #1%
+\expandafter\let\csname MemOrigMakeUppercase \expandafter\endcsname
+ \csname MakeUppercase \endcsname
+\expandafter\let\csname MemOrigMakeLowercase \expandafter\endcsname
+ \csname MakeLowercase \endcsname
+\def\MemRestoreOrigMakecase{
+ \expandafter\let\csname MakeUppercase \expandafter\endcsname
+ \csname MemOrigMakeUppercase \endcsname
+ \expandafter\let\csname MakeLowercase \expandafter\endcsname
+ \csname MemOrigMakeLowercase \endcsname
+}
+\IfFileExists{textcase.sty}{
+ \RequirePackage[overload]{textcase}
+ }{% resort to the
+ \@memwarn{Haven't found the textcase package,\MessageBreak resorting to embedded
+ copy of v0.07 (2004/10/07),\MessageBreak consider installing the textcase package}
+%%%% Nearly a carbon copy from textcase.dtx by David Carlisle
+%%%% Since we are inside a \IfFileExists we need to double the #/daleif
+\def\@uclcnotmath##1##2##3##4{\begingroup
+ ##1%
\def\({$}\let\)\(% $ for emacs :-)
- \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}%
+ \def\NoCaseChange####1{\noexpand\NoCaseChange{\noexpand####1}}%
\@nonchangecase\label
\@nonchangecase\ref
\@nonchangecase\ensuremath
- \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}%
- \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}%
- \def\reserved@a##1##2{\let#2\reserved@a}%
+ \def\cite####1####{\toks@{\noexpand\cite####1}\@citex}%
+ \def\@citex####1{\NoCaseChange{\the\toks@{####1}}}%
+ \def\reserved@a####1####2{\let##2\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
\protected@edef\reserved@a{\endgroup
- \noexpand\@skipmath#3#4$\valign$}%
+ \noexpand\@skipmath##3##4$\valign$}%
\reserved@a}
-\def\@nonchangecase#1{\def#1##1{\NoCaseChange{#1{##1}}}}
+\def\@nonchangecase##1{\def##1####1{\NoCaseChange{##1{####1}}}}
\let\NoCaseChange\@firstofone
-\def\@skipmath#1#2$#3${%
- \@skip@nonchangecase#1#2\NoCaseChange\valign
- \ifx\valign#3%
- \else
- $#3$%
- \expandafter\@skipmath\expandafter#1%
- \fi}
-\def\@skip@nonchangecase#1#2\NoCaseChange#3{%
- #1{#2}%
- \ifx\valign#3%
+\def\@skipmath##1##2$##3${%
+ \@skip@nonchangecase##1##2\NoCaseChange\valign
+ \ifx\valign##3%
+ \else
+ $##3$%
+ \expandafter\@skipmath\expandafter##1%
+ \fi}
+\def\@skip@nonchangecase##1##2\NoCaseChange##3{%
+ ##1{##2}%
+ \ifx\valign##3%
\else
- #3%
- \expandafter\@skip@nonchangecase\expandafter#1%
+ ##3%
+ \expandafter\@skip@nonchangecase\expandafter##1%
\fi}
\DeclareRobustCommand\MakeTextUppercase{%
- \@uclcnotmath{\def\i{I}\def\j{J}}{##1##2}\uppercase}
-\protected@edef\MakeTextUppercase#1{\MakeTextUppercase{#1}}
+ \@uclcnotmath{\def\i{I}\def\j{J}}{####1####2}\uppercase}
+\protected@edef\MakeTextUppercase##1{\MakeTextUppercase{##1}}
\DeclareRobustCommand\MakeTextLowercase{%
- \@uclcnotmath{}{##2##1}\lowercase}
-\protected@edef\MakeTextLowercase#1{\MakeTextLowercase{#1}}
+ \@uclcnotmath{}{####2####1}\lowercase}
+\protected@edef\MakeTextLowercase##1{\MakeTextLowercase{##1}}
%%%% End copy from textcase.dtx
+} % end of \IfFileExists
\newcommand*{\abstractname}{Abstract}
\newcommand*{\contentsname}{Contents}
\newcommand*{\listfigurename}{List of Figures}
@@ -12912,13 +13006,6 @@
\space\number\day, \number\year}
\setlength\columnsep{10\p@}
\setlength\columnseprule{0\p@}
-\ifartopt
-\pagestyle{plain}
-\else
-\pagestyle{headings}
-\fi
-\pagenumbering{arabic}
-
\setcounter{part}{0}
\setcounter{chapter}{0}
\setcounter{tocdepth}{1}
@@ -13056,12 +13143,12 @@
%%% revert changes to captioning macros if the caption package is used.
\AtBeginPackage{caption}{
\ClassWarningNoLine{memoir}{%
- You are using the caption package with the memoir class.
- To prepare we will now reset all captioning macros and
- configurations to kernel defaults, and then let the
- caption package take over. Please remember to use^^J
- the caption package interfaces in order to^^J
- configure your captions}
+ For the caption package to function properly with memoir,
+ we will now reset\string\caption\space and friends to
+ kernel defaults and then let the caption package take over.
+ Remember: all caption configuration now goves via the caption
+ package interface, not the interface from the memoir class.
+ }
\long\def\@makecaption##1##2{%
\vskip\abovecaptionskip
@@ -13106,6 +13193,14 @@
\AtBeginPackage{float}{\let\newfloat\relax}
+\ifartopt
+\pagestyle{plain}
+\else
+\pagestyle{headings}
+\fi
+\pagenumbering{arabic}
+
+
\endinput
%%
%% End of file `memoir.cls'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/memoir.tlpobj new/tlpkg/tlpobj/memoir.tlpobj
--- old/tlpkg/tlpobj/memoir.tlpobj 2019-02-28 03:53:29.000000000 +0100
+++ new/tlpkg/tlpobj/memoir.tlpobj 2020-03-26 01:56:12.000000000 +0100
@@ -1,6 +1,6 @@
name memoir
category Package
-revision 49394
+revision 54554
shortdesc Typeset fiction, non-fiction and mathematical books
relocated 1
longdesc The memoir class is for typesetting poetry, fiction,
@@ -15,7 +15,7 @@
longdesc memhfixc package (part of this bundle). Note, however, that any
longdesc current version of hyperref actually loads the package
longdesc automatically if it detects that it is running under memoir.
-runfiles size=119
+runfiles size=120
RELOC/makeindex/memoir/basic.gst
RELOC/tex/latex/memoir/mem10.clo
RELOC/tex/latex/memoir/mem11.clo
@@ -33,7 +33,6 @@
RELOC/tex/latex/memoir/memoir.cls
catalogue-also memdesign
catalogue-ctan /macros/latex/contrib/memoir
-catalogue-date 2018-12-12 17:35:45 +0100
catalogue-license lppl1.3
catalogue-topics book-pub class
-catalogue-version 3.7h
+catalogue-version 3.7k