LaTeX中自定义命令renewcommand、newcommand 与providecommand的区别和使用方法

时间:2024-11-17 07:36:39

定义新的命令

\newcommand{\<name>}[<num>]{<defination>}

其中<name>为要定义的命令名称,第二个参数<defination>是命令的具体定义,方括号里的参数<num>是可选的。

例1:
在这里插入图片描述
例2:
在这里插入图片描述
例2演示了如何定义一个带参数的命令。在命令的定义中,标记#1代表指定的参数,如果想使用多个参数,可以依次使用#2、…、#9等标记。

由于latex不允许\newcommand定义一个与现有命令重名的命令,如需修改命令,使用\renewcommand命令。

在某些情况下,使用\providecommand命令是一种比较理想的方案。在命令未定义时,它相当于\newcommand;在命令已定义时,沿用已有的定义。

下面来解释自定义命令的具体用法:

  • 参考文献引用上标
\newcommand{\ucite}[1]{\textsuperscript{\cite{#1}}}

这个代码的意思是构造命令\ucite使得每次引用参考文献的序号采用上标,其中\textsupercript是上标,\textsubscript是下标。

  • 重命名字体命令
\renewcommand{\heiti}{\CJKfamily{heiti}}

对于黑体命令赋予新的CJK字体族heiti

  • 重定义标题名称
\renewcommand{\contentsname}{\heiti 目\quad 录}     
\renewcommand{\listfigurename}{图目录}
\renewcommand{\listtablename}{表目录}
\renewcommand{\partname}{第\thepart 部}
\renewcommand{\chaptername}{第\thechapter章}
\renewcommand{\abstractname}{摘要} 
\renewcommand{\refname}{参考文献}     
\renewcommand{\indexname}{索引}
\renewcommand{\figurename}{}
\renewcommand{\tablename}{}
\renewcommand{\appendixname}{附录}
\renewcommand{\proofname}{证明}

通过这些命令,我们可以将所对应环境(例如摘要环境、目录环境等)中的英文转换为我们想要的中文。

注:LaTeX可定制的标题名称/前后缀

命令 含义
\partname \part命令生成的标题前缀
\chaptername \chapter命令生成的标题前缀
\appendixname 使用\appendix命令生成的附录部分的章标题前缀
\abstractname 摘要环境abstract的标题名称
\contentsname \tableofcontents命令生成的目录标题
\listfigurename \listoffigures命令生产的插图目录标题
\listtablename \listoftables命令生成的表格目录标题
\tablename table 浮动体中\caption命令生成的标题前缀
\figurename figure浮动体中\caption命令生成的标题前缀
\refname thebibliography环境或\bibliography命令生成的参考文献标题(article文档类)
\bibname thebibliography环境或\bibliography命令生成的参考文献标题(book/report文档类)
\indexname \printindex 命令生成的索引标题

而我们引用这些时,采用\ref命令,\ref命令显示的是数字。hyperref宏包提供一个\autoref命令,它可以自动判断标签所属结构对象的类型,为引用加上合适的名字,输出时显示结构名加上结构编号。该宏包也为此定义啦一些结构变量名。我们也可以用同样的方法重定义它们。

\renewcommand{\equationautorefname}{公式}
\renewcommand{\footnoteautorefname}{脚注}
\renewcommand{\itemautorefname}{}
\renewcommand{\figureautorefname}{}
\renewcommand{\tableautorefname}{}
\renewcommand{\appendixautorefname}{附录}
\renewcommand{\theoremautorefname}{定理}