# Papyrus Latex Suggestions

Propose inline replacement text (old -> new) as accept/reject suggestions, LaTeX...

- Repository: https://github.com/kirodotdev/KiroCrew (4711 stars)
- Category: Documents
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kirodotdev/KiroCrew --skill papyrus-latex-suggestions -g -a claude-code -y`
Codex: `npx skills add kirodotdev/KiroCrew --skill papyrus-latex-suggestions -g -a codex -y`
Cursor: `npx skills add kirodotdev/KiroCrew --skill papyrus-latex-suggestions -g -a cursor -y`
Gemini CLI: `npx skills add kirodotdev/KiroCrew --skill papyrus-latex-suggestions -g -a gemini-cli -y`

## Description

Propose inline replacement text (old -> new) as accept/reject suggestions, LaTeX 'suggesting mode' / track changes, rendered in the PDF. Use when the author wants concrete edit proposals to accept or reject. For remarks ABOUT the text rather than replacements, use papyrus-latex-comments.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# LaTeX Suggestions (inline tracked edits)

Propose concrete replacement text the author sees as struck-through old + colored
new, and can accept or reject, the original stays visible until they decide.
Never silently overwrite. It renders as normal typeset text (via `ulem`), so it
shows in any PDF viewer including the Papyrus preview, no package to install, no
PDF annotations. See `papyrus-writing` for behaviour. Pair every suggestion with
a `papyrus-latex-comments` `\aicomment` saying WHY.

## Step 1, Setup (idempotent)

`ulem` and `xcolor` ship with TeX Live, no `tlmgr install`. If the document has
no suggestion preamble yet, inject this once at the end of the preamble, after all existing \usepackage lines (never
duplicate it if it is already there):

```latex
% Load ulem/xcolor ONLY if the document hasn't already loaded them (avoids an option clash).
\makeatletter
\@ifpackageloaded{ulem}{}{\usepackage[normalem]{ulem}}   % \sout (strike) + \uline (underline); normalem keeps \emph italic
\@ifpackageloaded{xcolor}{}{\usepackage{xcolor}}         % \color for the strike/insert colors
\makeatother
% ==== Papyrus suggestion layer ====
% Flip to \showeditsfalse to render the FINAL text only (visually accepts every change).
\newif\ifshowedits \showeditstrue
\newcommand{\aisuggest}[3][]{\ifshowedits{\color{red}\sout{#2}}\,{\color{blue}#3}\else#3\fi}
\newcommand{\txadd}[2][]{\ifshowedits{\color{blue}\uline{#2}}\else#2\fi}
\newcommand{\txremove}[2][]{\ifshowedits{\color{red}\sout{#2}}\else\fi}
% =====================================================================================
```

The optional `[...]` first argument carries metadata (`author=papyrus, id=R12,
status=pending`): it documents the change, but it is not rendered.

The rest: https://github.com/kirodotdev/KiroCrew/blob/HEAD/src/kiro_crew/builtin_skills/papyrus-latex-suggestions/SKILL.md
