双语幻灯片:投影仪、注释包和非 ASCII 字符(变音符号、变音字符)

双语幻灯片:投影仪、注释包和非 ASCII 字符(变音符号、变音字符)

我想生成与目标受众的主要语言相匹配的投影仪幻灯片。最简单的方法似乎是简化comment包装并将单个幻灯片打包到includecomment/excludecomment环境中...(如上一个问题)。

但是,当涉及非 ASCII 字符时,这种情况会根据所使用的位置和字符(甚至文档类)以各种方式中断,例如:

  • ./comment.cut:2: Package inputenc Error: Keyboard character used is undefined
  • ./comment.cut:1: Argument of \UTFviii@three@octets has an extra }.
  • ./comment.cut:3: Package inputenc Error: Unicode char \Uffffffffifnum (U+2E7) not set up for use with LaTeX.

我如何使以下 MWE 工作以及潜在的问题是什么?

\documentclass{beamer}

\newcommand{\lvlang}{DE}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{comment}
\usepackage{ifthen}
\newcommand{\iflvlangde}[2]{%
  \ifthenelse{\equal{\lvlang}{DE}}{#1}{#2}%
}

\makeatletter
\iflvlangde{
  \usepackage[main=ngerman]{babel}
  \includecomment{DE}
  \excludecomment{EN}
}{
  \usepackage[main=english]{babel}
  \includecomment{EN}
  \excludecomment{DE}
}
\makeatother

\begin{document}
\begin{DE}
\begin{frame}[fragile]{mäh}
  föö
\end{frame}
\end{DE}

\end{document}

答案1

正如我在写这个问题时发现的那样,问题在于comment包上,或者更具体地说,它将扩展的字符写入中间文件。请参阅原始答案更多细节。

解决方案是在加载后添加以下内容来修补和comment命令:WriteCommentLineThisCommentcomment

\long\def\WriteCommentLine#1{\immediate\write\CommentStream{\unexpanded{#1}}}
\let\ThisComment\WriteCommentLine

谢谢埃格尔

相关内容