如何制作一个接受 1 个参数并强制将第一个字符设置为低的宏?
因此你可以编写以下内容:
\firstToLow{SOME TEXT INPUT OF VARIATING LENGTH}
然后得到这个输出:
一些不同长度的文本输入
它应该支持 hyperref sou 我将能够写这个:
\firstToLow{\textit{\nameref{label}}}
答案1
\makefirstuc
这是提供的反向mfirstuc
,将首字母转换为大写。您可以通过重新定义将其调整为小写\mfirstucMakeUppercase
。这与 Bernard 的评论类似,但可以处理应用于文本的任何文本块字体更改命令,前提是要更改的文本是文本块命令的第一个参数,如下例所示:
\documentclass{article}
\usepackage{mfirstuc}
\renewcommand{\mfirstucMakeUppercase}{\MakeLowercase}
\begin{document}
\makefirstuc{SOME TEXT INPUT OF VARIATING LENGTH}
\makefirstuc{\emph{SOME TEXT INPUT OF VARIATING LENGTH}}
\end{document}
或者,将其包装在命令中,以便它不会干扰任何其他用途\makefirstuc
:
\documentclass{article}
\usepackage{mfirstuc}
\newcommand\firstToLow[1]{%
{%
\renewcommand{\mfirstucMakeUppercase}{\MakeLowercase}%
\makefirstuc{#1}%
}%
}
\begin{document}
\firstToLow{SOME TEXT INPUT OF VARIATING LENGTH}
\firstToLow{\emph{SOME TEXT INPUT OF VARIATING LENGTH}}
\end{document}
两种情况下的结果都是:
答案2
\documentclass{article}
\def\firstToLow#1{\expandafter\firstToLowA#1!!}
\def\firstToLowA#1#2!!{\MakeLowercase{#1}#2}
\begin{document}
\firstToLow{SOME TEXT INPUT OF VARIATING LENGTH}
\firstToLow SOME TEXT INPUT OF VARIATING LENGTH
\end{document}