如何修復 \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 節點)。

上述程式碼的輸出

相關內容