Я хочу создать отдельный файл для таблиц, чтобы не загромождать основной файл latex. Я знаю, что могу определить таблицы в новом файле и добавить тот же файл в основной файл с помощью input{Tables.tex}. Однако я не уверен, как я могу запросить/создать (не ссылаться) таблицы, используя метки таблиц в основном документе? Любые предложения будут оценены по достоинству. Спасибо.
решение1
Вот файл tables.tex, содержащий таблицы
\newcommand{\firsttable}{% no arguments
\begin{table}[htbp]
\begin{center}
\begin{tabular}{|ccc|}
\hline
This & is & a \\
stupid & table. & \\
\hline
\end{tabular}
\caption{First}
\end{center}
\end{table}}
\newcommand{\secondtable}{% no arguments
\begin{table}[htbp]
\begin{center}
\fbox{\begin{tabular}{ccc}
This & is & another \\
stupid & table.
\end{tabular}}
\caption{Second}
\end{center}
\end{table}}
Вот основной файл
\documentclass{article}
\usepackage{lipsum}
\input{tables}% file containing cammands
\begin{document}
\lipsum[1]
\firsttable
\lipsum[2]
\secondtable
\lipsum[3]
\end{document}
Примечание: проще отлаживать таблицы в тексте, прежде чем превращать их в команды.
решение2
Что я делаю (используя threeparttable
), так это помещаю всю threeparttable в файл table.tex. Это включает заголовок. Я всегда помещаю внутри \label
- \caption
у меня никогда не было проблем с этим, и это спасает меня от забывчивости. Метка совпадает с именем файла, что упрощает перекрестные ссылки.
Мой основной файл .tex включает в себя:
\begin{table}
\input{table.tex}
\end{table}
This is some text that refers to table~\ref{tab_table}.
в то время как мой табличный файл имеет \caption{\label{tab_table}Это таблица} \begin{tabular} ... \end{tabular}
в этом.
Поведение тогда будет точно таким же, как если бы все содержимое table.tex было введено в то место, где оно находится \input
в главном файле.
Существуют различные инструменты для создания таблиц без набора текста или запоминания всего синтаксиса, но на них не влияет использование \input
. Ваш редактор может включать что-то, или есть плагин для OpenOffice, например.