如何使文本框居中并从每个框中绘制规则

如何使文本框居中并从每个框中绘制规则

我知道我的标题听起来非常令人困惑所以让我给你提供我的 MWE

\documentclass{article}


\usepackage{tikz}

\usepackage[most]{tcolorbox}

\newtcolorbox{frameGray}{enhanced, colframe=black,colback=gray!3.5, boxrule=0.2pt,arc=0pt,outer arc=0pt,frame hidden, after skip = 12pt}

\newcommand{\boxGray}[1]{\tikz[baseline=(X.base)]\node [draw=gray!25,fill=gray!0,ultra thin,rectangle,inner sep=4pt,align=left] (X) {#1};}

\definecolor{bturq}{rgb}{0.0, 0.87, 0.87}

\newcommand{\raisedrule}[2][0em]{\leaders\hbox{\rule[#1]{1pt}{#2}}\hfill}

\newcommand{\hs}{\hspace{-6pt}}



\begin{document}

\pagenumbering{gobble}

\begin{frameGray}

\hs\boxGray{name, name:} \textcolor{bturq!60}{\raisedrule[3pt]{0.5pt}} \parbox{0.4\textwidth}{\boxGray{name, name}} 

\vspace{10pt}

\hs\boxGray{place:} \textcolor{bturq!60}{\raisedrule[3pt]{0.5pt}} \parbox{0.4\textwidth}{\boxGray{place \\  place}}

\end{frameGray}

\end{document}

这将创建一些具有与其他文本框水平连接的规则的文本框。

我想要的是是左侧的文本框彼此居中,但仍然有一个规则出现在文本框结束的位置(就像现在一样,只是框不居中而是左对齐)。 似乎有点棘手。

草图

我有:

name, name ------------------- name, name

                               place 
place ------------------------ 
                               place

我想:

name, name ------------------- name, name

                               place 
  place ---------------------- 
                               place

这样左侧的文本就居中了,但是规则仍然从中显现出来。

答案1

感谢您编辑问题!

在此处输入图片描述

这就是你所追求的吗?

上述解决方案使用的tikzmark库、包tabularxmakecell

\documentclass{article}
\usepackage[most]{tcolorbox}
\usetikzlibrary{tikzmark}
\usepackage{makecell, tabularx}

\newtcolorbox{frameGray}{
    enhanced, 
    frame hidden,
    colback=gray!3.5, 
    arc=0pt,   
    after skip = 12pt}


\begin{document}
\pagenumbering{gobble}

\begin{frameGray}
    \begin{tabularx}{\linewidth}{c X l}
\tikzmarknode{a}{name, name:}
    &   &   \tikzmarknode{b}{name, name}   \\[10pt] 
\tikzmarknode{c}{place:}
    &   &   \tikzmarknode{d}{\makecell[l]{place\\ place}} 
    \end{tabularx}
    \begin{tikzpicture}[overlay,remember picture,
                        arr/.style = {color=cyan, semithick, shorten <=4pt, shorten >=4pt}
                        ]
\draw[arr]   (a) -- (b);
\draw[arr]   (c) -- (d);
    \end{tikzpicture}
\end{frameGray}

\end{document}

为了显示结果,您需要编译 MWE 三次。

相关内容