同时使用“ctex”和“translations”包

同时使用“ctex”和“translations”包

我有许多英文文件需要翻译成中文。我使用中转站中文排版包和西拉特克斯用于编译。文档中有一些重复的字符串(注释、注意、反馈等),我希望使用翻译包裹。

我检查一下中转站装载了\IfPackageLoaded,然后使用\selectlanguage{chinese}

梅威瑟:

我的前言.sty

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mypreamble}[test]

%\usepackage[english]{babel}
%\babelprovide{chinese}
\usepackage{translations}

\DeclareLanguage{chinese}

\newcommand*\location{\GetTranslation{mycountry}}

% translations for 'mycountry':
\DeclareTranslationFallback {mycountry}{Default}
\DeclareTranslation{English}{mycountry}{Country}
\DeclareTranslation{chinese} {mycountry}{国家}

% code required for checking if ctex is loaded
\usepackage{ltxcmds}

\makeatletter
\newcommand{\IfPackageLoaded}[3]{\ltx@ifpackageloaded{#1}{#2}{#3}}
\makeatother

主文本

\documentclass{article}

\usepackage{mypreamble}

% comment out for English, uncomment for Chinese
\usepackage{ctex}

\begin{document}

\IfPackageLoaded{ctex}{\selectlanguage{chinese}}{\selectlanguage{english}}

\tableofcontents
\listoftables

\section{Intro}
\location

\end{document}

以下是我想要的和得到的如果我不添加 babel(这是翻译)。但是,这也让我错误 Package babel Error: You haven't defined the language chinese yet

在此处输入图片描述

如果我添加 babel通过取消注释序言中的两个字符串,错误消失;但随后巴别塔搞砸了中转站将标准字符串(目录、表格列表等)翻译成中文:

在此处输入图片描述

任何能解决这一难题的帮助都将不胜感激!

答案1

看起来你需要

\usepackage[english]{babel}
\babelprovide[import]{chinese}

以避免错误。但是babel-zh.ini(以及其他中文语言环境,例如babel-zh-Hant-HK.inibabel-zh-Hans.ini等)未在[captions]部分中定义键,因此\chinesecontentsname\chineselisttablename等未定义。据我所知,没有办法babel自动从 查找这些定义的术语ctex

(在 TL 2020babel-ja.inibabel-ko.ini 在 中定义键值对[captions],因此如果您使用\babel[import]{japanese}或 ,则不会遇到此问题\babel[import]{korean}。但在 TL2020 中仍然不是这种情况babel-zh.ini。)

您可以在 main.tex 或 mypreamble.sty 中自己定义这些命令:

\renewcommand{\chinesecontentsname}{目录}
\renewcommand{\chineselisttablename}{表格}

或者,如果您愿意,您可以复制babel-zh.ini(它在/usr/local/texlive/2020basic/texmf-dist/tex/generic/babel/locale/zh/),将其重命名为babel-zh-myownhacks.ini,然后编辑以下[captions]部分:

[captions]
preface = 前言
ref = 参考文献
abstract = 摘要
...

然后通过以下方式将其加载到你的 .tex/.sty 中

\babelprovide[import=zh-myownhacks]{chinese}

相关内容