\documentclass[titlepage]{article}
\author{foobar}
\title{foofoofoo}
\usepackage{syntonly}
\usepackage{verbatim}
\usepackage{lipsum}
\usepackage{listings}
\begin{document}
\maketitle
\newpage
\tableofcontents
\newpage
\lstset{basicstyle=\texttt} %THIS LINE
\section{Source Code}
I will admit that this code is {\it messy}.
\subsection{foo.c}
\lstinputlisting{foo.c}
\end{document}
我不明白为什么该行pdflatex
无法编译;当我删除它时,一切都正常。
它给了我这个:
! Incomplete \ifmmode; all text was ignored after line
答案1
由于\texttt
是需要参数的命令,因此在listings
逐字模式下它不会找到奇怪的字符等。无法将逐字代码作为参数提供给另一个命令。这就是\texttt{...}
必须失败的原因。
为了实现typewriter
字体,使用\ttfamily
切换到此字体。请注意,这是一个持久的开关(直到应用另一个开关),而\texttt{...}
仅持续到{...}
- 分隔的参数。
\documentclass[titlepage]{article}
\author{foobar}
\title{foofoofoo}
\usepackage{syntonly}
\usepackage{verbatim}
\usepackage{lipsum}
\usepackage{listings}
\begin{document}
\maketitle
\newpage
\tableofcontents
\newpage
\lstset{basicstyle=\ttfamily} %THIS LINE
\section{Source Code}
I will admit that this code is {\textit{messy}}.
\subsection{foo.c}
\lstinputlisting{foo.c}
\end{document}
foo.c
:
#include <stdio.h>
int main( int argc, char **argv)
{
printf("Hello World!\n");
return(0);
}