diff options
Diffstat (limited to '2021/talks/bidi.md')
-rw-r--r-- | 2021/talks/bidi.md | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/2021/talks/bidi.md b/2021/talks/bidi.md new file mode 100644 index 00000000..5669a817 --- /dev/null +++ b/2021/talks/bidi.md @@ -0,0 +1,195 @@ +[[!meta title="Perso-Arabic Input Methods And BIDI Aware Apps"]] +[[!meta copyright="Copyright © 2021 Mohsen BANAN"]] +[[!inline pages="internal(2021/info/bidi-nav)" raw="yes"]] + +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Perso-Arabic Input Methods And BIDI Aware Apps +Mohsen BANAN -- <mailto:emacs@mohsen.1.banan.byname.net> -- محسن بنان +pronouns: he/him, pronunciation: MO-HH-SS-EN +<http://mohsen.1.banan.byname.net> + +[[!inline pages="internal(2021/info/bidi-schedule)" raw="yes"]] + +## About The Video + +The video is a screen capture of a [reveal](https://revealjs.com) presentation +prepared with Beamer XeLaTeX and [HaVeA](http://hevea.inria.fr). So, the +[original reveal +presentation](http://web.by-star.net/lcnt/PLPC/180063/current/pres/PLPC-180063-pres.html) +allows you to click on links that you see in the video and also navigate through +the slide. In html, it is also availble as a [Presenation-As-Article +format](http://web.by-star.net/lcnt/PLPC/180063/current/presArt/PLPC-180063-presArt.html) +which includes complete text of the audio. [The traditional beamer slides]( +http://web.by-star.net/lcnt/PLPC/180063/current/pres/PLPC-180063-pres.pdf) are +also available. The Access Page for +[PLPC-180063](http://www.by-star.net/PLPC/180063) points to all available forms +and formats. + +## About This Presentation + +Emacs is a multilingual user environment. A true multilingual editor must +support bidirectionality and shaping of characters. Perso-Arabic scripts require +both of these features. + +Starting with Emacs 24, full native bidi +(bidirectional) support became available. For +many years prior to that Unicode support was +available and by around year 2000, reasonable +open-source shaping libraries were also available. + +With these in place at around 2012, I developed +two Persian input methods for emacs. These input +methods or variations of them can also be used for +Arabic and other Perso-Arabic scripts. + +With all of these in place, Emacs has now become +the ne plus ultra Libre-Halaal and Convivial usage +environment for Perso-Arabic users. + +Since emacs comes loaded with everything (Gnus +for email, Bbdb for address books, XeLaTeX modes +for typesetting, org-mode for organization, spell +checkers, completion systems, calendar, etc.), all basic +computing and communication needs of Perso-Arabic +users can be addressed in one place and +cohesively. + +In this talk I will demonstrate what a wonderful +environment that can be. + +My talk will be in two parts. + +In Part 1, I cover Persian input methods. With an emphasis on "Banan +Multi-Character (Reverse) Transliteration Persian Input Method". The +software is part of base emacs distribution. Full documentation is available +at: + + + Persian Input Methods + For Emacs And More Broadly Speaking + شیوههایِ درج به فارسی +<http://mohsen.1.banan.byname.net/PLPC/120036> + +In Part 2, I'll demonstrate that Emacs is far more than an editor. Emacs can be +a complete Perso-Arabic usage environment. I will also cover the ramifications +of bidi on existing emacs applications, including: + +- Spell Checking, Dictionaries And Completion Frameworks: + - Existing emacs facilities can be extended to cover Perso-Arabic. + +- Gnus: + - Perso-Arabic rich email sending in HTML. + - Ramifications of bidi on from:, to: and subject: lines. + +- Bbdb: Ramifications of bidi on display and completion. + +- Calendar: + - Ramifications of bidi on display. + - Use of Persian text for Persian (solar) calendar. + - Use of Arabic text for Muslim (lunar) calendar. + +- AUCTeX: Persian typesetting with XeLaTeX + - Option of having right-to-left Perso-Arabic aliases for all latex commands. + +# References: + +## Persian Input Methods: +<http://mohsen.1.banan.byname.net/PLPC/120036> +<http://www.persoarabic.org/PLPC/120036> -- Persian Input Methods Access Page +<http://www.persoarabic.org> -- Various Perso-Arabic resources +<http://www.freeprotocols.org/Repub/fpf-isiri-6219> -- Re-Publication Of + Persian Information Interchange and Display Mechanism, using Unicode +<https://github.com/bx-blee/persian-input-method> -- Git repo for + persian.el -- Quail package for inputting Persian/Farsi keyboards + +## BIDI: +<http://www.unicode.org/reports/tr9/> -- Annex #9 of the Unicode standard +<https://www.gnu.org/software/emacs/manual/html_node/elisp/Bidirectional-Display.html> + Emacs Bidirectional Display +<http://www.persoarabic.org/answers> + Paragraph Directionality Results Into Serious Communication Problems + +## Blee and Persian-Blee: +<https://github.com/bx-blee/env2> -- Very messy work-in-progress git repo for: + Blee: By* Libre-Halaal Emacs Environment +<http://www.by-star.net> -- A Moral Alternative To The Proprietary American Digital Ecosystem +<http://mohsen.1.banan.byname.net/PLPC/120033> -- + Nature of Polyexistentials: + Basis for Abolishment of The Western Intellectual Property Rights Regime +<http://mohsen.1.banan.byname.net/PLPC/120039> -- Defining The Libre-Halaal Label + +## Mohsen BANAN -- محسن بنان: +<http://mohsen.1.banan.byname.net/> -- Globish +<http://mohsen.1.banan.byname.net/persian> -- Farsi +<http://mohsen.1.banan.byname.net/french> -- French + +# Discussion + +Pad: + +- Q1: is there any additions that you have to add to emacs for using + non-English/latin characters or does it work mostly out of the box? + - A: [Prot] : I only set the default-input-method to "greek". + Then switch to it with C- (toggle-input-method) +- Q2: One stuggle I have with this input method option is, why not use + an IME that's installed on the host OS? + - A:I live inside Emacs, and that the host OS typically provides + an unintelligent keyboard, and Farsi and transliterate BANAN + provides multi-character input, which is a lot more powerful. +- Q3: Do you write any lisp or other code/markup with these scripts? + (Sorry if I missed you mentioning this.) + - A:No, everything is in pure Elisp. +- Q4: What alternatives have you looked into for solving the problem + related to your markup language idea? What isn't achieved by them? + - A:The way that Emacs has evovled about properties about string + and text. And I suggest we adopt the "web" model for Emacs + application development. If you step back and look at where we + are, there's no such thing as no 'emacs native markup language + mode' similar to HTML for web. Emacs's display engine is + capable of doing everything, but we're not exposing .... + (sorry, missed this part) + - Makes sense to me, thanks! +- Q5: bandali: genenrally curious about the state of writing/reading + Persian in the TTY +- Q6: Does your input method also solves problems with exporting + doctuments ? usually when you exporting a Persian-Enlight doc it + redirects the Persian scripts to LTR + +Questions/comments: + +- Thanks for giving such a nice presentation of the Emacs input method framework! I'm just curious about if you've made any plans for setting up your markup language? I know you said you hadn't written any code for it yet. +- That makes sense. Do you think you could use org more exclusively, and just add portions to implement your idea? As-in, there's nothing within org mode that would need to be fundamentally changed, correct? +- I wonder about that. Org doesn't quite support all the expressivness that you see in some buffers/modes. +- I agree. Finding a way to reach a happy medium without having to go "full elisp" would be quite powerful. +- Potentially the tui.el system mentioned earlier in the conference could mix will with your idea as well. +- I have one last, quick question. If you've used a version of Emacs 28, how have you found the new feature of doing a quick switch into a different IME? I know John Wiegly mentioned it in his talk earlier. +- Does OS-level stuff work when you have to change character direction on the same line, like LtR numbers in a RtL script? + +Feedback: + +- This is great. I've done a demo like this for a few friends in the past as well. +- Whoever did the captions for this was spot on, the unicode characters would be challenging. +- I just love the Emacs input method framework, and I don't think a lot of latin script users know about it. +- This is really cool, it's something that I never think about from other users in other countries using Emacs. +- The captions for this conference have has an impressive amount of work put into them. +- omg! this is great. farsi 101 in emacs +- ++ to all that stuff. Great job on the captions, and the demonstrated functionality is very impressive. +- Yay for the captions! +- This has been really slick. Kudos for the captions including the Farsi characters and latin text. +- At first, I thought the captions would be unnecessary, but over time, understanding the accents for various individuals has been challenging, so the captions helped. +- One struggle I have with this input method option is, why not use an IME that's installed on the host OS? I mean, I do that with Japanese, but that may no longer work easily with qubes, so maybe it's more of a thing that'd benefit me now. + - though, I'm thinking that certain input methods don't actually simulate key-presses on virtual keyboards ... ? + - Not a primary reason, but since I'm used to configuring Emacs, I've found it a lot easier to learn to configure the integrated IMF than to configure an external one. + - I used SCIM/uim for japanese input at one put, but that was before I used emacs, it was a nightmare to set up +- I may have to try this, the IMEs I've used haven't been an issue too much in the past, but...maybe this would be better, at least I wouldn't have to worry about config on each qube. +- Banan's work on BIDI support is an eye-opener... +- yeah absolutely. it's a really great point that Emacs can always be expanded to be more inclusive to other languages in ways that are more than just Unicode related. +- bidi destorying irssi, time to find a good emacs irc client ... +- thanks for the talk...another example how Emacs is inclusive catering for all forms of text. +- Lots to think about. Thanks for the talk and inspiration! +- Awesome. Thanks again for such a great talk and a great q&a! + +[[!inline pages="internal(2021/captions/bidi)" raw="yes"]] +[[!inline pages="internal(2021/info/bidi-nav)" raw="yes"]] |