答案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}