mcpField
P
pnas-figure-guide

pnas-figure-guide

github.com/jaechang-hits设计与 UI38467 次安装6 天前更新
代码仓库

关于 pnas-figure-guide

PNAS Figure Preparation Guide 是供投稿作者准备 PNAS 配图的参考指南,整理期刊特定要求,并提供 Python 示例以检查图像属性。

主要功能

  1. 01按图像类型规定分辨率
  2. 02列出可接受格式与尺寸
  3. 03说明 RGB 色彩模式要求
  4. 04字体与分面标签规范
  5. 05图像完整性政策
  6. 06Python 配图验证示例

适用场景

  1. 01投稿前检查 PNAS 配图
  2. 02选择导出分辨率和图像尺寸
  3. 03核验色彩模式与嵌入字体
  4. 04准备符合规范的分面标签和图像说明

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jaechang-hits/sciagent-skills --skill pnas-figure-guide

安装后在 Claude Code 中输入/pnas-figure-guide确认已加载。

详细介绍

PNAS 图表准备指南

概述

本指南提供了向 PNAS(美国国家科学院院刊)投稿时准备图表的完整规范。PNAS 以其严格的仅限 RGB 政策(CMYK 投稿会被退回)、斜体大写面板标签以及自动图像筛查软件而著称。

官方参考:https://www.pnas.org/author-center/submitting-your-manuscript


分辨率要求

图像类型最低分辨率备注
半色调图像(彩色/灰度照片)300 PPI按出版尺寸计算
组合图稿(MS Office)600-900 DPI混合文本和图像
线条图(位图文本/细线条)1,000 PPI按出版尺寸计算
LaTeX 图表—高质量 PDF 或 EPS
from PIL import Image

def check_pnas_resolution(image_path, image_type='halftone'):
    """Check if image meets PNAS resolution requirements.

    Args:
        image_type: 'halftone' (300), 'combination' (600), or 'lineart' (1000)
    """
    min_ppi = {'halftone': 300, 'combination': 600, 'lineart': 1000}
    required = min_ppi.get(image_type, 300)

    img = Image.open(image_path)
    dpi = img.info.get('dpi', (72, 72))

    print(f"Type: {image_type} | Required: {required} PPI | Actual: {dpi[0]} PPI")

    if dpi[0] >= required:
        print("PASS")
    else:
        print(f"FAIL: Need {required} PPI minimum")

    return dpi[0] >= required

文件格式

格式是否接受
TIFF是(栅格图像首选)
EPS是(必须嵌入字体)
PDF是(必须嵌入字体)
PPT是
3D 图像PRC 或 U3D,附带 2D 表示(TIFF/EPS/PDF)
投稿阶段
  • 初次投稿:格式不限——提交一份包含完整稿件、图表和 SI 的 PDF。无需提供高分辨率文件。
  • 制作阶段:需要单独上传高分辨率图表文件。

图表大小和尺寸

重要:请按最终出版尺寸提供图像,而非整页尺寸。

版式宽度
1 栏8.7 cm(3.43 in)
1.5 栏11.4 cm(4.5 in / 27 picas)
2 栏17.8 cm(7.0 in / 42.125 picas)
最大高度22.5 cm(9 in / 54 picas)
import matplotlib.pyplot as plt

PNAS_WIDTHS = {
    'single':  8.7 / 2.54,   # 3.43 inches
    'middle':  11.4 / 2.54,  # 4.49 inches
    'double':  17.8 / 2.54,  # 7.01 inches
}
PNAS_MAX_HEIGHT = 22.5 / 2.54  # 8.86 inches

def create_pnas_figure(layout='single', aspect_ratio=0.75):
    """Create a Matplotlib figure sized for PNAS."""
    width = PNAS_WIDTHS[layout]
    height = min(width * aspect_ratio, PNAS_MAX_HEIGHT)

    fig, ax = plt.subplots(figsize=(width, height))
    fig.set_dpi(300)
    return fig, ax

