Skip to content
Back to skills

Paper Png

ASecurity

Gera figuras científicas de alta qualidade (PNG 300 DPI, fundo transparente) a partir do conteúdo de um paper científico, recebido como PDF anexo, link de URL, ou DOI, seguindo o estilo editorial de journals como Elsevier, JMLR e NeurIPS: paleta neutra, tipografia serifada, bordas finas, sem gradientes. Use esta skill SEMPRE que o usuário pedir "/paper-png", "gera uma figura para o paper", "cria uma imagem científica", "diagrama para publicação", "figura para artigo", "ilustração para o meu p...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
educationpythongo

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add labdaps/labskills --skill paper-png --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Paper Png?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Paper Png
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/labdaps-paper-png/badge)](https://www.skillsdirectory.com/skills/labdaps-paper-png)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: paper-png
description: >
  Gera figuras científicas de alta qualidade (PNG 300 DPI, fundo transparente) a partir do
  conteúdo de um paper científico, recebido como PDF anexo, link de URL, ou DOI, seguindo
  o estilo editorial de journals como Elsevier, JMLR e NeurIPS: paleta neutra, tipografia
  serifada, bordas finas, sem gradientes. Use esta skill SEMPRE que o usuário pedir
  "/paper-png", "gera uma figura para o paper", "cria uma imagem científica", "diagrama para
  publicação", "figura para artigo", "ilustração para o meu paper", "converte em figura de
  journal", "gera PNG do diagrama", "cria figura científica do paper", ou quando um PDF /
  link de paper for enviado com pedido de ilustração, diagrama de fluxo, figura de
  metodologia, figura de resultado ou qualquer figura destinada a publicação acadêmica.
  Produz PNG 300 DPI com fundo transparente, pronto para \includegraphics{} no LaTeX.
---

# Skill /paper-png: gerador de figuras científicas para papers

Transforma conteúdo de um artigo científico (PDF, URL ou DOI) em figura PNG de alta
resolução, no estilo visual de journals de referência (Elsevier / JMLR / NeurIPS).

---

## Quando acionar

- Gatilho explícito: `/paper-png`
- PDF de paper + pedido de figura, diagrama, fluxograma ou ilustração
- Link ou DOI de paper + pedido de figura
- Pedidos como: "cria uma figura da metodologia", "diagrama do pipeline", "figura de resultado",
  "ilustra o algoritmo", "figura para o meu artigo", "gera uma imagem científica"

---

## Fluxo de execução

### Passo 1: Ler a referência de estilo

Antes de qualquer código, ler:

```
"${CLAUDE_SKILL_DIR}/references/style_guide.md"
```

Este arquivo contém: paleta de cores exata, tamanhos de fonte, hierarquia tipográfica,
regras de layout e os valores Python prontos para copiar.

---

### Passo 2: Obter o conteúdo do paper

**Caso A, PDF anexado:**
- Ler o PDF com a ferramenta Read (ou `pdftotext` se for longo)
- Extrair: título, autores, venue/ano, objetivo, metodologia/pipeline, resultados principais

**Caso B, URL ou link:**
- Usar `web_fetch` na URL fornecida
- Se for arXiv (`arxiv.org/abs/XXXX`), converter para PDF: `arxiv.org/pdf/XXXX`
- Extrair as mesmas seções do Caso A

**Caso C, DOI:**
- Construir URL: `https://doi.org/{DOI}` e usar `web_fetch`
- Se for paywall, tentar `web_search` com título + "PDF" ou "preprint"
- Extrair o que for acessível; indicar ao usuário se o acesso for parcial

**Conteúdo mínimo necessário para prosseguir:**
- Título do paper e autores
- Objetivo / problema central
- Metodologia ou pipeline (etapas, componentes, fluxo)
- Se pedido de figura de resultado: métricas numéricas principais

---

### Passo 3: Identificar o tipo de figura

Com base no conteúdo extraído e no pedido do usuário, classificar:

| Tipo | Quando usar | Referência de layout |
|---|---|---|
| **Fluxograma** | Pipeline, algoritmo iterativo, processo com decisão | `"${CLAUDE_SKILL_DIR}/references/layout_flowchart.md"` |
| **Diagrama de arquitetura** | Modelo ML, sistema com componentes, DAG | `"${CLAUDE_SKILL_DIR}/references/layout_architecture.md"` |
| **Figura de resultado** | Tabela de métricas visual, comparação de modelos | `"${CLAUDE_SKILL_DIR}/references/layout_results.md"` |
| **Diagrama conceitual** | Taxonomia, hierarquia, relação entre conceitos | adaptar `layout_architecture.md` |

Se o usuário especificou o tipo, usar esse. Se não, inferir do conteúdo e confirmar:

> "Vou gerar um **fluxograma** da metodologia. Correto, ou prefere outro tipo?"

---

### Passo 4: Gerar a figura (Python + PIL)

**Especificações obrigatórias:**

```python
W, H = <calculado dinamicamente>   # proporção retrato ~1:1.3 a 1:1.6
DPI  = 300
img  = Image.new("RGBA", (W, H), (0, 0, 0, 0))   # fundo TRANSPARENTE
```

**Fontes obrigatórias (DejaVu, suporte completo a Unicode/math):**
```python
SANS   = '/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
SANS_B = '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf'
SANS_I = '/usr/share/fonts/truetype/dejavu/DejaVuSans-Oblique.ttf'
MONO   = '/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf'
MONO_B = '/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf'
```

**Regras críticas de posicionamento:**
- SEMPRE usar `draw.textbbox((0,0), text, font=fnt)` para medir texto antes de posicionar
- NUNCA usar `anchor='lm'` ou `anchor='rm'` no PIL, calcular manualmente com textbbox
- Texto centrado: `cx - width//2, cy - height//2`
- Texto alinhado à direita: `x - width, cy - height//2`
- Verificar visualmente que nenhum elemento extrapola as bordas do canvas

**Paleta e estilo**, ver `"${CLAUDE_SKILL_DIR}/references/style_guide.md"` para valores exatos.

**Estrutura do código:**

```python
# 1. Importações
from PIL import Image, ImageDraw, ImageFont

# 2. Funções auxiliares (TW, TC, rr, arr_v, arr_h, badge, chip)
# 3. Paleta de cores
# 4. Cálculo de dimensões baseado no conteúdo
# 5. Criação do canvas RGBA transparente
# 6. Desenho: blocos de fase (se houver) → cards → setas → labels → badges
# 7. Salvar em <pasta de figuras do projeto>/<slug>.png com dpi=(300,300)
```

---

### Passo 5: Preview e validação

Antes de entregar, ler a imagem gerada com a ferramenta Read para verificar:

- [ ] Nenhum texto cortado ou extrapolando bordas
- [ ] Nenhum `□` (glifo ausente), se aparecer, substituir por ASCII equivalente
- [ ] Proporção retrato (largura < altura), sem espaço vazio excessivo
- [ ] Fundo transparente confirmado (RGBA, não RGB)
- [ ] Labels de setas dentro dos blocos correspondentes
- [ ] Rail de loop (se existir) visível e com label dentro do canvas

Se houver problemas, corrigir e regenerar antes de entregar.

---

### Passo 6: Entregar

Salvar o PNG com nome descritivo na pasta de figuras do projeto (`figures/` ou a que o
manuscrito já usa) e entregar com a ferramenta SendUserFile.

Incluir no texto:
- Dimensões e DPI confirmados
- Snippet LaTeX para uso imediato:
  ```latex
  \begin{figure}[t]
    \centering
    \includegraphics[width=\textwidth]{<nome_descritivo>.png}
    \caption{<sugestão de caption baseada no paper>}
    \label{fig:<slug>}
  \end{figure}
  ```

---

## Regras de qualidade inegociáveis

1. **Fundo transparente**, sempre `Image.new("RGBA", ...)`, nunca `"RGB"`
2. **300 DPI**, sempre `img.save(path, dpi=(300,300))`
3. **Sem overflow**, medir tudo com `textbbox` antes de posicionar
4. **Sem glifos quebrados**, testar símbolos matemáticos com DejaVu antes de usar
5. **Proporção retrato**, canvas altura > largura; eliminar espaço vazio com cálculo dinâmico de altura
6. **Paleta neutra**, sem cores saturadas; máximo um tom de destaque (bordô ou navy)
7. **Hierarquia legível**, título da fase bold 29px, título de card bold 30px, fórmula mono 28px, nota italic 23px (em 1890px de largura)
8. **Preview obrigatório**, nunca entregar sem ler a imagem gerada com a ferramenta Read

---

## Exemplos de uso

**Com PDF anexo:**
> `/paper-png` + arquivo PDF no upload
→ Extrai metodologia → gera fluxograma da pipeline

**Com URL:**
> `/paper-png https://arxiv.org/abs/2303.08774`
→ Busca o paper → identifica tipo de figura → gera

**Com instrução específica:**
> `/paper-png, quero uma figura de resultado com as métricas da Tabela 3`
→ Extrai Tabela 3 → gera figura de resultado com comparação visual de modelos

**Com DOI:**
> `/paper-png 10.1016/j.jbi.2023.104350, diagrama da arquitetura`
→ Acessa via doi.org → extrai arquitetura → gera diagrama de componentes

Files in this skill

  • SKILL.md7.4 KB
  • references/layout_architecture.md2.7 KB
  • references/layout_flowchart.md5.5 KB
  • references/layout_results.md3.3 KB
  • references/style_guide.md10.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…