diff --git a/docx/font/TSDocxFont.tsf b/docx/font/TSDocxFont.tsf index c4987bb..ef37b6a 100644 --- a/docx/font/TSDocxFont.tsf +++ b/docx/font/TSDocxFont.tsf @@ -552,7 +552,7 @@ Begin End; Function TSDocxFont.ReadPosition();virtual; Begin - return pr_.Value("Position ") / 2; + return pr_.Value("Position") / 2; End; Function TSDocxFont.WriteScaling(value);virtual; @@ -620,20 +620,24 @@ End; Function TSDocxFont.WriteSubscript(value);virtual; Begin - pr_.VertAlign := "subscript"; + if value then pr_.VertAlign := "subscript"; + else if self.Subscript then pr_.VertAlign := "none"; End; Function TSDocxFont.ReadSubscript();virtual; Begin - return pr_.Value("VertAlign"); + val := pr_.Value("VertAlign"); + return val = "subscript"; End; Function TSDocxFont.WriteSuperscript(value);virtual; Begin - pr_.VertAlign := "supercript"; + if value then pr_.VertAlign := "supercript"; + else if self.Superscript then pr_.VertAlign := "none"; End; Function TSDocxFont.ReadSuperscript();virtual; Begin - return pr_.Value("VertAlign"); + val := pr_.Value("VertAlign"); + return val = "supercript"; End; Function TSDocxFont.WriteUnderline(value);virtual; @@ -725,6 +729,6 @@ Begin End; Function TSDocxFont.ReadUnderlineColor();virtual; Begin - return color_[pr_.Value("UColor")]; + return color_[pr_.Value("UColor", true)]; End; diff --git a/docx/utils/TSWdColor.tsf b/docx/utils/TSWdColor.tsf index 99d52f1..9089050 100644 --- a/docx/utils/TSWdColor.tsf +++ b/docx/utils/TSWdColor.tsf @@ -67,7 +67,7 @@ Begin hash2 := hash; for k, v in hash do hash2[v] := k; - hash2[nil] := TSDocxEnumerations.wdColorAutomatic(); + if ifnil(hash2[nil]) then hash2[nil] := TSDocxEnumerations.wdColorAutomatic(); return hash2; diff --git a/docx/utils/TSWdColorIndex.tsf b/docx/utils/TSWdColorIndex.tsf index cdb009e..434eea9 100644 --- a/docx/utils/TSWdColorIndex.tsf +++ b/docx/utils/TSWdColorIndex.tsf @@ -26,7 +26,7 @@ Begin hash2 := hash; for k, v in hash do hash2[v] := k; - hash2[nil] := TSDocxEnumerations.wdAuto(); + if ifnil(hash[nil]) then hash2[nil] := TSDocxEnumerations.wdAuto(); return hash2;