我正在使用 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}