将长行的逐字块居中,而不使用小页面

将长行的逐字块居中,而不使用小页面

网站上有很多关于逐字块居中的问题,但尝试过后,他们要么使用 硬编码逐字块的宽度minipage,要么在逐字块有长行时不起作用。以下是此类错误居中策略的一个示例:

\documentclass[a4paper,10pt]{article}
\usepackage{verbatim}
\makeatletter
\newenvironment{centeredverbatim}{\expandafter\verbatim\centering}{\endverbatim}
\makeatother
\begin{document}
\begin{centeredverbatim}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
\end{centeredverbatim}
\end{document}

它产生: 在此处输入图片描述

我想要的是让块居中,这样如果它不适合页面,它就会溢出到两边,而不仅仅是右侧。

答案1

在这里,我使用verbatimbox包创建一个逐字的 hbox,它将存储在中\theverbbox。然后我使用输出该框\centerline

注意: 是\strut为了在逐字内容之前获得适当的垂直间距。该\leavevmode选项是为了识别空白的逐字行,而不是忽略它。 是\scriptsize为了使非常宽的行足够小以适合纸张。

\documentclass[a4paper,10pt]{article}
\usepackage{verbatim,verbatimbox,environ,lipsum}
\begin{document}
\lipsum[1]\strut

\begin{verbbox}[\scriptsize\leavevmode]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Next line in verbatim block

Last line in verbatim block
\end{verbbox}
\centerline{\theverbbox}

\lipsum[2]
\end{document}

在此处输入图片描述

答案2

虽然不是完整的答案,但可以让你思考。使用adjustwidth环境来增加逐字文本的文本宽度。

% wideverbprob.tex  SE 615607

\documentclass[a4paper,10pt]{article}
\usepackage{lipsum}
\usepackage{changepage} % make adjustments to (local) page geometry
\usepackage{verbatim}
\makeatletter
\newenvironment{centeredverbatim}{\expandafter\verbatim\centering}{\par\endverbatim}
\makeatother
\begin{document}
Lipsum 1. \textbf{Default text width.} \lipsum[1]
\begin{adjustwidth}{-1in}{-1in} % smaller margins, more text
Li[psum 2. \textbf{Wider text width.} \lipsum[2]
\begin{centeredverbatim}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 
\end{centeredverbatim}

Lipsum 1. \lipsum[1]

\begin{center}
\verb!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 !
\end{center}

\begin{center}
Centered text.
\end{center}
\end{adjustwidth}
Lipsum 4. \textbf{Default text width.} \lipsum[4]
\begin{centeredverbatim}
1 2 3 4 5 6
\end{centeredverbatim}
Lipsum5. \lipsum[5]
\end{document}

在此处输入图片描述

我发现的其他困难包括:

  1. 你的centeredverbatimadjustwidth
  2. (非常)长的居中逐字文本将超出页面宽度。您还想要换行吗?
  3. 如何在逐字文本中产生换行符?
  4. 如果您不想要换行符,那么您必须选择足够小的字体大小来容纳您的逐字文本和/或选择足够大的文本宽度来容纳您的长逐字文本。

相关内容