LaTeX-定义使用特定字体的单词列表 问题
我正在写一篇关于申请的文章/文件。在这个文档中有很多LaTeX-定义使用特定字体的单词列表 问题,latex,Latex,我正在写一篇关于申请的文章/文件。在这个文档中有很多code-单词,我想用不同的字体突出显示它们。目前我的工作是: {\fontfamily{cmtt}\selectfont SOME-KEY-WORD} 每次都需要做一些工作 问题 我正在寻找一种方法来声明一个单词列表,以便在文本中使用特定的字体。 我知道我可以使用listings软件包并定义将在listings环境中突出显示的morekeywords,但我需要在文本中使用它 我想到了这样的事情: \defineList{\fontfamil
code
-单词,我想用不同的字体突出显示它们。目前我的工作是:
{\fontfamily{cmtt}\selectfont SOME-KEY-WORD}
每次都需要做一些工作
问题
我正在寻找一种方法来声明一个单词列表,以便在文本中使用特定的字体。
我知道我可以使用listings软件包并定义将在listings环境中突出显示的morekeywords
,但我需要在文本中使用它
我想到了这样的事情:
\defineList{\fontfamily{cmtt}}{
SOME-KEY-WORD-1,
SOME-Key-word-2,
...
}
Hello, \somekeyword{} is the magic word!
编辑
我忘了说我已经试过了:
\def\somekeyword{\fontfamily{cmtt}\selectfont some\_key\_word\normalfont}
这比第一次尝试要好一点,但我仍然需要在文本中使用\somekeyword
编辑2
我找到了一个解决办法:
\newcommand{\cmtt}[1]{{\fontfamily{cmtt}\selectfont #1\normalfont}}
它比“编辑”好一点,但仍然不是完美的解决方案。每次出现一个单词时,在不提供任何TeX线索的情况下进行替换可能会很困难,并且超出了我的技能范围(尽管我有兴趣看到有人提出解决方案) 但是为什么不简单地为每个单词创建一个宏呢
\newcommand\somekeyword{\fontfamily{cmtt}\selectfont SOME-KEY-WORD}
这样使用:
\defineList{\fontfamily{cmtt}}{
SOME-KEY-WORD-1,
SOME-Key-word-2,
...
}
Hello, \somekeyword{} is the magic word!
遗憾的是,尾随的{}
是必要的,以防止吃掉后面的空格;即使是内置的\LaTeX
命令也需要它们
如果您有很多这样的话,并且担心可维护性,您甚至可以创建一个宏来创建宏:
\newcommand\declareword[2][]{%
\expandafter\newcommand%
\csname\if\relax#1\relax#2\else#1\fi\endcsname%
{{\fontfamily{cmtt}\selectfont #2}}%
}
\declareword{oneword} % defines \oneword
\declareword{otherword} % defines \otherword
\declareword[urlspy]{urls.py} % defines \urlspy
...
可选参数表示命令的名称,以防单词本身包含像
这样的字符,而这些字符不能用于命令名称。宏的工作方式与\def\someKeyWord
相同,对吗?因此,我仍然需要将每次出现的someKeyWord替换为\someKeyWord
,或者我是否错误地使用了宏的功能?是的,您仍然需要更改文本。就像我说的,这是没有办法的(我知道)。我尝试了你的解决方案。例如,如果短语中有“.”,则会遇到问题:urls.py
。我在EDIT2中展示的解决方案似乎没有问题。是的,如果“word”包含在宏名称中无效的字符,它将不起作用。我将进行编辑以添加解决方法。如果要突出显示“普通”单词,我将尝试使用此方法。如果要突出显示这些单词可能包含特殊内容,请查看chickenize
包symbols@samcarter_is_at_topanswers.xyz我来看看。谢谢。看来chickenize
包只适用于lunaTex。为什么需要自定义\cmtt
宏?为什么不改用\texttt{foo}
?或者\verb | foo |
如果内容脆弱?其想法是创建一个单词/短语列表,该列表将自动以另一种字体设置样式。