tuna / thuthesis

LaTeX Thesis Template for Tsinghua University
https://www.ctan.org/pkg/thuthesis
LaTeX Project Public License v1.3c
4.58k stars 1.08k forks source link

英文版目录中chapter级标题无链接,chapter中化学式被一起大写 #829

Closed y-lee95 closed 1 year ago

y-lee95 commented 1 year ago

编译环境

编译的系统:Windows 10 / Overleaf TeX 发行版:TeX Live 2022 模板版本:v7.3.1 模板类型:doctor

描述问题

  1. 英文版目录所有chapter一级,包括abstract等标题都没有链接(后面的页码有链接)。section及以下级别的标题在上面的编译环境有链接,但在清华的overleaf编译也没有链接。
  2. 英文版目录及页眉中chapter名称的所有字母均大写,但有些理工科会出现化学式等不能大写的情况,能否改成maketextuppercase之类的?

截图: image

复现上述问题的代码:

\documentclass[degree=doctor, language=english]{thuthesis}
\input{thusetup}
\begin{document}
\maketitle
\frontmatter
\input{data/abstract}
\tableofcontents
zepinglee commented 1 year ago
  1. 英文版目录所有chapter一级,包括abstract等标题都没有链接(后面的页码有链接)。section及以下级别的标题在上面的编译环境有链接,但在清华的overleaf编译也没有链接。

我无法复现你的问题,建议将编译生成的 .log 文件发上来方便分析。

  1. 英文版目录及页眉中chapter名称的所有字母均大写,但有些理工科会出现化学式等不能大写的情况,能否改成maketextuppercase之类的?

你的化学式是怎么写的,使用了其他什么宏包?建议给出示例代码。

目前使用的是 \MakeUppercase

https://github.com/tuna/thuthesis/blob/9f934e108005bb2b119683abc017d5d153340965/thuthesis.dtx#L3819-L3820

textcase 宏包的 \MakeTextUppercase 已经被标为过时(详见其文档)。

This package is obsolete with the June 2022 LATEX release. With new formats \MakeUppercase supports the extensions provided here, with improved support for UTF-8 input. So now the package just defines \MakeTextUppercase and \MakeTextLowercase as aliases for the standard \MakeUppercase and \MakeLowercase.

y-lee95 commented 1 year ago

关于目录编译的.log文件见附件。 关于化学式我之前没有用其它宏包,之前没有找到能将制定文字小写的方法,是直接用数学环境写的,比如\chapter{Gate-controllable magnetoresistance in MnBi$_2$Te$_4$}。 不过昨天发现这样可以work,\chapter{Gate-controllable magnetoresistance in \texorpdfstring{$\text{MnBi}_2\text{Te}_4$}{}}。 不知道有没有更好的办法,或者直接从底层代码实现 output_overleaf_texlive2022.log

zepinglee commented 1 year ago

https://www.overleaf.com/latex/templates/thuthesis-tsinghua-university-thesis-latex-template/cfwgcxtvkbsx 可以复现这个问题,似乎是 TeX Live 某个特定版本的问题。建议将全部宏包更新再试试。

化学式可以用 mhchem 宏包。

y-lee95 commented 1 year ago

目录的问题因为我目前没有windows环境暂时无法尝试。overleaf上似乎总会出现这个问题(中文版总是不会出现),如果使用2022以前的tex live环境则无法编译。 mhchem宏包已经尝试过了但不能解决。\MakeUppercase太强大了,它仍会将其中所有的字母大写。目前我只发现数学环境中的字母大小写会被保护起来。

zepinglee commented 1 year ago

如果使用2022以前的tex live环境则无法编译。

thuthesis 应该是向后兼容到 2017 的。我在 overleaf 上试了一下 2021,可以编译成功,但是目录中的章标题依然没有链接。我怀疑是 overleaf 的显示问题。

mhchem宏包已经尝试过了但不能解决。\MakeUppercase太强大了,它仍会将其中所有的字母大写。目前我只发现数学环境中的字母大小写会被保护起来。

如果使用 latex 2022-06 之后的版本,可以用 \NoCaseChange 保护起来:\NoCaseChange{\ce{MnBi2Te4}}。之前的版本可以自行修改为 textcase\MakeTextUppercase

y-lee95 commented 1 year ago

我怀疑是 overleaf 的显示问题。

我安装Windows环境后编译一下最终版吧,谢谢!

如果使用 latex 2022-06 之后的版本,可以用 \NoCaseChange 保护起来:\NoCaseChange{\ce{MnBi2Te4}}

感谢!考虑到bookmarks里不能有\ce或者$$,我最终采用了\texorpdfstring{\NoCaseChange{\ce{MnBi2Te4}}}{MnBi2Te4}