No kidding. The only thing that seems to work is to launch shinystan on the object and then generate a latex table from there. It’s an extra step, but it works.
fit = stan(model, data=data)
xtable(summary(fit)$summary)
I believe your original issue was that you were calling xtable on just summary(fit), which returns a list of summary dataframes (one summarising all chains, and then one per chain).