为什么 sectsty 与 babel 包一起使用时无法更改章节字体?

为什么 sectsty 与 babel 包一起使用时无法更改章节字体?

我正在使用 Latex 以匈牙利语撰写我的论文,因此我在序言中包括了以下内容:

\usepackage[magyar]{babel}

加载完成后,我得到匈牙利语的“章节”、“图形”等,并带有匹配的字体。

我想在章节、节和小节标题中使用无衬线字体。为了实现这一点,我使用了sectsty如下设置的包:

\usepackage{sectsty}
\chapterfont{\usefont{T1}{qhv}{b}{n}\selectfont\huge} 
\sectionfont{\usefont{T1}{qhv}{b}{n}\selectfont\LARGE}
\subsectionfont{\usefont{T1}{qhv}{b}{n}\selectfont\Large}

LaTeX 正确地设置了中的章节和小节TeX Gyre,但章节标题保持不变,而未编号的章节(\chapter*{...})则按预期发生了更改。

例子:

章节字体保持不变

尽管

见图。

我怀疑冲突是由引起的babel,它以某种方式重新定义了章节标题,sectsty但无法处理。

有人知道如何管理吗?我试过 titlesec,但它的行为方式相同。

谢谢你!

编辑:

我创建了一个包含每个相关包的简短文档来重现该问题:

\documentclass[a4paper]{report} 
\usepackage[magyar]{babel}
\usepackage[utf8]{inputenc}
\usepackage{t1enc}

\usepackage{blindtext}

\usepackage{sectsty}
\chapterfont{\usefont{T1}{qhv}{b}{n}\selectfont\huge} 
\sectionfont{\usefont{T1}{qhv}{b}{n}\selectfont\LARGE}
\subsectionfont{\usefont{T1}{qhv}{b}{n}\selectfont\Large}

\begin{document}

    \chapter{Example chapter} %% this one is not working correctly

    \blindtext

    \section{Example section}

    \blindtext

    \subsection{Example subsection}

    \blindtext

    \chapter*{Example unnumbered chapter}

    \blindtext

\end{document}

如果我注释掉babelsectsty虽然可以按预期工作,但显然会失去本地化。

答案1

magyar选项会主动更改 的代码以\@chapter反映类中的原始代码,并忽略 的设置sectsty。它对 不做任何操作\@schapter,这就是您在未编号的章节中看到无衬线字体的原因。

改用titlesec:

\documentclass[a4paper]{report} 

\usepackage[sf,bf]{titlesec}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\newcommand\magyarOptions{chapterhead=unchanged}
\usepackage[magyar]{babel}

\usepackage{blindtext}

\renewcommand{\sfdefault}{qhv}

\titleformat{\chapter}[display]
  {\sffamily\bfseries\huge}
  {\thechapter. \chaptername}
  {20pt}
  {}

\begin{document}

\chapter{Example chapter} %% this one is not working correctly

\blindtext

\section{Example section}

\blindtext

\subsection{Example subsection}

\blindtext

\chapter*{Example unnumbered chapter}

\blindtext

\end{document}

答案2

使用\def\magyarOptions{chapterhead=unchanged}\usepackage[magyar]{babel}

在此处输入图片描述

代码:

\documentclass[a4paper]{report}
\def\magyarOptions{chapterhead=unchanged}
\usepackage[magyar]{babel}
\usepackage[utf8]{inputenc}
\usepackage{t1enc}

\usepackage{blindtext}

\usepackage{sectsty}
\chapterfont{\usefont{T1}{qhv}{b}{n}\selectfont\huge} 
\sectionfont{\usefont{T1}{qhv}{b}{n}\selectfont\LARGE}
\subsectionfont{\usefont{T1}{qhv}{b}{n}\selectfont\Large}

\begin{document}
    \chapter{Example chapter} %% this one is not working correctly
    \blindtext
    \section{Example section}
    \blindtext
    \subsection{Example subsection}
    \blindtext
    \chapter*{Example unnumbered chapter}
    \blindtext
\end{document}

答案3

这是一个解决方案

\documentclass[a4paper]{report} 
\usepackage[utf8]{inputenc}
\usepackage{t1enc}
\usepackage[magyar]{babel}

\usepackage{blindtext}

\usepackage{sectsty}
\chapterfont{\usefont{T1}{qhv}{b}{n}\selectfont\huge} 
\sectionfont{\usefont{T1}{qhv}{b}{n}\selectfont\LARGE}
\subsectionfont{\usefont{T1}{qhv}{b}{n}\selectfont\Large}
\makeatletter
\let\mt@makechapterhead\@makechapterhead
\makeatother


\begin{document}
\makeatletter
\let\@makechapterhead\mt@makechapterhead
\makeatother
    \chapter{Example chapter} %% this one is not working correctly

    \blindtext

    \section{Example section}

    \blindtext

    \subsection{Example subsection}

    \blindtext

    \chapter*{Example unnumbered chapter}

    \blindtext

\end{document}

相关内容