Package Options
An overview of Neural Sketch's global style keys and how to configure them
If you're new here, check out the Quick Start guide first. It lays the groundwork for what follows.
Global Style, Local Precision
Every diagram in your paper is a visual sentence. And like sentence structure, consistency in styling matters. Neural Sketch gives you the ability to define this consistency up front—globally, in one place—so each figure speaks in the same visual language.
This is what package-level options are for.
They let you shape the tone of your diagrams—what colors to speak in, how heavy the lines feel, how much breathing room surrounds each component. All of it defined once, applied everywhere.
How to Use Global Options
You load Neural Sketch in the preamble of your document with configuration keys passed directly into the package:
These keys act like stylistic defaults. They govern the visual behavior of the system unless explicitly overridden later in the diagram itself.
Want every block to have rounded corners by default? Declare it once:
Want annotations to always use dashed outlines and soft gray fills? Just say so:
This doesn’t lock you in. These are defaults, not shackles. You can override any key at the point of use.
Why It Matters
Defining style globally is more than a convenience. It makes your diagrams:
- Consistent across figures
- Effortless to revise (change one key, update every figure)
- Clearer to read (visual rhythm = less cognitive load)
And—critically—it decouples design from structure. You can focus on the logic of the diagram, not the aesthetics of every line.
Reference Table
The full list of package-level configuration keys is available below. Each entry defines a stylistic control point—its name, expected format, and default behavior.
Prop | Type | Default |
---|---|---|
block-distance? | token list | 1cm and 1cm |
annotate-border-color? | token list | nskMidGray |
annotate-border-radius? | token list | 1mm |
annotate-border-size? | token list | .4mm |
annotate-border-type? | token list | solid |
annotate-box-padding? | token list | 3pt |
annotate-connect-opts? | token list | arrow-style = {dotted, thick |
annotate-connect-to? | token list | {} |
annotate-fill? | token list | nskLightestGray |
annotate-from-anchor? | token list | east |
annotate-header? | token list | {} |
annotate-header-style? | token list | \bfseries |
annotate-main-style? | token list | {} |
annotate-pos? | token list | {} |
annotate-ref-tag? | token list | {} |
annotate-text? | token list | {} |
annotate-text-align? | token list | left |
annotate-text-color? | token list | c__nsk_principal |
annotate-title? | token list | {} |
annotate-title-style? | token list | \itshape |
annotate-width? | token list | 0cm |
annotate-x? | token list | 0 |
annotate-y? | token list | 0 |
arrow-style? | token list | ultra~thick, line~cap=round |
arrow-tip? | token list | - |
bend-distance? | token list | 1cm |
block-anchor? | token list | {} |
block-border-color? | token list | nskDarkGray |
block-border-radius? | token list | 2.5mm |
block-border-size? | token list | .4mm |
block-embed-border-radius? | token list | 1.3mm |
block-embed-border-size? | token list | 1pt |
block-embed-padding? | token list | 1mm |
block-fill? | token list | nskLightGray |
block-height? | token list | 1cm |
block-importance? | token list | 1.0 |
block-outer-border-color? | token list | nskMainAccent!50!nskBg |
block-outer-border-radius? | token list | 2.5mm |
block-outer-border-size? | token list | 5mm |
block-outer-border-type? | token list | none |
block-stack-count? | token list | single |
block-stack-opts? | token list | opacity=.6 |
block-stack-xoffset? | token list | 1mm |
block-stack-yoffset? | token list | -.8mm |
block-width? | token list | 1cm |
block-x? | token list | 0 |
block-y? | token list | 0 |
bridging-gap? | token list | 4pt |
bridging-span? | token list | 8pt |
bridging-style? | token list | arc |
container-anchor? | token list | {} |
container-border-color? | token list | nskLighterGray |
container-border-type? | token list | solid |
container-fill? | token list | nskLightestGray |
container-padding? | token list | .5cm |
container-rotate? | token list | 0 |
container-scale? | token list | 1 |
container-shift-x? | token list | 0 |
container-shift-y? | token list | 0 |
measure-axis? | token list | horizontal |
measure-from? | token list | {} |
measure-to? | token list | {} |
shorten-from? | token list | 0pt |
shorten-to? | token list | 0pt |
text-center-loc? | token list | {} |
text-east-loc? | token list | {} |
text-north-loc? | token list | {} |
text-south-loc? | token list | {} |
text-west-loc? | token list | {} |
zoom-at? | token list | {} |
zoom-callout-border-color? | token list | \g__nsk_style_block_border_color_tl |
zoom-callout-style? | token list | thick, densely~dashed |
zoom-connecting-path? | token list | \draw[\g__nsk_style_zoom_connecting_style_tl] (tikzspyonnode) -- (tikzspyinnode); |
zoom-connecting-style? | token list | \g__nsk_style_block_border_color_tl |
zoom-magnification? | token list | 4 |
zoom-size? | token list | 2cm |
zoom-to? | token list | {} |
zoom-type? | token list | circle |
zoom-zoomed-fill? | token list | none |
zoom-zoomed-style? | token list | draw=\g__nsk_style_block_border_color_tl, ultra~thick |