
        *****************************************************
        *           GENERATED FILE, DO NOT EDIT             *
        * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        *****************************************************

This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.

In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.

=encoding UTF-8

=head1 名称

Locale::Po4a::TeX - 将 TeX 文档和衍生品从/转换为 PO 文件

=head1 描述

Po4a (PO For Anything) 项目的目标是在文档等不需要翻译的领域使用 gettext 工具简化翻译(更有趣的是，简化翻译的维护)。

Locale::Po4a::TeX 是一个帮助将 TeX 文档翻译成其他 [人类] 语言的模块。它还可以用作构建基于 TeX 文档的模块的基础。

用户可能应该使用 LaTeX 模块，它继承自 TeX 模块并包含常见 LaTeX 命令的定义。

=head1 使用 PO4A::TEX 进行翻译

此模块可直接用于处理通用 TeX 文档。这将把您的文档拆分成更小的块 (段落、逐字块，甚至更小的块，如标题或索引)。

有一些选项(将在下一节中介绍)可以自定义此行为。如果这不适合您的文档格式，我们鼓励您编写自己的派生模块，以描述您的格式的详细信息。有关流程描述，请参阅下面的 B<WRITING DERIVATIVE MODULES> 小节。

该模块还可以通过 TeX 文件中以 "% po4a:" 开头的行进行定制。此过程在 B<INLINE CUSTOMIZATION> 一节中介绍。

=head1 此模块接受的选项

以下是此模块的特定选项：

=over 4

=item B<debug>

激活此模块某些内部机制的调试。 使用源查看哪些部件可以调试。

=item B<no_wrap>

不应重新封装的环境的逗号分隔列表。

请注意，逐字和 no_wrap 环境之间存在差异。在逐字逐句的块中没有命令和注释分析。

如果此环境尚未注册，则 po4a 将考虑此环境不会接受任何参数。

=item B<exclude_include>

不应由 \input 和 \include 包含的文件的冒号分隔列表。

=item B<definitions>

包含 po4a 定义的文件的名称，如 B<INLINE CUSTOMIZATION> 部分中定义。 如果无法将定义放在要翻译的文档中，可以使用此选项。

=item B<verbatim>

应逐字处理的环境的逗号分隔列表。

如果此环境尚未注册，则 po4a 将考虑此环境不会接受任何参数。

=back

使用这些选项可以替代已定义命令的默认行为。

=head1 在线定制

TeX 模块可以使用以 B<% po4a:> 开头的行进行自定义。这些行被解释为解析器的命令。可以识别以下命令：

=over 4

=item B<% po4a: command> I<command1> B<alias> I<command2>

指示 I<command1> 命令的参数应作为 I<command2> 命令的参数处理。

=item B<% po4a: command> I<command1> I<parameters>

这详细描述了 I<command1> 命令的参数。此信息将用于检查参数的数量及其类型。

您可以在 I<command1> 之前加上

=over 4

=item 一个星号 (B<*>)

po4a 将从段落中提取此命令 (如果它位于段落的开头或结尾)。然后，翻译者必须翻译标记为可翻译的参数。

=item 一个加号 (B<+>)

对于星号，如果它出现在块的末端，命令将被提取，但参数不会单独转换。翻译器将不得不翻译连接到其所有参数的命令。这保留了更多的上下文，并且对于参数中包含较小单词的命令非常有用，这些命令可以有多种含义(和翻译)。

注意：在这种情况下，您不必指定哪些参数是可翻译的，但 po4a 必须知道参数的类型和数量。

=item 一个减号 (B<->)

在这种情况下，不会从任何块中提取命令。但是如果它单独出现在块上，那么只有标记为可翻译的参数才会显示给翻译器。这对于字体命令很有用。这些命令通常不应该与它们的段落分开(以保持上下文)，但是如果整个字符串都包含在这样的命令中，就没有理由用它们来烦扰翻译人员。

=back

参数是一组 [] (表示可选的。
参数) 或 {} (指示强制参数)。
您可以在这些方括号之间加一个下划线 (_) 来表示。
必须翻译该参数。例如：
 % po4a: command *chapter [_]{_}

这表明章节命令有两个参数：可选的。
(简称) 和强制性的，都必须翻译。
如果要指定 href 命令有两个必需参数，
您不想转换 URL (第一个参数)，并且您。
我不希望此命令与其段落 (允许。
翻译器移动句子中的链接)，您可以使用：
 % po4a: command -href {}{_}

在这种情况下，仅当段落仅由此 href 命令组成时，才使用指示必须翻译哪些参数的信息。

=item B<% po4a: environment> I<env> I<parameters>

这允许定义 I<env> 环境接受的参数。
此信息稍后将用于检查。
\begin 命令，并允许指定必须翻译哪一个。
I<Parameters> 参数的语法与。
其他命令。
\begin 命令的第一个参数是环境的名称。
不能在参数列表中指定此参数。以下是。
下面是一些示例：
 % po4a: 环境多层 {}
 % po4a: 环境方程

至于命令，i<env> 前面可以有一个加号 (+)，表示 \begin 命令必须使用其所有参数进行转换。

=item B<% po4a: separator> I<env> B<">I<regex>B<">

指示应根据给定正则表达式拆分环境。

