diff options
Diffstat (limited to '2021/talks/bidi.md')
-rw-r--r-- | 2021/talks/bidi.md | 191 |
1 files changed, 154 insertions, 37 deletions
diff --git a/2021/talks/bidi.md b/2021/talks/bidi.md index 2bfd13d7..5669a817 100644 --- a/2021/talks/bidi.md +++ b/2021/talks/bidi.md @@ -1,17 +1,37 @@ -[[!meta title="Perso-Arabic Input Methods And Making More Emacs Apps BIDI Aware"]] +[[!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 Making More Emacs Apps BIDI Aware -Mohsen BANAN +# 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 -# Table of Contents +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 @@ -21,58 +41,155 @@ 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 -Arabic and other persoarabic scripts. +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 Halaal/Convivial usage -environment for persoarabic users. +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, completions, calendar, etc.), all basic -computing and communication needs of persoarabic +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. - -- 40 minutes: (brief description/outline) - My talk will be in two parts. +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: + - In Part 1, I cover persian input methods. With an - emphasis on &lsquo ;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> +<http://mohsen.1.banan.byname.net/PLPC/120036> - In Part 2, I will cover the ramifications of bidi - on existing emacs applications, including: +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: - - Gnus: - - Persoarabic rich email sending in HTML. - - Ramifications of bidi on from, to and - subject lines. +- Spell Checking, Dictionaries And Completion Frameworks: + - Existing emacs facilities can be extended to cover Perso-Arabic. - - Bbdb: Ramifications of bidi on display and - completion. +- Gnus: + - Perso-Arabic rich email sending in HTML. + - Ramifications of bidi on from:, to: and subject: lines. - - Calendar: - - Ramifications of bidi on display. - - Use of persian text for Persian (solar) calendar. - - Use of arabic text for Muslem (lunar) calendar. +- Bbdb: Ramifications of bidi on display and completion. - - AUCTeX: Persian typesetting with XeLaTeX - - - -[[!inline pages="internal(2021/info/bidi-schedule)" raw="yes"]] - +- 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"]] |