Fixes
- WebAssembly & initialization
- Fix TikZJax WebAssembly initialization issues.
- Fonts & symbol rendering
- Override DVI parser `machine.putText` to use split character code offsets from `tikzjax.js`.
- Map codes 0–9 starting at 161 to fix incorrect Γ rendering (was showing as Θ).
- Map codes 10–19 starting at 173 to resolve Ω and ⊗ collisions with soft hyphen.
- Layout & rendering
- Fix SVG clipping by switching to `position: relative` with `overflow: visible`.
- Adjust inline SVG behavior to prevent top-of-page clipping.
- Type compatibility
- Cast types to `unknown` in `TikzJaxLoader` and worker functions for compatibility.
- Error handling & cleanup
- Improve error handling across TikZ components.
- Remove unused dependencies and unnecessary console logs.
Features
- Package loading system
- Add robust dependency resolution in `loader.ts` for:
- `tikz-cd`
- `tikz-feynhand`
- `pgfcalendar`
- Ensure required libraries and keys load dynamically on demand.
- Rendering & layout improvements
- Enhance SVG bounding box calculation.
- Implement dynamic column width calculation.
- Improve row and column layout alignment and responsiveness.
- TikZ editor enhancements
- Add keyboard shortcut tooltips to sidebar buttons.
- Introduce thickness control slider for elements.
- Improve snapping system with modes:
- grid
- half
- none
- Add support for new shapes:
- circles
- rectangles
- triangles
- Improve TikZ code generation error handling.
Improvements
- Selection & editing UX
- Add lasso selection for multiple vertices in `CanvasGrid`.
- Support multi-element editing in `RightSidebar`.
- Refactor `TikzEditorModal` to handle multiple selected vertices.
- Enable batch updates for selected elements.
- Layout & styling
- Compact `.block-language-tikz` layout:
- margin: `1.5em 0` → `0.3em 0`
- padding: `1rem 0` → `0`
- Improve canvas controls and interaction styles.
- Component refactoring
- Refactor `CanvasGrid` to use template literals.
- Replace inline styles with `setCssStyles`.
- Improve `TikzCodec` node naming clarity.
- Improve `history manager` type safety with `EditorElement`.
- Use `window.setTimeout` in asset manager for better compatibility.
- Accessibility & UI polish
- Improve sidebar button titles and tooltips.
- Standardize live preview overlay button titles.
- Clean up modal styling and text consistency.
Documentation
- Revamp TeXcore plugin documentation:
- Clarify PDF export features and settings.
- Improve quick preview architecture explanation.
- Enhance equation search and autocomplete docs.
- Streamline snippets usage and transformations.
- Expand TikZ diagrams section with graphical editor guide.
- Improve getting started guide with clearer steps.
- Add navigation and configuration updates.
- Update plugin manifest descriptions for clarity.
3 KiB
Equation Search & Autocomplete
TeXcore offers a robust, keyboard-driven interface to search, preview, and link equations inside your vault. This module consists of two main interfaces: an editor-integrated Autocomplete Popup and a dedicated Search Modal.
Editor Autocomplete Popup
Trigger autocompletion anywhere in your notes by typing your configured trigger string (default is \eqref). A dropdown menu instantly pops up at your cursor, displaying all equations matching your query along with their parsed line numbers and live math previews.
| Action Key | Result | Description |
|---|---|---|
↑ / ↓ |
Highlight suggestion | Navigate the list of cached equations. |
| ++enter++ | Insert reference link | Appends [[#^eq-id]] at cursor. |
| ++ctrl+enter++ (1) | Jump to definition | Instantly shifts editor focus to the math block declaration. |
| ++escape++ | Close popup | Discards current search query. |
- Maps to ++cmd+enter++ on macOS environments. Instructions are displayed inline inside the popup if configured in settings.
!!! info "Automatic Identifier Generation"
If you reference an equation that has no identifier tag, TeXcore automatically generates a unique ID (e.g. % id: eq-b5x3e2), appends it before the closing $$, and inserts the resolved link to ensure referencing consistency.
Vault Search Modal
Access the dedicated note-wide search dialog by triggering ++ctrl+p++ and running Search equations in active note. This modal provides an expanded viewport displaying equation previews on hover. It uses two search algorithms configurable in your Autocomplete Settings:
- Fuzzy Search (Default): Matches partial strings and typos (e.g., query
intglmatches\integralor\int) using Obsidian's internalprepareFuzzySearchutility. - Simple Search: Matches exact substrings (e.g., query
intmatches\intandpointbut notfrac) using Obsidian'sprepareSimpleSearchutility.
Navigation Target Configuration
When jumping to equation definitions via the autocomplete suggestion list, you can configure the editor target split layout in Settings Reference:
=== "Standard Navigation (Default)" Resolves the jump within your active tab view, replacing current focus.
=== "Split Tab Right" Splits the active pane vertically and focuses the equation on the right-hand panel.
=== "New Window / Split Down" Opens a detached editor window or horizontal split viewport to show equations side-by-side.
Performance Notes & Best Practices
- Vault Performance: The search indexing index is scoped to the active note only. This prevents vault-wide scan lag, resulting in instant search evaluations even on low-end hardware.
- Custom Triggers: You can change the trigger string in Autocomplete & Search Settings to
#eqor@eqif you want to avoid overlaps with other LaTeX parser plugins.