当我使用瑞典语 babel 包时,目录偶数边上的标题写着“INNEHåLL”(请注意小写的 å,应该是 Å)。如果我使用英语版本,它会正确地显示 CONTENTS。这是一个错误吗?
我没有这个的最小示例,因为它至少需要一页的章节内容,但这里有一个屏幕截图:
编辑:如果我使用 book 类,我可能会得到一个空白页,并且出现此行为。我设法删除了我正在使用的所有软件包,看来问题是由 fontspec 软件包引起的:
\usepackage{fontspec,xltxtra,xunicode}
编辑2:我现在改用 polyglossia。这是我当前的序言。注释的软件包可能是给我带来麻烦的软件包:
%!TEX TS-program = XeLaTeX
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt]{book}
\usepackage{geometry}
\geometry{a4paper}
%\usepackage{polyglossia}
\usepackage{fancyhdr}
\usepackage{enumerate}
\usepackage{amssymb}
\usepackage{unicode-math}
\usepackage{array}
\usepackage{rotating}
\usepackage{hyperref}
%\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont{PT Sans}
\setmonofont[AutoFakeBold=1.4, AutoFakeSlant=0.2]{Inconsolata}
\usepackage[parfill]{parskip}
\usepackage{graphicx}
\DeclareGraphicsExtensions{.pdf,.png,.jpg}
\graphicspath{{ill/}}
\usepackage{listingsutf8}
编辑3我目前的解决方案如下(还不能自我回答):
1)babel
改为polyglossia
。
2) 删除了fontspec
(包括polyglossia
)和amssymb
(与 不兼容polyglossia
)。
3)改为listingsutf8
现在listings
使用unicode-math
答案1
检查是否在某处使用\uppercase
并将其替换为\MakeUppercase
。这是的常见弱点\uppercase
,它不会在其参数中显示对宏的影响。比较:
\documentclass{report}
\usepackage[swedish]{babel}
\begin{document}
\uppercase{Inneh\aa ll}
\MakeUppercase{Inneh\aa ll}
\end{document}
这不是 babel 中的错误。它可能是代码中的弱点(如上所述)、包中的弱点或使用包作为标头的方式中的弱点。
例如,它可以按默认headings
页面样式按预期工作:
\documentclass{report}
\usepackage[swedish]{babel}
\pagestyle{headings}
\begin{document}
\tableofcontents
\chapter{Test}
\section{test}
...
% repeat chapters and sections many times to get a TOC longer than a page
\end{document}
如果您使用fancyhdr
以下fancy
页面样式,它也能正常工作:
\usepackage{fancyhdr}
\pagestyle{fancy}
答案2
你原来使用 babel 时遇到的问题可以这样解决:
\addto\captionsswedish{%
\def\contentsname{Innehåll}}
关于您当前的示例:
不要将 listingsut8 与 xelatex 一起使用。使用 listings
您真的需要 amssymb 吗?(它是 的来源
Command \Finv already defined
)。如果是,您必须在 之前加载它fontspec
(即polyglossia
在 加载之前fontspec
),但请注意,它的某些定义将被覆盖。
答案3
这是我解决问题的方法,结合了答案和评论的帮助:
1)babel
改为polyglossia
。
2) 删除font-spec
并移至amssymb
顶部(因为与 不兼容polyglossia
)。
答案4
不完全确定如何babel
修改内容,但尝试以下操作如何:
\renewcommand{\contentsname}{Inneh\aa ll}
您\chaptermark
应该使用\MakeUppercase
它来修改它并在标题中将其变为大写。