How to align text into columns on canvas

I am trying to create a signature block using format(). I want to have the names and titles line up on the same row of the page line up with the names below ie:
Screen Shot 2021-09-18 at 4.12.18 PM

I have tried using RightPad(Name,100-Name.Length()) to space them, however I think due to i not being as wide as M it won’t work with this technique. Has anyone found a way to get this to work?

one trick i have used is to set the text in the column to be a code-block. then you get a fixed-width font. but you also get a box drawn around the whole text

1 Like

You can play around with Card() hidden formula that takes its varargs and shows them as inline blocks:

However I’d say just make a decorless table and put your text on it, in columns:

1 Like

Can you elaborate on how card() behaves differently than concat()?

Concatenate() merges items into rich text with paragraphs.


And Card() doesn’t merge content from items. Instead it renders each argument as a block (as if it were an inline formula on a canvas) and then collectively renders it as a single block where those sub-blocks are basically rendered as top-aligned columns:


If there’s something constraining a Card(), e.g. it’s a cell formula, then the width of the outer block expands to fill the full width of the cell, and column widths get distributed proportionally to the length of content. Technically it’s a <table> with one row and each argument rendered in its own <td>.

Card() has some extra padding. Also it’s responsive to clicks. When used in table context, clicking a Card value will open the row’s layout. So not super suitable for use there.