我正在制作演示文稿,必须添加一些埃塞俄比亚文字的文本。对于文档,ethiop 包非常有用,但在 beamer 模式下,我收到错误:
/usr/share/texlive/texmf-dist/tex/latex/ucs/ucsencs.def:16: 未定义控制序列。\eth@altchar #1->\def \eth@res {\eth@doaltchar {#1}} l.16 ...2011/01/21 修复 fontencodings LGR、T3]
我认为 beamer 模式和 ethiop 包之间存在一些冲突。我该怎么办?
\documentclass{beamer}
\mode<presentation>
{ \usetheme{Warsaw}
\usecolortheme{default}
\usefonttheme{default}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{caption}[numbered]}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{ethiop}
\newcommand{\etp}{\selectlanguage{ethiop}}
\begin{document}
\begin{frame}
{\etp 'ana negu'sa wa-'antemu 'agbertya .tabbabt}
\end{frame}
\end{document}
哦,这是我第一次使用 LaTeX 进行演示。
答案1
该包ucs
及其utf8x
选项inputenc
经常会引起麻烦,所以一般来说我不建议使用它们。
utf8x
如果您将其更改为,您的文档就可以顺利编译utf8
。但是,我建议不要使用\selectlanguage
,而是使用 的其他功能babel
:
\documentclass{beamer}
\mode<presentation>
{ \usetheme{Warsaw}
\usecolortheme{default}
\usefonttheme{default}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{caption}[numbered]}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{ethiop}
\newcommand{\textetp}[1]{\foreignlanguage{ethiop}{#1}}
\newenvironment{etp}
{\begin{otherlanguage*}{ethiop}}
{\end{otherlanguage*}}
\begin{document}
\begin{frame}
\textetp{'ana negu'sa wa-'antemu 'agbertya .tabbabt}
\begin{etp}
'ana negu'sa wa-'antemu 'agbertya .tabbabt
\end{etp}
\end{frame}
\end{document}
两种方式本质上是等价的,但是更加清晰。
正如 Ulrike Fischer 在评论中所说,您也可以使用utf8x
,只要您将ucs
选项传递给班级:
\documentclass[ucs]{beamer}
否则包加载得太晚了。不过,我认为你不需要utf8x
。