Глюпый компег без подсказок не всегда может решить задачу оптического выравнивания.
Предоставляемые пакетом amsmath окружения *matrix реализованы
через стандартное array с центральным выравниванием каждого столбца.
Когда я набрал первую табличку к примеру на симплекс-метод, я
задумался: почему она странно выглядит? Дело было в омерзительно
выглядящем отрицательном числе -3 в одном из столбцов. За счёт
минуса цифра неприятно вывесилась через край.
(Обозначения сбоку для элементарных операций, выполняемых над матрицей, делаются с помощью пакета gauss).
Словом, всё выглядело так, как будто какая-то падла подошла сбоку и мочит со всей силы молотком, пытаясь выбить тройку из колонки.
Решить проблему можно по-разному.
Во-первых, минус (да и прочие графически слабые знаки) можно
вывешивать в межколоночное пространство. Например, можно определить с
помощью \llap команду, которая будет выводить минус слева от
курсора:
\newcommand{\mm}{\llap{$-$}}
Тогда можно будет писать \mm3 вместо -3.
Можно даже присвоить минусу активный код, чтобы не вводить постоянно \mm:
\def\m{-}
\catcode`\-=\active
\def\-{\llap{$\m$}}
Таким образом, минус будет вывешиваться за столбец целиком. Можно, кстати, попробовать вывесить его только на полширины, особенно, когда выше/ниже стоят более массивные числа.
Этот подход совершенно не может использоваться, когда проблемное число стоит в самом первом столбце (тут уже фантомы спешат на помощь).
Кроме того, можно просто все столбики выравнивать по правому краю. Это не всегда опрятно выглядит, когда в матрице есть строка с «заголовками» столбцов, а ещё могут получаться слишком большие белые дыры в матрице.
С минусом та же хрень, что и со всякой прочей пунктуацией в тексте — он оптически слабее цифр, а потому его следует чуточку выставлять за дверь, чтобы он не нарушал общего ритма.
Комментарии:
Концепт-арт падлы с молотком — классный! :)
Решения довольно интересные. Положил в закладки. А как-нибудь иначе решить нельзя?
Например, ввести корректирующий отрицательный пробел, и вставлять вручную?
Есть, кстати, близкая проблема. Автоматического выравнивания столбцов в таблице/матрице по десятичной точке.
Я пока не знаю решения.
Пакет
dcolumn? Ещё Кнут писал про это в TeX Book на p. 241, только там не автоматически :)Спасибо. То, что надо.