diff --git a/src/calibre/ebooks/docx/writer/styles.py b/src/calibre/ebooks/docx/writer/styles.py index f1647ad4e4..d2c7455a17 100644 --- a/src/calibre/ebooks/docx/writer/styles.py +++ b/src/calibre/ebooks/docx/writer/styles.py @@ -220,7 +220,7 @@ class TextStyle(DOCXStyle): self.spacing = None va = css.first_vertical_align if isinstance(va, (int, float)): - self.vertical_align = str(int(self.vertical_align * 2)) + self.vertical_align = str(int(va * 2)) else: val = { 'top':'superscript', 'text-top':'superscript', 'sup':'superscript', 'super':'superscript', diff --git a/src/calibre/ebooks/oeb/stylizer.py b/src/calibre/ebooks/oeb/stylizer.py index 31bef3089b..43e1434fe3 100644 --- a/src/calibre/ebooks/oeb/stylizer.py +++ b/src/calibre/ebooks/oeb/stylizer.py @@ -701,6 +701,9 @@ class Style(object): approximation of considering the first non-default vertical-align ''' val = self['vertical-align'] if val != 'baseline': + raw_val = self._get('vertical-align') + if '%' in raw_val: + val = self._unit_convert(raw_val, base=self['line-height']) return val parent = self._get_parent() if parent is not None and 'inline' in parent['display']: