尝试理解一种特殊的 TeX 文档格式

尝试理解一种特殊的 TeX 文档格式

我经常上网论文集阅读新文章。我通常会从这种努力中获得双重好处:其次是数学知识,我喜欢学习不同的 LaTeX 技术,这些技术用于排版漂亮的文档。但最近我得到了一个相当奇特的.tex文件。它的起源来自一篇关于代数拓扑的精彩文章,可以在这里

整个文件太大了,无法在我的评论中完整发布,所以我将其包含在我的 Google Drive 中。然而我表达我的两点看法:

.sty通过 Google Drive 分析可以识别出多个文件被打包成一个文件,这对我来说似乎很奇怪.tex;更准确地说,似乎 8 个单独的文件( 1 .aux、 1 .bbl、 3.sty和 3 .tex)以某种方式被压缩在一个.tex文件中。很奇怪。

.tex为了进一步澄清,也为了让社区的情况更简单,我决定发布“大”文档的开头:

                              \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{Cobordism}[2011/03/01]

\RequirePackage{tikz}

\usepackage{forarray}

\newcommand\ignore[1]{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Variables, Variable Commands, and Styles
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Variables %%%
\newlength{\cobordismhalfendwidth}
\newlength{\cobordismhalfendheight}
\newlength{\cobordismendwidth}

%%% New Variables %%%
\newlength{\cobheight}      % Height of a pair of pants
\newlength{\cobwidth}       % Width of a cylinder
\newlength{\cobgap}         % Gap between adjacent cylinders
\newlength{\cupheight}      % Height of a cup or cap
\newlength{\ellipseheight}  % Height of a boundary ellipse
\newcommand{\ellipsewidth}{\cobwidth}
\newlength{\cobordismlinewidth} % Width of line used to draw cobordisms
\newlength{\coboffset}      % cobwidth + cobgap; the horizontal offset between adjacent cylinders
\newlength{\obscurewidth}
\setlength{\obscurewidth}{4pt}
\newlength{\inseamheight}
\newlength{\selectwidth}
\setlength{\selectwidth}{1pt}
\newlength{\dashlength}
\setlength{\dashlength}{2pt}

那些想要帮助我的人可以找到完整的文件这里

那些花时间打开我上传的.tex文件的人可能会明白我困惑的根源。我的主要要求是尽可能向我澄清语法。还有一个额外收获:我怎样才能以正常格式实现论文中呈现的漂亮结果?提前谢谢您。(请不要将此标记为离题;这只是一个复杂的问题。)

答案1

arXiv 对来源有如下评论:

来源

如果有多个文件,则以 gzip 压缩的 tar (.tar.gz) 文件形式交付,否则以 PDF 文件形式交付,或者根据提交格式以 gzip 压缩的 TeX、DVI、PostScript 或 HTML (.gz、.dvi.gz、.ps.gz 或 .html.gz) 文件形式交付。

事实上,我的终端告诉我:

$ file 1509.06811 
1509.06811: POSIX tar archive (GNU)

因此,您不能直接重命名文件,而需要解压/提取文件。具体细节取决于系统,在 Kubuntu 中,我只需右键单击文件并选择提取即可。

解压后,你会看到有八个不同的文件:

$ ls
Cobordism.sty  knots.sty    paperIV.bbl  spath.sty
header.tex     paperII.aux  paperIV.tex  stringdiagram-header.tex

该文件paperIV.tex是主要文章文件。其他两个.tex文件包含 的大部分前言paperIV.tex,并包含在该文件的第 8-9 行中:

7 % Import the preamble
8 \include{header}
9 \include{stringdiagram-header}

(数字表示行号。请注意,在序言中应该使用\input,而不是\include,参见何时应使用 \input 和 \include?

因此,不应编译其他两个.tex文件,因为它们是为了让“主”文件的前言更整洁。您可以用paperIV.tex这些文件中的 700 多行代码替换第 8 行和第 9 行,结果是一样的。

从理论上讲,要制作 PDF 你只需这样做pdflatex paperIV.tex,但不幸的是,这会引发一个错误Cobordism.sty

! Undefined control sequence.
\anchor ... \csname pgf@anchor@\pgf@sm@shape@name 
                                                  @#1\endcsname {#2}
l.4118 }

我不知道为什么会发生这种情况,可能是Cobordism.sty为 TikZ 2.x 编写的,需要进行一些更新才能与 TikZ 3 一起使用。不过,这只是在黑暗中进行的尝试,我建议就该特定问题提出一个新问题。

LaTeX 将始终在当前文件夹中查找包,因此您不必将.sty文件移动到其他任何地方,但供参考:我应该将自己的 .sty 或 .cls 文件放在哪里,以使它们可供我的所有 .tex 文件使用?

但请注意以下几点:

  • 在 CTAN 和 TeXLive/MikTeX 中已经有一个更新版本spath,称为。spath3
  • 您可能对该包感兴趣tqft,请参见使用 tqft 绘制共边

相关内容