我怎样才能只在一个部分中使用 usepackage?

我怎样才能只在一个部分中使用 usepackage?

我需要两个不同的使用包:一个用于浮点图(http://www.texample.net/tikz/examples/simple-flow-chart/) 和一个用于我的整个文档。

对于 Floatchart:

\usepackage[latin1]{inputenc}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}

对于我的文档:

\usepackage[pdftex]{graphicx}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

如果我插入两者,texmaker 说:包 graphicx 和包 inputenc 的选项冲突。

我该怎么办?我可以只为 floatchart 指定 usepackage 吗?

答案1

我不知道这个[pdftex]习惯从何而来,但你不需要使用它。你也可以在这个网站上阅读一些关于它的答案,但简而言之,大多数现代软件包都知道当前的驱动程序是什么,它们可以决定。提供固定选项只会自找麻烦。

在您的示例中,TikZ 已加载,graphicx因此您无需执行任何操作。只需加载 TikZ 即可。如果出于某种原因您不想包含该包,则将其作为图片包含。

因此,使用

\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,arrows}

并且它应该适用于这两个部分。不过,我会选择 LuaTeX,而不是字体和输入编码。

一些阅读;

色彩、图形和自由之间的冲突

使用 graphicx 和 tikz 包时选项发生冲突

是否可以在本地加载 TikZ 库?

答案2

两种选项/包组合可以轻松合并:

\usepackage{graphicx}

当然,不能针对文档的某些部分使用不同的驱动程序。如果您使用的是,则可以省略pdflatex选项,因为MiKTeX 或 TeX Live 标准能够检测 PDF 模式下的 pdfTeX 并相应地设置选项。pdftexgraphics.cfg

\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usepackage[T1]{fontenc}

文档的输入编码:

\usepackage[utf8]{inputenc}

如果流程图使用的是latin1,那么可以通过以下方式在文档中间更改输入编码\inputencoding

\usepackage[utf8]{inputenc}
...
\begin{document}
% UTF-8 stuff
% ...
\inputencoding{latin1}
% Flowchart with text in latin1
% ...
\inputencoding{utf8}
% Back to UTF-8

或者也latin1可以在本地设置:

\begingroup
  \inputencoding{latin1}
  % Flowchart with text in latin1
  % ...
\endgroup
% back to previous input encoding

答案3

\usepackage[something]{inputenc}

告诉 LaTeX 哪个输入编码期望。这是保存文档的编码。

您无法以两种不同的编码保存文档。(您可以制作两份副本 - 每种编码一份 - 但单个文件只有一种编码。)

所以你不能同时使用

\usepackage[utf8]{inputenc}

\usepackage[latin1]{inputenc}

对于同一篇文档,您实际上是在告诉 LaTeX,“嘿,我是一个使用 latin1 和 utf8 编码的文件!”这显然不是真的。编码适用于文件,而不适用于文件的一部分。

如果你真的需要采用不同编码的流​​程图(但为什么?),那么您需要将其编译为一个不同的文档并将其作为图形包含进来,或者如果它是一个独立的页面,则作为 PDF 包含进来。

请注意,您的包裹调用正在处理两种不同的编码:输入编码(inputenc)和输出/字体编码(fontenc)。

\usepackage[something]{fontenc}

指定要使用的输出字体编码。与输入编码不同,您在文档中切换这些编码。(事实上,无论您在设置数学字体时做什么,LaTeX 基本上都会这样做。)

答案4

\iftrue
%\iffalse
  \usepackage[latin1]{inputenc} 
  \usepackage{tikz} 
  \usetikzlibrary{shapes,arrows}
\else
  \usepackage{graphicx} 
  \usepackage[T1]{fontenc} 
  \usepackage[utf8]{inputenc}
\fi

在这种情况下,使用前三个。如果你注释\iftrue并取消注释,\iffalse则结果将相反。

相关内容