longtable 包:拉伸“RTL 文档”页面最后一行的高度

longtable 包:拉伸“RTL 文档”页面最后一行的高度

我看了看这个很好的答案longtable 包:拉伸页面最后一行的高度我需要在我的阿拉伯文档(从右到左的文档)中应用这个答案。

在 RTL 上下文中无法获得相同输出的问题(表格未拉伸)

\documentclass[12pt]{article}
\usepackage[showframe,margin=2cm]{geometry}
\usepackage{longtable}
\usepackage{fontspec}
\usepackage{bidi}
\setmainfont[Script=Arabic]{Amiri}

\makeatletter
\def\zz#1{%
\pdfsavepos\write\@auxout{%
\gdef\expandafter\string\csname zz@#1\endcsname{%
 \string\\[\the\dimexpr\the\pdflastypos sp -80pt\relax]}}%
\expandafter\ifx\csname zz@#1\endcsname\relax
\expandafter\\%
\else
\csname zz@#1\expandafter\endcsname
\fi}
\makeatother

\begin{document}

%\setRTL

\begin{longtable}{|p{5cm}|}
\hline
a  \zz{c} \hline
\end{longtable}

\end{document}

RTL 上下文

在此处输入图片描述

LTR 上下文

在此处输入图片描述

答案1

有趣的是,似乎你需要把它放在\pdfsavepos后面而\write不是前面(按输入文件顺序)

\documentclass[12pt]{article}
\usepackage[showframe,margin=2cm]{geometry}
\usepackage{longtable}
\usepackage{fontspec}
\usepackage{bidi}
\setmainfont[Script=Arabic]{FreeSerif}

\makeatletter
\def\zz#1{%
\write\@auxout{%
\gdef\expandafter\string\csname zz@#1\endcsname{%
 \string\\[\the\dimexpr\the\pdflastypos sp -80pt\relax]}}\pdfsavepos%
\expandafter\ifx\csname zz@#1\endcsname\relax
\expandafter\\%
\else
\csname zz@#1\expandafter\endcsname
\fi}
\makeatother

\begin{document}

\setRTL

\begin{longtable}{|p{5cm}|}
\hline
a  \zz{c} \hline
\end{longtable}

\end{document}

相关内容