当注释包含变音字符时,注释包会出现问题

当注释包含变音字符时,注释包会出现问题

我经常使用注释包来包含各种注释,以便可以创建省略各种临时注释的输出

然而,最近我发现当注释包含变音符号时,我会遇到问题。(我以前安装的 MikTeX 时没有遇到这些问题。)

\documentclass{article}
\usepackage[cp1250]{inputenc}
\usepackage[slovak]{babel}
\usepackage{comment}

\includecomment{mine}

\begin{document}

Normálny text.
Deliteľnosť.

\begin{mine}
Komentár.
\end{mine}

\end{document}

此文件无法编译。(如果相关的话,我使用 pdflatex。)日志文件中的第一个错误是:

 ! Undefined control sequence.
l.1 Koment\unhbox \voidb
                        @x \bgroup \let \unhbox \voidb@x \setbox \@tempboxa ...

我改为之后KomentárKoment\'ar一切都正常。

如果我将其添加\usepackage[T1]{fontenc}到序言中,文件就可以正常编译。(但输出看起来有点不同。这似乎是一个完全不相关的问题,似乎与根据字体的选择有关这个问题的答案

对我来说,这有点奇怪,如果我不使用注释(或者我使用\excludecomment{mine}),那么即使没有 fontenc 包,一切都可以正常工作。

答案1

comment包在辅助文件中写出环境的内容mine,但是 的扩展á(由 定义)cp1250很脆弱,无法在写出后保留下来。

使用选项 T1时情况会发生变化fontenc,因为在这种情况下字符会以自身形式写出。但是,T1 编码与 cp1250 不同,因此不能保证所有字符都能正常运行。例如,ř不会。

简而言之,comment与七位 ASCII 范围之外的字符不兼容。并非一切都丢失了:该包是在\unexpanded不可用时编写的。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[cp1250]{inputenc}
\usepackage[slovak]{babel}
\usepackage{comment}

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

\includecomment{mine}

\begin{document}

Normálny text.
Deliteľnosť.

\begin{mine}
Komentár. ř
\end{mine}

\end{document}

在此处输入图片描述

相关内容