латексное отражение команды - PullRequest
0 голосов
/ 02 декабря 2009

У меня есть следующий вариант использования: таблица имеет заголовок раздела, подраздела или подраздела, например:

    \section*{Table name}
    \begin{tabular*} ...
    \end{tabular*}

Поскольку таблица может появиться в разделе, подразделе и т. Д. Я подумал, что мог бы определить заголовок и нижний колонтитул таблицы как макросы и дополнительно передать тип заголовка таблицы (раздел, подраздел, подраздел, абзац ...) Так что это требует от меня иметь что-то вроде:

    \#1*{Table name}
    \begin{tabular*} ...
    \end{tabular*}

где # 1 - передаваемый параметр макроса. Есть ли шанс достичь чего-л. как это?

Большое спасибо,
Ованес

1 Ответ

3 голосов
/ 02 декабря 2009

Конечно, ты почти понял. (Хотя есть ли причина, по которой вы используете заголовки разделов, а не заголовки таблиц?)

\newenvironment{tablesection}[2][\section]{
  #1*{#2}
  \begin{tabular*}
}{
  \end{tabular*}
}

и используйте его как

\begin{tablesection}[\subsection]{Table Name}{cc}
a & bb \\
aa & b \\
\end{tablesection}

Если вы опустите необязательный аргумент в квадратных скобках, по умолчанию используется \section.

Помните (La) TeX работает с расширением макроса, поэтому любой поток токенов, который вы передаете во входные данные, может использоваться в качестве текста замены в определении макроса. (С некоторыми ограничениями для «специальных символов», таких как % и т. Д.)

...