Minted:将代码片段左对齐

Minted:将代码片段左对齐

我在中编写了两个小的代码片段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选项来指定应删除多少个字符,或者autogobbleminted决定应删除多少个字符:

\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}

在此处输入图片描述

相关内容