我想修改用于排版某些文档元素的名称。例如,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
。
无babel
或polyglossia
诸如“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
被称为)定义了两个宏scrartcl
scrreprt
scrbook
scrlttr2
scrextend
命名或者重命名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
(因为\lstlistingname
KOMA-Script 中未定义)。
如果将包babel
与KOMA-Script一起使用,最好使用KOMA-Script的机制而不是babel
s,因为KOMA-Script具有更好的验证。
更新:
通过加载包scrextend
(参见第 16 章,文件scrguien.pdf
,texdoc 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
对于使用minted
package by 的文档康拉德·鲁道夫,可以按如下方式更改文档元素的名称:
\renewcommand\listingscaption{Code-Snippet}
\renewcommand\listoflistingscaption{List of program codes}
我添加了这个答案作为对 OP 评论的回应使用 minted 的 latex 中的参考代码片段
答案4
如果您正在使用 documentclass,article
此行将把 bib 部分中的名称标题从参考书目重命名为参考文献。
\addto\captionsenglish{\renewcommand{\bibname}{References}}