色彩模式

关键:仅限 RGB
  • 仅以 RGB 色彩模式提交
  • CMYK 投稿将被退回修改
  • 为 RGB 图像嵌入源 ICC 配置文件,以确保准确进行 RGB 到 CMYK 的转换
  • PNAS 使用校准后的配置文件管理印刷转换
from PIL import Image

def validate_pnas_color_mode(image_path):
    """PNAS strictly requires RGB. CMYK will be rejected."""
    img = Image.open(image_path)

    if img.mode == 'CMYK':
        print("REJECTED: PNAS does not accept CMYK images")
        print("Action: Convert to RGB before submission")
        return False
    elif img.mode in ('RGB', 'RGBA'):
        print("PASS: Image is in RGB mode")
        return True
    else:
        print(f"WARNING: Unexpected mode '{img.mode}'; convert to RGB")
        return False

def convert_to_rgb(image_path, output_path):
    """Convert any image to RGB for PNAS submission."""
    img = Image.open(image_path)
    if img.mode != 'RGB':
        img = img.convert('RGB')
        print(f"Converted from {img.mode} to RGB")
    img.save(output_path)

字体要求

元素规范
认可的字体Arial、Helvetica、Times、Symbol、Mathematical Pi、European Pi
字号最终出版尺寸下为 6-8 pt(印刷时至少为 2 mm)
一致性稿件中的所有图表使用相同字体
文本类型优先使用矢量文本(可清晰缩放)
嵌入EPS 和 PDF 文件中必须嵌入所有字体
面板标签(PNAS 特有规范)
  • 斜体大写字母:A、B、C、D,……
  • 这是 PNAS 的独特规范,与大多数其他期刊不同
import matplotlib.pyplot as plt

def set_pnas_fonts():
    """Configure Matplotlib for PNAS figure fonts."""
    plt.rcParams.update({
        'font.family': 'sans-serif',
        'font.sans-serif': ['Arial', 'Helvetica'],
        'font.size': 7,
        'axes.labelsize': 7,
        'axes.titlesize': 7,
        'xtick.labelsize': 6,
        'ytick.labelsize': 6,
        'legend.fontsize': 6,
    })

def add_pnas_panel_labels(fig, axes):
    """Add PNAS-style italicized uppercase panel labels."""
    import string
    if not hasattr(axes, '__iter__'):
        axes = [axes]

    for i, ax in enumerate(axes):
        label = string.ascii_uppercase[i]
        ax.text(-0.1, 1.1, label,
                transform=ax.transAxes,
                fontsize=8,
                fontstyle='italic',
                fontweight='bold',
                va='top',
                ha='right',
                fontfamily='Arial')

标签规范

  • 面板标签:斜体大写(A、B、C)
  • 缩小后,所有文本、数字、字母和符号均为 6-12 pt(2-6 mm)
  • 每幅图中的文字大小必须保持一致
  • 标签应符合正文的字体规范

图像完整性与处理政策

禁止
  • 增强、遮盖、移动、移除或添加图像中的任何特定特征
允许
  • 调整整幅图像的亮度、对比度和色彩平衡,但不得遮盖或消除原始信息(包括背景)
必须
  • 合并多个来源的图像时,必须通过排布和图注文字明确说明
  • 在 Methods 部分注明图像处理软件
  • 在图注中说明所有处理操作
  • 根据要求提供原始数据(缺少数据可能导致拒稿)
自动筛查

PNAS 使用筛查软件检测:

  • 克隆和粘贴痕迹
  • 遮盖数据的可疑对比度调整
  • 不一致的背景像素化
  • 其他不当处理图像的迹象
无障碍访问
  • 从第 123 卷开始,PNAS 为所有期刊图表添加替代文本,以提升数字无障碍访问体验

Python 快速入门:完整验证

from PIL import Image
import os

