考虑:
\documentclass{article}
\begin{document}
$\displaystyle\lim_{n\to\infty}$
\end{document}
当 n 趋于无穷大时,这将创建典型的极限符号。但是,当我尝试输入“lím”(西班牙语中的写法)时,此代码不再起作用。
\documentclass{article}
\begin{document}
$\displaystyle\lím_{n\to\infty}$
\end{document}
我收到错误消息! Please use \mathaccent for accents in math mode.
。尽管尝试使用该命令,但它无法解决问题。
\documentclass{article}
\begin{document}
$\displaystyle\l\mathaccent{í}m_{n\to\infty}$
\end{document}
\documentclass{article}
\begin{document}
$\displaystyle\l\mathaccent{i}m_{n\to\infty}$
\end{document}
正确的做法是什么?
答案1
您可以加载babel
使用西班牙语选项。它将\lim
和其他数学运算符更改为西班牙语版本。
\documentclass{article}
\usepackage[spanish]{babel}
\begin{document}
$\displaystyle\lim_{n\to\infty}$
\end{document}
答案2
如果由于某种原因,你无法加载巴别塔使用该选项的包spanish
,您可以\lim
按如下方式重新声明宏。
\documentclass{article}
\usepackage{amsmath} % for \DeclareMathOperator* macro
\let\lim\relax % release ("undefine") "\lim" as a macro name
\DeclareMathOperator*{\lim}{l\acute\i m}
\begin{document}
$\displaystyle\lim_{n\to\infty}$
\end{document}
有关在数学和文本模式下创建重音字符的更多信息,请参见这个答案查询尝试\~
在数学模式下生成波浪符号.(无耻的自我引用警告!)
答案3
没有什么“神奇规则”能让你输入\lim
标准符号并\lím
获得重音。
该命令\lim
有自己的定义,最终会以直立中等字体生成“lim”,并根据当前的数学样式适当定位下标。如果您输入,\lím
则会得到与
\l ím
因为í
不能(在 中pdflatex
)成为控制序列名称的一部分(好吧,这不是全部事实,但对于这种情况来说已经足够了)。您收到的错误是因为 TeX 不喜欢\l
(在文本中获取 ł 的命令)在数学模式下。如果您有
\usepackage[T1]{fontenc}
你需要的是重新定义 \lim
来获得口音。但是,如果你用西班牙语写作,你应该这样做
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
就会出现可怕的口音。
为什么是“可怕的”?因为“lim”不是西班牙语的缩写,但在数学中源于拉丁语青柠. 其他符号也类似。
您会用“Hi”而不是“Fe”来表示化学中的铁元素吗?完全一样。科学界接受的符号与语言无关。
也就是说,您可以轻松地在两种可能性之间切换。
\documentclass{article}
\usepackage[T1]{fontenc} % necessary for Spanish
\usepackage[spanish]{babel}
\usepackage{amsmath} % necessary for math
%\unaccentedoperators
\begin{document}
$\lim$\par
$\limsup$\par
$\liminf$\par
$\max$\par
$\min$\par
$a\equiv b\pmod{n}$
\end{document}
如果你取消注释该\unaccentedoperators
行,你会得到
Unicode 引擎
当然,如果您使用 XeLaTeX 或 LuaLaTeX,则应该使用fontspec
并删除。\usepackage[T1]{fontenc}
为 8 位和 Unicode 引擎“工作”的序言是没有意义的,因为除了非常简单的文档之外,基本上不可能有一份文档在两种情况下都保持不变。
好吧,你可以考虑做类似的事情
\documentclass{article}
\usepackage{iftex}
\iftutex
\usepackage{fontspec}
\else
\usepackage[T1]{fontenc}
\fi
% other packages
%%% settings
\iftutex
% settings for XeLaTeX or LuaLaTeX
\else
% settings for pdflatex
\fi
\ifluatex
% settings for LuaLaTeX
\fi
\ifxetex
% settings for XeTeX
\fi
例如,XeLaTeX 的字体加载可能与 LuaLaTeX 不同(每个引擎都有特定的键)。但是,我的经验是,在大多数情况下这是无望的。
更重要的是看你是否可以做些什么来polyglossia
代替babel
。
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{amsmath} % necessary for math
\setmainlanguage[spanishoperators]{spanish}
\begin{document}
$\lim$\par
$\limsup$\par
$\liminf$\par
$\max$\par
$\min$\par
$a\equiv b\pmod{n}$
\end{document}
以下是文档的摘录,用于查看spanishoperator
可以接收哪些值。