You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Overleaf中Python生成SVG图的文字与正文字号一致

解决Overleaf中SVG图文字大小与正文不一致及图片过大问题

核心问题分析

  • 混淆了LaTeX的**印刷字号(pt)**和屏幕像素(px):你设置的10pt是LaTeX正文基准印刷字号,并非12px,这是字号不匹配的根源。
  • SVG生成尺寸过大:figsize=(16,14)的英寸尺寸远超LaTeX页面可用宽度,导入时用width=0.75\columnwidth强制缩放,导致图中文字被过度压缩,和正文脱节。

分步解决方案

1. 对齐LaTeX与Matplotlib/Seaborn的字号基准

Matplotlib默认字体大小为10pt,刚好匹配你LaTeX文档的10pt正文,无需设置font_scale=12/10,反而会让图中文字偏大。

  • 若要图中文字和LaTeX正文完全一致,直接配置:
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # 匹配Overleaf默认字体(Computer Modern)
    plt.rcParams['font.family'] = 'serif'
    plt.rcParams['font.serif'] = ['Computer Modern Roman']
    plt.rcParams['font.size'] = 10  # 和LaTeX正文10pt对齐
    sns.set(font_scale=1.0)  # 基于10pt基准缩放,保持1.0即可
    
  • 若希望图中文字稍小(比如匹配LaTeX的\footnotesize,约8pt),则设置font_scale=0.8。

2. 按LaTeX目标尺寸生成SVG,避免过度缩放

先计算0.75\columnwidth的实际宽度:
B5纸宽176mm,左右边距各25mm,单栏情况下columnwidth=176-25-25=126mm,0.75\columnwidth=94.5mm≈3.72英寸(1mm=0.03937英寸)。

  • 按此宽度设置figsize,保留原宽高比:
    target_width_inch = 3.72  # 对应0.75\columnwidth的实际宽度
    aspect_ratio = 14/16  # 保留你原来的宽高比例
    fig = plt.Figure(figsize=(target_width_inch, target_width_inch * aspect_ratio))
    

生成的SVG宽度刚好匹配导入时的0.75\columnwidth,无需大幅缩放,文字大小自然和正文一致。

3. 优化Overleaf的SVG导入代码

去掉冗余的\centerline,\centering已足够实现居中:

\begin{figure}[H]
    \centering
    \includesvg[inkscapelatex=false, width=0.75\columnwidth]{Figures/fig1.svg}
    \caption{figure caption}
    \label{fig:fig1}
\end{figure}

4. 更稳妥的替代方案:生成PDF图而非SVG

SVG导入易受字体渲染、缩放影响,直接生成PDF图可让LaTeX渲染图中文字,完全匹配正文字体和字号:

  1. Python生成PDF:
    # 开启LaTeX渲染文字
    plt.rcParams['text.usetex'] = True
    plt.rcParams['font.family'] = 'serif'
    plt.rcParams['font.size'] = 10
    
    # 保存为PDF,bbox_inches='tight'避免裁剪内容
    fig.savefig('Figures/fig1.pdf', bbox_inches='tight', dpi=300)
    
  2. Overleaf导入PDF:
    \begin{figure}[H]
        \centering
        \includegraphics[width=0.75\columnwidth]{Figures/fig1.pdf}
        \caption{figure caption}
        \label{fig:fig1}
    \end{figure}
    

此方法下,图中所有文字(标签、刻度、图例)都会由LaTeX处理,缩放时自动适配正文大小,彻底解决字号不一致问题。

内容的提问来源于stack exchange,提问作者vegiv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 03:00:55