我在中编写了两个小的代码片段minted
,但是当我编译文档时,代码片段的对齐方式使得其中一个代码片段溢出了页面,如下所示:
这是我正在使用的代码。
\noindent\underline{Loop 1}
\begin{figure}[!h]
\begin{minted}[frame=lines, framesep=4mm]{C}
void loop1(void){
for (int i = 0; i < N; i++){
for (int j = N - 1; j > i; j--){
a[i][j] += cos(b[i][j]);
}
}
}
\end{minted}
\end{figure}
\noindent\underline{Loop 2}
\begin{figure}[!h]
\begin{minted}[frame=lines, framesep=4mm]{C}
void loop2(void){
double rN2 = 1.0/(double)(N * N);
for (int i = 0; i < N; i++){
for (int j = 0; j < jmax[i]; j++){
for (int k = 0; k < j; k++){
c[i] += (k+1) * log (b[i][j]) * rN2;
}
}
}
}
\end{minted}
\end{figure}
我尝试过使用center
环境和flushleft
其他类似的环境,但都无法改变它。我最近的尝试是将环境minted
放在图形或迷你页面中,但这些都无法帮助我控制代码片段的放置位置。我基本上只是希望代码片段保持左对齐,这样它们就可以完全适合页面。
答案1
请记住,您处于逐字上下文中,因此您输入的所有内容(包括空格)都会输出。您看到的是 LaTeX 代码与 C 代码的组合缩进。
您可以使用gobble
选项来指定应删除多少个字符,或者autogobble
让minted
决定应删除多少个字符:
\documentclass{article}
\usepackage{minted}
\begin{document}
\noindent\underline{Loop 1}
\begin{figure}[!h]
\begin{minted}[frame=lines, framesep=4mm, autogobble]{C}
void loop1(void){
for (int i = 0; i < N; i++){
for (int j = N - 1; j > i; j--){
a[i][j] += cos(b[i][j]);
}
}
}
\end{minted}
\end{figure}
\noindent\underline{Loop 2}
\begin{figure}[!h]
\begin{minted}[frame=lines, framesep=4mm, gobble=12]{C}
void loop2(void){
double rN2 = 1.0/(double)(N * N);
for (int i = 0; i < N; i++){
for (int j = 0; j < jmax[i]; j++){
for (int k = 0; k < j; k++){
c[i] += (k+1) * log (b[i][j]) * rN2;
}
}
}
}
\end{minted}
\end{figure}
\end{document}