![逐字记录部分之后的问题](https://linux22.com/image/259916/%E9%80%90%E5%AD%97%E8%AE%B0%E5%BD%95%E9%83%A8%E5%88%86%E4%B9%8B%E5%90%8E%E7%9A%84%E9%97%AE%E9%A2%98.png)
我遇到了一个无法解决的问题。如果我有一个包含文本的子节,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
因为这样会造成更多的空白。