防止 LaTeX 将 < 变成 «

防止 LaTeX 将 < 变成 «

似乎默认情况下,我的 LaTeX 安装会<<变成“并且同样>>变成”。我该如何防止这种情况,以便保留两个小于/大于符号?

为了记录,我正在使用 xetex。

答案1

如果你想完全禁用连字<<>>,你可以使用microtype

\documentclass{article}
\usepackage[T1]{fontenc}
%\usepackage[T2A]{fontenc}

\usepackage{microtype}

\DisableLigatures[<,>]{encoding=*}

\begin{document}

<<>>

\end{document}

在此处输入图片描述

对于一次性案例,请输入<\/<

对于 XeLaTeX 来说,事情稍微复杂一些。

在您的系统上找到文件tex-text.map。将其复制到工作目录中noguillemets.map。打开它并注释掉(使用如下所示的分号)最后两行。

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "noguillemets" ; was TeX-text
RHSName "UNICODE"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
U+002D U+002D                   <>      U+2013  ; -- -> en dash
U+002D U+002D U+002D    <>      U+2014  ; --- -> em dash

U+0027                  <>      U+2019  ; ' -> right single quote
U+0027 U+0027   <>      U+201D  ; '' -> right double quote
U+0022                   >      U+201D  ; " -> right double quote

U+0060                  <>      U+2018  ; ` -> left single quote
U+0060 U+0060   <>      U+201C  ; `` -> left double quote

U+0021 U+0060   <>      U+00A1  ; !` -> inverted exclam
U+003F U+0060   <>      U+00BF  ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C   <>      U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
;U+003C U+003C  <>      U+00AB  ; << -> LEFT POINTING GUILLEMET
;U+003E U+003E  <>      U+00BB  ; >> -> RIGHT POINTING GUILLEMET

现在从 shell 运行

teckit_compile noguillemets

这将生成一个文件noguillemets.tec

现在按如下方式加载字体

\documentclass{article}

\usepackage{fontspec}
\setmainfont{Latin Modern Roman}[Mapping=noguillemets]

\begin{document}

<<>>

\end{document}

输出将与之前相同。

将其放置noguillemets.tec在 XeTeX 可以找到的地方;在 TeX Live 系统上,它应该是

/usr/local/texlive/texmf-local/fonts/misc/xetex/fontmapping/

(创建必要的目录)。运行mktexlsr

如果您使用普通的 XeTeX,请noguillemets在需要使用 的位置使用tex-text

答案2

您可以使用“远小于”和“远大于”。

示例用法

平均能量损失

\documentclass{article}
\usepackage{graphicx}
\newcommand\mapsfrom{\reflectbox{$\mapsto$}\ }
\usepackage{fontspec}
\setmainfont{Noto Serif}[Ligatures=TeX]
\usepackage{pst-uml}

\newcommand\acmd[1]{\textbackslash \texttt{#1}}

\begin{document}
xyz 

<<xyz>> \mapsfrom ligatures on

<\/<xyz>\/> \mapsfrom ligatures blocked


\umlStereoType{xyz} \mapsfrom uses \acmd{umlStereoType} command from \verb|pst-uml| package, defined as:

\begin{verbatim}
\newcommand{\umlStereoType}[1]{%
{\footnotesize\ensuremath{\ll}}\textsf{#1{\footnotesize\ensuremath{\gg}}%
}
\end{verbatim}

$\ll$xyz$\gg$ \mapsfrom uses mathmode \acmd{ll} and \acmd{gg} 

\end{document}

相关内容