diff --git a/klausur-service/backend/cv_cell_grid.py b/klausur-service/backend/cv_cell_grid.py index 56ccc53..e20499d 100644 --- a/klausur-service/backend/cv_cell_grid.py +++ b/klausur-service/backend/cv_cell_grid.py @@ -393,8 +393,13 @@ def build_cell_grid_v2( logger.info(f"R{row_idx:02d}: 0 words (row has " f"{row.word_count} total, y={row.y}..{row.y+row.height})") - # Apply noise filter - text = _clean_cell_text(text) + # Apply noise filter — but NOT for single-column sub-sessions: + # 1. _clean_cell_text strips trailing non-alpha tokens (e.g. €0.50, + # £1, €2.50) which are valid content in box layouts. + # 2. _clean_cell_text joins tokens with single space, destroying + # the proportional spacing from _words_to_spaced_text. + if not is_single_full_column: + text = _clean_cell_text(text) cell = { 'cell_id': f"R{row_idx:02d}_C{col_idx}",