我正在尝试在 beamer 中制作目录,但似乎枚举的内置方形标签没有与项目垂直对齐。
如下图所示,方形标签比右侧项目的基线略低一些,尤其是多语言字体混合使用时。我想知道有什么方法可以让他们严格对齐。
MWE 如下,
\documentclass[10pt,aspectratio=43]{beamer}
\usepackage{xeCJK}
\setCJKsansfont{思源黑体}
\setbeamertemplate{sections/subsections in toc}[square]
\AtBeginSection[]
{
\begin{frame}<beamer>
\frametitle{\textbf{Contents}}
\textbf{\tableofcontents[currentsection]}
\end{frame}
}
\title{Hello World}
\author{Aha}
\date{\today}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\section*{Contents}
\begin{frame}
\frametitle{\textbf{Contents}}
\textbf{\tableofcontents}
\end{frame}
\section{Test Section Title 1}
\section{Test Section Title 2}
\section{Test Section Title 3}
\section{测试标题1}
\section{测试标题2}
\section{测试标题3}
\end{document}
示例中使用的 CJK 字体是 Adobe 创建的开源字体,可以通过以下方式下载https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/SourceHanSansSC.zip。
答案1
欢迎使用 TeX.SX!您可以使用这种方法(如果您希望它也适用于枚举,则可以应用它)并使用 Ti 自定义这些框钾Z。这样,方框应该与文本的基线对齐。(我将中文字体更改为我系统上已安装的字体,但应该不会产生太大差异。)
\documentclass[10pt,aspectratio=43]{beamer}
\usepackage{xeCJK}
\setCJKsansfont{Noto Sans CJK SC}
%\setbeamertemplate{sections/subsections in toc}[square]
\usepackage{tikz}
\setbeamertemplate{sections/subsections in toc}{%
\usebeamercolor[bg]{section number projected}%
\tikz[baseline=(X.base)]{\node[fill=bg,text=white,inner sep=3pt](X){\inserttocsectionnumber};} \inserttocsection%
}
\AtBeginSection[]
{
\begin{frame}<beamer>
\frametitle{\textbf{Contents}}
\textbf{\tableofcontents[currentsection]}
\end{frame}
}
\title{Hello World}
\author{Aha}
\date{\today}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\section*{Contents}
\begin{frame}
\frametitle{\textbf{Contents}}
\textbf{\tableofcontents}
\end{frame}
\section{Test Section Title 1}
\section{Test Section Title 2}
\section{Test Section Title 3}
\section{测试标题1}
\section{测试标题2}
\section{测试标题3}
\end{document}
请注意,中文字符比您使用的拉丁字体的大写字母大。因此,两种文字之间始终存在视觉高度差异。您可以尝试对两种文字只使用一种字体。思源黑体 SC 也应该涵盖拉丁字符,并且不同文字的字形在垂直对齐和大小方面可能对齐得更好。