防止 \mbox 或 \fbox 退出页面

防止 \mbox 或 \fbox 退出页面

我正在尝试做这样的事情:

\documentclass[a4paper]{article}

\usepackage[top=0mm, bottom=0mm, left=0mm, right=0mm]{geometry}

\begin{document}

\noindent
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}\allowbreak%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}\allowbreak%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}\allowbreak%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}\allowbreak%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}\allowbreak%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}\allowbreak%
\fbox{\hskip1cm Some text \hskip1cm}

\end{document}

文档将自动生成,所以我想避免手动添加换行符,或将其放在表中。

我想要的是制作一组具有给定宽度和高度的姓名标签(我已经解决了这一部分)并将它们放在文档中。应该由 LaTeX 决定何时离开页面并插入新行,就像文本一样。不幸的是,我的框超出了页面。

在上面的例子中,我连续得到了五个框,但是第五个框超出了页面,因此它实际上应该是第二行中的第一个(即,每行应该得到四个,而不是五个)。

我知道我可能完全走错了方向,所以也欢迎大家提出制作名牌的其他方法。不过,我的代码目前按预期运行(除了这个故障),所以我更愿意修复这个问题。

答案1

\hspace没有灵活性,所以你要么需要改变\textwidth以达到完全正确或更简单的使用\raggedright

\documentclass[a4paper]{article}

\usepackage[top=0mm, bottom=0mm, left=0mm, right=0mm]{geometry}

\begin{document}
\raggedright

\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}%
\fbox{\hskip1cm Some text \hskip1cm}\hspace{1cm}%
\fbox{\hskip1cm Some text \hskip1cm}

\end{document}

答案2

以下内容似乎符合您的要求:

\documentclass{article}
\usepackage[a4paper,margin=0mm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{tikz}% http://ctan.org/pkg/pgf
\raggedright
\begin{document}

\foreach \name in {Tom, Dick, Harry, Mary, Jane, Sue, Sylvester} {
  \framebox[4cm][c]{\strut\name}\qquad%
}
\end{document}

它提供了一种更一致的名称标签排版方式。通过 提供换行\raggedright,而\strut确保\framebox名称标签的高度均匀。由于设置是在循环中完成的(使用\foreach或类似的东西),因此您只需更改逗号分隔列表中的名称即可。

相关内容