From b35f3408669be630e54e72ffa92a8757287ea2ba Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 28 May 2013 22:18:34 +0000 Subject: luabidi (28may13) git-svn-id: svn://tug.org/texlive/trunk@30790 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/lualatex/luabidi/README | 4 + Master/texmf-dist/doc/lualatex/luabidi/test.tex | 13 +++ .../texmf-dist/tex/lualatex/luabidi/arabmaths.tex | 2 + .../tex/lualatex/luabidi/autofootnoterule.tex | 116 +++++++++++++++++++++ Master/texmf-dist/tex/lualatex/luabidi/luabidi.sty | 56 ++++++++++ .../tex/lualatex/luabidi/textwidthfootnoterule.tex | 2 + Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/bin/tlpkginfo | 8 +- Master/tlpkg/tlpsrc/collection-luatex.tlpsrc | 1 + Master/tlpkg/tlpsrc/luabidi.tlpsrc | 0 10 files changed, 199 insertions(+), 5 deletions(-) create mode 100644 Master/texmf-dist/doc/lualatex/luabidi/README create mode 100644 Master/texmf-dist/doc/lualatex/luabidi/test.tex create mode 100644 Master/texmf-dist/tex/lualatex/luabidi/arabmaths.tex create mode 100644 Master/texmf-dist/tex/lualatex/luabidi/autofootnoterule.tex create mode 100644 Master/texmf-dist/tex/lualatex/luabidi/luabidi.sty create mode 100644 Master/texmf-dist/tex/lualatex/luabidi/textwidthfootnoterule.tex create mode 100644 Master/tlpkg/tlpsrc/luabidi.tlpsrc diff --git a/Master/texmf-dist/doc/lualatex/luabidi/README b/Master/texmf-dist/doc/lualatex/luabidi/README new file mode 100644 index 00000000000..0c784be245d --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/luabidi/README @@ -0,0 +1,4 @@ +Luabidi is an attempt to offer the same functionality for LuaTeX as bidi +does for XeTeX. + +Copyright (c) Vafa Khalighi 2009, and Arthur Reutenauer 2013 diff --git a/Master/texmf-dist/doc/lualatex/luabidi/test.tex b/Master/texmf-dist/doc/lualatex/luabidi/test.tex new file mode 100644 index 00000000000..1b51109ad46 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/luabidi/test.tex @@ -0,0 +1,13 @@ +\documentclass[12pt]{article} +\usepackage[arabmaths]{luabidi} +\begin{document} +\setRTLmain +\section{ghesmate 1} + +in yek ghesmat ast ke an ra dar inja minevisam + +\begin{equation} +1+2=3 +\end{equation} +in ham dobare masalei ast ke man minevisam va shoma an ra mibinid. +\end{document} diff --git a/Master/texmf-dist/tex/lualatex/luabidi/arabmaths.tex b/Master/texmf-dist/tex/lualatex/luabidi/arabmaths.tex new file mode 100644 index 00000000000..f62f4dc35e9 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/luabidi/arabmaths.tex @@ -0,0 +1,2 @@ +\luatexmathdir TRT +\def\@eqnnum{{\normalfont \normalcolor \luatextextdir TLT ({\luatextextdir TRT\theequation})}} diff --git a/Master/texmf-dist/tex/lualatex/luabidi/autofootnoterule.tex b/Master/texmf-dist/tex/lualatex/luabidi/autofootnoterule.tex new file mode 100644 index 00000000000..a1211cb10fc --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/luabidi/autofootnoterule.tex @@ -0,0 +1,116 @@ +\ifx \CatEscape\undefined + \chardef\CatEscape=0 + \chardef\CatOpen=1 + \chardef\CatClose=2 + \chardef\CatIgnore=9 + \chardef\CatLetter=11 + \chardef\CatOther=12 + \chardef\CatActive=13 % is defined in Plain already + + \chardef\CatUsCode=\catcode`\_ +\fi + +\catcode`\_=\CatLetter % top level macro file + + +\def\l@fn{% + \hbox to \columnwidth + {\luatexpagedir TLT\vbox{\kern -3\p@ + \hrule width .4\columnwidth \kern2.6\p@}\hfil}} +\def\r@fn{% + \hrule width .4\columnwidth\kern 2.6\p@} + + +\def\@makefnmark{\hbox{$^{\hbox{\scriptsize\@thefnmark}}\m@th$}} + + +\def\leftfootnoterule{\global\def\footnoterule{\l@fn}} +\def\rightfootnoterule{\global\def\footnoterule{\r@fn}} +\leftfootnoterule + +%%% \beginprog +\newread\old_foot_file +\newwrite\foot_file +\def\foot_file_name{\jobname.fot\relax} +\def\init_footnote{% + \openin\old_foot_file\foot_file_name + \ifeof\old_foot_file \closein\old_foot_file + \else \closein\old_foot_file + \read_foot_file + \fi + \immediate\openout\foot_file\foot_file_name + \immediate\write\foot_file{\relax}% + \global\let\init_footnote\relax + } + +\newcount\foot_name_no % for generating footnote mark names + + + + + +\newcount\autofootnote +\def\fnpp_next_footnote{% + \init_footnote + \global\advance\foot_name_no\@ne + \global\advance\c@footnote\@ne + \edef\do_write{% + \immediate\write\foot_file{% + \string\advance\autofootnote\@ne + \string\expandafter\xdef + \string\csname\space f@\number\foot_name_no \endcsname{% + \string\number\autofootnote + }% + }% + }% + \do_write + \global\autofootnote 0\csname f@\number\foot_name_no \endcsname \relax + } + +\def\read_foot_file{% + \begingroup + \catcode`\@\CatLetter \catcode`\^^M\CatIgnore + \input \foot_file_name + \endgroup + } + +\let\fnpp_orig_outputpage=\@outputpage +\def\@outputpage{% + \ifx \init_footnote\relax + \immediate\write\foot_file{\autofootnote\z@}% + \fi + \fnpp_orig_outputpage + } + +\let\FnppOrigFootnote=\footnote % save original bindings +\let\FnppOrigFootnotemark=\footnotemark + +\def\footnote{% + \@ifnextchar[% % ] (Emacs) + \@xfootnote + {\fnpp_next_footnote \ifnum\autofootnote=1\rightfootnoterule\fi \@xfootnote[\the\c@footnote] % +}% + } +\def\footnotemark{% + \@ifnextchar[% % ] (Emacs) + \@xfootnotemark + {\fnpp_next_footnote \ifnum\autofootnote=1\rightfootnoterule\fi \@xfootnotemark[\the\c@footnote]}% + } + + + + +\def\footnotemarkLR{% + \@ifnextchar[% % ] (Emacs) + \@xfootnotemark + {\fnpp_next_footnote \ifnum\autofootnote=1\leftfootnoterule\fi\@xfootnotemark[\the\c@footnote]}% + } + + +\def\Footnote#1{% +\begingroup +\footnotemarkLR% +\renewcommand{\thefootnote}{\@arabic\c@footnote}% +\luatexpardir TLT \luatextextdir TLT\footnotetext{#1}% +\endgroup +} diff --git a/Master/texmf-dist/tex/lualatex/luabidi/luabidi.sty b/Master/texmf-dist/tex/lualatex/luabidi/luabidi.sty new file mode 100644 index 00000000000..ca8b47cca1c --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/luabidi/luabidi.sty @@ -0,0 +1,56 @@ +%% This file is luabidi.sty +%% +%% Copyright © 2009 Vafa Khalighi, 2013 Arthur Reutenauer +%% +%%%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{luabidi}[2013/05/27 v0.2 + Bidirectional typesetting in LuaTeX] +\newif\if@RTL +\newif\if@RTLmain +\def\setRTLmain{\luatexpagedir TRT \luatexbodydir TRT \luatexpardir TRT \luatextextdir TRT} +\def\setRTL{\@RTLtrue\luatexpardir TRT \luatextextdir TRT} +\let\setRL=\setRTL +\def\setLTR{\@RTLfalse\luatexpardir TLT \luatextextdir TLT} +\let\setLR=\setLTR +\let\unsetRTL=\setLTR +\let\unsetLTR=\setRTL +\def\RTL{\@RTLtrue\trivlist \luatexpardir TRT \luatextextdir TRT\item\relax} +\def\endRTL{\@RTLfalse\endtrivlist} +\def\LTR{\trivlist \luatexpardir TLT \luatextextdir TLT\item\relax} +\def\endLTR{\endtrivlist} +\def\@ensure@RTL#1{\if@RTL#1\else\RLE{#1}\fi} +\def\@ensure@LTR#1{\if@RTL#1\else\LRE{#1}\fi} +\def\@ensure@dir#1{\if@RTL\RLE{#1}\else{#1}\fi} +\let\@ensure@maindir=\@ensuredir +\@RTLmainfalse +\DeclareOption{arabmaths}{\input{arabmaths}} +\DeclareOption{textwidthfootnoterule}{\input{textwidthfootnoterule}} +\let\n@xt=\ +\DeclareRobustCommand*\LRE{\protect\pLRE} +\def\pLRE{\protect\afterassignment\moreLRE \let\n@xt= } +\DeclareRobustCommand*\RLE{\protect\pRLE} +\def\pRLE{\protect\afterassignment\moreRLE \let\n@xt= } +\def\bracetext{\ifcat\n@xt{\else\ifcat\n@xt}\fi + \errmessage{Missing left brace has been substituted}\fi \bgroup} +\def\moreLRE{\bracetext \aftergroup\unsetLTR \setLTR\@RTLfalse} +\def\moreRLE{\bracetext \aftergroup\unsetRTL \setRTL\@RTLtrue} +\let\LR=\LRE +\let\RL=\RLE + +\def\Footnote#1{% +\begingroup +\footnotemark +\renewcommand{\thefootnote}{\@arabic\c@footnote}% +\luatexpardir TLT \luatextextdir TLT\footnotetext{#1}% +\endgroup +} + +\DeclareOption{autofootnoterule}{\input{autofootnoterule}} + + + +\ProcessOptions +\endinput diff --git a/Master/texmf-dist/tex/lualatex/luabidi/textwidthfootnoterule.tex b/Master/texmf-dist/tex/lualatex/luabidi/textwidthfootnoterule.tex new file mode 100644 index 00000000000..7fc71e0cefc --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/luabidi/textwidthfootnoterule.tex @@ -0,0 +1,2 @@ +\def\footnoterule{\kern-3\p@ + \hrule \@width \textwidth \kern 2.6\p@} diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index f1809167406..a123616c2fc 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -279,7 +279,7 @@ my @TLP_working = qw( lshort-vietnamese lstaddons ltablex ltabptch ltxdockit ltxfileinfo ltxindex ltxkeys ltxmisc ltxnew ltxtools lua-alt-getopt lua-check-hyphen lua-visual-debug - lua2dox luabibentry luacode + lua2dox luabibentry luabidi luacode luaindex luainputenc luaintro lualatex-doc lualatex-doc-de lualatex-math lualibs luamplib luaotfload diff --git a/Master/tlpkg/bin/tlpkginfo b/Master/tlpkg/bin/tlpkginfo index 3b97472c74a..2e515959eb2 100755 --- a/Master/tlpkg/bin/tlpkginfo +++ b/Master/tlpkg/bin/tlpkginfo @@ -98,14 +98,14 @@ sub find_ctan_dir { "macros/latex/contrib/powerdot/contrib/$me_wo_powerdot", # powerdot-doc-vn "macros/latex/exptl/$me", # semioneside "macros/latex/required/$me", # babel - "macros/plain/$me", # plnfss - "macros/plain/contrib/$me", # timetable - "macros/context/contrib/$me", # context "macros/xetex/latex/$me", # xetex "macros/xetex/generic/$me", # harvardkyoto + "macros/plain/$me", # plnfss + "macros/plain/contrib/$me", # timetable + "macros/luatex/latex/$me", # luabidi "macros/generic/$me", # abbr "macros/generic/diagrams/$me", # circ - "macros/$me", # eplain + "macros/context/contrib/$me", # context "support/$me", # thumbpdf "support/$me_wo_bin", # bin-thumbpdf "language/vietnamese/$me/unpacked", # vntex diff --git a/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc b/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc index 918fcf0a4c7..c04add6c1ca 100644 --- a/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc @@ -13,6 +13,7 @@ depend lua-check-hyphen depend lua-visual-debug depend lua2dox depend luabibentry +depend luabidi depend luacode depend luaindex depend luainputenc diff --git a/Master/tlpkg/tlpsrc/luabidi.tlpsrc b/Master/tlpkg/tlpsrc/luabidi.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.3