我知道有一个iftex
软件包可以让你根据所使用的引擎是 还是 来执行特定的操作PDFLaTeX
。XeLaTeX
LuaLaTeX
我也知道LuaLaTex
禁止使用inputenc
包并需要fontspec
。我不知道其他人的禁止和先决条件。
如何使用以下包来满足iftex
这三个引擎的包条件: tikz
、、、、和其他?tcolorbox
babel
amsmath
amsfonts
amssymb
例如,如何填充此 ECM 的前导码以使其对所有 LaTeX 引擎通用,或者这对于大多数 LaTeX 引擎来说是不可能的?
编辑 我问的问题不是针对这份文件,而是针对每一份可以想到的文件。我将 ECM 放在下面,因为我知道我会被要求放一份,所以我把唯一用处就是有序言的那个放在那里。
\documentclass[11pt]{article}
\usepackage{iftex}
%\usepackage{tikz}
%\usepackage{amsmath, amsfonts, amssymb,mathrsfs}
%\usepackage[margin=1cm]{geometry}
%\usepackage[french]{babel}
%\ifLuaTeX
%\usepackage{fontspec}
%\else
%⟨material not for LuaT E X⟩
%\fi
%\ifXeTeX
%⟨material for XeT E X⟩
%\else
%⟨material not for XeT E X⟩
%\fi
%
%\ifPDFTeX
%⟨material for PDFT E X⟩
%\else
%⟨material not for PDFT E X⟩
%\fi
\begin{document}
Bien sûr, il s'agit d'écrire aussi avec des accents français et des formules mathématiques comme $2\times3^2=18$
Left of picture\begin{tikzpicture}
\draw[use as bounding box] (2,0) rectangle (3,1);
\draw (1,0) -- (4,.75);
\end{tikzpicture}right of picture
\end{document}
答案1
以下文档在 pdflatex、xelatex 和 lualatex 中运行无错误:
\documentclass[11pt]{article}
\usepackage[french]{babel}
\usepackage{tikz}
\begin{document}
Bien sûr, il s'agit d'écrire aussi avec des accents français.
Left of picture\begin{tikzpicture}
\draw[use as bounding box] (2,0) rectangle (3,1);
\draw (1,0) -- (4,.75);
\end{tikzpicture}right of picture
\end{document}
如果你的 latex 版本早于 2018-04-01 版本,那么你需要添加:
\usepackage[utf8]{inputenc}
对于 pdftex,它会在 lualatex 和 xelatex 中生成一个警告,提示它什么都不做,但这是设计使然,以便您可以在可移植文档中使用该形式。
理想情况下,对于 pdftex,您应该添加:
\usepackage[T1]{fontenc}
我倾向于这样做,而不是为了测试而添加额外的包:
\ifx\Umathchar\undefined
\usepackage[T1]{fontenc}
\fi
因此fontenc
在 xetex 和 luatex 中不会使用,所以最终文件是:
\documentclass[11pt]{article}
\usepackage[french]{babel}
\ifx\Umathchar\undefined
\usepackage[T1]{fontenc}
\fi
\usepackage{tikz}
\begin{document}
Bien sûr, il s'agit d'écrire aussi avec des accents français.
Left of picture\begin{tikzpicture}
\draw[use as bounding box] (2,0) rectangle (3,1);
\draw (1,0) -- (4,.75);
\end{tikzpicture}right of picture
\end{document}