Табуляция¶
Табуляция — это способ выравнивания и структурирования текстовых данных с помощью специальных символов или пробелов, а также процесс автоматического расчёта позиций колонок при наборе. В более узком смысле табуляция обозначает символ табуляции (табулятор) — управляющий знак, который перемещает курсор к следующей заранее определённой позиции (табуляционной остановке). Табуляция применяется в текстовых процессорах, языках программирования, таблицах и форматах обмена данными.
¶Термин и происхождение
Термин происходит от латинского tabula — «доска, таблица». Понятие пришло в информатику из типографии и пишущих машинок, где табуляция означала перевод каретки на заданную позицию для начала новой колонки или абзаца.
¶Табуляция в текстовых редакторах и форматах
¶Символ табуляции
Символ табуляции (табулятор) — управляющий символ, который в текстовых форматах отображается как горизонтальный таб (HT, ASCII-код 9). В Unicode ему соответствует U+0009. При отображении символ перемещает курсор к ближайшей следующей табуляционной остановке. По умолчанию многие редакторы устанавливают остановки через каждые 4 или 8 пробелов.
¶Отступы табом или пробелами
В программировании и текстовой вёрстке традиционно используются два подхода к созданию отступов: символы табуляции и последовательности пробелов. Дискуссия о предпочтительности одного из них ведётся давно. Сторонники табов указывают на меньший объём файлов и возможность настройки ширины отступа под конкретный редактор; сторонники пробелов — на единообразие отображения независимо от настроек. Многие стили оформления кода (например, PEP 8 для Python) рекомендуют использовать пробелы.
¶Табуляционные остановки
Табуляционные остановки (таб-стопы) — заранее заданные позиции по горизонтали, к которым перемещается курсор при вводе символа табуляции. В текстовых процессорах (Microsoft Word, LibreOffice Writer) остановки можно настраивать, задавая их тип: левое выравнивание, центр, правое выравнивание, десятичное выравнивание (для чисел с запятой) и разделитель. Десятичное выравнивание особенно удобно при оформлении бухгалтерских таблиц, где числа должны выстраиваться по запятой.
¶Табуляция в таблицах и разметке
¶Табличные форматы данных
Табуляция как разделитель полей используется в формате TSV (Tab-Separated Values), где колонки разделяются символом табуляции. TSV применяется для экспорта и импорта данных из баз данных, электронных таблиц и библиотек (например, в библиотеке Python pandas). Формат проще CSV, так как символ табуляции редко встречается в самих данных, и поэтому не требует экранирования.
¶HTML и вёрстка
В HTML для выравнивания текста по табуляционным остановкам используется CSS-свойство tab-size, позволяющее задать ширину табуляционного отступа в пробелах. Свойство text-align: justify и таблицы <table> исторически использовались для имитации табуляции в веб-вёрстке.
¶Табуляция в музыке
В музыкальной нотации табуляция (табулатура, от лат. tabulatura) — система записи музыки, в которой вместо нот на линейках указывается расположение пальцев на грифе инструмента. Табулатуры используются для гитары, лютни, банджо и других струнных инструментов. Гитарная табулатура состоит из шести горизонтальных линий (по числу струн), на которых цифрами обозначаются номера ладов. Формат широко распространён в интернете и музыкальном ПО (Guitar Pro, TuxGuitar).
¶Табуляция в пишущих машинках
В механических пишущих машинках табуляция была аппаратной функцией: оператор устанавливал табуляционные остановки на специальной шкале, а клавиша Tab переводила каретку к следующей остановке. Отсюда произошло разделение клавиш на Tab, Backspace и клавиши сдвига. В компьютерных клавиатурах клавиша Tab унаследована от этого механизма.
¶Клавиша Tab в компьютерных интерфейсах
В современных операционных системах клавиша Tab выполняет несколько функций:
- перемещение фокуса между элементами интерфейса (окнами, полями ввода, кнопками);
- автодополнение в командных оболочках (bash, PowerShell) и адресной строке браузера;
- создание отступа в текстовых редакторах и IDE;
- в некоторых приложениях — переключение вкладок.
¶Стандарты и кодирование
В ASCII символу табуляции присвоен код 9 (0x09). В семействе Unicode зарезервированы также вертикальная табуляция (VT, U+000B) и формат обмена данными (US, U+001F), хотя они используются значительно реже. В протоколах передачи данных (HTTP, XML) символ табуляции может быть представлен как управляющий символ или в виде последовательности 	 / 	.
¶Источники
- ГОСТ 7.83-2001. Электронные издания. Основные виды и выходные сведения
- PEP 8 — Style Guide for Python Code (Python Software Foundation)
- Unicode Standard, Chapter 2. General Structure
- Microsoft Typography documentation: Tab stops and tabulation
- TSV format specification (Tab-Separated Values)
