Я пишу свой код напсевдокодпакет и мне нужно будет изменить имя "Алгоритм" к "Алгоритмус".
Есть ли возможность сделать это в этом пакете? Я нашел это только для алгоритма пакета, но у меня все написано, и я не хочу менять всю свою работу на другую среду.
Спасибо за любую помощь.
решение1
пакеты должны использовать \xxxname
команды для фиксированных строк, чтобы их можно было легко изменить по вашему запросу, но, к сожалению, здесь используется фиксированный текст в середине большой настройки команды.
Однако вы можете исправить определение следующим образом:
\documentclass{article}
\usepackage{pseudocode}
\usepackage{etoolbox}
\expandafter\patchcmd\csname\string\pseudocode\endcsname{Algorithm}{Algoritmus}{\typeout{good}}{\typeout{bad}}
\expandafter\patchcmd\csname\string\pseudocode\endcsname{Algorithm}{Algoritmus}{\typeout{good}}{\typeout{bad}}
\begin{document}
\begin{pseudocode}{a}{b}
\end{pseudocode}
\end{document}
решение2
Патч Дэвида хорош, но его можно значительно улучшить, например, сделав так, чтобы имя учитывало язык, и добавив простую поддержку изменения форматирования заголовка.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,czech]{babel}
\usepackage{pseudocode}
\usepackage{xpatch}
% fix the bad code in pseudocode.sty
\xpatchcmd\pseudocode{\bfseries Algorithm }{\algorithmheadformat\algorithmname\ }{}{}
\xpatchcmd\pseudocode{\bfseries Algorithm }{\algorithmheadformat\algorithmname\ }{}{}
\providecommand{\algorithmname}{Algorithm}
\providecommand{\algorithmheadformat}{\bfseries}
% end of fix
\addto\captionsczech{\renewcommand{\algorithmname}{Algoritmus}}
\addto\captionsenglish{\renewcommand{\algorithmname}{Algorithm}}
\renewcommand{\algorithmheadformat}{\scshape}
\begin{document}
\begin{pseudocode}{CelsiusToFahrenheit}{c}
f \GETS {9c/5} + 32\\
\RETURN{f}
\end{pseudocode}
\selectlanguage{english}
\begin{pseudocode}{CelsiusToFahrenheit}{c}
f \GETS {9c/5} + 32\\
\RETURN{f}
\end{pseudocode}
\end{document}
Я добавил \renewcommand{\algorithmheadformat}{\scshape}
просто в качестве примера.