我找不到使用 Babel 更改章节样式的方法(针对匈牙利语)。以下是示例:
\documentclass[a4paper]{report}
\usepackage[magyar]{babel}
\usepackage{titlesec}
\titleformat{\chapter}[hang]
{\normalfont}
{\LARGE\thechapter.}
{10pt}
{\LARGE\MakeUppercase}
[\normalfont]
\titlespacing{\chapter}{0pt}{0pt}{30pt}[0pt]
\begin{document}
\chapter{First chapter}
\end{document}
如果我注释掉该\usepackage[magyar]{babel}
行,一切都会按预期工作,但是,使用 babel 则不起作用。使用 babel 时是否可以设置章节(和部分等)的样式?
答案1
模块magyar
做babel
了很多事情\AtBeginDocument
;除此之外(如埃格尔\chapter
在他的评论中注意到),它恢复了after的含义\begin{document}
,但没有提供任何方法来覆盖这个选择。一种可能的解决方法是将\titleformat
和\titlespacing
命令移到之后\begin{document}
:
\documentclass[a4paper]{report}
\usepackage[magyar]{babel}
\usepackage{titlesec}
\begin{document}
\titleformat{\chapter}[hang]
{\normalfont}
{\LARGE\thechapter.}
{10pt}
{\LARGE\MakeUppercase}
[\normalfont]
\titlespacing{\chapter}{0pt}{0pt}{30pt}[0pt]
\chapter{First chapter}
\end{document}
答案2
其实我已经找到了在包或类中解决这个问题的方法。使用\titleformat
in\AtBeginDocument
是没用的,但是etoolbox
有\AfterEndPreamble{}
一个在 的最后运行的宏\begin{document}
。把\titleformat
它放进去就可以titlesec
了。