我正在尝试使用pandas to_latex()
函数来创建包含我的表格的PDF,但每次尝试我都会得到
在1--43行的段落中覆盖\ hbox(914.42409pt太宽)
或类似的错误。我知道这是因为我的桌子对于页面来说太大了,我的问题是,如何让我的桌子更小? to_latex
函数的文档似乎不是很广泛,所以我搜索解决方案的效果并不是很好。
我创建表和.tex文件的代码如下:
r = r.to_latex(na_rep = '0', float_format = fp(2), formatters=format_dict)
message = "\documentclass[12pt]{article}" \
"\\"+"begin{document} " \
"\section{20 Day Trading Stats}"
footer = "\end{document}"
message = message + r + footer
afile=open("outputfile.tex", "wb")
afile.write(message)
其中fp(2)
和format_dict
只是参数的格式规范。
我正在使用MikTeX和LEd构建PDF,如果重要,我的电脑正在运行Windows 7。
答案 0 :(得分:1)
一个解决方案可能是matrix2latex。此模块允许您将表格放在您喜欢的任何类型的环境中。通常,我会去:
from matrix2latex import matrix2latex
import numpy
data = numpy.array(r)
matrix2latex(data, 'outputfile.tex', 'table', 'tabular', 'small')
会导致:
\begin{table}[ht]
\begin{tabular}{cc...cc}
\toprule
\begin{small}
item1 & item2 &..... \\
...
\end{small}
\end{tabular}
\end{table}
显然,你可以改变小'对于你想要的任何事情,请记住你的论点顺序很重要。
希望这有帮助!
答案 1 :(得分:0)
解决您问题的另一种方法是在\ begin {table}内添加\ small。您可以使用以下代码进行操作:
df.to_latex(
os.path.join("file.tex"),
caption="My caption",
label="tab:subject_info",
escape=False,
column_format="cccccccccccccccc",
index=False,
)
with open("file.tex"), "r+") as f:
text = f.read().replace("\\begin{tabular}", "\small \\begin{tabular}")
f.seek(0)
f.write(text)
f.close()