如何更改“图形”、“目录”、“参考书目”、“附录”等文档元素的名称?

如何更改“图形”、“目录”、“参考书目”、“附录”等文档元素的名称?

我想修改用于排版某些文档元素的名称。例如,figure浮动标题应从“图”更改为“图”,并且我的\tableofcontents章节标题不应为“目录”,而应为“目录”。我该怎么做?

\documentclass{article}
% \usepackage[english]{babel}
\begin{document}
\tableofcontents
\section{foo}
\begin{figure}[h]
\centering
\rule{1cm}{1cm}% placeholder for graphic
\caption{A figure}
\end{figure}
\end{document}

答案1

答案取决于你是否使用类似 babel或者polyglossia

babelpolyglossia

诸如“Figure”和“Contents”之类的名称存储在诸如\figurename和 之类的宏中\contentsname,也就是说,要更改它们,您必须更改相应宏的定义。将以下内容添加到您的序言中:

\renewcommand{\figurename}{Fig.}
\renewcommand{\contentsname}{Table of Contents}

article以下是 LaTeX 标准类、book和定义的“名称宏”(及其默认含义)的列表report

  • \abstractname[仅article, report]: 摘要
  • \appendixname: 附录
  • \bibname[仅book, report]: 参考书目
  • \chaptername[仅限book, report]:章节
  • \contentsname: 内容
  • \figurename: 数字
  • \indexname: 指数
  • \listfigurename: 图片列表
  • \listtablename:表格列表
  • \partname: 部分
  • \refname[仅article]:参考文献
  • \tablename: 桌子

其他类和包可能会定义额外的“名称宏”;以下是您可能会遇到的一些(及其来源):

  • \acronymname[ glossaries]: 缩写
  • \alsoname[ makeidx]: 也可以看看
  • \ccname[ letter]: 抄送
  • \enclname[ letter]: 包含
  • \glossaryname[ glossaries]:词汇表
  • \headtoname[ letter]: 到
  • \lstlistingname[ listings]: 清单(环境)
  • \lstlistlistingname[ listings]: 房源(以下称“名单”)
  • \nomname[ nomencl]: 命名法
  • \notesname[ endnotes]:注释
  • \pagename[ letter]: 页
  • \prefacename[ babel]: 前言
  • \proofname[ amsthm]: 证明
  • \seename[ makeidx]: 看(在 AMS 类中错误定义为“另见”)
  • \seeonlyname[AMS 等级]: 参见

babel

有一个特定的宏可以重新定义(或定义)字幕,如下所示:

\setlocalecaption{english}{contents}{Table of Contents}
\setlocalecaption{arabic}{abstract}{ملخص}
\setlocalecaption{ancientgreek}{also}{ὃρα ὡσαύτως}

第一个参数是语言,第二个参数是字幕的缩写名称,因此contents定义了\contentsname,最后一个参数是字符串。您不应该添加任何宏来切换方向或脚本,因为babel会处理好这些。还有其他方法可以修改字幕,但这是推荐的方法。

polyglossia

babel与“没有或”一节相同的原则polyglossia适用 - 但有一个关键区别:对于每种语言,“名称宏”必须在的参数中重新定义\addto\captions<language>(而不是简单的\renewcommand)。也就是说,对于英语,您必须在序言中添加以下内容(在加载之后polyglossia):

\addto\captionsenglish{%
  \renewcommand{\figurename}{Fig.}%
  \renewcommand{\contentsname}{Table of Contents}%
}

%每次重新定义后,不要忘记在行尾添加。

更改“参考书目”和“参考文献”biblatex

biblatex包是规则的一个例外:它使用“参考书目字符串”作为参考书目的标题(除其他外),因此重新定义\bibname\refname不起作用(无论您babel是否使用)。要将“参考书目”和“参考文献”重命名为英语的“引用作品”,请在序言中添加以下内容:

\DefineBibliographyStrings{english}{%
  bibliography = {Works Cited},
  references = {Works Cited},
}

后记

