diff options
author | Norbert Preining <norbert@preining.info> | 2021-03-19 03:00:56 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-03-19 03:00:56 +0000 |
commit | 6ad1cf68ae6add67e56faf5ec4390fead04e31b4 (patch) | |
tree | ac6239e221ac7bcc6d69b6cbc1d7736f60d19a00 /macros/luatex | |
parent | ca17f652236af2ce3a16cb0125fb6e190d59cc17 (diff) |
CTAN sync 202103190300
Diffstat (limited to 'macros/luatex')
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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex a868e5e6ef..f87859a29d 100644 --- a/macros/luatex/latex/lua-ul/lua-ul.pdf +++ b/macros/luatex/latex/lua-ul/lua-ul.pdf 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 Binary files differindex 4bd55547cb..a4df4f013a 100644 --- a/macros/luatex/optex/doc/optex-doc.pdf +++ b/macros/luatex/optex/doc/optex-doc.pdf 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/. |