在类似文本框的环境中,如何按字符而不是单词来换行文本?

在类似文本框的环境中,如何按字符而不是单词来换行文本?

我想要一个文本框(或类似的东西),可以把一长串不以空格分隔的文本放入其中。它类似于许可证密钥(因此它由字符 AZ、az、0-9、下划线和破折号组成)。

我研究过使用tabular、、、、,但似乎找不到我想要的行为(文本超出页面范围minipage,因为它们的文本换行正在寻找空格和破折号)。为一个可以在Word中通过复制/粘贴完成的任务做了这么fbox多研究,真是令人沮丧和失望……parboxmdframed

我是否忽略了什么?有人知道我可以实现这一点的方法吗?

答案1

这里我设置了一个循环,逐个输出一个标记,\penalty0后面跟一个(这样可以中断)。我在 中执行此操作\ttfamily,但可以删除。

已编辑以支持下划线。

\documentclass{article}
\usepackage[nopar]{lipsum}
%%%%%%%%%%%
\newcommand\autobreak[1]{\bgroup\ttfamily\autobreakhelp#1\relax\relax\egroup}
\def\autobreakhelp#1#2\relax{%
  {\detokenize{#1}}\penalty0\ifx\relax#2\relax\else\autobreakhelp#2\relax\fi}
%%%%%%%%%%%
\begin{document}
\lipsum[1]
\autobreak{%
http://tex.stackexchange.com/questions/224354/how-to_allowbreaks-at-any-character%
}
\lipsum[2]
\end{document}

在此处输入图片描述

如果输入仅限于“AZ、az、0-9、下划线和破折号”,则此方法可行,正如 OP 所要求的。实际上,输入流中的禁止字符将是{}%

相关内容