我需要解释 Excel 表格的页面顺序,该表格以 PDF 格式打印时包含八页。为此,我想提供这八页的图片并添加文字。
表格单元格或多或少需要具有页面的纵横比。
我的想法是使用两行八个单元格的表格,扩大行高,然后使用 nicematrix 来获得虚线或虚线。
下面的代码可以工作,但是不幸的是,最后一段代码\\
会导致表格第二行和最后一行下方出现垂直虚线。
代码:
\documentclass[pagesize, ngerman, fontsize=12pt, parskip=half]{scrartcl}
\usepackage[T1]{fontenc}\usepackage[utf8]{inputenc}
\usepackage{babel, libertine, nicematrix, ragged2e}
\begin{document}
\setlength\extrarowheight{100pt}
\begin{NiceTabular}{:>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:}\hdottedline
upper half, page 1 & upper half, page 2 & upper half, page 3 & upper half, page 4 \\\hdottedline
lower half, page 5 & lower half, page 6 & lower half, page 7 & lower half, page 8 \\\hdottedline
\end{NiceTabular}
\end{document}
结果:
显然我不想要第二行下方的垂直虚线。怎么办?
顺便问一下,如何才能将第一行的文本打印在单元格顶部?
答案1
使用则tabularray
不会出现这样的问题:
\documentclass[pagesize, ngerman, fontsize=12pt, parskip=half]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{libertine}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{hlines={dotted}, vlines={dotted},
rows={abovesep+=100pt},
colspec ={*{4}{X[l,b]}}
}
upper half, page 1 & upper half, page 2 & upper half, page 3 & upper half, page 4 \\
lower half, page 5 & lower half, page 6 & lower half, page 7 & lower half, page 8 \\
\end{tblr}
\end{document}
附录:
从您的回答可以得出结论,您同时更改了所需的表格格式作为问题的解决方案。在您的回答中,可以使用tabularray
包简单而优雅地重现当前结果,而无需任何额外的包,也不必担心它们的加载顺序。代码简短、清晰,可以简单自定义:
\documentclass[pagesize, ngerman, fontsize=12pt, parskip=half]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{libertine}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{hlines={dashed}, vlines={dashed},
rows={ht=42.426mm}, % 30 mm x sqrt{2},
colspec ={*{4}{X[l,m, wd=30mm]}}
}
Obere Hälfte, Blatt 1 & Obere Hälfte, Blatt 2 & Obere Hälfte, Blatt 3 & Obere Hälfte, Blatt 4 \\
Obere Hälfte, Blatt 5 & Obere Hälfte, Blatt 6 & Obere Hälfte, Blatt 7 & Obere Hälfte, Blatt 8 \\
\end{tblr}
\end{document}
答案2
\CodeAfter
您可以使用和自定义点图案绘制所有线条tikz
。
\documentclass[pagesize, ngerman, fontsize=12pt, parskip=half]{scrartcl}
\usepackage[T1]{fontenc}\usepackage[utf8]{inputenc}
\usepackage{babel, libertine, nicematrix, ragged2e}
\usepackage{tikz} % added <<<<<<<<<<
\tikzset{% dot pattern <<<<<<<<<<<<
dots/.style={
color=blue,
line width=1.3pt,
line cap=round,
dash pattern=on 0pt off 4.4pt
}
}
\newlength{\basewidth}
\setlength{\basewidth}{0.2\textwidth} % width of the "pages"
\begin{document}
\setlength\extrarowheight{1.41\basewidth} % form factor of A4 page= 1.41
\begin{NiceTabular}{*{4}{p{\basewidth}}}
upper half, page 1 & upper half, page 2 & upper half, page 3 & upper half, page 4 \\
lower half, page 5 & lower half, page 6 & lower half, page 7 & lower half, page 8 \\
\CodeAfter
\tikz \draw [dots] (1-|1) -- (1-|5);
\tikz \draw [dots] (2-|1) -- (2-|5);
\tikz \draw [dots] (3-|1) -- (3-|5);
\tikz \draw [dots] (1-|1) -- (3-|1);
\tikz \draw [dots] (1-|2) -- (3-|2);
\tikz \draw [dots] (1-|3) -- (3-|3);
\tikz \draw [dots] (1-|4) -- (3-|4);
\tikz \draw [dots] (1-|5) -- (3-|5);
\end{NiceTabular}
\end{document}
答案3
昨天我在火车上时,我使用 arydshln 包找到了一个解决方案:
\documentclass[pagesize, ngerman, fontsize=12pt, parskip=half]{scrartcl}
\usepackage[T1]{fontenc}\usepackage[utf8]{inputenc}
\usepackage{babel, libertine, ragged2e}
%\usepackage{nicematrix}
\usepackage{array}
\usepackage{arydshln}
\begin{document}
% \setlength\extrarowheight{100pt}
% \begin{NiceTabular}{:>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:}\hdottedline
% upper half, page 1 & upper half, page 2 & upper half, page 3 & upper half, page 4 \\\hdottedline
% lower half, page 5 & lower half, page 6 & lower half, page 7 & lower half, page 8 \\\hdottedline
% \end{NiceTabular}
\begin{tabular}[t]{:@{}m{0pt}>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:>{\RaggedRight}p{3cm}:}\hdashline
\rule{0pt}{4.4cm} & Obere Hälfte, Blatt 1 & Obere Hälfte, Blatt 2 &
Obere Hälfte, Blatt 3 &
Obere Hälfte, Blatt 4 \\\hdashline
\rule{0pt}{4.4cm} & Untere Hälfte, Blatt 5 & Untere Hälfte, Blatt 6 &
Untere Hälfte, Blatt 7 & Untere Hälfte, Blatt 8 \\\hdashline
\end{tabular}
\end{document}
为了获得固定高度,我添加了一个空的、0pt 宽度的列。首先,我将其添加到表格的末尾。结果:很丑,因为水平线比预期的要长。所以我将其移动为第一行。它是“m”行,因此单元格中的文本垂直居中打印。
第二件要注意的事情:在arydshln之前需要加载数组。
看到我们有如此多的主线表格包真是令人高兴。