![非数学模式文本中的尖括号](https://linux22.com/image/247248/%E9%9D%9E%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E6%96%87%E6%9C%AC%E4%B8%AD%E7%9A%84%E5%B0%96%E6%8B%AC%E5%8F%B7.png)
有没有办法直接将尖括号输入文本而无需借助数学模式符号?
我想在语言学论文中正确标明正字法,并一直使用单个海鸠 ‹ › ,因为它们易于输入且显示正确。但我更喜欢使用尖括号,如 ⟨ ⟩ 。如果我直接输入这些 (U+27E8 和 U+27E9),它们无法正确显示 — 我更喜欢 Linux Libertine 字体系列 — 但$\langle$
$\rangle$
显示得很好。由于我的其余文档使用 UTF-8 和fontspec
,我不希望用数学命令弄乱正文。
有没有解决的办法?
答案1
fontspec
没有用于用不同字体的字符替换某些字符的界面,但幸运的是埃格尔提供了一个包裹这样做:
\documentclass{article}
\usepackage{fontspec}
\usepackage{newunicodechar}
\setmainfont{Linux Libertine O}
\newfontfamily\anglefont{Free Serif} % Change to whatever font you prefer that has ⟨⟩.
\newunicodechar{⟨}{{\anglefont ⟨}}
\newunicodechar{⟩}{{\anglefont ⟩}}
\begin{document}
This is Linux Libertine with ⟨ and ⟩ from {\anglefont Free Serif}.
\end{document}
答案2
您可以使用软件包提供的命令\textlangle
和。如果每次输入的字母太多,您可以为它们定义快捷方式,例如和。以下 MWE 也说明了这个想法\textrangle
textcomp
\la
\ra
% !TEX TS-program = xelatex
\documentclass{article}
\usepackage{fontspec}
% \setmainfont{Linux Libertine O} % select your main text font here
\usepackage{textcomp, % for \textlangle and \textrangle macros
xspace}
\newcommand\la{\textlangle\xspace} % set up short-form macros
\newcommand\ra{\textrangle\xspace}
\begin{document}
\noindent
\textlangle\ and \textrangle; \newline
\la and \ra. % abbreviated macros; note: no need to insert explicit whitespace after "\la"
\end{document}