我负责一个用法语(UTF8 编码)编写的科学练习数据库(>1000)并共享单个序言。
这些练习可以由使用不同操作系统(Windows、MacOS、Linux)的不同用户编辑和编译(pdflatex)。
在 Windows 上,我时不时会遇到与法语口音相关的问题,这会导致大多数用户难以察觉的难以理解的错误(例如缺少 $),而相同的文件在 MacOS 和 Linux 上可以正常编译
我现在想知道在这些操作系统之间共享的用法语编写的乳胶文件的最佳包和实践。
以下是我当前序言的开头:
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc} % a adapter si autre que pdflatex
\RequirePackage[english,main=french]{babel}
之前我用过
\RequirePackage[utf8x]{inputenc} % a adapter si autre que pdflatex
\RequirePackage[english,main=french]{babel}
在 Windows 上遇到了更多问题,例如缺少 $ 等等(我使用 subimport)
答案1
我以前也遇到过类似的问题。结果发现,问题不是出在 LateX 上,而是出在编辑器上。当从不同的平台或编辑器进行编辑时,请确保每个用户都以相同的编码保存文件。在我的编辑器中:TeXstudio 和 Texworks,它位于编辑器的右下角:它必须指示 UTF-8。
答案2
UTF-8 在所有编码之间都兼容,但您现有的文件可能以不同的格式存储(CP1252、Mac-Roman、ISO-8859-15 等)。如果您无法将所有内容保存或转换为 UTF-8,一种解决方法是使用selinput
。无论源文件的编码是什么,它都应该能够读取它们。
我最近遇到的不兼容问题(这破坏了我cmathbb
为 Linux 上的其他人使用的文档)是文件名在 Linux 上区分大小写,但在 Windows 上不区分大小写。请确保您的所有文件名在区分大小写和不区分大小写的操作系统上都能正常工作。
上的字体名称查找fontspec
是操作系统之间以及 XeTeX 和 LuaTeX 之间可能不兼容的另一个原因。特别是,为单个用户本地安装的字体可以在 Linux 上使用,但不能在 Windows 或 Mac 上使用。最安全的方法是使用文件.fontspec
,或使用以下方式指定确切的文件名,例如,
\defaultfontfeatures[LibertinusSans]{
UprightFont = *-Regular ,
BoldFont = *-Bold ,
ItalicFont = *-Italic ,
BoldItalicFont = *-BoldItalic ,
Extension = .otf }
\setsansfont{LibertinusSans}
但是,如果您使用字体包,它们应该为您完成所有工作。