On Mon, 06 Jul 2015 02:43:25 -0700 Scott Kostyshak wrote: > Thank you Lior and Guy for the explanations. I think I'm starting to > understand a bit more. However, when you say "document is LtR", I assume you > mean that the language in document settings is a language that is RtL? If > that is the case, then why when I go to the document settings and change the > language from Arabic to English, nothing changes (note I still have "logical" > cursor movement set). From what I understand from your above explanation, > after the change, in Arabic "right arrow" means "move forward". But if I put > the cursor at the beginning of the document (e.g. with ctrl + home), which is > in Arabic, Left arrow moves forward and Right arrow does nothing. > >I attach the document in 2.1.x format now. > >Scott
LaTeX assigns directionality at the paragraph level. Testing with 2.1.3 (but not reading the code yet), I deduce that LyX also assigns an LtR/RtL value at the paragraph level -- by examining the language of the first character (!) (because of my naive test I assumed this was done at the document level). So if the first character in a paragraph is from a LtR language, then _for that paragraph_ right-arrow is forward and left-arrow is back. If the first character is from a RtL language then you get the opposite behaviour. By the way, this matters beyond arrow keys. For example, if the paragraph is a section heading, then LyX prints the section number on the left if it thinks it's in LtR mode (first character marked English) but on the right if it thinks it's in RtL mode (first character marked Arabic). That's certainly wrong: the user should be allowed to set the "paragraph language" independently of the language for individual text. Conclusion 1: We may want 3 cursor modes, splitting the "logical" mode into one relying on the document language and one changing the cursor behaviour paragraph-by-paragraph. I wonder home many people on lyx-users write bidirectional documents and have to deal with this. [As far as I can tell, LibreOffice decided to always have a "logical" cursor with LtR default (so right-arrow moves towards the end of text even in a Hebrew-only document)]. Conclusion 2: assuming my understanding is correct, each paragraph needs a "Language" field which is independent of the "Language" setting of the text inside it. At creation this should be copied from the document language (ensuring that section headings, say, behave consistently even if they are written in the "wrong language"). The "Edit -> Paragraph Settings" dialogue should allow changing the language of a paragraph. Of course, having a paragraph-level language different from the language of the text in the paragraph would also be confusing to users, but that's the way LaTeX works. If I have time I'll examine the detailed documentation (I mean the code) and see what's really going on. Lior