我怎样才能修复 \hhline 中的小间隙并使其(和双垂直线)对特定的垂直(水平)线不透明?

我怎样才能修复 \hhline 中的小间隙并使其(和双垂直线)对特定的垂直(水平)线不透明?

看一下这张表:

\documentclass[12pt,a4paper]{report}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[activate={true,nocompatibility},final,tracking=false,kerning=true,spacing=true,factor=1100,stretch=10,shrink=10]{microtype}
\DisableLigatures[f]{encoding = T1}
\usepackage{color}
\usepackage{etoolbox}
\microtypecontext{spacing=nonfrench}
\usepackage{geometry}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{float}
\geometry{
    left=2cm,
    right=2cm,
    top=2cm,
    bottom=2cm,
    bindingoffset=0mm
}
\begin{document}
    \begin{table}[H]
        \centering
        \begin{tabular}{c|c||cc|cc|cc}
            & $\boldsymbol{(1 - \tau_0) i}$ & \multicolumn{2}{c|}{\multirow{2}{*}{$\boldsymbol{\alpha = 0{,}01}$}} & \multicolumn{2}{c|}{\multirow{2}{*}{$\boldsymbol{\alpha = 0{,}02}$}} & \multicolumn{2}{c}{\multirow{2}{*}{$\boldsymbol{\alpha = 0{,}03}$}} \\
            $\boldsymbol{i}$ & $\boldsymbol{=}$ & \multicolumn{2}{c|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{c}{}\\
            & $\boldsymbol{0{,}25}$ & $\boldsymbol{n = 0{,}04}$ & $\boldsymbol{n = 0{,}05}$ & $\boldsymbol{n = 0{,}04}$ & $\boldsymbol{n = 0{,}05}$ & $\boldsymbol{n = 0{,}04}$ & $\boldsymbol{n = 0{,}05}$\\ \hhline{=|=#==|==|==}
            $0{,}05$ & $0{,}0375$ & $\infty$ & $\infty$ & $\infty$ & $\infty$ & $\infty$ & $\infty$\\ \hline
            $0{,}06$ & $0{,}0450$ & $42{,}16$ & $\infty$ & $51{,}35$ & $\infty$ & $52{,}85$ & $\infty$\\ \hline
            $0{,}07$ & $0{,}0525$ & $23{,}11$ & $47{,}03$ & $32{,}30$ & $57{,}24$ & $33{,}79$ & $58{,}78$\\ \hline
            $0{,}08$ & $0{,}0600$ & $14{,}69$ & $21{,}97$ & $23{,}89$ & $32{,}19$ & $25{,}38$ & $33{,}37$
        \end{tabular}
    \end{table}
\end{document}

使用\usepackage{hhline}可以让我绘制一条对于垂直线透明的双水平线:

在此处输入图片描述

它甚至可以通过以下方式实现双垂直线#

在此处输入图片描述

但仔细观察就会发现,它\hhline是由几条小线组成的,每条小线之间都有空隙:

在此处输入图片描述

我想消除这些差距,但我不知道该怎么做。对我来说不是解决办法。

此外,我希望双水平和垂直线打断所有相交线。另外,我想停用此功能,#这样双水平线和双垂直线都不会互相干扰。这将/应该看起来像这样:

 ___| |___
 ___   ___
    | |

代替:

 ___|_|___
 ___|_|___
    | |

答案1

您可以使用::来获得开放的交叉,而不是#但是线条是通过在每个单元格中绘制一条线来制作的,因此它们是在同一点开始和结束的独立线条。一些 PDF 查看器可能会由于四舍五入到像素边界而显示小间隙,而有些则更善于避免这种情况。

原则上,可以合并相邻的-或多个段并进行跨度=单次运行,但这需要对包进行相当多的更改。\leaders

答案2

{NiceTabular}需要注意的是,在的环境中nicematrix,垂直规则不会被 指定的双水平规则打断\hline\hline。此外,无论您使用哪种 PDF 查看器,在各种缩放级别,您都不会看到细白线。

\documentclass[12pt,a4paper]{report}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{color}
\usepackage{geometry}
\usepackage{nicematrix}

\usepackage{float}
\geometry{
    left=2cm,
    right=2cm,
    top=2cm,
    bottom=2cm,
    bindingoffset=0mm
}
\begin{document}
    \begin{table}[H]
        \centering
        \begin{NiceTabular}{c|c||cc|cc|cc}
            & $\boldsymbol{(1 - \tau_0) i}$ & \Block{2-2}{$\boldsymbol{\alpha = 0{,}01}$} && \Block{2-2}{$\boldsymbol{\alpha = 0{,}02}$} && \Block{2-2}{$\boldsymbol{\alpha = 0{,}03}$} \\
            $\boldsymbol{i}$ & $\boldsymbol{=}$ \\
            & $\boldsymbol{0{,}25}$ & $\boldsymbol{n = 0{,}04}$ & $\boldsymbol{n = 0{,}05}$ & $\boldsymbol{n = 0{,}04}$ & $\boldsymbol{n = 0{,}05}$ & $\boldsymbol{n = 0{,}04}$ & $\boldsymbol{n = 0{,}05}$\\ 
            \hline\hline
            $0{,}05$ & $0{,}0375$ & $\infty$ & $\infty$ & $\infty$ & $\infty$ & $\infty$ & $\infty$\\ \hline
            $0{,}06$ & $0{,}0450$ & $42{,}16$ & $\infty$ & $51{,}35$ & $\infty$ & $52{,}85$ & $\infty$\\ \hline
            $0{,}07$ & $0{,}0525$ & $23{,}11$ & $47{,}03$ & $32{,}30$ & $57{,}24$ & $33{,}79$ & $58{,}78$\\ \hline
            $0{,}08$ & $0{,}0600$ & $14{,}69$ & $21{,}97$ & $23{,}89$ & $32{,}19$ & $25{,}38$ & $33{,}37$
        \end{NiceTabular}
    \end{table}
\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容