如何在可自由选择的内容内使用文本颜色?

如何在可自由选择的内容内使用文本颜色?

我正在尝试让较长的内联代码在用 指定的点处换行\-。我几乎可以完美地完成此操作:

% !TEX program = xelatex

\documentclass[fontsize=11pt,pagesize=auto,hidelinks,cleardoublepage=empty,parskip]{book}

\usepackage{listings}
\usepackage{xcolor}
\usepackage{relsize}

\usepackage[paperheight=10in,paperwidth=6in,margin=2cm,heightrounded,bindingoffset=5mm,showframe=false]{geometry}

\sloppy

\newcommand*{\code}{\lstinline[basicstyle=\relscale{0.9}\ttfamily\color{red},keywordstyle=\color{red},stringstyle=\color{red},keepspaces=true,breaklines=true,literate={\\\-}{}{0\discretionary{\textrm{-}}{}{}}]}

\begin{document}

Here is a paragraph with some inline code. \code{Really\-Long\-Name\-First\-Second\-Third\-Fourth\-Fifth}.

\end{document}

输出:

在此处输入图片描述

我最后的目标是让连字符显示为黑色而不是红色,这样它看起来就与代码不同了。我想我可以像textcolor这样使用:

\newcommand*{\code}{\lstinline[basicstyle=\relscale{0.9}\ttfamily\color{red},keywordstyle=\color{red},stringstyle=\color{red},keepspaces=true,breaklines=true,literate={\\\-}{}{0\discretionary{\textcolor{black}{\textrm{-}}}{}{}}]}

然而,这给了我:

Improper discretionary list

我尝试过各种各样的方法,比如将整个discretionary作品包裹起来{},但都没有奏效。

我怎样才能使连字符变成黑色?

答案1

您不必\textcolor在自由裁量项内部使用它,而是可以在自由裁量项周围使用它:

\newcommand*{\code}{\lstinline[basicstyle=\relscale{0.9}\ttfamily\color{red},keywordstyle=\color{red},stringstyle=\color{red},keepspaces=true,breaklines=true,literate={\\\-}{}{0\textcolor{black}{\rmfamily\discretionary{-}{}{}}}]}

你知道这个\lstset宏吗?除了使用你的\code,你可以写

\lstset{basicstyle=\relscale{0.9}\ttfamily\color{red},keywordstyle=\color{red},stringstyle=\color{red},keepspaces=true,breaklines=true,literate={\\\-}{}{0\textcolor{black}{\rmfamily\discretionary{-}{}{}}}}

在你的序言中。然后\lstinline总是使用选项。

答案2

\textcolor颜色什么来改变颜色,这是不允许的,然而你可以有框,所以你只需要把每个字段的内容放在一个\hbox

在此处输入图片描述

\documentclass{article}

\usepackage{color}

\begin{document}

aaaaaaaaaaaaaaaa\discretionary
{\hbox{\textcolor{red}{AAA}}}{\hbox{\textcolor{blue}{BBB}}}{\hbox{\textcolor{green}{CCC}}}%
bbbbb
aaaaaaaaaaaaaaaa\discretionary
{\hbox{\textcolor{red}{AAA}}}{\hbox{\textcolor{blue}{BBB}}}{\hbox{\textcolor{green}{CCC}}}%
bbbbb
aaaaaaaaaaaaaaaa\discretionary
{\hbox{\textcolor{red}{AAA}}}{\hbox{\textcolor{blue}{BBB}}}{\hbox{\textcolor{green}{CCC}}}%
bbbbb
\end{document}

相关内容