问题:
我正在使用自定义命令为自定义命令中的关键字着色\code
。但是,这会将所有内容都涂成蓝色,如 MWE 中所示。我希望<
和之间的所有内容>
都涂成粉红色。解决方案应该只针对命令\code
。
最小工作示例(MWE):
\documentclass{scrreprt}
\usepackage{xcolor}
\usepackage{lipsum}
% --------------------------------------------------------------
% Colors
% --------------------------------------------------------------
\definecolor{editorBlue}{cmyk}{1, 0.35, 0, 0}
\definecolor{editorPink}{cmyk}{0, 1, 0, 0}
% ----------------------------------------------------------------------
% Command for inline code
% ----------------------------------------------------------------------
\newcommand{\code}[1]{
{\color{editorBlue}\texttt{#1}}
}
\begin{document}
\noindent Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut pur us elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus \code{<div>} et netus et malesuada fames ac tur pis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna f ringilla ultrices. Phasellus eu tellus sit amet tor tor gravida placerat. Integer sapien est, iaculis in, pretium quis, \code{<body>} viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit \code{<html>} amet orci dignissim r utr um \\
\noindent Desired output: \code{<{\color{editorPink}div}>}
\end{document}
期望输出:
所需输出包含在 MWE 中。
答案1
因此我尝试使用该选项提出建议\lstinline
,对我来说,它似乎有效:
\documentclass{scrreprt}
\usepackage{xcolor}
\usepackage{listings}
% --------------------------------------------------------------
% Colors
% --------------------------------------------------------------
\definecolor{editorBlue}{cmyk}{1, 0.35, 0, 0}
\definecolor{editorPink}{cmyk}{0, 1, 0, 0}
% ----------------------------------------------------------------------
% Command for inline code
% ----------------------------------------------------------------------
\newcommand{\code}[1]{%
{%
\lstset{%
basicstyle=\small\ttfamily\upshape,
keywordstyle=\color{editorBlue},
commentstyle=\color{editorPink},
keepspaces
}%
\lstinline[language=HTML]{#1}%
}%
}
\begin{document}
\noindent Standard: \code{<html>} \\
\noindent More: \code{<html> <!-- Comment -->} \\
\noindent In Text: Pellentesque habitant morbi tristique senectus \code{<div>} et netus et malesuada fames ac tur pis egestas. Integer sapien est, iaculis in, pretium quis, \code{<body>} viverra ac, nunc. Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit \code{<html>} amet orci dignissim r utr um \\
\end{document}
给出以下结果:
我将设置移到了括号外,但这对我来说并不重要,只是看起来更美观。如果您在文档中的其他任何地方都未使用列表,您也可以将它们移到序言中。
我还添加了一些如何设置颜色的示例,其他所有内容都应该在包文档中。