如何使用 titlesec 和 runin 选项将节标题放置在 tikz 图形内

如何使用 titlesec 和 runin 选项将节标题放置在 tikz 图形内

我目前正在处理一个大型 tikz 图形,我想将一个部分标题放在一个框内,这会导致一个问题。这里有一个最小的例子:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=0cm,bmargin=0cm,lmargin=0cm,rmargin=0cm,headheight=0cm,headsep=0cm,footskip=0cm}
\usepackage{color}
\usepackage{titlesec}
\titleformat{\section}[runin]{\normalfont}{}{1em}{before}[after]
\usepackage{tikz}
\begin{document}
\thispagestyle{empty}
\section{testsection}
\begin{tikzpicture}[inner sep=1pt, scale=1]%
\node[inner sep=2pt, text width=94mm,draw] (0,0){\section{xxx in section yyy}};
\end{tikzpicture}%
\end{document}

结果如下: 结果输出

结果与我的预期不符。我原本期望章节标题放在框内,如下图所示: 在此处输入图片描述

如果我将 titlesec 包选项“runin”替换为“hang”,则节标题位于框内。但是,节标题周围有空格和框,我想删除它们,以便节标题可以在 tikz 环境中自由用作文本。

任何提示都值得感激。

答案1

如果我理解你想要什么:用 tikz 将节标题放在框内,你可以使用带有选项\titleformat的命令来执行此操作titlesecexplicit

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{lipsum}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=1cm,bmargin=1cm,lmargin=1cm,rmargin=1cm,headheight=0cm,headsep=0cm,footskip=0cm}
\usepackage{color}
\usepackage[explicit]{titlesec}
\usepackage{tikz}

\titleformat{\section}[runin]{\normalfont}{}{1em}{\tikz[baseline=-3pt]%
\node[inner sep=2pt,draw, text width=94mm]{before #1 after};}

\begin{document}
\thispagestyle{empty}
\section{test section}
\section{xxx in section yyy} \lipsum[1]
\end{document}

在此处输入图片描述

相关内容