我想添加一些关键词
我想添加一些 C 语言的关键字,但遇到了困难。我想添加的关键字有、、、bool
等。我希望这些关键字仅适用于 C 语言。simd
omp
restrict
直接编辑样式
我想将这些“更新”到文档序言中的语言样式定义中,但似乎没有一个很好的界面来实现这一点。我当前的解决方案是直接调整设置,
/usr/local/texlive/2019/texmf-dist/tex/latex/listings/lstlang1.sty
我将它们添加到ANSI C
第 251 行左右的定义中,方法是将这些添加到和中,morekeywords
例如otherkeywords
:
\lst@definelanguage[ANSI]{C}{%
morekeywords={auto,break,...etc...,volatile,while,omp,simd,restrict},%
otherkeywords={\#pragma},% <-- Added to catch indented #pragma
...
}
这给出了所需的输出
为了
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=C]
#pragma omp simd
void foo(int * restrict a, int n, int n_simd)
{
#pragma omp simd
for (int i = 0; i < n; i++)
{
a[i] *= 2; /* Computation */
}
}
\end{lstlisting}
\end{document}
能在指南中添加些什么吗?
最终,我希望有一些更便携的东西,可以放在文档的序言中,但以下尝试都没有成功:
\lstset{otherkeywords={\#pragma,omp,simd}}
\lstdefinestyle{C}{morekeywords={restrict}}
\lstset{%
language={C},%
morekeywords={auto,...
...
}
新环境/语言/风格
我最好避免创建一种新的语言或风格,例如myC
或类似,而宁愿只声明,language=C
因为这似乎是更好的做法,并避免重构我的代码。
相关问题
答案1
我认为你可以定义一种自定义风格:
\documentclass{article}
\usepackage{listings}
\lstdefinestyle{C}{
language=C,
morekeywords={omp,simd,restrict},
otherkeywords={\#pragma}
}
\begin{document}
\begin{lstlisting}[style=C]
#pragma omp simd
void foo(int * restrict a, int n, int n_simd)
{
#pragma omp simd
for (int i = 0; i < n; i++)
{
a[i] *= 2; /* Computation */
}
}
\end{lstlisting}
\end{document}