我正在尝试使用letter-classic
以下版本的类:
\ProvidesClass{letter-classic}[2003/03/04 v1.1]
目标是在英文信件中混合使用德语和冰岛语的 UTF-8 字符。为了回答这个问题,我编写了一个最小文档来演示我的问题(存储为 UTF-8!):
\documentclass[12pt,a4paper]{letter-classic}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[icelandic,german,english]{babel}
\selectlanguage{english} %% main language of the letter
\begin{document}
\begin{letter}{Recipient}
\fromname{Max Mustermann}
\fromstreet{Musterstraße 123} %% using SZ ligature
\fromtown{12345 Musterstadt}
\fromtownshort{Musterstadt}
\opening{Dear Sir or Madam,}
%% body uses mixed Icelandic characters
\begin{itemize}
\item Icelandic characters
\begin{itemize}
\item þ Þ - thorn
\item æ Æ - AE ligature
\item ö Ö - o with dieresis
\item á Á - a with accent
\item í Í - i with accent
\item é É - e with accent
\item ú Ú - u with accent
\item ó Ó - o with accent
\item ý Ý - y with accent
\item ð Ð - eth
\end{itemize}
\item German characters not in the above list
\begin{itemize}
\item ä Ä - a with dieresis
\item ü Ü - u with dieresis
\item ß - SZ ligature
\end{itemize}
\end{itemize}
\end{letter}
\end{document}
特定语言的变音字符在信函正文中显示正常,但在信头中显示不正确。
注意:您可以letter-classic.cls
在下面找到我使用的版本粘贴我还发现档案这似乎与我的文档类版本相对应,尽管作者的网站显然不再在线。
我看过这个问题以及随附的答案以及本文。到目前为止,我提出的所有问题和答案都只涉及一种特定的语言或英语与任何其他语言的混合。问题在于,英语在其标准形式中几乎没有变音符号,因此将使用来自任何使用拉丁文字(无论是否变音)的单一语言的字符子集。
我想我可以通过声明命令来逃避:
\newcommand{\ISL}[1]{\foreignlanguage{icelandic}{#1}}
\newcommand{\DEU}[1]{\foreignlanguage{german}{#1}}
并将冰岛语单词(如 Þjóðskrá 和 Ríkisskattstjóri)分别包装为\ISL{Þjóðskrá}
\ISL{Ríkisskattstjóri};或者明显是德语单词,如 Musterstraße \DEU{Musterstraße}
。例如在\fromstreet{\DEU{Musterstraße 123}}
。
但是,这仍然不允许我在信函正文以外的任何地方使用某些变音符号。信头根本不接受大多数这些字符。
我的 LaTeX foo 并不是最强大的,但我喜欢的格式letter-classic
胜过letter
几个 LaTeX 发行版附带的类,并且更愿意坚持使用它。因此,我不会将使用类的建议视为答案,除非它提供了将其塑造成与已经提供的letter
形状类似的步骤。letter-classic.cls
但是,我在粘贴类文件时注意到,有三行声明了某些字体供以后使用:
\DeclareFixedFont{\bsf}{OT1}{cmss}{m}{n}{17.28}
\DeclareFixedFont{\nsf}{OT1}{cmss}{m}{n}{10}
\DeclareFixedFont{\ssf}{OT1}{cmss}{m}{n}{7}
我知道OT1
这是一种标准字体,提供最低限度的字形,让我可以在此基础上进行扩展。在这些情况下\usepackage[T1]{fontenc}
,用 替换是否足够?还是以后会以微妙的方式给我带来麻烦?OT1
T1
初步实验表明,它解决了眼前的问题。但我不喜欢只修补症状,因为根本原因可能仍然存在;这次最好隐藏起来。
另外:用 包装外来词是好的形式吗\foreignlanguage{}
?
答案1
只需更改三种固定字体的定义即可使用默认编码。
\documentclass[12pt,a4paper]{letter-classic}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[icelandic,ngerman,english]{babel}
\usepackage{lmodern}
%\selectlanguage{english} %% main language of the letter (not necessary)
\DeclareFixedFont{\bsf}{\encodingdefault}{\sfdefault}{m}{n}{17.28}
\DeclareFixedFont{\nsf}{\encodingdefault}{\sfdefault}{m}{n}{10}
\DeclareFixedFont{\ssf}{\encodingdefault}{\sfdefault}{m}{n}{7}
\begin{document}
\begin{letter}{Recipient}
\fromname{Max Ðusþermann}
\fromstreet{Musterstraße 123} %% using SZ ligature
\fromtown{12345 Musterstadt}
\fromtownshort{Musterstadt}
\opening{Dear Sir or Madam,}
%% body uses mixed Icelandic characters
\begin{itemize}
\item Icelandic characters
\begin{itemize}
\item þ Þ - thorn
\item æ Æ - AE ligature
\item ö Ö - o with dieresis
\item á Á - a with accent
\item í Í - i with accent
\item é É - e with accent
\item ú Ú - u with accent
\item ó Ó - o with accent
\item ý Ý - y with accent
\item ð Ð - eth
\end{itemize}
\item German characters not in the above list
\begin{itemize}
\item ä Ä - a with dieresis
\item ü Ü - u with dieresis
\item ß - SZ ligature
\end{itemize}
\end{itemize}
\end{letter}
\end{document}
我注释掉了\selectlanguage
不必要的(并且在那里是错误的)指令。我还添加了lmodern
以下内容以表明声明做了它们应该做的事情:请注意使用冰岛字符的更改后的姓氏。我还使用了ngerman
而不是german
,以符合德语的新正字法。
将外来词包装起来的想法\foreignlanguage
很好。
答案2
在 OT1 编码中,Computer Modern Sans Serif 似乎无法使用这些字形。该类为小、正常和大 cmss 字体定义了三个不同的开关,ssf
和nsf
,bsf
但所有开关都采用 OT1 编码。T1 编码(或 Cork 编码)是为处理西欧字母的字形而开发的。只需在文档中使用声明开关T1
即可解决问题,并且不会出现任何绊脚石。
\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[icelandic,german,english]{babel}
\DeclareFixedFont{\ssf}{OT1}{cmss}{m}{n}{7}
\begin{document}
\begin{minipage}{.45\textwidth}
Icelandic characters
\begin{itemize}
\ssf
\item þ Þ - thorn
\item æ Æ - AE ligature
\item ö Ö - o with dieresis
\item á Á - a with accent
\item í Í - i with accent
\item é É - e with accent
\item ú Ú - u with accent
\item ó Ó - o with accent
\item ý Ý - y with accent
\item ð Ð - eth
\end{itemize}
German characters not in the above list
\begin{itemize}
\ssf
\item ä Ä - a with dieresis
\item ü Ü - u with dieresis
\item ß - SZ ligature
\end{itemize}
\end{minipage}\hfill
\begin{minipage}{.45\textwidth}
\DeclareFixedFont{\ssf}{T1}{cmss}{m}{n}{7}
Icelandic characters
\begin{itemize}
\ssf
\item þ Þ - thorn
\item æ Æ - AE ligature
\item ö Ö - o with dieresis
\item á Á - a with accent
\item í Í - i with accent
\item é É - e with accent
\item ú Ú - u with accent
\item ó Ó - o with accent
\item ý Ý - y with accent
\item ð Ð - eth
\end{itemize}
German characters not in the above list
\begin{itemize}
\ssf
\item ä Ä - a with dieresis
\item ü Ü - u with dieresis
\item ß - SZ ligature
\end{itemize}
\end{minipage}
\end{document}
该类似乎是仿照 KOMA 脚本字母的早期版本建模的。当前版本scrlttr2
是一个功能非常丰富的文档类,具有许多更改外观的选项。