<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="markdown-here-wrapper" data-md-url="" style="">
      <p style="margin: 0px 0px 1.2em !important;">Hi Michael,</p>
      <p style="margin: 0px 0px 1.2em !important;">thanks for your
        answer.</p>
      <ol style="margin: 1.2em 0px;padding-left: 2em;">
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px
            !important;">My current understanding is that the proposed <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">com.sun.star.text.TextField.Bibliography</code>
            is the implementation for “Insert -> Table of Contents
            and Index -> Bibliography Entry” of LibreOffice Writer.<br>
            Is that right?<br>
            If it is, then it would mean that LibreOffice would manage
            the citation process (insert citations and bibliography).
            Right?<br>
            We don’t want that. We want Zotero to manage it instead. We
            want Zotero to tell LibreOffice what an inline citation
            looks like and what a bibliography looks like.<br>
            The alternative would be to import the Zotero database in
            LibreOffice, and then tell LibreOffice what the correct
            citation style is, and keep the database updated when the
            Zotero database changes, and keep the citation style updated
            when it changes.<br>
            That looks too cumbersome.<br>
            But maybe I’m failing to understand the process, I have no
            experience with LibreOffice citation management. I have
            always used Zotero.</p>
        </li>
        <li style="margin: 0.5em 0px;">
          <blockquote style="margin: 1.2em 0px;border-left: 4px solid
            rgb(51, 117, 221); padding: 0px 1em; color: rgb(119, 119,
            119); quotes: none;">
            <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px
              !important;">the other option is, you could insert this
              with arbitrary content via the Fieldmark service, and
              since about version 7.3 this kind of works in the document
              model and can be stored as an ODF extension in addition to
              DOCX/RTF.</p>
          </blockquote>
        </li>
      </ol>
      <p style="margin: 0px 0px 1.2em !important;">That sounds good, but
        the Fieldmark seems to lack documentation?</p>
      <blockquote style="margin: 1.2em 0px;border-left: 4px solid
        rgb(51, 117, 221); padding: 0px 1em; color: rgb(119, 119, 119);
        quotes: none;">
        <p style="margin: 0px 0px 1.2em !important;">however there is
          currently no implementation of <em>expanding</em> the
          fieldmark, that is, there is no code to evaluate the fieldmark
          command and overwrite the fieldmark result. </p>
      </blockquote>
      <p style="margin: 0px 0px 1.2em !important;">I have no idea what
        that means.<br>
        I’m sorry for my lack of knowledge.<br>
        Does it mean that we can’t, from a LibreOffice Writer Java
        extension, retrieve the code of the fieldmark and tell
        LibreOffice what it should print instead of the code?<br>
        If so, on one hand it is exactly what we need, on the other hand
        it seems it is already working?<br>
        LibreOffice already shows the correct text, not the code.<br>
        I believe it shows the text in the tag <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">w:fldChar</code>,
        not the one in the tag <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">w:instrTex</code>
        (which contains the code).<br>
        Is that correct?</p>
      <p style="margin: 0px 0px 1.2em !important;">I hereby attach a
        document with a Zotero inline citation in the Microsoft Word
        “Fields” format, for reference. We can take it as a reference
        implementation.</p>
      <p style="margin: 0px 0px 1.2em !important;">Best.</p>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <div class="markdown-here-exclude">
        <div class="moz-cite-prefix">On 16/08/2022 12:06, Michael Stahl
          wrote:<br>
        </div>
      </div>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <div class="markdown-here-exclude">
        <blockquote type="cite"
          cite="mid:4103344a-b416-5134-7e90-a4a85d239d0a@libreoffice.org">On
          16.08.22 09:03, Phillips Rogfield wrote:<br>
          <blockquote type="cite">Hi Miklos,<br>
            <br>
            thank you very much for your answer!<br>
            <br>
            Let’s make sure we are on the same page here.<br>
            <br>
            Zotero is already able to write its citation with
            LibreOffice.<br>
            To do so, it currently uses one of two methods, at user’s
            choice:<br>
            (1) ReferenceMarks, which are NOT compatible with Microsoft
            Word<br>
            (2) Bookmarks, which are SOMEHOW compatible with Microsoft
            Word, in the sense that you can’t put citations in
            footnotes, and they tend to break very easily.<br>
            <br>
            Instead, the Zotero plugin for Microsoft Word uses:<br>
            (1) Fields, which are NOT compatible with LibreOffice<br>
            (2) Bookmarks, see above.<br>
            <br>
            The point of this post is to allow the plugin for
            LibreOffice to use “Fields”.<br>
            <br>
            In particular, I have to use the UNO interface to write the
            following in the |word/document.xml| file inside a .docx
            file:<br>
            <br>
            |<w:r> <w:fldChar w:fldCharType="begin"/>
            </w:r> <w:r> <w:instrText
            xml:space="preserve"> [some text here]
            </w:instrText> </w:r> <w:r> <w:fldChar
            w:fldCharType="separate"/> </w:r> <w:r
            w:rsidRPr="007C09F6"> <w:rPr> <w:rFonts
            w:ascii="Calibri" w:hAnsi="Calibri" w:cs="Calibri"/>
            </w:rPr> <w:t> [some text here] </w:t>
            </w:r> <w:r> <w:fldChar
            w:fldCharType="end"/> </w:r> |<br>
            <br>
            would the |com.sun.star.text.TextField.Bibliography|
            interface allow me to write the above code?<br>
          </blockquote>
          <br>
          kind of, there is code to export it as a CITATION field in
          DocxAttributeOutput::EndField_Impl in
          sw/source/filter/ww8/docxattributeoutput.cxx.<br>
          <br>
          the other option is, you could insert this with arbitrary
          content via the Fieldmark service, and since about version 7.3
          this kind of works in the document model and can be stored as
          an ODF extension in addition to DOCX/RTF.<br>
          <br>
          however there is currently no implementation of *expanding*
          the fieldmark, that is, there is no code to evaluate the
          fieldmark command and overwrite the fieldmark result.<br>
        </blockquote>
      </div>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <div
