背景
语法高亮源代码图像列表被用作带有lst:
标题前缀的算法浮点数。
问题
序言中的以下 LaTeX 代码根据需要将算法浮点数的标题重命名为列表:
\usepackage{float}
\floatname{algorithm}{Listing}
但是,使用以下命令的交叉引用标签仍然是“Algorithm”(应该是“Listing”):
\ref{lst:Internationalization-Look-up-Method}
本质上,我试图将算法浮点数重命名为列表浮点数。(本书将没有算法。)LyX 有Algorithm
、Figure
和Table
作为浮点数插入。如果有一种方法可以配置并添加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 已定义。请应用以下更改:
- 重命名
lst:
为alg:
。 - 将序言修改为:
\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
修复此问题的不正确方法是:
- 编辑 stdfloats.inc。
- 将“算法列表”更改为“列表列表”。
- 点击工具>>重新配置。
- 重新启动 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
}