\texttt 导致引号和尖括号 ("

\texttt 导致引号和尖括号 ("

在我的 LaTeX 源代码中,我需要强调一些终端命令。为此,我使用\texttt

这对于大多数命令来说都很有效,但是一些特殊字符会导致问题:

myapp --url "<webserver-ip>/login.php" --data "test&data2=test"

注意“<”是如何混乱的。而且空格也被弄乱了。

我该如何修复它?

答案1

babel使某些字符变得特殊,因此在某些语言中它们具有不同的意义。语言ngerman定义了"<表示\flqq">表示\frqq,这就是您得到该输出的原因。您还使用了未转义的&,因此您应该会收到Misplaced alignment tab character &错误(尽管&是排版的,因此文档中的某些代码正在更改它...)。

请记住,LaTeX 是告诉计算机什么你想要的,而不是如何你想要的。你通过使用 来告诉它使用电传打字机字体\texttt,但这告诉它如何。使用 告诉 LaTeX 您想要逐字逐句地写一些内容,\verb然后电传打字机字体就会成为逐字逐句内容的默认字体。

要用 写一些东西,\verb您可以使用\verb<char><verbatim text><char><char>可以是任何字符,只要它不在 中即可<verbatim text>。此外,如果您想在空格处换行,您可以使用包\spverb中的命令spverbatim

listings软件包的功能集比 大得多,spverbatim并允许在空格和其他字符处换行(请参阅这里)。您可以使用alsoother键来微调您想要换行的位置(尽管在单词中间换行可能很奇怪......)。下面的示例显示了这些可能性。

在此处输入图片描述

这是一个测试文档:

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[a6paper]{geometry}
\usepackage{spverbatim}
\usepackage{listings}
\lstset{
  basicstyle=\ttfamily,
  breaklines=true,
  columns=flexible,
}
\begin{document}
\verb:\texttt::\par
\texttt{myapp --url "<webserver-ip>/login.php" --data "test&data2=test"}\bigskip

\verb:\verb::\par
\verb|myapp --url "<webserver-ip>/login.php" --data "test&data2=test"|\bigskip

\verb:\spverb::\par
\spverb|myapp --url "<webserver-ip>/login.php" --data "test&data2=test"|\bigskip

\verb:\lstinline::\par
\lstinline|myapp --url "<webserver-ip>/login.php" --data "test&data2=test"|\bigskip

\verb:\lstinline[alsoother=t]::\par
\lstinline[alsoother=t]|myapp --url "<webserver-ip>/login.php" --data "test&data2=test"|\bigskip
\end{document}

相关内容