{"id":"04843cc1-da09-46f4-be5c-df870f1c0d4a","shortId":"haKrcG","kind":"skill","title":"creating-figures","tagline":"Creates publication-quality scientific figures for academic papers using TikZ. Use when creating block diagrams, system architectures, flowcharts, or technical illustrations for papers and theses. Always render a temporary PNG/JPG preview and self-verify visual quality before fin","description":"# Creating Scientific Figures\n\nCreate compact, print-friendly figures for academic papers using LaTeX TikZ.\n\n## Quick Start\n\nMinimal block diagram:\n\n```latex\n\\documentclass[tikz,border=2mm]{standalone}\n\\usetikzlibrary{arrows.meta,positioning}\n\\begin{document}\n\\begin{tikzpicture}[\n  block/.style={rectangle, draw, fill=gray!15, minimum width=2cm, minimum height=0.8cm, font=\\small\\sffamily},\n  arrow/.style={->, >=Stealth, thick}\n]\n  \\node[block] (a) {Input};\n  \\node[block, right=of a] (b) {Process};\n  \\node[block, right=of b] (c) {Output};\n  \\draw[arrow] (a) -- (b);\n  \\draw[arrow] (b) -- (c);\n\\end{tikzpicture}\n\\end{document}\n```\n\n## Design Principles\n\nKey principles for academic figures:\n\n1. **Grayscale palette**: Print-friendly, no color dependency\n2. **Compactness**: Minimize whitespace, maximize information\n3. **Consistency**: Uniform sizing, spacing, typography\n4. **Hierarchy**: Line weight and gray levels show importance\n\nSee [PRINCIPLES.md](PRINCIPLES.md) for complete design guidelines.\n\n## Implementation\n\n**TikZ Block Diagrams**: See [TIKZ.md](TIKZ.md) for:\n\n- Preamble setup and required packages\n- Standard style definitions\n- Common patterns (linear, parallel, feedback loops)\n- Positioning techniques\n- Edge labels and annotations\n\n**Working Example**: See [examples/tikz/block-diagram.tex](examples/tikz/block-diagram.tex) for a complete PID control system diagram.\n\n## Standard Styles\n\nCopy these styles to your preamble:\n\n```latex\n% Grayscale colors\n\\definecolor{figdark}{gray}{0.25}\n\\definecolor{figlight}{gray}{0.85}\n\n% Block styles\n\\tikzset{\n  block/.style={rectangle, draw=figdark, fill=figlight,\n    minimum width=2cm, minimum height=0.8cm,\n    text centered, font=\\small\\sffamily},\n  terminal/.style={rectangle, draw=figdark, fill=white,\n    minimum width=1.5cm, minimum height=0.6cm,\n    text centered, font=\\small\\sffamily},\n  arrow/.style={->, >=Stealth, thick, draw=figdark},\n  group/.style={draw=gray, dashed, fill=gray!5,\n    rounded corners=2pt, inner sep=8pt}\n}\n```\n\n## Common Patterns\n\n### Linear Flow\n\n```latex\n\\node[block] (a) {A};\n\\node[block, right=of a] (b) {B};\n\\draw[arrow] (a) -- (b);\n```\n\n### Feedback Loop\n\n```latex\n\\node[block] (proc) {Process};\n\\node[block, below=of proc] (fb) {Feedback};\n\\draw[arrow] (proc.east) -- ++(0.5,0) |- (fb.east);\n\\draw[arrow] (fb.west) -| ($(proc.west)+(-0.5,0)$) -- (proc.west);\n```\n\n### Grouped Subsystem\n\n```latex\n\\node[block] (a) {A};\n\\node[block, right=of a] (b) {B};\n\\begin{scope}[on background layer]\n  \\node[group, fit=(a)(b), label=above:Subsystem] {};\n\\end{scope}\n```\n\n## Workflow\n\n1. **Plan layout**: Sketch block arrangement on paper\n2. **Define styles**: Set up colors and node styles\n3. **Place nodes**: Use relative positioning (`right=of`, `below=of`)\n4. **Draw connections**: Add arrows with appropriate routing\n5. **Add labels**: Annotate edges and groups\n6. **Refine spacing**: Adjust for visual balance\n7. **Render preview**: Compile the standalone figure and create a temporary PNG or JPG preview\n8. **Self-verify**: Inspect the preview for visual quality and fix issues before finalizing\n9. **Test print**: Verify grayscale readability\n\n## Required Self-Verification\n\nEvery figure creation task must include a local render-and-check loop before final delivery. The source may compile successfully while still having unreadable labels, overlapping arrows, awkward whitespace, or misaligned groups; the raster preview catches these problems before the user sees them.\n\n1. Save the figure as standalone TikZ source (`.tex`).\n2. Compile it to PDF with `latexmk -pdf` or `pdflatex` from the figure directory.\n3. Convert the PDF to a temporary PNG or JPG preview using an available tool such as `pdftoppm`, ImageMagick `magick`, or `convert`.\n4. Open/read the temporary preview image and inspect it visually.\n5. Fix any quality problems, then rerender and reinspect until the preview is acceptable.\n6. Keep the final `.tex` and requested deliverables; remove or clearly mark temporary preview files unless the user asks to keep them.\n\nUse a temporary preview filename such as `figure-name.preview.png` or place previews under a temporary directory. Do not treat successful LaTeX compilation as sufficient verification.\n\nSelf-check the preview for:\n\n- text legibility at paper scale and at 50% zoom\n- no overlapping text, labels, arrows, nodes, or group boxes\n- arrowheads and line routes point in the intended direction\n- consistent node sizes, spacing, alignment, and margins\n- enough padding between container labels and inner blocks\n- compact layout without excessive whitespace or clipped content\n- grayscale contrast that remains readable in print\n\nExample verification commands:\n\n```bash\nlatexmk -pdf system-diagram.tex\npdftoppm -png -singlefile -r 200 system-diagram.pdf system-diagram.preview\n```\n\nIf `latexmk` is unavailable, use `pdflatex`. If `pdftoppm` is unavailable, use ImageMagick or another installed PDF-to-image converter.\n\n## File Organization\n\n```\nyour-paper/\n├── figures/\n│   ├── system-diagram.tex    % Standalone TikZ source\n│   └── system-diagram.pdf    % Compiled figure\n└── paper.tex                 % \\includegraphics{figures/system-diagram}\n```\n\nCompile standalone figures separately, then include as PDF for faster paper compilation.","tags":["creating","figures","skills","isomoes","agent-skills"],"capabilities":["skill","source-isomoes","skill-creating-figures","topic-agent-skills","topic-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/isomoes/skills/creating-figures","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add isomoes/skills","source_repo":"https://github.com/isomoes/skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 9 github stars · SKILL.md body (5,262 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:08:47.538Z","embedding":null,"createdAt":"2026-05-18T13:14:26.739Z","updatedAt":"2026-05-18T19:08:47.538Z","lastSeenAt":"2026-05-18T19:08:47.538Z","tsv":"'-0.5':331 '0':325,332 '0.25':224 '0.5':324 '0.6':262 '0.8':88,243 '0.85':228 '1':133,364,497 '1.5':258 '15':82 '2':142,372,506 '200':686 '2cm':85,240 '2mm':68 '2pt':283 '3':148,381,520 '4':154,391,542 '5':280,399,552 '50':625 '6':406,566 '7':413 '8':428 '8pt':286 '9':443 'academ':11,54,131 'accept':565 'add':394,400 'adjust':409 'align':649 'alway':30 'annot':197,402 'anoth':702 'appropri':397 'architectur':21 'arrang':369 'arrow':115,119,304,322,328,395,480,631 'arrow/.style':93,269 'arrowhead':636 'arrows.meta':71 'ask':584 'avail':533 'awkward':481 'b':105,111,117,120,301,302,306,346,347,357 'background':351 'balanc':412 'bash':678 'begin':73,75,348 'block':18,62,97,101,108,172,229,293,297,311,315,338,342,368,659 'block/.style':77,232 'border':67 'box':635 'c':112,121 'catch':489 'center':246,265 'check':464,614 'clear':576 'clip':666 'cm':89,244,259,263 'color':140,220,377 'command':677 'common':186,287 'compact':48,143,660 'compil':416,472,507,608,720,725,736 'complet':167,205 'connect':393 'consist':149,645 'contain':655 'content':667 'contrast':669 'control':207 'convert':521,541,708 'copi':212 'corner':282 'creat':2,4,17,44,47,421 'creating-figur':1 'creation':455 'dash':277 'defin':373 'definecolor':221,225 'definit':185 'deliver':573 'deliveri':468 'depend':141 'design':126,168 'diagram':19,63,173,209 'direct':644 'directori':519,602 'document':74,125 'documentclass':65 'draw':79,114,118,234,252,272,275,303,321,327,392 'edg':194,403 'end':122,124,361 'enough':652 'everi':453 'exampl':199,675 'examples/tikz/block-diagram.tex':201,202 'excess':663 'faster':734 'fb':319 'fb.east':326 'fb.west':329 'feedback':190,307,320 'figdark':222,235,253,273 'figlight':226,237 'figur':3,9,46,52,132,419,454,500,518,714,721,727 'figure-name.preview.png':595 'figures/system-diagram':724 'file':580,709 'filenam':592 'fill':80,236,254,278 'fin':43 'final':442,467,569 'fit':355 'fix':439,553 'flow':290 'flowchart':22 'font':90,247,266 'friend':51,138 'gray':81,159,223,227,276,279 'grayscal':134,219,447,668 'group':334,354,405,485,634 'group/.style':274 'guidelin':169 'height':87,242,261 'hierarchi':155 'illustr':25 'imag':547,707 'imagemagick':538,700 'implement':170 'import':162 'includ':458,730 'includegraph':723 'inform':147 'inner':284,658 'input':99 'inspect':432,549 'instal':703 'intend':643 'issu':440 'jpg':426,529 'keep':567,586 'key':128 'label':195,358,401,478,630,656 'latex':57,64,218,291,309,336,607 'latexmk':512,679,690 'layer':352 'layout':366,661 'legibl':619 'level':160 'line':156,638 'linear':188,289 'local':460 'loop':191,308,465 'magick':539 'margin':651 'mark':577 'maxim':146 'may':471 'minim':61,144 'minimum':83,86,238,241,256,260 'misalign':484 'must':457 'node':96,100,107,292,296,310,314,337,341,353,379,383,632,646 'open/read':543 'organ':710 'output':113 'overlap':479,628 'packag':182 'pad':653 'palett':135 'paper':12,27,55,371,621,713,735 'paper.tex':722 'parallel':189 'pattern':187,288 'pdf':510,513,523,680,705,732 'pdf-to-imag':704 'pdflatex':515,694 'pdftoppm':537,682,696 'pid':206 'place':382,597 'plan':365 'png':424,527,683 'png/jpg':34 'point':640 'posit':72,192,386 'preambl':178,217 'preview':35,415,427,434,488,530,546,563,579,591,598,616 'principl':127,129 'principles.md':164,165 'print':50,137,445,674 'print-friend':49,136 'problem':491,556 'proc':312,318 'proc.east':323 'proc.west':330,333 'process':106,313 'public':6 'publication-qu':5 'qualiti':7,41,437,555 'quick':59 'r':685 'raster':487 'readabl':448,672 'rectangl':78,233,251 'refin':407 'reinspect':560 'relat':385 'remain':671 'remov':574 'render':31,414,462 'render-and-check':461 'request':572 'requir':181,449 'rerend':558 'right':102,109,298,343,387 'round':281 'rout':398,639 'save':498 'scale':622 'scientif':8,45 'scope':349,362 'see':163,174,200,495 'self':38,430,451,613 'self-check':612 'self-verif':450 'self-verifi':37,429 'sep':285 'separ':728 'set':375 'setup':179 'sffamili':92,249,268 'show':161 'singlefil':684 'size':151,647 'sketch':367 'skill' 'skill-creating-figures' 'small':91,248,267 'sourc':470,504,718 'source-isomoes' 'space':152,408,648 'standalon':69,418,502,716,726 'standard':183,210 'start':60 'stealth':94,270 'still':475 'style':184,211,214,230,374,380 'subsystem':335,360 'success':473,606 'suffici':610 'system':20,208 'system-diagram.pdf':687,719 'system-diagram.preview':688 'system-diagram.tex':681,715 'task':456 'technic':24 'techniqu':193 'temporari':33,423,526,545,578,590,601 'terminal/.style':250 'test':444 'tex':505,570 'text':245,264,618,629 'these':29 'thick':95,271 'tikz':14,58,66,171,503,717 'tikz.md':175,176 'tikzpictur':76,123 'tikzset':231 'tool':534 'topic-agent-skills' 'topic-skills' 'treat':605 'typographi':153 'unavail':692,698 'uniform':150 'unless':581 'unread':477 'use':13,15,56,384,531,588,693,699 'user':494,583 'usetikzlibrari':70 'verif':452,611,676 'verifi':39,431,446 'visual':40,411,436,551 'weight':157 'white':255 'whitespac':145,482,664 'width':84,239,257 'without':662 'work':198 'workflow':363 'your-pap':711 'zoom':626","prices":[{"id":"58b8549e-459f-4d87-ad40-303bdb7ed239","listingId":"04843cc1-da09-46f4-be5c-df870f1c0d4a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"isomoes","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:14:26.739Z"}],"sources":[{"listingId":"04843cc1-da09-46f4-be5c-df870f1c0d4a","source":"github","sourceId":"isomoes/skills/creating-figures","sourceUrl":"https://github.com/isomoes/skills/tree/main/skills/creating-figures","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:26.739Z","lastSeenAt":"2026-05-18T19:08:47.538Z"}],"details":{"listingId":"04843cc1-da09-46f4-be5c-df870f1c0d4a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"isomoes","slug":"creating-figures","github":{"repo":"isomoes/skills","stars":9,"topics":["agent-skills","skills"],"license":"mit","html_url":"https://github.com/isomoes/skills","pushed_at":"2026-04-29T09:43:56Z","description":"Custom skills for agents to support academic paper writing and thesis management","skill_md_sha":"e193eb8fe4f4ca3b811b7368f8b0e1a3f40c76f3","skill_md_path":"skills/creating-figures/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/isomoes/skills/tree/main/skills/creating-figures"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"creating-figures","description":"Creates publication-quality scientific figures for academic papers using TikZ. Use when creating block diagrams, system architectures, flowcharts, or technical illustrations for papers and theses. Always render a temporary PNG/JPG preview and self-verify visual quality before finalizing figure files."},"skills_sh_url":"https://skills.sh/isomoes/skills/creating-figures"},"updatedAt":"2026-05-18T19:08:47.538Z"}}