如何在“框架”环境中实现 URL 的自定义换行?

如何在“框架”环境中实现 URL 的自定义换行?

我有一行很长的语句,它可能是 url,但并不总是 url,所以我不能使用 url/burl 包。我想指定在哪里断行(at &),以及如何断行。

长线:

long-example-url.com/foo.php?foofighter=bar&session=89c371a38aa60a9a59f46c9bbdc9fb2d&fun=yes

不长线:

long-example-url.com/foo.php?foofighter=bar      &session=89c371a38aa60a9a59f46c9bbdc9fb2d&fun=yes

\在行尾插入一个,并在下一个处缩进以指示断行。

我该怎么做呢?(文本在框架内并且正在使用verbatim环境)

梅威瑟:

\documentclass[11pt]{article}
\usepackage{framed}

\begin{document}

\begin{framed}
  \begin{verbatim}
    Example:

    long-example-url.com/foo.php?foofighter=bar&session=89c371a38aa60a9a59f46c9bbdc9fb2d&fun=yes
  \end{verbatim}
\end{framed}

\end{document}

答案1

除了使用 url 包之外,我在 Praeamble 中还添加了以下行:

\renewcommand{\UrlBreaks}{\do\/\do\+}

在每个 \do 之后,你可以指定一个符号,url 将在此中断。

也许有帮助。

答案2

再次重新考虑我的答案。您可以listings为此使用包,但它可能会在 group 中的字符之前和之后中断other。因此它将在符号之后中断&,而不是之前。

\documentclass{minimal}

\usepackage{listings}
\usepackage{xcolor} % coloring only

\begin{document}

\newcommand\brch{\textbackslash}

\lstset{%
    alsoletter={0123456789=},
    breakatwhitespace=false,
    breaklines,
    breakautoindent=true,
    breakindent=20pt,
    prebreak=\raisebox{0ex}[0ex][0ex]{\color{green}\textbackslash},
}

\begin{lstlisting}
long-example-url.com/foo.php?foofighter=bar&session=89c371a38aa60a9a59f46c9bbdc9fb2d&fun=yes
\end{lstlisting}

\end{document}

唯一痛苦的事情是指定alsoletter选项。我刚刚问过一个问题关于它的自动化。

相关内容