Проблемы унифицированного подхода к построению таблиц
Унифицированный способ формирования таблиц — это попытка свести все виды таблиц к одной привычной электронной таблице, совместимой с режимом WYSIWYG. Разработчики программного обеспечения обнаружили, что сеточная форма позволяет легко импортировать данные из электронных таблиц и баз данных, которые имеют сходную структуру.
Фундаментальный порок такого подхода состоит в том, что все, чем вы располагаете, ограничивается предлагаемой сеткой. Вы не можете создать одну ячейку шире остальных без того, чтобы все ячейки в этой колонке не стали шире. Вам не удастся подвесить буквы за границей ячейки, потому что они будут перенесены в соседнюю ячейку, и нельзя создать пробелы между строками или между колонками. И вам, и вашим данным надо приноравливаться к единой форме таблиц.
Каждая ячейка в такой таблице — это по существу маленькая текстовая рамка со всеми особенностями, которые несет с собой объект текстовой рамки (более подробную информацию о текстовых рамках см. в гл. 12). Среди таких особенностей — неопределенность расположения первой линии шрифта относительно верхнего края ячейки, поскольку это расстояние не совпадает у разных шрифтов. Подобная неопределенность приводит к тому, что смешанный шрифт в пределах таблицы формирует разные линии шрифта в соседних ячейках одной строки.
Сетчатая структура таблицы создает трудности и в определении пробелов - расстояний между колонками или строками. Все ячейки таблицы соединяются друг с другом встык и так отображаются на экране. Программы могут определять ширину пробелов разными способами: от расстояния между колонками до отступов текста, которые задают отступ текста в каждой ячейке от ее границ. Но вы никогда не увидите эти пробелы на экране, как можно видеть, например, пробелы между колонками текста, и зачастую единственный способ увидеть границы ячеек — это использовать разграничительные линейки. А если вы не видите границы пробелов, то вы почти никогда не узнаете, почему текст выравнивается так, а не иначе. Заполняют ли данные всю ячейку, или ширина ее уменьшена за счет отступов (рис. 15.6).
Ситуация становится еще хуже, если ваша программа устанавливает пробелы с помощью отступов текста. Для фиксирования пробела между двумя колонками, вам нужно разделить ширину пробела на два; а затем одну половину использовать для определения правого отступа в ячейках первой колонки, а другую — для левого отступа в ячейках второй колонки.
IstQuarter 2nd Quarter
|
Когда вы определяете горизонтальные линейки в стиле таблицы, линейка над строкой совпадает с верхними границами ячеек. Как мы уже видели, это вносит неопределенность: невозможно точно задать расстояние между первой строкой текста и линейкой над ним. Кроме того, в ячейке не всегда можно определить заранее расстояние между линией шрифта последней текстовой строки в ячейке и нижней границей ячейки (или расположения горизонтальной линейки под строкой таблицы). В некоторых программах такой отступ в нижней части ячейки измеряется от границы ячейки до линии шрифта последней строки текста, единственно
РИС. 15.6. Если на экране не показаны границы пробелов, разделяющих колонки таблицы, невозможно сказать, почему текстовые данные выравниваются именно так. В верхнем примере таблица отображается на экране без линеек, поэтому не видно пробелов и того, как текст соотносится с ними. В нижнем примере у всех ячеек линейки проявили пробелы, но по-прежнему трудно понять, где границы пробелов и как отступы, табуляторы или другие элементы влияют на текст
Логичный вариант его определения. (Более подробно об этом см. далее в этой главе.)
Нередко реальный способ определения пространственных отношений в таблицах, подобных электронной, — это создание таблицы с нужными гарнитурой шрифта, кеглем и интерлиньяжем, форматом колонки, затем контрольная печать, измерение расстояний вручную, а только после этого — окончательная настройка соответствующих значений. Все это скверно.