我正在写一篇关于区块链的论文,我看到了一种我非常喜欢的风格。就是把代码放在黑色背景上(我的表格分为两列)。问题是这是我写的第一篇论文,我不知道如何把代码放在灰色背景上(此外,它必须与列的宽度相同)。
我贴了一张图片希望能帮到你:
我试图执行此代码(这只是一个例子):
\documentclass{article}
\usepackage{listings}
\usepackage{tcolorbox}
\usepackage{blindtext} % For dummy text
\lstset{
keywordstyle=\color{blue}\bfseries,
}
\begin{document}
\blindtext
\begin{tcolorbox}[boxrule=0.5pt,sharp corners]
\begin{lstlisting}[language=Python, gobble=12]
function calculateFitness() public{
for(uint j = 0; j < population.length; j++){
uint[] memory assignments = new uint[](agents.length);
for(uint i = 0; i < population[j].getGenesLenght(); i++){
uint[] memory pref;
// We get preferences for current agent
(,,pref) = agents[population[j].getGene(i)].getAgentInfo();
assignments[population[j].getGene(i)] += pref[i];
}
population[j].setFitness(getMin(assignments));
}
}
\end{lstlisting}
\end{tcolorbox}
\blindtext
\end{document}
然后我有几个问题:
1.- 我该如何修复文本,使其不显得突兀? 2.- 似乎 LaTeX 没有 Solidity 语言(以太坊区块链),所以我想添加不同的颜色(如上图第一张),但我无法在标签\textcolor{blue}
内书写listings
。 3.- 我不明白为什么删除了第一个单词:代码以“函数计算健身 ()...”,但图片只显示“计算健身(...)”
答案1
listings
这是使用排版代码包和tcolorbox
灰色框包(恰好是 的默认颜色tcolorbox
)来实现此目的的一种方法。包含一些用 Python 匆忙编写的示例代码。您可以使用listings
和tcolorbox
来控制输出的外观,但这些应该可以帮助您入门。如果您使用该twocolumn
选项,这也有效,但要小心,因为代码不会自动换行,因此可能会超出下一列。
\documentclass{article}
\usepackage{listings}
\usepackage{tcolorbox}
\usepackage{blindtext} % For dummy text
\lstset{
keywordstyle=\color{blue}\bfseries,
}
\begin{document}
\blindtext
\begin{tcolorbox}[
boxrule=0pt,
sharp corners
]
\begin{lstlisting}[language=python, gobble=12]
def fib(n: int):
if n < 0:
raise ValueError
else if n == 0 or n == 1:
return 1
else:
return fib(n - 1) + fib(n - 2)
\end{lstlisting}
\end{tcolorbox}
\blindtext
\end{document}