驼峰式文本连字与彩色文本

驼峰式文本连字与彩色文本

响应这个问题,David Carlisle 提供了源代码,可自动断开或用连字符连接驼峰式大小写单词,以便它们可以跨越多行。断开或用连字符连接发生在大写字母之前,例如驼峰式大小写。

我已成功使用代码并对其进行了少许修改以满足我的需要(使用打字机字体以及粗体文本):

\def\@zzz#1{\textbf{\texttt{\hbox\bgroup#1\egroup}}\endgroup}

但是我无法给文本上色。我尝试了各种方法,例如

  • \textcolor 在 David Carlisle 的实现中,即 \def\@zzz#1{\textbf{\texttt{\hbox\bgroup\textcolor{mycustomcolor}{#1}\egroup}}\endgroup}
    我也尝试使用 \textbf 之外的 \textcolor
  • 创建一个使用 \zzz 的新命令(David Carlisle 写道这不起作用,但我很绝望):
    \newcommand{\coloredcamel}[1]{\textcolor{mycustomcolor}{\zzz{#1}}}
  • 以及其他一些变体。例如,我尝试了上述方法,颜色包和彩色包。我也尝试了这个\color命令。

mycustomcolor 的定义是使用\definecolor{mycustomcolor}{RGB}{201, 20, 15}

在 David Carlisle 的实现中,是否可以以某种方式给文本着色?在此先感谢所提供的任何帮助。

答案1

您还需要使用,\color而不是\textcolor重新定义\ifcaseto\iftrue是一个重复使用的廉价技巧,以\Alph获取大写字母列表。只有\ifcase在环境范围内没有命令使用时才是安全的,这显然不是这种情况,xcolor所以这只是定义了一个新的大写字母列表,而不是 patchng `\@alph,但其他方面是相同的代码。

\documentclass{scrartcl}
\usepackage{xcolor}
\showhyphens{createUnspecifiedNodeErrorMarker}
\def\zzcolor{\color{red}}
\makeatletter
\def\zzz{\leavevmode\begingroup
\def\zzelt##1{%
  \catcode`##1\active\uccode`\~`##1\uppercase{%
    \def~{\egroup\egroup\penalty2\hbox\bgroup\bgroup\zzcolor\string##1}}}%
\zz@Alph{}%
\@zzz}

\def\zz@Alph#1{%
   \zzelt A\zzelt B\zzelt C\zzelt D\zzelt E\zzelt F\zzelt G\zzelt H\zzelt I\zzelt J\zzelt
   K\zzelt L\zzelt M\zzelt N\zzelt O\zzelt P\zzelt Q\zzelt R\zzelt S\zzelt T\zzelt U\zzelt V\zzelt W\zzelt X\zzelt
    Y\zzelt Z}

\def\@zzz#1{\textbf{\hbox\bgroup\bgroup\zzcolor#1\egroup\egroup}\endgroup}
\makeatother

\begin{document}
\section{Test}


And another example the show must go on, but we have too less text (\zzz{createUnspecifiedNodeWarningMarker} and
\zzz{createUnspecifiedNodeErrorMarker}, sdjklashjksa \zzz{createUnspecifiedLinkWarningMarker} and
\zzz{createUnspecifiedLinkErrorMarker}).
\end{document}

在此处输入图片描述

相关内容