绘制粗圆角水平线,自动填充空白区域

绘制粗圆角水平线,自动填充空白区域

为了说清楚,我想重复这一点:

以使线条自动填充中心单词左右两侧的空间(因为我需要将它用于多个标题)。

非常感谢!

答案1

你的问题不太清楚。我假设,这条线的宽度是\textwidth,所以它是这样的吗?

在此处输入图片描述

编辑:

  • 为了补偿,ident应该在文档中的图像代码之前添加命令\noindent

  • 在绘制该图像的命令定义中,它是图像代码的一部分,因此不再需要\noindent关心命令的定位。suit

\documentclass{article}
\usepackage{tikz}

\begin{document}
\noindent\tikz\draw[line width=1.2ex, shorten >=1.2ex, line cap=round, gray] 
        (0,0) -- node[fill=white] {Suites}  (\linewidth,0);
\end{document}

或这个:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}

\begin{document}
\noindent\tikz{\path (0,0) -- node[inner xsep=1em] (s) {Suites} ++ (\linewidth,0);
      \draw[line width=1.2ex, line cap=round, gray]  (0,0) -- (s);
      \draw[line width=1.2ex, shorten >=1.2ex, line cap=round, gray]  (s) -- (\linewidth,0);
      }
\end{document}

编辑: 如果您多次需要它,那么定义新命令会很方便:

\documentclass{article}
\usepackage{tikz}

\NewDocumentCommand\suit{m}{\par\noindent%
\tikz{\path (0,0) -- node[inner xsep=1em] (s) {#1} (\linewidth,0);
      \draw[line width=1.2ex, line cap=round, gray]  (0,0) -- (s);
      \draw[line width=1.2ex, shorten >=1.2ex, line cap=round, gray]  (s) -- (\linewidth,0);
      }}
\begin{document}
\suit{SUITE}
\end{document}

编译结果与之前相同。此命令也可以在框中使用。例如:

\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}

\NewDocumentCommand\suit{m}{\par\noindent%
\tikz{\path (0,0) -- node[inner xsep=1em] (s) {#1} (\linewidth,0);
      \draw[line width=1.2ex, line cap=round, gray]  (0,0) -- (s);
      \draw[line width=1.2ex, shorten >=1.2ex, line cap=round, gray]  (s) -- (\linewidth,0);
      }}
\begin{document}
\lipsum[11]\par
\hfil\fbox{%
  \parbox{0.8\textwidth}{
\suit{Start}
\lipsum[66]
\suit{The end}
    }}
\end{document}

给出:

在此处输入图片描述

答案2

Zarko 的答案比我的要优雅得多,但由于我已经在研究它,所以我在这里将它作为辅助解决方案提出。(我Overful \hbox too wide在运行 Zarko 的代码时也遇到了这个问题,可能是因为)。

\usepackage{tikz}
\usetikzlibrary{arrows.meta,positioning}
\newcommand{\splitheading}[1]{
\setbox0=\hbox{#1}
\noindent
\begin{tikzpicture}[
txt/.style={red,draw=none, fill=none},
line/.style={draw=none, fill=none,inner sep=0}]
\node(mid)[txt]{#1};
\node(first)[line,left = ((\textwidth-\the\wd0)/2)-6 of mid]{};
\node(second)[line,right = ((\textwidth-\the\wd0)/2)-6 of mid]{};
\path[Round Cap-Round Cap,red,line width=1ex](first)edge(mid)(mid)edge(second);
\end{tikzpicture}}

\splitheading{Suites}

这是比较的结果: 在此处输入图片描述

相关内容