title="MDH:PHA+SGkgTWljaGFlbCw8L3A+PHA+dGhhbmtzIGZvciB5b3VyIGFuc3dlci48L3A+PHA+MS4gTXkgY3VycmVudCB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIHByb3Bvc2VkIGBjb20uc3VuLnN0YXIu
dGV4dC5UZXh0RmllbGQuQmlibGlvZ3JhcGh5YCBpcyB0aGUgaW1wbGVtZW50YXRpb24gZm9yICJJ
bnNlcnQgLSZndDsgVGFibGUgb2YgQ29udGVudHMgYW5kIEluZGV4IC0mZ3Q7IEJpYmxpb2dyYXBo
eSBFbnRyeSIgb2YgTGlicmVPZmZpY2UgV3JpdGVyLjxicj5JcyB0aGF0IHJpZ2h0Pzxicj5JZiBp
dCBpcywgdGhlbiBpdCB3b3VsZCBtZWFuIHRoYXQgTGlicmVPZmZpY2Ugd291bGQgbWFuYWdlIHRo
ZSBjaXRhdGlvbiBwcm9jZXNzIChpbnNlcnQgY2l0YXRpb25zIGFuZCBiaWJsaW9ncmFwaHkpLiBS
aWdodD88YnI+V2UgZG9uJ3Qgd2FudCB0aGF0LiBXZSB3YW50IFpvdGVybyB0byBtYW5hZ2UgaXQg
aW5zdGVhZC4gV2Ugd2FudCBab3Rlcm8gdG8gdGVsbCBMaWJyZU9mZmljZSB3aGF0IGFuIGlubGlu
ZSBjaXRhdGlvbiBsb29rcyBsaWtlIGFuZCB3aGF0IGEgYmlibGlvZ3JhcGh5IGxvb2tzIGxpa2Uu
PGJyPlRoZSBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBpbXBvcnQgdGhlIFpvdGVybyBkYXRhYmFz
ZSBpbiBMaWJyZU9mZmljZSwgYW5kIHRoZW4gdGVsbCBMaWJyZU9mZmljZSB3aGF0IHRoZSBjb3Jy
ZWN0IGNpdGF0aW9uIHN0eWxlIGlzLCBhbmQga2VlcCB0aGUgZGF0YWJhc2UgdXBkYXRlZCB3aGVu
IHRoZSBab3Rlcm8gZGF0YWJhc2UgY2hhbmdlcywgYW5kIGtlZXAgdGhlIGNpdGF0aW9uIHN0eWxl
IHVwZGF0ZWQgd2hlbiBpdCBjaGFuZ2VzLjxicj5UaGF0IGxvb2tzIHRvbyBjdW1iZXJzb21lLjxi
cj5CdXQgbWF5YmUgSSdtIGZhaWxpbmcgdG8gdW5kZXJzdGFuZCB0aGUgcHJvY2VzcywgSSBoYXZl
IG5vIGV4cGVyaWVuY2Ugd2l0aCBMaWJyZU9mZmljZSBjaXRhdGlvbiBtYW5hZ2VtZW50LiBJIGhh
dmUgYWx3YXlzIHVzZWQgWm90ZXJvLjwvcD48cD4yLiA8YnI+Jmd0OyB0aGUgb3RoZXIgb3B0aW9u
IGlzLCB5b3UgY291bGQgaW5zZXJ0IHRoaXMgd2l0aCBhcmJpdHJhcnkgY29udGVudCB2aWEgdGhl
IEZpZWxkbWFyayBzZXJ2aWNlLCBhbmQgc2luY2UgYWJvdXQgdmVyc2lvbiA3LjMgdGhpcyBraW5k
IG9mIHdvcmtzIGluIHRoZSBkb2N1bWVudCBtb2RlbCBhbmQgY2FuIGJlIHN0b3JlZCBhcyBhbiBP
REYgZXh0ZW5zaW9uIGluIGFkZGl0aW9uIHRvIERPQ1gvUlRGLiA8YnI+PC9wPjxwPlRoYXQgc291
bmRzIGdvb2QsIGJ1dCB0aGUgRmllbGRtYXJrIHNlZW1zIHRvIGxhY2sgZG9jdW1lbnRhdGlvbj88
L3A+PHA+Jmd0OyBob3dldmVyIHRoZXJlIGlzIGN1cnJlbnRseSBubyBpbXBsZW1lbnRhdGlvbiBv
ZiAqZXhwYW5kaW5nKiB0aGUgZmllbGRtYXJrLCB0aGF0IGlzLCB0aGVyZSBpcyBubyBjb2RlIHRv
IGV2YWx1YXRlIHRoZSBmaWVsZG1hcmsgY29tbWFuZCBhbmQgb3ZlcndyaXRlIHRoZSBmaWVsZG1h
cmsgcmVzdWx0LiA8YnI+PC9wPjxwPkkgaGF2ZSBubyBpZGVhIHdoYXQgdGhhdCBtZWFucy48YnI+
SSdtIHNvcnJ5IGZvciBteSBsYWNrIG9mIGtub3dsZWRnZS48YnI+RG9lcyBpdCBtZWFuIHRoYXQg
d2UgY2FuJ3QsIGZyb20gYSBMaWJyZU9mZmljZSBXcml0ZXIgSmF2YSBleHRlbnNpb24sIHJldHJp
ZXZlIHRoZSBjb2RlIG9mIHRoZSBmaWVsZG1hcmsgYW5kIHRlbGwgTGlicmVPZmZpY2Ugd2hhdCBp
dCBzaG91bGQgcHJpbnQgaW5zdGVhZCBvZiB0aGUgY29kZT88YnI+SWYgc28sIG9uIG9uZSBoYW5k
IGl0IGlzIGV4YWN0bHkgd2hhdCB3ZSBuZWVkLCBvbiB0aGUgb3RoZXIgaGFuZCBpdCBzZWVtcyBp
dCBpcyBhbHJlYWR5IHdvcmtpbmc/PGJyPkxpYnJlT2ZmaWNlIGFscmVhZHkgc2hvd3MgdGhlIGNv
cnJlY3QgdGV4dCwgbm90IHRoZSBjb2RlLjxicj5JIGJlbGlldmUgaXQgc2hvd3MgdGhlIHRleHQg
aW4gdGhlIHRhZyBgdzpmbGRDaGFyYCwgbm90IHRoZSBvbmUgaW4gdGhlIHRhZyBgdzppbnN0clRl
eGAgKHdoaWNoIGNvbnRhaW5zIHRoZSBjb2RlKS48YnI+SXMgdGhhdCBjb3JyZWN0PzwvcD48cD5J
IGhlcmVieSBhdHRhY2ggYSBkb2N1bWVudCB3aXRoIGEgWm90ZXJvIGlubGluZSBjaXRhdGlvbiBp
biB0aGUgTWljcm9zb2Z0IFdvcmQgIkZpZWxkcyIgZm9ybWF0LCBmb3IgcmVmZXJlbmNlLiBXZSBj
YW4gdGFrZSBpdCBhcyBhIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbi48YnI+PC9wPjxwPkJlc3Qu
PGJyPiA8L3A+PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PbiAxNi8wOC8yMDIyIDEyOjA2
LCBNaWNoYWVsIFN0YWhsIHdyb3RlOjxicj48L2Rpdj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBj
aXRlPSJtaWQ6NDEwMzM0NGEtYjQxNi01MTM0LTdlOTAtYTRhODVkMjM5ZDBhQGxpYnJlb2ZmaWNl
Lm9yZyI+T24gMTYuMDguMjIgMDk6MDMsIFBoaWxsaXBzIFJvZ2ZpZWxkIHdyb3RlOgo8YnI+PGJs
b2NrcXVvdGUgdHlwZT0iY2l0ZSI+SGkgTWlrbG9zLAo8YnI+Cjxicj50aGFuayB5b3UgdmVyeSBt
dWNoIGZvciB5b3VyIGFuc3dlciEKPGJyPgo8YnI+TGV04oCZcyBtYWtlIHN1cmUgd2UgYXJlIG9u
IHRoZSBzYW1lIHBhZ2UgaGVyZS4KPGJyPgo8YnI+Wm90ZXJvIGlzIGFscmVhZHkgYWJsZSB0byB3
cml0ZSBpdHMgY2l0YXRpb24gd2l0aCBMaWJyZU9mZmljZS4KPGJyPlRvIGRvIHNvLCBpdCBjdXJy
ZW50bHkgdXNlcyBvbmUgb2YgdHdvIG1ldGhvZHMsIGF0IHVzZXLigJlzIGNob2ljZToKPGJyPigx
KSBSZWZlcmVuY2VNYXJrcywgd2hpY2ggYXJlIE5PVCBjb21wYXRpYmxlIHdpdGggTWljcm9zb2Z0
IFdvcmQKPGJyPigyKSBCb29rbWFya3MsIHdoaWNoIGFyZSBTT01FSE9XIGNvbXBhdGlibGUgd2l0
aCBNaWNyb3NvZnQgV29yZCwgaW4gdGhlIApzZW5zZSB0aGF0IHlvdSBjYW7igJl0IHB1dCBjaXRh
dGlvbnMgaW4gZm9vdG5vdGVzLCBhbmQgdGhleSB0ZW5kIHRvIGJyZWFrIAp2ZXJ5IGVhc2lseS4K
PGJyPgo8YnI+SW5zdGVhZCwgdGhlIFpvdGVybyBwbHVnaW4gZm9yIE1pY3Jvc29mdCBXb3JkIHVz
ZXM6Cjxicj4oMSkgRmllbGRzLCB3aGljaCBhcmUgTk9UIGNvbXBhdGlibGUgd2l0aCBMaWJyZU9m
ZmljZQo8YnI+KDIpIEJvb2ttYXJrcywgc2VlIGFib3ZlLgo8YnI+Cjxicj5UaGUgcG9pbnQgb2Yg
dGhpcyBwb3N0IGlzIHRvIGFsbG93IHRoZSBwbHVnaW4gZm9yIExpYnJlT2ZmaWNlIHRvIHVzZSAK
4oCcRmllbGRz4oCdLgo8YnI+Cjxicj5JbiBwYXJ0aWN1bGFyLCBJIGhhdmUgdG8gdXNlIHRoZSBV
Tk8gaW50ZXJmYWNlIHRvIHdyaXRlIHRoZSBmb2xsb3dpbmcgaW4gCnRoZSB8d29yZC9kb2N1bWVu
dC54bWx8IGZpbGUgaW5zaWRlIGEgLmRvY3ggZmlsZToKPGJyPgo8YnI+fCZsdDt3OnImZ3Q7ICZs
dDt3OmZsZENoYXIgdzpmbGRDaGFyVHlwZT0iYmVnaW4iLyZndDsgJmx0Oy93OnImZ3Q7ICZsdDt3
OnImZ3Q7ICZsdDt3Omluc3RyVGV4dCAKeG1sOnNwYWNlPSJwcmVzZXJ2ZSImZ3Q7IFtzb21lIHRl
eHQgaGVyZV0gJmx0Oy93Omluc3RyVGV4dCZndDsgJmx0Oy93OnImZ3Q7ICZsdDt3OnImZ3Q7IAom
bHQ7dzpmbGRDaGFyIHc6ZmxkQ2hhclR5cGU9InNlcGFyYXRlIi8mZ3Q7ICZsdDsvdzpyJmd0OyAm
bHQ7dzpyIHc6cnNpZFJQcj0iMDA3QzA5RjYiJmd0OyAKJmx0O3c6clByJmd0OyAmbHQ7dzpyRm9u
dHMgdzphc2NpaT0iQ2FsaWJyaSIgdzpoQW5zaT0iQ2FsaWJyaSIgdzpjcz0iQ2FsaWJyaSIvJmd0
OyAKJmx0Oy93OnJQciZndDsgJmx0O3c6dCZndDsgW3NvbWUgdGV4dCBoZXJlXSAmbHQ7L3c6dCZn
dDsgJmx0Oy93OnImZ3Q7ICZsdDt3OnImZ3Q7ICZsdDt3OmZsZENoYXIgCnc6ZmxkQ2hhclR5cGU9
ImVuZCIvJmd0OyAmbHQ7L3c6ciZndDsgfAo8YnI+Cjxicj53b3VsZCB0aGUgfGNvbS5zdW4uc3Rh
ci50ZXh0LlRleHRGaWVsZC5CaWJsaW9ncmFwaHl8IGludGVyZmFjZSBhbGxvdyBtZSAKdG8gd3Jp
dGUgdGhlIGFib3ZlIGNvZGU/Cjxicj48L2Jsb2NrcXVvdGU+Cjxicj5raW5kIG9mLCB0aGVyZSBp
cyBjb2RlIHRvIGV4cG9ydCBpdCBhcyBhIENJVEFUSU9OIGZpZWxkIGluIApEb2N4QXR0cmlidXRl
T3V0cHV0OjpFbmRGaWVsZF9JbXBsIGluIApzdy9zb3VyY2UvZmlsdGVyL3d3OC9kb2N4YXR0cmli
dXRlb3V0cHV0LmN4eC4KPGJyPgo8YnI+dGhlIG90aGVyIG9wdGlvbiBpcywgeW91IGNvdWxkIGlu
c2VydCB0aGlzIHdpdGggYXJiaXRyYXJ5IGNvbnRlbnQgdmlhIAp0aGUgRmllbGRtYXJrIHNlcnZp
Y2UsIGFuZCBzaW5jZSBhYm91dCB2ZXJzaW9uIDcuMyB0aGlzIGtpbmQgb2Ygd29ya3MgaW4gCnRo
ZSBkb2N1bWVudCBtb2RlbCBhbmQgY2FuIGJlIHN0b3JlZCBhcyBhbiBPREYgZXh0ZW5zaW9uIGlu
IGFkZGl0aW9uIHRvIApET0NYL1JURi4KPGJyPgo8YnI+aG93ZXZlciB0aGVyZSBpcyBjdXJyZW50
bHkgbm8gaW1wbGVtZW50YXRpb24gb2YgKmV4cGFuZGluZyogdGhlIApmaWVsZG1hcmssIHRoYXQg
aXMsIHRoZXJlIGlzIG5vIGNvZGUgdG8gZXZhbHVhdGUgdGhlIGZpZWxkbWFyayBjb21tYW5kIAph
bmQgb3ZlcndyaXRlIHRoZSBmaWVsZG1hcmsgcmVzdWx0Lgo8YnI+PC9ibG9ja3F1b3RlPg=="
        aria-hidden="true"
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0;padding:0;margin:0;">​</div>
    </div>
  </body>
</html>