使用 tabluar 的 RTL

使用 tabluar 的 RTL

这是一个关于赛莱特,尽管我在这里提到了 LyX。

我的目标是制作一个一行两列的 RTL 表,看起来或多或少像这样:

                                                                      +---+---+
                                                                      | 2 | 1 |
                                                                      +---+---+

我尝试在 LyX 中制作它,然后导出到 XeTeX 并得到以下代码:

%% LyX 2.0.8.1 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english,hebrew]{article}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{David CLM}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}

\makeatother

\usepackage{xunicode}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\begin{document}
\begin{tabular}{|c|c|}
\hline 
{\beginL 2\endL} & {\beginL 1\endL}\tabularnewline
\hline 
\end{tabular}
\end{document}

看起来似乎相反,事实上,当使用赛莱特我得到一个相反的表:

                                                                      +---+---+
                                                                      | 1 | 2 |
                                                                      +---+---+

所以我发现这是一个LyX 错误,但在“解决”之前,LyX 人员希望确定正确的 XeTeX 代码应该是什么。是否如我所想的那样,只是列切换了?或者也许那里有其他问题?

答案1

通过编写,\setdefaultlanguage{hebrew}您可以默认将整个文档设置为从右到左,这也会影响表格列的顺序。这与bidi加载的包有关polyglossia。顺便说一句,使用这些包时不需要命令\beginL和。\endL

因此,LyX 应在 RTL 模式下产生相反的列顺序。另请注意,如果您加载,polyglossia则无需fontspec加载xunicode

因此代码应该如下:

\documentclass[english,hebrew]{article}
\usepackage{polyglossia}
\setmainfont[Mapping=tex-text]{David CLM}

\providecommand{\tabularnewline}{\\}

\setdefaultlanguage{hebrew}
\setotherlanguage{english}


\begin{document}
\begin{tabular}{|c|c|}
\hline 
1 & 2 \tabularnewline
\hline 
\end{tabular}
\end{document}

答案2

简单的方法是:

像这样写你的表格

                                                                      +---+---+
                                                                  | 1 | 2 |
                                                                  +---+---+

生成 pdf 后您将获得:

                                                                      +---+---+
                                                                  | 2 | 1 |
                                                                  +---+---+

我一直都在用这个想法。

相关内容