希望你一切顺利。我正在尝试在两列页面中添加代码。我正在使用逐字逐句的方式将代码添加到我的论文中。
\documentclass[twocolumn,sigconf,natbib=false]{acmart}
%\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[scale=0.85]{zlmtt}
\usepackage{fancyvrb}
\usepackage{lipsum} % for context
\fvset{
frame=topline,
numbers=left,
framesep=3mm,
xleftmargin=16pt,
}
\begin{document}
\lipsum[1]
\begin{Verbatim}[label=Original Code]
class C {
public X x = new X();
public void f() {
...
}
}
\end{Verbatim}
\begin{Verbatim}[label=duplication code]
class c {
public X x = new X();
public void f(){
...
}
}
\end{Verbatim}
\begin{Verbatim}[label=Programming]
class c {
public X x = new X();
public void f(){
...
}
}
\end{Verbatim}
\begin{Verbatim}[label=C Code]
class c {
public X x = new X();
public void f(){
...
}
}
\end{Verbatim}
\begin{Verbatim}[label= Extract Local]
class c {
public X x = new X();
public void f(){
...
}
}
\end{Verbatim}
\lipsum
\end{document}
我试过了,但是我无法使用 Verbatim 加粗代码中的某些单词。我想加粗某些单词,同时更改该特定粗体颜色的背景“灰色”,例如单词“class、public、new(粗体 + 背景灰色)”,并且这些代码块应该与标题一起位于页面的开头。我认为,Verbatim 不支持粗体和颜色,可以使用哪些其他方法来执行这些操作?
非常感谢您的帮助。
答案1
要在双列文档中创建一个页面宽度的块,可以使用
\begin{figure*} ... \end{figure*}
但这样东西就会被放在页面顶部。有些包允许将它们放在页面中间(例如 midfloat),但我建议使用包multicol
而不是twocolumn
选项,以便更好地混合双列和单列。
要使文本部分变粗和/或变色,请Verbatim
使用该commandchars=
选项。您在此处指定的字符不应出现在文本中,或者如果您需要它们,则必须使用生成这些字符的命令替换它们。
例如,如果您指定commandchars={@[]}
但想要在文本中使用[
和,您可以定义生成,并生成(因为您不逐字使用数学模式,所以如果您在本地执行此操作是安全的),然后在您的代码中使用和。]
\[
[
\]
]
@[
@]
\documentclass[sigconf,natbib=false]{acmart}
%\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{multicol}
\usepackage[scale=0.85]{zlmtt}
\usepackage{fancyvrb}
\usepackage{color}
\usepackage{lipsum} % for context
\fvset{
frame=topline,
numbers=left,
framesep=3mm,
xleftmargin=16pt,
}
\newcommand{\red}[1]{\textcolor{red}{#1}}
\begin{document}
\begin{multicols}{2}
\lipsum[1]
\end{multicols}
\begin{figure}[htp]
\parskip=\baselineskip
\def\[{[}\def\]{]}
\begin{minipage}{0.48\textwidth}
\begin{Verbatim}[label=Original Code,commandchars={@[]}]
@red[class] C {
public X x = new X();
public void f() {
@[...@]
}
}
\end{Verbatim}
\end{minipage}
\hfill
\begin{minipage}{0.48\textwidth}
\begin{Verbatim}[label=duplication code]
class c {
public X x = new X();
public void f(){
...
}
}
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.48\textwidth}
\begin{Verbatim}[label=Programming]
class c {
public X x = new X();
public void f(){
...
}
}
\end{Verbatim}
\end{minipage}
\hfill
\begin{minipage}{0.48\textwidth}
\begin{Verbatim}[label=C Code]
class c {
public X x = new X();
public void f(){
...
}
}
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.48\textwidth}
\begin{Verbatim}[label= Extract Local]
class c {
public X x = new X();
public void f(){
...
}
}
\end{Verbatim}
\end{minipage}
\caption{Abstraction method}
\end{figure}
\begin{multicols}{2}
\lipsum
\end{multicols}
\end{document}