我想定义一个通过 更改节标题的新环境\titleformat
。显然我必须以#1
某种方式“转义” ,因此它不被视为 的(未声明的)参数local_format_env
,而是 的参数\titleformat
。我该怎么做?
(为了简化演示,由于示例中不存在限制,因此不能省略该[explicit]
选项。)titlesec
最小非工作示例:
\documentclass{scrbook}
\usepackage[german]{babel}
\usepackage[utf8]{inputenc}
\usepackage[explicit]{titlesec}
\newenvironment{local_format_env}{
\titleformat{\section}{\normalfont\scshape\Large}{}{0pt}{#1} % <-- needs excaping
}{
\titleformat{\section}{\normalfont\Large}{}{0pt}{#1} % <-- needs escaping
}
\begin{document}
\section{Global Format}
\begin{local_format_env}
\section{Local Format}
\end{local_format_env}
\end{document}
答案1
这是一个#1
用替换 的情况##1
。
\documentclass{scrbook}
\usepackage[german]{babel}
\usepackage[utf8]{inputenc}
\usepackage[explicit]{titlesec}
\newenvironment{local_format_env}{
\titleformat{\section}{\normalfont\scshape\Large}{}{0pt}{##1} % <-- needs excaping
}{
\titleformat{\section}{\normalfont\Large}{}{0pt}{##1} % <-- needs escaping
}
\begin{document}
\section{Global Format}
\begin{local_format_env}
\section{Local Format}
\end{local_format_env}
\end{document}