非拉丁字符在 XeLaTex 中编译时消失,但在使用 Typeface 的 PDFLaTeX 中不会消失

非拉丁字符在 XeLaTex 中编译时消失,但在使用 Typeface 的 PDFLaTeX 中不会消失

最近,我问了一个关于使用特定字体排版文档的问题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 问题的解决方案和数学字体太多了......上述问题中提出的问题。

XeLaTeX 输出如下所示: 在此处输入图片描述

PDFLaTeX 输出结果为: 在此处输入图片描述

比较两个例子中的第一个和最后一个引用。这个问题类似于使用 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 这样的化合物仍然更具可读性。

相关内容