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.4 KiB
Getting Started with TeXcore
Follow this guide to install, configure, and draft your first indexed equations in Obsidian.
Installation
You can install TeXcore either directly from the official Obsidian Community Plugins store or manually by compiling the releases.
=== "Community Store (Recommended)"
1. Navigate to ++ctrl+comma++ (or ++cmd+comma++ on macOS) to open Obsidian Settings and select Community plugins.
2. Click Browse, search for TeXcore, and click Install.
3. Once installed, click Enable to activate the plugin.
=== "Manual Installation"
1. Download the latest main.js, manifest.json, and styles.css from the Latest Releases.
2. Open your Obsidian Vault directory and navigate to the hidden directory: .obsidian/plugins/.
3. Create a folder named TeXcore and paste the three downloaded files into it.
4. Go to Settings → Community plugins and toggle TeXcore to Enable.
Step-by-Step Setup
Let's write, trigger, and link your first math reference.
graph TD
A[Create display math $$ block] --> B[Add % id: eq-name inside]
B --> C[Type \eqref autocomplete trigger]
C --> D[Select reference from popup]
D --> E[Link resolved with tag number]
1. Write the Math Block
Open any note in your vault and create a standard display math block:
$$
\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$
2. Add the Identifier
To index the equation, insert a LaTeX comment (% id: <name>) on the line immediately preceding the closing $$ delimiter:
$$
\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
% id: eq-gaussian
$$
!!! tip "ID Format Constraints"
Your identifier must start with eq- followed by letters, numbers, or hyphens. Examples: eq-gaussian, eq-step-1, or eq-ref-3.
3. Insert the Reference
Type \eqref (the default trigger) in your text. An autocomplete dropdown listing all active note equations will pop up. Select eq-gaussian and press ++enter++ to insert [[#^eq-gaussian]].
The integral [[#^eq-gaussian]] resolves to a constant.
4. Observe the Rendered Result
Obsidian will now display a right-aligned number tag (1) next to the equation, and the inline link will render as clickable text displaying (1). Hovering over it displays a rich popup preview of the math block.
Interactive Command Palette Actions
Press ++ctrl+p++ (or ++cmd+p++) to trigger the command palette. TeXcore exposes several key commands:
| Command | Action Description | Core Feature Link |
|---|---|---|
Insert display math |
Inserts a template display math block containing the % id: line. |
Equations |
Search equations in active note |
Opens the search modal to browse all equation cache references. | Search |
Fix callout equations in active note |
Fixes missing or misaligned callout markers on math blocks. | Callouts |
Export current file to PDF |
Opens the PDF compilation window with preview and print settings. | PDF Export |
Insert LaTeX Snippet |
Displays saved snippets for fast editor insertion. | Snippets |
For further customization, consult our Settings Reference or explore the Features Matrix Overview to see what is possible.