summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hvarabic/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-06-11 03:02:13 +0000
committerNorbert Preining <norbert@preining.info>2020-06-11 03:02:13 +0000
commite3a95d205140a9c1ec8bc34f9a6125d8074f5e58 (patch)
tree9c905c13b24fc43e1645387b937d7a8af3dd4f51 /macros/latex/contrib/hvarabic/latex
parent6706ba0fbc0ef5a672ef0ccb05bd75174a30bb07 (diff)
CTAN sync 202006110302
Diffstat (limited to 'macros/latex/contrib/hvarabic/latex')
-rw-r--r--macros/latex/contrib/hvarabic/latex/hvarabic.sty66
1 files changed, 66 insertions, 0 deletions
diff --git a/macros/latex/contrib/hvarabic/latex/hvarabic.sty b/macros/latex/contrib/hvarabic/latex/hvarabic.sty
new file mode 100644
index 0000000000..e1d00bacd0
--- /dev/null
+++ b/macros/latex/contrib/hvarabic/latex/hvarabic.sty
@@ -0,0 +1,66 @@
+%% This is file `hvarabic.sty',
+%%
+%% Copyright (C) 2020
+%% Herbert Voss <hvoss@tug.org>
+%%
+%% 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.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%
+% -------------------------------------
+\ProvidesPackage{hvarabic}[2020/06/08 v. 0.01 define macros for RTL typesetting (hv)]
+%
+\RequirePackage{iftex}
+\iftutex
+\else
+ \ExplSyntaxOn
+ \msg_new:nnn {unitconv} {need-lualatex}
+ {
+ The~ hvarabic~ package~ requires~ LuaLaTeX or XeLaTeX.\\\\
+ You~ must~ change~ your~ typesetting~ engine~ to,~
+ "lualatex/xelatex" instead~ of~ "latex", or ~"pdflatex".
+ }
+ \msg_fatal:nn {unitconv} {need-lualatex/xelatex}
+ \ExpSyntaxOff
+ \endinput
+\fi
+
+\RequirePackage{xkeyval,fontspec}
+
+\newif\ifhv@RTLfootnoterule \hv@RTLfootnoterulefalse
+\DeclareOptionX{RTLfootnoterule}[true]{\@nameuse{hv@RTLfootnoterule#1}}
+%
+\ProcessOptionsX\relax
+
+\providefontface\RTLfont
+ [Script=Arabic, % to get correct arabic shaping
+ Scale=1.2]{Scheherazade} % whatever Arabic font you like
+\newfontfamily\hvALM{ALM Fixed}[Scale=0.85]
+\newcommand\textRTL[1]{\bgroup\textdir TRT\RTLfont #1\egroup}% Arabic inside LTR
+\newcommand\nLTR[1]{\bgroup\textdir TLT #1\egroup}% for digits inside Arabic text
+\newcommand\RTLfootnote[1]{\footnote{\textRTL{#1}}}% Arabic footnotes
+
+\ifhv@RTLfootnoterule
+ \newenvironment{RTL}
+ % Arabic paragraph
+ {\setRTLfootnoterule\textdir TRT\pardir TRT\RTLfont}
+ {\setLTRfootnoterule}
+\else
+ \newenvironment{RTL}
+ % Arabic paragraph
+ {\textdir TRT\pardir TRT\RTLfont}
+ {}
+\fi
+\def\setLTRfootnoterule{\let\LTRfootnoterule\footnoterule}
+\def\setRTLfootnoterule{%
+ \global\let\LTRfootnoterule=\footnoterule
+ \gdef\footnoterule{\noindent\parbox{\textwidth}{\hfill\vbox{\LTRfootnoterule}}}}
+
+\def\setRTL{\par\textdir TRT\pardir TRT}
+\def\setLTR{\par\textdir TLT\pardir TLT}
+\endinput
+