![在 \titleformat 中使用 tikzpicture 时出现问题](https://linux22.com/image/280313/%E5%9C%A8%20%5Ctitleformat%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20tikzpicture%20%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98.png)
我正在尝试使用 自定义章节标题的样式tikz
。不幸的是,我不知道如何正确使用命令的tikz
(可选)参数。对于下面的最小示例,我的编译器似乎陷入了无限循环;参数一定是罪魁祸首,因为如果我删除它,我不会遇到任何麻烦。知道出了什么问题吗?⟨after⟩
\titleformat
⟨after⟩
\documentclass[12pt]{scrbook}
\usepackage{tikz}
\usepackage{titlesec}
\usepackage{titletoc}
\titleformat{\chapter}
[hang]
{\huge}
{}
{0em}
{}
[\large \begin{tikzpicture} \draw [ultra thick] (0,0) -- (0,1);\end{tikzpicture}]
% the previous line does not work when [ultra thick] is included
\begin{document}
\chapter{Introduction}
Some text
\end{document}
答案1
这里的问题在于可选参数的解析。LaTeX 读取\titleformat{\chapter} ... [
并找到一个括号:可选参数开始。根据定义,下一个右括号将关闭可选参数。因此参数(不包括周围的括号)将是\large \vbox{\begin{tikzpicture} \draw [ultra thick
,这显然不是我们所希望的。这里的技巧是]
通过将整个参数(或相关部分,即{tikzpicture}
)括在括号中来隐藏 LaTeX 中的:
\documentclass[12pt]{scrbook}
\usepackage{tikz}
\usepackage{titlesec}
\usepackage{titletoc}
\titleformat{\chapter}
[hang]
{\huge}
{}
{0em}
{}
[\large {\begin{tikzpicture} \draw [ultra thick] (0,0) -- (0,1);\end{tikzpicture}}]
\begin{document}
\chapter{Introduction}
Some text
\end{document}
工作正常 …