コンテンツへスキップ
🛠️ToolsShed

テキスト列分割

テキストを複数の等幅列に分割して読みやすくします。

このツールについて

テキストカラムは、長いテキストを複数の等幅カラムに分割するシンプルなツールです。この段組レイアウトは新聞や書籍で採用されており、1行の文字数を制限して目の疲れを軽減し、カラム間を移動する際に読みやすさを保ちます。

ツールの使い方は簡単です。テキスト入力エリアにコンテンツを貼り付けて、希望するカラム数を選択するだけで、ツールが自動的にテキストを均等に配置します。記事、詩、エッセイ、またはその他の長いテキストを読みやすくフォーマットするのに最適です。

テキストカラムは、出版用コンテンツの準備、ニュースレターのデザイン、または単に長いドキュメントを視覚的に魅力的にするのに特に便利です。段組レイアウトはデスクトップとモバイルの両方に対応し、さまざまな画面サイズにスムーズに適応します。

よくある質問

コード実装

import textwrap

def text_to_columns(text: str, num_columns: int, col_width: int = 30) -> str:
    """Split text into N columns with specified column width."""
    lines = text.splitlines()
    wrapped = []
    for line in lines:
        if line.strip():
            wrapped.extend(textwrap.wrap(line, col_width) or [""])
        else:
            wrapped.append("")

    # Pad to fill columns evenly
    rows = -(-len(wrapped) // num_columns)  # ceiling division
    wrapped += [""] * (rows * num_columns - len(wrapped))

    result_lines = []
    for r in range(rows):
        row_parts = []
        for c in range(num_columns):
            idx = c * rows + r
            cell = wrapped[idx] if idx < len(wrapped) else ""
            row_parts.append(cell.ljust(col_width))
        result_lines.append("  ".join(row_parts))

    return "\n".join(result_lines)

text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " * 3
print(text_to_columns(text, num_columns=2, col_width=40))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.