我正在尝试为活页夹的书脊准备打印机标签。文本设计为打印在 A4 格式的标签纸上,顶部和底部边距为26.5mm
,左/右边距为9mm
。
标签的格式61mm
为,每张纸上192mm
有,彼此之间没有任何分隔。4
我使用tcolorbox
环境作为标签的“框架”,也许我的想法很天真,但我只是连续写了四个这样的环境,并nobeforeafter
为每个环境设置(嗯,使用\tcbset
命令)。
即使\parskip
设置为 0pt,框之间的间距也只有大约 1mm,这会导致内容连续移动,并且第 4 个框会出现在下一页。当然,减少底部边距不是一个选择。我相信,\parskip
无论如何,这在这里是没用的。
我很确定,只要高度不是太大,盒子的内容就不会影响间距,但这似乎并非如此。
我怎样才能将这些颜色框之间的空间减小到有效的“零”值,从而导致打印时不会发生偏移?
笔记
打印出来后我检查了边距等,它们是正确的!
即使这种标签打印可能有其他解决方案,我还是希望有一些解决方案来减少盒子之间的间距(好吧,这可能是一个非常简单的解决方案。)
这是我迄今为止尝试过的代码
\documentclass[12pt,paper=a4]{article}
\usepackage[lmargin=0.9cm,rmargin=0.9cm,tmargin=26.5mm,bmargin=26.5mm,showframe=true,a4paper]{geometry}
\usepackage{tcolorbox}
\usepackage{lmodern}
\begin{document}
\setlength{\parindent}{0pt}%
\setlength{\parskip}{0pt}%
\pagestyle{empty}%
\fontsize{80}{96}\selectfont
\tcbset{height=61mm,nobeforeafter,top=2cm}
\begin{tcolorbox}%
\textbf{\LaTeX}%
\end{tcolorbox}
\begin{tcolorbox}%
\textbf{is}%
\end{tcolorbox}
\begin{tcolorbox}%
\textbf{very}%
\end{tcolorbox}
\begin{tcolorbox}%
\textbf{sophisticated}%
\end{tcolorbox}
\end{document}
我在这里研究了其他“类似”的问题,但似乎都没有与这个问题相关
- tcolorbox 的“nobeforeafter”垂直对齐
- 页脚中的 Tcolorbox 与 nobeforeafter 一起为页脚中的其他元素添加了空间
- tcolorbox 不能正确打印偏移量?
- 使用 tcolorbox 创建的两个环境之间的空间太大
笔记
tcolorbox
这是该软件包的一些功能以及 Gonzalo Medina 和 egreg 的解决方案以及 Thomas F. Sturm 的评论的结果。
答案1
您需要取消自然的\lineskip
:
\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[lmargin=0.9cm,rmargin=0.9cm,tmargin=26.5mm,bmargin=26.5mm,showframe=true,a4paper]{geometry}
\usepackage{tcolorbox}
\usepackage{lmodern}
\begin{document}
\setlength{\parindent}{0pt}%
\setlength{\parskip}{0pt}%
\pagestyle{empty}%
\fontsize{80}{96}\selectfont
\offinterlineskip
\tcbset{height=61mm,nobeforeafter,top=2cm}
\begin{tcolorbox}%
\textbf{\LaTeX}%
\end{tcolorbox}
\begin{tcolorbox}%
\textbf{is}%
\end{tcolorbox}
\begin{tcolorbox}%
\textbf{very}%
\end{tcolorbox}
\begin{tcolorbox}%
\textbf{sophisticated}%
\end{tcolorbox}
\end{document}
在上面的例子中,\offinterlineskip
将从发出的位置开始生效。要\lineskip
以更可控的方式抑制,可以after
使用
after=\par\nointerlineskip
作为托马斯·F·斯特姆建议his comment
。
答案2
间距是由于\lineskip
; 的通常设置\parskip
是具有零自然宽度,因此它只能在\flushbottom
设置时添加垂直空间,因为它具有 1pt 的拉伸分量。在这种情况下,您应该将其设置为零,也设置\lineskip
为零,但要分组设置,以避免设置永远持续下去。
\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[lmargin=0.9cm,rmargin=0.9cm,tmargin=26.5mm,bmargin=26.5mm,showframe=true,a4paper]{geometry}
\usepackage{tcolorbox}
\usepackage{lmodern}
\begin{document}
\begingroup
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt}
\setlength{\lineskip}{0pt}
\fontsize{80}{96}\selectfont
\tcbset{height=61mm,nobeforeafter,top=2cm}
\begin{tcolorbox}
\textbf{\LaTeX}
\end{tcolorbox}
\begin{tcolorbox}
\textbf{is}
\end{tcolorbox}
\begin{tcolorbox}
\textbf{very}
\end{tcolorbox}
\begin{tcolorbox}
\textbf{sophisticated}
\end{tcolorbox}
\endgroup % the empty line is needed
\end{document}
为什么是\lineskip
?因为每条线的高度加上深度都大于\baselineskip
,所以“上面一行的深度加上下面一行的高度”和 之间的差\baselineskip
大于\lineskiplimit
(通常为 0pt),因此 TeX 会插入\lineskip
粘连,认为这些线彼此太近了。
根据 Thomas F. Sturm 的评论,另一种解决方案是添加after=\par\nointerlineskip
以下选项tcolorbox
:
\tcbset{height=61mm,top=2cm,after=\par\nointerlineskip,before={}}