使用西班牙语和 \sen 进行多语种翻译时出错

使用西班牙语和 \sen 进行多语种翻译时出错

我正在尝试从 切换pdflatexlualatex。当我使用polyglossia西班牙语时\sen,它效果不佳。尝试了几次,都没有成功。MWE:

\documentclass[12pt,letterpaper]{book}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%\makeatletter
%\appto\inlineextras@spanish{\renewcommand\sin{\qopname \relax m{sen}}}
%\appto\blockextras@spanish{\renewcommand\sin{\qopname \relax m{sen}}}
%\makeatother
%\DeclareMathOperator{\sen}{sen}
%\renewcommand{\sin}{\operatorname{sen}}
%\renewcommand{\sen}{\operatorname{sen}}
\begin{document}
\begin{align*}
\cos^2 + \sin^2x&=1\\
\cos^2 + \sen^2x&=1\\
\end{align*}
\end{document}

答案1

您想使用该spanishoperators选项,但也希望将其设置\sen为相同\sin

\documentclass[12pt,letterpaper]{book}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage[spanishoperators=all]{spanish}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

\makeatletter
\appto\inlineextras@spanish{\NewCommandCopy\sen\sin}
\appto\blockextras@spanish{\NewCommandCopy\sen\sin}
\makeatother

\begin{document}

\begin{align*}
\cos^2x + \sin^2x&=1\\
\cos^2x + \sen^2x&=1\\
\end{align*}

\end{document}

在此处输入图片描述

答案2

如果使用巴别塔代替多语是一个选项,以下代码应该会让您感兴趣。请注意,\sin\sen现在都以直立(又称“罗马”)字母输出“sen”。

% !TEX TS-program = lualatex
\documentclass[12pt,letterpaper]{book}

\usepackage{amsmath} % for '\DeclareMathOperator' macro
\usepackage{unicode-math} % optional

\usepackage[spanish]{babel}     % defines '\sen' macro
\let\sin\relax                  % undefine '\sin' first
\DeclareMathOperator{\sin}{sen} % redefine '\sin'

\begin{document}
$\sin x$, $\sen x$
\end{document}

相关内容