我正在写我的代码伪代码包,我需要更改名称“算法“ 到 ”算法“。
是否有可能在这个包中做到这一点? 我发现它只是用于包算法,但我已经写了所有内容,我不想将我的整个工作更改为不同的环境。
感谢您的任何帮助。
答案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
David 的补丁很好,但还可以进行很大的改进,例如使名称能够识别语言并添加对更改标题格式的简单支持。
\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}
只是为了举例子而添加的。