A modern, open-source LaTeX editor with real-time preview
LaTeXFlow is a modern, web-based LaTeX editor designed to provide a seamless writing experience with real-time preview, syntax highlighting, and a comprehensive template library.
- Real-time Preview: See your LaTeX document rendered as you type
- Monaco Editor: Powered by the same editor as VS Code
- Syntax Highlighting: Beautiful LaTeX syntax highlighting with custom theme
- Auto-completion: Intelligent auto-completion for LaTeX commands
- Template Library: Pre-built templates for articles, papers, presentations, and more
- Split View: Adjustable split-pane interface with resizable panels
- Modern UI: Clean, dark-themed interface built with Tailwind CSS
- Responsive: Works on desktop and tablet devices
(Add screenshots here after running the application)
- Frontend Framework: React 18 with TypeScript
- Build Tool: Vite 5
- Code Editor: Monaco Editor (VS Code's editor)
- LaTeX Compiler: latex.js (JavaScript-based LaTeX compiler)
- Styling: Tailwind CSS
- UI Components: Lucide React icons, react-resizable-panels
- Node.js 18+ and npm (or yarn/pnpm)
- Clone the repository:
git clone https://github.com/marcosfpina/dnsec.git
cd dnsec- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:3000
npm run buildThe built files will be in the dist directory.
npm run preview- Choose a Template: Click the "Templates" button to select from pre-built templates
- Write LaTeX: Edit your document in the left pane with syntax highlighting and auto-completion
- Preview: See your document rendered in real-time in the right pane
- Toggle Preview: Hide the preview pane for more editing space
- Export: Export your document to PDF (coming soon)
Ctrl/Cmd + S: Save (browser download)Ctrl/Cmd + /: Toggle commentCtrl/Cmd + Space: Trigger auto-completion
-
Articles
- Basic Article
- Academic Paper with Abstract
-
Education
- Math Homework
-
Presentations
- Beamer Presentation
-
Documents
- Formal Letter
- CV/Resume
-
Reports
- Technical Report
latexflow/
├── src/
│ ├── components/ # React components
│ │ ├── Editor.tsx # Monaco editor wrapper
│ │ ├── Header.tsx # Top navigation bar
│ │ ├── Preview.tsx # LaTeX preview pane
│ │ └── TemplateSelector.tsx # Template selection modal
│ ├── templates/ # LaTeX templates
│ │ └── templates.ts # Template definitions
│ ├── App.tsx # Main application component
│ ├── main.tsx # Application entry point
│ └── index.css # Global styles
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
└── tailwind.config.js
This project uses:
- TypeScript for type safety
- ESLint for code linting
- Prettier for code formatting (recommended)
Run linter:
npm run lintTo add a new template, edit src/templates/templates.ts:
{
id: 'my-template',
name: 'My Template',
description: 'Description of the template',
category: 'Category',
code: `\\documentclass{article}
...
\\end{document}
`,
}- PDF Export functionality
- Multiple file/project support
- Cloud storage integration
- Collaborative editing
- Custom themes
- More LaTeX packages support
- BibTeX management
- Spell checking
- Git integration
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Monaco Editor - The code editor
- latex.js - JavaScript LaTeX to HTML5 translator
- Tailwind CSS - Utility-first CSS framework
- Lucide - Beautiful icon set
- Vite - Next generation frontend tooling
If you encounter any issues or have questions:
- Open an issue on GitHub Issues
- Check the LaTeX documentation
- LaTeXFlow Contributors
Made with ❤️ using React and TypeScript