将“算法”重命名为“列表”

将“算法”重命名为“列表”

背景

语法高亮源代码图像列表被用作带有lst:标题前缀的算法浮点数。

问题

序言中的以下 LaTeX 代码根据需要将算法浮点数的标题重命名为列表:

\usepackage{float}
\floatname{algorithm}{Listing}

但是,使用以下命令的交叉引用标签仍然是“Algorithm”(应该是“Listing”):

\ref{lst:Internationalization-Look-up-Method}

本质上,我试图将算法浮点数重命名为列表浮点数。(本书将没有算法。)LyX 有AlgorithmFigureTable作为浮点数插入。如果有一种方法可以配置并添加Listing到同一菜单(插入 >> 浮动 >> 列表),这也是一个很好的解决方案。

想法

以下操作失败:

\usepackage{caption}
\usepackage{listings}
\renewcommand{\lstlistlistingname}{Listings}
\renewcommand{\lstlistingname}{Listing}

以下内容完全消除了参考标签中的“算法”一词:

\usepackage{caption}
\usepackage{listings}
\renewcommand\lstlistingname{Listing}
\renewcommand\lstlistlistingname{Listings}
\def\lstlistingautorefname{Listing}

我还没有查看过该babel包裹。

问题

如何能在所有地方将“算法”重命名为“列表”,包括:

  • 标题
  • 标签引用
  • 在前言中(即清单列表而不是算法列表)

有关的

答案1

解决方案

不要lst:与算法浮点数混合。以前的解决方案使用了\newcommand{\algorithmname}{Listing},但这可能会导致LaTeX 错误:命令 \algorithmname 已定义。请应用以下更改:

  1. 重命名lst:alg:
  2. 将序言修改为:
    \usepackage{float}
    \floatname{算法}{列表}
    \renewcommand{\algorithmname}{列表}
    

这不会将“算法列表”更改为“列表列表”。文本位于“stdfloats.inc”中:

Float
    Type                  algorithm
    GuiName               Algorithm
    Placement             tbp
    Extension             loa
    NumberWithin          none
    Style                 ruled
    ListName              "List of Algorithms"
    LaTeXBuiltin          false
End

修复此问题的不正确方法是:

  1. 编辑 stdfloats.inc。
  2. 将“算法列表”更改为“列表列表”。
  3. 点击工具>>重新配置
  4. 重新启动 LyX。

此时,“算法列表”将会读取“清单列表”。

答案2

对于单独的文档添加Document > Settings > Local Layout

Float
    Type                  listing
    GuiName               Code Listing
    Placement             tbp
    Extension             lol
    NumberWithin          none
    Style                 ruled
    ListName              "List of Listings"
    LaTeXBuiltin          false
End

然后您可以使用菜单插入它Insert > Float > Listing。这使选择特定于文档并允许您同时使用两者,而不是更改整个 Lyx 安装。

答案3

我将List of Algorithms其改为List of Listings

\renewcommand{\listofalgorithms}{ 
  \begingroup 
    \listof{algorithm}{List of Listings} 
  \endgroup 
}

相关内容