最近,我问了一个关于使用特定字体排版文档的问题Amstext (chemmacros) 导致在 chemfig 中选择数学字体时出现问题和LaTeX 核心更新后,Typeface 返回致命的编码错误)。在讨论和回答这些问题时,有人提议从使用 PDFLaTeX 编译切换到使用 XeLaTeX。这在字体方面确实效果很好,但它带来了另一个问题:使用 XeLaTeX 时非拉丁字符不会被打印,但使用 PDFLaTeX 编译时可以完美打印。
在提供的 MWE 中,您可以看到一些带有土耳其或塞尔维亚姓氏的条目。这些名字在文本引用和使用 XeLaTeX 编译的参考书目中均未正确打印。如前所述,PDFLaTeX 编译正确。
\documentclass[a4paper,11pt]{article}
\usepackage[dutch]{babel}
%----- lettertypen -----
\let\MakeUppercasesaved\MakeUppercase
\def\MakeUppercase#1{\expanded{\uppercase{#1}}}
\usepackage[
typeface=gfsartemisia:euler,
sanstypeface=tgheros:scale:0.92,
mathtypeface=mathdesign:charter,
textcomp=dontload,
inputencoding=dontload,
]{typeface}
\let\MakeUppercase\MakeUppercasesaved
%----- opmaak pakketten -----
\usepackage{xcolor}
\usepackage[hidelinks]{hyperref}
%----- layout pakketten -----
\usepackage[body={17.0cm,26cm},top=2.0cm,left=2.0cm]{geometry}
\usepackage{lipsum}
\definecolor{color1}{RGB}{0,0,139} % Color of the article title and sections (navy blue)
\definecolor{color2}{RGB}{255,255,120} % Color of the boxes behind the abstract and headings (dark yellow)
\definecolor{color3}{RGB}{180,0,0} % Color of the headings of the parts (redbrown)
\definecolor{color4}{RGB}{0,139,0} % Color of chemical notations (dark green)
\definecolor{color5}{RGB}{139,0,139} %Color of captions (dark purple)
\setlength{\parindent}{0pt}
\hypersetup{hidelinks,colorlinks,breaklinks=true,urlcolor=color4,citecolor=color1,linkcolor=color1,bookmarksopen=false,pdfdisplaydoctitle=true}
%===== Referenties =====
%----- bibliografie -----
\usepackage[style=apa,sortcites=true,autopunct=true,casechanger=auto,backend=biber]{biblatex}
\usepackage{csquotes}
%----- Bronvermelding -----
\addbibresource{files/\jobname.bib}
\urlstyle{rm}
\begin{filecontents}[overwrite]{files/\jobname.bib}
@article{zeybek2020,
title = {Analysis of pre-service teachers' learning styles according to {{V}}ermunt learning style model},
author = {Zeybek, Gülçin and Şentürk, Cihad},
date = {2020},
journaltitle = {International Online Journal of Education and Teaching},
volume = {7},
number = {2},
pages = {669--682},
url = {https://iojet.org/index.php/IOJET/article/view/766},
urldate = {2022-11-14},
}
@article{vermunt2004,
title = {Patterns in Student Learning: {{Relationships}} between Learning Strategies, Conceptions of Learning, and Learning Orientations},
shorttitle = {Patterns in Student Learning},
author = {Vermunt, Jan D. and Vermetten, Yvonne J.},
date = {2004},
journaltitle = {Educational Psychology Review},
volume = {16},
number = {4},
pages = {359--384},
doi = {10.1007/s10648-004-0005-y},
}
@incollection{vanwaes2010,
title = {Fostering {{Students}}' {{Learning}} with {{Study Guides}}: {{The Relationship}} with {{Students}}’ {{Perception}} and {{Learning Patterns}}},
booktitle = {Facilitating Effective Student Learning through Teacher Research and Innovation},
author = {Van Waes, Sara and Vanthournout, Gert and Gijbles, David and Donche, Vincent},
editor = {Valenčič Zuljan, Milena and Vogrinc, Janez},
date = {2010},
pages = {49--76},
publisher = {{Faculty of Education, University of Ljubljana, Slovenia}},
location = {{Ljubljana, Slovenia}},
isbn = {978-961-253-051-8},
langid = {english}
}
\end{filecontents}
%===== =====
\begin{document}
\pagenumbering{arabic}
\lipsum[1][1-2] \parencite{zeybek2020}
\textcite[pg. 670]{zeybek2020} \lipsum[3][4]
\citeauthor{vermunt2004, zeybek2020} refer to \parencite{vanwaes2010} \lipsum[2][6] \citetitle[from][pg. 67]{vanwaes2010}
\nocite{*}
\printbibliography[title=References]
\end{document}
该代码包含 Typeface 问题的解决方案和数学字体太多了......上述问题中提出的问题。
比较两个例子中的第一个和最后一个引用。这个问题类似于使用 biber 和 xelatex 编译时仅缺少一个特定字符,但那里给出的答案在这里不起作用。
笔记(摘自下面的评论):在两个引擎中,typeface
用 just 替换字体选择都能\usepackage{gfsartemisia-euler}
正确编译。但是当mathdesign
字体包也加载时,编译错误又会出现。
答案1
对我的问题的评论让我进行了一些反复试验,并在社区中寻找选项和解决方案。目前,我正在从使用 PDFLaTeX 作为编译器迁移到 XeLaTeX。我还广泛使用chemmacros
及其相关软件包以及chemfig
创建化学考试、附加文本等,以教育我的学生化学的抽象艺术。在那里,我遇到了一些学生阅读化学式的困难,尤其是当面对分子结构式(给出其元素组成)和该化合物的伴随结构式时。这让我发现使用一组字体可以减少这些阅读困难。
在 PDFLaTeX 中,我可以将typeface
包与 David Carlisle 提供的补丁一起使用。上面的 MWE 显示了如何使用它来管理臭名昭著的数学字体太多了……问题。
在切换到现代编译器 XeLaTeX 时,需要另一种方法。Ulrike Fisher 向我指出了此解决方案:
%----- lettertypen -----
\usepackage[charter]{mathdesign}
\usepackage[sans-style=upright]{unicode-math} % automatically loads fontspec package
\defaultfontfeatures{Scale = MatchLowercase}
\setmainfont{GFS Artemisia}[Scale=1.05]
\setsansfont{FiraSans}[
Extension = .otf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
BoldFont = *-Medium,
BoldItalicFont = *-MediumItalic]
替换typeface
上述 MWE 中的部分解决了字符消失的问题。(我想我fontspec
一开始使用选项时错了。)
关于化学TeX Gyre Heros
:直的小写 l 很难与大写 I 区分开来。Fira Sans
小写 l 略微弯曲,尽管Fira Sans
使用了更紧凑的大写字母,但阅读像 AlI3 这样的化合物仍然更具可读性。