Skip to content

v0.0.6

Latest

Choose a tag to compare

@Lewen-Cai Lewen-Cai released this 27 Oct 11:40

Export to Word, the AI agent on the web, 60 templates across twelve fields, groups, templates shared with groups, conversion into any template with an AI agent Skill to finish it for the venue, a compiler that keeps up when several people build at once and keeps each project's builds apart. ColTex also moves to the coltexeditor organization on GitHub.

New

  • Export to Word: a project's menu and the project settings have Export to Word…, which turns the paper into a .docx with pandoc. The title page comes from the document (title, authors, affiliations, corresponding author, abstract, keywords) for the journal classes the converter reads; maths become Word equations; figures, tables and equations are numbered; PDF and EPS figures become pictures (also those in \graphicspath's folders; a figure that can't be converted is named in its place). Tables become Word tables, including those in \resizebox, table* or with siunitx columns. The reference list keeps its place and heading, and citations link to their entries. Citation styles: like the document, APA, Vancouver, AMA, IEEE, Nature, Chicago, or a .csl file in the project; a journal's Word template (.docx) in the project can give the styles (without one, headings are black).
  • 60 built-in templates across twelve fields (general; computing and electrical engineering; engineering; physics; astronomy; chemistry; life sciences; medicine; mathematics and statistics; economics; social sciences and humanities; earth and environment), with separate templates where one class serves several kinds of venue (Elsevier, IEEE, ACM, REVTeX, APA 7, ACS). For medicine: clinical study (CONSORT), trial protocol (SPIRIT), observational study (STROBE), diagnostic accuracy (STARD), systematic review (PRISMA 2020), case report (CARE) and research letter, besides the Elsevier, OUP and Nature articles. Templates whose files may not be redistributed (NeurIPS, ICML, ICLR, ACL, CVPR, Springer Nature and others) are not built in: the help lists them, to download from the journal or conference and import.
  • Groups (Settings → Groups): anyone makes a group and invites people on the server, who join by accepting. A project can be shared with a group: everyone in it gets the role, people who join later too, and people who leave lose it.
  • Templates are shared by administrators: with their groups and people they pick, and by the system administrator with everyone. Anyone can import a journal's zip as a template of their own (sharing it is optional, and for administrators); importing makes no project in the workspace, the template keeps its files. Templates get a field. The new-project dialog shows them all in one list, filtered by field, each tagged Built-in, shared by the system administrator, shared across its groups, shared by someone, or Only you.
  • The AI agent on the web: the AI agent searches the web and reads web pages. Anthropic, OpenAI and ChatGPT models use their own built-in search; other models use a search service an administrator connects in Settings → AI services (DeepSeek, Tavily, Exa or Brave Search; DeepSeek can use the connected DeepSeek provider's key; several can be connected, with one in use). Nothing of a project can leave this way: queries go only to the chosen search service and are short, and only addresses the author wrote or a search returned can be read. While the AI agent can use the web, its changes always wait for review whatever the permission, and it doesn't delete or move files.
  • Conversion between templates: every built-in template converts to every target and builds (60 templates by 16 targets checked). It reads Springer Nature (sn-jnl), Oxford University Press, Elsevier CAS, BMC and the new templates' classes: authors with their names and degrees, affiliations, \abstract{} and structured abstracts, keywords, back matter; commands of packages the target drops (line spacing, line numbers and others) keep working. New targets: Elsevier CAS (one and two columns), OUP, AMS, APA 7, AASTeX, MNRAS and ACS. The target list is plainer.
  • Conversion into any template: besides ColTex's own conversions, a paper converts into any template: one from the template list (the same list as for new projects; a built-in template uses ColTex's conversion for it), one of the person's projects, or a journal's zip uploaded in the dialog. The title, authors, affiliations, abstract and keywords are written where the template has its samples and the way it writes them (its label scheme and fields, Springer Nature's \fnm/\sur, Elsevier's organization=, and so on), the sample text is replaced by the paper, and the template's class and style files come along. Converting each test paper into every built-in template builds.
  • The template-conversion Skill: a built-in Skill for the AI agent that finishes a conversion. After a conversion with errors or warnings, Open and fix with AI starts it: it asks which journal or conference the paper is for, looks up the venue's current author guidelines, makes the paper build, and brings it in line with the guidelines without changing its content.
  • The AI agent can look at pages of the PDF (with models that see images) to check the layout that the log can't show.