正则表达式由引号分隔。它不应该创建任何反向引用。如果需要组，应使用 (?:)。它可能还需要一些逃脱。

例如，LaTeX 模块使用 "(?:&|\\\\)" 正则表达式分别翻译表的每个单元格(行用 '\\' 分隔，单元格用 '&' 分隔)。

环境的概念扩展为 PO 文件中显示的类型。这可用于拆分 title 命令的第一个强制参数中的 "\\\\"。在本例中，环境是 title{#1}。

=item B<% po4a: verbatim environment> I<env>

指示 I<env> 是一个逐字环境。在此环境中将忽略注释和命令。

如果此环境尚未注册，则 po4a 将考虑此环境不会接受任何参数。

=back

=head1 编写衍生模块

=over 4

=item B<pre_trans>

=item B<post_trans>

=item B<add_comment>

添加字符串作为要在下一个翻译元素周围添加的注释。 这对于 texinfo 模块非常有用，因为注释在 TeX 中自动处理。

=item B<translate>

封装在转换器的翻译上，带有前后处理过滤器。

段落注释作为此段落第一个翻译字符串的 PO 注释插入。

=item B<get_leading_command>($buffer)

此函数返回：

=over 4

=item 命令名称

如果在给定缓冲区的开头未找到命令，则此字符串将为空。只考虑可以分隔的命令。%separated_command 散列包含这些命令的列表。

=item 变种

这表明是否使用了变量。例如，可以在 sections 命令的末尾添加星号(*)，以指定不应对其进行编号。在本例中，此字段将包含 "*"。如果没有变量，则该字段为空字符串。

=item 元组数组（参数类型、参数）

参数类型可以是 '{' (对于强制参数) 或 '[' (对于可选参数)。

=item 剩余的缓冲区

删除此前导命令及其参数后缓冲区的其余部分。如果未找到命令，则不会触及原始缓冲区，并在此字段中返回。

=back

=item B<get_trailing_command>($buffer)

与 B<get_leading_command> 相同，但适用于缓冲区末尾的命令。

=item B<translate_buffer>

通过将前导命令和尾随命令(应该分别转换的命令)从缓冲区中分离出来，递归地转换缓冲区。

如果在 %translate_buffer_env 中为当前环境定义了函数，则此函数将用于转换缓冲区，而不是 translate_buffer()。

=item B<read>

重载翻译器的 read()。

=item B<read_file>

递归读取文件，追加 @exclude_include 数组中未列出的包含文件。包含的文件是使用 KpathSea 库中的 B<kpseWhich> 命令进行搜索的。

除了文件包含部分，它是从翻译提取器的读取中剪切并粘贴的。

=back



=over 4

=item B<parse_definition_file>

用于使用 po4a 指令解析文件的子例程 (新命令的定义)。

=item B<parse_definition_line>

解析格式为 "% po4a: " 的定义行。

有关更多详细信息，请参阅 B<INLINE CUSTOMIZATION> 部分。

=item B<is_closed>

=item B<parse>

=item B<docheader>

=back

=head1 用于编写派生解析器的内部函数

命令和环境函数接受以下参数(除了 $self 对象之外)：

=over 

=item 命令名称

=item 变种

=item (类型、参数)元组的数组

=item 当前环境

=back

前 3 个参数由 get_leading_command 或 get_trailing_command 提取。

命令和环境函数返回命令及其参数和新环境的转换。

当找到 \begin 命令时，将调用环境函数。它们由 \begin 命令及其参数调用。

TeX 模块只提出一个命令函数和一个环境函数：generic_command 和 generic_environment。

generic_command 使用由指定的信息。
register_generic_command 或通过将定义添加到 TeX 文件：
 % po4a: command I<command1> I<parameters>

generic_environment 使用
register_generic_environment 或通过向 TeX 文件添加定义：
 % po4a: environment I<env> I<parameters>

这两个函数将仅转换指定为可翻译的参数(带 '_')。generic_environment 将把环境的名称附加到环境堆栈中，而 generic_command 将在命令的名称后面加上参数的标识符(如 {#7} 或 [#2])。

=head1 此模块的状态

此模块需要更多测试。

它在一本书上进行了测试，并使用 Python 文档进行了测试。

=head1 待办事项清单使用PO4A：：XML进行转换

=over 4

=item 自动检测新命令

Tex 模块可以解析 newcommand 参数，并尝试猜测参数的数量、它们的类型以及是否应该转换它们。

=item 环境分隔符的翻译

当 \item 用作环境分隔符时，item 参数附加到以下字符串。

=item 应将某些命令添加到环境堆栈

These commands should be specified by couples.  This can be used to specify commands beginning or ending a verbatim environment.

=item 其它

各种其他点在源代码中都标记为 TODO。

=back

=head1 已知缺陷

源代码中的各个点都被标记为 FIXME。

=head1 参见

L<Locale::Po4a::LaTeX(3pm)|Locale::Po4a::LaTeX>, L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, L<po4a(7)|po4a.7>

=head1 作者

 Nicolas François <nicolas.francois@centraliens.net>


=head1 翻译

taotieren <admin@taotieren.com>

=head1 版权和许可

版权所有 © 2004, 2005 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.

This program is free software; you may redistribute it and/or modify it under the terms of GPL v2.0 or later (see the COPYING file).

