@wentorai/research-plugins 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -18
- package/curated/analysis/README.md +12 -1
- package/curated/domains/README.md +48 -1
- package/curated/literature/README.md +46 -1
- package/curated/research/README.md +16 -1
- package/curated/tools/README.md +20 -1
- package/curated/writing/README.md +13 -1
- package/mcp-configs/academic-db/alphafold-mcp.json +20 -0
- package/mcp-configs/academic-db/brightspace-mcp.json +21 -0
- package/mcp-configs/academic-db/climatiq-mcp.json +20 -0
- package/mcp-configs/academic-db/gibs-mcp.json +20 -0
- package/mcp-configs/academic-db/gis-mcp-server.json +22 -0
- package/mcp-configs/academic-db/google-earth-engine-mcp.json +21 -0
- package/mcp-configs/academic-db/m4-clinical-mcp.json +21 -0
- package/mcp-configs/academic-db/medical-mcp.json +21 -0
- package/mcp-configs/academic-db/nexonco-mcp.json +20 -0
- package/mcp-configs/academic-db/omop-mcp.json +20 -0
- package/mcp-configs/academic-db/onekgpd-mcp.json +20 -0
- package/mcp-configs/academic-db/openedu-mcp.json +20 -0
- package/mcp-configs/academic-db/opengenes-mcp.json +20 -0
- package/mcp-configs/academic-db/openstax-mcp.json +21 -0
- package/mcp-configs/academic-db/openstreetmap-mcp.json +21 -0
- package/mcp-configs/academic-db/opentargets-mcp.json +21 -0
- package/mcp-configs/academic-db/pdb-mcp.json +21 -0
- package/mcp-configs/academic-db/smithsonian-mcp.json +20 -0
- package/mcp-configs/ai-platform/magi-researchers.json +21 -0
- package/mcp-configs/ai-platform/mcp-academic-researcher.json +22 -0
- package/mcp-configs/ai-platform/open-paper-machine.json +21 -0
- package/mcp-configs/ai-platform/paper-intelligence.json +21 -0
- package/mcp-configs/ai-platform/paper-reader.json +21 -0
- package/mcp-configs/ai-platform/paperdebugger.json +21 -0
- package/mcp-configs/browser/exa-mcp.json +20 -0
- package/mcp-configs/browser/mcp-searxng.json +21 -0
- package/mcp-configs/browser/mcp-webresearch.json +20 -0
- package/mcp-configs/communication/discourse-mcp.json +21 -0
- package/mcp-configs/data-platform/automl-stat-mcp.json +21 -0
- package/mcp-configs/data-platform/jefferson-stats-mcp.json +22 -0
- package/mcp-configs/data-platform/mcp-excel-server.json +21 -0
- package/mcp-configs/data-platform/mcp-stata.json +21 -0
- package/mcp-configs/data-platform/mcpstack-jupyter.json +21 -0
- package/mcp-configs/data-platform/ml-mcp.json +21 -0
- package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +20 -0
- package/mcp-configs/data-platform/numpy-mcp.json +21 -0
- package/mcp-configs/dev-platform/geogebra-mcp.json +21 -0
- package/mcp-configs/dev-platform/latex-mcp-server.json +21 -0
- package/mcp-configs/dev-platform/manim-mcp.json +20 -0
- package/mcp-configs/dev-platform/mcp-echarts.json +20 -0
- package/mcp-configs/dev-platform/panel-viz-mcp.json +20 -0
- package/mcp-configs/dev-platform/paperbanana.json +20 -0
- package/mcp-configs/dev-platform/texflow-mcp.json +20 -0
- package/mcp-configs/dev-platform/texmcp.json +20 -0
- package/mcp-configs/dev-platform/typst-mcp.json +21 -0
- package/mcp-configs/dev-platform/vizro-mcp.json +20 -0
- package/mcp-configs/note-knowledge/local-faiss-mcp.json +21 -0
- package/mcp-configs/note-knowledge/mcp-memory-service.json +21 -0
- package/mcp-configs/note-knowledge/mcp-obsidian.json +23 -0
- package/mcp-configs/note-knowledge/mcp-ragdocs.json +20 -0
- package/mcp-configs/note-knowledge/mcp-summarizer.json +21 -0
- package/mcp-configs/note-knowledge/mediawiki-mcp.json +21 -0
- package/mcp-configs/note-knowledge/openzim-mcp.json +20 -0
- package/mcp-configs/note-knowledge/zettelkasten-mcp.json +21 -0
- package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +20 -0
- package/mcp-configs/reference-mgr/academix.json +20 -0
- package/mcp-configs/reference-mgr/arxiv-research-mcp.json +21 -0
- package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +19 -0
- package/mcp-configs/reference-mgr/google-scholar-mcp.json +20 -0
- package/mcp-configs/reference-mgr/mcp-paperswithcode.json +21 -0
- package/mcp-configs/reference-mgr/mcp-scholarly.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +20 -0
- package/mcp-configs/reference-mgr/mcp-zotero.json +21 -0
- package/mcp-configs/reference-mgr/mendeley-mcp.json +20 -0
- package/mcp-configs/reference-mgr/ncbi-mcp-server.json +22 -0
- package/mcp-configs/reference-mgr/onecite.json +21 -0
- package/mcp-configs/reference-mgr/paper-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/pubmed-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-multi-mcp.json +21 -0
- package/mcp-configs/reference-mgr/seerai.json +21 -0
- package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +21 -0
- package/mcp-configs/reference-mgr/sourcelibrary.json +20 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +2 -2
- package/skills/analysis/dataviz/citation-map-guide/SKILL.md +184 -0
- package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +171 -0
- package/skills/analysis/econometrics/econml-causal-guide/SKILL.md +2 -2
- package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +192 -0
- package/skills/analysis/econometrics/mostly-harmless-guide/SKILL.md +2 -2
- package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +267 -0
- package/skills/analysis/econometrics/python-causality-guide/SKILL.md +2 -2
- package/skills/analysis/econometrics/stata-reference-guide/SKILL.md +293 -0
- package/skills/analysis/statistics/general-statistics-guide/SKILL.md +226 -0
- package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +106 -0
- package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +100 -0
- package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +197 -0
- package/skills/analysis/wrangling/streamline-analyst-guide/SKILL.md +119 -0
- package/skills/domains/ai-ml/ai-agent-papers-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/anomaly-detection-papers-guide/SKILL.md +167 -0
- package/skills/domains/ai-ml/autonomous-agents-papers-guide/SKILL.md +178 -0
- package/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.md +173 -0
- package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +2 -2
- package/skills/domains/ai-ml/graph-learning-papers-guide/SKILL.md +125 -0
- package/skills/domains/ai-ml/kolmogorov-arnold-networks-guide/SKILL.md +185 -0
- package/skills/domains/ai-ml/npcpy-research-guide/SKILL.md +137 -0
- package/skills/domains/ai-ml/responsible-ai-guide/SKILL.md +126 -0
- package/skills/domains/ai-ml/vmas-simulator-guide/SKILL.md +129 -0
- package/skills/domains/biomedical/clawbio-guide/SKILL.md +167 -0
- package/skills/domains/biomedical/clinical-dialogue-agents-guide/SKILL.md +145 -0
- package/skills/domains/biomedical/ena-sequence-api/SKILL.md +175 -0
- package/skills/domains/biomedical/genomas-guide/SKILL.md +126 -0
- package/skills/domains/biomedical/genotex-benchmark-guide/SKILL.md +125 -0
- package/skills/domains/biomedical/med-researcher-guide/SKILL.md +161 -0
- package/skills/domains/biomedical/med-researcher-r1-guide/SKILL.md +146 -0
- package/skills/domains/biomedical/ncbi-blast-api/SKILL.md +195 -0
- package/skills/domains/biomedical/ncbi-datasets-api/SKILL.md +220 -0
- package/skills/domains/biomedical/quickgo-api/SKILL.md +181 -0
- package/skills/domains/business/xpert-bi-guide/SKILL.md +84 -0
- package/skills/domains/chemistry/cactus-cheminformatics-guide/SKILL.md +89 -0
- package/skills/domains/chemistry/chemeagle-guide/SKILL.md +147 -0
- package/skills/domains/chemistry/chemgraph-agent-guide/SKILL.md +120 -0
- package/skills/domains/cs/ai-security-papers-guide/SKILL.md +103 -0
- package/skills/domains/cs/code-llm-papers-guide/SKILL.md +131 -0
- package/skills/domains/cs/gaussian-splatting-papers-guide/SKILL.md +158 -0
- package/skills/domains/cs/llm-aiops-guide/SKILL.md +70 -0
- package/skills/domains/cs/software-heritage-api/SKILL.md +200 -0
- package/skills/domains/economics/nber-working-papers-api/SKILL.md +177 -0
- package/skills/domains/economics/repec-economics-api/SKILL.md +188 -0
- package/skills/domains/education/academic-study-methods/SKILL.md +228 -0
- package/skills/domains/education/edumcp-guide/SKILL.md +74 -0
- package/skills/domains/education/open-syllabus-api/SKILL.md +171 -0
- package/skills/domains/finance/akshare-finance-data/SKILL.md +207 -0
- package/skills/domains/finance/finsight-research-guide/SKILL.md +113 -0
- package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +117 -0
- package/skills/domains/geoscience/pangaea-data-api/SKILL.md +197 -0
- package/skills/domains/humanities/digital-humanities-methods/SKILL.md +232 -0
- package/skills/domains/law/caselaw-access-api/SKILL.md +149 -0
- package/skills/domains/law/legal-agent-skills-guide/SKILL.md +132 -0
- package/skills/domains/law/legal-research-methods/SKILL.md +190 -0
- package/skills/domains/law/opencontracts-guide/SKILL.md +168 -0
- package/skills/domains/math/lean-theorem-proving-guide/SKILL.md +140 -0
- package/skills/domains/pharma/madd-drug-discovery-guide/SKILL.md +153 -0
- package/skills/domains/social-science/ipums-microdata-api/SKILL.md +211 -0
- package/skills/domains/social-science/sociology-research-methods/SKILL.md +181 -0
- package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +233 -0
- package/skills/literature/discovery/papers-we-love-guide/SKILL.md +169 -0
- package/skills/literature/discovery/zotero-arxiv-daily-guide/SKILL.md +2 -2
- package/skills/literature/fulltext/bioc-pmc-api/SKILL.md +146 -0
- package/skills/literature/fulltext/dataverse-api/SKILL.md +215 -0
- package/skills/literature/fulltext/hal-archive-api/SKILL.md +218 -0
- package/skills/literature/fulltext/osf-api/SKILL.md +212 -0
- package/skills/literature/fulltext/pmc-ftp-bulk-download/SKILL.md +182 -0
- package/skills/literature/fulltext/zotero-ai-butler-guide/SKILL.md +166 -0
- package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +168 -0
- package/skills/literature/metadata/bibliometrix-guide/SKILL.md +164 -0
- package/skills/literature/metadata/crossref-event-data-api/SKILL.md +183 -0
- package/skills/literature/metadata/doi-content-negotiation/SKILL.md +202 -0
- package/skills/literature/metadata/orkg-api/SKILL.md +153 -0
- package/skills/literature/metadata/plumx-metrics-api/SKILL.md +188 -0
- package/skills/literature/metadata/ror-organization-api/SKILL.md +208 -0
- package/skills/literature/metadata/sophosia-reference-guide/SKILL.md +110 -0
- package/skills/literature/metadata/viaf-authority-api/SKILL.md +209 -0
- package/skills/literature/metadata/zoplicate-dedup-guide/SKILL.md +147 -0
- package/skills/literature/metadata/zotero-actions-tags-guide/SKILL.md +212 -0
- package/skills/literature/metadata/zotmoov-guide/SKILL.md +120 -0
- package/skills/literature/metadata/zutilo-guide/SKILL.md +140 -0
- package/skills/literature/search/arxiv-cli-tools/SKILL.md +172 -0
- package/skills/literature/search/arxiv-osiris/SKILL.md +199 -0
- package/skills/literature/search/base-academic-search/SKILL.md +196 -0
- package/skills/literature/search/chatpaper-guide/SKILL.md +2 -2
- package/skills/literature/search/citeseerx-api/SKILL.md +183 -0
- package/skills/literature/search/deepgit-search-guide/SKILL.md +2 -2
- package/skills/literature/search/eric-education-api/SKILL.md +199 -0
- package/skills/literature/search/findpapers-guide/SKILL.md +177 -0
- package/skills/literature/search/ieee-xplore-api/SKILL.md +177 -0
- package/skills/literature/search/lens-scholarly-api/SKILL.md +211 -0
- package/skills/literature/search/multi-database-literature-search/SKILL.md +198 -0
- package/skills/literature/search/open-library-api/SKILL.md +196 -0
- package/skills/literature/search/open-semantic-search-guide/SKILL.md +190 -0
- package/skills/literature/search/openaire-api/SKILL.md +141 -0
- package/skills/literature/search/paper-search-mcp-guide/SKILL.md +107 -0
- package/skills/literature/search/papers-chat-guide/SKILL.md +194 -0
- package/skills/literature/search/pasa-paper-search-guide/SKILL.md +2 -2
- package/skills/literature/search/plos-open-access-api/SKILL.md +203 -0
- package/skills/literature/search/scielo-api/SKILL.md +182 -0
- package/skills/literature/search/share-research-api/SKILL.md +129 -0
- package/skills/literature/search/worldcat-search-api/SKILL.md +224 -0
- package/skills/research/automation/aim-experiment-guide/SKILL.md +2 -2
- package/skills/research/automation/claude-academic-workflow-guide/SKILL.md +202 -0
- package/skills/research/automation/coexist-ai-guide/SKILL.md +149 -0
- package/skills/research/automation/datagen-research-guide/SKILL.md +2 -2
- package/skills/research/automation/foam-agent-guide/SKILL.md +203 -0
- package/skills/research/automation/kedro-pipeline-guide/SKILL.md +2 -2
- package/skills/research/automation/mle-agent-guide/SKILL.md +2 -2
- package/skills/research/automation/paper-to-agent-guide/SKILL.md +2 -2
- package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +2 -2
- package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +200 -0
- package/skills/research/deep-research/corvus-research-guide/SKILL.md +132 -0
- package/skills/research/deep-research/in-depth-research-guide/SKILL.md +205 -0
- package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +185 -0
- package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +178 -0
- package/skills/research/deep-research/open-researcher-guide/SKILL.md +138 -0
- package/skills/research/methodology/claude-scientific-guide/SKILL.md +2 -2
- package/skills/research/methodology/parsifal-slr-guide/SKILL.md +154 -0
- package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +169 -0
- package/skills/research/methodology/slr-automation-guide/SKILL.md +235 -0
- package/skills/research/paper-review/latte-review-guide/SKILL.md +175 -0
- package/skills/research/paper-review/paper-critique-framework/SKILL.md +181 -0
- package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +110 -0
- package/skills/tools/diagram/clawphd-guide/SKILL.md +149 -0
- package/skills/tools/diagram/kroki-diagram-api/SKILL.md +198 -0
- package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +201 -0
- package/skills/tools/document/docsgpt-guide/SKILL.md +2 -2
- package/skills/tools/document/md2pdf-xelatex/SKILL.md +212 -0
- package/skills/tools/document/openpaper-guide/SKILL.md +232 -0
- package/skills/tools/document/weknora-guide/SKILL.md +216 -0
- package/skills/tools/document/zotero-addon-market-guide/SKILL.md +108 -0
- package/skills/tools/document/zotero-night-theme-guide/SKILL.md +142 -0
- package/skills/tools/document/zotero-style-guide/SKILL.md +217 -0
- package/skills/tools/knowledge-graph/graphiti-guide/SKILL.md +2 -2
- package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +135 -0
- package/skills/tools/knowledge-graph/notero-zotero-notion-guide/SKILL.md +187 -0
- package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +156 -0
- package/skills/tools/knowledge-graph/openspg-guide/SKILL.md +210 -0
- package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +84 -0
- package/skills/tools/knowledge-graph/zotero-markdb-connect-guide/SKILL.md +162 -0
- package/skills/tools/ocr-translate/latex-translation-guide/SKILL.md +176 -0
- package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +198 -0
- package/skills/tools/ocr-translate/pdf-math-translate-guide/SKILL.md +2 -2
- package/skills/tools/ocr-translate/zotero-pdf-translate-guide/SKILL.md +2 -2
- package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +2 -2
- package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +182 -0
- package/skills/writing/citation/citation-assistant-skill/SKILL.md +192 -0
- package/skills/writing/citation/jabref-reference-guide/SKILL.md +2 -2
- package/skills/writing/citation/jasminum-zotero-guide/SKILL.md +2 -2
- package/skills/writing/citation/mendeley-api/SKILL.md +231 -0
- package/skills/writing/citation/obsidian-citation-guide/SKILL.md +2 -2
- package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +2 -2
- package/skills/writing/citation/onecite-reference-guide/SKILL.md +168 -0
- package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +2 -2
- package/skills/writing/citation/papis-cli-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-better-bibtex-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-better-notes-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-gpt-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-mcp-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-reference-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +2 -2
- package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +200 -0
- package/skills/writing/composition/paper-debugger-guide/SKILL.md +2 -2
- package/skills/writing/composition/paperforge-guide/SKILL.md +205 -0
- package/skills/writing/composition/research-paper-writer/SKILL.md +226 -0
- package/skills/writing/composition/scientific-writing-resources/SKILL.md +2 -2
- package/skills/writing/latex/academic-writing-latex/SKILL.md +285 -0
- package/skills/writing/latex/latex-drawing-collection/SKILL.md +2 -2
- package/skills/writing/latex/latex-templates-collection/SKILL.md +2 -2
- package/skills/writing/polish/chinese-text-humanizer/SKILL.md +140 -0
- package/skills/writing/templates/arxiv-preprint-template/SKILL.md +184 -0
- package/skills/writing/templates/elegant-paper-template/SKILL.md +141 -0
- package/skills/writing/templates/novathesis-guide/SKILL.md +2 -2
- package/skills/writing/templates/sjtuthesis-guide/SKILL.md +2 -2
- package/skills/writing/templates/thuthesis-guide/SKILL.md +2 -2
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: math-equation-renderer
|
|
3
|
+
description: "Render LaTeX math equations as publication-ready PNG and SVG images"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🔢"
|
|
7
|
+
category: "tools"
|
|
8
|
+
subcategory: "ocr-translate"
|
|
9
|
+
keywords: ["latex math", "equation rendering", "math images", "formula to png", "math typesetting", "tex rendering"]
|
|
10
|
+
source: "https://clawhub.ai/huaruoji/math-images"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Math Equation Renderer — LaTeX to Image
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Rendering LaTeX math equations as standalone images (PNG, SVG, PDF) is essential for presentations, social media, documentation, and any context where native LaTeX rendering is unavailable. This guide covers multiple methods: command-line tools, Python libraries, and web APIs. Choose based on your workflow: batch processing favors CLI tools, while one-off equations work well with web APIs.
|
|
18
|
+
|
|
19
|
+
## Method 1: TeX + dvipng (Command Line)
|
|
20
|
+
|
|
21
|
+
The classic approach using a minimal LaTeX document:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Install prerequisites
|
|
25
|
+
# macOS: brew install --cask mactex
|
|
26
|
+
# Ubuntu: sudo apt install texlive-latex-base dvipng
|
|
27
|
+
|
|
28
|
+
# Create a minimal .tex file
|
|
29
|
+
cat > equation.tex << 'EOF'
|
|
30
|
+
\documentclass[border=2pt]{standalone}
|
|
31
|
+
\usepackage{amsmath,amssymb}
|
|
32
|
+
\begin{document}
|
|
33
|
+
$\displaystyle E = mc^2$
|
|
34
|
+
\end{document}
|
|
35
|
+
EOF
|
|
36
|
+
|
|
37
|
+
# Compile to DVI then PNG
|
|
38
|
+
latex equation.tex
|
|
39
|
+
dvipng -D 300 -bg Transparent -T tight equation.dvi -o equation.png
|
|
40
|
+
|
|
41
|
+
# Or compile directly to PDF
|
|
42
|
+
pdflatex equation.tex
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Batch Rendering Script
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
#!/bin/bash
|
|
49
|
+
# Render multiple equations from a text file (one per line)
|
|
50
|
+
INPUT="equations.txt"
|
|
51
|
+
OUTPUT_DIR="./rendered"
|
|
52
|
+
DPI=300
|
|
53
|
+
mkdir -p "$OUTPUT_DIR"
|
|
54
|
+
|
|
55
|
+
i=1
|
|
56
|
+
while IFS= read -r eq; do
|
|
57
|
+
cat > "/tmp/eq_${i}.tex" << EOF
|
|
58
|
+
\documentclass[border=2pt]{standalone}
|
|
59
|
+
\usepackage{amsmath,amssymb}
|
|
60
|
+
\begin{document}
|
|
61
|
+
\$\displaystyle ${eq}\$
|
|
62
|
+
\end{document}
|
|
63
|
+
EOF
|
|
64
|
+
(cd /tmp && latex -interaction=batchmode "eq_${i}.tex" && \
|
|
65
|
+
dvipng -D "$DPI" -bg Transparent -T tight "eq_${i}.dvi" \
|
|
66
|
+
-o "${OLDPWD}/${OUTPUT_DIR}/eq_${i}.png") 2>/dev/null
|
|
67
|
+
echo "Rendered equation $i: $eq"
|
|
68
|
+
((i++))
|
|
69
|
+
done < "$INPUT"
|
|
70
|
+
echo "Done. $((i-1)) equations rendered to $OUTPUT_DIR/"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Method 2: matplotlib (Python)
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
import matplotlib.pyplot as plt
|
|
77
|
+
import matplotlib
|
|
78
|
+
matplotlib.use('Agg') # Non-interactive backend
|
|
79
|
+
|
|
80
|
+
def render_equation(latex_str: str, output_path: str, dpi: int = 300,
|
|
81
|
+
fontsize: int = 20, color: str = "black"):
|
|
82
|
+
"""Render a LaTeX equation to PNG."""
|
|
83
|
+
fig, ax = plt.subplots(figsize=(0.1, 0.1))
|
|
84
|
+
ax.axis('off')
|
|
85
|
+
text = ax.text(0.5, 0.5, f"${latex_str}$",
|
|
86
|
+
fontsize=fontsize, color=color,
|
|
87
|
+
ha='center', va='center',
|
|
88
|
+
transform=ax.transAxes)
|
|
89
|
+
|
|
90
|
+
# Auto-size the figure to fit the equation
|
|
91
|
+
fig.savefig(output_path, dpi=dpi, bbox_inches='tight',
|
|
92
|
+
pad_inches=0.1, transparent=True)
|
|
93
|
+
plt.close(fig)
|
|
94
|
+
print(f"Saved: {output_path}")
|
|
95
|
+
|
|
96
|
+
# Usage
|
|
97
|
+
render_equation(r"\nabla \times \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t}",
|
|
98
|
+
"maxwell.png")
|
|
99
|
+
render_equation(r"\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}",
|
|
100
|
+
"gaussian.png")
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Batch Rendering with matplotlib
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
equations = {
|
|
107
|
+
"schrodinger": r"i\hbar\frac{\partial}{\partial t}\Psi = \hat{H}\Psi",
|
|
108
|
+
"einstein": r"R_{\mu\nu} - \frac{1}{2}Rg_{\mu\nu} = \frac{8\pi G}{c^4}T_{\mu\nu}",
|
|
109
|
+
"euler": r"e^{i\pi} + 1 = 0",
|
|
110
|
+
"bayes": r"P(A|B) = \frac{P(B|A)\,P(A)}{P(B)}",
|
|
111
|
+
"fourier": r"\hat{f}(\xi) = \int_{-\infty}^{\infty} f(x)\,e^{-2\pi ix\xi}\,dx",
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
for name, eq in equations.items():
|
|
115
|
+
render_equation(eq, f"equations/{name}.png", dpi=300, fontsize=24)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Method 3: sympy (Python — Symbolic Math)
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
from sympy import *
|
|
122
|
+
from sympy.printing.preview import preview
|
|
123
|
+
|
|
124
|
+
x, y, z = symbols('x y z')
|
|
125
|
+
f = Function('f')
|
|
126
|
+
|
|
127
|
+
# Render symbolic expression
|
|
128
|
+
expr = Integral(exp(-x**2), (x, -oo, oo))
|
|
129
|
+
preview(expr, viewer='file', filename='integral.png',
|
|
130
|
+
dvioptions=['-D', '300', '-bg', 'Transparent'])
|
|
131
|
+
|
|
132
|
+
# Render matrix
|
|
133
|
+
M = Matrix([[1, x], [y, x*y]])
|
|
134
|
+
preview(M, viewer='file', filename='matrix.png',
|
|
135
|
+
dvioptions=['-D', '300', '-bg', 'Transparent'])
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Method 4: Web APIs (No Local TeX Required)
|
|
139
|
+
|
|
140
|
+
### Codecogs API
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# URL-encoded LaTeX → PNG
|
|
144
|
+
curl -o equation.png \
|
|
145
|
+
"https://latex.codecogs.com/png.image?\dpi{300}\bg{transparent}E=mc^2"
|
|
146
|
+
|
|
147
|
+
# SVG output
|
|
148
|
+
curl -o equation.svg \
|
|
149
|
+
"https://latex.codecogs.com/svg.image?E=mc^2"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### MathJax (HTML to Image)
|
|
153
|
+
|
|
154
|
+
```python
|
|
155
|
+
# Using Playwright to render MathJax equations
|
|
156
|
+
from playwright.sync_api import sync_playwright
|
|
157
|
+
|
|
158
|
+
def mathjax_to_png(latex: str, output: str):
|
|
159
|
+
html = f"""<!DOCTYPE html>
|
|
160
|
+
<html><head>
|
|
161
|
+
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
|
|
162
|
+
</head><body>
|
|
163
|
+
<div id="eq">$$\\displaystyle {latex}$$</div>
|
|
164
|
+
</body></html>"""
|
|
165
|
+
|
|
166
|
+
with sync_playwright() as p:
|
|
167
|
+
browser = p.chromium.launch()
|
|
168
|
+
page = browser.new_page()
|
|
169
|
+
page.set_content(html)
|
|
170
|
+
page.wait_for_function("() => window.MathJax && MathJax.startup.promise")
|
|
171
|
+
element = page.query_selector("#eq")
|
|
172
|
+
element.screenshot(path=output)
|
|
173
|
+
browser.close()
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Output Format Comparison
|
|
177
|
+
|
|
178
|
+
| Format | Best For | Scalable? | Transparent BG? |
|
|
179
|
+
|--------|----------|-----------|-----------------|
|
|
180
|
+
| PNG | Presentations, docs, web | No (raster) | Yes (with `-bg Transparent`) |
|
|
181
|
+
| SVG | Web, scalable contexts | Yes (vector) | Yes |
|
|
182
|
+
| PDF | LaTeX inclusion, print | Yes (vector) | Yes |
|
|
183
|
+
| EPS | Legacy LaTeX workflows | Yes (vector) | No |
|
|
184
|
+
|
|
185
|
+
## Tips
|
|
186
|
+
|
|
187
|
+
- **DPI**: Use 300 for print, 150 for screen, 96 for web thumbnails
|
|
188
|
+
- **Font consistency**: Match the equation font to your document's body font
|
|
189
|
+
- **Dark mode**: Render with white text color for dark backgrounds: `color="white"`
|
|
190
|
+
- **Accessibility**: Always provide alt-text describing the equation when embedding images
|
|
191
|
+
- **Version control**: Store the LaTeX source alongside rendered images for reproducibility
|
|
192
|
+
|
|
193
|
+
## References
|
|
194
|
+
|
|
195
|
+
- [dvipng Documentation](https://ctan.org/pkg/dvipng)
|
|
196
|
+
- [matplotlib mathtext](https://matplotlib.org/stable/gallery/text_labels_and_annotations/mathtext_examples.html)
|
|
197
|
+
- [CodeCogs Equation Editor](https://latex.codecogs.com/)
|
|
198
|
+
- [MathJax Documentation](https://docs.mathjax.org/)
|
|
@@ -4,8 +4,8 @@ description: "Translate scientific PDFs with preserved math formatting via PDFMa
|
|
|
4
4
|
metadata:
|
|
5
5
|
openclaw:
|
|
6
6
|
emoji: "📄"
|
|
7
|
-
category: tools
|
|
8
|
-
subcategory: ocr-translate
|
|
7
|
+
category: "tools"
|
|
8
|
+
subcategory: "ocr-translate"
|
|
9
9
|
keywords: ["pdf-translation", "math-formatting", "scientific-papers", "multilingual", "latex-preservation"]
|
|
10
10
|
source: "https://github.com/Byaidu/PDFMathTranslate"
|
|
11
11
|
---
|
|
@@ -4,8 +4,8 @@ description: "Guide to Zotero PDF Translate for multilingual PDF and annotation
|
|
|
4
4
|
metadata:
|
|
5
5
|
openclaw:
|
|
6
6
|
emoji: "🌐"
|
|
7
|
-
category: tools
|
|
8
|
-
subcategory: ocr-translate
|
|
7
|
+
category: "tools"
|
|
8
|
+
subcategory: "ocr-translate"
|
|
9
9
|
keywords: ["zotero", "pdf-translate", "multilingual", "annotation", "academic-translation"]
|
|
10
10
|
source: "https://github.com/windingwind/zotero-pdf-translate"
|
|
11
11
|
---
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: academic-citation-manager-guide
|
|
3
|
+
description: "Comparison and workflow guide for academic citation management tools"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "📎"
|
|
7
|
+
category: "writing"
|
|
8
|
+
subcategory: "citation"
|
|
9
|
+
keywords: ["citation management", "reference manager", "zotero", "mendeley", "bibliography", "bibtex"]
|
|
10
|
+
source: "https://clawhub.com/YouStudyeveryday/academic-citation-manager"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Academic Citation Management Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Citation managers are essential tools for collecting, organizing, annotating, and citing academic references. This guide compares the major options (Zotero, Mendeley, EndNote, JabRef, Paperpile), covers core workflows, and provides best practices for building and maintaining a well-organized reference library.
|
|
18
|
+
|
|
19
|
+
## Tool Comparison
|
|
20
|
+
|
|
21
|
+
| Feature | Zotero | Mendeley | EndNote | JabRef | Paperpile |
|
|
22
|
+
|---------|--------|----------|---------|--------|-----------|
|
|
23
|
+
| **Price** | Free (open source) | Free (Elsevier) | $250+ | Free (open source) | $3/mo (students) |
|
|
24
|
+
| **Storage** | 300 MB free, $20/yr for 2GB | 2 GB free | Unlimited (desktop) | Local files | 10 GB |
|
|
25
|
+
| **PDF Management** | Yes + annotations | Yes + annotations | Yes | Basic | Yes |
|
|
26
|
+
| **Browser Extension** | Excellent (Connector) | Good (Importer) | Average | Manual | Google Docs native |
|
|
27
|
+
| **Word Plugin** | Word + LibreOffice | Word | Word | — | Google Docs + Word |
|
|
28
|
+
| **LaTeX/BibTeX** | Export + Better BibTeX plugin | Export | Export | Native BibTeX editor | Export |
|
|
29
|
+
| **Collaboration** | Group libraries (free) | Teams | Share libraries | Git-friendly files | Shared folders |
|
|
30
|
+
| **Open Source** | Yes (GPL) | No | No | Yes (MIT) | No |
|
|
31
|
+
| **Offline Use** | Full offline | Full offline | Full offline | Full offline | Limited |
|
|
32
|
+
|
|
33
|
+
### Recommendation by Workflow
|
|
34
|
+
|
|
35
|
+
| If You... | Use |
|
|
36
|
+
|-----------|-----|
|
|
37
|
+
| Write in LaTeX primarily | **JabRef** (native BibTeX) or **Zotero + Better BibTeX** |
|
|
38
|
+
| Write in Word/LibreOffice | **Zotero** (best free plugin) |
|
|
39
|
+
| Write in Google Docs | **Paperpile** (native integration) |
|
|
40
|
+
| Need Elsevier integration | **Mendeley** (same company) |
|
|
41
|
+
| Need institutional license | **EndNote** (common in universities) |
|
|
42
|
+
| Want maximum flexibility | **Zotero** (open source, 600+ plugins) |
|
|
43
|
+
|
|
44
|
+
## Core Workflow
|
|
45
|
+
|
|
46
|
+
### 1. Collecting References
|
|
47
|
+
|
|
48
|
+
**Browser Extension** (Zotero Connector example):
|
|
49
|
+
1. Install Zotero Connector for Chrome/Firefox
|
|
50
|
+
2. Browse to any paper page (journal, arXiv, Google Scholar)
|
|
51
|
+
3. Click the Zotero icon → metadata + PDF saved automatically
|
|
52
|
+
4. Works on: journal websites, arXiv, PubMed, Google Scholar, Amazon (books)
|
|
53
|
+
|
|
54
|
+
**Import from DOI**:
|
|
55
|
+
```
|
|
56
|
+
Zotero: "Add Item(s) by Identifier" → paste DOI → auto-import
|
|
57
|
+
Mendeley: "Add" → "Import DOI" → paste
|
|
58
|
+
JabRef: "New Entry" → "ID-based entry generator" → paste DOI
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Import from BibTeX**:
|
|
62
|
+
```bibtex
|
|
63
|
+
% Save as references.bib, then import
|
|
64
|
+
@article{vaswani2017attention,
|
|
65
|
+
title={Attention is all you need},
|
|
66
|
+
author={Vaswani, Ashish and others},
|
|
67
|
+
journal={NeurIPS},
|
|
68
|
+
year={2017}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Batch Import from Google Scholar**:
|
|
73
|
+
```
|
|
74
|
+
1. Search Google Scholar for your topic
|
|
75
|
+
2. Select papers (checkbox) → Export → BibTeX
|
|
76
|
+
3. Import .bib file into your citation manager
|
|
77
|
+
4. Merge duplicates
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 2. Organizing References
|
|
81
|
+
|
|
82
|
+
**Folder/Collection Structure** (recommended):
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
My Library/
|
|
86
|
+
├── By Project/
|
|
87
|
+
│ ├── Dissertation/
|
|
88
|
+
│ │ ├── Chapter 1 - Introduction/
|
|
89
|
+
│ │ ├── Chapter 2 - Literature Review/
|
|
90
|
+
│ │ └── Chapter 3 - Methods/
|
|
91
|
+
│ └── ICML 2026 Paper/
|
|
92
|
+
├── By Topic/
|
|
93
|
+
│ ├── Attention Mechanisms/
|
|
94
|
+
│ ├── Retrieval-Augmented Generation/
|
|
95
|
+
│ └── Code Generation/
|
|
96
|
+
└── Reading Queue/
|
|
97
|
+
├── To Read/
|
|
98
|
+
├── In Progress/
|
|
99
|
+
└── Read + Annotated/
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Tagging Strategy**:
|
|
103
|
+
```
|
|
104
|
+
Tags by reading status: #to-read, #reading, #done
|
|
105
|
+
Tags by relevance: #core, #supporting, #background
|
|
106
|
+
Tags by content: #methodology, #dataset, #benchmark, #survey
|
|
107
|
+
Tags by quality: #seminal, #highly-cited, #controversial
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 3. Annotating and Note-Taking
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
## Per-Paper Note Template
|
|
114
|
+
|
|
115
|
+
### Quick Reference
|
|
116
|
+
- **One-line summary**: [What this paper does in one sentence]
|
|
117
|
+
- **Key contribution**: [The novel idea]
|
|
118
|
+
- **Method**: [Technique used]
|
|
119
|
+
- **Dataset**: [What data they use]
|
|
120
|
+
- **Result**: [Main quantitative finding]
|
|
121
|
+
|
|
122
|
+
### Detailed Notes
|
|
123
|
+
- Strengths: [What's convincing]
|
|
124
|
+
- Weaknesses: [What's questionable]
|
|
125
|
+
- Relevance to my work: [How does this connect?]
|
|
126
|
+
- Follow-up: [What to read next based on this paper]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 4. Citing in Documents
|
|
130
|
+
|
|
131
|
+
**In Word/LibreOffice** (Zotero):
|
|
132
|
+
1. Place cursor where citation goes
|
|
133
|
+
2. Zotero toolbar → "Add Citation"
|
|
134
|
+
3. Search by author, title, or year
|
|
135
|
+
4. Select citation → insert
|
|
136
|
+
5. At end: "Add Bibliography" to generate reference list
|
|
137
|
+
|
|
138
|
+
**In LaTeX** (Better BibTeX for Zotero):
|
|
139
|
+
```bash
|
|
140
|
+
# Install Better BibTeX plugin for Zotero
|
|
141
|
+
# Set up auto-export:
|
|
142
|
+
# Zotero → File → Export Library → Better BibTeX → Keep updated
|
|
143
|
+
|
|
144
|
+
# In your .tex file:
|
|
145
|
+
\bibliography{exported_library}
|
|
146
|
+
\bibliographystyle{apalike}
|
|
147
|
+
|
|
148
|
+
# Cite: \cite{vaswani2017attention}
|
|
149
|
+
# Textual: \citet{vaswani2017attention} → Vaswani et al. (2017)
|
|
150
|
+
# Parenthetical: \citep{vaswani2017attention} → (Vaswani et al., 2017)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 5. Maintaining Your Library
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
## Monthly Maintenance Checklist
|
|
157
|
+
|
|
158
|
+
□ Merge duplicate entries (Zotero: right-click → Merge)
|
|
159
|
+
□ Fix incomplete metadata (missing year, venue, DOI)
|
|
160
|
+
□ Update "In Press" papers to final published versions
|
|
161
|
+
□ Clean up tags (remove unused, consolidate synonyms)
|
|
162
|
+
□ Back up library (export to BibTeX or Zotero Backup)
|
|
163
|
+
□ Check for retracted papers (Retraction Watch database)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Citation Style Quick Reference
|
|
167
|
+
|
|
168
|
+
| Style | Disciplines | In-Text | Bibliography |
|
|
169
|
+
|-------|------------|---------|-------------|
|
|
170
|
+
| **APA 7th** | Psychology, Social Sciences | (Author, Year) | Author, A. A. (Year). Title. *Journal*, *Vol*(Issue), pages. DOI |
|
|
171
|
+
| **IEEE** | Engineering, CS | [1] | [1] A. Author, "Title," *Journal*, vol. X, pp. Y-Z, Year. |
|
|
172
|
+
| **Chicago Author-Date** | Humanities, Social Sciences | (Author Year) | Author, First. Year. *Title*. Place: Publisher. |
|
|
173
|
+
| **Harvard** | Business, Social Sciences | (Author Year) | Author, F. (Year) 'Title', *Journal*, Vol(Issue), pp. X-Y. |
|
|
174
|
+
| **Vancouver** | Biomedical, Medicine | (1) | 1. Author AB. Title. Journal. Year;Vol(Issue):pages. |
|
|
175
|
+
| **MLA 9th** | Humanities, Literature | (Author Page) | Author. "Title." *Journal*, vol. X, no. Y, Year, pp. Z. |
|
|
176
|
+
|
|
177
|
+
## References
|
|
178
|
+
|
|
179
|
+
- [Zotero Documentation](https://www.zotero.org/support/)
|
|
180
|
+
- [Better BibTeX for Zotero](https://retorque.re/zotero-better-bibtex/)
|
|
181
|
+
- [JabRef Documentation](https://docs.jabref.org/)
|
|
182
|
+
- [Citation Style Language](https://citationstyles.org/)
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: citation-assistant-skill
|
|
3
|
+
description: "Claude Code skill for citation workflow via Semantic Scholar"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "📎"
|
|
7
|
+
category: "writing"
|
|
8
|
+
subcategory: "citation"
|
|
9
|
+
keywords: ["citation assistant", "Semantic Scholar", "Claude Code skill", "reference lookup", "academic citation"]
|
|
10
|
+
source: "https://github.com/ZhangNy301/citation-assistant"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Citation Assistant Skill Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Citation Assistant is a Claude Code skill that integrates Semantic Scholar API into the coding workflow for instant paper lookup, citation formatting, and reference management. Search for papers by title or keyword, get formatted BibTeX entries, find related works, and insert citations — all without leaving the terminal. Designed for researchers writing papers in LaTeX or Markdown.
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Add as Claude Code skill
|
|
23
|
+
# Copy SKILL.md to your Claude Code skills directory
|
|
24
|
+
# Or install via OpenClaw:
|
|
25
|
+
openclaw skills install citation-assistant
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Core Features
|
|
29
|
+
|
|
30
|
+
### Paper Search
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
import requests
|
|
34
|
+
|
|
35
|
+
S2_API = "https://api.semanticscholar.org/graph/v1"
|
|
36
|
+
|
|
37
|
+
def search_papers(query, limit=5):
|
|
38
|
+
"""Search Semantic Scholar for papers."""
|
|
39
|
+
resp = requests.get(
|
|
40
|
+
f"{S2_API}/paper/search",
|
|
41
|
+
params={
|
|
42
|
+
"query": query,
|
|
43
|
+
"limit": limit,
|
|
44
|
+
"fields": "title,authors,year,citationCount,"
|
|
45
|
+
"externalIds,abstract,venue",
|
|
46
|
+
},
|
|
47
|
+
)
|
|
48
|
+
return resp.json().get("data", [])
|
|
49
|
+
|
|
50
|
+
papers = search_papers("attention mechanism transformer")
|
|
51
|
+
for p in papers:
|
|
52
|
+
authors = ", ".join(a["name"] for a in p["authors"][:3])
|
|
53
|
+
print(f"[{p['year']}] {p['title']}")
|
|
54
|
+
print(f" {authors} — Citations: {p['citationCount']}")
|
|
55
|
+
print(f" DOI: {p.get('externalIds', {}).get('DOI', 'N/A')}")
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### BibTeX Generation
|
|
59
|
+
|
|
60
|
+
```python
|
|
61
|
+
def get_bibtex(paper_id):
|
|
62
|
+
"""Get BibTeX for a Semantic Scholar paper."""
|
|
63
|
+
resp = requests.get(
|
|
64
|
+
f"{S2_API}/paper/{paper_id}",
|
|
65
|
+
params={
|
|
66
|
+
"fields": "title,authors,year,venue,externalIds,"
|
|
67
|
+
"journal,publicationTypes",
|
|
68
|
+
},
|
|
69
|
+
)
|
|
70
|
+
paper = resp.json()
|
|
71
|
+
|
|
72
|
+
# Generate citation key
|
|
73
|
+
first_author = paper["authors"][0]["name"].split()[-1].lower()
|
|
74
|
+
key = f"{first_author}{paper['year']}"
|
|
75
|
+
|
|
76
|
+
# Build BibTeX
|
|
77
|
+
authors_str = " and ".join(a["name"] for a in paper["authors"])
|
|
78
|
+
doi = paper.get("externalIds", {}).get("DOI", "")
|
|
79
|
+
|
|
80
|
+
bibtex = f"""@article{{{key},
|
|
81
|
+
title = {{{paper['title']}}},
|
|
82
|
+
author = {{{authors_str}}},
|
|
83
|
+
year = {{{paper['year']}}},
|
|
84
|
+
journal = {{{paper.get('venue', '')}}},
|
|
85
|
+
doi = {{{doi}}},
|
|
86
|
+
}}"""
|
|
87
|
+
return bibtex
|
|
88
|
+
|
|
89
|
+
# Example
|
|
90
|
+
bibtex = get_bibtex("204e3073870fae3d05bcbc2f6a8e263d9b72e776")
|
|
91
|
+
print(bibtex)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Citation Context
|
|
95
|
+
|
|
96
|
+
```python
|
|
97
|
+
def get_citation_context(paper_id, limit=10):
|
|
98
|
+
"""Get papers that cite this work with context."""
|
|
99
|
+
resp = requests.get(
|
|
100
|
+
f"{S2_API}/paper/{paper_id}/citations",
|
|
101
|
+
params={
|
|
102
|
+
"fields": "title,year,contexts,intents",
|
|
103
|
+
"limit": limit,
|
|
104
|
+
},
|
|
105
|
+
)
|
|
106
|
+
citations = resp.json().get("data", [])
|
|
107
|
+
|
|
108
|
+
for cit in citations:
|
|
109
|
+
paper = cit["citingPaper"]
|
|
110
|
+
print(f"\n{paper['title']} ({paper.get('year', '?')})")
|
|
111
|
+
for ctx in cit.get("contexts", [])[:2]:
|
|
112
|
+
print(f" Context: ...{ctx[:100]}...")
|
|
113
|
+
print(f" Intent: {cit.get('intents', ['unknown'])}")
|
|
114
|
+
|
|
115
|
+
get_citation_context("204e3073870fae3d05bcbc2f6a8e263d9b72e776")
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Related Paper Discovery
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
def find_related(paper_id, limit=10):
|
|
122
|
+
"""Find papers related to a given paper."""
|
|
123
|
+
resp = requests.get(
|
|
124
|
+
f"{S2_API}/paper/{paper_id}/recommendations",
|
|
125
|
+
params={
|
|
126
|
+
"fields": "title,authors,year,citationCount",
|
|
127
|
+
"limit": limit,
|
|
128
|
+
},
|
|
129
|
+
)
|
|
130
|
+
return resp.json().get("recommendedPapers", [])
|
|
131
|
+
|
|
132
|
+
related = find_related("204e3073870fae3d05bcbc2f6a8e263d9b72e776")
|
|
133
|
+
for p in related:
|
|
134
|
+
print(f"[{p['year']}] {p['title']} ({p['citationCount']} cites)")
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Workflow Integration
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
### LaTeX Workflow
|
|
141
|
+
1. Search: "Find papers on transformer efficiency"
|
|
142
|
+
2. Select relevant papers from results
|
|
143
|
+
3. Generate BibTeX entries → append to references.bib
|
|
144
|
+
4. Insert \cite{key} in your .tex file
|
|
145
|
+
|
|
146
|
+
### Markdown Workflow
|
|
147
|
+
1. Search for papers while writing
|
|
148
|
+
2. Get formatted citation (APA, MLA, etc.)
|
|
149
|
+
3. Insert inline: (Author, Year) or [1]
|
|
150
|
+
4. Generate reference list at document end
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Batch Operations
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
def build_bibliography(queries, output_file="refs.bib"):
|
|
157
|
+
"""Build BibTeX file from multiple search queries."""
|
|
158
|
+
all_bibtex = []
|
|
159
|
+
seen_ids = set()
|
|
160
|
+
|
|
161
|
+
for query in queries:
|
|
162
|
+
papers = search_papers(query, limit=3)
|
|
163
|
+
for paper in papers:
|
|
164
|
+
pid = paper.get("paperId")
|
|
165
|
+
if pid and pid not in seen_ids:
|
|
166
|
+
seen_ids.add(pid)
|
|
167
|
+
bibtex = get_bibtex(pid)
|
|
168
|
+
all_bibtex.append(bibtex)
|
|
169
|
+
|
|
170
|
+
with open(output_file, "w") as f:
|
|
171
|
+
f.write("\n\n".join(all_bibtex))
|
|
172
|
+
print(f"Wrote {len(all_bibtex)} entries to {output_file}")
|
|
173
|
+
|
|
174
|
+
build_bibliography([
|
|
175
|
+
"attention mechanism",
|
|
176
|
+
"transformer architecture",
|
|
177
|
+
"BERT pre-training",
|
|
178
|
+
])
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Use Cases
|
|
182
|
+
|
|
183
|
+
1. **Paper writing**: Look up and format citations inline
|
|
184
|
+
2. **Literature review**: Discover related papers from seed papers
|
|
185
|
+
3. **Reference management**: Build BibTeX files from searches
|
|
186
|
+
4. **Citation analysis**: Explore how papers cite each other
|
|
187
|
+
5. **Quick lookup**: Find DOI, venue, citation count for any paper
|
|
188
|
+
|
|
189
|
+
## References
|
|
190
|
+
|
|
191
|
+
- [Citation Assistant GitHub](https://github.com/ZhangNy301/citation-assistant)
|
|
192
|
+
- [Semantic Scholar API](https://api.semanticscholar.org/)
|
|
@@ -4,8 +4,8 @@ description: "Guide to JabRef open-source BibTeX and BibLaTeX reference manager"
|
|
|
4
4
|
metadata:
|
|
5
5
|
openclaw:
|
|
6
6
|
emoji: "📖"
|
|
7
|
-
category: writing
|
|
8
|
-
subcategory: citation
|
|
7
|
+
category: "writing"
|
|
8
|
+
subcategory: "citation"
|
|
9
9
|
keywords: ["jabref", "bibtex", "biblatex", "reference-manager", "latex", "bibliography"]
|
|
10
10
|
source: "https://github.com/JabRef/jabref"
|
|
11
11
|
---
|
|
@@ -4,8 +4,8 @@ description: "Guide to Jasminum for retrieving CNKI Chinese academic metadata in
|
|
|
4
4
|
metadata:
|
|
5
5
|
openclaw:
|
|
6
6
|
emoji: "🌸"
|
|
7
|
-
category: writing
|
|
8
|
-
subcategory: citation
|
|
7
|
+
category: "writing"
|
|
8
|
+
subcategory: "citation"
|
|
9
9
|
keywords: ["zotero", "cnki", "chinese-academic", "jasminum", "metadata", "bibliography"]
|
|
10
10
|
source: "https://github.com/l0o0/jasminum"
|
|
11
11
|
---
|