Improved

  • New project: Import template is the first card of the template list, and a search field finds templates by name or description.
  • Updates download only what changed: TeX Live stays the same for a year (TeX Live 2026 now; it moves with each year's release), and ColTex's own part is the compiler image's last layer, so an update is usually some tens of megabytes instead of several gigabytes. The update that brings a new TeX Live says so.
  • The AI agent answers in the language of the interface (unless spoken to in another one).
  • The log has no "Ask AI" button on each error any more: it had the AI agent fix the error, not explain it. Fix with AI at the top hands over the build's errors.
  • The compiler runs as many builds at once as its CPUs and memory allow (two before), and fewer while memory is low. The administration overview shows how many.
  • A project's builds wait their turn on the server, so one busy project no longer holds the compiler while other people's builds wait.
  • The AI agent compiles less: not to look at what's wrong (it reads the latest build's log), not the same draft twice, and at most five times a message. Builds it no longer needs after Stop are taken out of the queue.
  • The word count counts \abstract{...} as the abstract.
  • Self-hosted endpoints no longer ask for a context window: the context and the length of answers are the server's settings (Ollama, vLLM, LM Studio), so ColTex sends no limit of its own, and the AI panel shows how many tokens the chat uses.
  • The message boxes of the AI agent, the project chat and the skills chat grow with the text, and can be made taller by dragging their top edge.
  • The repository is now github.com/coltexeditor/coltex and the images are at ghcr.io/coltexeditor. Old links keep working, and coltex update moves an install's image address and Git remote to the new ones by itself.
  • The short install command is curl -fsSL https://coltexeditor.github.io/install.sh | bash.
  • The vulnerability scan lists its findings by image and package, with the fixed version, and keeps the full report with the run.
  • Fewer known vulnerabilities in the images: Tailscale 1.104.2 and cloudflared 2026.10.3, built with a current Go; the server image no longer carries npm, pnpm, yarn or an old esbuild, which it never ran; the compiler image leaves out tlcockpit, TeX Live's graphical package manager, which can't open in a container.
  • Builds of different projects are kept apart: each runs as a user of its project's own and can't read other projects' files, which TeX (and a project's latexmkrc) could do before. Valkey, which builds could reach, has a password; coltex update adds one to existing installs.

Fixed

  • The list of sign-ins (Settings → Account, and Sign-ins for the system administrator) grew longer with every “Show more”. It now shows ten at a time, with the range, the total and buttons for the previous and next page under it.
  • In Chinese, Japanese, Korean and Russian, the Failed tab of the sign-ins page and a failed backup were labelled as a failed build.
  • An affiliation written partly outside its tags (an institution without \orgname, an address written in \orgaddress as plain text, as OUP's and Springer Nature's classes allow) kept only its tagged parts in Word export and conversion. The rest is now kept, in the order it was written.
  • When the AI agent reached the limit of steps for one message, it stopped without a word. It now tells you what it did and what is left (and if it doesn't, a note says it stopped and that “continue” lets it go on).
  • Links in the PDF preview did nothing. Citations and references to figures, tables, equations and sections now jump to their place, and web addresses open in a new tab.
  • A process a build left running could keep the compiler waiting for that build forever.
  • A build that failed with an error (for example a file deleted while it started) stopped the whole compiler, and every build running or waiting with it hung until it timed out.
  • After installing, coltex wasn't found in new SSH sessions on systems whose login doesn't read ~/.bashrc. The installer now adds ~/.local/bin to the files a login reads too, and coltex update adds it to installs that had it only in ~/.bashrc.
  • coltex update right after a release, while the Alibaba Cloud mirror didn't have its images yet, tried to build them from the sources instead of taking them from GitHub. It now downloads them from GitHub, and the next update uses the mirror again.
  • An update that stopped half way (the images not downloaded) said the new version was already installed when run again. Running it again now finishes it.
  • With automatic or full access, Stop didn't stop the AI agent while it applied its changes and built the project after a reply.
  • When the server restarted behind a proxy that answered with an error meanwhile (such as 502), the AI panel showed a reply in progress, and new notifications didn't arrive, until the page was reloaded. They now reconnect by themselves.