我知道我的标题听起来非常令人困惑所以让我给你提供我的 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
库、包tabularx
和makecell
:
\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 三次。