我正在尝试使用 在我的文档中显示一些代码lstinputlisting
。我想显示用 Stan 编写的代码。我有一个单独的 Stan 文件,然后在我的 Latex 文档中调用它。
下面是一个工作示例。由于序言很长,所以它并不是那么精简。我担心我的序言中的某些内容可能会压倒论点showlines=true
,因此我将整个序言粘贴在这里,以便您查看。文档的其余部分已精简为工作示例以及 Stan 代码。
要使此示例正常运行,您必须先用 Stan 代码创建一个单独的文件。这就是为什么我要粘贴两个代码块,一个用于 Stan 代码,一个用于 Latex 代码。
首先,这是 Stan 代码。文件名为stan_code.stan
。
data {
real X;
}
parameters {
real Y;
}
model {
X ~ normal(Y, 1);
}
讽刺的是,我也无法在 Stack Exchange 上添加最后一行空代码,但请手动添加。我的真实 Stan 文件包含最后一行空代码。
这是我的 Latex 文件的代码以及大序言。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[
backend=biber,
style=apa,
]{biblatex}
\addbibresource{bibliography.bib}
\usepackage{multirow}
\usepackage{rotating}
\usepackage[svgnames]{xcolor}
\usepackage{listings}
\usepackage{lmodern}
\usepackage{appendix}
\usepackage{booktabs}
\usepackage[flushleft]{threeparttable}
\usepackage[strict]{changepage}
\usepackage{csquotes}
\usepackage[export]{adjustbox}
\usepackage{multirow}
\usepackage{makecell}
\renewcommand{\cellalign}{cl}
\renewcommand{\theadalign}{cl}
\usepackage{amssymb}
\usepackage[labelsep=period]{caption}
\usepackage{subcaption}
\DeclareCaptionLabelFormat{myformat}{\tablename\ #2}
\captionsetup[subtable]{labelformat=myformat,labelsep=period}
\renewcommand{\thesubtable}{\thetable\alph{subtable}}
\makeatletter
\renewcommand\p@subtable{}
\makeatletter
\usepackage[noabbrev]{cleveref}
\lstset{
aboveskip=1ex,
backgroundcolor=\color{gray!25},
basicstyle=\normalsize\ttfamily\linespread{.9}\selectfont,
belowskip=1ex,
breaklines=true,
columns=fullflexible,
framerule=0pt,
framexrightmargin=0em,
framexleftmargin=0em,
numbers=left,
numberstyle=\footnotesize\sffamily,
tabsize=2,
showlines=true
}
\usepackage{lstbayes}
\usepackage{graphicx}
\usepackage{float}
\usepackage[english]{babel}
\usepackage{abstract}
\addto\captionsenglish{\renewcommand{\abstractname}{}}
\renewcommand{\absnamepos}{empty}
\usepackage{setspace}
\doublespacing
\interfootnotelinepenalty=\@M
\usepackage[margin=1in]{geometry}
\DeclareMathOperator\diag{diag}
\begin{document}
\lstinputlisting[language=Stan]{stan_code.stan}
\end{document}
这就是我得到的:
因此,即使我的代码包含最后一个空行,并且我showlines=true
在 中使用lstset
,它也会被完全忽略,并且最后一个空行会被截断。是否有东西覆盖了这一点,还是存在其他问题?我该如何解决这个问题?
编辑:日志文件可以在这里找到:https://0bin.net/paste/qipTojzM#WVKH-wbIDq7KdT4LyS2goZE4kU7XY6Zt+Ul7H31giHA