我正在尝试做这样的事情:
\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
或类似的东西),因此您只需更改逗号分隔列表中的名称即可。