在先前设置为标题大小写的一组单词中保留单词的混合大小写

在先前设置为标题大小写的一组单词中保留单词的混合大小写

在 URL 中使用 \gobblechar 的 stringstrings 删除字符串和命令/标记组合中的第一个字符,@JosephWright 建议使用命令\ExplTitlecase(expl3) 将一组以小写字母设置的单词的第一个单词大写。

在以下 MWE 中,我使用了 Joseph Wright 的\ExplTitlecase。我展示了示例 1 至 4。

%MWE
\documentclass{article}
\newcommand*{\myMixedCaseCommand}[1]{#1}
\ExplSyntaxOn
\NewExpandableDocumentCommand{\ExplTitlecase}{m}
{
\text_titlecase:n { #1 }
}
\ExplSyntaxOff

\begin{document}
%Example 1
\ExplTitlecase{first word will be capitalized}

%Example 2
\ExplTitlecase{a certain \uppercase{UPPERCASE} acronym within a set of words set in lowercase}

%Example 3
\ExplTitlecase{a certain \lowercase{lowercase} acronym within a set of words set in lowercase}

%Example 4
\ExplTitlecase{a certain \myMixedCaseCommand{MiXeDCaSe} acronym within a set of words set in lowercase}
\end{document}

MWE 编译良好,示例 1 至 3 中的输出符合预期。但是,对于示例 4,我希望找到某种命令(我暂时称之为),\myMixedCaseCommand以便此命令保留首字母缩略词 MiXeDCaSe 的混合大小写特性。在输出中,MiXeDCaSe 被小写并变为混合大小写。我希望输出完全是 MiXeDCaSe。

请寻求任何帮助。

答案1

您可以将不应由进程执行其参数的命令添加到列表中。

\documentclass{article}

\NewDocumentCommand{\myMixedCaseCommand}{m}{#1}

\ExplSyntaxOn

\NewExpandableDocumentCommand{\ExplTitlecase}{m}
 {
  \text_titlecase:n { #1 }
 }
% add \myMixedCaseCommand to the exclusion list
\tl_put_right:Nn \l_text_case_exclude_arg_tl { \myMixedCaseCommand }

\ExplSyntaxOff

\begin{document}

%Example 1
\ExplTitlecase{first word will be capitalized}

%Example 2
\ExplTitlecase{a certain \uppercase{UPPERCASE} acronym within a set of words set in lowercase}

%Example 3
\ExplTitlecase{a certain \lowercase{lowercase} acronym within a set of words set in lowercase}

%Example 4
\ExplTitlecase{a certain \myMixedCaseCommand{MiXeDCaSe} acronym within a set of words set in lowercase}

\end{document}

在此处输入图片描述

相关内容