Documentation Index
Fetch the complete documentation index at: https://mintlify.com/p-ranav/tabulate/llms.txt
Use this file to discover all available pages before exploring further.
Font Alignment
Tabulate supports three font alignment settings to control how text is positioned within table cells. By default, all table content is left-aligned.
Alignment Options
You can align text in cells using the following options:
FontAlign::left - Align text to the left (default)
FontAlign::center - Center text horizontally
FontAlign::right - Align text to the right
Basic Usage
Use .format().font_align(alignment) to set alignment for cells, rows, columns, or the entire table.
// Center align a specific column
table.column(2).format()
.font_align(FontAlign::center);
// Right align a column
table.column(3).format()
.font_align(FontAlign::right);
Practical Example
Here’s a complete example showing how to align different columns in a movies table:
#include <tabulate/table.hpp>
using namespace tabulate;
int main() {
Table movies;
movies.add_row({"S/N", "Movie Name", "Director", "Estimated Budget", "Release Date"});
movies.add_row({"tt1979376", "Toy Story 4", "Josh Cooley", "$200,000,000", "21 June 2019"});
movies.add_row({"tt3263904", "Sully", "Clint Eastwood", "$60,000,000", "9 September 2016"});
movies.add_row({"tt1535109", "Captain Phillips", "Paul Greengrass", "$55,000,000", " 11 October 2013"});
// center align 'Director' column
movies.column(2).format()
.font_align(FontAlign::center);
// right align 'Estimated Budget' column
movies.column(3).format()
.font_align(FontAlign::right);
// right align 'Release Date' column
movies.column(4).format()
.font_align(FontAlign::right);
// center-align and color header cells
for (size_t i = 0; i < 5; ++i) {
movies[0][i].format()
.font_color(Color::yellow)
.font_align(FontAlign::center)
.font_style({FontStyle::bold});
}
std::cout << movies << std::endl;
}
Alignment follows the style inheritance model. Cell-level alignment overrides row and column alignment, which in turn overrides table-level alignment.
Alignment Hierarchy
Column-level alignment
Apply alignment to all cells in a column using table.column(index).format().font_align(alignment)
Row-level alignment
Apply alignment to all cells in a row using table[row_index].format().font_align(alignment)
Cell-level alignment
Override alignment for a specific cell using table[row][col].format().font_align(alignment)
Common Patterns
A common pattern is to center-align header rows while keeping data rows left-aligned:
// Center all header cells
for (auto& cell : table[0]) {
cell.format().font_align(FontAlign::center);
}
Numeric Data
For columns containing numeric data (like prices or dates), right alignment typically improves readability:
// Right-align numeric columns
table.column(3).format().font_align(FontAlign::right); // Budget
table.column(4).format().font_align(FontAlign::right); // Date
When working with tables containing numeric data, consider right-aligning those columns for better visual alignment of decimal points and numbers.