![将 qed 添加到 lstlisting 的最后一行](https://linux22.com/image/382870/%E5%B0%86%20qed%20%E6%B7%BB%E5%8A%A0%E5%88%B0%20lstlisting%20%E7%9A%84%E6%9C%80%E5%90%8E%E4%B8%80%E8%A1%8C.png)
考虑以下代码:
\documentclass{article}
\usepackage{amssymb}
\usepackage{listings}
\usepackage{lipsum}
\begin{document}
\begin{lstlisting}[frame=tb,numbers=none,emph={quadrat},mathescape=true,literate={{≔}{$\coloneqq$}1}]
proc quadrat = (x: var Nat, a: Nat): x:= a * a $\Box$
\end{lstlisting}
\lipsum[1]
\end{document}
在输出中,qed 符号不在右边距:
如何将 QED 符号移动到右边距而无需手动引入\hspace{...}
(当页面尺寸发生变化时需要更改)?
顺便说一句,ntheorem
和amsthm
是不可行的,因为它们与我的完整、非最小设置(svmono + 大量其他包)发生不可修复的冲突。
答案1
您可以使用以下选项退出到 latex escapechar=[character]
:
\documentclass{article}
\usepackage{amssymb}
\usepackage{listings}
\usepackage{lipsum}
\begin{document}
\begin{lstlisting}[frame=tb,
numbers=none,
emph={quadrat},
mathescape=true,
escapechar=§,
literate={{≔}{$\coloneqq$}1}]
proc quadrat = (x: var Nat, a: Nat): x:= a * a §\hfill$\Box$
\end{lstlisting}
\lipsum[1]
\end{document}
我将其用作§
转义符,选择一个你喜欢的,代码中未使用的。你可以再次使用转义符返回正常代码。你可以在文档。