Jenže znak U+2060 není proporcionální nezlomitelná mezera. Je to spojovač slov, byť já znám jeho fci hlavně z arabštiny kde když je namísto mezery mezi slovy, tak je spojí jako kdyby šlo o jedno slovo -> což v případě arabštiny znamená že změní koncovou podobu přechozího písmene a počáteční podobu následujícího písmene na jejich středové podoby.
V případě latinky to ale slova připojí k sobě jako kdyby mezi nimi mezera prostě nebyla.
Jestli jsem to správně pochopil z těch diskuzí (v tom vašem odkazu na Abclinuxu byly právě odkazy na bugzillu kde se to probíralo), tak v některých editorech se ta proporcionální nezlom. mezera dala vytvořit sekvencí 2 znaků a to právě u+2060 následované normální mezerou. To však není případ Libre kde to prostě je stále otevřené a kde se nastiňovaly i možné neplechy se zpětnou kompatibilitou kdyby se to nějak natvrdo zavedlo pro nějaký znak jak někdo navrhoval. Ale nějak detailně jsem to nezkoumal.
Nicméně mě se v Libre ta proporcionální nezlomitelná mezera v odstavci zarovnaném do bloku rozchodit nepovedla. Když se za u+2060 dá nezlomitelná mezera, neroztáhne ji to jako jiné mezery v bloku; když se za u+2060 dá normální mezera, tak na konci řádku to jednopísmenko ponechá a následující slovo odřádkuje jako pro normální mezeru.
Nevím co přesně byste tedy chtěl namakrovat, obyčejné nahrazení makrem jde např. takto:
Sub nahradMezeru
dim oDoc as object, oDescriptor as object
oDoc=ThisComponent
oDescriptor=oDoc.createReplaceDescriptor()
With oDescriptor
.SearchString="([aioóuksvz]) " 'co najít
.ReplaceString="$1" & chr(&H2060) 'čím nahradit
.SearchRegularExpression=true 'regulárně
.SearchCaseSensitive=false 'nehledět na velikost písmen
End With
oDoc.ReplaceAll(oDescriptor)
End Sub