Quero criar um arquivo separado para tabelas para que o arquivo principal de látex não fique confuso. Eu sei que posso definir tabelas em um novo arquivo e adicionar o mesmo arquivo no arquivo principal usando input{Tables.tex}. Porém, não tenho certeza de como posso solicitar/produzir (não consultar) as tabelas usando os rótulos das tabelas no documento principal? Qualquer sugestão seria apreciada. Obrigado.
Responder1
Aqui está o arquivo tabelas.tex contendo as tabelas
\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}}
Aqui está o arquivo principal
\documentclass{article}
\usepackage{lipsum}
\input{tables}% file containing cammands
\begin{document}
\lipsum[1]
\firsttable
\lipsum[2]
\secondtable
\lipsum[3]
\end{document}
Nota: É mais fácil depurar tabelas no texto antes de transformá-las em comandos.
Responder2
O que eu faço (usando threeparttable
) é colocar toda a tabela de três partes no arquivo table.tex. Isso inclui a legenda. Eu sempre coloco \label
dentro do \caption
- nunca tive problema assim e isso me poupa de esquecer. O rótulo é igual ao nome do arquivo, o que facilita a referência cruzada.
Meu arquivo .tex principal inclui:
\begin{table}
\input{table.tex}
\end{table}
This is some text that refers to table~\ref{tab_table}.
enquanto meu arquivo de tabela tem \caption{\label{tab_table}Esta é uma tabela} \begin{tabular} ... \end{tabular}
iniciar.
O comportamento seria exatamente como se todo o conteúdo de table.tex tivesse sido digitado no local onde está \input
no arquivo mestre.
Existem várias ferramentas para produzir tabelas sem digitar ou lembrar toda a sintaxe - mas elas não são afetadas pelo uso do \input
. Seu editor pode incluir algo, ou existe um plugin para openoffice, por exemplo.