Epub reader with right to left vertical columns

#1
Dear Mike,
I recently tried to open a Taiwanese epub-Book in Pleco. When I open it in iBooks it is displayed correctly: vertical columns of characters from right to left. However, when I open it with Pleco reader it is displayed in "Western layout /Mainland China layout" - left to right horizontal lines.
Is this a problem with my eBook or does Pleco reader not support vertical columns yet? I thought the reader uses iOS HTML engine to render epub, so I wonder why the result is not the same.

It is mainly about optics - I somehow really like the feel of looking at vertically written Chinese. Also , the parenthesis and interpunctation marks used for vertical text don't look well when written horizontally.
If vertical text is not implemented yet I guess I will convert the book to PDF for the interim. Do you know what page size fits the screen best?

Thanks!
 

mikelove

皇帝
Staff member
#2
We don't support vertical columns in EPUB yet, no - we don't have access to quite the same HTML engine that iBooks does. Our latest plan on EPUBs is to actually offer our own separate much much faster text rendering engine (the one we use for dictionary entries) with a stripped down (but slowly expanding) set of tags, rather than attempting to present the whole thing in an HTML renderer - it would actually be easier to get vertical text working well in our own renderer than in the built-in one, and will make possible a lot of other improvements in EPUBs too (we want them to feel as buttery smooth as dictionary entries and plaintext documents do)
 
#4
What is the current status of the ePub reader - did you start using your own rendering engine when you began to sell ebooks?

I just tried again, opening a (different) Taiwanese ePub in Pleco. The original layout features vertical text (TBRL), but Pleco still displays it horizontally.

Other than last time Pleco does not only change the reading direction but also seems to have an issue with line breaks: lines are not automatically wrapped at the (right) margin. Instead each line extends over several pages until the end of a paragraph. Furthermore the text extends very far on the y-axis, overlapping the page number and position bar. This is because per chapter, every paragraph starts on the first page. Only for a new chapter a new “set of pages” begins. Not sure if I describe visually enough - happy to send you an example if this helps.

iBooks presents the book just fine.
 

mikelove

皇帝
Staff member
#5
Only for those, not for regular EPUBs. For RTL you might have better luck if you put them in PDF format - have you tried that?
 
#6
Thanks for the swift response! It took me quite a while to find a workable approach to convert the ePub to pdf; most methods I tried did not work.

In the end, the only solution seems to be to use Calibre to convert the ePub to Word. In the process the vertical layout gets lost, but can be reapplied in Word (Layout -> Text direction), and then exported as pdf. With this approach, most of the layout can be preserved.

Methods which did not work, to prevent others from wasting time:
  • Most other offline and online tools are not able to convert vertical text at all
  • One intially promising converter is http://ebook.cdict.info/ . However, while the result looks correct, it seems to use some non-standard voodoo for the layout. Pleco displays correctly, but tap to translate does not work (whole columns are being selected on tap, and a random character translated).
  • Using Calibre to convert to pdf: Calibre can not display vertical text correctly, both the viewer and the converter additionally turn all characters by 90 degress. For latin words this would be correct, but not for Chinese characters. This has been reported on the Calibre bug tracker, but rejected. In case someone tries to reproduce: To have vertical text at all after a conversion some additional css has to be entered as the converter drops the original statements:
body {
writing-mode:tb-rl;
-webkit-writing-mode: vertical-rl;
-epub-writing-mode: vertical-rl;
}
 
Top