有人能向我解释一下为什么我会收到以下编译错误
LaTeX3 Error: Command '\sc' already defined!
\documentclass[10pt]{book}
\NewDocumentCommand{\ch}{om}{
\IfNoValueTF{#1}{
\chapter{#2}
}{
\chapter{#2}\label{ch:#1}
}
}
\NewDocumentCommand{\sc}{om}{
\IfNoValueTF{#1}{
\section{#2}
}{
\section{#2}\label{sc:#1}
}
}
\begin{document}
\ch{AAA}
\sc{BBB}
\end{document}
答案1
\sc
是基于的旧字体命令,\scshape
用于book
类中以兼容 LaTeX2.09。您可以使用其他名称,例如,但请注意,这种简写会使使用标准部分功能(例如未编号变体的形式和标题的目录版本的可选参数)\Sc
变得更加困难。*
此外,由于您添加了大量空格(在标准上下文中而不是在中\ExplSyntaxOn
),这些空格标记可能会影响输出,请考虑
\documentclass[10pt]{book}
\NewDocumentCommand{\ch}{om}{
\IfNoValueTF{#1}{
\chapter{#2}
}{
\chapter{#2}\label{ch:#1}
}
}
\NewDocumentCommand{\Sc}{om}{
\IfNoValueTF{#1}{
\section{#2}
}{
\section{#2}\label{sc:#1}
}
}
\begin{document}
\ch{AAA}
aaaaa aaaaaaaaaaaaa aaaaaaaaaaaaaaa a
aaaaa aaaaaaaaa aaaaaaaaaaaaaaa. a
\Sc{BBB}
aaaaa aaaaaaaaaaaaa aaaaaaaaaaaaaaa a
aaaaa aaaaaaaaa aaaaaaaaaaaaaaa. a {} {}
\section{BBB}
aaaaa aaaaaaaaaaaaa aaaaaaaaaaaaaaa a
aaaaa aaaaaaaaa aaaaaaaaaaaaaaa. a
\section{BBB}
\end{document}
产生
该\Sc
版本产生的标题好像前一段以第 2 节中所示的额外空间结束,而不是第\section
3 节中产生的预期布局。