scientific-writer 2.2.1__py3-none-any.whl → 2.2.3__py3-none-any.whl
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.
Potentially problematic release.
This version of scientific-writer might be problematic. Click here for more details.
- scientific_writer/.claude/WRITER.md +748 -0
- scientific_writer/.claude/settings.local.json +30 -0
- scientific_writer/.claude/skills/citation-management/SKILL.md +1046 -0
- scientific_writer/.claude/skills/citation-management/assets/bibtex_template.bib +264 -0
- scientific_writer/.claude/skills/citation-management/assets/citation_checklist.md +386 -0
- scientific_writer/.claude/skills/citation-management/references/bibtex_formatting.md +908 -0
- scientific_writer/.claude/skills/citation-management/references/citation_validation.md +794 -0
- scientific_writer/.claude/skills/citation-management/references/google_scholar_search.md +725 -0
- scientific_writer/.claude/skills/citation-management/references/metadata_extraction.md +870 -0
- scientific_writer/.claude/skills/citation-management/references/pubmed_search.md +839 -0
- scientific_writer/.claude/skills/citation-management/scripts/doi_to_bibtex.py +204 -0
- scientific_writer/.claude/skills/citation-management/scripts/extract_metadata.py +569 -0
- scientific_writer/.claude/skills/citation-management/scripts/format_bibtex.py +349 -0
- scientific_writer/.claude/skills/citation-management/scripts/search_google_scholar.py +282 -0
- scientific_writer/.claude/skills/citation-management/scripts/search_pubmed.py +398 -0
- scientific_writer/.claude/skills/citation-management/scripts/validate_citations.py +497 -0
- scientific_writer/.claude/skills/clinical-reports/IMPLEMENTATION_SUMMARY.md +641 -0
- scientific_writer/.claude/skills/clinical-reports/README.md +236 -0
- scientific_writer/.claude/skills/clinical-reports/SKILL.md +1088 -0
- scientific_writer/.claude/skills/clinical-reports/assets/case_report_template.md +352 -0
- scientific_writer/.claude/skills/clinical-reports/assets/clinical_trial_csr_template.md +353 -0
- scientific_writer/.claude/skills/clinical-reports/assets/clinical_trial_sae_template.md +359 -0
- scientific_writer/.claude/skills/clinical-reports/assets/consult_note_template.md +305 -0
- scientific_writer/.claude/skills/clinical-reports/assets/discharge_summary_template.md +453 -0
- scientific_writer/.claude/skills/clinical-reports/assets/hipaa_compliance_checklist.md +395 -0
- scientific_writer/.claude/skills/clinical-reports/assets/history_physical_template.md +305 -0
- scientific_writer/.claude/skills/clinical-reports/assets/lab_report_template.md +309 -0
- scientific_writer/.claude/skills/clinical-reports/assets/pathology_report_template.md +249 -0
- scientific_writer/.claude/skills/clinical-reports/assets/quality_checklist.md +338 -0
- scientific_writer/.claude/skills/clinical-reports/assets/radiology_report_template.md +318 -0
- scientific_writer/.claude/skills/clinical-reports/assets/soap_note_template.md +253 -0
- scientific_writer/.claude/skills/clinical-reports/references/case_report_guidelines.md +570 -0
- scientific_writer/.claude/skills/clinical-reports/references/clinical_trial_reporting.md +693 -0
- scientific_writer/.claude/skills/clinical-reports/references/data_presentation.md +530 -0
- scientific_writer/.claude/skills/clinical-reports/references/diagnostic_reports_standards.md +629 -0
- scientific_writer/.claude/skills/clinical-reports/references/medical_terminology.md +588 -0
- scientific_writer/.claude/skills/clinical-reports/references/patient_documentation.md +744 -0
- scientific_writer/.claude/skills/clinical-reports/references/peer_review_standards.md +585 -0
- scientific_writer/.claude/skills/clinical-reports/references/regulatory_compliance.md +577 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/check_deidentification.py +346 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/compliance_checker.py +78 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/extract_clinical_data.py +102 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/format_adverse_events.py +103 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/generate_report_template.py +163 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/terminology_validator.py +133 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/validate_case_report.py +334 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/validate_trial_report.py +89 -0
- scientific_writer/.claude/skills/document-skills/docx/LICENSE.txt +30 -0
- scientific_writer/.claude/skills/document-skills/docx/SKILL.md +197 -0
- scientific_writer/.claude/skills/document-skills/docx/docx-js.md +350 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml.md +610 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/__init__.py +1 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/document.py +1276 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/people.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/utilities.py +374 -0
- scientific_writer/.claude/skills/document-skills/pdf/LICENSE.txt +30 -0
- scientific_writer/.claude/skills/document-skills/pdf/SKILL.md +294 -0
- scientific_writer/.claude/skills/document-skills/pdf/forms.md +205 -0
- scientific_writer/.claude/skills/document-skills/pdf/reference.md +612 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- scientific_writer/.claude/skills/document-skills/pptx/LICENSE.txt +30 -0
- scientific_writer/.claude/skills/document-skills/pptx/SKILL.md +484 -0
- scientific_writer/.claude/skills/document-skills/pptx/html2pptx.md +625 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml.md +427 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/inventory.py +1020 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/rearrange.py +231 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/replace.py +385 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
- scientific_writer/.claude/skills/document-skills/xlsx/LICENSE.txt +30 -0
- scientific_writer/.claude/skills/document-skills/xlsx/SKILL.md +289 -0
- scientific_writer/.claude/skills/document-skills/xlsx/recalc.py +178 -0
- scientific_writer/.claude/skills/hypothesis-generation/SKILL.md +155 -0
- scientific_writer/.claude/skills/hypothesis-generation/assets/hypothesis_output_template.md +302 -0
- scientific_writer/.claude/skills/hypothesis-generation/references/experimental_design_patterns.md +327 -0
- scientific_writer/.claude/skills/hypothesis-generation/references/hypothesis_quality_criteria.md +196 -0
- scientific_writer/.claude/skills/hypothesis-generation/references/literature_search_strategies.md +505 -0
- scientific_writer/.claude/skills/latex-posters/README.md +417 -0
- scientific_writer/.claude/skills/latex-posters/SKILL.md +919 -0
- scientific_writer/.claude/skills/latex-posters/assets/baposter_template.tex +257 -0
- scientific_writer/.claude/skills/latex-posters/assets/beamerposter_template.tex +244 -0
- scientific_writer/.claude/skills/latex-posters/assets/poster_quality_checklist.md +358 -0
- scientific_writer/.claude/skills/latex-posters/assets/tikzposter_template.tex +251 -0
- scientific_writer/.claude/skills/latex-posters/references/latex_poster_packages.md +745 -0
- scientific_writer/.claude/skills/latex-posters/references/poster_content_guide.md +748 -0
- scientific_writer/.claude/skills/latex-posters/references/poster_design_principles.md +806 -0
- scientific_writer/.claude/skills/latex-posters/references/poster_layout_design.md +900 -0
- scientific_writer/.claude/skills/latex-posters/scripts/review_poster.sh +214 -0
- scientific_writer/.claude/skills/literature-review/SKILL.md +546 -0
- scientific_writer/.claude/skills/literature-review/assets/review_template.md +412 -0
- scientific_writer/.claude/skills/literature-review/references/citation_styles.md +166 -0
- scientific_writer/.claude/skills/literature-review/references/database_strategies.md +381 -0
- scientific_writer/.claude/skills/literature-review/scripts/generate_pdf.py +176 -0
- scientific_writer/.claude/skills/literature-review/scripts/search_databases.py +303 -0
- scientific_writer/.claude/skills/literature-review/scripts/verify_citations.py +222 -0
- scientific_writer/.claude/skills/markitdown/INSTALLATION_GUIDE.md +318 -0
- scientific_writer/.claude/skills/markitdown/LICENSE.txt +22 -0
- scientific_writer/.claude/skills/markitdown/OPENROUTER_INTEGRATION.md +359 -0
- scientific_writer/.claude/skills/markitdown/QUICK_REFERENCE.md +309 -0
- scientific_writer/.claude/skills/markitdown/README.md +184 -0
- scientific_writer/.claude/skills/markitdown/SKILL.md +450 -0
- scientific_writer/.claude/skills/markitdown/SKILL_SUMMARY.md +307 -0
- scientific_writer/.claude/skills/markitdown/assets/example_usage.md +463 -0
- scientific_writer/.claude/skills/markitdown/references/api_reference.md +399 -0
- scientific_writer/.claude/skills/markitdown/references/file_formats.md +542 -0
- scientific_writer/.claude/skills/markitdown/scripts/batch_convert.py +228 -0
- scientific_writer/.claude/skills/markitdown/scripts/convert_literature.py +283 -0
- scientific_writer/.claude/skills/markitdown/scripts/convert_with_ai.py +243 -0
- scientific_writer/.claude/skills/paper-2-web/SKILL.md +455 -0
- scientific_writer/.claude/skills/paper-2-web/references/installation.md +141 -0
- scientific_writer/.claude/skills/paper-2-web/references/paper2poster.md +346 -0
- scientific_writer/.claude/skills/paper-2-web/references/paper2video.md +305 -0
- scientific_writer/.claude/skills/paper-2-web/references/paper2web.md +187 -0
- scientific_writer/.claude/skills/paper-2-web/references/usage_examples.md +436 -0
- scientific_writer/.claude/skills/peer-review/SKILL.md +375 -0
- scientific_writer/.claude/skills/peer-review/references/common_issues.md +552 -0
- scientific_writer/.claude/skills/peer-review/references/reporting_standards.md +290 -0
- scientific_writer/.claude/skills/research-grants/README.md +285 -0
- scientific_writer/.claude/skills/research-grants/SKILL.md +896 -0
- scientific_writer/.claude/skills/research-grants/assets/budget_justification_template.md +453 -0
- scientific_writer/.claude/skills/research-grants/assets/nih_specific_aims_template.md +166 -0
- scientific_writer/.claude/skills/research-grants/assets/nsf_project_summary_template.md +92 -0
- scientific_writer/.claude/skills/research-grants/references/broader_impacts.md +392 -0
- scientific_writer/.claude/skills/research-grants/references/darpa_guidelines.md +636 -0
- scientific_writer/.claude/skills/research-grants/references/doe_guidelines.md +586 -0
- scientific_writer/.claude/skills/research-grants/references/nih_guidelines.md +851 -0
- scientific_writer/.claude/skills/research-grants/references/nsf_guidelines.md +570 -0
- scientific_writer/.claude/skills/research-grants/references/specific_aims_guide.md +458 -0
- scientific_writer/.claude/skills/research-lookup/README.md +116 -0
- scientific_writer/.claude/skills/research-lookup/SKILL.md +443 -0
- scientific_writer/.claude/skills/research-lookup/examples.py +174 -0
- scientific_writer/.claude/skills/research-lookup/lookup.py +93 -0
- scientific_writer/.claude/skills/research-lookup/research_lookup.py +335 -0
- scientific_writer/.claude/skills/research-lookup/scripts/research_lookup.py +261 -0
- scientific_writer/.claude/skills/scholar-evaluation/SKILL.md +254 -0
- scientific_writer/.claude/skills/scholar-evaluation/references/evaluation_framework.md +663 -0
- scientific_writer/.claude/skills/scholar-evaluation/scripts/calculate_scores.py +378 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/SKILL.md +530 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/common_biases.md +364 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/evidence_hierarchy.md +484 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/experimental_design.md +496 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/logical_fallacies.md +478 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/scientific_method.md +169 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/statistical_pitfalls.md +506 -0
- scientific_writer/.claude/skills/scientific-schematics/SKILL.md +2035 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/block_diagram_template.tex +199 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/circuit_template.tex +159 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/flowchart_template.tex +161 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/pathway_template.tex +162 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/tikz_styles.tex +422 -0
- scientific_writer/.claude/skills/scientific-schematics/references/best_practices.md +562 -0
- scientific_writer/.claude/skills/scientific-schematics/references/diagram_types.md +637 -0
- scientific_writer/.claude/skills/scientific-schematics/references/python_libraries.md +791 -0
- scientific_writer/.claude/skills/scientific-schematics/references/tikz_guide.md +734 -0
- scientific_writer/.claude/skills/scientific-schematics/scripts/circuit_generator.py +307 -0
- scientific_writer/.claude/skills/scientific-schematics/scripts/compile_tikz.py +292 -0
- scientific_writer/.claude/skills/scientific-schematics/scripts/generate_flowchart.py +281 -0
- scientific_writer/.claude/skills/scientific-schematics/scripts/pathway_diagram.py +406 -0
- scientific_writer/.claude/skills/scientific-writing/SKILL.md +443 -0
- scientific_writer/.claude/skills/scientific-writing/references/citation_styles.md +720 -0
- scientific_writer/.claude/skills/scientific-writing/references/figures_tables.md +806 -0
- scientific_writer/.claude/skills/scientific-writing/references/imrad_structure.md +658 -0
- scientific_writer/.claude/skills/scientific-writing/references/reporting_guidelines.md +748 -0
- scientific_writer/.claude/skills/scientific-writing/references/writing_principles.md +824 -0
- scientific_writer/.claude/skills/treatment-plans/README.md +483 -0
- scientific_writer/.claude/skills/treatment-plans/SKILL.md +817 -0
- scientific_writer/.claude/skills/treatment-plans/assets/chronic_disease_management_plan.tex +636 -0
- scientific_writer/.claude/skills/treatment-plans/assets/general_medical_treatment_plan.tex +616 -0
- scientific_writer/.claude/skills/treatment-plans/assets/mental_health_treatment_plan.tex +745 -0
- scientific_writer/.claude/skills/treatment-plans/assets/pain_management_plan.tex +770 -0
- scientific_writer/.claude/skills/treatment-plans/assets/perioperative_care_plan.tex +724 -0
- scientific_writer/.claude/skills/treatment-plans/assets/quality_checklist.md +471 -0
- scientific_writer/.claude/skills/treatment-plans/assets/rehabilitation_treatment_plan.tex +727 -0
- scientific_writer/.claude/skills/treatment-plans/references/goal_setting_frameworks.md +411 -0
- scientific_writer/.claude/skills/treatment-plans/references/intervention_guidelines.md +507 -0
- scientific_writer/.claude/skills/treatment-plans/references/regulatory_compliance.md +476 -0
- scientific_writer/.claude/skills/treatment-plans/references/specialty_specific_guidelines.md +607 -0
- scientific_writer/.claude/skills/treatment-plans/references/treatment_plan_standards.md +456 -0
- scientific_writer/.claude/skills/treatment-plans/scripts/check_completeness.py +318 -0
- scientific_writer/.claude/skills/treatment-plans/scripts/generate_template.py +244 -0
- scientific_writer/.claude/skills/treatment-plans/scripts/timeline_generator.py +369 -0
- scientific_writer/.claude/skills/treatment-plans/scripts/validate_treatment_plan.py +367 -0
- scientific_writer/.claude/skills/venue-templates/SKILL.md +590 -0
- scientific_writer/.claude/skills/venue-templates/assets/grants/nih_specific_aims.tex +235 -0
- scientific_writer/.claude/skills/venue-templates/assets/grants/nsf_proposal_template.tex +375 -0
- scientific_writer/.claude/skills/venue-templates/assets/journals/nature_article.tex +171 -0
- scientific_writer/.claude/skills/venue-templates/assets/journals/neurips_article.tex +283 -0
- scientific_writer/.claude/skills/venue-templates/assets/journals/plos_one.tex +317 -0
- scientific_writer/.claude/skills/venue-templates/assets/posters/beamerposter_academic.tex +311 -0
- scientific_writer/.claude/skills/venue-templates/references/conferences_formatting.md +564 -0
- scientific_writer/.claude/skills/venue-templates/references/grants_requirements.md +787 -0
- scientific_writer/.claude/skills/venue-templates/references/journals_formatting.md +486 -0
- scientific_writer/.claude/skills/venue-templates/references/posters_guidelines.md +628 -0
- scientific_writer/.claude/skills/venue-templates/scripts/customize_template.py +206 -0
- scientific_writer/.claude/skills/venue-templates/scripts/query_template.py +260 -0
- scientific_writer/.claude/skills/venue-templates/scripts/validate_format.py +255 -0
- scientific_writer/__init__.py +1 -1
- scientific_writer/api.py +9 -5
- scientific_writer/cli.py +9 -5
- scientific_writer/core.py +28 -5
- {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/METADATA +1 -1
- scientific_writer-2.2.3.dist-info/RECORD +312 -0
- scientific_writer-2.2.1.dist-info/RECORD +0 -11
- {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/WHEEL +0 -0
- {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/entry_points.txt +0 -0
- {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,734 @@
|
|
|
1
|
+
# TikZ Guide for Scientific Diagrams
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
TikZ (TikZ ist kein Zeichenprogramm - "TikZ is not a drawing program") is a powerful LaTeX package for creating high-quality vector graphics. This guide focuses on using TikZ for scientific diagrams, flowcharts, and schematics in research publications.
|
|
6
|
+
|
|
7
|
+
## Basic TikZ Structure
|
|
8
|
+
|
|
9
|
+
### Minimal Example
|
|
10
|
+
|
|
11
|
+
```latex
|
|
12
|
+
\documentclass{article}
|
|
13
|
+
\usepackage{tikz}
|
|
14
|
+
|
|
15
|
+
\begin{document}
|
|
16
|
+
|
|
17
|
+
\begin{tikzpicture}
|
|
18
|
+
% Your drawing commands here
|
|
19
|
+
\draw (0,0) -- (2,0); % Line from (0,0) to (2,0)
|
|
20
|
+
\node at (1,0.5) {Label}; % Text at position
|
|
21
|
+
\end{tikzpicture}
|
|
22
|
+
|
|
23
|
+
\end{document}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Required Packages and Libraries
|
|
27
|
+
|
|
28
|
+
```latex
|
|
29
|
+
\usepackage{tikz}
|
|
30
|
+
\usetikzlibrary{
|
|
31
|
+
shapes.geometric, % Rectangles, circles, diamonds, etc.
|
|
32
|
+
shapes.arrows, % Arrow shapes
|
|
33
|
+
arrows.meta, % Modern arrow tips
|
|
34
|
+
positioning, % Relative positioning (above, below, right of)
|
|
35
|
+
calc, % Coordinate calculations
|
|
36
|
+
fit, % Fitting boxes around multiple nodes
|
|
37
|
+
backgrounds, % Background layers
|
|
38
|
+
decorations.pathreplacing % Braces and decorations
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Coordinate Systems
|
|
43
|
+
|
|
44
|
+
### Cartesian Coordinates
|
|
45
|
+
|
|
46
|
+
```latex
|
|
47
|
+
\draw (0,0) -- (3,2); % From origin to (3,2)
|
|
48
|
+
\draw (1,1) circle (0.5); % Circle at (1,1) with radius 0.5
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Relative Coordinates
|
|
52
|
+
|
|
53
|
+
```latex
|
|
54
|
+
\draw (0,0) -- ++(2,0) % Move 2 right from (0,0), update position
|
|
55
|
+
-- ++(0,2) % Move 2 up from current position
|
|
56
|
+
-- ++(-2,0); % Move 2 left from current position
|
|
57
|
+
|
|
58
|
+
\draw (0,0) -- +(1,1); % Move to (1,1) but don't update position
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Polar Coordinates
|
|
62
|
+
|
|
63
|
+
```latex
|
|
64
|
+
\draw (0,0) -- (30:2); % Angle 30°, distance 2
|
|
65
|
+
\draw (0,0) -- (90:1.5); % Angle 90°, distance 1.5
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Named Coordinates
|
|
69
|
+
|
|
70
|
+
```latex
|
|
71
|
+
\coordinate (A) at (0,0);
|
|
72
|
+
\coordinate (B) at (3,2);
|
|
73
|
+
\draw (A) -- (B);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Drawing Basic Shapes
|
|
77
|
+
|
|
78
|
+
### Lines and Paths
|
|
79
|
+
|
|
80
|
+
```latex
|
|
81
|
+
% Straight line
|
|
82
|
+
\draw (0,0) -- (2,0);
|
|
83
|
+
|
|
84
|
+
% Multiple connected segments
|
|
85
|
+
\draw (0,0) -- (1,1) -- (2,0) -- (0,0);
|
|
86
|
+
|
|
87
|
+
% Closed path
|
|
88
|
+
\draw (0,0) -- (1,1) -- (2,0) -- cycle;
|
|
89
|
+
|
|
90
|
+
% Curved path (Bezier)
|
|
91
|
+
\draw (0,0) .. controls (1,1) and (2,1) .. (3,0);
|
|
92
|
+
|
|
93
|
+
% Smooth curve through points
|
|
94
|
+
\draw plot[smooth] coordinates {(0,0) (1,2) (2,1) (3,3)};
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Rectangles and Circles
|
|
98
|
+
|
|
99
|
+
```latex
|
|
100
|
+
% Rectangle: (lower-left) rectangle (upper-right)
|
|
101
|
+
\draw (0,0) rectangle (2,1);
|
|
102
|
+
|
|
103
|
+
% Circle: (center) circle (radius)
|
|
104
|
+
\draw (1,1) circle (0.5);
|
|
105
|
+
|
|
106
|
+
% Ellipse: (center) ellipse (x-radius and y-radius)
|
|
107
|
+
\draw (1,1) ellipse (1 and 0.5);
|
|
108
|
+
|
|
109
|
+
% Rounded rectangle
|
|
110
|
+
\draw[rounded corners=5pt] (0,0) rectangle (2,1);
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Arcs and Curves
|
|
114
|
+
|
|
115
|
+
```latex
|
|
116
|
+
% Arc: (start) arc (start-angle:end-angle:radius)
|
|
117
|
+
\draw (0,0) arc (0:90:1); % Quarter circle
|
|
118
|
+
\draw (0,0) arc (0:180:1.5); % Semicircle
|
|
119
|
+
|
|
120
|
+
% Partial ellipse arc
|
|
121
|
+
\draw (0,0) arc (0:270:1.5 and 1);
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Nodes - The Foundation of Diagrams
|
|
125
|
+
|
|
126
|
+
### Basic Nodes
|
|
127
|
+
|
|
128
|
+
```latex
|
|
129
|
+
% Simple node
|
|
130
|
+
\node at (0,0) {Text};
|
|
131
|
+
|
|
132
|
+
% Node with name for referencing
|
|
133
|
+
\node (A) at (0,0) {Node A};
|
|
134
|
+
\node (B) at (2,0) {Node B};
|
|
135
|
+
\draw (A) -- (B); % Connect nodes
|
|
136
|
+
|
|
137
|
+
% Node on a path
|
|
138
|
+
\draw (0,0) -- node {middle} (2,0);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Node Shapes
|
|
142
|
+
|
|
143
|
+
```latex
|
|
144
|
+
% Rectangle (default)
|
|
145
|
+
\node[draw, rectangle] at (0,0) {Rectangle};
|
|
146
|
+
|
|
147
|
+
% Circle
|
|
148
|
+
\node[draw, circle] at (2,0) {Circle};
|
|
149
|
+
|
|
150
|
+
% Ellipse
|
|
151
|
+
\node[draw, ellipse] at (4,0) {Ellipse};
|
|
152
|
+
|
|
153
|
+
% Diamond (requires shapes.geometric library)
|
|
154
|
+
\node[draw, diamond] at (6,0) {Diamond};
|
|
155
|
+
|
|
156
|
+
% Rounded rectangle
|
|
157
|
+
\node[draw, rounded corners] at (8,0) {Rounded};
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Node Styling
|
|
161
|
+
|
|
162
|
+
```latex
|
|
163
|
+
% Size
|
|
164
|
+
\node[minimum width=3cm, minimum height=1cm] {Wide node};
|
|
165
|
+
|
|
166
|
+
% Colors
|
|
167
|
+
\node[fill=blue!20, draw=blue!80] {Colored};
|
|
168
|
+
|
|
169
|
+
% Line style
|
|
170
|
+
\node[draw, thick, dashed] {Dashed border};
|
|
171
|
+
\node[draw, ultra thick] {Thick border};
|
|
172
|
+
|
|
173
|
+
% Text styling
|
|
174
|
+
\node[font=\large\bfseries] {Bold Large Text};
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Node Anchors
|
|
178
|
+
|
|
179
|
+
Nodes have anchor points for precise connections:
|
|
180
|
+
|
|
181
|
+
```latex
|
|
182
|
+
\node[draw] (A) at (0,0) {Node};
|
|
183
|
+
|
|
184
|
+
% Anchor points: north, south, east, west,
|
|
185
|
+
% north east, north west, south east, south west
|
|
186
|
+
% center
|
|
187
|
+
|
|
188
|
+
\draw[red] (A.north) -- ++(0,0.5); % From top of node
|
|
189
|
+
\draw[blue] (A.east) -- ++(0.5,0); % From right side
|
|
190
|
+
\draw[green] (A.south) -- ++(0,-0.5); % From bottom
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Positioning
|
|
194
|
+
|
|
195
|
+
### Absolute Positioning
|
|
196
|
+
|
|
197
|
+
```latex
|
|
198
|
+
\node[draw] at (0,0) {A};
|
|
199
|
+
\node[draw] at (3,2) {B};
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Relative Positioning (positioning library)
|
|
203
|
+
|
|
204
|
+
```latex
|
|
205
|
+
\node[draw] (A) {Node A};
|
|
206
|
+
\node[draw, right=of A] (B) {Node B};
|
|
207
|
+
\node[draw, below=of A] (C) {Node C};
|
|
208
|
+
\node[draw, above right=of A] (D) {Node D};
|
|
209
|
+
|
|
210
|
+
% With custom distance
|
|
211
|
+
\node[draw] (A) {A};
|
|
212
|
+
\node[draw, right=2cm of A] (B) {B};
|
|
213
|
+
\node[draw, below=1.5cm of A] (C) {C};
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Positioning Patterns
|
|
217
|
+
|
|
218
|
+
```latex
|
|
219
|
+
% Chained positioning
|
|
220
|
+
\node[draw] (A) {A};
|
|
221
|
+
\node[draw, right=of A] (B) {B};
|
|
222
|
+
\node[draw, right=of B] (C) {C};
|
|
223
|
+
\node[draw, right=of C] (D) {D};
|
|
224
|
+
|
|
225
|
+
% Grid layout
|
|
226
|
+
\node[draw] (A) at (0,2) {A};
|
|
227
|
+
\node[draw] (B) at (2,2) {B};
|
|
228
|
+
\node[draw] (C) at (0,0) {C};
|
|
229
|
+
\node[draw] (D) at (2,0) {D};
|
|
230
|
+
|
|
231
|
+
% Circular arrangement
|
|
232
|
+
\foreach \i in {0,1,...,7} {
|
|
233
|
+
\node[draw, circle] at ({360/8 * \i}:2) {\i};
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Arrows and Connections
|
|
238
|
+
|
|
239
|
+
### Arrow Styles (arrows.meta library)
|
|
240
|
+
|
|
241
|
+
```latex
|
|
242
|
+
% Modern arrow tips
|
|
243
|
+
\draw[-Stealth] (0,0) -- (2,0); % Stealth arrow tip
|
|
244
|
+
\draw[-Latex] (0,0.5) -- (2,0.5); % LaTeX arrow tip
|
|
245
|
+
\draw[-Triangle] (0,1) -- (2,1); % Triangle tip
|
|
246
|
+
|
|
247
|
+
% Both ends
|
|
248
|
+
\draw[Stealth-Stealth] (0,1.5) -- (2,1.5);
|
|
249
|
+
|
|
250
|
+
% Larger arrows
|
|
251
|
+
\draw[-{Stealth[length=5mm, width=3mm]}] (0,2) -- (2,2);
|
|
252
|
+
|
|
253
|
+
% Multiple arrows
|
|
254
|
+
\draw[-{Stealth}{Stealth}] (0,2.5) -- (2,2.5);
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Connection Paths
|
|
258
|
+
|
|
259
|
+
```latex
|
|
260
|
+
\node[draw] (A) {A};
|
|
261
|
+
\node[draw, right=3cm of A] (B) {B};
|
|
262
|
+
|
|
263
|
+
% Straight arrow
|
|
264
|
+
\draw[-Stealth] (A) -- (B);
|
|
265
|
+
|
|
266
|
+
% Horizontal then vertical
|
|
267
|
+
\draw[-Stealth] (A) -| (B);
|
|
268
|
+
|
|
269
|
+
% Vertical then horizontal
|
|
270
|
+
\draw[-Stealth] (A) |- (B);
|
|
271
|
+
|
|
272
|
+
% Curved (Bezier)
|
|
273
|
+
\draw[-Stealth] (A) to[bend left=30] (B);
|
|
274
|
+
\draw[-Stealth] (A) to[bend right=30] (B);
|
|
275
|
+
|
|
276
|
+
% Out and in angles
|
|
277
|
+
\draw[-Stealth] (A) to[out=45, in=135] (B);
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Edge Labels
|
|
281
|
+
|
|
282
|
+
```latex
|
|
283
|
+
\node[draw] (A) {A};
|
|
284
|
+
\node[draw, right=3cm of A] (B) {B};
|
|
285
|
+
|
|
286
|
+
% Label above
|
|
287
|
+
\draw[-Stealth] (A) -- node[above] {label} (B);
|
|
288
|
+
|
|
289
|
+
% Label below
|
|
290
|
+
\draw[-Stealth] (A) -- node[below] {label} (B);
|
|
291
|
+
|
|
292
|
+
% Label at specific position (0=start, 0.5=middle, 1=end)
|
|
293
|
+
\draw[-Stealth] (A) -- node[pos=0.25, above] {quarter} (B);
|
|
294
|
+
|
|
295
|
+
% Sloped text
|
|
296
|
+
\draw[-Stealth] (A) -- node[above, sloped] {sloped} (B);
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## Styles and Customization
|
|
300
|
+
|
|
301
|
+
### Defining Custom Styles
|
|
302
|
+
|
|
303
|
+
```latex
|
|
304
|
+
\begin{tikzpicture}[
|
|
305
|
+
% Define styles within tikzpicture options
|
|
306
|
+
process/.style={rectangle, draw, fill=blue!20,
|
|
307
|
+
minimum width=3cm, minimum height=1cm},
|
|
308
|
+
decision/.style={diamond, draw, fill=orange!20, aspect=2},
|
|
309
|
+
arrow/.style={-Stealth, thick}
|
|
310
|
+
]
|
|
311
|
+
|
|
312
|
+
\node[process] (p1) {Process};
|
|
313
|
+
\node[decision, below=of p1] (d1) {Decision?};
|
|
314
|
+
\draw[arrow] (p1) -- (d1);
|
|
315
|
+
|
|
316
|
+
\end{tikzpicture}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Global Style Definitions
|
|
320
|
+
|
|
321
|
+
```latex
|
|
322
|
+
% In preamble or separate file
|
|
323
|
+
\tikzset{
|
|
324
|
+
process/.style={
|
|
325
|
+
rectangle,
|
|
326
|
+
rounded corners,
|
|
327
|
+
draw=black,
|
|
328
|
+
thick,
|
|
329
|
+
fill=blue!20,
|
|
330
|
+
minimum width=3cm,
|
|
331
|
+
minimum height=1cm,
|
|
332
|
+
text width=2.5cm,
|
|
333
|
+
align=center
|
|
334
|
+
},
|
|
335
|
+
decision/.style={
|
|
336
|
+
diamond,
|
|
337
|
+
draw=black,
|
|
338
|
+
thick,
|
|
339
|
+
fill=orange!20,
|
|
340
|
+
minimum width=2cm,
|
|
341
|
+
aspect=2,
|
|
342
|
+
align=center
|
|
343
|
+
},
|
|
344
|
+
data/.style={
|
|
345
|
+
trapezium,
|
|
346
|
+
trapezium left angle=70,
|
|
347
|
+
trapezium right angle=110,
|
|
348
|
+
draw=black,
|
|
349
|
+
thick,
|
|
350
|
+
fill=green!20,
|
|
351
|
+
minimum width=2cm,
|
|
352
|
+
minimum height=1cm
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Color Definitions (Okabe-Ito Colorblind-Safe Palette)
|
|
358
|
+
|
|
359
|
+
```latex
|
|
360
|
+
\definecolor{okabe-orange}{RGB}{230, 159, 0}
|
|
361
|
+
\definecolor{okabe-blue}{RGB}{86, 180, 233}
|
|
362
|
+
\definecolor{okabe-green}{RGB}{0, 158, 115}
|
|
363
|
+
\definecolor{okabe-yellow}{RGB}{240, 228, 66}
|
|
364
|
+
\definecolor{okabe-dblue}{RGB}{0, 114, 178}
|
|
365
|
+
\definecolor{okabe-vermillion}{RGB}{213, 94, 0}
|
|
366
|
+
\definecolor{okabe-purple}{RGB}{204, 121, 167}
|
|
367
|
+
\definecolor{okabe-black}{RGB}{0, 0, 0}
|
|
368
|
+
|
|
369
|
+
% Use in styles
|
|
370
|
+
\node[fill=okabe-blue!30, draw=okabe-dblue] {Text};
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
## Advanced Techniques
|
|
374
|
+
|
|
375
|
+
### Loops and Repetition
|
|
376
|
+
|
|
377
|
+
```latex
|
|
378
|
+
% Simple loop
|
|
379
|
+
\foreach \x in {0,1,2,3,4} {
|
|
380
|
+
\node[draw] at (\x,0) {\x};
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
% Loop with calculations
|
|
384
|
+
\foreach \x in {0,1,...,5} {
|
|
385
|
+
\draw (\x,0) circle (0.2);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
% Multiple variables
|
|
389
|
+
\foreach \x/\y/\label in {0/0/A, 1/1/B, 2/0/C} {
|
|
390
|
+
\node[draw] at (\x,\y) {\label};
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
% Nested loops
|
|
394
|
+
\foreach \x in {0,1,2} {
|
|
395
|
+
\foreach \y in {0,1,2} {
|
|
396
|
+
\node[draw] at (\x,\y) {\x,\y};
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### Calculations (calc library)
|
|
402
|
+
|
|
403
|
+
```latex
|
|
404
|
+
% Midpoint
|
|
405
|
+
\coordinate (A) at (0,0);
|
|
406
|
+
\coordinate (B) at (4,3);
|
|
407
|
+
\coordinate (M) at ($(A)!0.5!(B)$); % Midpoint between A and B
|
|
408
|
+
\node[draw] at (M) {Middle};
|
|
409
|
+
|
|
410
|
+
% Point along path
|
|
411
|
+
\coordinate (C) at ($(A)!0.25!(B)$); % 25% from A to B
|
|
412
|
+
|
|
413
|
+
% Perpendicular point
|
|
414
|
+
\coordinate (P) at ($(A)!0.5!(B)$);
|
|
415
|
+
\coordinate (Q) at ($(P)!1cm!90:(B)$); % 1cm perpendicular to AB
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### Backgrounds and Layers
|
|
419
|
+
|
|
420
|
+
```latex
|
|
421
|
+
\begin{tikzpicture}
|
|
422
|
+
% Main content
|
|
423
|
+
\node[draw] (A) {Node A};
|
|
424
|
+
\node[draw, right=of A] (B) {Node B};
|
|
425
|
+
|
|
426
|
+
% Background layer
|
|
427
|
+
\begin{scope}[on background layer]
|
|
428
|
+
\node[fill=gray!20, rounded corners, fit=(A) (B),
|
|
429
|
+
inner sep=10pt] {};
|
|
430
|
+
\end{scope}
|
|
431
|
+
\end{tikzpicture}
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Scope for Local Styling
|
|
435
|
+
|
|
436
|
+
```latex
|
|
437
|
+
\begin{tikzpicture}
|
|
438
|
+
% Normal drawing
|
|
439
|
+
\draw (0,0) -- (1,0);
|
|
440
|
+
|
|
441
|
+
% Apply style only within scope
|
|
442
|
+
\begin{scope}[thick, blue]
|
|
443
|
+
\draw (0,0.5) -- (1,0.5);
|
|
444
|
+
\draw (0,1) -- (1,1);
|
|
445
|
+
\end{scope}
|
|
446
|
+
|
|
447
|
+
% Back to normal
|
|
448
|
+
\draw (0,1.5) -- (1,1.5);
|
|
449
|
+
\end{tikzpicture}
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
## Common Scientific Diagram Patterns
|
|
453
|
+
|
|
454
|
+
### Flowchart Pattern
|
|
455
|
+
|
|
456
|
+
```latex
|
|
457
|
+
\begin{tikzpicture}[
|
|
458
|
+
node distance=1.5cm and 2cm,
|
|
459
|
+
process/.style={rectangle, rounded corners, draw, thick,
|
|
460
|
+
fill=blue!20, minimum width=3cm, minimum height=1cm},
|
|
461
|
+
decision/.style={diamond, draw, thick, fill=orange!20, aspect=2},
|
|
462
|
+
arrow/.style={-Stealth, thick}
|
|
463
|
+
]
|
|
464
|
+
|
|
465
|
+
\node[process] (start) {Start};
|
|
466
|
+
\node[process, below=of start] (step1) {Process Step};
|
|
467
|
+
\node[decision, below=of step1] (decision) {Decision?};
|
|
468
|
+
\node[process, below left=of decision] (yes) {Yes Path};
|
|
469
|
+
\node[process, below right=of decision] (no) {No Path};
|
|
470
|
+
\node[process, below=3cm of decision] (end) {End};
|
|
471
|
+
|
|
472
|
+
\draw[arrow] (start) -- (step1);
|
|
473
|
+
\draw[arrow] (step1) -- (decision);
|
|
474
|
+
\draw[arrow] (decision) -| node[near start, above] {yes} (yes);
|
|
475
|
+
\draw[arrow] (decision) -| node[near start, above] {no} (no);
|
|
476
|
+
\draw[arrow] (yes) |- (end);
|
|
477
|
+
\draw[arrow] (no) |- (end);
|
|
478
|
+
|
|
479
|
+
\end{tikzpicture}
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
### Block Diagram Pattern
|
|
483
|
+
|
|
484
|
+
```latex
|
|
485
|
+
\begin{tikzpicture}[
|
|
486
|
+
block/.style={rectangle, draw, thick, fill=blue!20,
|
|
487
|
+
minimum width=2.5cm, minimum height=1cm},
|
|
488
|
+
arrow/.style={-Stealth, thick}
|
|
489
|
+
]
|
|
490
|
+
|
|
491
|
+
\node[block] (input) {Input};
|
|
492
|
+
\node[block, right=2cm of input] (process) {Process};
|
|
493
|
+
\node[block, right=2cm of process] (output) {Output};
|
|
494
|
+
|
|
495
|
+
\draw[arrow] (input) -- node[above] {data} (process);
|
|
496
|
+
\draw[arrow] (process) -- node[above] {result} (output);
|
|
497
|
+
|
|
498
|
+
% Feedback loop
|
|
499
|
+
\draw[arrow] (output.north) |- ++(0,1) -|
|
|
500
|
+
node[near end, above] {feedback} (process.north);
|
|
501
|
+
|
|
502
|
+
\end{tikzpicture}
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
### Network Diagram Pattern
|
|
506
|
+
|
|
507
|
+
```latex
|
|
508
|
+
\begin{tikzpicture}[
|
|
509
|
+
node/.style={circle, draw, thick, fill=blue!20, minimum size=1cm},
|
|
510
|
+
edge/.style={-Stealth, thick}
|
|
511
|
+
]
|
|
512
|
+
|
|
513
|
+
% Nodes
|
|
514
|
+
\node[node] (1) at (0,0) {1};
|
|
515
|
+
\node[node] (2) at (2,1.5) {2};
|
|
516
|
+
\node[node] (3) at (2,-1.5) {3};
|
|
517
|
+
\node[node] (4) at (4,0) {4};
|
|
518
|
+
|
|
519
|
+
% Edges
|
|
520
|
+
\draw[edge] (1) -- (2);
|
|
521
|
+
\draw[edge] (1) -- (3);
|
|
522
|
+
\draw[edge] (2) -- (4);
|
|
523
|
+
\draw[edge] (3) -- (4);
|
|
524
|
+
\draw[edge, bend left] (2) to (3);
|
|
525
|
+
|
|
526
|
+
\end{tikzpicture}
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
### Timeline Pattern
|
|
530
|
+
|
|
531
|
+
```latex
|
|
532
|
+
\begin{tikzpicture}
|
|
533
|
+
% Timeline axis
|
|
534
|
+
\draw[thick, -Stealth] (0,0) -- (10,0) node[right] {Time};
|
|
535
|
+
|
|
536
|
+
% Events
|
|
537
|
+
\foreach \x/\label in {1/Baseline, 3/Week 4, 5/Week 8, 7/Week 12, 9/Final} {
|
|
538
|
+
\draw[thick] (\x,0.1) -- (\x,-0.1);
|
|
539
|
+
\node[below] at (\x,-0.1) {\label};
|
|
540
|
+
\node[circle, fill=blue!20, draw, inner sep=2pt] at (\x,0) {};
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
% Interventions as bars
|
|
544
|
+
\draw[thick, blue] (1,0.5) -- (5,0.5) node[midway, above] {Treatment A};
|
|
545
|
+
\draw[thick, red] (5,0.8) -- (9,0.8) node[midway, above] {Treatment B};
|
|
546
|
+
|
|
547
|
+
\end{tikzpicture}
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
## CircuitikZ for Circuit Diagrams
|
|
551
|
+
|
|
552
|
+
CircuitikZ extends TikZ specifically for electrical circuits:
|
|
553
|
+
|
|
554
|
+
```latex
|
|
555
|
+
\usepackage{circuitikz}
|
|
556
|
+
|
|
557
|
+
\begin{circuitikz}[american]
|
|
558
|
+
% Voltage source
|
|
559
|
+
\draw (0,0) to[V, v=$V_s$] (0,2)
|
|
560
|
+
|
|
561
|
+
% Resistors
|
|
562
|
+
to[R, l=$R_1$] (2,2)
|
|
563
|
+
to[R, l=$R_2$] (4,2)
|
|
564
|
+
|
|
565
|
+
% Capacitor
|
|
566
|
+
to[C, l=$C_1$] (4,0)
|
|
567
|
+
|
|
568
|
+
% Close circuit
|
|
569
|
+
to[short] (0,0);
|
|
570
|
+
|
|
571
|
+
% Ground
|
|
572
|
+
\draw (0,0) node[ground] {};
|
|
573
|
+
|
|
574
|
+
\end{circuitikz}
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
## Best Practices for Scientific Diagrams
|
|
578
|
+
|
|
579
|
+
### 1. Consistent Node Spacing
|
|
580
|
+
|
|
581
|
+
```latex
|
|
582
|
+
% Define node distance globally
|
|
583
|
+
\begin{tikzpicture}[node distance=2cm and 3cm]
|
|
584
|
+
% All nodes will be spaced consistently
|
|
585
|
+
\end{tikzpicture}
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### 2. Use Styles for Consistency
|
|
589
|
+
|
|
590
|
+
```latex
|
|
591
|
+
% Define styles once, use everywhere
|
|
592
|
+
\tikzset{
|
|
593
|
+
myprocess/.style={/* styling */},
|
|
594
|
+
mydecision/.style={/* styling */}
|
|
595
|
+
}
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
### 3. Named Nodes for Flexibility
|
|
599
|
+
|
|
600
|
+
```latex
|
|
601
|
+
% Always name nodes you'll reference
|
|
602
|
+
\node (A) {Node A}; % Good
|
|
603
|
+
\node at (0,0) {Node}; % Hard to reference later
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
### 4. Anchor Points for Precise Connections
|
|
607
|
+
|
|
608
|
+
```latex
|
|
609
|
+
% Use anchors for clean connections
|
|
610
|
+
\draw (A.east) -- (B.west); % Good
|
|
611
|
+
\draw (A) -- (B); % May not connect cleanly
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
### 5. Layer Complex Diagrams
|
|
615
|
+
|
|
616
|
+
```latex
|
|
617
|
+
% Draw in logical order: background -> main -> annotations
|
|
618
|
+
\begin{scope}[on background layer]
|
|
619
|
+
% Background elements
|
|
620
|
+
\end{scope}
|
|
621
|
+
% Main diagram
|
|
622
|
+
% Annotations on top
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### 6. Modularity with \input
|
|
626
|
+
|
|
627
|
+
```latex
|
|
628
|
+
% Main document
|
|
629
|
+
\begin{figure}
|
|
630
|
+
\centering
|
|
631
|
+
\input{figures/my_diagram.tikz}
|
|
632
|
+
\caption{My diagram}
|
|
633
|
+
\end{figure}
|
|
634
|
+
|
|
635
|
+
% my_diagram.tikz contains just the tikzpicture
|
|
636
|
+
\begin{tikzpicture}
|
|
637
|
+
% diagram code
|
|
638
|
+
\end{tikzpicture}
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
## Compilation and Optimization
|
|
642
|
+
|
|
643
|
+
### Standalone Compilation
|
|
644
|
+
|
|
645
|
+
Create standalone TikZ documents for faster iteration:
|
|
646
|
+
|
|
647
|
+
```latex
|
|
648
|
+
\documentclass[tikz, border=2mm]{standalone}
|
|
649
|
+
\usepackage{tikz}
|
|
650
|
+
\usetikzlibrary{shapes, arrows.meta, positioning}
|
|
651
|
+
|
|
652
|
+
\begin{document}
|
|
653
|
+
\begin{tikzpicture}
|
|
654
|
+
% Your diagram
|
|
655
|
+
\end{tikzpicture}
|
|
656
|
+
\end{document}
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
Compile to PDF:
|
|
660
|
+
```bash
|
|
661
|
+
pdflatex diagram.tex
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
### External Graphics (for large documents)
|
|
665
|
+
|
|
666
|
+
For complex diagrams, compile separately and include:
|
|
667
|
+
|
|
668
|
+
```latex
|
|
669
|
+
% Enable externalization
|
|
670
|
+
\usetikzlibrary{external}
|
|
671
|
+
\tikzexternalize
|
|
672
|
+
|
|
673
|
+
% In document
|
|
674
|
+
\begin{tikzpicture}
|
|
675
|
+
% Complex diagram - compiled once, cached
|
|
676
|
+
\end{tikzpicture}
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
## Troubleshooting Common Issues
|
|
680
|
+
|
|
681
|
+
**Issue**: Nodes overlapping text
|
|
682
|
+
- **Solution**: Increase `minimum width` or `minimum height`, or use `text width` with `align=center`
|
|
683
|
+
|
|
684
|
+
**Issue**: Arrows not pointing to node edges
|
|
685
|
+
- **Solution**: Use anchor points: `\draw (A.east) -- (B.west);`
|
|
686
|
+
|
|
687
|
+
**Issue**: Inconsistent spacing
|
|
688
|
+
- **Solution**: Set `node distance` globally in tikzpicture options
|
|
689
|
+
|
|
690
|
+
**Issue**: Curved arrows going wrong direction
|
|
691
|
+
- **Solution**: Adjust `bend left/right` angle or use `out` and `in` angles
|
|
692
|
+
|
|
693
|
+
**Issue**: Text overflowing nodes
|
|
694
|
+
- **Solution**: Add `text width=Xcm, align=center` to node style
|
|
695
|
+
|
|
696
|
+
**Issue**: Compilation slow
|
|
697
|
+
- **Solution**: Use `\tikzexternalize` or compile diagrams separately
|
|
698
|
+
|
|
699
|
+
## Quick Reference: Common Commands
|
|
700
|
+
|
|
701
|
+
```latex
|
|
702
|
+
% Shapes
|
|
703
|
+
\node[draw, rectangle] {Text};
|
|
704
|
+
\node[draw, circle] {Text};
|
|
705
|
+
\node[draw, diamond] {Text};
|
|
706
|
+
\node[draw, ellipse] {Text};
|
|
707
|
+
|
|
708
|
+
% Positioning
|
|
709
|
+
\node[right=of A] (B) {B};
|
|
710
|
+
\node[below=2cm of A] (C) {C};
|
|
711
|
+
\node[above right=of A] (D) {D};
|
|
712
|
+
|
|
713
|
+
% Arrows
|
|
714
|
+
\draw[-Stealth] (A) -- (B);
|
|
715
|
+
\draw[-Stealth] (A) to[bend left] (B);
|
|
716
|
+
\draw[-Stealth] (A) -| (B);
|
|
717
|
+
|
|
718
|
+
% Styling
|
|
719
|
+
\node[fill=blue!20, draw=blue!80, thick] {Styled};
|
|
720
|
+
\draw[thick, dashed, red] (A) -- (B);
|
|
721
|
+
|
|
722
|
+
% Loops
|
|
723
|
+
\foreach \x in {0,1,2,3} { \node at (\x,0) {\x}; }
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
## Further Resources
|
|
727
|
+
|
|
728
|
+
- **TikZ & PGF Manual**: https://pgf-tikz.github.io/pgf/pgfmanual.pdf
|
|
729
|
+
- **TeXample.net**: http://www.texample.net/tikz/
|
|
730
|
+
- **CircuitikZ Manual**: https://ctan.org/pkg/circuitikz
|
|
731
|
+
- **TikZ Tutorial**: https://cremeronline.com/LaTeX/minimaltikz.pdf
|
|
732
|
+
|
|
733
|
+
This guide provides the foundation for creating scientific diagrams with TikZ. Combine these techniques with the templates in the `assets/` directory for publication-ready figures.
|
|
734
|
+
|