“名称宏”应该仅有的包含要打印的字符串。添加格式指令,例如\renewcommand{\contentsname}{\vspace{20pt}{\Huge Table of Contents}}– 它们可能在文档正文中“有效”,但可能会对标题和书签等造成严重破坏。要更改“目录”标题的格式,请重新定义,\tableofcontents这个答案或者,如果你想要将更改应用于所有章节标题,请查看titlesec包。对于字幕,caption该包提供了大量定制可能性。

答案2

除了步调一致的答案外:

使用 KOMA-Script

KOMA-Script(准确地说,是包,在KOMA-Script类、和以及KOMA-Script包中scrbase被称为)定义了两个宏scrartclscrreprtscrbookscrlttr2scrextend命名或者重命名LaTeX 名称:

\newcaptionname{language}{LaTeX name}{new content}   % new name
\renewcaptionname{language}{LaTeX name}{new content} % renew existing name

以下是德语的示例:

\renewcaptionname{ngerman}{\contentsname}{Inhalt}           %Table of contents
\renewcaptionname{ngerman}{\listfigurename}{Abbildungen}    %Figures
\renewcaptionname{ngerman}{\listtablename}{Tabellen}        %Tables
\renewcaptionname{ngerman}{\figurename}{Abb.}               %Figure
\renewcaptionname{ngerman}{\tablename}{Tab.}                %Table
\renewcaptionname{ngerman}{\bibname}{Literatur}             %Bibliography
  \newcaptionname{ngerman}{\lstlistlistingname}{Quelltexte} %Table of listings 
  \newcaptionname{ngerman}{\lstlistingname}{Quelltext}      %Listing

您可以看到,这\renewcaptionname会重命名现有的 LaTeX 名称,如\contentsname。该宏\newcaptionname为 KOMA-Script 定义了一个新的 LaTeX 名称,如\lstlistingname(因为\lstlistingnameKOMA-Script 中未定义)。

如果将包babel与KOMA-Script一起使用,最好使用KOMA-Script的机制而不是babels,因为KOMA-Script具有更好的验证。

更新:

通过加载包scrextend(参见第 16 章,文件scrguien.pdftexdoc scrguien),您可以将一些 KOMA-Script 功能与非 KOMA-Script 类一起使用。例如scrextend加载scrbase

以下 MWE 表明,它运行良好,并且加载scrextend不会重新定义标准类中标题的默认字体:它保留为衬线(罗马字体),而在 KOMA-Script 中默认为无衬线字体。首先使用注释行进行编译,然后取消注释并再次编译。比较目录的标题。

\listfiles                  % to check if scrbase is loaded
\documentclass{article}     % original class
\usepackage{scrextend}      % allows some KOMA-Script features
\usepackage[english]{babel} % needed for "blindtext"
\usepackage{blindtext}      % to create dummy text

% \renewcaptionname{english}{\contentsname}{Contents of ``Blindtext''} % renaming in KOMA-Script

\begin{document}
\tableofcontents
\newpage
\blinddocument             % dummy text including several headings for TOC 
\end{document}

更新 2:

如果您不确定包是否scrbase已加载,可以使用命令进行测试\listfiles(参见上面 MWE 中的第一行)。命令\listfiles会在log文件中打印一份包含文档中所有调用包的列表。因此,如果包scrbase已加载,您可以在此列表中找到它(包括使用的版本),如下所示:

scrkbase.sty    2012/07/29 v3.11b KOMA-Script package (KOMA-Script-dependent basics and keyval usage)
 scrbase.sty    2012/07/29 v3.11b KOMA-Script package (KOMA-Script-independent basics and keyval usage)

答案3

对于使用mintedpackage by 的文档康拉德·鲁道夫,可以按如下方式更改文档元素的名称:

\renewcommand\listingscaption{Code-Snippet}
\renewcommand\listoflistingscaption{List of program codes}

我添加了这个答案作为对 OP 评论的回应使用 minted 的 latex 中的参考代码片段

答案4

如果您正在使用 documentclass,article此行将把 bib 部分中的名称标题从参考书目重命名为参考文献。

\addto\captionsenglish{\renewcommand{\bibname}{References}}

相关内容