xstring 和即时创建命令

xstring 和即时创建命令

我在使用的类文件中使用了 bidishadowtext。此包不允许文本中出现任何换行符,因此我尝试变聪明,并定义一个命令,给定一个带有\nl内部的标题,该命令会将字符串一分为二,应用于bidishadowtext两者,然后将它们重新连接在一起。

为此,我找到了xstring,因为我很疯狂,所以我决定试试运气。这就是我取得的进展:

\usepackage{xstring}  
\def\nl{!!NL!!}
\verbtocs{\mynl}|}}\\\bidishadowtext{\textsc{|
\verbtocs{\myEnd}|}}|
\verbtocs{\myBegin}|\bidishadowtext{\textsc{|

\newcommand{\formatTitle}[1]{
   \IfSubStr{#1}{!!NL!!}{
      \def\myTitle{\StrSubstitute{#1}{!!NL!!}{\mynl}}
      \StrExpand[3]{\myTitle}{\xTitle}
      \scancs{\theTitle}{\myBegin\xTitle\myEnd}
      \theTitle
 }%
 {%
   \bidishadowtext{\textsc{#1}}
 }
}

我很高兴能直接解决我原来的问题,或者修复这个代码(我也很想学习如何解决这个问题)。

编辑:这是为了在重新定义的实施中使用\chapter,所以我不希望最终用户真正了解发生了什么。

相关内容