6

I have 160 tex files named "regj.tex" for j=1,...,160. Each file contains a table. These tex files do not contain the preamble/begin{document}/end{document}. For example reg1.tex is

\begin{table}[htbp]\centering
\caption{Reg1}
\begin{tabular}{l*{9}{c}}
\hline\hline
            &\multicolumn{1}{c}{(1.1)}&\multicolumn{1}{c}{(1.2)}&\multicolumn{1}{c}{(1.3)}&\multicolumn{1}{c}{(2.1)}&\multicolumn{1}{c}{(2.2)}&\multicolumn{1}{c}{(2.3)}&\multicolumn{1}{c}{(3.1)}&\multicolumn{1}{c}{(3.2)}&\multicolumn{1}{c}{(3.3)}\\
\hline
A&      0.0599&       0.172&       0.110&       0.200&       0.574&       0.368&       640.2&      1836.0&      1177.8\\
            &         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)\\
[1em]
B&      -3.181&      -2.978&      -2.967&      -0.875&      -0.197&      -0.160&     -2929.9&      -762.1&      -641.9\\
            &         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)\\
[1em]
C&      -13.09&      -15.68&      -15.28&       15.56&       6.904&       8.245&     44234.8&     16538.5&     20827.6\\
            &         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)\\
[1em]
D&   -259451.5&   -242691.5&   -241750.9&    -70803.4&    -14782.8&    -11638.9&-238755093.5& -59586716.2& -49531616.2\\
            &         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)\\
[1em]
E&     69993.2&     65360.3&     65152.5&     20567.4&      5081.7&      4387.2&  70028268.8&  20501094.0&  18279814.0\\
            &         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)&         (.)\\
\hline
Number of observations:&          30&          30&          30&          30&          30&          30&          30&          30&          30\\
\hline\hline
\multicolumn{10}{l}{\footnotesize \textit{t} statistics in parentheses}\\
\end{tabular}
\end{table}

I would like to create an executable tex file reg0.tex calling all the tables with a loop. How can I do it?

Star
  • 186
user
  • 61

2 Answers2

13

There are numerous ways to do this, but the simplest given what you've described is to use the pgffor package which provides a simple syntax for such loops:

\documentclass{article}
\usepackage{pgffor}
% next code just generates some files to mimic yours
\begin{filecontents}{test-table-1.tex}
\begin{table}[htpb]
\begin{tabular}{ccc}
A & B & C\\
A & B & C
\end{tabular}
\end{table}
\end{filecontents}
\begin{filecontents}{test-table-2.tex}
\begin{table}[htpb]
\begin{tabular}{ccc}
D & E & F\\
D & E & F
\end{tabular}
\end{table}
\end{filecontents}
\begin{filecontents}{test-table-3.tex}
\begin{table}[htpb]
\begin{tabular}{ccc}
G & H & I\\
G & E & F
\end{tabular}
\end{table}
\end{filecontents}
%end of files
\begin{document}
\foreach \x in {1,...,3}{
\input{test-table-\x}
}
\end{document}

output of code

Alan Munn
  • 218,180
6

Here's an approach based on the LaTeX 3 syntax made available by expl3. I modified the table a bit to get it to fit. Otherwise, I just duplicated your example to 3 different files with 3 different captions.

Obviously, geometry is optional. I just used it to make things fit for demonstration purposes.

The preamble defines a new command with the following syntax

\inputloop[<optional prefix>]{<number of files>}

If no optional prefix is given, reg is used as the default.

\documentclass[a4paper]{article}
\usepackage{expl3,xparse,geometry}
\geometry{scale=.9}
\ExplSyntaxOn
\NewDocumentCommand\inputloop { O { reg } m }
 {
  \int_step_inline:nnnn { 1 } { 1 } { #2 }
   {
    \input { #1 ##1 }
   }
 }
\ExplSyntaxOff
\begin{document}
  \small
  \inputloop{3}
\end{document}

looping input

egreg
  • 1,121,712
cfr
  • 198,882
  • I took the liberty of streamlining a bit your code. ;-) – egreg Oct 24 '15 at 21:52
  • @egreg I was about to do it! I just have to understand it before I use it.... – cfr Oct 24 '15 at 21:54
  • Slicker, isn't it? :-) – egreg Oct 24 '15 at 21:56
  • @egreg Yes, of course. Thank you :). How do I know when I need a \begin_group: ... \end_group:. Is it just when I'd need a group? I mean, I saw lots of examples using it where I didn't think people would have used groups - at least, it wasn't obvious why - so I started to think there was something different here. – cfr Oct 24 '15 at 21:58
  • In the old code there was no need for groups. There would be if you nested calls using the same variable. It's no different from standard TeX programming. – egreg Oct 24 '15 at 22:00
  • Thanks. The 'no different...' is the bit I wanted. I figured if they weren't necessary here, they weren't necessary with my scenic route either. I think I've just somehow come to associate them with this syntax for some reason. – cfr Oct 24 '15 at 22:02
  • @egreg If you didn't need to use the value but only to increment it to keep count, would you still use this or is there something better? Using this seems easier than what I had, but I don't actually need to make use of the value. Maybe that doesn't matter? – cfr Oct 24 '15 at 22:09
  • Probably \prg_replicate:nn is what you need. – egreg Oct 24 '15 at 22:10
  • @egreg Thank you! Yes, that indeed works well. It means an additional step first to manipulate the counter, but it is still simpler, I think. I would not have thought of looking elsewhere in the manual than stuff with int in it somewhere. – cfr Oct 24 '15 at 22:30