2015-11-21 63 views
0

在大多数语言中,书籍是使用左侧的装订制成的。封面是右侧页面,页面展开由左侧的偶数页面和右侧的奇数页面组成。当您按顺序阅读本书时,将页面向左翻页。从右到左语言的页面顺序(阿拉伯语,希伯来语)

在从右到左(RTL)语言中,这是相反的:书籍是使用右侧的绑定制作的。封面是左侧页面,页面传播由右侧的偶数页面和左侧的奇数页面组成。当您按顺序阅读本书时,会将页面向右翻页。

我创建了一个将用于多种语言的FO模板。我用写模式属性来支持RTL语言。

根据这一RenderX tutorial:

写作模式属性定义了文档组织的各个方面:装订边,在表列排序,以块文本对齐方式等

但我我们发现这对于Antennahouse来说并不完全正确(6.1)。 文本对齐和列排序都正常工作,但绑定边缘未完全实现。页面顺序仍然是LTR。

我想打印一本书在正确的页面顺序为RTL语言:

  1. 绑定必须在正确的
  2. PDF的第一页必须是书
  3. 的最后一页

要求2.有,所以我可以打印一本多语言书籍,前面带有LTR语言,后面带有RTL语言。

现在我可以为RTL语言创建一个新的布局主集以获得右侧的绑定。生成PDF后,我可以在Acrobat中反转PDF的页面顺序。

但是有没有办法在XSL-FO中指定正确的页面顺序?
我正在使用Antennahouse渲染器。这具有axf.reverse-page定制属性,但这只能在一个页面序列内工作。我的书有几个页面序列(每章一个),所以我不能使用它。

我已经花了一些时间仔细阅读规范,但还没有找到适合的东西。

+2

不幸的是,XSL 1.1建议对于如何确定绑定边缘很模糊。 “fo:page-sequence”的定义包括“此建议没有指定选择哪一边是页面绑定边缘的机制。”从理论上讲,你可以从写作模式中推断出绑定边缘,但当你做一些像日历一样的事情时,这种情况会下降,绑定边缘位于页面的顶部/底部。 FWIW,XSL 2.0要求文档包括能够指定绑定边缘的要求(http://www.w3.org/TR/xslfo20-req/#N66625)。 –

+0

您如何组织混合RTL/LTR书籍中的页码? –

+0

混合书在整本书中都有LTR格式的页码。所以英文是第1-10页,阿拉伯文将从第20页开始并在第11页结束。 – Hobbes

回答

1

使用-prevp命令行参数以相反的顺序打印页面。请参阅http://www.antennahouse.com/product/ahf60/docs/ahf-xslcmd.html#prevp

+0

好点。尽管如此,我希望能够从XSL-FO内部控制它,如果我能做到这一点,我可以为所有语言使用单个模板。如果我必须为RTL包含一个单独的处理指令,这意味着2个不同的用于天线室的偏好文件,并且我必须将一个简单的程序(以其默认首选项启动天线室)更改为包含条件逻辑的程序。 – Hobbes

+0

如果你的程序允许AH格式化程序的项目前设置选项设置文件,那么你可以使用一个指定'reverse-page =“true”(http://www.antennahouse.com/product/ahf60/docs/ahf -optset.html#reverse-page)为您的RTL项目指定一个不适用于其他项目的项目。命令行参数将相同,但选项设置文件的内容将不同。 –

相关问题