仅将 Section,Subsection 中句子的第一个单词大写

仅将 Section,Subsection 中句子的第一个单词大写

我正在使用书籍类,并编写了所有部分、章节和小节,以便 \section{My Section Is Like This} 制作类似这样的内容

我的部分是这样的

我的编辑要求我写如下内容:

我的部分是这样的

我相信我必须引入一个类似使用 book-class 将章节标题中每个单词的首字母大写

\let\svsection\section
\def\section#1{\svsection{\titlecap{#1}}}

这并不能解决我的问题

或者

类似的东西

\sectionfont{\scshape\MakeTextLowercase}

产生

我的部分是这样的

问题是如何将所有章节、小节、小小节的句子首字母大写,但我一直没能找到它。

答案1

我只想编辑文件,而不是让你的宏永远复杂化。

如果你的sec.tex文件是

\section{My Title}
.....

\section{With Title Case}

...

然后执行如下命令

sed -ie "s/\\\\section{\(.\)\([^{}]*\)}/\\\\section{\\1\\L\\2}/"  sec.tex 

那么它将

\section{My title}
.....

\section{With title case}

...

sed在那里使用了命令行,但任何编辑器都应该能够进行类似的替换。

答案2

你不应该这样写。

如果您确实想要,那么请准备好遇到这些宏的问题。;-)

\documentclass{article}
\usepackage{etoolbox}

\makeatletter
\patchcmd\@sect{#8}{\MakeFirstUppercase{#8}}{}{}
\newcommand{\MakeFirstUppercase}[1]{%
  \@MakeFirstUppercase#1\@MakeFirstUppercase
}
\def\@MakeFirstUppercase#1#2\@MakeFirstUppercase{%
  \MakeUppercase{#1}\MakeLowercase{#2}%
}
\makeatother

\begin{document}

\section{My Section is Like This}

\section{But it should be like this}

\end{document}

例如,开头的重音字母不起作用,但你可以用括号括起来:

\section{{\'E}lite}

在此处输入图片描述

相关内容