问题如何在 LaTeX 中制作真正的撇号或单引号也是我的问题,但答案指向一个upquote
影响整个文档的包。我只需要在文档中显示几次撇号 (U+0027)。否则,我希望进行一般转换为引号。
\documentclass{article}
\usepackage{fontspec, xunicode, xltxtra}
\defaultfontfeatures{Mapping = tex-text}
\begin{document}
\noindent I would like an apostrophe to appear in the word ap'ple (U+0027), but a right quotation mark (U+2019) when I quote the word `orange'.
\end{document}
答案1
解决方案 1:引用标记
一个简单的方法是不是使用Mapping=text-tex
(顺便说一下,它已被选项替换Ligatures=TeX
)并使用该csquotes
包来管理您的引用。以下是示例:
% !TEX TS-program = XeLaTeX
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{csquotes}
\MakeOuterQuote{"}
\begin{document}
\noindent I would like an apostrophe to appear in the word ap'ple (U+0027), but a
right proper quotations marks (U+2019) when I quote a word with double quotes:
\enquote{orange} or single quotes: \enquote*{orange} or double quotes using the
"Active Quotes" function of the package.
\end{document}
解决方案 2:定义撇号字体和标记
另一种方法是加载字体两次,一次使用,Ligatures=TeX
另一次不使用,然后定义撇号的标记。
% !TEX TS-program = XeLaTeX
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\newfontfamily\quotefont{Linux Libertine O}
\newcommand{\apostrophe}{{\quotefont'}} % or just use {\quotefont text}
\begin{document}
\noindent I would like an apostrophe to appear in the word ap\apostrophe ple
(U+0027), or {\quotefont ap'ple} but a right proper quotations marks (U+2019) when I
quote a word with double quotes: ``orange'' or single quotes: `orange'.
\end{document}
在这个解决方案中,撇号的标记实际上并不是必要的,因为任何与之分组的文本{\quotefont ... }
都会使用输入的单引号。
答案2
另一种方法(我是从阅读中得到这个想法的2 字体命令在 XeTeX 参考 ( texdoc xetexref
) 中):
\documentclass{article}
\usepackage{fontspec}
\usepackage{libertine}
\newcommand{\apostrophe}{\XeTeXglyph\XeTeXcharglyph"0027\relax}
\begin{document}
\noindent I would like an apostrophe to appear in the word ap\apostrophe ple
(U+0027) but a right proper quotations marks (U+2019) when I
quote a word with double quotes: ``orange'' or single quotes: `orange'.
\end{document}
结果如下(使用其他字体测试也正常):