summaryrefslogtreecommitdiff
path: root/macros/luatex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-03-19 03:00:56 +0000
committerNorbert Preining <norbert@preining.info>2021-03-19 03:00:56 +0000
commit6ad1cf68ae6add67e56faf5ec4390fead04e31b4 (patch)
treeac6239e221ac7bcc6d69b6cbc1d7736f60d19a00 /macros/luatex
parentca17f652236af2ce3a16cb0125fb6e190d59cc17 (diff)
CTAN sync 202103190300
Diffstat (limited to 'macros/luatex')
-rw-r--r--macros/luatex/latex/beamer-rl/Example-of-use-ar.pdfbin130512 -> 146943 bytes
-rw-r--r--macros/luatex/latex/beamer-rl/Example-of-use-ar.tex197
-rw-r--r--macros/luatex/latex/beamer-rl/Example-of-use-en.pdfbin103537 -> 105529 bytes
-rw-r--r--macros/luatex/latex/beamer-rl/Example-of-use-en.tex210
-rw-r--r--macros/luatex/latex/beamer-rl/README.txt6
-rw-r--r--macros/luatex/latex/beamer-rl/beamer-rl.cls950
-rw-r--r--macros/luatex/latex/lua-ul/docstrip-luacode.sty2
-rw-r--r--macros/luatex/latex/lua-ul/lua-ul.dtx23
-rw-r--r--macros/luatex/latex/lua-ul/lua-ul.pdfbin99609 -> 100003 bytes
-rw-r--r--macros/luatex/optex/README7
-rw-r--r--macros/luatex/optex/base/alloc.opm7
-rw-r--r--macros/luatex/optex/base/f-heros.opm16
-rw-r--r--macros/luatex/optex/base/f-librecaslon.opm22
-rw-r--r--macros/luatex/optex/base/fams-ini.opm5
-rw-r--r--macros/luatex/optex/base/fonts-opmac.opm71
-rw-r--r--macros/luatex/optex/base/fonts-select.opm11
-rw-r--r--macros/luatex/optex/base/lists.opm5
-rw-r--r--macros/luatex/optex/base/makeindex.opm5
-rw-r--r--macros/luatex/optex/base/margins.opm6
-rw-r--r--macros/luatex/optex/base/math-macros.opm17
-rw-r--r--macros/luatex/optex/base/math-unicode.opm28
-rw-r--r--macros/luatex/optex/base/optex.ini3
-rw-r--r--macros/luatex/optex/base/optex.lua2
-rw-r--r--macros/luatex/optex/base/outlines.opm8
-rw-r--r--macros/luatex/optex/base/output.opm15
-rw-r--r--macros/luatex/optex/base/prefixed.opm6
-rw-r--r--macros/luatex/optex/base/sections.opm20
-rw-r--r--macros/luatex/optex/base/slides.opm25
-rw-r--r--macros/luatex/optex/base/styles.opm8
-rw-r--r--macros/luatex/optex/base/table.opm15
-rw-r--r--macros/luatex/optex/base/unimath-codes.opm5
-rw-r--r--macros/luatex/optex/base/usebib.opm12
-rw-r--r--macros/luatex/optex/demo/op-slides.tex39
-rw-r--r--macros/luatex/optex/doc/omls.tex4
-rw-r--r--macros/luatex/optex/doc/optex-doc.pdfbin1366580 -> 1380041 bytes
-rw-r--r--macros/luatex/optex/doc/optex-doc.tex2
-rw-r--r--macros/luatex/optex/doc/optex-math.tex6
-rw-r--r--macros/luatex/optex/doc/optex-userdoc.tex2
38 files changed, 1000 insertions, 760 deletions
diff --git a/macros/luatex/latex/beamer-rl/Example-of-use-ar.pdf b/macros/luatex/latex/beamer-rl/Example-of-use-ar.pdf
index b64a2f91f2..ecec4cb867 100644
--- a/macros/luatex/latex/beamer-rl/Example-of-use-ar.pdf
+++ b/macros/luatex/latex/beamer-rl/Example-of-use-ar.pdf
Binary files differ
diff --git a/macros/luatex/latex/beamer-rl/Example-of-use-ar.tex b/macros/luatex/latex/beamer-rl/Example-of-use-ar.tex
index beb958a7b7..7354c5805e 100644
--- a/macros/luatex/latex/beamer-rl/Example-of-use-ar.tex
+++ b/macros/luatex/latex/beamer-rl/Example-of-use-ar.tex
@@ -1,8 +1,11 @@
-\documentclass[arabic,babel={layout=lists}]{beamer-rl}
+\documentclass[arabic,babel={layout=lists.counters}]{beamer-rl}
\usepackage{hologo} % pdflatex, xelatex, lualatex logos
+\usepackage{listings}
+
+\usepackage{tikz}
\babelprovide[import=ar-DZ, main]{arabic}
-\babelfont{sf}{Amiri}
+\babelfont{alm}[Script=Arabic,Scale=.88]{ALM Fixed}
% Themes without Navigation Bars
%\mode<presentation>{\usetheme{default}}
@@ -59,6 +62,20 @@
\def\cs#1{\babelsublr{\texttt{\textbackslash#1}}}
+\lstset{language=TeX,basicstyle=\small\ttfamily,escapeinside={(*@}{@*)},aboveskip=3pt,belowskip=3pt}
+
+\lstnewenvironment{codeblock}{%
+\selectlanguage{nil}
+\smallskip\hfill%
+\beamercolorbox[wd=\linewidth,sep=.2ex,dp=.5ex]{title}
+}{%
+\endbeamercolorbox
+\hfill
+\smallskip
+%\end{verbatim}
+}
+
+
\begin{document}
\parskip=6pt
@@ -86,7 +103,7 @@
\verb|babel| وخصوصا الكتابة بالاتجاهين (\verb|bidi| writing)
هذه الفئة (class) تعدل في بعض اوامر وتعليمات beamer لغرض انشاء عروض من اليمين إلى اليسار (العربية على سبيل المثال)، الفئة تستدعي \verb|babel| مع الخيار
-\verb|bidi=basic-r|
+\verb|bidi=basic|
والمعالجة تتطلب استخدام
\hologo{LuaLaTeX}
@@ -97,19 +114,18 @@
\begin{frame}[fragile]
\frametitle{كيفية استعمال الفئة}
-\selectlanguage{nil}
-
-\begin{verbatim}
+\begin{codeblock}
\documentclass{beamer-rl}
-\babelprovide[import=ar-DZ, main]{arabic}
-\babelfont{sf}{Amiri}
-\mode<presentation>{\usetheme{Warsaw}}
+% import languages
+\babelprovide[import=ar-DZ, main]{arabic}
+
+\usetheme{CambridgeUS}
+
\begin{document}
...
\end{document}
-
-\end{verbatim}
+\end{codeblock}
\end{frame}
@@ -119,6 +135,15 @@
\frametitle{بعض الملاحظات}
\begin{itemize}
+
+\item
+الفئة تعرف خط الأميري (\verb:Amiri:) ضمنيا كخط أساسي للكتابة
+\babelsublr{sans serif}، يمكن تغيير ذلك مع بداية الوثيقة باستعمال التعليمة
+
+\begin{codeblock}
+\babelfont{sf}{<font name>}
+\end{codeblock}
+
\item
يمكن اضافة كل الخيارات التي تتيحها الفئة \verb:beamer: عند استدعاء الفئة \verb:beamer-rl:
@@ -128,11 +153,9 @@
\medskip
-{\selectlanguage{nil}
-\verb:\documentclass[babel={<babel options>}]{beamer-rl}:
-}
-
-\medskip
+\begin{codeblock}
+\documentclass[babel={<babel options>}]{beamer-rl}
+\end{codeblock}
\item
الفئة
@@ -164,46 +187,44 @@ RTL context & \selectlanguage{nil}\blacktriangleright & \selectlanguage{nil}\bla
للفئة يمكن من استدعاء قاموس عربي لترجمة بعض المفردات مثل
\verb:example: ،\verb:definition: ،\verb:theorem: ....
+\begin{codeblock}
+\documentclass[arabic]{beamer-rl}
+\end{codeblock}
-\medskip
-
-{\selectlanguage{nil}
-\verb:\documentclass[arabic]{beamer-rl}:
-}
-
-\medskip
-
\item
في بعض الحالات يمكن استعمال التعليمة
\cs{babelsublr} التي توفرها الحزمة \verb:bebel:
لادراج نص من اليسار لليمين (لاتيني) في وسط نص من اليمين لليسار،
على سبيل المثال في حال الحاجة إلى ادراج رسم
\verb:pspicture: ضمن نص من اليمين لليسار.
-
-\medskip
-{\selectlanguage{nil}
-\verb:\bebelsublr{LTR context ... }:
-}
+\begin{codeblock}
+\bebelsublr{LTR context ... }
+\end{codeblock}
\end{itemize}
+\end{frame}
+
+\section{أمثلة}
+
+\begin{frame}[plain]{}
+
+\fontsize{70}{60}\selectfont\centerline{أمثـلة}
\end{frame}
-\section{أمثلة}
\subsection{الإطارات}
\begin{frame}[fragile]
\frametitle{الإطارات}
-{\selectlanguage{nil}
-\verb:\setbeamertemplate{blocks}[default]:
-}
-
+\begin{codeblock}
\setbeamertemplate{blocks}[default]
+\end{codeblock}
+\setbeamertemplate{blocks}[default]
\begin{block}{أورستد}
لاحظ هانز أورستد في 21 أبريل 1820 وهو يُعد أحد التجارب أن إبرة
@@ -211,9 +232,9 @@ RTL context & \selectlanguage{nil}\blacktriangleright & \selectlanguage{nil}\bla
دائرة كهربائية يُعدها.
\end{block}
-{\selectlanguage{nil}
-\verb:\setbeamertemplate{blocks}[rounded][shadow=true]:
-}
+\begin{codeblock}
+\setbeamertemplate{blocks}[rounded][shadow=true]
+\end{codeblock}
\setbeamertemplate{blocks}[rounded][shadow=true]
@@ -227,52 +248,98 @@ RTL context & \selectlanguage{nil}\blacktriangleright & \selectlanguage{nil}\bla
\subsection{القوائم}
-\begin{frame}[fragile]
-\frametitle{enumerate, itemize}
+\begin{frame}[fragile,allowframebreaks]
+\frametitle{القوائم}
+\begin{columns}[t,onlytextwidth]
+
+\begin{column}{2cm}
+\begin{enumerate}
+\item أولا
+\item ثانيا
+\end{enumerate}
+\end{column}
+\begin{column}{8.8cm}
+\begin{codeblock}
+\setbeamertemplate{enumerate item}[ball]
\begin{enumerate}
-\item فيزياء تطبيقية
-\item فيزياء تجريبية
-\item فيزياء نظرية
+\item (*@\almfamily أولا @*)
+\item (*@\almfamily ثانيا @*)
\end{enumerate}
+\end{codeblock}
+\end{column}
+
+\end{columns}
+\vfill
\setbeamertemplate{itemize item}[triangle]
-{\selectlanguage{nil}
-\verb|\setbeamertemplate{itemize item}[triangle]|
-}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{2cm}
+\begin{itemize}
+\item أولا
+\item ثانيا
+\end{itemize}
+\end{column}
+\begin{column}{8.8cm}
+\begin{codeblock}
+% in RTL context
+\setbeamertemplate{itemize item}[triangle]
\begin{itemize}
-\item فيزياء تطبيقية
-\item فيزياء تجريبية
-\item فيزياء نظرية
+\item (*@\almfamily أولا @*)
+\item (*@\almfamily ثانيا @*)
\end{itemize}
+\end{codeblock}
+\end{column}
+
+\end{columns}
+
+\framebreak
\selectlanguage{nil}
-\shapemode=2
+\begin{columns}[t]
+\begin{column}{2cm}
+\begin{itemize}
+\item First
+\item Second
+\end{itemize}
+\end{column}
+\begin{column}{8.8cm}
+\begin{codeblock}
+% in LTR context
+\setbeamertemplate{itemize item}[triangle]
\begin{itemize}
-\item first item
-\item second item
-\item third item
+\item First
+\item Second
\end{itemize}
+\end{codeblock}
+\end{column}
+\end{columns}
\end{frame}
\subsection{الروابط}
-\begin{frame}
+\begin{frame}[fragile]
\frametitle{الروابط}
\begin{itemize}
\item<1-> العنصر الأول.
\item<2-> العنصر الثاني.
-\item<3-> العنصر الثالث.
\end{itemize}
-\hyperlink{jumptosecond}{\beamerreturnbutton{الرجوع إلى الشريحة الثانية}}
-\hypertarget<2>{jumptosecond}{}
+\hyperlink{jumptosecond}{\beamerreturnbutton{الرجوع إلى الشريحة الأولى}}
+\hypertarget<1>{jumptosecond}{}
-\end{frame}
+\pause
+\begin{codeblock}
+\hyperlink{jumptofirst}
+{\beamergotobutton{(*@\almfamily الرجوع إلى الشريحة الأولى@*)}}
+\hypertarget<1>{jumptofirst}{}
+\end{codeblock}
+
+\end{frame}
\subsection{النظريات}
@@ -297,20 +364,20 @@ number not in the first $p$ numbers.\qedhere
\subsection{التكبير}
+
\begin{frame}[fragile]
\frametitle{التكبير}
-\framezoom<1><2>[border=2](3cm,2cm)(2cm,2cm)
-\pgfimage[height=5cm]{example-image}
+\framezoom<1><2>[border=2](1cm,1cm)(2cm,2cm)
+\pgfimage[height=4cm]{example-image}
-\selectlanguage{nil}
-
-\begin{verbatim}
-\framezoom<1><2>[border=2](3cm,2cm)(2cm,2cm)
-% (3cm,2cm)=(<upper right x>,<upper right y>)
+\begin{codeblock}
+\framezoom<1><2>[border=2](1cm,1cm)(2cm,2cm)
+% (1cm,1cm)=(<upper right x>,<upper right y>)
% (2cm,2cm)=(<zoom area width>,<zoom area depth>)
\pgfimage[height=5cm]{example-image}
-\end{verbatim}
+\end{codeblock}
+
\end{frame}
\end{document}
diff --git a/macros/luatex/latex/beamer-rl/Example-of-use-en.pdf b/macros/luatex/latex/beamer-rl/Example-of-use-en.pdf
index e80315dae6..2fa964af5a 100644
--- a/macros/luatex/latex/beamer-rl/Example-of-use-en.pdf
+++ b/macros/luatex/latex/beamer-rl/Example-of-use-en.pdf
Binary files differ
diff --git a/macros/luatex/latex/beamer-rl/Example-of-use-en.tex b/macros/luatex/latex/beamer-rl/Example-of-use-en.tex
index 0827670803..200ffe04f9 100644
--- a/macros/luatex/latex/beamer-rl/Example-of-use-en.tex
+++ b/macros/luatex/latex/beamer-rl/Example-of-use-en.tex
@@ -1,9 +1,9 @@
\documentclass[arabic,babel={layout=lists}]{beamer-rl}
\usepackage{hologo} % pdflatex, xelatex, lualatex logos
+\usepackage{verbatim}
\babelprovide[import=ar-DZ, main]{arabic}
\babelprovide[import,language=Default]{english}
-\babelfont{sf}{Amiri}
% Themes without Navigation Bars
%\mode<presentation>{\usetheme{default}}
@@ -53,11 +53,30 @@
{\color{blue} Bug tracker: } https://github.com/seloumi/beamer-rl/issues
}
-
\date{{\selectlanguage{english} \today}}
\setbeamercovered{transparent=10}
+% reduce space above and below verbatim env
+\makeatletter
+\preto{\@verbatim}{\topsep=0pt \partopsep=0pt }
+\makeatother
+
+\newenvironment{codeblock}{%
+\selectlanguage{nil}
+\smallskip\hfill%
+\beamercolorbox[wd=\linewidth,sep=.3ex,dp=1ex]{block body}
+\endgraf
+\verbatim
+}{%
+\endverbatim
+\endbeamercolorbox
+\hfill
+\smallskip
+%\end{verbatim}
+}
+
+
\begin{document}
\parskip=6pt
@@ -76,12 +95,12 @@
\begin{frame}[fragile]
\frametitle{Introduction}
-Creating beamer presentation for right to left language (like arabic) using \hologo{pdfLaTeX} or \hologo{XeLaTeX} still poses many problems due to bugs not currently resolved especially for colors and hyperlinks
+Creating beamer presentation for right to left languages (like arabic) using \hologo{pdfLaTeX} or \hologo{XeLaTeX} still poses many problems due to bugs not currently resolved especially for colors and hyperlinks
The \hologo{LuaTeX} team set solutions for these issues thanks to them and to \textit{Javier~Bezos} for his works on the package \verb|babel| and \verb|bidi| writing
-This class provides patchs of some beamer templates and commands
-for right to left presentation, this package call babel with \verb|bidi=basic-r| option and require lualatex engine
+This class provides patchs of some beamer templates and commands to create
+ right to left beamer presentation, the class call babel with \verb|bidi=basic| option and require \hologo{LuaLaTeX} engine
\end{frame}
@@ -90,19 +109,18 @@ for right to left presentation, this package call babel with \verb|bidi=basic-r|
\begin{frame}[fragile]
\frametitle{How to use beamer-rl}
-\selectlanguage{nil}
-
-\begin{verbatim}
+\begin{codeblock}
\documentclass{beamer-rl}
-\babelprovide[import=ar-DZ, main]{arabic}
-\babelfont{sf}{Amiri}
-\mode<presentation>{\usetheme{Warsaw}}
+% import language
+\babelprovide[import=ar-DZ, main]{arabic}
+
+\usetheme{Madrid}
+
\begin{document}
...
\end{document}
-
-\end{verbatim}
+\end{codeblock}
\end{frame}
@@ -114,6 +132,14 @@ for right to left presentation, this package call babel with \verb|bidi=basic-r|
\begin{itemize}
\item
+The class define \verb:Amiri: as default sans serif font, we can
+modify this in the preambule with
+
+\begin{codeblock}
+\babelfont{sf}{<font name>}
+\end{codeblock}
+
+\item
All options provided by \verb:beamer: can be added with \verb:beamer-rl:
@@ -121,13 +147,9 @@ Additional options can also be passed to package
\verb:babel:
with \verb:beamer-rl: like this
-\medskip
-
-{\selectlanguage{nil}
-\verb:\documentclass[babel={<babel options>}]{beamer-rl}:
-}
-
-\medskip
+\begin{codeblock}
+\documentclass[babel={<babel options>}]{beamer-rl}
+\end{codeblock}
\item
The \verb:beamer-rl: class swap the definition of \verb:\blacktriangleright: with \verb:\blacktriangleleft: in RTL context
@@ -150,49 +172,45 @@ RTL context & \selectlanguage{nil}\blacktriangleright & \selectlanguage{nil}\bla
\bigskip
-
\item
Class option \verb:arabic: call an Arabic dictionary to translate strings like \verb:theorem:, \verb:example:, \verb:definition: ....
-\medskip
-
-{\selectlanguage{nil}
-\verb:\documentclass[arabic]{beamer-rl}:
-}
-
-\medskip
-
+\begin{codeblock}
+\documentclass[arabic]{beamer-rl}
+\end{codeblock}
\item
In some cases you need to use \verb:\babelsublr: command from \verb:bebel:
package to insert a left to right text within your right to left text, e.g if you need to insert a \verb:pspicture: drawing in RTL context
-\medskip
-
-{\selectlanguage{nil}
-\verb:\bebelsublr{LTR context ... }:
-}
+\begin{codeblock}
+\bebelsublr{LTR context ... }
+\end{codeblock}
\end{itemize}
-
\end{frame}
-
\section{Examples}
+
+\begin{frame}[plain]{}
+
+\fontsize{70}{60}\selectfont\centerline{Examples}
+
+\end{frame}
+
\subsection{Blocks}
\begin{frame}[fragile]
\frametitle{Blocks}
-{\selectlanguage{nil}
-\verb:\setbeamertemplate{blocks}[default]:
-}
-
+\begin{codeblock}
\setbeamertemplate{blocks}[default]
+\end{codeblock}
+\setbeamertemplate{blocks}[default]
\begin{block}{Lorem}
\selectlanguage{nil}
@@ -201,9 +219,9 @@ package to insert a left to right text within your right to left text, e.g if yo
electric current from a battery was switched on and off.
\end{block}
-{\selectlanguage{nil}
-\verb:\setbeamertemplate{blocks}[rounded][shadow=true]:
-}
+\begin{codeblock}
+\setbeamertemplate{blocks}[rounded][shadow=true]
+\end{codeblock}
\setbeamertemplate{blocks}[rounded][shadow=true]
@@ -218,51 +236,98 @@ package to insert a left to right text within your right to left text, e.g if yo
\subsection{Lists}
-\begin{frame}[fragile]
+\begin{frame}[fragile,allowframebreaks]
\frametitle{enumerate, itemize}
+\begin{columns}[t,onlytextwidth]
+
+\begin{column}{2cm}
+\begin{enumerate}
+\item First
+\item Second
+\end{enumerate}
+\end{column}
+\begin{column}{8.8cm}
+\begin{codeblock}
+\setbeamertemplate{enumerate item}[ball]
\begin{enumerate}
-\item first item
-\item second item
-\item third item
+\item First
+\item Second
\end{enumerate}
+\end{codeblock}
+\end{column}
-\setbeamertemplate{itemize item}[triangle]
+\end{columns}
-{\selectlanguage{nil}
-\verb|\setbeamertemplate{itemize item}[triangle]|
-}
+\vfill
+\setbeamertemplate{itemize item}[triangle]
+\begin{columns}[t,onlytextwidth]
+\begin{column}{2cm}
\begin{itemize}
-\item first item
-\item second item
-\item third item
+\item First
+\item Second
\end{itemize}
+\end{column}
+\begin{column}{8.8cm}
+\begin{codeblock}
+% in RTL context
+\setbeamertemplate{itemize item}[triangle]
+\begin{itemize}
+\item First
+\item Second
+\end{itemize}
+\end{codeblock}
+\end{column}
+
+\end{columns}
+
+\framebreak
\selectlanguage{nil}
-\shapemode=2
+\begin{columns}[t]
+\begin{column}{2cm}
\begin{itemize}
-\item first item
-\item second item
-\item third item
+\item First
+\item Second
\end{itemize}
-
+\end{column}
+\begin{column}{8.5cm}
+\begin{codeblock}
+% in LTR context
+\setbeamertemplate{itemize item}[triangle]
+\begin{itemize}
+\item First
+\item Second
+\end{itemize}
+\end{codeblock}
+\end{column}
+\end{columns}
\end{frame}
\subsection{Hyperlinks}
-\begin{frame}
+\begin{frame}[fragile]
\frametitle{Hyperlinks}
\begin{itemize}
-\item<1-> First item.
-\item<2-> Second item.
-\item<3-> Third item.
+\item<1-> First.
+\item<2-> Second.
\end{itemize}
-\hyperlink{jumptosecond}{\beamergotobutton{return to second slide}}
-\hypertarget<2>{jumptosecond}{}
+
+\hyperlink{jumptofirst}{\beamergotobutton{return to first slide}}
+\hypertarget<1>{jumptofirst}{}
+
+\pause
+
+\begin{codeblock}
+\hyperlink{jumptofirst}
+{\beamergotobutton{return to first slide}}
+\hypertarget<1>{jumptofirst}{}
+\end{codeblock}
+
\end{frame}
@@ -292,19 +357,16 @@ number not in the first $p$ numbers.\qedhere
\begin{frame}[fragile]
\frametitle{Zooming}
-\framezoom<1><2>[border=2](3cm,2cm)(2cm,2cm)
-\pgfimage[height=5cm]{example-image}
+\framezoom<1><2>[border=2](1cm,1cm)(2cm,2cm)
+\pgfimage[height=4cm]{example-image}
-\selectlanguage{nil}
-
-\begin{verbatim}
-\framezoom<1><2>[border=2](3cm,2cm)(2cm,2cm)
-% (3cm,2cm)=(<upper right x>,<upper right y>)
+\begin{codeblock}
+\framezoom<1><2>[border=2](1cm,1cm)(2cm,2cm)
+% (1cm,1cm)=(<upper right x>,<upper right y>)
% (2cm,2cm)=(<zoom area width>,<zoom area depth>)
\pgfimage[height=5cm]{example-image}
-\end{verbatim}
+\end{codeblock}
\end{frame}
-
\end{document}
diff --git a/macros/luatex/latex/beamer-rl/README.txt b/macros/luatex/latex/beamer-rl/README.txt
index e6b53616f9..c796202f1f 100644
--- a/macros/luatex/latex/beamer-rl/README.txt
+++ b/macros/luatex/latex/beamer-rl/README.txt
@@ -1,5 +1,5 @@
The beamer-rl class
-v1.4a
+v1.4b
This class provides patchs of some beamer templates and commands
for right to left presentation, the class require babel with lualatex engine
@@ -9,12 +9,12 @@ please use the issue tracker:
<https://github.com/seloumi/beamer-rl/issues>
-Current version release date: 2020/08/21
+Current version release date: 2021/03/15
___________________
Salim Bou
-Copyright (c) 2019-2020
+Copyright (c) 2019-2021
It may be distributed and/or modified under the LaTeX Project Public License,
version 1.3c or higher (your choice). The latest version of
this license is at: http://www.latex-project.org/lppl.txt
diff --git a/macros/luatex/latex/beamer-rl/beamer-rl.cls b/macros/luatex/latex/beamer-rl/beamer-rl.cls
index 906a46fd9f..c85b7c769e 100644
--- a/macros/luatex/latex/beamer-rl/beamer-rl.cls
+++ b/macros/luatex/latex/beamer-rl/beamer-rl.cls
@@ -1,527 +1,423 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{beamer-rl}
-[2020/08/04 v1.4a LaTeX class to patch beamer for right to left presentation with babel]
-
-\RequirePackage{kvoptions}
-\RequirePackage{kvsetkeys}
-
-\SetupKeyvalOptions{
- family=beamer-rl,
- prefix=beamer-rl@,
- setkeys=\kvsetkeys,
-}
-
-% babel options:
-\define@key{beamer-rl}{babel}{%
- \PassOptionsToPackage{#1}{babel}%
-}
-
-\DeclareVoidOption{arabic}{%
- \@expandtwoargs\@removeelement\CurrentOption\@classoptionslist\@classoptionslist % remove arabic option from global list
- % \PassOptionsToPackage{arabic}{translator}%
- \AtBeginDocument{\uselanguage{Arabic}\languagealias{arabic}{Arabic}}
-}
-
-\DeclareDefaultOption{%
- \PassOptionsToClass{\CurrentOption}{beamer}%
-}
-
-\ProcessKeyvalOptions*\relax
-
-\RequirePackage{ifluatex}
-
-\ifluatex
-\else
-\ClassError{beamer-rl}{beamer-rl require luatex}
-\fi
-
-\LoadClass[hyperref={unicode}]{beamer}
-
-\RequirePackage[nil,bidi=basic-r]{babel}
-
-\def\reset@temp#1#2{\expandafter\let\csname beamer@@tmpop@#1@#2\endcsname\relax}
-\def\@@defbeamertemplate#1#2{\reset@temp{#1}{#2}\defbeamertemplate{#1}{#2}}
-\def\@defbeamertemplate#1#2{\reset@temp{#1}{#2}\defbeamertemplate*{#1}{#2}}
-
-\def\redefbeamertemplate{%
- \@ifstar{\@defbeamertemplate}{\@@defbeamertemplate}%
-}
-
-\let\old@blacktriangleright\blacktriangleright
-\let\old@blacktriangleleft\blacktriangleleft
-
-\def\blacktriangleright{%
- \ifcase\bbl@thepardir \old@blacktriangleright\else\old@blacktriangleleft\fi}
-\def\blacktriangleleft{%
- \ifcase\bbl@thepardir \old@blacktriangleleft\else\old@blacktriangleright\fi}
-
-
-\let\oldpgfpicture\pgfpicture
-\let\endoldpgfpicture\endpgfpicture
-
-\def\pgfpicture{\babelsublr\bgroup\oldpgfpicture}
-\def\endpgfpicture{\endoldpgfpicture\egroup}
-
-\let\oldpgfuseshading\pgfuseshading
-\def\pgfuseshading#1{\babelsublr{\oldpgfuseshading{#1}}}
-
-
-%% beamerbasebox
-
-\newdimen\bmb@dimc
-
-\renewcommand\beamerboxesrounded[2][]{%
- \global\let\beamer@firstlineitemizeunskip=\relax%
- \vbox\bgroup%
- \setkeys{beamerboxes}{upper=block title,lower=block body,width=\textwidth,shadow=false}%
- \setkeys{beamerboxes}{#1}%
- {%
- \usebeamercolor{\bmb@lower}%
- \globalcolorstrue%
- \colorlet{lower.bg}{bg}%
- }%
- {%
- \usebeamercolor{\bmb@upper}%
- \globalcolorstrue%
- \colorlet{upper.bg}{bg}%
- }%
- %
- % Typeset head
- %
- \vskip4bp
- \setbox\bmb@box=\hbox{%
- \begin{minipage}[b]{\bmb@width}%
- \usebeamercolor[fg]{\bmb@upper}%
- #2%
- \end{minipage}}%
- \ifdim\wd\bmb@box=0pt%
- \setbox\bmb@box=\hbox{}%
- \ht\bmb@box=1.5pt%
- \bmb@prevheight=-4.5pt%
- \else%
- \wd\bmb@box=\bmb@width%
- \bmb@temp=\dp\bmb@box%
- \ifdim\bmb@temp<1.5pt%
- \bmb@temp=1.5pt%
- \fi%
- \setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}%
- \dp\bmb@box=0pt%
- \bmb@prevheight=\ht\bmb@box%
- \fi%
- \bmb@temp=\bmb@width%
- \bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp%
- \bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp%
- \bmb@dimc=0pt%
- \ifdim\wd\bmb@box=0pt
- \bmb@dimc=\bmb@width%
- \fi
- \hbox{%
- \textdir TLT\begin{pgfpicture}{0bp}{+-\ht\bmb@box}{\bmb@dimc}{+-\ht\bmb@box}
- \ifdim\wd\bmb@box=0pt%
- \color{lower.bg}%
- \else%
- \color{upper.bg}%
- \fi%
- \pgfpathqmoveto{-4bp}{-1bp}
- \pgfpathqcurveto{-4bp}{1.2bp}{-2.2bp}{3bp}{0bp}{3bp}
- \pgfpathlineto{\pgfpoint{\bmb@temp}{3bp}}
- \pgfpathcurveto%
- {\pgfpoint{\bmb@dima}{3bp}}%
- {\pgfpoint{\bmb@dimb}{1.2bp}}%
- {\pgfpoint{\bmb@dimb}{-1bp}}%
- \bmb@dima=-\ht\bmb@box%
- \advance\bmb@dima by-2pt%
- \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
- \pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}}
- \pgfusepath{fill}
- \end{pgfpicture}%
- \copy\bmb@box%
- }%
- \nointerlineskip%
- \vskip-1pt%
- \ifdim\wd\bmb@box=0pt%
- \else%
- \hbox{%
- \begin{pgfpicture}{0pt}{0pt}{\bmb@width}{6pt}
- \bmb@dima=\bmb@width%
- \advance\bmb@dima by8bp%
- \pgfpathrectangle{\pgfpoint{-4bp}{-1bp}}{\pgfpoint{\bmb@dima}{8bp}}
- \pgfusepath{clip}
- {\pgftransformshift{\pgfpoint{-4bp}{0bp}}\pgftext[left,base]{\pgfuseshading{bmb@transition}}}%
- \end{pgfpicture}%
- }%
- \nointerlineskip%
- \vskip-0.5pt%
- \fi%
- \ifbmb@shadow%
- \setbox\bmb@boxshadow=\hbox{\pgfuseshading{bmb@shadow}}%
- \setbox\bmb@boxshadowball=\hbox{\pgfuseshading{bmb@shadowball}}%
- \setbox\bmb@boxshadowballlarge=\hbox{\pgfuseshading{bmb@shadowballlarge}}%
- \fi%
- \setbox\bmb@colorbox=\hbox{{\pgfpicturetrue\pgfsetcolor{lower.bg}}}%
- \setbox\bmb@box=\hbox\bgroup\begin{minipage}[b]{\bmb@width}%
- \vskip2pt%
- \usebeamercolor[fg]{\bmb@lower}%
- \colorlet{beamerstructure}{upper.bg}%
- \colorlet{structure}{upper.bg}%
- %\color{.}%
- }
-
- \def\endbeamerboxesrounded{%
- \end{minipage}\egroup%
- \wd\bmb@box=\bmb@width%
- \bmb@temp=\dp\bmb@box%
- \advance\bmb@temp by.5pt%
- \setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}%
- \dp\bmb@box=0pt%
- \bmb@temp=\wd\bmb@box%
- \bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp%
- \bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp%
- \hbox{%
- \textdir TLT\begin{pgfpicture}{0bp}{0bp}{0bp}{0bp}
- \ifbmb@shadow%
- {\pgftransformshift{\pgfpoint{4bp}{-3bp}}\pgftext{\copy\bmb@boxshadowball}}
- \begin{pgfscope}
- {%
- \advance\bmb@temp by-1bp%
- \pgfpathrectangle{\pgfpoint{\bmb@temp}{-7bp}}{\pgfpoint{9bp}{9bp}}%
- \pgfusepath{clip}
- }%
- {\pgftransformshift{\pgfpoint{\bmb@temp}{1bp}}\pgftext{\box\bmb@boxshadowballlarge}}
- \end{pgfscope}
- \begin{pgfscope}
- \advance\bmb@temp by-4bp%
- \pgfpathrectangle{\pgfpoint{4bp}{-7bp}}{\pgfpoint{\bmb@temp}{5bp}}
- \pgfusepath{clip}
- {\pgftransformshift{\pgfpoint{4bp}{-7bp}}\pgftext[left,base]{\copy\bmb@boxshadow}}%
- \end{pgfscope}
- \begin{pgfscope}
- \advance\bmb@temp by 4bp%
- \bmb@dima=\ht\bmb@box%
- \advance\bmb@dima by\bmb@prevheight%
- \advance\bmb@dima by 4bp%
- \pgfpathrectangle{\pgfpoint{\bmb@temp}{1bp}}{\pgfpoint{4bp}{\bmb@dima}}
- \pgfusepath{clip}
- \advance\bmb@dima by-4bp%
- {\pgftransformshift{\pgfpoint{\bmb@temp}{\bmb@dima}}\pgftext{\box\bmb@boxshadowball}}
- \advance\bmb@dima by-1bp%
- \pgfpathrectangle{\pgfpoint{\bmb@temp}{1bp}}{\pgfpoint{4bp}{\bmb@dima}}
- \pgfusepath{clip}
- \advance\bmb@temp by4bp%
- {\pgftransformshift{\pgfpoint{\bmb@temp}{-3bp}}%
- \pgftransformrotate{90}%
- \pgftext[left,base]{\box\bmb@boxshadow}}%
- \end{pgfscope}
- \fi%
- \unhbox\bmb@colorbox%
- \pgfpathqmoveto{-4bp}{1bp}
- \pgfpathqcurveto{-4bp}{-1.2bp}{-2.2bp}{-3bp}{0bp}{-3bp}
- \pgfpathlineto{\pgfpoint{\the\bmb@temp}{-3bp}}
- \pgfpathcurveto%
- {\pgfpoint{\the\bmb@dima}{-3bp}}%
- {\pgfpoint{\the\bmb@dimb}{-1.2bp}}%
- {\pgfpoint{\the\bmb@dimb}{1bp}}%
- {
- \bmb@dima=\ht\bmb@box%
- \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
- \pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}}
- \pgfusepath{fill}
- }
- \ifbmb@shadow%
- {
- \color{black!50!bg}
- \pgfsetlinewidth{0pt}
- \pgfpathmoveto{\pgfpoint{\bmb@dimb}{-.5bp}}
- \bmb@dima=\ht\bmb@box%
- \advance\bmb@dima by\bmb@prevheight%
- \advance\bmb@dima by 1bp%
- \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
- \pgfusepath{stroke}
- \bmb@temp=\bmb@dima
- \advance\bmb@dima by 1bp%
- \color{black!31!bg}
- \pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}}
- \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
- \pgfusepath{stroke}
- \advance\bmb@dima by 1bp%
- \advance\bmb@temp by 1bp%
- \color{black!19!bg}
- \pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}}
- \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
- \pgfusepath{stroke}
- \advance\bmb@dima by 1bp%
- \advance\bmb@temp by 1bp%
- \color{black!6!bg}
- \pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}}
- \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
- \pgfusepath{stroke}
- \advance\bmb@dima by 1.5bp%
- \advance\bmb@temp by 1bp%
- \color{bg}
- \pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}}
- \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
- \pgfusepath{stroke}
- }
- \fi
- \end{pgfpicture}%
- \box\bmb@box%
- }%
- \ifbmb@shadow%
- \vskip4bp minus 2bp%
- \else%
- \vskip2bp%
- \fi%
- \egroup% of \vbox\bgroup
-}
-
-
-%% beamerbaseauxtemplates
-
-
-% (sub-)section in toc: subsections numbered
-
-\redefbeamertemplate{subsection in toc}{subsections numbered}
-{\leavevmode\leftskip=2em\rlap{\hskip-2em \inserttocsectionnumber\hbox{.}\inserttocsubsectionnumber}\inserttocsubsection\par}
-
-
-%% beamerinnerthemedefault
-
-\redefbeamertemplate*{button}{default}
-{%
- \setbox\beamer@tempbox=\hbox{{\insertbuttontext}}%
- \ht\beamer@tempbox=6pt%
- \dp\beamer@tempbox=0pt%
- \setbox\beamer@tempbox=\vbox{\box\beamer@tempbox\vskip2pt}%
- \beamer@tempdim=\wd\beamer@tempbox%
- \beamer@dima=\beamer@tempdim\advance\beamer@dima by2.2pt
- \beamer@dimb=\beamer@tempdim\advance\beamer@dimb by4pt
- \textdir TLT\begin{pgfpicture}{-4pt}{0pt}{\the\beamer@tempdim}{8pt}
- \color{bg}
- \pgfsetlinewidth{0.8pt}
- \pgfpathqmoveto{0pt}{0pt}
- \pgfpathqcurveto{-2.2pt}{0pt}{-4pt}{1.8pt}{-4pt}{4pt}
- \pgfpathqcurveto{-4pt}{6.2pt}{-2.2pt}{8pt}{0pt}{8pt}
- \pgfpathlineto{\pgfpoint{\the\beamer@tempdim}{8pt}}
- \pgfpathcurveto%
- {\pgfpoint{\the\beamer@dima}{8pt}}%
- {\pgfpoint{\the\beamer@dimb}{6.2pt}}%
- {\pgfpoint{\the\beamer@dimb}{4pt}}
- \pgfpathcurveto%
- {\pgfpoint{\the\beamer@dimb}{1.8pt}}%
- {\pgfpoint{\the\beamer@dima}{0pt}}%
- {\pgfpoint{\the\beamer@tempdim}{0pt}}
- \pgfpathclose
- \pgfusepathqfill
- \colorlet{bg}{parent.bg}
- \usebeamercolor[fg]{button border}
- \pgfpathqmoveto{0pt}{0pt}
- \pgfpathqcurveto{-2.2pt}{0pt}{-4pt}{1.8pt}{-4pt}{4pt}
- \pgfpathqcurveto{-4pt}{6.2pt}{-2.2pt}{8pt}{0pt}{8pt}
- \pgfpathlineto{\pgfpoint{\the\beamer@tempdim}{8pt}}
- \pgfpathcurveto%
- {\pgfpoint{\the\beamer@dima}{8pt}}%
- {\pgfpoint{\the\beamer@dimb}{6.2pt}}%
- {\pgfpoint{\the\beamer@dimb}{4pt}}
- \pgfpathcurveto%
- {\pgfpoint{\the\beamer@dimb}{1.8pt}}%
- {\pgfpoint{\the\beamer@dima}{0pt}}%
- {\pgfpoint{\the\beamer@tempdim}{0pt}}
- \pgfpathclose
- \pgfusepathqstroke
- \end{pgfpicture}%
- \hskip-\beamer@tempdim%
- \box\beamer@tempbox%
- \kern4pt%
-}
-
-%% beamerbasenavigation
-
-% User Buttons
-
-\pgfdefobject{beamergotosymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{5pt}{5pt}}
-{
- \pgfpathqmoveto{1.5bp}{0.5bp}
- \pgfpathqlineto{3.5bp}{2bp}
- \pgfpathqlineto{1.5bp}{3.5bp}
- \pgfusepathqfill
-}
-
-\def\insertgotosymbol{%
- \begin{pgfpicture}{1pt}{0pt}{6pt}{5pt}
- \pgfuseobject{\ifcase\bbl@thepardir beamergotosymbol\else beamerreturnsymbol\fi}%
-\end{pgfpicture}}
-
-\pgfdefobject{beamerreturnsymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{5pt}{5pt}}
-{
- \pgfpathqmoveto{3.5bp}{0.5bp}
- \pgfpathqlineto{1.5bp}{2bp}
- \pgfpathqlineto{3.5bp}{3.5bp}
- \pgfusepathqfill
-}
-
-\def\insertreturnsymbol{%
- \begin{pgfpicture}{1pt}{0pt}{6pt}{5pt}
- \pgfuseobject{\ifcase\bbl@thepardir beamerreturnsymbol\else beamergotosymbol\fi}%
-\end{pgfpicture}}
-
-
-\pgfdefobject{beamerskipsymbolrl}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{7pt}{5pt}}
-{
- \pgfpathqmoveto{3.5bp}{0.5bp}
- \pgfpathqlineto{1.5bp}{2bp}
- \pgfpathqlineto{3.5bp}{3.5bp}
- \pgfpathqmoveto{5.5bp}{0.5bp}
- \pgfpathqlineto{3.5bp}{2bp}
- \pgfpathqlineto{5.5bp}{3.5bp}
- \pgfusepathqfill
-}
-
-\pgfdefobject{beamerskipsymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{7pt}{5pt}}
-{
- \pgfpathqmoveto{1.5bp}{0.5bp}
- \pgfpathqlineto{3.5bp}{2bp}
- \pgfpathqlineto{1.5bp}{3.5bp}
- \pgfpathqmoveto{3.5bp}{0.5bp}
- \pgfpathqlineto{5.5bp}{2bp}
- \pgfpathqlineto{3.5bp}{3.5bp}
- \pgfusepathqfill
-}
-
-\def\insertskipsymbol{%
- \begin{pgfpicture}{-1pt}{0pt}{6pt}{5pt}
- \pgfuseobject{\ifcase\bbl@thepardir beamerskipsymbol\else beamerskipsymbolrl\fi}%
-\end{pgfpicture}}
-
-\def\beamergotobutton#1{\beamerbutton{\insertgotosymbol\ #1}}
-\def\beamerreturnbutton#1{\beamerbutton{\insertreturnsymbol\ #1}}
-\def\beamerskipbutton#1{\beamerbutton{\insertskipsymbol\ #1}}
-
-%% beamerbaseframesize
-
-%
-% Zoom stuff
-%
-
-\def\beamer@framezoom<#1><#2>[#3](#4,#5)(#6,#7){%
- \par\nointerlineskip%
- \global\beamer@slidehaszoomtrue%
- \advance\beamer@zoomcount by1\relax%
- \def\beamer@zoomborderwidth{0}%
- \edef\beamer@labelzoomed{beamer@labelzoomed@\the\beamer@zoomframecount @\the\beamer@zoomcount}%
- \setkeys{beamerzoom}{#3}%
- \only<#1>{%
- {\hypersetup{pdfhighlight={/P},pdfborder={0 0 \beamer@zoomborderwidth}}%
- \global\setbox\@tempboxa=\vbox{\hyperlink{\beamer@labelzoomed}{\vbox to #7{\hbox
- to#6{\hfil}\vfil}}}}%
- \ht\@tempboxa=0pt%
- \wd\@tempboxa=0pt%
- \dp\@tempboxa=0pt%
- \setbox\@tempboxa=\vbox{\moveright#4\hbox{\lower#5\vbox{\box\@tempboxa}}}%
- \ht\@tempboxa=0pt%
- \wd\@tempboxa=0pt%
- \dp\@tempboxa=0pt%
- \global\setbox\beamer@zoombox=\vbox to0pt{\unvbox\beamer@zoombox\box\@tempboxa}%
- }%
- \only<#2>{%
- \@ifundefined{\beamer@labelzoomed}%
- {%
- \hypertarget{\beamer@labelzoomed}{}%
- \expandafter\gdef\csname\beamer@labelzoomed\endcsname{}%
- }{}%
- \gdef\beamer@zoomer{%
- % compute zoom factor
- \@tempdima=\beamer@frametextheight%
- \@tempdimb=#7\relax%
- \@tempcnta=\@tempdimb%
- \divide\@tempcnta by4096\relax%
- \multiply\@tempdima by16\relax%
- \divide\@tempdima by\@tempcnta%
- \@tempdimb=\paperwidth%
- \ifbeamer@plainframe%
- \else%
- \advance\@tempdimb by-\beamer@leftsidebar%
- \advance\@tempdimb by-\beamer@rightsidebar\relax%
- \fi%
- \@tempdimc=#6\relax%
- \@tempcntb=\@tempdimc%
- \divide\@tempcntb by4096\relax%
- \multiply\@tempdimb by16\relax%
- \divide\@tempdimb by\@tempcntb%
- \ifdim\@tempdimb<\@tempdima%
- \@tempdima=\@tempdimb%
- \fi%
- \edef\beamer@temp{\strip@pt\@tempdima}%
- \@tempdimc=\beamer@frametextheight%
- \advance\@tempdimc by4pt%
- \@tempdimb=\paperwidth%
- \ifbeamer@plainframe%
- \else%
- \advance\@tempdimb by-\beamer@leftsidebar%
- \advance\@tempdimb by-\beamer@rightsidebar\relax%
- \fi%
- \setbox\@tempboxa=\vbox{\hsize=\@tempdimb\Acrobatmenu{GoBack}{\vbox to
- \beamer@frametextheight{\hbox to\@tempdimb{\hfil}\vfil}}}%
- \ht\@tempboxa=0pt%
- \wd\@tempboxa=0pt%
- \dp\@tempboxa=0pt%
- \setbox\beamer@framebox=\vbox to\beamer@frametextheight{{%
- \ifbeamer@plainframe\beamer@leftmargin=\Gm@lmargin\fi%
- \begin{oldpgfpicture}{\beamer@leftmargin}{-\beamer@frametextheight}{\beamer@leftmargin}{0pt}
- \pgftext[left,top]{\box\@tempboxa}
- \pgfpathrectangle{\pgfpoint{0pt}{-\@tempdimc}}{\pgfpoint{\ifcase\bbl@thepardir \else-\fi\@tempdimb}{\@tempdimc}}%
- \pgfusepath{clip}
- \begingroup
- \pgftransformscale{\beamer@temp}
- \@tempdima=#4\relax%
- \@tempdimb=#5\relax%
- {\pgftransformshift{\pgfpoint{-\@tempdima}{\@tempdimb}}%
- \pgftext[left,top]{\vbox{\vbox{}\nointerlineskip\unvbox\beamer@framebox}}}
- \endgroup
- \end{oldpgfpicture}%
- }}%
- \setbox\beamer@framebox=\vbox{%
- \nobreak\vbox{}\nobreak\par\nobreak\beamer@entrycode\nobreak%
- \nointerlineskip\unvbox\beamer@frametitlebox%
- \nobreak%
- \box\beamer@framebox%
- \nobreak%
- \vss%
- \beamer@exitcode%
- }%
- \global\setbox\beamer@footins=\box\voidb@x% no footnotes in zoomed slides
- }%
- }%
-}
-
-
-%
-% Shrink stuff
-%
-
-\def\beamer@shrinkframebox{%
- \@tempdima=\ht\beamer@framebox%
-% \ifdim\@tempdima>\beamer@frametextheight%
- \@tempcnta=\@tempdima%
- \divide\@tempcnta by 65536\relax%
- \@tempdimc=\beamer@frametextheight%
- \divide\@tempdimc by\@tempcnta\relax%
- \ifdim\@tempdimc>\beamer@shrinkfactor pt%
- \@tempdimc=\beamer@shrinkfactor pt%
- \else%
- \@tempdima=-100\@tempdimc%
- \advance\@tempdima by100pt%
- \ClassWarning{beamer}{Frame text is shrunk by a factor of %
- \strip@pt\@tempdima\space percent instead of
- \beamer@shrinkpercentage\space percent}%
- \fi%
- \edef\beamer@factortemp{\strip@pt\@tempdimc}%
- \setbox\beamer@framebox=\vbox to\beamer@frametextheight{%
- \begin{oldpgfpicture}{0pt}{-\beamer@frametextheight}{0pt}{0pt}
- {\pgftransformscale{\beamer@factortemp}%
- \pgftext[left,top]{\box\beamer@framebox}}%
- \end{oldpgfpicture}%
- }%
-% \fi%
-}
-
-\endinput
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{beamer-rl}
+[2021/03/12 v1.4b LaTeX class to patch beamer for right to left presentation with babel]
+
+\RequirePackage{kvoptions}
+\RequirePackage{kvsetkeys}
+
+\SetupKeyvalOptions{
+ family=beamer-rl,
+ prefix=beamer-rl@,
+ setkeys=\kvsetkeys,
+}
+
+% babel options:
+\define@key{beamer-rl}{babel}{%
+ \PassOptionsToPackage{#1}{babel}%
+}
+
+\DeclareVoidOption{arabic}{%
+ \@expandtwoargs\@removeelement\CurrentOption\@classoptionslist\@classoptionslist % remove arabic option from global list
+ % \PassOptionsToPackage{arabic}{translator}%
+ \AtBeginDocument{\uselanguage{Arabic}\languagealias{arabic}{Arabic}}
+}
+
+\DeclareDefaultOption{%
+ \PassOptionsToClass{\CurrentOption}{beamer}%
+}
+
+\ProcessKeyvalOptions*\relax
+
+\RequirePackage{ifluatex}
+
+\ifluatex
+\else
+\ClassError{beamer-rl}{beamer-rl require lualatex}
+\fi
+
+\LoadClass[hyperref={unicode}]{beamer}
+
+\RequirePackage[nil,bidi=basic]{babel}
+
+\def\reset@temp#1#2{\expandafter\let\csname beamer@@tmpop@#1@#2\endcsname\relax}
+\def\@@defbeamertemplate#1#2{\reset@temp{#1}{#2}\defbeamertemplate{#1}{#2}}
+\def\@defbeamertemplate#1#2{\reset@temp{#1}{#2}\defbeamertemplate*{#1}{#2}}
+
+\def\redefbeamertemplate{%
+ \@ifstar{\@defbeamertemplate}{\@@defbeamertemplate}%
+}
+
+\let\old@blacktriangleright\blacktriangleright
+\let\old@blacktriangleleft\blacktriangleleft
+
+\def\blacktriangleright{%
+ \ifcase\bbl@thepardir \old@blacktriangleright\else\old@blacktriangleleft\fi}
+\def\blacktriangleleft{%
+ \ifcase\bbl@thepardir \old@blacktriangleleft\else\old@blacktriangleright\fi}
+
+
+\let\oldpgfpicture\pgfpicture
+\let\endoldpgfpicture\endpgfpicture
+
+\def\pgfpicture{\babelsublr\bgroup\oldpgfpicture}
+\def\endpgfpicture{\endoldpgfpicture\egroup}
+
+\let\oldpgfuseshading\pgfuseshading
+\def\pgfuseshading#1{\babelsublr{\oldpgfuseshading{#1}}}
+
+
+%% beamerbasebox
+
+\newdimen\bmb@dimc
+
+\renewcommand\beamerboxesrounded[2][]{%
+ \global\let\beamer@firstlineitemizeunskip=\relax%
+ \vbox\bgroup%
+ \setkeys{beamerboxes}{upper=block title,lower=block body,width=\textwidth,shadow=false}%
+ \setkeys{beamerboxes}{#1}%
+ {%
+ \usebeamercolor{\bmb@lower}%
+ \globalcolorstrue%
+ \colorlet{lower.bg}{bg}%
+ }%
+ {%
+ \usebeamercolor{\bmb@upper}%
+ \globalcolorstrue%
+ \colorlet{upper.bg}{bg}%
+ }%
+ %
+ % Typeset head
+ %
+ \vskip4bp
+ \setbox\bmb@box=\hbox{%
+ \begin{minipage}[b]{\bmb@width}%
+ \usebeamercolor[fg]{\bmb@upper}%
+ #2%
+ \end{minipage}}%
+ \ifdim\wd\bmb@box=0pt%
+ \ifcase\bbl@thetextdir\relax
+ \else%
+ \bmb@dimc=\bmb@width%
+ \fi% <--
+ \setbox\bmb@box=\hbox{}%
+ \ht\bmb@box=1.5pt%
+ \bmb@prevheight=-4.5pt%
+ \else%
+ \wd\bmb@box=\bmb@width%
+ \bmb@temp=\dp\bmb@box%
+ \ifdim\bmb@temp<1.5pt%
+ \bmb@temp=1.5pt%
+ \fi%
+ \setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}%
+ \dp\bmb@box=0pt%
+ \bmb@prevheight=\ht\bmb@box%
+ \fi%
+ \bmb@temp=\bmb@width%
+ \bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp%
+ \bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp%
+ \hbox dir TLT {%
+ \begin{pgfpicture}{0bp}{+-\ht\bmb@box}{\bmb@dimc}{+-\ht\bmb@box}
+ \ifdim\wd\bmb@box=0pt%
+ \color{lower.bg}%
+ \else%
+ \color{upper.bg}%
+ \fi%
+ \pgfpathqmoveto{-4bp}{-1bp}
+ \pgfpathqcurveto{-4bp}{1.2bp}{-2.2bp}{3bp}{0bp}{3bp}
+ \pgfpathlineto{\pgfpoint{\bmb@temp}{3bp}}
+ \pgfpathcurveto%
+ {\pgfpoint{\bmb@dima}{3bp}}%
+ {\pgfpoint{\bmb@dimb}{1.2bp}}%
+ {\pgfpoint{\bmb@dimb}{-1bp}}%
+ \bmb@dima=-\ht\bmb@box%
+ \advance\bmb@dima by-2pt%
+ \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
+ \pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}}
+ \pgfusepath{fill}
+ \end{pgfpicture}%
+ \copy\bmb@box%
+ }%
+ \nointerlineskip%
+ \vskip-1pt%
+ \ifdim\wd\bmb@box=0pt%
+ \else%
+ \hbox{%
+ \begin{pgfpicture}{0pt}{0pt}{\bmb@width}{6pt}
+ \bmb@dima=\bmb@width%
+ \advance\bmb@dima by8bp%
+ \pgfpathrectangle{\pgfpoint{-4bp}{-1bp}}{\pgfpoint{\bmb@dima}{8bp}}
+ \pgfusepath{clip}
+ {\pgftransformshift{\pgfpoint{-4bp}{0bp}}\pgftext[left,base]{\pgfuseshading{bmb@transition}}}%
+ \end{pgfpicture}%
+ }%
+ \nointerlineskip%
+ \vskip-0.5pt%
+ \fi%
+ \setbox\bmb@colorbox=\hbox{{\pgfpicturetrue\pgfsetcolor{lower.bg}}}%
+ \setbox\bmb@box=\hbox\bgroup\begin{minipage}[b]{\bmb@width}%
+ \vskip2pt%
+ \usebeamercolor[fg]{\bmb@lower}%
+ \colorlet{beamerstructure}{upper.bg}%
+ \colorlet{structure}{upper.bg}%
+ %\color{.}%
+ }
+
+\bbl@sreplace\endbeamerboxesrounded{\begin{pgfpicture}}%
+ {\textdir TLT\begin{pgfpicture}}%
+
+
+
+%% beamerbaseauxtemplates
+
+
+% (sub-)section in toc: subsections numbered
+
+\redefbeamertemplate{subsection in toc}{subsections numbered}
+{\leavevmode\leftskip=2em\rlap{\hskip-2em \inserttocsectionnumber\hbox{.}\inserttocsubsectionnumber}\inserttocsubsection\par}
+
+
+%% beamerinnerthemedefault
+
+\redefbeamertemplate*{button}{default}
+{%
+ \setbox\beamer@tempbox=\hbox{{\insertbuttontext}}%
+ \ht\beamer@tempbox=6pt%
+ \dp\beamer@tempbox=0pt%
+ \setbox\beamer@tempbox=\vbox{\box\beamer@tempbox\vskip2pt}%
+ \beamer@tempdim=\wd\beamer@tempbox%
+ \beamer@dima=\beamer@tempdim\advance\beamer@dima by2.2pt
+ \beamer@dimb=\beamer@tempdim\advance\beamer@dimb by4pt
+ \textdir TLT\begin{pgfpicture}{-4pt}{0pt}{\the\beamer@tempdim}{8pt}
+ \color{bg}
+ \pgfsetlinewidth{0.8pt}
+ \pgfpathqmoveto{0pt}{0pt}
+ \pgfpathqcurveto{-2.2pt}{0pt}{-4pt}{1.8pt}{-4pt}{4pt}
+ \pgfpathqcurveto{-4pt}{6.2pt}{-2.2pt}{8pt}{0pt}{8pt}
+ \pgfpathlineto{\pgfpoint{\the\beamer@tempdim}{8pt}}
+ \pgfpathcurveto%
+ {\pgfpoint{\the\beamer@dima}{8pt}}%
+ {\pgfpoint{\the\beamer@dimb}{6.2pt}}%
+ {\pgfpoint{\the\beamer@dimb}{4pt}}
+ \pgfpathcurveto%
+ {\pgfpoint{\the\beamer@dimb}{1.8pt}}%
+ {\pgfpoint{\the\beamer@dima}{0pt}}%
+ {\pgfpoint{\the\beamer@tempdim}{0pt}}
+ \pgfpathclose
+ \pgfusepathqfill
+ \colorlet{bg}{parent.bg}
+ \usebeamercolor[fg]{button border}
+ \pgfpathqmoveto{0pt}{0pt}
+ \pgfpathqcurveto{-2.2pt}{0pt}{-4pt}{1.8pt}{-4pt}{4pt}
+ \pgfpathqcurveto{-4pt}{6.2pt}{-2.2pt}{8pt}{0pt}{8pt}
+ \pgfpathlineto{\pgfpoint{\the\beamer@tempdim}{8pt}}
+ \pgfpathcurveto%
+ {\pgfpoint{\the\beamer@dima}{8pt}}%
+ {\pgfpoint{\the\beamer@dimb}{6.2pt}}%
+ {\pgfpoint{\the\beamer@dimb}{4pt}}
+ \pgfpathcurveto%
+ {\pgfpoint{\the\beamer@dimb}{1.8pt}}%
+ {\pgfpoint{\the\beamer@dima}{0pt}}%
+ {\pgfpoint{\the\beamer@tempdim}{0pt}}
+ \pgfpathclose
+ \pgfusepathqstroke
+ \end{pgfpicture}%
+ \hskip-\beamer@tempdim%
+ \box\beamer@tempbox%
+ \kern4pt%
+}
+
+%% beamerbasenavigation
+
+% User Buttons
+
+\pgfdefobject{beamergotosymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{5pt}{5pt}}
+{
+ \pgfpathqmoveto{1.5bp}{0.5bp}
+ \pgfpathqlineto{3.5bp}{2bp}
+ \pgfpathqlineto{1.5bp}{3.5bp}
+ \pgfusepathqfill
+}
+
+\def\insertgotosymbol{%
+\begin{pgfpicture}{1pt}{0pt}{6pt}{5pt}
+ \pgfuseobject{\ifcase\bbl@thepardir beamergotosymbol\else beamerreturnsymbol\fi}%
+\end{pgfpicture}}
+
+\pgfdefobject{beamerreturnsymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{5pt}{5pt}}
+{
+ \pgfpathqmoveto{3.5bp}{0.5bp}
+ \pgfpathqlineto{1.5bp}{2bp}
+ \pgfpathqlineto{3.5bp}{3.5bp}
+ \pgfusepathqfill
+}
+
+\def\insertreturnsymbol{%
+\begin{pgfpicture}{1pt}{0pt}{6pt}{5pt}
+ \pgfuseobject{\ifcase\bbl@thepardir beamerreturnsymbol\else beamergotosymbol\fi}%
+\end{pgfpicture}}
+
+
+\pgfdefobject{beamerskipsymbolrl}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{7pt}{5pt}}
+{
+ \pgfpathqmoveto{3.5bp}{0.5bp}
+ \pgfpathqlineto{1.5bp}{2bp}
+ \pgfpathqlineto{3.5bp}{3.5bp}
+ \pgfpathqmoveto{5.5bp}{0.5bp}
+ \pgfpathqlineto{3.5bp}{2bp}
+ \pgfpathqlineto{5.5bp}{3.5bp}
+ \pgfusepathqfill
+}
+
+\pgfdefobject{beamerskipsymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{7pt}{5pt}}
+{
+ \pgfpathqmoveto{1.5bp}{0.5bp}
+ \pgfpathqlineto{3.5bp}{2bp}
+ \pgfpathqlineto{1.5bp}{3.5bp}
+ \pgfpathqmoveto{3.5bp}{0.5bp}
+ \pgfpathqlineto{5.5bp}{2bp}
+ \pgfpathqlineto{3.5bp}{3.5bp}
+ \pgfusepathqfill
+}
+
+\def\insertskipsymbol{%
+\begin{pgfpicture}{-1pt}{0pt}{6pt}{5pt}
+ \pgfuseobject{\ifcase\bbl@thepardir beamerskipsymbol\else beamerskipsymbolrl\fi}%
+\end{pgfpicture}}
+
+\def\beamergotobutton#1{\beamerbutton{\insertgotosymbol\ #1}}
+\def\beamerreturnbutton#1{\beamerbutton{\insertreturnsymbol\ #1}}
+\def\beamerskipbutton#1{\beamerbutton{\insertskipsymbol\ #1}}
+
+%% beamerbaseframesize
+
+%
+% Zoom stuff
+%
+
+\def\beamer@framezoom<#1><#2>[#3](#4,#5)(#6,#7){%
+ \par\nointerlineskip%
+ \global\beamer@slidehaszoomtrue%
+ \advance\beamer@zoomcount by1\relax%
+ \def\beamer@zoomborderwidth{0}%
+ \edef\beamer@labelzoomed{beamer@labelzoomed@\the\beamer@zoomframecount @\the\beamer@zoomcount}%
+ \setkeys{beamerzoom}{#3}%
+ \only<#1>{%
+ {\hypersetup{pdfhighlight={/P},pdfborder={0 0 \beamer@zoomborderwidth}}%
+ \global\setbox\@tempboxa=\vbox{\hyperlink{\beamer@labelzoomed}{\vbox to #7{\hbox
+ to#6{\hfil}\vfil}}}}%
+ \ht\@tempboxa=0pt%
+ \wd\@tempboxa=0pt%
+ \dp\@tempboxa=0pt%
+ \setbox\@tempboxa=\vbox{\moveright#4\hbox{\lower#5\vbox{\box\@tempboxa}}}%
+ \ht\@tempboxa=0pt%
+ \wd\@tempboxa=0pt%
+ \dp\@tempboxa=0pt%
+ \global\setbox\beamer@zoombox=\vbox to0pt{\unvbox\beamer@zoombox\box\@tempboxa}%
+ }%
+ \only<#2>{%
+ \@ifundefined{\beamer@labelzoomed}%
+ {%
+ \hypertarget{\beamer@labelzoomed}{}%
+ \expandafter\gdef\csname\beamer@labelzoomed\endcsname{}%
+ }{}%
+ \gdef\beamer@zoomer{%
+ % compute zoom factor
+ \@tempdima=\beamer@frametextheight%
+ \@tempdimb=#7\relax%
+ \@tempcnta=\@tempdimb%
+ \divide\@tempcnta by4096\relax%
+ \multiply\@tempdima by16\relax%
+ \divide\@tempdima by\@tempcnta%
+ \@tempdimb=\paperwidth%
+ \ifbeamer@plainframe%
+ \else%
+ \advance\@tempdimb by-\beamer@leftsidebar%
+ \advance\@tempdimb by-\beamer@rightsidebar\relax%
+ \fi%
+ \@tempdimc=#6\relax%
+ \@tempcntb=\@tempdimc%
+ \divide\@tempcntb by4096\relax%
+ \multiply\@tempdimb by16\relax%
+ \divide\@tempdimb by\@tempcntb%
+ \ifdim\@tempdimb<\@tempdima%
+ \@tempdima=\@tempdimb%
+ \fi%
+ \edef\beamer@temp{\strip@pt\@tempdima}%
+ \@tempdimc=\beamer@frametextheight%
+ \advance\@tempdimc by4pt%
+ \@tempdimb=\paperwidth%
+ \ifbeamer@plainframe%
+ \else%
+ \advance\@tempdimb by-\beamer@leftsidebar%
+ \advance\@tempdimb by-\beamer@rightsidebar\relax%
+ \fi%
+ \setbox\@tempboxa=\vbox{\hsize=\@tempdimb\Acrobatmenu{GoBack}{\vbox to
+ \beamer@frametextheight{\hbox to\@tempdimb{\hfil}\vfil}}}%
+ \ht\@tempboxa=0pt%
+ \wd\@tempboxa=0pt%
+ \dp\@tempboxa=0pt%
+ \setbox\beamer@framebox=\vbox to\beamer@frametextheight{{%
+ \ifbeamer@plainframe\beamer@leftmargin=\Gm@lmargin\fi%
+ \ifcase\bbl@thepardir \else\multiply\@tempdimb by -1\relax\fi%
+ \begin{oldpgfpicture}{\beamer@leftmargin}{-\beamer@frametextheight}{\beamer@leftmargin}{0pt}
+ \pgftext[left,top]{\box\@tempboxa}
+ \pgfpathrectangle{\pgfpoint{0pt}{-\@tempdimc}}{\pgfpoint{\@tempdimb}{\@tempdimc}}%
+ \pgfusepath{clip}
+ \begingroup
+ \pgftransformscale{\beamer@temp}
+ \@tempdima=#4\relax%
+ \@tempdimb=#5\relax%
+ {\pgftransformshift{\pgfpoint{-\@tempdima}{\@tempdimb}}%
+ \pgftext[left,top]{\vbox{\vbox{}\nointerlineskip\unvbox\beamer@framebox }}}
+ \endgroup
+ \end{oldpgfpicture}%
+ }}%
+ \setbox\beamer@framebox=\vbox{%
+ \nobreak\vbox{}\nobreak\par\nobreak\beamer@entrycode\nobreak%
+ \nointerlineskip\unvbox\beamer@frametitlebox%
+ \nobreak%
+ \box\beamer@framebox%
+ \nobreak%
+ \vss%
+ \beamer@exitcode%
+ }%
+ \global\setbox\beamer@footins=\box\voidb@x% no footnotes in zoomed slides
+ }%
+ }%
+}
+
+
+%
+% Shrink stuff
+%
+
+
+ \bbl@sreplace\beamer@shrinkframebox{\vbox}%
+ {\vbox dir TLT}%
+
+% Temporary workaround for issue of \shapemode bug
+% https://github.com/latex3/babel/issues/13
+% this work fine with lists inside frame, if they are included within \vbox
+% may be we need to insert \shapemode=2 or \shapemode=0 manualy at beginning of list
+% \begin{enumerate} \shapemode=.. & \begin{itemize} \shapemode=..
+
+\newcounter{beginframepardir}
+
+\let\oldframe\frame
+\def\frame{\setcounter{beginframepardir}{\bbl@getluadir{par}}
+% 0 for TLT 1 for TRT
+\oldframe}
+
+\redefbeamertemplate*{itemize/enumerate body begin}{default}{\ifnum\value{beginframepardir}=\bbl@getluadir{par} \else\shapemode=2\fi}
+
+\redefbeamertemplate*{description body begin}{default}{\ifnum\value{beginframepardir}=\bbl@getluadir{par} \else\shapemode \tw@\fi}
+
+% Use Amiri as default sans serif font
+
+\font\sffont@rl="Amiri" at 10pt
+\ifx\sffont@rl\nullfont
+\else
+\babelfont{sf}{Amiri}
+\fi
+
+\endinput \ No newline at end of file
diff --git a/macros/luatex/latex/lua-ul/docstrip-luacode.sty b/macros/luatex/latex/lua-ul/docstrip-luacode.sty
index 29f055258f..f406b6a0d1 100644
--- a/macros/luatex/latex/lua-ul/docstrip-luacode.sty
+++ b/macros/luatex/latex/lua-ul/docstrip-luacode.sty
@@ -13,7 +13,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage
{docstrip-luacode}
- [2021/02/02 v0.1.1 Directly execute Lua code from DocStrip files]
+ [2021/02/15 v0.1.2 Directly execute Lua code from DocStrip files]
\expanded{%
\def\noexpand\docstrip@luacode@argscanner#1\directlua{
tex.sprint(\the\catcodetable@string, "\string\\end{docstrip-luacode}")
diff --git a/macros/luatex/latex/lua-ul/lua-ul.dtx b/macros/luatex/latex/lua-ul/lua-ul.dtx
index ad57f41b67..c530c492b4 100644
--- a/macros/luatex/latex/lua-ul/lua-ul.dtx
+++ b/macros/luatex/latex/lua-ul/lua-ul.dtx
@@ -62,7 +62,7 @@
% \duck
% \end{tikzpicture}§
% }}
-% \NewDocumentCommand\underDuck{m}{{\beginUnderDuck#1}}
+% \NewDocumentCommand\underDuck{+m}{{\beginUnderDuck#1}}
% \newunderlinetype\beginUnderWavy[\number\dimexpr1ex]{\cleaders\hbox{§
% \setlength\unitlength{.3ex}§
% \begin{picture}(4,0)(0,1)
@@ -72,11 +72,11 @@
% \qbezier(2,0)(3,-1)(4,0)
% \end{picture}§
% }}
-% \NewDocumentCommand\underWavy{m}{{\beginUnderWavy#1}}
+% \NewDocumentCommand\underWavy{+m}{{\beginUnderWavy#1}}
% \newunderlinetype\beginStrikeThough{\leaders\hbox{§
% \normalfont\bfseries/§
% }}
-% \NewDocumentCommand\StrikeThough{m}{{\beginStrikeThough#1}}
+% \NewDocumentCommand\StrikeThough{+m}{{\beginStrikeThough#1}}
%
% \newcommand\Luaul{Lua-UL}
% \newcommand\luaul{Lua-UL}
@@ -180,7 +180,7 @@
% \duck
% \end{tikzpicture}%
% }}
-% \NewDocumentCommand\underDuck{m}{{\beginUnderDuck#1}}
+% \NewDocumentCommand\underDuck{+m}{{\beginUnderDuck#1}}
% \newunderlinetype\beginUnderWavy[\number\dimexpr1ex]{\cleaders\hbox{%
% \setlength\unitlength{.3ex}%
% \begin{picture}(4,0)(0,1)
@@ -190,11 +190,11 @@
% \qbezier(2,0)(3,-1)(4,0)
% \end{picture}%
% }}
-% \NewDocumentCommand\underWavy{m}{{\beginUnderWavy#1}}
+% \NewDocumentCommand\underWavy{+m}{{\beginUnderWavy#1}}
% \newunderlinetype\beginStrikeThough{\leaders\hbox{%
% \normalfont\bfseries/%
% }}
-% \NewDocumentCommand\StrikeThough{m}{{\beginStrikeThough#1}}
+% \NewDocumentCommand\StrikeThough{+m}{{\beginStrikeThough#1}}
% \end{verbatim}
%
% Here \verb+\underWavy+ uses a custom context because it doesn't change depending on the current font color.
@@ -816,7 +816,7 @@ luatexbase.add_to_callback('vpack_filter',
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage
{lua-ul}
- [2021/02/02 v0.1.1 Underlining and related functionality for LuaTeX]
+ [2021/02/15 v0.1.2 Underlining and related functionality for LuaTeX]
% \fi
% Only \LuaLaTeX{} is supported.
@@ -910,15 +910,16 @@ luatexbase.add_to_callback('vpack_filter',
\edef\luaul@highlight@color{\IfValueTF{#1}{[#1]{#2}}{#2}}%
}
% \end{macrocode}
-% \changes{0.1.1}{2020-03-15}{Use \texttt{xparse} for all user commands}
+% \changes{0.1.1}{2021-02-02}{Use \texttt{xparse} for all user commands}
% \changes{0.1.1}{2021-02-02}{Optionally color \texttt{\protect\string\protect\strikeThrough}}
+% \changes{0.1.2}{2021-02-15}{Allow \texttt{long} arguments (again)}
% The sizes for the predefined commands are stolen from the \enquote{soul}
% default values.
% \begin{macrocode}
\newunderlinetype\@underLine{%
\leaders\vrule height -.65ex depth .75ex
}
- \NewDocumentCommand\underLine{m}{{\@underLine#1}}
+ \NewDocumentCommand\underLine{+m}{{\@underLine#1}}
\newunderlinetype\@strikeThrough{%
\leaders\vrule height .55ex depth -.45ex
@@ -928,7 +929,7 @@ luatexbase.add_to_callback('vpack_filter',
\luaul@applycolor
\leaders\vrule height .55ex depth -.45ex
}
- \NewDocumentCommand\strikeThrough{om}{{%
+ \NewDocumentCommand\strikeThrough{o+m}{{%
\IfValueTF{#1}{%
\luaul@setcolor{#1}%
\colored@strikeThrough
@@ -941,7 +942,7 @@ luatexbase.add_to_callback('vpack_filter',
\luaul@applycolor
\leaders\vrule height 1.75ex depth .75ex
}
- \NewDocumentCommand\highLight{O{\luaul@highlight@color}m}{{%
+ \NewDocumentCommand\highLight{O{\luaul@highlight@color}+m}{{%
\luaul@setcolor{#1}%
\@highLight#2%
}}
diff --git a/macros/luatex/latex/lua-ul/lua-ul.pdf b/macros/luatex/latex/lua-ul/lua-ul.pdf
index a868e5e6ef..f87859a29d 100644
--- a/macros/luatex/latex/lua-ul/lua-ul.pdf
+++ b/macros/luatex/latex/lua-ul/lua-ul.pdf
Binary files differ
diff --git a/macros/luatex/optex/README b/macros/luatex/optex/README
index 6c5ae30b5a..b8f925e47c 100644
--- a/macros/luatex/optex/README
+++ b/macros/luatex/optex/README
@@ -19,6 +19,13 @@ doc/ ... PDF version of the OpTeX documentation and sources.
History:
+<1.01> Mar. 2021
+ Minor code fixes (thanks to reports from users).
+ LibreCaslon font file added.
+ two new callbacks from new LuaTeX 1.13 added to optex.lua
+ active * (in lists) works as normal in math mode.
+ f-heros(\slides): additional font XITSMath loaded (to the base FiraMath font).
+ \_xhsize seting added to \margins.
<1.00> Feb. 2021
The OMLS (OpTeX Markup Language Standard) was developed. It helps to create
convertors from/to OpTeX documents and similar applications.
diff --git a/macros/luatex/optex/base/alloc.opm b/macros/luatex/optex/base/alloc.opm
index 56c1d3dd63..5d874134d4 100644
--- a/macros/luatex/optex/base/alloc.opm
+++ b/macros/luatex/optex/base/alloc.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \newdimen {Allocators for registers <2020-05-12>} % loaded in format
+\_codedecl \newdimen {Allocators for registers <2021-02-15>} % loaded in format
\_doc -----------------------------
The limits are set first.
@@ -39,7 +39,7 @@
\_cod -----------------------------
\_def\_allocator #1#2#3{%
- \_global\_advance\_cs{_#2alloc}by1
+ \_incr{\_cs{_#2alloc}}%
\_ifnum\_cs{_#2alloc}>\_cs{_mai#2}%
\_errmessage{No room for a new \_ea\_string\_csname #2\_endcsname}%
\_else
@@ -75,7 +75,7 @@
\_chardef\_insertmin = 201
\_def\_newinsert #1{%
- \_global\_advance\_insertalloc by-1
+ \_decr\_insertalloc
\_ifnum\_insertalloc <\_insertmin
\_errmessage {No room for a new \_string\insert}%
\_else
@@ -168,5 +168,6 @@ the array-like declarator of counters.
\_endinput
+2021-02-15 \_advance -> \_incr, \_decr
2020-05-12 \newmath -> \newfam bug fixing
2020-01-23 released
diff --git a/macros/luatex/optex/base/f-heros.opm b/macros/luatex/optex/base/f-heros.opm
index ca62da93a5..767052cc45 100644
--- a/macros/luatex/optex/base/f-heros.opm
+++ b/macros/luatex/optex/base/f-heros.opm
@@ -19,7 +19,21 @@ Modifiers:^^J
\_initfontfamily % new font family must be initialized
-\_loadmath {[FiraMath-Regular]}
+\_ifmathloading
+ \_loadmath {[FiraMath-Regular]}
+ \_addto\_normalmath{\_loadumathfamily 5 {xitsmath-regular}{} }
+ \_addto\_boldmath {\_loadumathfamily 5 {xitsmath-bold}{} }
+ \_addto\frak{\_fam5 }\_addto\cal{\_fam5 }
+ \_normalmath
+ \_wterm{MATH-FONT(5): "[XITSMath-Regular/Bold]" -- used for \_string\cal, \_string\frak}
+ % \bf, \bi from FiraMath:
+ \_let\_bsansvariables=\_bfvariables
+ \_let\_bsansGreek=\_bfGreek
+ \_let\_bsansgreek=\_bfgreek
+ \_let\_bsansdigits=\_bfdigits
+ \_let\_bisansvariables=\_bivariables
+ \_let\_bisansgreek=\_bigreek
+\_fi
\_endcode
diff --git a/macros/luatex/optex/base/f-librecaslon.opm b/macros/luatex/optex/base/f-librecaslon.opm
new file mode 100644
index 0000000000..53f61834f1
--- /dev/null
+++ b/macros/luatex/optex/base/f-librecaslon.opm
@@ -0,0 +1,22 @@
+%% This is part of the OpTeX project, see http://petr.olsak.net/optex
+
+\_famdecl [LibreCaslon] \Librecaslon {Libre Caslon Text, inspired by Caslon}
+ {\onum} {\rm \bf \it \bi} {Termes}
+ {[LibreCaslonText-Regular]}
+ {\_def\_fontnamegen {[Libre\_currV]:\_capsV\_fontfeatures}}
+
+\_wlog{\_detokenize{%
+Modifier:^^J
+ \onum ...... oldstyle figures^^J
+}}
+
+\_moddef \resetmod {\_fsetV caps={},csl={CaslonText}
+ \_fvars \_cslV-Regular \_cslV-Bold \_cslV-Italic Csln-Bolditalic }
+\_moddef \onum {\_fsetV caps=+onum; }
+
+\_initfontfamily % new font family must be initialized
+
+\_loadmath {[texgyretermes-math]}
+
+\_endcode
+
diff --git a/macros/luatex/optex/base/fams-ini.opm b/macros/luatex/optex/base/fams-ini.opm
index 4b12550553..3c8ded975e 100644
--- a/macros/luatex/optex/base/fams-ini.opm
+++ b/macros/luatex/optex/base/fams-ini.opm
@@ -99,6 +99,11 @@
{ -,\caps: {\rm\bf\it\bi} \swash: {\it\bi} }
\_famalias [GaramondL]
+\_famfrom {Pablo Impallari, Rodrigo Fuenzalida}
+\_faminfo [LibreCaslon] {Libre Caslon Text, inspired by Caslon} {f-librecaslon}
+ { -,\onum: {\rm\bf\it\bi} }
+\_famalias [Caslon]
+
\_famfrom {Adobe, Paul D. Hunt}
\_faminfo [Source Pro] {Adobe SourceSerifPro, SourceSansPro, SourceCodePro} {f-sourcepro}
{ \elight,\light,-,\bolder: {\rm\it} -,\bolder: {\bf\bi}
diff --git a/macros/luatex/optex/base/fonts-opmac.opm b/macros/luatex/optex/base/fonts-opmac.opm
index a5dda559f1..3ae2f0c5e1 100644
--- a/macros/luatex/optex/base/fonts-opmac.opm
+++ b/macros/luatex/optex/base/fonts-opmac.opm
@@ -1,12 +1,12 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \typosize {Font managing macros from OPmac <2020-12-12>} % loaded in format
+\_codedecl \typosize {Font managing macros from OPmac <2021-03-10>} % loaded in format
\_doc -----------------------------
\`\typosize` `[<font-size>/<baselineskip>]` sets given parameters.
It sets text font size by the \^`\setfontsize` macro and math font sizes
by setting internal macros \^`\_sizemtext`, \^`\_sizemscript` and
- \^`\_sizemsscript`. It uses common concept font thes sizes: 100\,\%,
+ \^`\_sizemsscript`. It uses common concept font sizes: 100\,\%,
70\,\% and 50\,\%.
The \^`\_setmainvalues` sets the parameters as main values when
the `\_typosize` is called first.
@@ -23,7 +23,7 @@
\_edef\_sizemtext{\_ea\_ignorept \_the\_tmpdim \_ptmunit}%
\_tmpdim=0.7\_tmpdim
\_edef\_sizemscript{\_ea\_ignorept \_the\_tmpdim \_ptmunit}%
- \_tmpdim=#1\_ptunit \_tmpdim=0.5\_tmpdim
+ \_tmpdim=#1\_ptunit \_tmpdim=0.5\_tmpdim
\_edef\_sizemsscript{\_ea\_ignorept \_the\_tmpdim \_ptmunit}%
\_fi
}
@@ -71,26 +71,49 @@
\_doc -----------------------------
\`\_setmainvalues` sets the current font size and `\baselineskip`
- values to the \`\mainfosize` and \hbox{\`\mainbaselineskip`} registers.
- It redefines itself to set the main values only first.
+ values to the \`\mainfosize` and \hbox{\`\mainbaselineskip`} registers
+ and loads fonts at given sizes.
+ It redefines itself as \`\_setmainvaluesL`
+ to set the main values only first. The \^`\_setmainvaluesL` does only
+ fonts loading.
\nl
\`\scalemain` returns to these values if they were set. Else they are set
to 10/12\,pt.
+ \nl
+ \`\mfontsrule` gives the rule how math fonts are loaded when \^`\typosize`
+ or \^`\typoscale` are used. The value of \^`\mfontsrule` can be:
+ \begitems
+ * 0: no math fonts are loaded. User must use \^`\normalmath` or \^`\boldmath` explicitly.
+ * 1: `\_normalmath` is run if \^`\typosize`/\^`\typoscale` are used
+ first or they are run at outer group level. No
+ `\everymath`/`\everydisplay` are set in this case. If
+ \^`\typosize`/\^`\typoscale` are run repeatedly in a group then `\_normalmath` is
+ run only when math formula occurs. This is done using
+ `\everymath`/`\everydisplay` and \^`\_setmathfonts`.
+ \^`\mfontsrule=1` is default.
+ * 2: `\_normalmath` is run whenever \^`\typosize`/\^`\typoscale` are used.
+ `\everymath`/`\everydisplay` registers are untouched.
+ \enditems
\_cod -----------------------------
\_newskip \_mainbaselineskip \_mainbaselineskip=0pt \_relax
\_newdimen \_mainfosize \_mainfosize=0pt
+\_newcount \_mfontsrule \_mfontsrule=1
\_def\_setmainvalues {%
\_mainbaselineskip=\_baselineskip
\_mainfosize=\_optsize
\_topskip=\_mainfosize \_splittopskip=\_topskip
\_ifmmode \_else \_bf \_it \_bi \_rm \_fi % load all basic variants of the family
- \_normalmath % load fonts if \typosize is running first
+ \_ifnum \_mfontsrule>0 \_normalmath \_fi % load math fonts first
\_let \_setmainvalues =\_setmainvaluesL
}
-\_def\_setmainvaluesL {\_ifmmode \_normalmath \_else
- \_rm \_everymath={\_normalmath}\_everydisplay={\_normalmath}\_fi}
+\_def\_setmainvaluesL {\_relax \_ifmmode \_else \_rm \_fi % load text font
+ \_ifcase \_mfontsrule % load math fonts
+ \_or \_ifnum\_currentgrouplevel=0 \_normalmath
+ \_else \_everymath={\_setmathfonts}\_everydisplay={\_normalmath}%
+ \_let\_runboldmath=\_relax \_fi
+ \_or \_normalmath \_fi}
\_def\_scalemain {%
\_ifdim \_mainfosize=\_zo
\_mainfosize=10pt \_mainbaselineskip=12pt
@@ -98,7 +121,21 @@
\_fi
\_optsize=\_mainfosize \_baselineskip=\_mainbaselineskip
}
-\_public \scalemain \mainfosize \mainbaselineskip ;
+\_public \scalemain \mainfosize \mainbaselineskip \mfontsrule ;
+
+ \_doc -----------------------------
+ Suppose following example:
+ `{\typosize[13/15] Let $M$ be a subset of $R$ and $x\in M$...}`
+ If \^`\mfontsrule=1` then \^`\typosize` does not load math fonts
+ immediatelly but at the first math formula. It is done by `\everymath`
+ register, but the contents of this register is processed inside the math
+ group. If we do `\everymath={\_normalmath}` then this complicated macro
+ will be processed three times in your example above. We want only one
+ pocessing, so we do `\everymath={`\`\_setmathfonts``}` and
+ this macro closes math mode first, loads fonts and opens math mode again.
+ \_cod -----------------------------
+
+\_def\_setmathfonts{$\_normalmath\_everymath{}\_everydisplay{}$}
\_doc -----------------------------
\`\thefontsize` `[<size>]` and \`\thefontscale` `[<factor>]`
@@ -141,13 +178,25 @@
\_let\_italcorr=\/
\_doc -----------------------------
- The \`\boldify` macro does `\let\it\bi` and `\let\normalmath=\boldmath`.
+ The \`\boldify` macro does `\let\rm\bf`, `\let\it\bi` and
+ `\let\normalmath=\boldmath`. All following text will be in bold.
+ If should be used after \^`\typosize` or \^`\typoscale` macros.\nl
+ The internal \`\_runboldmath` macro runs `\_boldmath` immediatelly
+ if no delay of the math font loading is set by \^`\_setmainvaluesL`.\nl
+ The `\rm`, `\it` in math mode must keep its original meaning.
\_cod -----------------------------
\_protected\_def \_boldify {%
\_let \_setmainvalues=\_setmainvaluesL
\_let\it =\_bi \_let\rm =\_bf \_let\_normalmath=\_boldmath \_bf
+ \_runboldmath
+ \_ifx\_ncharrmA\_undefined \_protected\_addto\rm{\_fam0 }\_protected\_addto\it{\_fam1 }%
+ \_else \_protected\_def\rm {\_tryloadbf \_tenbf \_inmath{\_rmvariables \_rmdigits}}%
+ \_protected\_def\it {\_tryloadbi \_tenbi \_inmath{\_itvariables}}%
+ \_fi
}
+\_def\_runboldmath{\_boldmath}
+
\_public \em \boldify ;
\_doc -----------------------------
@@ -169,6 +218,8 @@
\_endcode % -------------------------------------
History:
+2021-03-10 \boldify corrected
+2021-03-09 \mfontsrule and \_setmathfonts introduced
2020-12-12 \_rmfixed fixed
2020-04-28 \boldify: removed \let\_rm=\_bf
2020-04-14 \_setmainvaluesL: \_ifmmode test added
diff --git a/macros/luatex/optex/base/fonts-select.opm b/macros/luatex/optex/base/fonts-select.opm
index 9066d4fed5..740b311a67 100644
--- a/macros/luatex/optex/base/fonts-select.opm
+++ b/macros/luatex/optex/base/fonts-select.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \fontfam {Fonts selection system <2020-01-27>} % preloaded in format
+\_codedecl \fontfam {Fonts selection system <2021-02-25>} % preloaded in format
\_doc -----------------------------
\`\initunifonts` macro extends \LuaTeX's font capabalities,
@@ -13,7 +13,9 @@
macro \`\_doresizeunifont`. This mode includes
a fallback to TFM mode if \^`\_fontnamegen` is not defined.
Finally, `\initunifonts` sets itself to relax because we don't want to do
- this work twice.
+ this work twice.\nl
+ \`\_ttunifont` is default font for `\tt` variant if
+ `f-lmfonts.opm` (or another font file where `\tt` is declared) is not loaded.
\_cod -----------------------------
\_def\_initunifonts {%
@@ -23,7 +25,7 @@
}%
\_gdef\_rfskipatX ##1" ##2\_relax{"##1"}%
\_global\_let \_doresizefont=\_doresizeunifont
- \_gdef\_tryloadtt {\_fontdef\_tentt{\_def\_fontnamegen{[lmmono10-regular]}\_rm}}%
+ \_gdef\_tryloadtt {\_fontdef\_tentt{\_let\_fontnamegen=\_ttunifont\_rm}}%
\_global\_let \_initunifonts=\_relax % we need not to do this work twice
\_global\_let \initunifonts=\_relax
}
@@ -32,6 +34,8 @@
\_font#1={\_fontnamegen} \_sizespec \_relax \_setwsp#1\_relax
\_fi
}
+\_def\_ttunifont{[lmmono10-regular]:\_fontfeatures-tlig;}
+
\_public \initunifonts ;
\_doc -----------------------------
@@ -834,6 +838,7 @@ Luaotfload documentation for more information.
\endinput
+2021-02-25 \_ttunifont introduced
2021-01-27 lua hack (print function) removed because luaotfload 3.17 removes bug.
2020-12-12 \_modlist added, doc improved
2020-04-18 \_tryloadfamslocal introduced
diff --git a/macros/luatex/optex/base/lists.opm b/macros/luatex/optex/base/lists.opm
index a32d13319f..189719302d 100644
--- a/macros/luatex/optex/base/lists.opm
+++ b/macros/luatex/optex/base/lists.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \begitems {Lists: begitems, enditems <2020-04-21>} % preloaded in format
+\_codedecl \begitems {Lists: begitems, enditems <2021-03-10>} % preloaded in format
\_doc -----------------------------
\`\_aboveliskip` is used above the list of items,\nl
@@ -47,7 +47,7 @@
\_advance \_ilevel by1
\_setlistskip
\_ifnum\_lastpenalty<10000 \_aboveliskip \_fi
- \_itemnum=0 \_adef*{\_startitem}
+ \_itemnum=0 \_adef*{\_relax\_ifmmode*\_else\_ea\_startitem\_fi}
\_advance\_leftskip by\_iindent
\_printitem=\_defaultitem
\_the\_everylist \_relax
@@ -123,5 +123,6 @@
\_endcode % -------------------------------------
+2021-03-10 \_ifmmode*\_else\_ea\_startitem\_fi added to * defintition
2020-04-21 \isnextchar\par added to \enditems
2020-03-18 introduced
diff --git a/macros/luatex/optex/base/makeindex.opm b/macros/luatex/optex/base/makeindex.opm
index 8c58f7085c..e5f7b4032e 100644
--- a/macros/luatex/optex/base/makeindex.opm
+++ b/macros/luatex/optex/base/makeindex.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \makeindex {Makeindex and sorting <2021-02-01>} % loaded in format
+\_codedecl \makeindex {Makeindex and sorting <2021-02-15>} % loaded in format
\_doc -----------------------------
\^`\makeindex` implements sorting algorithm at \TeX/ macro-language level.
@@ -334,7 +334,7 @@
\_def\_printiiA #1/{\_if^#1^\_let\_previi=\_currii \_else
\_ea\_scanprevii\_previi/&\_edef\_tmpb{\_detokenize{#1}}%
\_ifx\_tmpa\_tmpb \_iiemdash \_else#1 \_gdef\_previi{}\_fi
- \_expandafter\_printiiA\_fi
+ \_ea\_printiiA\_fi
}
\_def\_iiemdash{\_kern.1em---\_space}
\_def\_lastii{}
@@ -457,6 +457,7 @@
\_endcode % -------------------------------------
+2021-02-15 \_expandafter -> \_ea
2021-02-01 secodary sorting: start from code 65
2020-04-21 \isempty \iffalse ... \fi added to \iindex
2020-03-26 introduced
diff --git a/macros/luatex/optex/base/margins.opm b/macros/luatex/optex/base/margins.opm
index 8799dec294..d88cc04237 100644
--- a/macros/luatex/optex/base/margins.opm
+++ b/macros/luatex/optex/base/margins.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \margins {Macros for margins setting <2020-03-14>} % preloaded in format
+\_codedecl \margins {Macros for margins setting <2021-03-15>} % preloaded in format
\_doc ----------------------------
\`\margins``/<pg> <fmt> (<left>,<right>,<top>,<bot>)<unit>`
@@ -25,6 +25,7 @@
\_else \_if$#4$\_hoffset = #3\_tmp \_relax % only left margin
\_else \_hsize =\_dimexpr \_pgwidth - #3\_tmp - #4\_tmp \_relax % left+right margin
\_hoffset = #3\_tmp \_relax
+ \_xhsize =\_hsize \_setxhsize % \_xhsize used by \output routine
\_fi\_fi
\_if$#5$\_if$#6$\_voffset =\_dimexpr (\_pgheight -\_vsize)/2 \_relax
\_else \_voffset =\_dimexpr \_pgheight -\_vsize - #6\_tmp \_relax % only bottom margin
@@ -75,4 +76,5 @@
\_endcode % -----------------------------------------
-
+2021-03-15 \_setxhsize added
+2020-03-14 released
diff --git a/macros/luatex/optex/base/math-macros.opm b/macros/luatex/optex/base/math-macros.opm
index 6d5278d5c2..2b090ee1b8 100644
--- a/macros/luatex/optex/base/math-macros.opm
+++ b/macros/luatex/optex/base/math-macros.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \sin {Math macros plus mathchardefs <2021-02-04>} % preloaded in format
+\_codedecl \sin {Math macros plus mathchardefs <2021-02-15>} % preloaded in format
\_doc -----------------------------
The category code of the character `_` remains as the letter (11) and the mathocode
@@ -1013,7 +1013,7 @@
depending on the current math style when \^`\mathstyles` was opened.
\enditems
Example of usage of \^`\mathstyles`:
- `\def\mathframe#1{\mathstyles{\frame{$\currstyle#1$}}}`.
+ `\def\mathframe#1{\mathstyles{\frame{$\currstyle{#1}$}}}`.
\_cod -----------------------------
\_newcount\_stylenum
@@ -1044,17 +1044,26 @@
\_doc -----------------------------
The \`\mathbox``{<text>}` macro is copied from OPmac trick 078.
It behaves like `\hbox{<text>}` but the `<text>` is scaled to a smaller
- size if it is used in scriptstyle or scriptscript style.
+ size if it is used in scriptstyle or scriptscript style.\nl
+ The \^`\_textmff` and \^`\_scriptmff` are redefined in order to
+ respect optical sizes. If we are in script style then the math mode
+ starts in text style, but optical size is given to script style.
+ The `\mathbox` in non-Unicode math respects optical sizes
+ using different principle.
\_cod -----------------------------
\_def\_mathbox#1{{\_mathstyles{\_hbox{%
\_ifnum\_stylenum<2 \_everymath{\_currstyle}%
- \_else \_typoscale[\_dobystyle{}{}{700}{500}/]\_fi #1}}}%
+ \_else
+ \_ifnum\_stylenum=2 \_def\_textmff{+ssty=0;}\_fi
+ \_ifnum\_stylenum=3 \_def\_textmff{+ssty=1;}\_def\_scriptmff{+ssty=1;}\_fi
+ \_typoscale[\_dobystyle{}{}{700}{500}/]\_fi #1}}}%
}
\_public \mathbox ;
\_endcode %---------------------------------------------------
+2021-02-15 \_mathbox redefines \_textmff etc. in order to respect optical sizes
2021-02-04 \_bordermatrixwithdelims introduced.
2021-01-23 better expession for math styles in \matrix
2021-01-22 bad use of \_stylenum in \matrix + bad value (bug fix: \_stylenum->\_mtstylenum)
diff --git a/macros/luatex/optex/base/math-unicode.opm b/macros/luatex/optex/base/math-unicode.opm
index 680da012d6..96f9983380 100644
--- a/macros/luatex/optex/base/math-unicode.opm
+++ b/macros/luatex/optex/base/math-unicode.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \loadmath {Unicode Math fonts <2020-06-06>} % preloaded in format
+\_codedecl \loadmath {Unicode Math fonts <2021-03-09>} % preloaded in format
\_doc -----------------------------
\`\loadmath` `{<Unicode-math font>}` loads the given font. It does:
@@ -88,7 +88,8 @@
\_delimitershortfall=0.5\_fontdimen6\_textfont3
\_nulldelimiterspace=0.12\_fontdimen6\_textfont3
\_scriptspace=0.05\_fontdimen6\_textfont3
- {\_everymath{}\_global\_setbox0=\_hbox{$\_fam1\_displaystyle{0\_atop0}$}}% correction for \choose
+ \_begingroup % correction for \choose
+ \_everymath{}\_global\_setbox0=\_hbox{$\_fam1\_displaystyle{0\_atop0}$}\_endgroup
\_Umathfractiondelsize\_displaystyle = \_dimexpr(\_ht0-\_Umathaxis\_displaystyle)*2\_relax
}
@@ -120,7 +121,10 @@
math formulae from these three math families. All information needed by
\TeX/ is collected in single Unicode-math font.\nl
The \^`\_corrmsize` `<factor><space>` can be used just before
- `\_loadumathfamily`, see section~\ref[math-preload] for more information.
+ `\_loadumathfamily`, see section~\ref[math-preload] for more information.\nl
+ The \`\_textmff`, \`\_scriptmff` and \`\_sscriptmff` are additional font
+ features for text, script and sscript sizes respectively. They are
+ locally re-defined in \^`\mathbox` macro.
\_cod -----------------------------
\_def\_umathname#1#2{"#1:\_mfontfeatures#2"}
@@ -128,14 +132,15 @@
\_def\_loadumathfamily #1 #2#3 {%
\_edef\_optsizesave{\_the\_optsize}%
- \_optsize=\_sizemtext \_font\_mF=\_umathname{#2}{#3} at\_optsize \_textfont#1=\_mF
- \_ifnum#1=1 \_textfont2=\_mF \_textfont3=\_mF \_fi
- \_optsize=\_sizemscript \_font\_mF=\_umathname{#2}{+ssty=0;#3} at\_optsize \_scriptfont#1=\_mF
- \_ifnum#1=1 \_scriptfont2=\_mF \_scriptfont3=\_mF \_fi
- \_optsize=\_sizemsscript \_font\_mF=\_umathname{#2}{+ssty=1;#3} at\_optsize\_scriptscriptfont#1=\_mF
- \_ifnum#1=1 \_scriptscriptfont2=\_mF \_scriptscriptfont3=\_mF \_fi
+ \_optsize=\_sizemtext \_font\_mF=\_umathname{#2}{\_textmff #3} at\_optsize
+ \_textfont#1=\_mF \_ifnum#1=1 \_textfont2=\_mF \_textfont3=\_mF \_fi
+ \_optsize=\_sizemscript \_font\_mF=\_umathname{#2}{\_scriptmff #3} at\_optsize
+ \_scriptfont#1=\_mF \_ifnum#1=1 \_scriptfont2=\_mF \_scriptfont3=\_mF \_fi
+ \_optsize=\_sizemsscript \_font\_mF=\_umathname{#2}{\_sscriptmff #3} at\_optsize
+ \_scriptscriptfont#1=\_mF \_ifnum#1=1 \_scriptscriptfont2=\_mF \_scriptscriptfont3=\_mF \_fi
\_optsize=\_optsizesave \_ptmunit=\_ptunit
}
+\_def\_textmff{} \_def\_scriptmff{+ssty=0;} \_def\_sscriptmff{+ssty=1;}
\_doc -----------------------------
Unicode math font includes all typical math alphabets together, user needs not to
@@ -194,7 +199,7 @@
\_def\_greekdef#1{\_ifx#1\_relax \_else
\_begingroup \_lccode`X=\_umathnumB \_lowercase{\_endgroup \_def#1{X}}%
\_advance\_umathnumB by 1
- \_expandafter\_greekdef \_fi
+ \_ea\_greekdef \_fi
}
\_endcode
@@ -253,6 +258,9 @@ the section~\ref[math-macros].
\_endinput
+2021-03-09 \_setunimathdimes: \_begin/end/group instead {}, bug fixed
+2021-02-15 \_textmff, \_scriptmff and \_sscriptmff introduced
+2021-02-15 \_expandafter -> \_ea
2020-06-07 \Umathfractiondelsize (for \choose brackets) corrected, see https://tug.org/pipermail/luatex/2020-June/007365.html
2020-04-15 \_setmathdimens -> \_setuniathdimens
2020-02-25 implemented
diff --git a/macros/luatex/optex/base/optex.ini b/macros/luatex/optex/base/optex.ini
index 3826ccf0e1..c695b7d809 100644
--- a/macros/luatex/optex/base/optex.ini
+++ b/macros/luatex/optex/base/optex.ini
@@ -21,8 +21,9 @@
% OpTeX version
-\def\optexversion{1.00 Feb.2021}
+\def\optexversion{1.01 Mar.2021}
\def\fmtname{OpTeX}
+\let\fmtversion=\optexversion
% Engine testing:
diff --git a/macros/luatex/optex/base/optex.lua b/macros/luatex/optex/base/optex.lua
index 9bc8d6f7d8..2d83f38ed6 100644
--- a/macros/luatex/optex/base/optex.lua
+++ b/macros/luatex/optex/base/optex.lua
@@ -92,6 +92,7 @@ local callback_types = {
process_input_buffer = "data",
process_output_buffer = "data",
process_jobname = "data",
+ input_level_string = "data",
-- node list processing
contribute_filter = "simple",
@@ -141,6 +142,7 @@ local callback_types = {
-- undocumented
glyph_stream_provider = "exclusive",
+ provide_charproc_data = "exclusive",
}
--
-- Return a list containing descriptions of added callback functions for
diff --git a/macros/luatex/optex/base/outlines.opm b/macros/luatex/optex/base/outlines.opm
index ad05c97edc..6230d8988b 100644
--- a/macros/luatex/optex/base/outlines.opm
+++ b/macros/luatex/optex/base/outlines.opm
@@ -50,7 +50,7 @@
\_def\_outlinesC#1#2#3#4{\_pdfoutline goto name{#1} count #2#3{#4}\_relax}
\_newcount\_oulnum
-\_def\_insertoutline#1{\_global\_advance\_oulnum by1
+\_def\_insertoutline#1{\_incr\_oulnum
\_pdfdest name{oul:\_the\_oulnum} xyz\_relax
\_pdfunidef\_tmp{#1}%
\_pdfoutline goto name{oul:\_the\_oulnum} count0 {\_tmp}\_relax
@@ -100,3 +100,9 @@ labels are used.
It creates a link destination of the type `oul:<num>` into the document
(where \^`\insertoutline` is used) and the link itself is created too in the
outline.
+
+\endinput
+
+2021-02-15 \_advance -> \_incr
+2021-02-09 \thisoutline implemented
+2020-03-12 released
diff --git a/macros/luatex/optex/base/output.opm b/macros/luatex/optex/base/output.opm
index 8bf02af753..5bb93c2477 100644
--- a/macros/luatex/optex/base/output.opm
+++ b/macros/luatex/optex/base/output.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \nopagenumbers {Output routine <2020-03-28>} % preloaded in format
+\_codedecl \nopagenumbers {Output routine <2021-02-25>} % preloaded in format
\_doc -----------------------------
\`\_optexoutput` is the default output routine. You can create another...
@@ -38,7 +38,8 @@
(for headlines and footlines, for instance). This value is set
from the current value of `\hsize` when \`\_setxhsize` macro is called.
This macro destroys itself, so the value is set only once. Typically it is
- done when first \^`\_optexoutput` routine is called (see \^`\_begoutput`).
+ done in \^`\margins` macro or
+ when first \^`\_optexoutput` routine is called (see \^`\_begoutput`).
Or it is called at the begining of the \^`\begtt`...`\endtt` environment before
`\hsize` value is eventually changed by the user in this environment.
\_cod -----------------------------
@@ -130,7 +131,7 @@
\_def \_folio {\_ifnum\_pageno<0 \_romannumeral-\_pageno \_else \_number\_pageno \_fi}
\_def \_nopagenumbers {\_footline={}}
\_def \_advancepageno {%
- \_ifnum\_pageno<0 \_global\_advance\_pageno by-1 \_else \_incr\_pageno \_fi
+ \_ifnum\_pageno<0 \_decr\_pageno \_else \_incr\_pageno \_fi
} % increase |pageno|
\_def \_raggedbottom {\_topskip=\_dimexpr\_topskip plus60pt \_pgbottomskip=0pt plus1fil\_relax}
\_def \_normalbottom {\_topskip=\_dimexpr\_topskip \_pgbottomskip=0pt\_relax}
@@ -214,10 +215,10 @@
\_global\_let\_draftfont=\_draftfont
}
\_def \_draftbox #1{\_setbox0=\_hbox{#1}%
- \_kern.5\_vsize \_kern4.5\_wd0
- \_hbox to0pt{\_kern.5\_xhsize \_kern-1\_wd0
+ \_kern.5\_vsize \_kern\_voffset \_kern4.5\_wd0
+ \_hbox to0pt{\_kern.5\_xhsize \_kern\_hoffset \_kern-2\_wd0
\_pdfsave \_pdfrotate{55}\_pdfscale{10}{10}%
- \_hbox to0pt{\_localcolor\LightGrey \_box0\_hss}%
+ \_hbox to0pt{\_localcolor\_setgreycolor{.8}\_box0\_hss}%
\_pdfrestore
\_hss}%
}
@@ -260,5 +261,7 @@ The output routine \^`\_optexoutput` is similar as in plain \TeX. It does:
\_endinput
+2021-02-25 \_draftbox improved
+2021-02-15 \_advance -> \_decr
2020-05-12 \vfootB: \uskip -> \unskip bug fixed
2020-03-28 Released
diff --git a/macros/luatex/optex/base/prefixed.opm b/macros/luatex/optex/base/prefixed.opm
index ff6dffa20a..61df791ddb 100644
--- a/macros/luatex/optex/base/prefixed.opm
+++ b/macros/luatex/optex/base/prefixed.opm
@@ -56,7 +56,7 @@
\_def \_codedecl #1#2{%
\_ifx #1\_undefined \_wterm{#2}%
- \_else \_expandafter \_endinput \_fi
+ \_else \_ea \_endinput \_fi
}
\_def \_wterm {\_immediate \_write16 }
@@ -292,3 +292,7 @@ the \^`\load` macro is used.
The `qrcode.opm` is the first example of how an external macro file for \OpTeX/
can look like.
+\endinput
+
+2021-02-15 \_expandafter -> \_ea in \_codedecl
+2020-02-14 released
diff --git a/macros/luatex/optex/base/sections.opm b/macros/luatex/optex/base/sections.opm
index 5e50fa3b9f..39759962bf 100644
--- a/macros/luatex/optex/base/sections.opm
+++ b/macros/luatex/optex/base/sections.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \chap {Titles, chapters, sections, subsections <2021-02-09>} % preloaded in format
+\_codedecl \chap {Titles, chapters, sections, subsections <2021-03-03>} % preloaded in format
\_doc ---------------------------
We are using scaled fonts for titles
@@ -147,8 +147,8 @@
\_def \_thechapnum {\_the\_chapnum}
\_def \_thesecnum {\_othe\_chapnum.\_the\_secnum}
\_def \_theseccnum {\_othe\_chapnum.\_the\_secnum.\_the\_seccnum}
-\_def \_thetnum {\_othe\_chapnum.\_the\_secnum.\_the\_tnum}
-\_def \_thefnum {\_othe\_chapnum.\_the\_secnum.\_the\_fnum}
+\_def \_thetnum {\_othe\_chapnum.\_othe\_secnum.\_the\_tnum}
+\_def \_thefnum {\_othe\_chapnum.\_othe\_secnum.\_the\_fnum}
\_def \_thednum {(\_the\_dnum)}
\_def\_othe #1.{\_ifnum#1>0 \_the#1.\_fi}
@@ -363,12 +363,21 @@
the current language).
* \^`\_thecapnum` ... expands to `\the<letter>num` (caption number).
\enditems
+ The \`\_captionsep` inserts a separator between auto-generated
+ caption number and the following caption text. Default separator
+ is `\_enspace` but if the caption text starts with dot or colon, then
+ the space is not inserted. A user can wite `\caption/t: My table`
+ and \"{\bf Table 1.1:} My table" is printed. You can re-define
+ the \^`\_captionsep` macro if you want to use another separator.
\_cod -----------------------------
\_def \_printcaptiont {%
- \_noindent \_wlabel\_thecapnum {\_bf\_thecaptitle~\_thecapnum}\_enspace
- \_narrowlastlinecentered\_iindent
+ \_noindent \_wlabel\_thecapnum {\_bf\_thecaptitle~\_thecapnum}%
+ \_narrowlastlinecentered\_iindent \_futurelet\_next\_captionsep
}
+\_def\_captionsep{\_ifx\_next.\_ea\_bfnext \_else\_ifx\_next:\_ea\_ea\_ea\_bfnext
+ \_else \_enspace \_fi\_fi}
+\_def\_bfnext#1{{\_bf#1}}
\_let \_printcaptionf = \_printcaptiont % caption of figures = caption of tables
\_doc -----------------------------
@@ -450,6 +459,7 @@
\_endcode % -------------------------------------
+2021-03-03 \_captionsep introduced, \_othe used in \_thetnum, \_thefnum.
2021-02-09 \thisoutline implemented
2021-01-26 \_nl: \unskip added
2021-01-11 \secl introduced
diff --git a/macros/luatex/optex/base/slides.opm b/macros/luatex/optex/base/slides.opm
index 5ee4346674..94fa3afac8 100644
--- a/macros/luatex/optex/base/slides.opm
+++ b/macros/luatex/optex/base/slides.opm
@@ -1,6 +1,6 @@
% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \slideshow {Slides style for OpTeX <2021-01-16>} % loaded on demand by \slides
+\_codedecl \slideshow {Slides style for OpTeX <2021-03-10>} % loaded on demand by \slides
\_doc -----------------------------
Default margins and design is declared here.
@@ -79,7 +79,7 @@
\_newcount\_gilevel
\_def\*{*}
-\_adef*{\_startitem}
+\_adef*{\_relax\_ifmmode*\_else\_ea\_startitem\_fi}
\_sdef{_item:X}{\Blue\_raise.2ex\_fullrectangle{.8ex}\_kern.5em}
\_sdef{_item:x}{\Blue\_raise.3ex\_fullrectangle{.6ex}\_kern.4em}
\_style X
@@ -146,9 +146,10 @@
\_newbox\_slidepage \_newbox\_slidepageB
\_countdef\_slidelayer=1
-\_def\_decr#1{\_global\_advance#1 by-1 }
-\_def\_slideshow{\_slidelayer=1 \_slideshowactive \_setbox\_slidepage=\_vbox\_bgroup}
+\_def\_slideshow{\_slidelayer=1 \_slideshowactive
+ \_let\slideopen=\_relax % first wins
+ \_setbox\_slidepage=\_vbox\_bgroup\_bgroup}
\_def\_slideshowactive{%
\_sdef{_spg:;}{\_closepage \_global\_slidelayer=1 \_resetpage \_openslide}
@@ -159,11 +160,11 @@
}
\_def\_destboxslide{\_def\_destbox[##1:##2]{\_isequal{##1}{ref}\_iffalse \_destboxori[##1:##2]\_fi}}
-\_def\_openslide{\_setbox\_slidepage=\_vbox\_bgroup \_setilevel
+\_def\_openslide{\_setbox\_slidepage=\_vbox\_bgroup\_bgroup \_setilevel
\_ifvoid\_slidepage \_else \_unvbox\_slidepage \_nointerlineskip\_lastbox \_fi}
\_def\_setilevel{\_loop \_decr\_gilevel \_ifnum\_gilevel<0 \_else \_begitems \_repeat}
-\_def\_closepage{\_egroups
+\_def\_closepage{\_egroups \_egroup
\_ifnum \_maxlayers=0 \_unvcopy\_slidepage \_vfil\_break
\_else \_begingroup \_setwarnslides \_layernum=0
\_loop
@@ -202,7 +203,14 @@
\_global\_maxlayers=#1
\_setbox\_slidepageB=\_vbox\_bgroup
}
-\_public \subtit \slideshow \pg \wideformat \use \pshow \layernum ;
+\_def\_slideopen{\_let\slideshow=\_relax % first wins
+ \_sdef{_spg:;}{\_egroups\_vfil\_break \_lfnotenumreset\_bgroup \_setilevel}
+ \_sdef{_spg:.}{\_egroups\_endslides}
+ \_sdef{_spg:+}{\_egroups\_bgroup \_setilevel}
+ \_bgroup
+}
+
+\_public \subtit \slideshow \slideopen \pg \wideformat \use \pshow \layernum ;
\_doc -----------------------------
Default \`\layers` `<num>` macro (when \^`\slideshow` is not activated) is simple.
@@ -232,5 +240,8 @@
The user manual of \OpTeX/ slides are in `op-slides.tex` file.
+2021-03-10 \slideopen introduced, bug with colors in \setbox fixed
+2021-03-10 \ifmmode* added to \adef*
+2021-02-15 \_def\_decr removed
2021-01-16 \layers at empty page raises error: problem fixed
2020-03-19 slides introduced
diff --git a/macros/luatex/optex/base/styles.opm b/macros/luatex/optex/base/styles.opm
index 8df96f795d..534eb13663 100644
--- a/macros/luatex/optex/base/styles.opm
+++ b/macros/luatex/optex/base/styles.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \report {Basic styles of OpTeX <2020-03-28>} % preloaded in format
+\_codedecl \report {Basic styles of OpTeX <2021-03-10>} % preloaded in format
\_doc -----------------------------
We define auxiliary macro first (used by the \^`\address` macro)
@@ -61,7 +61,7 @@
\_def\_slides{\_par
\_opinput{slides.opm}
- \_adef*{\_startitem}
+ \_adef*{\_relax\_ifmmode*\_else\_ea\_startitem\_fi}
}
\_public \slides ;
@@ -114,3 +114,7 @@ S úctou
\endtt %---------------------------------------------------------------------
+\endinput
+
+2021-03-10 \ifmmode* added to \adef*
+2020-03-28 released
diff --git a/macros/luatex/optex/base/table.opm b/macros/luatex/optex/base/table.opm
index d6edaff20f..a4a6511958 100644
--- a/macros/luatex/optex/base/table.opm
+++ b/macros/luatex/optex/base/table.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \table {Basic macros for OpTeX <2021-01-27>} % preloaded in format
+\_codedecl \table {Basic macros for OpTeX <2021-03-09>} % preloaded in format
\_doc -----------------------------
The result of the \`\table``{<declaration>}{<data>}` macro is inserted into
@@ -101,7 +101,7 @@
\_replstring\_tmpb{\crlp}{\_crcr\crlp}%
\_edef\_tabskipmid{\_the\_tabskip}\_tabskip=\_tabskipl
\_ifpxto
- \_tsize=\_hsize \_setbox0 = \_vbox{\_halign \_tableC}%
+ \_tsize=\_hsize \_setbox0 = \_vbox{\_tablepxpreset \_halign \_tableC}%
\_tsize=\_dimexpr\_hsize-(\_wd0-\_tmpdim)\_relax
\_setbox0=\_null \_halign \_tableC
\_else
@@ -111,8 +111,9 @@
\_def\_tableC{\_ea{\_ea\_bgroup\_the\_tabdata\_egroup\_tabskip=\_tabskipr\_cr
\_scantextokens\_ea{\_tmpb\_crcr}}}
-\_newbox\_tstrutbox % strut used in table rows
-\_newtoks\_tabdata % the \halign declaration line
+\_def\_tablepxpreset{} % can be used to de-activate references to .ref file
+\_newbox\_tstrutbox % strut used in table rows
+\_newtoks\_tabdata % the \halign declaration line
\_doc -----------------------------
The \`\_scantabdata` macro converts `\table`'s `<declaration>` to
@@ -261,11 +262,11 @@
\_def\_tablinefil{\_leaders\_hrule\_hfil}
\_def\_crlp#1{\_crcr \_zerotabrule \_noalign{\_kern-\_drulewidth}%
- \_omit \_xdef\_crlplist{#1}\_xdef\_crlplist{,\_expandafter}\_expandafter\_crlpA\_crlplist,\_end,%
+ \_omit \_xdef\_crlplist{#1}\_xdef\_crlplist{,\_ea}\_ea\_crlpA\_crlplist,\_end,%
\_global\_tmpnum=0 \_gdef\_dditem{\_omit\_crlpD}%
\_gdef\_vvitem{\_kern\_vvkern\_kern\_drulewidth}\_gdef\_vvitemA{\_kern\_drulewidth}%
\_vvleft\_crlpD\_ddlinedata \_global\_tmpnum=0 \_crcr \_zerotabrule}
-\_def\_crlpA#1,{\_ifx\_end#1\_else \_crlpB#1-\_end,\_expandafter\_crlpA\_fi}
+\_def\_crlpA#1,{\_ifx\_end#1\_else \_crlpB#1-\_end,\_ea\_crlpA\_fi}
\_def\_crlpB#1#2-#3,{\_ifx\_end#3\_xdef\_crlplist{\_crlplist#1#2,}\_else\_crlpC#1#2-#3,\_fi}
\_def\_crlpC#1-#2-#3,{\_tmpnum=#1\_relax
\_loop \_xdef\_crlplist{\_crlplist\_the\_tmpnum,}\_ifnum\_tmpnum<#2\_advance\_tmpnum by1 \_repeat}
@@ -511,6 +512,8 @@ after the second one.
\_endinput
+2021-03-09 \_tablepxpreset introduced
+2021-02-15 \_expandafter -> \_ea
2021-01-27 \_tableB: \long\def added, \vspan syntax improved
2020-05-26 \eqbox implemented
2020-05-20 \colnum implemented.
diff --git a/macros/luatex/optex/base/unimath-codes.opm b/macros/luatex/optex/base/unimath-codes.opm
index a52a9a02cb..6e83ab94ad 100644
--- a/macros/luatex/optex/base/unimath-codes.opm
+++ b/macros/luatex/optex/base/unimath-codes.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_ncharrmA {Uni math codes <2021-02-03>} % preloaded on demand by \loadmath
+\_codedecl \_ncharrmA {Uni math codes <2021-03-11>} % preloaded on demand by \loadmath
\_doc -----------------------------
The control sequences for `\alpha`, `\beta` etc are redefined here.
@@ -204,6 +204,8 @@
\_Umathcode `? = 5 1 `? % keep plain.tex declaration
\_Umathchardef \mathquestion = 5 1 `?
+\_Umathcode `* = 2 1 "02217 % equivalent to \ast, like in plain TeX
+
\_protected\_def \_sqrt {\_Uradical 1 "0221A }
\_protected\_def \_cuberoot {\_Uradical 1 "0221B }
\_protected\_def \_fourthroot {\_Uradical 1 "0221C }
@@ -425,6 +427,7 @@ for technical details about Unicode-math.
\_endinput
History:
+2021-03-11 Umathcode `* declaed as \ast
2021-02-03 Unicode superscripts, subscripts declared
2021-01-31 Mathcode of ! ? set to Close, codes undeclared in mathclass set correctly
2021-01-23 Compressed \vdots, \ddots, \adots in script(script)style.
diff --git a/macros/luatex/optex/base/usebib.opm b/macros/luatex/optex/base/usebib.opm
index fbf4300356..f37d21b315 100644
--- a/macros/luatex/optex/base/usebib.opm
+++ b/macros/luatex/optex/base/usebib.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \MakeReference {Reading bib databases <2020-03-13>} % loaded on demand by \usebib
+\_codedecl \MakeReference {Reading bib databases <2021-03-12>} % loaded on demand by \usebib
\_doc -----------------------------
Loading the `librarian.tex` macro package. See `texdoc librarian`
@@ -24,6 +24,8 @@
\_cod -----------------------------
\_def\_usebib/#1 (#2) #3 {%
+ \_let\_citeI=\_relax \_xdef\_citelist{\_citelist\_citelistB}%
+ \_global\_let\_addcitelist=\_writeXcite
\_ifx\_citelist\_empty
\_opwarning{No cited items. \_noexpand\usebib ignored}%
\_else
@@ -40,13 +42,11 @@
"\_cs{_lan:\_the\_language}" (using "en")}%
\_language=0 \_chardef\_documentlanguage=0
\_fi
- \_let\_citeI=\_relax \_xdef\_citelist{\_citelist\_citelistB}%
- \_global\_let\_addcitelist=\_writeXcite
- \_def\_tmp##1[*]##2\_relax{\_def\_tmp{##2}}\_expandafter\_tmp\_citelist[*]\_relax
+ \_def\_tmp##1[*]##2\_relax{\_def\_tmp{##2}}\_ea\_tmp\_citelist[*]\_relax
\_ifx\_tmp\_empty\_else % there was \nocite[*] used.
\_setbox0=\_vbox{\_hsize=\_maxdimen \_def\_citelist{}\_adef@{\_readbibentry}%
\_input #3.bib
- \_expandafter}\_expandafter\_def\_expandafter\_citelist\_expandafter{\_citelist}%
+ \_ea}\_ea\_def\_ea\_citelist\_ea{\_citelist}%
\_fi
\_def\_citeI[##1]{\_csname lb@cite\_endcsname{##1}{\_bibpart}{}{}}\_citelist
\_BibFile{#3}%
@@ -370,6 +370,8 @@ character is sorted before `A`.
History:
--------
+2021-03-12 \_citelistB added before first test.
+2021-02-15 \_expandafter -> \_ea
Apr. 2014: released in OPmac
Jan. 2016: "first entry wins" implemented
Apr. 2016: \readentry -> \readbibentry, \usebib->\MakeReference
diff --git a/macros/luatex/optex/demo/op-slides.tex b/macros/luatex/optex/demo/op-slides.tex
index 45b65fb657..50bcdaffa6 100644
--- a/macros/luatex/optex/demo/op-slides.tex
+++ b/macros/luatex/optex/demo/op-slides.tex
@@ -149,19 +149,52 @@ The previous page was created by:
\pg; %------------------------------------------------------------------
-\sec Notes
+\sec Notes to `\slideshow`
* When `\slideshow` is active then you cannot reference sections by
hyperlinked `\ref`. Only `\pgref` works (and goes to the last layer
of the referenced page).
* If the text overfull the page (slide) then it follows to the next page without
saying explicitly `\pg;`. But `\slideshow` cannot work in this case.\pg+
+* If `\slideshow` then each part of page between two `\pg`'s or between
+ `\slideshow` and the first `\pg` is processed in a local group.
+* If not `\slideshow` then the document is not separated to groups.
+ This can lead to different results. So, you can put `\slideopen` command
+ instead of `\slideshow`. Then local groups are opened exactly as when
+ `\slideshow` is used but `\slideshow` is not activated. Example:
+
+\begtt
+\slides
+\def\foo...{...} % global definitions.
+%\slideshow % printing version, no slide show.
+\slideopen % opens group for first page.
+... first page
+\pg; % closes group and opens group for second page.
+... second page
+\pg. % closes group of the last page.
+\endtt
+
+\pg; %------------------------------------------------------------------
\sec More about design
* You can use `\backgroundpic{<image-file>}` for putting an image to the background.
* You can re-declare `\footline` or re-define internal macros for design as
you wish.
+* The TeXGyre Heros font is used as default text font, the FiraMath is used
+ for math.
+* If you want to use another text font fmaily, use `\fontfam`
+ {\em before} `\slides` command.
+* If you want to use different math font, use
+ `\loadmath{[font]}` before `\fontfam` (if used) and before `\slides`. For example:
+
+\begtt
+\loadmath{[Asana-Math]} % Math font: Asana
+\fontfam[Termes] % Text font: Termes
+\slides
+...
+\endtt
+
* You can put the images or text wherever using `\putimege` or `\puttext`
macros...
@@ -272,8 +305,8 @@ are prepared for Beamer, {\bf\Red but}
You can concentrate on the contents of your document, not on the
programming syntax.\pg+
* User needs to read 250 pages of doc for understanding Beamer,\pg+
-* on the other hand, you need to read only ten
- slides\fnote{this eleventh slide isn't counted}
+* on the other hand, you need to read only eleven
+ slides\fnote{this twelfth slide isn't counted}
and you are ready to use {\bf\Blue\OpTeX/ slides}.
\pg; %------------------------------------------------------------------
diff --git a/macros/luatex/optex/doc/omls.tex b/macros/luatex/optex/doc/omls.tex
index f161f151d7..bcc5749a51 100644
--- a/macros/luatex/optex/doc/omls.tex
+++ b/macros/luatex/optex/doc/omls.tex
@@ -457,7 +457,7 @@ output of the \LaTeX/ source file.
* `\,` \: should be small space or space.
* \.`\quad`, \.`\qquad` \: should be bigger space or more spaces.
* \.`\-`, \.`\/` \: should be ignored.
-* \.`\"<text>"` or \.`\'<text>'` \: `<clqq><text><crqq>` or `<clq><text><crq>`,
+* \.`\"<text>"` or \.`\'<text>'` \: `<qql><text><qqr>` or `<ql><text><qr>`,
only if `%%:quotes` are set.
\enditems
@@ -588,7 +588,7 @@ Code blocks are inline verbatim or display verbatim.
\enditems
-\secc Multiclolumns
+\secc Multicolumns
\.`\begmulti <number><space>` opens the group and \.`\endmulti`
closes the group. If output format allows multi-columns then
diff --git a/macros/luatex/optex/doc/optex-doc.pdf b/macros/luatex/optex/doc/optex-doc.pdf
index 4bd55547cb..a4df4f013a 100644
--- a/macros/luatex/optex/doc/optex-doc.pdf
+++ b/macros/luatex/optex/doc/optex-doc.pdf
Binary files differ
diff --git a/macros/luatex/optex/doc/optex-doc.tex b/macros/luatex/optex/doc/optex-doc.tex
index f8fcc45ca0..9f2fadeeb4 100644
--- a/macros/luatex/optex/doc/optex-doc.tex
+++ b/macros/luatex/optex/doc/optex-doc.tex
@@ -20,7 +20,7 @@
\tit Format Based on Plain \TeX/ and OPmac\fnotemark1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hfill Version 1.00
+\hfill Version 1.01
\centerline{\it Petr Olšák, 2020, 2021}
diff --git a/macros/luatex/optex/doc/optex-math.tex b/macros/luatex/optex/doc/optex-math.tex
index 2fd21af218..789dd5a187 100644
--- a/macros/luatex/optex/doc/optex-math.tex
+++ b/macros/luatex/optex/doc/optex-math.tex
@@ -740,6 +740,12 @@ For example, this document loads `latimodern-math.otf` font.
And the result from `\input print-unimath.opm` looks like the following ten
pages.
+Unsupported characters can be replaced by characters from other Unicode math
+font, see
+\ulink[http://petr.olsak.net/optex/optex-tricks.html\#addumathfont]{OpTeX trick 0030}
+or section~\ref[newfam].
+
+
\label[listA]\wlabel{}
\bigskip
diff --git a/macros/luatex/optex/doc/optex-userdoc.tex b/macros/luatex/optex/doc/optex-userdoc.tex
index 899b1d55aa..a70cedcf4d 100644
--- a/macros/luatex/optex/doc/optex-userdoc.tex
+++ b/macros/luatex/optex/doc/optex-userdoc.tex
@@ -1709,7 +1709,7 @@ to more files (with individual chapters or sections), use simply the `\input` pr
The macro packages intended to \OpTeX/ have the name `*.opm`.
The following packages are distributed as part of \OpTeX/:
\begitems
-* `qrcodes.opm` enables to create QR codes.
+* `qrcode.opm` enables to create QR codes.
* `vlna.opm` enables to protect of one-letter prepositions and more things automatically.
* `emoji.opm` defines `\emoji{<name>}` command for colored emoticons.
* `plain-at.opm` defines the old names from plain \TeX/.