![最后一行的 tcolorbox 框略有错位](https://linux22.com/image/464330/%E6%9C%80%E5%90%8E%E4%B8%80%E8%A1%8C%E7%9A%84%20tcolorbox%20%E6%A1%86%E7%95%A5%E6%9C%89%E9%94%99%E4%BD%8D.png)
以下代码利用tcolorbox
包创建圆角矩形的模板gamebox
。一个简单的语句打印游戏框,并在其上打印\foreach
字符串。我将其清零并覆盖,以便框对齐,从而易于切割。包含在循环中以防止第一行缩进。Lv. 0
Lv. 103
before
after
\hfill
\noindent
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper,landscape,left=0.7cm,right=0.7cm,top=0.5cm,bottom=0.5cm]{geometry}
\usepackage{tcolorbox}
\tcbuselibrary{most}
\usepackage{tikz}
\title{}
\author{}
\begin{document}
\newtcbox{\gamebox} {
fontupper=\fontsize{0.7cm}{0.7cm}\selectfont\bfseries,
width=3cm,
boxrule=0.1cm,
height=1.5cm,
halign=center,
valign=center,
before=,
after=\hfill,
tcbox width=forced center
}
\foreach \i in {0,...,103} {
\noindent
\gamebox{Lv. \i}
}
\end{document}
但是 PDF 输出的最后一行(96 到 103)有点偏离。无论我如何调整页边距和框大小,最后一行似乎都比\hfill
其他行略小,并且后面的列中差异变得明显。LaTeX
默认情况下是否为最后一行的末尾保留空间?如果是,我该如何禁用此功能以获得完美的 8x13 位置?
答案1
\hfill
每个由 提供的框后都有tcolorbox
一个普通空格(由 之后的行尾引入的空格\gamebox{Lv. \i}
,可以稍微缩小或拉伸),以及在 之后(\foreach
最后一个 之后)的最后一个空格}
。最后,有一个段落结束符,它使普通空格成为其标称大小(或多或少,我认为它是一个\hfil
)。因此,普通行和最后一行中的空格大小并不完全相同。
例如,您可以使用\unskip
末尾的空格删除最后一个(段落末尾)的空格:
...
\gamebox{Lv. \i}
}\unskip
...
或者删除所有不必要的空格:
...
\foreach \i in {0,...,103} {%
\noindent
\gamebox{Lv. \i}%
}%
...
无论如何,为了将事物放入网格中,我会使用表格结构(并tcolorbox
具有“花名册”功能)来创建类似的东西。