我正在尝试用土耳其语撰写我的博士论文提案。我从背面复制了标题页。我面临的问题是,在创建标题、机构名称等时,\textsc{}
省略了一些土耳其字符的标点符号,例如字母“İ”被转换为“I”,这是不正确的。另一方面,字母Ğ
和Ü
打印正确。
以下是我想要的简短内容:
#+LATEX_HEADER: \usepackage[T1]{fontenc}
#+LATEX_HEADER: \usepackage[utf8]{inputenc}
#+LATEX_HEADER: \usepackage{charter} % this for font type
\begin{titlepage}
\textsc{\Large Fen Bilimleri Enstitüsü}\\[0.5cm] % Major heading such as course name
\textsc{\Large Bilgisayar Mühendisliği Anabilim Dalı}\\[0.5cm] % Major heading such as course name
\textsc{\Large Bilgisayar Mühendisliği Programı}\\[0.5cm] % Minor heading such as course title
\end{title-age}
以下是上述代码片段的输出。
如您所见,某些字符打印不正确。但如果我删除 \textsc{} 字母,输出就没问题了,但这次格式不是我想要的。
我尝试使用\'{I}
技巧,但没有成功。
我怎样才能正确打印出字母“İ”?
答案1
作为一种权宜之计,由于您的字母不在小型大写字母范围内,您可以尝试伪造小型大写字母;如下所示:
{\Large {\LARGE F}EN {\LARGE B}İLİMLERİ {\LARGE E}NSTİTÜSÜ}\\[0.5cm]
{\Large {\LARGE B}İLGİSAYAR {\LARGE M}ÜHENDİSLİĞİ {\LARGE A}NABİLİM {\LARGE D}ALI}\\[0.5cm]
{\Large {\LARGE B}İLGİSAYAR {\LARGE M}ÜHENDİSLİĞİ {\LARGE P}PROGRAMI}\\[0.5cm]
恐怕这不是很优雅,但如果您只需要在一个地方它,它可能会起作用。
答案2
在现代工具链中
要在 LuaLaTeX 或 XeLaTeX 中获得正确的土耳其语小写字母,您需要同时激活土耳其语和小写字母的 OpenType 功能。Libertinus 系列就是一个例子。
\documentclass{article}
\tracinglostchars=2
\usepackage[turkish]{babel}
\usepackage{fontspec}
\babelfont{rm}
[Ligatures=Common]{Libertinus Serif}
\babelfont{sf}
[Ligatures=Common]{Libertinus Sans}
\babelfont{tt}
{Libertinus Mono}
\pagestyle{empty} % Remove page numbers for this MWE
\begin{document}
\textsc{Türkiye}
\end{document}
我也写道2018 年的一些代码可以伪造小写字母,并支持土耳其语。您可以(花些功夫)调整它,使某些本身不支持土耳其语小写字母的字体(例如 XCharter)能够使用土耳其语小写字母。
Thia 利用 LaTeX 语言特定的大写字母,缩短大写字母并稍微延长它们。
您还可以尝试将点重音符号放置在无点 I 上方,但通常会放置错误。
在旧版工具链中
不幸的是,如果您需要使用 8 位旧字体,则支持土耳其语小写字母并不容易。要自动执行此操作,您需要专门为土耳其语小写字母编码的 8 位 Type-1 字体。
但是,您可以假装在\DeclareTextCompositeCommand
无点的 I 上方放置一个点。您需要为此定义一个新序列,因为 LaTeX 内核会尝试通过定义\.{\i}
为来帮助您i
。
\documentclass{article}
\tracinglostchars=2
\usepackage[T1]{fontenc}
\usepackage[turkish]{babel}
\usepackage{XCharter}
\DeclareTextCompositeCommand{\.}{T1}{i}{\accent"0A \i}
\pagestyle{empty}
\begin{document}
\textsc{Türk\.{i}ye}
\end{document}
答案3
我一直认为在土耳其语中使用无点 i 的决定是错误的,他们应该使用不同的字符,比如“j”或采用“i/ï”。
无论如何,对土耳其语小型大写字母的支持pdflatex
是一个大问题,因为需要一种特殊的土耳其语字体,在小写字母 i 的位置用点 i 代替。
您可以通过定义命令来解决这个问题\TRtextsc
:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[turkish]{babel}
\usepackage{XCharter}
%\usepackage{xparse} % uncomment if using LaTeX prior to 2020-10-01
%% see https://tex.stackexchange.com/a/204469/4427
\providecommand*\UndeclareTextComposite[3]{%
\expandafter\let\csname\expandafter\string\csname
#2\endcsname\string#1-#3\endcsname\relax}
\UndeclareTextComposite{\.}{T1}{i}
\ExplSyntaxOn
\NewDocumentCommand{\TRtextsc}{m}
{% replace every i with \.i
\tl_set:Nn \l_tmpa_tl { #1 }
\regex_replace_all:nnN { i } { \c{.}i } \l_tmpa_tl
\textsc{\l_tmpa_tl}
}
\ExplSyntaxOff
\begin{document}
{\Large
\TRtextsc{Fen Bilimleri Enstitüsü}
\TRtextsc{Bilgisayar Mühendisliği Anabilim Dalı}
\TRtextsc{Bilgisayar Mühendisliği Programı}
}
\end{document}
我建议XCharter
超过charter
,但这是你的选择。