def validate_pnas_figure(image_path, image_type='halftone', layout='single'):
    """Full validation of a figure against PNAS requirements."""
    img = Image.open(image_path)
    issues = []

    # 1. Resolution check
    min_ppi = {'halftone': 300, 'combination': 600, 'lineart': 1000}
    required = min_ppi.get(image_type, 300)
    dpi = img.info.get('dpi', (72, 72))
    if dpi[0] < required:
        issues.append(f"Resolution {dpi[0]} PPI below {required} PPI for {image_type}")

    # 2. STRICT RGB check
    if img.mode == 'CMYK':
        issues.append("REJECTED: CMYK not accepted. Must convert to RGB")
    elif img.mode not in ('RGB', 'RGBA'):
        issues.append(f"Color mode '{img.mode}' not standard; use RGB")

    # 3. Dimension check at publication size
    widths_cm = {'single': 8.7, 'middle': 11.4, 'double': 17.8}
    max_height_cm = 22.5
    if layout in widths_cm and dpi[0] > 0:
        actual_w_cm = (img.size[0] / dpi[0]) * 2.54
        actual_h_cm = (img.size[1] / dpi[1]) * 2.54
        target_w = widths_cm[layout]
        if actual_h_cm > max_height_cm:
            issues.append(f"Height {actual_h_cm:.1f} cm exceeds max {max_height_cm} cm")
        print(f"Print size: {actual_w_cm:.1f} x {actual_h_cm:.1f} cm (target width: {target_w} cm)")

    # 4. Format check
    fmt = img.format
    accepted = ['TIFF', 'EPS', 'PDF', 'PNG', 'JPEG']
    if fmt and fmt.upper() not in accepted:
        issues.append(f"Format '{fmt}' not in preferred list (TIFF, EPS, PDF)")

    # Report
    print(f"=== PNAS Figure Validation ===")
    print(f"Dimensions: {img.size[0]} x {img.size[1]} px")
    print(f"DPI: {dpi[0]} x {dpi[1]}")
    print(f"Color mode: {img.mode}")

    if issues:
        print(f"\nISSUES FOUND ({len(issues)}):")
        for issue in issues:
            print(f"  - {issue}")
    else:
        print("\nAll checks PASSED")

    return len(issues) == 0

关键概念

严格的 RGB 专用政策

PNAS 执行科学出版领域最严格的色彩模式政策之一。CMYK 投稿会被退回,不予评审。作者必须以 RGB 色彩模式提交所有图,并为图像标注其源 ICC 配置文件,以确保期刊制作团队能准确地将 RGB 转换为 CMYK。

三级分辨率体系

PNAS 使用 PPI(每英寸像素数)而非 DPI,并设定了三个级别:半色调图(照片)为 300 PPI,组合图(包含来自 MS Office 的文本和图像)为 600-900 DPI,线稿(位图文本和细线)为 1,000 PPI。图像在最终发表尺寸下必须达到这些阈值。

自动图像筛查

PNAS 使用筛查软件,自动检测不当图像处理的迹象,包括克隆/粘贴伪影、可疑的对比度调整,以及不一致的背景像素化。这种自动筛查是编辑评审的补充,可以发现人工检查可能遗漏的问题。

决策框架

What color mode is your image?
├── CMYK → REJECTED (convert to RGB before submission)
├── RGB → Accepted
│   └── ICC profile tagged? → Recommended for accurate print conversion
└── Grayscale → Convert to RGB

What type of image?
├── Halftone (photo/micrograph) → 300 PPI minimum
├── Combination (MS Office mixed) → 600-900 DPI
├── Line art (bitmap text/lines) → 1,000 PPI
└── LaTeX figure → High-quality PDF or EPS

