Ошибка xpatch в texlive 2019?

Sep 09 2020

Я запускаю слегка измененный пример с pdflatex, а затем makeindex (makeindex -s nomencl.ist -o myfile.nls myfile.nlo)

\documentclass[]{article}
\usepackage{xpatch}
\usepackage{nomencl} 

\patchcmd{\thenomenclature}{\section*{\nomname}}{\relax}{\typeout{Success}}{\typeout{Failure}}

\makenomenclature 

\begin{document}
text
\nomenclature[1]{$\mu$}{variable}
\printnomenclature[0.9in]
\end{document}

Однако заголовок раздела Nomenclatureвсе еще присутствует, хотя его и не должно быть. Компиляция также выводит, successтак что я потерялся. Это ошибка в xpatchпакете?

Ответы

2 egreg Sep 09 2020 at 22:25

nomenclПакет был недавно обновлен и теперь он использует по умолчанию в tocbasicпакет.

Чтобы использовать старый метод, вам нужно вызвать пакет с опцией notocbasic.

% arara: pdflatex
% arara: nomencl
% arara: pdflatex

\documentclass[]{article}
\usepackage{xpatch}
\usepackage[notocbasic]{nomencl} 

\patchcmd{\thenomenclature}{\section*{\nomname}}{\relax}{\typeout{Success}}{\typeout{Failure}}
\makenomenclature 

\begin{document}
text
\nomenclature[1]{$\mu$}{variable}
\printnomenclature[0.9in]
\end{document}

С помощью этого tocbasicметода вам необходимо исправить \tocbasic@listhead, но это может иметь неблагоприятные последствия для других частей документа.

\documentclass[]{article}
\usepackage{xpatch}
\usepackage{nomencl}

\makeatletter
\patchcmd\tocbasic@listhead{\section*}{\@gobble}{}{}
\makeatother

\makenomenclature

\begin{document}
text
\nomenclature[1]{$\mu$}{variable}
\printnomenclature[0.9in]
\end{document}