alineación de clines pesados ​​con clines de ancho habitual

alineación de clines pesados ​​con clines de ancho habitual

Estoy intentando hacer una tabla con ciertas celdas enfatizadas con un borde engrosado alrededor de esas celdas. Mi intento \arrayrulewidthfue bastante exitoso, excepto que los \clineengrosados ​​de esta manera no siempre se alinean bien con los estándar, como se puede ver en este ejemplo: ingrese la descripción de la imagen aquí Como se puede ver, el borde engrosado sobresale de la parte inferior.

¿Hay alguna sugerencia para mejorar esto?

El código que produce el ejemplo es

\documentclass[border=10pt,11pt]{standalone}

\usepackage{setspace}
\usepackage{array,booktabs,multirow,makecell}
\newlength{\Oldarrayrulewidth}
\newcommand{\Cline}[2]{%
  \noalign{\global\setlength{\Oldarrayrulewidth}{\arrayrulewidth}}%
  \noalign{\global\setlength{\arrayrulewidth}{#1}}\cline{#2}%
  \noalign{\global\setlength{\arrayrulewidth}{\Oldarrayrulewidth}}}

%%% Japanese support
\usepackage{xeCJK}
\usepackage{zxjatype}
\usepackage{fontspec}
\def\cjkfontscale{1.0}
\setmainfont{Kozuka Mincho Pr6N}
\setCJKmainfont[Scale=\cjkfontscale]{Kozuka Mincho Pr6N}
\setCJKsansfont[Scale=\cjkfontscale]{Kozuka Gothic Pr6N}
\setCJKmonofont[Scale=\cjkfontscale]{Kozuka Gothic Pr6N}
\newCJKfontfamily\boldmincho{Hiragino Mincho ProN W6}

\begin{document}

\def\heavyrulewidth{2pt}
\def\strongvline{\vline width \heavyrulewidth}
\def\arraystretch{2.0}
\def\padcaption#1{\hspace{1.6em}#1\hspace{1.6em}}
\begin{tabular}{|c|r|c|r|}
  \cline{1-4}
  \multicolumn{1}{|c|}{\raisebox{-8pt}{\padcaption{件名}}}
  & \multicolumn{1}{|l|}{\parbox[t][3em]{12em}{Subject}}
  & \multirow{2}{*}[-10.8pt]{\hspace{1em}{納品先}\hspace{1em}}
  & \multirow{2}{*}{\parbox[t][4em]{14em}{Address}} \\
  \Cline{\heavyrulewidth}{1-2}
  \multicolumn{1}{!{\strongvline}c|}{\hspace{-1.5em}\padcaption{納品日}}
  & \multicolumn{1}{|r!{\strongvline}}{\boldmincho\Large 2020/1/1}
  & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{} \\
  \Cline{\heavyrulewidth}{1-2}\cline{3-4}
\end{tabular}
\def\arraystretch{1.0}
\vspace{1em}

\end{document}

(Usando XeLaTeX. La parte de manejo japonés no es esencial para esta pregunta, pero se incluye para demostrar mejor el uso original).

Respuesta1

Con la última versión de nicematrix(v. 5.19 del 23-07-2021), es fácil dibujar el marco requeridodentro del rectángulocon una línea de código.

\documentclass[border=10pt,11pt]{standalone}

\usepackage{setspace}
\usepackage{array,booktabs,multirow,makecell}

\usepackage{nicematrix}
\usepackage{tikz}


%%% Japanese support
\usepackage{xeCJK}
\usepackage{zxjatype}
\usepackage{fontspec}
\def\cjkfontscale{1.0}
\setmainfont{Kozuka Mincho Pr6N}
\setCJKmainfont[Scale=\cjkfontscale]{Kozuka Mincho Pr6N}
\setCJKsansfont[Scale=\cjkfontscale]{Kozuka Gothic Pr6N}
\setCJKmonofont[Scale=\cjkfontscale]{Kozuka Gothic Pr6N}


\begin{document}

\def\heavyrulewidth{2pt}
\def\strongvline{\vline width \heavyrulewidth}
\def\arraystretch{2.0}
\def\padcaption#1{\hspace{1.6em}#1\hspace{1.6em}}
\begin{NiceTabular}{|c|r|c|r|}% [hvlines]
\hline
  \raisebox{-8pt}{\padcaption{件名}}
  & \multicolumn{1}{l}{\parbox[t][3em]{12em}{Subject}}
  & \multirow{2}{*}[-10.8pt]{\hspace{1em}{納品先}\hspace{1em}}
  & \multirow{2}{*}{\parbox[t][4em]{14em}{Address}} \\
  \Block[tikz=clip,tikz={draw,line width=4pt},hvlines]{1-2}{}
  \hspace{-1.5em}\padcaption{納品日}
  & \Large 2020/1/1 \\
\hline
\end{NiceTabular}
\def\arraystretch{1.0}
\vspace{1em}

\end{document}

La línea es:\Block[tikz=clip,tikz={draw,line width=4pt},hvlines]{1-2}{}

  • El bloque tiene una fila y dos columnas ( 1-2).
  • Con tikz=clip, el rectángulo correspondiente al bloque se utiliza para recortar otras construcciones.
  • Con tikz={draw,line width=4pt}, se dibuja un marco con un espesor igual a 4 pt. Sin embargo, con el recorte solo aparecerá la parte interior de ese marco (con un grosor igual a 2 pt).
  • La clave hvlinesse utiliza para dibujar todas las reglas dentro del bloque (de hecho, solo una: la vertical central).

Salida del código anterior

Respuesta2

Aquí hay una solución con {NiceTabular}of nicematrix. Este entorno está construido {tabular}pero agrega nodos PGF/Tikz debajo de las celdas, filas y columnas. Es fácil usar estos nodos para dibujar con Tikz cualquier regla que desees.

\documentclass[border=10pt,11pt]{standalone}

\usepackage{setspace}
\usepackage{array,booktabs,multirow,makecell}

\usepackage{nicematrix}
\usepackage{tikz}


%%% Japanese support
\usepackage{xeCJK}
\usepackage{zxjatype}
\usepackage{fontspec}
\def\cjkfontscale{1.0}
\setmainfont{Kozuka Mincho Pr6N}
\setCJKmainfont[Scale=\cjkfontscale]{Kozuka Mincho Pr6N}
\setCJKsansfont[Scale=\cjkfontscale]{Kozuka Gothic Pr6N}
\setCJKmonofont[Scale=\cjkfontscale]{Kozuka Gothic Pr6N}
% \newCJKfontfamily\boldmincho{Hiragino Mincho ProN W6}

\begin{document}

\def\heavyrulewidth{2pt}
\def\strongvline{\vline width \heavyrulewidth}
\def\arraystretch{2.0}
\def\padcaption#1{\hspace{1.6em}#1\hspace{1.6em}}
\begin{NiceTabular}{|c|r|c|r|}
\hline
  \raisebox{-8pt}{\padcaption{件名}}
  & \multicolumn{1}{l}{\parbox[t][3em]{12em}{Subject}}
  & \multirow{2}{*}[-10.8pt]{\hspace{1em}{納品先}\hspace{1em}}
  & \multirow{2}{*}{\parbox[t][4em]{14em}{Address}} \\
  \hspace{-1.5em}\padcaption{納品日}
  & \Large 2020/1/1 \\
\CodeAfter
\begin{tikzpicture}
\draw (3-|1) -- (3-|5) ;
\draw [very thick] (2-|1) rectangle (3-|3) ;
\end{tikzpicture}
\end{NiceTabular}
\def\arraystretch{1.0}
\vspace{1em}

\end{document}

Salida del código anterior

información relacionada