我正在尝试生成一个 PDF 文件,其中某一部分包含用户输入。我希望它放在同一行,使用相同的字体,并且没有特殊字符来扰乱解析。我以为我可以通过将用户输入放入文件并使用包中的命令读取它来实现这一点\verbatiminput
,verbatim
但我没有得到我想要的结果。
name.txt
有这样的内容:
Bobby {[(*&%#@!_\':>?, ,.;;'\][ Tables
这是 LaTeX 代码:
\documentclass[a4paper]{article}
\usepackage{verbatim}
\begin{document}
\makeatletter
\def\verbatim@font{}
\makeatother
For \verbatiminput{name.txt}
\end{document}
结果是:
的内容name.txt
放在单独的行上并向左缩进。
但这是我真正想要的:
就好像我name.txt
在同一行上输入了所有正确转义的内容一样。
有没有可以做到这一点的包?或者有配置方法verbatim
?我尝试查看其代码,但只能弄清楚如何保持字体不变,而不知道如何将其保持在同一段落中。
答案1
您可以声明自己的逐字环境\setverb
:
\def\setverb{\def\do##1{\catcode`##1=12}\dospecials }
\def\verbinput#1{\bgroup \setverb \input{#1}\unskip\egroup}
For \verbinput{name.txt}, next text.
\bye
您必须使用 ASCII 编码字体,没有默认的 cmr10(不幸的是,i 不是 ASCII 编码的)。