What submission stage?
├── Initial → Single PDF with all content (format-neutral)
└── Production → Separate high-resolution figure uploads
情形格式分辨率色彩模式
显微图TIFF300 PPIRGB(嵌入 ICC 配置文件)
PowerPoint 图表PPT 或 TIFF600-900 DPIRGB
示意图EPS 或 PDF矢量或 1,000 PPIRGB
凝胶/印迹图像TIFF300 PPIRGB
3D 分子模型PRC/U3D + TIFF300 PPI(2D 备用方案)RGB

最佳实践

  1. 提交前将 CMYK 转换为 RGB:PNAS 会将 CMYK 文件退回,不予评审。上传前务必使用图像元数据工具检查色彩模式
  2. 为 RGB 图像嵌入 ICC 配置文件:嵌入源 ICC 配置文件可确保在 PNAS 的印刷制作流程中准确转换颜色
  3. 按最终发表尺寸提供图像:PNAS 要求图按栏宽设置尺寸(8.7/11.4/17.8 cm)。不要提交超大图像并指望期刊调整尺寸
  4. 使用斜体大写分面标签:PNAS 有一项独特规范——A、B、C(斜体、大写),与大多数其他期刊不同
  5. 在 EPS 和 PDF 文件中嵌入所有字体:缺少字体会导致渲染失败。使用矢量文本而非栅格化文本,以便清晰缩放
  6. 准备无障碍替代文本:自第 123 卷起,PNAS 为所有图提供替代文本。在准备图时撰写替代文本可节省修订时间
  7. 在 Methods 中注明图像处理软件:PNAS 要求明确列出使用的所有图像处理软件,而不只是笼统描述所做的调整

常见问题

  1. 以 CMYK 色彩模式提交图:PNAS 严格拒绝 CMYK。这是最常见且可避免的图稿拒稿原因
    • 如何避免:提交前对每张图运行色彩模式验证脚本;将 CMYK 转换为 RGB
  2. 线稿使用 300 PPI:包含位图文本的线稿需要 1,000 PPI。使用 300 PPI 时,细线和小字会显得锯齿明显
    • 如何避免:按类型对每张图分类(半色调图、线稿或组合图),并应用相应的分辨率级别
  3. 提交大于发表尺寸的图:PNAS 要求图像采用最终尺寸,而非超大尺寸。过大的图可能会被缩放,导致质量下降
    • 如何避免:导出前将画布尺寸设为目标栏宽
  4. 使用非斜体分面标签:PNAS 的斜体大写规范(A、B、C)独具特色。使用非斜体标签会显得不熟悉该期刊的规范
    • 如何避免:在 matplotlib 中对分面标签使用 fontstyle='italic',或在 Illustrator 中启用斜体设置
  5. 遗漏多来源合成图的标识:组合来自不同实验的图像时,PNAS 要求明确进行视觉和文字说明
    • 如何避免:在合成元素之间使用清晰的边框或留白,并在图注中说明组合方式

提交前检查清单

向 PNAS 提交图件前,请确认:

  • 半色调图像分辨率至少为 300 PPI;线稿分辨率至少为 1,000 PPI
  • 文件格式为 TIFF、EPS 或 PDF
  • 颜色模式为 RGB(不能使用 CMYK,否则会被拒收)
  • 已嵌入 ICC 配置文件,以确保准确转换颜色
  • 图件宽度符合栏宽布局(8.7 / 11.4 / 17.8 cm)
  • 图件高度不超过 22.5 cm
  • 提供的图像尺寸为最终出版尺寸
  • 字体为 Arial、Helvetica 或 Times,字号为 6-8 pt
  • EPS/PDF 中已嵌入所有字体
  • 面板标签为斜体大写字母(A、B、C)
  • 每幅图内的文字大小保持一致
  • 对整幅图统一应用所有调整
  • 在图例中明确标注由多个来源合成的图像
  • 在 Methods 中注明处理软件
  • 可提供未经处理的原始数据以供审查
  • 已准备无障碍替代文本

参考资料

评论

支持 Markdown