Hi, On Wed, Aug 10, 2011 at 12:38 PM, Skipper Seabold <jsseab...@gmail.com> wrote: > On Wed, Aug 10, 2011 at 3:28 PM, Matthew Brett <matthew.br...@gmail.com> > wrote: >> Hi, >> >> I think this one might be for Pauli. >> >> I've run into an odd problem that seems to be an interaction of >> numpydoc and autosummary and large classes. >> >> In summary, large classes and numpydoc lead to large tables of class >> methods, and there seems to be an error in the creation of the large >> tables in latex. >> >> Specifically, if I run 'make latexpdf' with the attached minimal >> sphinx setup, I get a pdflatex error ending thus: >> >> ... >> l.118 \begin{longtable}{LL} >> >> and this is because longtable does not accept LL as an argument, but >> needs '|l|l|' (bar - el - bar - el - bar). >> >> I see in sphinx.writers.latex.py, around line 657, that sphinx knows >> about this in general, and long tables in standard ReST work fine with >> the el-bar arguments passed to longtable. >> >> if self.table.colspec: >> self.body.append(self.table.colspec) >> else: >> if self.table.has_problematic: >> colwidth = 0.95 / self.table.colcount >> colspec = ('p{%.3f\\linewidth}|' % colwidth) * \ >> self.table.colcount >> self.body.append('{|' + colspec + '}\n') >> elif self.table.longtable: >> self.body.append('{|' + ('l|' * self.table.colcount) + '}\n') >> else: >> self.body.append('{|' + ('L|' * self.table.colcount) + '}\n') >> >> However, using numpydoc and autosummary (see the conf.py file), what >> seems to happen is that, when we reach the self.table.colspec test at >> the beginning of the snippet above, 'self.table.colspec' is defined: >> >> In [1]: self.table.colspec >> Out[1]: '{LL}\n' >> >> and thus the LL gets written as the arg to longtable: >> >> \begin{longtable}{LL} >> >> and the pdf build breaks. >> >> I'm using the numpydoc out of the current numpy source tree. >> >> At that point I wasn't sure how to proceed with debugging. Can you >> give any hints? >> > > It's not a proper fix, but our workaround is to edit the Makefile for > latex (and latexpdf) to > > https://github.com/statsmodels/statsmodels/blob/master/scikits/statsmodels/docs/Makefile#L94 > https://github.com/statsmodels/statsmodels/blob/master/scikits/statsmodels/docs/make.bat#L121 > > to call the script to replace the longtable arguments > > https://github.com/statsmodels/statsmodels/blob/master/scikits/statsmodels/docs/fix_longtable.py > > The workaround itself probably isn't optimal, and I'd be happy to hear > of a proper fix.
Thanks - yes - I found your workaround in my explorations, I put in a version in our tree too: https://github.com/matthew-brett/nipy/blob/latex_build_fixes/tools/fix_longtable.py - but I agree it seems much better to get to the root cause. See you, Matthew _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion