+ except DoesNotFit:
+ translators.pop()
+ translators_shortened = True
+
+ self.textboxes = [
+ author_box,
+ translator_box
+ ]
+
+ elif authors:
+ author_box = None
+ shortened = False
+ while author_box is None:
+ if not shortened and len(authors) == 2:
+ parts = authors
+ elif len(authors) > 2:
+ parts = [author + ',' for author in authors[:-1]] + [authors[-1]]
+ if shortened:
+ parts.append('i in.')
+ else:
+ parts = split_words(authors[0])
+ if shortened:
+ parts.append('i in.')
+
+ try:
+ if len(parts) > 1:
+ # Author in two lines.
+ author_box = TextBox(
+ self.width,
+ self.m.leading * 2,
+ parts,
+ author_font,
+ 2,
+ self.m.leading,
+ 0,
+ 1, 0
+ )
+ else:
+ # author in one line.
+ author_box = TextBox(
+ self.width,
+ self.m.leading * 2,
+ parts,
+ author_font,
+ 1,
+ self.m.leading,
+ 0,
+ 1, 0
+ )
+ except DoesNotFit:
+ authors.pop()
+ shortened = True
+
+ self.textboxes = [author_box]
+
+ if self.textboxes:
+ self.margin_top = self.textboxes[0].margin_top