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.
1.9 KiB
Quick Hover Previews
TeXcore integrates with Obsidian's core page preview mechanics to display real-time, mathematical popups whenever you hover over an equation link like [[#^eq-einstein]] or highlight items in the Autocomplete Suggestions Menu.
Technical Architecture
The preview lookup hooks into Obsidian's internal page-preview engine. TeXcore intercepts link hover events, references the identifier against the active document's equation cache, locates the line offset, and scrolls the popup container to display the equation in focus.
sequenceDiagram
participant User as Editor hover
participant PP as Page Preview Plugin
participant C as TeXcore Cache
participant V as Preview Popup View
User->>PP: Hover [[#^eq-id]]
PP->>C: Query eq-id coordinate
C-->>PP: Return line number
PP->>V: Compile MathJax & scroll to line
V->>User: Display preview popup
Requirements & Setup
!!! important "Enable Core Page Preview" This feature relies on Obsidian's core architecture. Open Settings → Core plugins and toggle Page preview to Enable. If this core dependency is deactivated, TeXcore will log a console warning and hover previews will fallback to standard text previews without viewport scrolling.
Troubleshooting Previews
If preview boxes fail to load or scroll incorrectly, consult the diagnostic table below:
| Symptom | Cause | Solution |
|---|---|---|
| No preview modal opens | Page Preview core plugin is toggled off. | Toggle on Page Preview in Obsidian settings. |
| Formula text displays raw LaTeX | MathJax rendering is disabled for suggestions. | Toggle on Render Math in Suggestions. |
| Preview focuses the wrong line | Malformed % id: eq-name or stale index cache. |
Touch-edit the note content to trigger a cache re-index. |