From de16a29a63f3776841af849a99dc65e1aa509ca2 Mon Sep 17 00:00:00 2001 From: Matt McCutchen Date: Mon, 7 Sep 2020 20:16:14 -0400 Subject: [PATCH 1/1] Import SuperbChemistry version 2.1 Modification time: 2007-02-05 20:21:05 -0500 --- SuperbChemistry-test.odt | Bin 7642 -> 7613 bytes extension/SuperbChemistry/Main.xba | 15 ++++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/SuperbChemistry-test.odt b/SuperbChemistry-test.odt index a1cf54ab7511e6982b63081c4469e364075c24e1..3802718d2565e748aa08cdfb828b1f170734323e 100644 GIT binary patch delta 3024 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 delta 3158 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 Ee_&6R@Bjb+ diff --git a/extension/SuperbChemistry/Main.xba b/extension/SuperbChemistry/Main.xba index 33ccbd1..3b0640e 100644 --- a/extension/SuperbChemistry/Main.xba +++ b/extension/SuperbChemistry/Main.xba @@ -1,6 +1,6 @@ -' Matt McCutchen's SuperbChemistry for OpenOffice, version 2 +' Matt McCutchen's SuperbChemistry for OpenOffice, version 2.1 ' ' Applies superscript and subscript formatting to chemical formulas in text. ' @@ -72,12 +72,13 @@ sub FormatDocument ' for further processing. If the replacement text could use ' backreferences, this would be easier. -' Tag candidate quantity/charges following symbols or ). -SuperbReplace(ThisComponent, "([A-Z][a-z]?|[\])}])[0-9]*[-+−]", "&@g@", 0) - -' Disqualify + and - in compound words, etc. -SuperbReplace(ThisComponent, "@g@[[({A-Za-z0-9<>]", "@G@&", 0) -SuperbReplace(ThisComponent, "@G@@g@", "", 0) +' Tag candidate charges following symbols or ), but not in compound words, etc. +' Acceptable next character. (Has to be before end of line to avoid matching @g@ tag itself.) +SuperbReplace(ThisComponent, "([A-Z][a-z]?|[\])}])[0-9]*[-+−][^[({A-Za-z0-9<>]", "&@G@", 0) +' Retag in front. +SuperbReplace(ThisComponent, ".@G@", "@g@&", 0) +' End of line. +SuperbReplace(ThisComponent, "([A-Z][a-z]?|[\])}])[0-9]*[-+−]$", "&@g@", 0) ' O and )]} grab a single digit as quantity. SuperbReplace(ThisComponent, "[\])}O][0-9]", "&@n@", 0) -- 2.34.1