我的文档中有以下几行:
In \secref{2}, a very basic review is presented. \secref{3} compares different structures.
\secref{3}
必须以大写字母开头。但是,LaTeX 会以普通标签“section”(小写“s”)开头。
我该如何纠正这个问题?
PS:它不需要是自动的。任何特定的(手动)解决方案对我来说都可以。
答案1
(在我从 OP 那里得知该命令在 lyx 中使用后进行了编辑。)
\newcommand
最简单的解决方案可能是定义一个\Secref
以大写字母 S 开头的新命令,如下所示
\newcommand{\Secref}[1]{Section~\ref{#1}}
这样,如果您需要名词的大写形式,则可以从 切换\secref
到\Secref
。
\cleveref
如果您愿意使用该cleveref
包,您可以使用该命令\cref{2}
来生成Section 2
。
通过输入\cref{2,3}
您将生成Sections 2 and 3
。
笔记第二个例子中名词复数形式的自动使用。Cleveref 的命令足够“聪明”(双关语),可以决定这交叉引用实体的类型,然后命令选择与其相匹配的名词。
名词的形式(例如,大写,小写) 作为引用实体的前缀是完全可定制的。
并且,如果您使用babel
,名词将被设置为(当前)六种或七种语言中的任何一种,也就是说,您不会“仅仅局限于”英语名词。
最后,如果你愿意的话,你可以设置包以便\cref
使用小写起始字母,而\Cref
将使用大写起始字母(在以交叉引用开始一个句子时很有用)。
这些示例假设您已为论文的第 2 和第 3 节指定了标签2
和3
。一般来说,您可能希望养成使用稍长标签字符串的习惯。一种常用的技巧是所有公式标签都以 开头eq:
,所有 (sub,subsub) 节标签都以 开头sec:
,所有图形标签都以 开头fig:
,等等。即使没有其他方法,以这种方式使用标签也会为您节省大量时间,因为以后需要调试某些交叉引用时会遇到这种情况。
答案2
LyX 使用refstyle
用于格式化交叉引用的包。refstyle
支持大写宏版本,例如\Secref
用于句子开头。我不知道 LyX 是否具有\Secref
& friends 的界面——如果没有,请将命令插入为“邪恶的红色文本”(LaTeX 代码)。
对于不依赖 LyX 的用户:cleveref
包还具有大写的宏版本,并且其\cref
/\Cref
宏能够自动检测标签类型并相应地格式化交叉引用。
\documentclass{article}
\usepackage{cleveref}
\begin{document}
\section{bla}\label{1}
In \cref{2}, a very basic review is presented. \Cref{3} compares different structures.
\section{blubb}\label{2}
\section{foo}\label{3}
\end{document}