← ClaudeAtlas

arabic-pptxlisted

Generate PowerPoint (.pptx) presentations in Arabic or any right-to-left script (Persian, Urdu, Hebrew) with correct paragraph direction, RTL tables, complex-script fonts, and properly spaced mixed Arabic/Latin text. Use this skill whenever the user asks for slides, a deck, a presentation, a pitch, a defense talk, or any .pptx whose content is Arabic or mixes Arabic with Latin technical terms — even if they never say "RTL". Also use it when an existing deck shows Arabic drifting to the left, table columns in the wrong order, version numbers like "Nuxt 3" reversed, or spaces missing around English words.
asadeisa/arabic-office-skills · ★ 2 · Data & Documents · score 63
Install: claude install-skill asadeisa/arabic-office-skills
# Arabic / RTL PowerPoint decks ## Do not reshape the text PowerPoint has a full bidirectional text engine, so it must be given **logical-order, unshaped Unicode**. `arabic_reshaper` and `python-bidi` are correct for PDF output and wrong here — PowerPoint would shape the presentation forms a second time, producing broken glyphs and text that cannot be searched or edited. If you find reshaping code in a .pptx generator, that is the bug. Direction is expressed in DrawingML, which is a different vocabulary from Word's WordprocessingML. `python-pptx` exposes none of it, so `scripts/arabic_pptx.py` writes it to the XML directly. **Use it rather than reinventing this.** ## Dependencies ```bash pip install python-pptx pypdfium2 ``` Writing the .pptx needs nothing else. Rendering the preview needs Microsoft PowerPoint (any version, via COM on Windows) or LibreOffice (`soffice`, any platform) — whichever is present is found automatically. ## Building a deck Import the builder either by copying `scripts/arabic_pptx.py` next to your generation script, or by adding this skill's `scripts/` folder to `sys.path`: ```python import pathlib, sys sys.path.insert(0, str(pathlib.Path.home() / ".claude" / "skills" / "arabic-pptx" / "scripts")) from arabic_pptx import ArabicPptx, preview deck = ArabicPptx(cs_font="Arial", base_size=18) deck.title_slide("عنوان العرض", "سطر فرعي") deck.bullets_slide("المحاور", [ "نقطة عربية تتضمن مصطلحات لاتينية مثل PostgreSQL و FastAPI.", "أرقام ا