확실해이 글꼴합자를 지원하지만 표시할 수는 없습니다.
비교를 위한 Roboto의 예:
\documentclass[
11pt,
a4paper
]{scrartcl}
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\begin{document}
\setmainfont[
ExternalLocation,
Extension=.ttf,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
Ligatures=Common
]{Roboto}
roboto fight flight has ligatures
\setmainfont[
ExternalLocation,
Extension=.otf,
Ligatures=Common
]{Mercury-TextG4Roman}
mercury fight flight no ligatures
\end{document}
HF&J 사이트 목록의 합자 목록은 다음과 같습니다 fi
.
그리고 Windows의 charmap은 해당 글꼴로 해당 문자를 표시합니다.
업데이트:
출력 otfinfo
:
업데이트 2:
LuaLatex로 변경되고 기능 파일이 추가되었습니다.
\documentclass[
11pt,
a4paper
]{scrartcl}
\usepackage{filecontents}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={Common,Rare,Historic}}
\begin{filecontents*}{mercury.fea}
languagesystem DFLT dflt;
languagesystem latn dflt;
# Ligatures
feature liga {
sub \f \i by \fi;
sub \f \l by \fl;
} liga;
\end{filecontents*}
\begin{document}
\setmainfont[
ExternalLocation,
Extension=.ttf,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
Ligatures=Common
]{Roboto}
roboto fight flight has ligatures
\setmainfont[
FeatureFile=mercury.fea,
ExternalLocation,
Extension=.otf,
Ligatures=Common
]{Mercury-TextG4Roman}
mercury fight flight no ligatures
\end{document}
그리고 합자는 다음을 보여줍니다:
답변1
@cfr의 친절한 도움으로 다음을 확립했습니다.
글꼴에는 합자 문자가 포함되어 있습니다.
fontspec
AAT 합자 정보가 있더라도 이를 활용할 수 없습니다.글꼴에는 자동 합자 지원에 필요한 OpenType 기능 데이터가 생략되어 있습니다.
그럼 당신은 무엇을 할 수 있나요? 누락된 매핑 데이터를 글꼴에 추가하거나 외부 OpenType 기능 파일(LuaTeX에서만 지원)을 만들고 이를 사용하도록 Fontspec에 지시할 수 있습니다. 둘 다 어렵지 않습니다.
FontForge를 사용하여 Opentype liga
테이블 추가
메모:먼저 글꼴에 대한 라이센스 조건 등을 참조하십시오.
- Fontforge에서 글꼴 파일을 엽니다.
Element->Font Info
메뉴에서 대화 상자를 엽니다 . 나열된 항목은 다양한 OpenType "기능"에 해당합니다. 원하는 항목은 목록에서 "표준 합자"로 명명되고liga
사양 및 출력의 기능 으로 지정otfinfo
되며 이미 글꼴에서 누락되었음을 알고 있으므로 다음을 만들어야 합니다. 먼저 테이블을 만든 다음 누락된 데이터로 테이블을 채웁니다.- "조회 추가" 버튼을 누르고 유형을 "표준 합자"로 선택하세요.
- 실제 매핑 테이블을 생성하려면 "하위 테이블 추가" 버튼을 누르세요. 새 하위 표 항목을 두 번 클릭하여 편집기 보기를 엽니다.
- 이제 문자 시퀀스와 합자 문자 사이의 매핑을 설정하는 편집 대화상자가 표시됩니다. FontForge가 글꼴에서 지원하는 합자를 추론하고 자동으로 항목을 생성하도록 하려면 "채우기" 버튼을 사용하세요. 글꼴에 따라 항목을 수동으로 편집/추가해야 할 수도 있습니다. 왼쪽 열에는 합자의 문자 모양 이름이 포함되고 오른쪽 열에는 공백으로 구분된 개별 문자가 포함됩니다.
- 완료되면
Ok
두 번 눌러 기본 창으로 다시 돌아갑니다. - 업데이트된 글꼴 파일을 로 저장하고
File->Generate Fonts
, dropbox 유형이 로 설정되어 있는지 확인하세요OpenType(CFF)
. 생성된 글꼴은 원본과 동일한 내부 글꼴 이름을 가지고 있으므로(변경하기 쉬움) 이전 버전을 로드하지 않으려면 원본을 덮어쓰거나(백업을 기억하세요) 글꼴 파일의 경로를 지정해야 합니다. 로 로드할 때 명시적으로fontspec
. - 이제 끝났습니다.
liga
OpenType 기능 파일을 사용하여 OpenType 테이블 추가 (LuaTeX에만 해당)
설명서 fontspec
에는부분기능 파일에 대한 링크 포함사양) 여기에는 합자 매핑을 정의하는 방법 등 원하는 내용을 정확하게 보여주는 예제가 포함되어 있습니다. 따라서 기능 파일을 생성한 다음 해당 파일을 로드하도록 FeatureFile
지시하는 옵션을 사용하기만 하면 됩니다.fontspec
파일:another_league.tex
\documentclass{article}
\usepackage{filecontents}
\usepackage{fontspec}
% Alternatively, place this in a `mercury.fea` file in the same directory
\begin{filecontents*}{mercury.fea}
languagesystem DFLT dflt;
languagesystem latn dflt;
# Ligatures
feature liga {
sub \f \i by \fi;
sub \f \l by \fl;
} liga;
\end{filecontents*}
\setmainfont[
FeatureFile=mercury.fea,
%Ligatures={Common} % on by default
]{Mercury-TextG4Roman}
\begin{document}
fi \symbol{"FB01}
fl \symbol{"FB02}
\end{document}
이 예에서는 합자 문자 모양이 유니코드 표준 위치에 존재하고 비교를 위해 문자 모양 번호별로 직접 포함한다고 가정합니다. YMMV.
편집하다:fontspec
옵션 에 문제가 있으면 오류로 끝나지 않으니 주의하세요 FeatureFile
. 경로를 잘못 입력하거나 파일에 구문 오류가 있거나 다른 엔진을 사용하면 LuaTeX
조용히 기능 파일이 무시됩니다.