Bug 86790 - Support STYLEREF field fully (so e.g. Chapter fields can be saved to DOCX)
Summary: Support STYLEREF field fully (so e.g. Chapter fields can be saved to DOCX)
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
(earliest affected) release
Hardware: All All
: medium enhancement
Assignee: Skyler Grey
Whiteboard: target:24.2.0
: 96559 126596 155954 (view as bug list)
Depends on:
Blocks: DOCX-Limitations Fields
  Show dependency treegraph
Reported: 2014-11-27 15:24 UTC by sebalis
Modified: 2024-03-27 22:25 UTC (History)
12 users (show)

See Also:
Crash report or crash signature:

OOXML article - STYLEREF (638.41 KB, application/pdf)
2019-07-29 17:57 UTC, V Stuart Foote
sample file with STYLEREF (15.31 KB, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2022-04-26 10:15 UTC, Xisco Faulí
sample ODT with chapter field (10.50 KB, application/vnd.oasis.opendocument.text)
2023-06-21 11:11 UTC, Stéphane Guillou (stragu)
styleref-all-features2.docx: following reference only on current page. (20.29 KB, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2023-10-23 21:43 UTC, Justin L
styleref-all-features2_Word2010.pdf (36.63 KB, application/pdf)
2023-10-23 21:44 UTC, Justin L
A document showing that \l is only active in marginals (18.98 KB, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2023-10-24 10:13 UTC, Skyler Grey
A file demonstrating the suppress non numerical flag (16.65 KB, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2023-10-25 09:19 UTC, Skyler Grey

Note You need to log in before you can comment on or make changes to this bug.
Description sebalis 2014-11-27 15:24:50 UTC
STYLEREF is a useful field in Word, particularly in headers and footers. It looks for the closest paragraph that's formatted with a style whose name is given as a parameter, and inserts the contents of that paragraph.

This field can not currently be created in Writer. When a Word document containing a STYLEREF field is opened in Writer, the current content is shown but the field functionality seems to be gone. Changing the field definition or updating the content after a change to the paragraph that supplied the content is not possible. Although, through some kind of magic, when the document is saved from Writer and then opened in Word it is still a field.

It would be great if STYLEREF could be fully supported. Thanks.
Comment 1 Robinson Tryon (qubit) 2014-12-21 19:01:38 UTC
(In reply to sebalis from comment #0)
> STYLEREF is a useful field in Word, 
> ...
> It would be great if STYLEREF could be fully supported. Thanks.

Sounds like a reasonable step towards compatibility with Word.

Status -> NEW
Severity- > enhancement
Comment 2 Nicolas Saettel 2016-02-19 15:30:08 UTC
Hi all,
Bug 96559 is somewhat related (or a duplicate?), but the other way around:

The styleref field in word is not supported in writer, the other way around would be really nice, i.e.

Inserting a Field & choosing Document/Chapter in a header (showing the chapter number and name of the chapter if style Title 1 is used, for example)
saving the document in a docx format would reproduce the result of doing :

Header and Footer Tools / Design / Field/ StyleRef -> Heading 1 in Word

Right now, the header shows "Chapter", no field
Comment 3 sebalis 2016-02-19 20:08:38 UTC
Interesting thought, but I would really prefer the full flexibility of STYLEREF, where you can use any style to select the paragraph from which the field contents should be derived.
Comment 4 Buovjaga 2016-02-20 15:13:04 UTC
*** Bug 96559 has been marked as a duplicate of this bug. ***
Comment 5 V Stuart Foote 2019-07-29 17:02:08 UTC
*** Bug 126596 has been marked as a duplicate of this bug. ***
Comment 6 V Stuart Foote 2019-07-29 17:18:16 UTC
@Regina, any thoughts
Comment 7 V Stuart Foote 2019-07-29 17:57:12 UTC
Created attachment 153046 [details]

STYLEREF is an OOXML ISO/IEC 29500-1 (2016) defined content formatting field.

Implementing all, or some portion, of its features would improve interoperability of OOXML exchanges but likely requires LibreOffice extension to ODF 1.2/1.3 to save into an ODF document archive.
Comment 8 Roman 2020-02-27 16:20:04 UTC
in LibreOffice 6.4.1 it's still not work correctly
Comment 9 canned 2020-11-05 09:31:44 UTC
Still not implemented in:

Version: (x64)
Build ID: d7547858d014d4cf69878db179d326fc3483e082
CPU threads: 4; OS: Windows 6.1 Service Pack 1 Build 7601; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: threaded
Comment 10 Xisco Faulí 2022-04-26 10:15:34 UTC
Created attachment 179784 [details]
sample file with STYLEREF
Comment 11 Xisco Faulí 2022-04-26 10:31:48 UTC
Some existing documents using STYLEREF in the codebase:

Comment 12 Stéphane Guillou (stragu) 2023-06-21 11:09:24 UTC
*** Bug 155954 has been marked as a duplicate of this bug. ***
Comment 13 Stéphane Guillou (stragu) 2023-06-21 11:11:19 UTC
Created attachment 188038 [details]
sample ODT with chapter field

If you save this ODT as a DOCX and reload, the Chapter field is lost (as described in duplicate bug 155954).
Comment 14 Commit Notification 2023-10-20 06:53:46 UTC
Skyler Grey committed a patch related to this issue.
It has been pushed to "master":


tdf#86790: Add support for a word-style styleref

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:

Affected users are encouraged to test the fix and report feedback.
Comment 15 Justin L 2023-10-23 21:43:35 UTC
Created attachment 190393 [details]
styleref-all-features2.docx: following reference only on current page.

The \l flag indicates "Inserts the nearest text following the field", but apparently that only applies to the current page. If not found below on the current page, it uses an earlier paragraph before checking following pages, as this example shows.
Comment 16 Justin L 2023-10-23 21:44:04 UTC
Created attachment 190394 [details]
Comment 17 Skyler Grey 2023-10-24 10:13:17 UTC
Created attachment 190399 [details]
A document showing that \l is only active in marginals

(In reply to Justin L from comment #16)
> Created attachment 190394 [details]
> styleref-all-features2_Word2010.pdf

Thanks for your testing and comments! I've checked this and from my testing it looks like

- STYLEREF's \l flag is not honored in the body, only in the marginals (so a STYLEREF in the header would search up from the bottom of the page but a STYLEREF in the body would search up regardless of the flag)
- You're absolutely right! \l in the marginals searches up on the current page but then it searches as any other marginal STYLEREF would (above the page and then below the page)

Thanks again, I'll make another change to fix this so that we can be as compatible as possible
Comment 18 Justin L 2023-10-24 11:27:49 UTC
(In reply to Skyler Grey from comment #17)
> - STYLEREF's \l flag is not honoured in the body
agreed (sounds like a Microsoft bug to me. But we want bug-for-bug compat here)

I thought "sections" might come into play somehow, but it doesn't seem to. (I had a Heading 1, then a section break, then a styleref, and then another Heading 1. The styleref pointed to the first Heading - outside of its section, and not to the heading1 inside the section.) That is nice - otherwise it would have been a rather annoying complication.
Comment 19 Skyler Grey 2023-10-25 09:19:42 UTC
Created attachment 190408 [details]
A file demonstrating the suppress non numerical flag
Comment 20 Gabor Kelemen (allotropia) 2024-03-06 15:49:11 UTC
Is there anything left to fix here?

I checked the example files attached here, and the ones mentioned in comment #11 - all seems to open fine, survive saving and reopening in Word.
Only exception is sw/qa/extras/odfexport/data/tdf135144.docx but it seems to be kinda broken.
Comment 21 Skyler Grey 2024-03-06 16:00:11 UTC
I believe this to be all fixed and in, so I think we can say the task is resolved now. Thanks for the nudge :)