逐字记录部分之后的问题

逐字记录部分之后的问题

我遇到了一个无法解决的问题。如果我有一个包含文本的子节,verbatim中间有一个节,则节后的第一行verbatim未正确对齐。如果我\newline在逐字后面放置命令,一切正常,但它显示错误

There's no line here to end

这是代码:

\subsubsection{Umsetzung}
    C: \texttt{if(r1 > r2)$\{$statement;$\}$} \newline
    Realisierung in 2 Schritten: zuerst die Register vergleichen, dann auf Grund
    von Flags bedingten Sprung ausführen.
    \begin{verbatim}
        cp r1, r2   ; vergleiche (compare) r1 mit r1
        brge L1     ; verzweige falls r1 >= r2 (mit Vorzeichen!)
        ...
        statement
        ...
        L1: nop         ; hier geht es weiter
    \end{verbatim}

    C: \texttt{if(r1 > r2)$\{$statement1;$\}$else$\{$statement2;$\}$} \newline
    Assembler:
    \begin{verbatim}
        cp r1, r2   ; vergleiche (compare) r1 mit r
        brge L1     ; verzweige falls r1 >= r2
        ...
        statement1
        ...
        rjmp L2
        L1: ...
        statement2
        ...
        L2: ...      ; hier geht es weiter
    \end{verbatim}

输出结果如下:

在此处输入图片描述

即使我删除了整个逐字部分,所描述的行仍然停留在新行上并且没有正确对齐(并且这 - 在我看来 - 非常奇怪,它不应该只是浮在前一个句子的末尾吗,因为我从来没有告诉过要断行?)。

在此处输入图片描述

请注意,我稍微格式化了这里各部分的内容verbatim以提高可读性,因此如果您编译我的代码,则如果汇编程序代码的对齐方式与图片中不一样,请不要感到惊讶。

答案1

您应该尝试以下三件事之一:

  • 删除不想缩进的行前的空行
  • 放在\noindent新行之前,或者
  • \hspace*{\fill}\newline

从 MWE 的编写方式来看,您已经告诉 LaTeX 您正在开始一个新段落。如果这确实是您想要做的,那么缩进在技术上是正确的。如果您不想缩进段落或不想只缩进此段落,那么您可以使用\noindent。(顺便说一句,LaTeX 不会自动缩进节标题后的第一个段落。)

\newline不喜欢以空行结尾:因此在\hspace*{\fill}它前面有。我建议不要使用,\newline因为这样会造成更多的空白。

相关内容