https://bugs.documentfoundation.org/show_bug.cgi?id=172428

            Bug ID: 172428
           Summary: Korean line-breaking splits a parenthetical annotation
                    from its following word (differs from PowerPoint)
           Product: LibreOffice
           Version: 24.2.7.2 release
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Impress
          Assignee: [email protected]
          Reporter: [email protected]

Description:
When laying out / exporting Korean (.pptx) text, LibreOffice inserts a line
break
between a closing parenthesis ")" and the immediately following Korean word, so
a
short parenthetical annotation is left dangling at the end of a line, separated
from
the term it modifies. Microsoft PowerPoint (the authoring application for
.pptx)
keeps the parenthetical group and its following word together on the same line
and
breaks at the preceding word boundary instead. The result is different line
wrapping
of the same text.

This appears to be a difference in CJK line-break (kinsoku / 禁則) classification
of
bracket characters in the shared text-layout core (i18npool BreakIterator +
editeng),
not an Impress-specific or import-filter issue.

Steps to Reproduce:
1. Open the attached minimal file "kern2-deck.pptx" (a 1-slide synthetic deck,
~5 KB).
   Text box labelled "B1" contains this single Korean line, 18 pt, in a ~4 inch
wide
   box (wrap="square"), Korean font NanumGothic:

   금융감독원장 임명 평가와 결과 보고 항목 (現)금융감독원장 (前)변호사 평가('22) 진행 안내

2. File > Export As > Export Directly as PDF (or simply observe the on-screen
layout
   of box "B1").
3. Look at where the line wraps around the clusters "(現)금융감독원장", "(前)변호사"
   and "평가('22)".

Actual Results:
LibreOffice wraps so that a parenthetical group ends a line and the next Korean
word
starts the following line — e.g. "...(前)" sits at the end of one line and "변호사"
begins the next. The annotation "(前)" is split from "변호사".

Expected Results:
Microsoft PowerPoint keeps "(前)변호사" on the same line, wrapping at the space
before
"(前)" instead — the parenthetical stays bound to the word it annotates. (An
opening
bracket "(" should not be left able to start/strand a CJK line; the bracket
group and
its head word stay together.)


Reproducible: Always


User Profile Reset: No

Additional Info:
Real-world impact: On a real 9-page Korean financial-report .pptx exported
through
this engine, compared against the document owner's reference PDF, 26 of 258
visually-reconstructed text lines (10.1%) wrapped at a different position; the
divergences cluster on slides containing parenthetical annotations (12 of the
26 on
a single page). Measured by whitespace-normalized line-set diffing. The
attached
synthetic deck is the minimal reproducer for the dominant pattern. (The real
document
is a third-party business file and cannot be attached; the synthetic deck
reproduces
the same break behavior with no private data.)

Version details: Observed on LibreOffice Technology 24.2 (allotropia
"ZetaOffice"
WebAssembly build; source branch distro/allotropia/zeta-24-2). soffice.wasm
SHA-256
9ebd9a487e849a24b9c69f843ebdb451709c27b7722c010e36846433474a5bd4.
Rendered in Chrome (WASM). Not yet verified on a desktop LibreOffice build, but
the
line-breaking path (i18npool/editeng) is shared core code, so this is expected
to
reproduce on 24.2 desktop. A desktop confirmation can be supplied on request.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to