我有一个
\documentclass[11pt, 12pt, oneside, twocolumn, fleqn, leqno]{book}
这是我们教授给我们的。我的问题是,他希望我们将 LaTex 代码放入将作为输出传递给他的 pdf 文档中。所以我尝试了:
\begin{landscape}
\begin{widetext}
\begin{lstlisting}[label=Preface,caption=Latex Code]
Latex code goes here
\end{lstlisting}
\end{widetext}
\end{landscape}
现在我在这个场景中遇到了两个问题。1.) 我似乎无法将乳胶代码中多余的单词放入新的横向页面中,另一个是 2.) widetext 函数在这里似乎不起作用。
答案1
令我有些惊讶的是,该\verbatiminput
命令在图形内部起作用。
因此,只要您可以将源代码分成几块,每块都适合一页(纵向模式),您就可以使用全宽figure*
环境执行如下操作:
在序言中:\usepackage{verbatim}
在主文件中:
\begin{document
\input{file1}
\input{file2}
\begin{figure*}
\small
\verbatiminput{jobname.tex}
\end{figure*}
\begin{figure*}
\small
\verbatiminput{file1.tex}
\end{figure*}
\begin{figure*}
\small
\verbatiminput{file2.tex}
\end{figure*}
\end{document}
这有点像黑客行为,但对我来说,纵向呈现的代码比横向的代码看起来更好。为了缩短主文件,您甚至可以将所有命令打包figure*
到一个单独的“附录”文件中,并附带一个简短的介绍性文字,然后\verbatiminput
将附录文件作为最后的内容。
答案2
使用
\onecolumn
\begin{landscape}
\begin{lstlisting}[label=Preface,caption=Latex Code,
xrightmargin=-...,xleftmargin=-... %%%% only if needed for more space
]
Latex code goes here
\end{lstlisting}
\end{landscape}
\twocolumn
或者您的意思是将横向格式设置为两列页面中的一列?