
В чем проблема этой дурацкой таблицы?
\begin{table}[h]
\centering{
\begin{tabular} {l l l l l l l l}
\hline
B & F & C & P & B \lor F & P \lor C & \lnot (F \land C) & \lnot (P \land B) \\ % ERROR= missing $ inserted
T & T & T & T \\
\hline
\end{tabular}
}
\end{table}
решение1
LaTeX хорош для набора математических формул, но он не обладает даром ясновидения: он не узнает, что вы хотите набрать какую-то математическую формулу, пока вы ему об этом не скажете.
Некоторые команды можно использовать только в математическом режиме, и выдача сообщения об ошибке при их обнаружении вне этого режима — лучший способ сообщить пользователю, что что-то не так.
Действительно, первая ошибка, которая возникает при наборе кода, — это
! Missing $ inserted.
<inserted text>
$
l.5 B & F & C & P & B \lor
F & P \lor C & \lnot (F \land C) & \lnot ...
что в точности означает, что TeX нашел математическую команду в неподходящем месте. Автор TeX мог запрограммировать его так, чтобы он использовал математический режим для неуместного символа, но это легко привело бы к плохому набору.
Естьбольшойразница между
B $\lor$ F
и
$B\lor F$
как показано на следующем рисунке:
Главное отличие — форма букв. Буквы, обозначающие математические переменные, набирались курсивом на протяжении столетий, и использование математического режима вокруг всей формулы гарантирует это. Определенные типографские традиции используют вертикальный шрифт для заглавных переменных, особенно французские, и можно настроить TeX так, чтобы он следовал этому другому стилю. В любом случае, вам гарантировано, что буквы будут набраны так, как нужно, независимо от контекста, если они встречаются в математической формуле.
Любое хорошее руководство по LaTeX расскажет вам, какие команды переводят его в математический режим; их несколько, особенно если вы
\usepackage{amsmath}
чтобы загрузить пакет, специализированный для набора математических текстов, который предоставляет десятки сред и команд, решающих множество задач со сложными математическими формулами: многострочное выравнивание, разделение уравнений, матрицы, точки и т. д.
Итак, как лучше всего набрать таблицу, в которой все ячейки должны быть в математическом режиме? Легко, используйте математический режим для всего:
\begin{table}[htp] % <---- don't forget t and p
\centering
$% start math mode
\begin{array} {l l l l l l l l}
\hline
B & F & C & P & B \lor F & P \lor C & \lnot (F \land C) & \lnot (P \land B) \\
T & T & T & T \\
\hline
\end{array}
$
\end{table}
Обратите внимание, что \centering
это объявление не требует аргумента: оно означает «на протяжении всего срока действия текущей среды, набрано по центру».
Окружение array
является математическим аналогом tabular
: оно должно быть выдано в математическом режиме, поэтому оно окружено $
знаками, и все ячейки будут неявно использовать математический режим.
Вы можете захотеть набрать «T» (для «истина», если я правильно понял вашу цель) прямым шрифтом, чтобы обозначить, что это не переменная. Вы можете определить
\newcommand{\True}{\mathrm{T}}
в преамбуле и введите вторую строку как
\True & \True & \True & \True \\
и ваша таблица будет иметь вид
Зачем использовать длинную команду вместо одной буквы? Потому что это добавляетзначениена ваш ввод. Это конкретное «T» используется с очень конкретным значением (логическая истина), которое отличается от любого другого его использования. А еще лучше, если вы измените определение в преамбуле на
\newcommand{\True}{\top}
один запуск LaTeX изменитвсеэти буквы T (и только те, которые означают «истина») на другой символ (который, кстати, часто используется логиками вместе со \bottom
словом «ложь»).
Определение макросов для конкретных задач — одна из самых полезных функций (La)TeX: таким образом ваш документ будет максимально независим от определенного стиля; вам не придется жестко задавать определенное соглашение, поэтому вы можете свободно его изменять.равномерноваши условности, если обстоятельства (например, придирчивый рецензент или редактор) так диктуют.