使用 \gobblechar 的 stringstrings 删除字符串和命令/标记组合中的第一个字符

使用 \gobblechar 的 stringstrings 删除字符串和命令/标记组合中的第一个字符

我正在使用 stringstrings 包。它有一个名为的命令\gobblechar,用于删除字符串或标记中的第一个字符。请参阅下面的我的 MWE。它已根据 @egreg 的意见进行了修改。

\documentclass{article}
\usepackage{amsmath}
\usepackage{stringstrings}
\begin{document}
\gobblechar[q]{Normal Text and \textbf{Bold Text} and \textit{Italic Text} and math commands like $a_{\text{c}}=\frac{v^2}{r}$}
\edef\myAnyString{\thestring}
\myAnyString
\end{document}

我希望我的参数\gobblechar是字符串和命令的组合,其中第一个字符是字母。

在上面的 MWE 中,论点是

Normal Text and \textbf{Bold Text} and \textit{Italic Text} and math commands like `$a_{\text{c}}=\frac{v^2}{r}$

第一个字符“N”是字母。我尝试输出相同的参数,但不输出第一个字符。

因此,我的预期输出是

普通文本和加粗字体斜体文字以及数学命令如$a_{\text{c}}=\frac{v^2}{r}$。

请注意,如果参数是纯字符串,则没有问题。例如,如果参数是“普通文本”,则上述 MWE 的输出是“普通文本”。我认为,问题在于参数是字符串和命令的组合。

恳请您帮助我实现这一目标。我开始认为这个问题并不像看上去那么简单。

答案1

这看起来像是一个 XY 问题。无论如何,你可以改用expl3

\documentclass{article}
\usepackage{amsmath}

\ExplSyntaxOn

\NewExpandableDocumentCommand{\gobblefirst}{m}
 {
  \tl_tail:n { #1 }
 }

\ExplSyntaxOff

\begin{document}

\gobblefirst{Normal Text and \textbf{Bold Text} and \textit{Italic Text} 
  and math commands like $a_{\mathrm{c}}=\frac{v^2}{r}$}

\end{document}

在此处输入图片描述

答案2

这看起来像是一个工作expl3

\documentclass{article}
\usepackage{amsmath}
\ExplSyntaxOn

\NewExpandableDocumentCommand{\ExplTitlecase}{m}
 {
  \text_titlecase:n { #1 }
 }

\ExplSyntaxOff

\begin{document}

\ExplTitlecase{Normal Text and \textbf{Bold Text} and \textit{Italic Text} 
  and math commands like $a_{\mathrm{c}}=\frac{v^2}{r}$}
  
\ExplTitlecase{normal Text and \textbf{Bold Text} and \textit{Italic Text} 
  and math commands like $a_{\mathrm{c}}=\frac{v^2}{r}$}

\ExplTitlecase{$a$ text and \textbf{Bold Text} and \textit{Italic Text} 
  and math commands like $a_{\mathrm{c}}=\frac{v^2}{r}$}

\end{document}

相关内容