latex
npx skills add https://github.com/canyangliunian/agent-skills --skill latex
Agent 安装分布
Skill 文档
LaTeX
è§¦åæ¡ä»¶ï¼æ»¡è¶³å ¶ä¸ï¼
- æ PDF 转为 AEA/ç»æµç ç©¶/NAU/SCU 模æ¿ç LaTeX/Beamerï¼å¹¶ç¼è¯æ PDF
- éè¦ä» PDF æ½åç»æåå å®¹ï¼æè¦/å¼è¨/æç®ç»¼è¿°/æ°æ®/æ¹æ³/ç»æ/ç»è®ºï¼å¹¶åå ¥æ¨¡æ¿
- éè¦å®æ´æµæ°´çº¿ï¼
marker_extract.py â å¤å¶æ¨¡æ¿ â latex-server åå ¥ â compile.py - åªéè¦åç¹åè½ï¼
marker_extract.py/ å¤å¶æ¨¡æ¿ /latex-server/compile.py
æ ¸å¿åå
- å
æ½åå忍¡æ¿ï¼æ PDF æ¶ï¼å¿
é¡»å
è·
marker_extract.py - åªæ¹å
容ï¼ä¸æ¹æ ·å¼ï¼ç¦æ¢ä¿®æ¹
.cls/.sty/.bst - è·¯å¾ä¸å¾ç»å¯¹è·¯å¾
èµæºå¯¼èªï¼å¿ é¡»å çï¼
- èæ¬ï¼
/Users/lingguiwang/.codex/skills/latex/scripts/marker_extract.pyï¼PDF â ä¸é´äº§ç©ï¼compile.pyï¼ç¼è¯ LaTeXï¼
- 说æï¼
/Users/lingguiwang/.codex/skills/latex/references/marker_extract.mdï¼åæ°ä¸æéï¼compile.mdï¼ç¼è¯åæ°ä¸æéï¼
- 模æ¿ï¼
/Users/lingguiwang/.codex/skills/latex/assets/- AEAï¼
/Users/lingguiwang/.codex/skills/latex/assets/AEA/ - ç»æµç ç©¶ï¼
/Users/lingguiwang/.codex/skills/latex/assets/ç»æµç ç©¶/ - NAUï¼
/Users/lingguiwang/.codex/skills/latex/assets/NAU/ - SCUï¼
/Users/lingguiwang/.codex/skills/latex/assets/SCU/
- AEAï¼
端å°ç«¯æµç¨ï¼æ¨è主æµç¨ï¼
- å¤å¶æ¨¡æ¿å°å·¥ä½ç®å½ï¼ç»å¯¹è·¯å¾ï¼
- è¿è¡
marker_extract.pyï¼PDF â ä¸é´äº§ç©- ä¼å
使ç¨
--use_llm - è¥ä¸ä½¿ç¨ LLMï¼é»è®¤ä½¿ç¨
--torch_device mps - ä¸è¬ä¸ä½¿ç¨
--no_tablesï¼å¦é使ç¨å¿ é¡»å å¾è¯¢ç¨æ· - é»è®¤è¶ æ¶ 40 åé
- è¥åºç°
PermissionError(1, 'Operation not permitted')ï¼å¿ é¡»è¾åºä¸¤å¥å®æ´å¯è¿è¡å½ä»¤ï¼å« LLM ä¸ä¸å« LLMï¼ï¼ä¾ç¨æ·æ¬å°ç´æ¥è¿è¡
- ä¼å
使ç¨
- æ´çç»æå
容ï¼ä»
document.md / equations.tex / references.bibæåå¹¶æ¹å - ç¨ latex-server åå
¥æ¨¡æ¿
.texï¼ä» æ¹å å®¹ï¼ - è¿è¡
compile.pyç¼è¯ PDF
å ¬å¼å¤ççç¥ï¼æ´æ°è§åï¼
å
许 å°½å¯è½æå
¥ equations.tex ä¸çå
¨é¨å
¬å¼ï¼å¹¶ä¸ document.md å述对åºï¼è¦æ±ï¼
- 坿´æ®µæå
¥
equations.texï¼æåæ®µæå ¥å°å¯¹åºç« èï¼ - å ¬å¼éä¸å¯¹åºæ®µè½/ç« èä¸è´ï¼å¿ è¦æ¶å è¿æ¸¡è¯´æï¼
- åå ¥åéäººå·¥å¿«éæ£æ¥ï¼ç¬¦å·ä¸ä¸ä¸æä¸è´ï¼
åç¹åè½ï¼å¯ç¬ç«ä½¿ç¨ï¼
A) åªå PDF æ½åï¼marker_extract.pyï¼
- èæ¬ï¼
/Users/lingguiwang/.codex/skills/latex/scripts/marker_extract.py - 说æï¼
/Users/lingguiwang/.codex/skills/latex/references/marker_extract.md
éè¦è¯´æï¼ä» æ¯æå个 PDF æä»¶è¾å ¥ï¼ä¸æ¯æç®å½æ¹éã
æ¬å°æ·±åº¦å¦ä¹ 管线ï¼ä¸å --use_llmï¼ï¼
python /Users/lingguiwang/.codex/skills/latex/scripts/marker_extract.py \
"/abs/path/to/your.pdf" \
-o "/abs/path/to/marker_out"
LLM 管线ï¼ä¼å ä½¿ç¨ chatanywhereï¼ï¼
python /Users/lingguiwang/.codex/skills/latex/scripts/marker_extract.py \
"/abs/path/to/your.pdf" \
-o "/abs/path/to/marker_out" \
--use_llm --provider chatanywhere
æéé误å
åºï¼æ°å¢è§åï¼
å½éå° PermissionError(1, 'Operation not permitted') 䏿 æ³éè¿å¸¸è§æéè®¾ç½®è§£å³æ¶ï¼å¿
é¡»è¾åº 两å¥å®æ´å¯è¿è¡å½ä»¤ï¼ä¸å¥å¯ç¨ LLMï¼ä¸å¥ä¸å¯ç¨ LLMï¼ï¼ç¤ºä¾ï¼
ä¸ä½¿ç¨ LLMï¼
python /Users/lingguiwang/.codex/skills/latex/scripts/marker_extract.py \
"/abs/path/to/your.pdf" \
-o "/abs/path/to/marker_out" \
--torch_device mps
ä½¿ç¨ LLMï¼
python /Users/lingguiwang/.codex/skills/latex/scripts/marker_extract.py \
"/abs/path/to/your.pdf" \
-o "/abs/path/to/marker_out" \
--use_llm --provider chatanywhere
LLM provider æ¯æï¼openai / deepseek / chatanywhere / ollama / openrouter
è¾åºç»æï¼æ¯ä¸ª PDF ä¸ä¸ªåç®å½ï¼ï¼
document.mdï¼æ£æï¼equations.texï¼å ¬å¼ï¼images/ï¼å¾çï¼references.txt/references.bibmanifest.json
宿´åæ°ã模åéæ©ä¸ API Key 说æè§
marker_extract.mdã
B) åªå¤å¶æ¨¡æ¿
cp -R /Users/lingguiwang/.codex/skills/latex/assets/AEA /abs/path/AEA
cp -R /Users/lingguiwang/.codex/skills/latex/assets/ç»æµç ç©¶ /abs/path/erj
cp -R /Users/lingguiwang/.codex/skills/latex/assets/NAU /abs/path/NAU
cp -R /Users/lingguiwang/.codex/skills/latex/assets/SCU /abs/path/SCU
C) åªç¨ latex-server åå ¥æ¨¡æ¿
list_latex_filesï¼ååºå ¥å£.texread_latex_fileï¼è¯»åå ¨æå®ä½get_latex_structureï¼æ¥çç« èç»æedit_latex_fileï¼ç²¾åæå ¥/æ¿æ¢ï¼ä» æ¹å 容ï¼validate_latexï¼åºç¡è¯æ³æ ¡éª
æ¿æ¢æè¦ï¼ç¤ºä¾ï¼ï¼
{
"file_path": "/abs/path/to/main.tex",
"operation": "replace",
"search_text": "\\begin{abstract}",
"new_text": "\\begin{abstract}\nè¿éæ¿æ¢ä¸ºä½ çæè¦å
容ã\n\\end{abstract}"
}
å¨æç« èåæå ¥âå®è¯ç»æâå°èï¼ç¤ºä¾ï¼ï¼
{
"file_path": "/abs/path/to/main.tex",
"operation": "insert_after",
"search_text": "\\section{æ°æ®ä¸æ¹æ³}",
"new_text": "\\section{å®è¯ç»æ}\nè¿éåå®è¯ç»ææ£æã\n"
}
D) åªç¼è¯ï¼compile.pyï¼
- èæ¬ï¼
/Users/lingguiwang/.codex/skills/latex/scripts/compile.py - 说æï¼
/Users/lingguiwang/.codex/skills/latex/references/compile.md
æç¨³å¦¥æ¹å¼ï¼
python /Users/lingguiwang/.codex/skills/latex/scripts/compile.py \
--path "/abs/path/to/main.tex" \
--output "/abs/path/to/project"
macOS 常è§ï¼æå®å¯å tmpdirï¼é¿å Ghostscript åç³»ç»ä¸´æ¶ç®å½å¤±è´¥ï¼ï¼
python /Users/lingguiwang/.codex/skills/latex/scripts/compile.py \
--path "/abs/path/to/main.tex" \
--output "/abs/path/to/project" \
--tmpdir "/abs/path/to/project/.tmp"
ç¼è¯è¾åºï¼
- PDFï¼
<output>/build_pdf/ - æ¥å¿ï¼
<output>/build_logs/
æå°å¯è¿è¡ç¤ºä¾å·¥ç¨ï¼NAU Beamer + marker_extract è¾åºï¼
ç®æ ï¼å¨ NAU 模æ¿ç®å½å å®æâæ½åâåå ¥âç¼è¯âã
- å¤å¶ NAU 模æ¿
cp -R /Users/lingguiwang/.codex/skills/latex/assets/NAU /abs/path/to/NAU
- è¿è¡
marker_extract.pyçæä¸é´äº§ç©ï¼ä¼å LLM+chatanywhereï¼
python /Users/lingguiwang/.codex/skills/latex/scripts/marker_extract.py \
"/abs/path/to/your.pdf" \
-o "/abs/path/to/marker_out" \
--use_llm --provider chatanywhere
- å¨
/abs/path/to/NAU/slide.texä¸åå ¥å 容
- æ£ææ¥èªï¼
/abs/path/to/marker_out/<pdf_stem>/document.md - å
¬å¼æ¥æºï¼ç»å
document.mdçä¸ä¸æï¼å°½å¯è½æå ¥equations.texä¸çå ¨é¨å ¬å¼ï¼å¯æ´æ®µæå段åå ¥ - åèæç®æ¥èªï¼
/abs/path/to/marker_out/<pdf_stem>/references.bib
å ¬å¼åå ¥ç¤ºä¾ï¼ä» equations.tex éååç²è´´ï¼ï¼
\begin{equation}
Y_{it} = \alpha + \beta X_{it} + \gamma Z_{it} + \varepsilon_{it}
\end{equation}
å¾çæå ¥ï¼ç¤ºä¾ï¼ï¼
% ç´æ¥æå¾
\includegraphics[width=0.8\textwidth]{/abs/path/to/marker_out/<pdf_stem>/images/fig1.png}
% figure ç¯å¢
\begin{figure}[htbp]
\centering
\includegraphics[width=0.7\textwidth]{/abs/path/to/marker_out/<pdf_stem>/images/fig1.png}
\caption{æ ·æ¬æåæå¾æ³¨}
\label{fig:sample}
\end{figure}
åèæç®æå°å¼ç¨ç¤ºä¾ï¼
æç®åé¡¾è§ \cite{smith2020example}ã
% æ«å°¾
\bibliography{/abs/path/to/marker_out/<pdf_stem>/references.bib}
NAU å°é¢å段示ä¾ï¼ä¸æï¼ï¼
\title{ç ç©¶æ é¢ï¼äº§ä¸ç»ç»ç论åºç¨}
\author{åè´µæº}
\institute{å京åä¸å¤§å¦ç»æµç®¡çå¦é¢}
\date{2025-12-31}
NAU å°é¢å段示ä¾ï¼è±æï¼ï¼
\title{Industrial Organization: An Application}
\author{Guiwang Ling}
\institute{College of Economics and Management, Nanjing Agricultural University}
\date{2025-12-31}
ä» document.md æåä¸ºç« èï¼æ¨¡æ¿ç段ï¼ï¼
\section{å¼è¨}
% ä» document.md æ½åå¼è¨æ®µè½ï¼æ´ç为è¿è´¯æå
\section{æç®ç»¼è¿°}
% ä» document.md æ½åç¸å
³æ®µè½ï¼å»é¤éå¤ä¸åªå£°
\section{æ°æ®ä¸æ¹æ³}
% æ½åæ°æ®æ¥æºãåéå®ä¹ä¸è¯å«çç¥
\section{å®è¯ç»æ}
% ç»åå¾è¡¨ä¸åå½ç»æï¼ç»åºç»æååè¿°
\section{ç»è®ºä¸å¯ç¤º}
% æ»ç»ä¸»è¦åç°ä¸æ¿çå«ä¹
- ç¼è¯
python /Users/lingguiwang/.codex/skills/latex/scripts/compile.py \
--path "/abs/path/to/NAU/slide.tex" \
--output "/abs/path/to/NAU"
FAQ å ¥å£
- æ½åä¸ LLM ç¸å
³é®é¢ï¼
/Users/lingguiwang/.codex/skills/latex/references/marker_extract.md - ç¼è¯ä¸æ¥å¿æéï¼
/Users/lingguiwang/.codex/skills/latex/references/compile.md
常è§é®é¢ï¼å¿«éå®ä½ï¼
- åèæç®ä¸åºï¼ç¡®è®¤
.bibè·¯å¾ +biber/bibtexå¯ç¨ï¼è§compile.mdï¼ - 䏿åä½åè¦ï¼ä¼å
xelatex/lualatexï¼æ£æ¥åä½ - å¾ç/è¡¨æ ¼æ¾ä¸å°ï¼æ£æ¥
\\includegraphics{}è·¯å¾ï¼isolated æ¨¡å¼æ³¨æ../ä¾èµ - Ollama 502/è¶
æ¶ï¼ç¡®ä¿
NO_PROXYå å«localhost,127.0.0.1ï¼è§marker_extract.mdï¼
æ£æ¥æ¸ åï¼äº¤ä»åï¼
- å·²ç¨
marker_extract.pyçædocument.md/equations.tex/references.bib - ä»
ä¿®æ¹
.texå 容åºï¼æªæ¹.cls/.sty/.bst - ææè·¯å¾ä¸ºç»å¯¹è·¯å¾
-
compile.pyæå®--outputï¼å¿ è¦æ¶æå®--tmpdir - æ¥ç
build_logsï¼ç¡®è®¤æ è´å½é误 - è¥ä½¿ç¨ LLM èªå¨åå ¥å ¬å¼ï¼å·²äººå·¥æ ¸å¯¹ç¬¦å·ä¸ä¸ä¸æä¸è´
äº¤ä»æ¨¡æ¿ï¼YAML éå½ï¼
project_root: /abs/path/to/project
template: NAU
pdf_input: /abs/path/to/your.pdf
marker_out: /abs/path/to/marker_out/<pdf_stem>
main_tex: /abs/path/to/main.tex
compile_output: /abs/path/to/project
compile_logs: /abs/path/to/project/build_logs
notes: ""