如何在LaTeX中编写物理书。第1条

这是我关于哈布雷的第一篇文章。



第1章简介



1.1让我自我介绍一下,为什么要写这篇文章,所以我



是一名研究员,物理学家。最近出版了一本有关光谱学的书,有880页,重1560克。我写这本书已有9年的时间,同时对它的内容进行了演讲。我花了很多时间,这很自然。不自然的是,有很大一部分时间花在了设计上,也就是花在学习Latech语言上。尽管我一生都在写Latekh,但还是在不同的出版社亲自撰写并发表了约50篇文章。



在本文中(计划了延续,但是这是继续的方式),我想与读者分享我为之付出的宝贵知识。如果读者只写文章,那么他真的不需要我的文章-它包含大型书籍作者的需求。



在这本书出版之后(到目前为止,可惜的是,只有俄语),我非常渴望写另一本书《如何在拉特赫写一本关于物理学的书》。



1.2为什么在哈布雷(Habré)上?



如果在俄罗斯有一个针对Latech用户的主要论坛,我会在那里。但是他不是,a。是否存在世界-我不知道。有很多像样的论坛,例如latex.org/forumtex.stackexchange.com,但大多数都是问答。



俄罗斯有优秀的作家,但没有大型的知名论坛。这是一个耻辱。



圣彼得堡国立大学的一位熟人最近告诉我,他们被迫在Latekh中写课文,但他们不推荐书本或好的网站。通过这种方法,我们的鳄鱼可能会起飞,但数量很少。



1.3为什么选择Latech?



我只是不认识其他编辑。我一生中从未在Word或OpenOffice中撰写过一份严肃的工作。因此,我无法比较编辑器。 Latech就像个老婆。有爱,有争吵,一切都是……但是没有他,我将无法继续。



通常,人们认为Latech比其他任何编辑器都能更好,更轻松,更精美地设置文本格式。他对作者说:“抛开这些,您仍然对文字设计一无所知,请专业人员来做。”



我认为这只是部分正确。我花了很多时间来设计文字,这很可悲。我不会描述与Latech合作的规则,为此有很多好书,(*)恰恰相反-我将写这些书没有的书。



如果我的文字对Habré上的某个人感兴趣,则在文字设计和绘图中有很多技巧,至少要简要描述一下。



1.4我是否有目标,



我当然知道,在Latech上写的人不多。通常,数学家和物理学家,甚至不是全部。在Latech中写作的作者中,写书的人所占的比例非常小。最后,俄语的写作可以忽略不计。



本文的逻辑不在于使读者广泛了解Latech在书籍写作中的使用。对于这一点,我没有足够的展望:我相信无论在哪里挖掘的人都不会深入挖掘。注释的逻辑如下:“我不知道通往茂密森林的路径是什么。我沿着一条路径穿过茂密的森林,我将向您介绍。”



如果我们谈论趋势,那么在俄罗斯广泛采用的科学计量学,即赫希指数(和类似的指数)以及被引用的次数,应该完全摧毁一本科学著作。我的意思是,首先,在任命职位时以及分配赠款和其他类型的资金时要考虑这种科学计量学。让我提醒您,书籍完全不计入Hirsch索引中。



如果我们的科学主管在所有方面都保持一致,那么将来他们应该禁止俄语,尤其是书面语言,禁止写书(惩罚)和用俄语写书(严重),甚至处以解雇。对于极其无效的使用正式工作时间。



因此,我的工作,这本书,在我看来有时是愚蠢而不必要的。但是,没有怪异的生活是很无聊的(愚弄吗?)。



此外,在哈布雷,人们经常写有关各种垃圾的文章,例如留声机唱片或录音机。为什么我的话题更糟?



1.5最佳现代书籍



在编写教科书的过程中,我浏览了许多外国书籍和教科书,得出的结论是,我所在领域的最佳教科书是阿特金斯(牛津大学的PW Atkins)和其他合著者。参见例如“分子量子力学”(2005)。 Demtroder也有非常不错的书(W. Demtroder,“激光光谱:基本概念和仪器”,2003; Electrodynamics and Optics,“ 2019; ...”



Demtroder的有趣之处在于-感谢他的特殊服务,帮助他将本书编入了Latehe:德国有这种服务,但俄罗斯没有。



而且,这些书的内容最好不如设计最好。肉眼可以看到,它们都是在Latech积极使用TikZ封装的情况下制成的。结果,我感觉到Latech-TikZ的组合是创建以最佳世界水平设计的书籍的最佳方法。这就是为什么TikZ在我的书中被大量使用的原因(即使没有它也可以做到)。



1.6未来的理想书



我想推测一下未来的理想书。也就是说,关于科学出版将不可避免地到来的地方(应该……来)。也就是说,关于我们科学家应为提高我们的竞争力和吸引力而努力。



当然,未来的书将有两种版本:纸质版和电子版。另外,它会是彩色的。此外,不仅图纸会在颜色上脱颖而出。



将内容清晰地​​划分为文本,图片,表格和公式的现代方式已经成为过去。例如,需要用箭头连接文本,图形,表格等中的某些位置。为什么要分开图表?为什么不能将图片放在桌子内,反之亦然?有时将它们混合在一起是否更方便?



图1显示了我的书的两页(在线版本),以使文本和图形可以流畅地彼此融合。





数字: 1.我的书设计的一个例子。将表的流程显示为图片



其他想法,副手。



  1. , , , .. (, , ).
  2. . . .
  3. — . .
  4. , , . , — , .

    - - " ". ?
  5. , : . : TikZ.


当然,所有这些梦想直到我遇到一位活着的编辑时才在我的脑海中绽放,他认为所有这些昂贵而不必要的想法,但这是另一个话题。



1.7关于编译器,编辑器,Latech方言

这是一个非常大而痛苦的话题。



我使用Windows / MikTeX / WinEdt软件包(= OS /编译器/编辑器),但是即使在该软件包中,也有很多版本可供选择。



我认为WinEdt编辑器是最好的(尽管有时我也使用TexStudio),但是在5.6版之后,它开始以一种不愉快的方式发展(我在这里没有描述WinEdt hack,但这对于任何版本都不是问题)。



例如,我很保守而且很盲目,所以我只认出我的语法颜色,而不是WinEdt的创建者建议的颜色,见图。 2和图。 3。





数字: 2. WinEdt v.10中的语法着色





。 3.我在WinEdt v.5.6中的语法着色,



但是主要的麻烦在于,新的编译器假装能够使用UTF-8编码的八位字体,为此开发并积极实施了LuaLatex,XeLatex等方言。这些新的方言即使使用Old Church Slavonic也能够创建任何字体的文本。但是有多少成本...



我的主要抱怨之一是,如果我从互联网上传输一些文本,那么可能会混合使用多种编码方式,编辑器将不会向我显示某些字符,并且编译器将给出一个很难找到的错误。



对于俄语文本,我只能识别7位字体和ANSI / Windows1251编码,并且不是直接从Internet传输文本,而是通过某种简化的编辑器(例如Notepad ++)从Internet传输文本,您可以在其中根据需要配置所有编码。



并且只有在最后完成文本的最终格式设置后,您才能切换到UTF-8。这是很多工作。



对Latech字体的唯一简单改进不会以任何方式影响文本格式,就是从CM到CM-super的过渡。



让我提醒您,您始终可以使用格式设置,例如,

\clubpenalty=400   %   --     .  = 300,   = 10000.
\widowpenalty=400  %%      ,      .
\righthyphenmin=2 %    .   Babel,    .
\tolerance=500   %max=10000, default=200 (    ).
%  ,  !
\looseness=-1 %       .
\hfuzz=2.5pt %        2.5 pt.


第2章您的标准



2.1给初学者的提示



这里是有抱负的长文本作家的基本提示列表。大文本是翻阅非常繁琐的文本,只能使用搜索和替换命令进行编辑。

正如军人所说的那样,每条建议都是“用鲜血书写的”。好的,不是抽血。而是时间,神经,头痛……起初看来,接下来将有时间修复所有问题。事实证明,根据编辑部的口味重新制作书籍是一项非常耗时的工作。



2.1.1查找您未来书籍的页面格式,并从一开始就将其包括在序言中。这将节省您重新格式化的痛苦。从头开始,在序言中指定最终的页面布局(页眉,页脚,边距等),以及字体的大小和类型。



例如,我的书的格式为70x100 1/16,因此前言包含以下设置:

\special{papersize=170mm,240mm}
\textheight 187mm % 200-(12+25)*0.35146 = 186.99598
\textwidth 130mm
\headheight13.6pt % = 0.48 mm
\oddsidemargin -5.4mm
\evensidemargin -5.4mm
\topmargin -5.4mm
\usepackage{setspace}
\singlespacing


这是命令

\singlespacing
将整个文档设置为单个间距,并且它本身是setspace包的一部分。

应该这样理解。顶部和底部的边距为20毫米。因此,可以使用130 * 200毫米的面积。记录

\topmargin -5.4mm


表示从标题h的顶部到页面顶部的距离为h = 1英寸+ topmargin = 2 cm,这是您想要的。文本的宽度为130毫米,但是从200毫米的高度中减去标题的高度(headheight)和标题到文本的距离(headsep)。

可以理解,还有三个命令:

\voffset=0 \headheight12pt \headsep25pt % 1 pt = 0.3528 


以及一般公式:

240 = y-papersize = 2 *(2.54 cm + topmargin)+ y-textheight + headheight + headsep = 40+ 186.99598 +(12 + 25)* 0.35146 mm。



一切似乎都很清楚。但是编译器会在每页上给出该消息:

软件包Fancyhdr警告:\ headheight太小(12.5pt):

使其至少为13.59999pt。

现在,对于本文档的其余部分,我们将其放大。

但是,这可能会导致页面布局不一致。




因此,我们正在重做。现在
\headheight13.6pt


记住本机(即内置的Latech字体)为10、11和12磅非常有用。对于其他尺寸,您需要连接特殊的包装。我希望字体较小,以便在页面上容纳更多文本。但是在编辑部,我被告知11磅Latech字体在Microsoft Word中看起来像10.5磅。因此,我选择了11点。但是徒劳。就像大多数国外出版社一样,这是10 pt是必要的。



大型严肃的出版社有自己的风格,因此作者无需思考,但这(通常)不适用于俄罗斯。



我写信并认为,最好不要炫耀自己的风格。最近,他向AIP Conference Proceedings杂志提交了一篇文章,其文档风格

\documentclass[aip,cp,amsmath,amssymb,reprint]{revtex4-2}


然后我得到答案:“ ...您的设计不匹配...电子邮件地址应该紧靠作者的名字,而不是脚注...”



如果我从他们的网站上获取样式和文档模板,怎么可能不匹配?在与支持服务部​​门通信的过程中,事实证明,正如他们认为的那样,我的某些软件包已过时,因此,最好在他们的网站www.overleaf.com/latex上编译我的文章,



首先,我讨厌这些时髦的尝试能否将我的计算机简化为与Internet上的程序的接口,其次,您需要如何创造性地将文章的样式与编译器的某些深层隐藏联系起来?



更改杂志的样式(cp),更改发布者的样式(revtex4-2),但是为什么要使它们依赖于编译器呢?



2.1.2字体选择



编辑器中的字体必须等距(Consolas,Lucida Console,Courier,Courier New等),并且文本编辑器必须轻松地在块模式和行模式之间切换。如果准备正确,则可以重新排列表中的列。



另一个例子。当我只需要保留一个文件进行编译时(二十个中的一章),我选择%符号列并将其移至该段的开头。然后,我用手去除需要的文件前面的%号,结果,所有文件都变成注释,除了所需的注释。



2.1.3一个人的视觉记忆良好。他认识到文本中熟悉的段落,不使用这种能力是一种罪过。所以我的标准是一句话=一段。没有自动线对齐(禁用换行)。结果,如果我更改前面的句子中的内容,文本在行上的位置将不会改变。



2.1.4带有图片的文件名称必须与其标签匹配。这很方便,并且还在调用图形的宏中保存了一个变量。



2.1.5物品(标签)的名称是根据标准编译的。这非常方便,但是在口味和颜色上没有同志。

我的标准:参考Purcell46_681表示(作者)-(出版年份)-(页码)。



2.1.6语法着色。由于某种原因,这对我来说非常重要。我的着色和标准WinEdt着色的示例如图1所示。 2.

在我看来,制造商WinEdt语法颜色不好,并且与我的口味不符。

正确的(我的)着色原理如下:

-注释:灰色背景上的淡斜体文本,

-链接文本(\ ref,\ cite):明亮的背景,但对于文献和公式的引用则不同,

-括号:粗体,明亮背景,后方括号必须带下划线,

-刻划命令(\开始):浅色背景,

-服务字符($,_,):在文本中以彩色加粗显示,

-表中行尾(\\):黑底白字背景。

2.1.7书籍最简单的“正确”结构是两个目录:一个是书籍的文本,另一个是在TikZ软件包中制作矢量绘图的工作室。

每个内部都有一个\ Figs子目录,用于存放现成的图纸。

在本文中,我不会谈论研讨会。



第3章。



3.1

我习惯于调用宏的小替代方法,尽管这可能是错误的。



曾几何时,大约30年前,我给我留下了深刻的印象,我可以用机关枪的速度填写数学公式,而无需看着监视器。我还是喜欢 但是我特别爱上使用我的指定来键入文本。当然,所有这些都收集在前导文件中。



可以总是输入缩写吗?不,不幸的是,并非总是如此。编译器不想了解其中的许多内容。例如,我还没有找到非常有用的环境的缩写,例如
\begin{split}--\end{split}, \begin{align}--\end{align}




最简单的例子。

\newcommand*{\BE}{\begin{equation}} %
\newcommand*{\EN}{\end{equation}} %
\newcommand*{\BEA}{\begin{subequations} \begin{eqnarray}} %
\newcommand*{\ENA}{\end{eqnarray} \end{subequations}} 


像这样的文字

\begin{equation}


非常懒。因此,我引入了缩写-\ BE很久以前。为什么加上大字母?因为大约30年前,Dos Latech(= EmTex)不想使用小写字母。

用英语,第一段开头没有红线。要覆盖此规则,通常使用\ hs命令:

\newcommand*{\hs}{\hspace*{\parindent}}


取消自动公式编号:

\newcommand*{\nn}{\nonumber}


对于作者列表,类似俄语

\newcommand*{\ea}{{\it et al\/}\xspace}


如果要以斜体打印等,这尤其有用注意\ xspace命令,它了解您是否需要留一个空格(如果单词更远)或(如果标点符号更远)。



如果您经常写化学式,那么类似

\newcommand*{\1}{$_1$}
\newcommand*{\2}{$_2$}
\newcommand*{\3}{$_3$}
\newcommand*{\4}{$_4$}
\newcommand*{\5}{$_5$}
\newcommand*{\6}{$_6$}
\newcommand*{\7}{$_7$}
\newcommand*{\8}{$_8$}
\newcommand*{\9}{$_9$}


例如,我不是C $ _2 $ H $ _5 $ OH,而是写为C \ 2H \ 5OH。快一点了。



要将文本插入数学公式,我使用

\newcommand*{\T}[1]{\text{#1}}


在我的科学中,经常使用波数(这些是频率的测量单位,它们等于倒数厘米),

\newcommand*{\ic}{cm $^{-1}$\xspace}


有时候我会切掉一切。例如,如果我懒得写“ photodissociation”之类的单词,我会输入缩写\ pd。

如果您需要写数字,那么我会像

\newcommand*{\po}[1]{$\times \! $10$^{#1}$} % *10(-n)
\newcommand*{\vp}[2]{#1$ \times \! $10$^{#2}$\xspace} % v*10(n)
\newcommand*{\ve}[2]{#1$\pm$#2\xspace} % v+-e
\newcommand*{\vep}[3]{$(#1 \pm #2)\times \! 10^{#3}$\xspace} % (v+-e)*10^n


例如,\ vep是数v,其误差为e乘以10乘以p的幂,即\ vep {v} {e} {p} $ =(v \ pm e)\ times10 ^ {p} $。



3.2引用表格和图形

某些其他信息:Latech引用\ ref的引用不能区分图形,表格,节...。如果它们很多,这很烦人并可能导致混乱。事实证明,以\ fref {fig:name},\ fref {tab:name},\ fref {sec:name}等格式格式化链接非常方便,这可以使用fancyref包完成。

您不仅会自己理解链接所指的内容,而且还可以通过不同的方式(字体和颜色)来设计它们。



3.3大型替代品

样式逐渐发展-对于复杂的操作,切勿直接使用Latech标准,而只能通过宏使用。当您必须编辑所有内容以取悦编辑委员会的异想天开时,这非常方便。

这是一个宏,用于创建包裹文本的图片:

\newcommand*{\EpsWrapD}[7]{%
\begin{wrapfigure}[#5]{#3}{#2 \textwidth} % #3=l,r,L,R
\begin{center} \sffamily
\includegraphics*[width= #2 \textwidth ]{#1} % 1-    ,
% 2-  (   )
\vspace{-#7mm} % #7:       
\caption{\label{fig:#1}#4} % #4 -   
\vspace{-#6pt}
\end{center}% #6:          \end{wrapfigure}}


这是用于创建包裹在文本中的表的宏:

\newcommand*{\TableBE}[5]{
\begin{table}[#1] %\captionabove
\vspace*{-#5mm}
\centering \sffamily \caption{\label{tab:#2}#3} \begin{tabular}{#4} \toprule }

\newcommand*{\TableEN}[3]{
\bottomrule \end{tabular}
\vspace{-#2mm} \small \begin{flushleft} #1 \end{flushleft}
\vspace{-#3mm}
\end{table}}


这是一个简单表的文本

\TableBE{H}{RS_Ham_2pi}{\TableBE{H}{RS_Ham_2pi}{     $^2\Pi $}{G LL}{2} $^2\Pi $ }{G LL}{2}
\CR & |^2\Pi_{1/2} JM_J \pm \rangle & |^2\Pi_{3/2} JM_J \pm \rangle \\
\midrule
|^2\Pi_{1/2} JM_J \pm \rangle & B[J_{\perp}^2+1] -A/2 & -B J_{\perp} \\
|^2\Pi_{3/2} JM_J \pm \rangle & -B J_{\perp} & B[J_{\perp}^2-1] +A/2 \\
\TableEN{}{0}{0}


及其编译形式:







Macro \ TableBE具有5个变量:

#1)如何以及在何处放置表。例如,h =“我想在这里放一张桌子”,

h!=“我真的想要在这里放一张桌子”,H =“我想要在这里

一张桌子就这样”,t!=将桌子放在页面顶部,

#2)链接到桌子,

#3)表标题。

#4)栏说明。例如,{GL LL}表示:左对齐,数学模式,第一列着色。

#5)美学:有时您想减少标题和桌子之间的空间。

\ TableEN宏具有3个变量:

#1)表格下的文本。

#2)美学:有时您希望缩短文本和表格之间的距离。

#3)美学:有时您希望缩短表格与以下文字之间的距离。



创建宏系列通常很方便。例如,我有一个主宏可将图片插入文本。

\newcommand*{\RisEpsLarge}[7]{
\begin{figure}[#5] \begin{center}
\includegraphics*[width= #2 \textwidth,#6]{#1} %#6: scale=2, bb=10 20 100 200
\vspace{-#3mm}
\sansmath
\caption{ \label{fig:#1}#4}
\vspace{-#7mm}
\end{center} \end{figure}
}


它有7个参数,对我来说很多。因此,我创建了如下所示的宏系列。主要思想是减少参数的数量,以便在创建表时可以尽可能少地考虑。读者很容易会猜到,它们在图片排列和旋转+ -90度的规则上有所不同(有时是必要的,因为这个聪明的傻瓜Latech对旋转图纸有自己的想法)。

\newcommand*{\RisEpsPos}[5]{\RisEpsLarge{#1}{#2}{#3}{#5}{#4}{angle=0}{0}}

\newcommand*{\RisEps}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{!tbhp}{angle=0}{0}}
\newcommand*{\RisEpsTop}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{!t}{angle=0}{0}}
\newcommand*{\RisEpsBot}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{!b}{angle=0}{0}}
\newcommand*{\RisEpsPlace}[5]{\RisEpsLarge{#1}{#2}{#3}{#5}{#4}{angle=0}{0}}

\newcommand*{\RisEpsRot}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{tbhp}{angle=90}{0}}
\newcommand*{\RisEpsRotTop}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{!t}{angle=90}{0}}
\newcommand*{\RisEpsRotBot}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{!b}{angle=90}{0}}
\newcommand*{\RisEpsRotBotPlace}[5]{\RisEpsLarge{#1}{#2}{#3}{#5}{#4}{angle=90}{0}}

\newcommand*{\RisEpsRotClock}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{tbhp}{angle=-90}{0}}
\newcommand*{\RisEpsRotClockTop}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{!t}{angle=-90}{0}}
\newcommand*{\RisEpsRotClockBot}[4]{\RisEpsLarge{#1}{#2}{#3}{#4}{!b}{angle=-90}{0}}
\newcommand*{\RisEpsRotClockBotPlace}[5]{\RisEpsLarge{#1}{#2}{#3}{#5}{#4}{angle=-90}{0}}


最后,本文的示例使用宏将表插入文本

\WrapTableBE<\source>
<source lang="tex">\newcommand*{\WrapTableBE}[6]{
\renewcommand{\baselinestretch}{0.75}\small\normalsize
\begin{wraptable}{#1}{#5\textwidth} \sffamily
\begin{center} \vspace*{-#6mm}
\caption{\label{tab:#2}#3} \begin{tabular}{#4} \toprule }
% #1 : l, r #2 : label #3 : caption #4 : cc|cc|rr|ll #5 : 4 #6: 5%    , 

\newcommand*{\WrapTableEN}[2]{
\bottomrule \end{tabular} \end{center} \vspace{-#2pt} \small #1 \end{wraptable}
\renewcommand{\baselinestretch}{1}\small\normalsize}




第4章。将文本导出到一本书的不同部分或其他书籍



在每章的结尾,我列出了考试的问题清单和问题清单。本书最后有解决方案中的这些问题,以及完整的考试问题清单。

我还同时在写第二本书“ Reshebnik”,其中包含教科书中问题的解决方案。这意味着在编写本书时,会将文本添加到“ Reshebnik”中。

因此,相同的文本应该出现在两个完全不同的位置。为简洁起见,在下文中,我们仅在本书结尾处讨论解决方案中的问题。我希望在解决方案之前,在本章末尾和书末分别打印两次每个问题的陈述。

但是我绝对不想在不同的地方使用相同文本的两个版本,因为这是无数错误的根源。这意味着编译器本身必须复制文本片段,然后将其复制到不同书籍中的不同位置。

我该如何解决这个问题。在序言结尾,我有以下命令:

\usepackage{newfile} %   newfile
\newoutputstream{ZO} %     ZO
\openoutputfile{Zadachi.tex}{ZO} %       Zadachi.tex
\newcommand*{\PutNumberZO}{\addtostream{ZO}{$\{$\thechapter.\theenumi$\}$}} %   Zadachi.tex %      .


它会打开Zadachi.tex文件,并在编译时将文本流定向到该文件。在开始工作之前,Zadachi.tex文件为空,并且还有一个Zadachi_Head.tex文件,该文件随后将被编译,其外观例如如下所示:

\chapter{  }
\Epigraf{0.68}{   ,       5 .      12 ,    ?}{"  ", .}
\bigskip
\input{Zadachi}
\endinput
                
\closeoutputstream{ZO}  %   ZO
\include{Zadachi_Head} %   Zadachi_Head.tex 


这是新的剪贴板包,其中只有四个命令:

\newclipboard{myclipboard}
-打开myclipboard.cpy文件进行写入,

\openclipboard{myclipboard}
-打开文件myclipboard.cpy进行阅读,

\Copy{item_name}
-将带有item_name标记片段写入文件myclipboard.cpy

\Paste{item_name}
-读取标签为item_name片段myclipboard.cpy文件 该软件包的重要功能是通过将一段文本存储在外部文件中,它不会忘记在源文件中编译该文本。这就是复制过程的产生方式。此解决方案的最大缺点是,我们必须首先打开myclipboard.cpy文件进行写入,向其写入任务条件,将其关闭,然后再打开以进行读取。不幸的是,我没有找到一种方便的关闭和打开方法,因此我使用了一个更麻烦的解决方案:引入了布尔变量FR(FR = First Run),其第一次编译时的值是FR = true,而在以后编译时的值FR = false。如果FR = true,则为myclipboard.cpy文件

打开以进行写入,如果FR = false,则打开文件myclipboard.cpy进行读取。

不幸的是,在第一次和第二次编译之前,您必须手动设置FR变量的值。令人不快,但是如果您忘记这样做,也可以。如果您始终具有FR = true或FR = false,那么问题书就不会有问题情况,这在处理章节文本时是完全可以接受的。

我懒得解决这个问题,无论如何,文本至少必须编译三遍。



第5章使用链接



5.1创建书目

假设我正在写一篇大文章。这意味着我将自己的文章以及参考文献一并摘录。最后,我要求编译器(BibTex)修改分散在文件Bib_File1.bib,Bib_File2.bib等文件中的以前的书目...

\bibliography{Bib_File1,Bib_File2,...Bib_FileN}


链接编译器当然会使我成为评论的模型,但这对我来说还不够。

在撰写书籍和评论时,拥有高级书目参考分类器非常有用。为此,有一个公民R. Schlicht的bibMacros软件包。安装此软件包的结果是,在BibTex部分的WinEdt菜单中将出现一堆用于处理链接的命令。



特别是,我有机会使用新评论的链接Bib_FileN + 1.bib创建一个新文件,并且根据我的要求,可以按照正确的顺序放置这些链接(例如,按照文本中提到的顺序,这在物理学中很常见)。



提醒一下,像bib这样的文件包含这样的条目形式的书目:

@article{Levchenko01_7485,year=2001,
 title={Electronic structure of halogen-substituted methyl radicals: excited states of {CH$_2$Cl and CH$_2$F}},
 author={S{ergey} V. Levchenko and A{nna} I. Krylov},
 journal=JCP,volume=115,pages=7485,numpages=10,
 abstract={Electronically excited states in CH2Cl and CH2F radicals are...}}




5.2蛇Gorynych-GOST

另外,我认为说英语的同志也没有问题。我们说俄语的人感到非常头疼。它称为GOST。

毫无疑问,俄罗斯GOST是一个对俄罗斯绝对敌对的国家的非常有效的破坏者。这是他的作品的一个例子







。 4.蛇Gorynych-GOST(2008)



正如您所看到的,说俄语的作家必须写两次姓,以醒目的方式重新排列姓名的首字母和姓氏,并根据作者数量使用五种不同的设计风格。练习重新排列姓名的缩写和姓氏,例如,H。Ford III先生和WS Stoner Jr.先生。



这些只是书。在文章中,破坏者介绍了各种斜棍甚至双棍棍,以使它看起来像世界上其他任何人一样。



例如,在论文中,必须遵守标准。如果有的话,许多求职者都这么认为。在我这个时代,2008年,一个好人Polyakov编写了一个根据GOST进行格式设置的程序包,我用它来格式化书目。我是一个很好的人,但同时也是一只白乌鸦,因为申请人完全忽略了这个费用。但是从那时起,该国的一切都变得更加艰难,所以我不知道现在的情况。



现在我完成了本书,其中的链接也必须根据GOST进行格式化。但是,据我了解,论文中和书中的GOST标准是不同的,在书中它并不那么难看。我们访问Internet,下载Kotelnikov Gost软件包,将行插入序言中

\bibliographystyle{gost2008}


之后,我们格式化参考列表。行动完成,遵守所有GOST。

但是,即使是科捷尔尼科夫有时也会错。因此,他的软件包中有一些小错误(**)

例如,假设您要键入“ Vol。115”。最好不要在“ Vol。”之间插入换行符。和“ 115”。科特尔尼科夫的一揽子计划有时也承认了这一差距,见图。 5.





图5.格式不正确的记录



5.3使用文件进行精修

因此,有必要使用文件进行修改...(而且,不仅在此位置。还包含英语和俄语名称的作者索引。)在编译bib文件的过程中,创建了一个P_bibs.bbl文件,其中包含记录类型

\bibitem{Levchenko01_7485}
\selectlanguageifdefined{english}
\BibEmph{Levchenko~S.~V., Krylov~A.~I.} Electronic structure of
 halogen-substituted methyl radicals: excited states of {CH$_2$Cl and
 CH$_2$F}~// \BibEmph{J. Chem. Phys.} \BibDash
\newblock 2001. \BibDash
\newblock Vol. 115. \BibDash
\newblock P.~7485.


我们发现所有错误并手动修复。在此示例中,我们将其改为“ Vol。〜115”,而不是“ Vol。115”。我们将此更正后的文件隐藏在一个僻静的地方。在最后的最终编译之前,用更正后的文件替换当前的P_bibs.bbl文件,一切都会顺利进行。



第6章最小的工作示例



6.1文件列表



这是一个最小的书籍模板,您可以在其中找到上面列出的

想法。主目录应包含文件:

  1. P_main.tex项目中的%main
  2. P_preamble.tex%前同步码
  3. Ch1.tex%第1部分
  4. Ch2.tex%第2部分
  5. Figs \ P_ABC.eps%将图片P_ABC.eps放入Figs子目录。
  6. 开始工作前Zadachi.tex%为空
  7. Zadachi_Head.tex%带有问题和解决方案的零件的标题。




6.2小书本文件,可编译

隐藏文字

%  P_main.tex  %   
\documentclass[10pt,twoside,openany]{book}
\usepackage{etoolbox}   % this package introduces operations: \newbool,...

\newbool{For_Internet}
\booltrue{For_Internet}    % %    
%\boolfalse{For_Internet}  %  -  

\newbool{FR} %FR= First Run
%\booltrue{FR}  %  --  make  FR = true
\boolfalse{FR}  %  --  make  FR = false

\input{P_Preamble}       %  
\includeonly{             %     
P_Ch1,        %%%
P_Ch2,        %%%
Zadachi_Head  %%%
}
\begin{document}         %  
\tableofcontents         % 

\ifbool{FR}{\newclipboard{myclipboard}}{}
                          %   
\include{P_Ch1}          %%%
\include{P_Ch2}          %%%

\closeoutputstream{ZO}  %     Zadachi.tex
\ifbool{FR}{}{\openclipboard{myclipboard}}

\include{Zadachi_Head} %      
%\bibliography{P_Bibs}  %   ,   

\end{document}         %  
\endinput              %  ,   
%+++++++++++++++++

%  P_preamble.tex  % 
\usepackage[warn]{mathtext} %(  inputenc, fontenc, babel)
%    ,  
%----   -- 
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage[english,russian]{babel}   % load Babel setup for English
                                      % and Russian languages;
                                      % the latter is the default.
%   russian  ,     russian.

%--  
\textheight 187mm
\textwidth 130mm
\headheight13.6pt
\special{papersize=170mm,240mm}
\oddsidemargin -5.4mm
\evensidemargin -5.4mm
\topmargin -5.4mm

%---   
\clubpenalty=400
\widowpenalty=400
\tolerance=500  %max=10000, default=200 (    ).
\looseness=-1 %(     )
\hfuzz=2.5pt %       2.5

%---  
\usepackage{amssymb,amsmath} %   
\usepackage{xspace}
\usepackage{enumerate} % 
\usepackage{booktabs}
\usepackage[dotinlabels]{titletoc}

%--  
\usepackage{graphicx}  %    
%\usepackage[dvips]{color} %   !
\graphicspath{{figs/}} %       *.eps,
\usepackage[usenames,dvipsnames]{xcolor,colortbl}

%---    ,       
\definecolor{lightcyan}{rgb}{0.88,1,1} % : ( 0.88, 1, 1)
\ifbool{For_Internet}{\newcolumntype{g}{>{\columncolor{lightcyan}}c}}%
{\newcolumntype{g}{>{\columncolor{light-gray}}c}}
\newcommand*{\red}[1]{\textcolor[rgb]{1.00,0.00,0.00}{#1}}
\newcommand*{\blue}[1]{\textcolor[rgb]{0.00,0.00,1.00}{#1}}

\ifbool{For_Internet}%
{\renewcommand{\thetable}{\red{{\it\arabic{chapter}.\arabic{table}\,}\normalfont}}}%
{\renewcommand{\thetable}{{\it\arabic{chapter}.\arabic{table}\,}\normalfont}}

\ifbool{For_Internet}%
{\renewcommand{\thefigure}{{\blue{\bfseries{\arabic{chapter}.\arabic{figure}}\normalfont}}}}%
{\renewcommand{\thefigure}{{\bfseries{\arabic{chapter}.\arabic{figure}}\normalfont}}}

%      
 \ifbool{For_Internet}{
 \titlecontents{chapter}[1.8em] % distance to page margin
   {\vspace{3mm} \bfseries\color{blue}} % \sffamily
   {\contentslabel[\thecontentslabel. ]{1.5em}} % distance between 1. and Title of chapter
   {\hspace*{-2.3em}}{\color{blue}
   {\titlerule*[1pc]{}\contentspage}\color{blue}}[\vspace{0.5mm}]
 }{}

\definecolor{light-gray}{gray}{0.95}
\ifbool{For_Internet}{\newcommand*{\CR}{\rowcolor{lightcyan}}}%
{\newcommand*{\CR}{\rowcolor{light-gray}}}

%----     \label{fig:name} \fref{fig:name}
\usepackage[vario]{fancyref} % plain is also possible

\renewcommand*{\fancyrefdefaultspacing}{\fancyreftightspacing}

\frefformat{vario}{\fancyreffiglabelprefix}{\bfseries{#1}\normalfont }
\frefformat{vario}{\fancyreftablabelprefix}{\textit{#1}\normalfont}
\frefformat{vario}{\fancyrefenumlabelprefix}{\textrm{#1}\normalfont}
%   ,   fancyref    .

%---  
\newcommand*{\mb}[1]{\mbox{\boldmath$#1$}}  %  . 

\newcommand*{\BE}{\begin{equation}}        %
\newcommand*{\EN}{\end{equation}}          %

\newcommand*{\BEA}{\begin{subequations} \begin{eqnarray}} %
\newcommand*{\ENA}{\end{eqnarray} \end{subequations}}   %

\newcommand*{\hs}{\hspace*{\parindent}}    %
\newcommand*{\nn}{\nonumber}        %

\newcommand*{\1}{$_1$}
\newcommand*{\2}{$_2$}
\newcommand*{\3}{$_3$}
\newcommand*{\4}{$_4$}
\newcommand*{\5}{$_5$}
\newcommand*{\6}{$_6$}
\newcommand*{\7}{$_7$}
\newcommand*{\8}{$_8$}
\newcommand*{\9}{$_9$}
%
\newcommand*{\T}[1]{\text{#1}}
%
\newcommand*{\vep}[3]{$(#1 \pm #2) \times \! 10 ^{#3} $\xspace} % (v+-e)*10^n
%
\newcommand*{\ic}{$^{-1}$\xspace}                 % inverse centimeters

%----       
\renewcommand{\le}{\leqslant}
\renewcommand{\leq}{\leqslant}
\renewcommand{\ge}{\geqslant}
\renewcommand{\geq}{\geqslant}

%----   
\newcommand*{\TableBE}[5]{
\begin{table}[#1] %\captionabove
\vspace*{-#5mm}
\centering \sffamily \caption{\label{tab:#2}#3} \begin{tabular}{#4} \toprule }

\newcommand*{\TableEN}[3]{
\bottomrule \end{tabular}
\vspace{-#2mm}  \small \begin{flushleft}  #1 \end{flushleft}
\vspace{-#3mm}
\end{table}}

%----    
%  
\newcommand*{\WrapTableBE}[6]{
\renewcommand{\baselinestretch}{0.75}\small\normalsize
\begin{wraptable}{#1}{#5\textwidth} \sffamily
\begin{center} \vspace*{-#6mm}
\caption{\label{tab:#2}#3} \begin{tabular}{#4} \toprule }
% #1 : l, r   #2 : label   #3 : caption  #4 : cc|cc|rr|ll  #5 : 40mm

%    , 
\newcommand*{\WrapTableEN}[2]{
\bottomrule \end{tabular} \end{center} \vspace{-#2pt} \small #1  \end{wraptable}
\renewcommand{\baselinestretch}{1}\small\normalsize}

%----    
\usepackage{wrapfig} %   RisEpsRight

\newcommand*{\EpsWrapD}[7]{%
\begin{wrapfigure}[#5]{#3}{#2 \textwidth} %
\begin{center} \sffamily
\includegraphics*[width= #2 \textwidth ]{#1}
\vspace{-#7mm}
\caption{\label{fig:#1}#4}
\vspace{-#6pt}
\end{center}
\end{wrapfigure}}

%----    
\usepackage{clipboard} % It is used to |copy and \HL\Paste the texts with tasks
\usepackage{newfile}
\newoutputstream{ZO}
\openoutputfile{Zadachi.tex}{ZO}
\newcommand*{\itemZO}[2]{\item  \label{enum:#1}%
\Copy{#1}{\emph{\ifbool{For_Internet}{\blue{ #2 }}{#2}}}%
\addtostream{ZO}{$\{$\thechapter.\theenumi $\}$}}

\endinput

%+++++++++++++++++
%  \Ch1.tex  %  1
\chapter{\label{ch:Chast1}  }
\section{ }
\hs
         (, )  ,        .
       ,       
        .
      wrapfig  floatflt,   .
      ,   .

          
      ,
        ,
  --     TikZ.
%    ,  .      .
          ,   pdf-
  tex$\to$dvi$\to$ps$\to$pdf   
 ,    tex$\to$dvi$\to$pdf.

\section{  }
\hs
    ,     .
   ,       ,     .

          --      .
              .
\BEA
   \sum_{\varkappa=0,...}(1/2)^{\varkappa} \leq {\mb 2}, & \T{   text, $e^x$, \vep{2}{1}{3}   },\\
   \sum\nolimits_{\phi=0,...}(1/2)^{\phi} \le {\mb 2},   & {\text    text, \tg(x) }.
\ENA

\section{   \thechapter}
\begin{enumerate}[$\{$\thechapter.1$\}$]
\begin{writeverbatim}{ZO}
\section{    ~\ref{ch:Chast1}}
\end{writeverbatim}
%---------------------
\itemZO{Zadacha11}{,   ,  $f= \int_0^{\infty} \cos(x/a) \; dx =0$.}
\begin{writeverbatim}{ZO}
\Paste{Zadacha11}\smallskip\\
\hs
   .
     ,  $f = \lim_{R \to \infty} \sin(R/a) = ??$,   .
      -  ,  :
\BE \nn
f = \int_0^{\infty} e^{-bx}\; \cos(x/a) \; dx = \frac{b}{b^2+1/a^2}.
\EN
        .
   ,   ,   $b=0$.
    $f = 0$,    .

\end{writeverbatim}
\end{enumerate}

%+++++++++++++++++
%  \Ch2.tex  %  2
\chapter{\label{ch:Chast2}    }
\section{  ?}
\hs
    ,         \emph{},
   Yo.
          !
      \emph{}!

\section{ }
\hs
             ‘...’  “...”.
       («...»)   („...“) ,   «»  «» .

\WrapTableBE{r}{C2_parties}{   }{g llll}{0.3}{8}
\CR   & I  & II  & III  & IV   \\
\midrule
  & 0 & 0 & 1 & 1  \\
  & 1 & 1 & 0 & 1  \\
  & 0 & 1 & 1 & 0  \\
\WrapTableEN{I, II, III, IV --  , 0  1 --  (, )}{5} %
%
   «»   «» («  ,  „“»).

     «»    \verb|\glqq|   \verb|\grqq|,
  «» --– \verb|\flqq|   \verb|\frqq|.
       babel.

      .
   , «»   ,    -     .

\section{   \thechapter}
\begin{enumerate}[$\{$\thechapter.1$\}$]
\begin{writeverbatim}{ZO}
\section{    ~\ref{ch:Chast2}}
\end{writeverbatim}
%---------------------
\itemZO{Zadacha21}{ .~\fref{tab:C2_parties}        .
          ()    , $0 \le$$\le 1$.
              ,           ? }
\begin{writeverbatim}{ZO}
\Paste{Zadacha21}\hs

\EpsWrapD{P_ABC}{0.28}{r}{ }{8}{0}{6}

   .
      ,     $a+b \ge c$, 
($a,b,c$) --     , . . \fref{fig:P_ABC}.

       --     ,     .
       1.          1,      ,    .
      .

\end{writeverbatim}
\end{enumerate}
\endinput
%  (TikZ)   :
\tikzsetnextfilename{P_ABC}
\begin{tikzpicture}
\coordinate(a) at (1,0);
\coordinate(b) at (-1.3,0);
\coordinate(c) at (0,1);
\draw[very thick] (a) --node[below]{$a$} (b)--node[above left]{$b$} (c)--node[above right]{$c$} (a);
\shade[ball color=blue] (a) circle(0.3) node[below=3mm]{};
\shade[ball color=red]  (b) circle(0.4) node[below=4mm]{};
\shade[ball color=green](c) circle(0.5) node[above=5mm]{};
\end{tikzpicture}

%+++++++++++++++++
%  Figs\P_ABC.eps  % ,  - 

%+++++++++++++++++
%  Zadachi.tex    

%+++++++++++++++++
%  Zadachi_Head.tex %      
\chapter{ }
\input{Zadachi}
\endinput





6.3编译这些文件的结果











注释

(*)我认为Latech上最好的俄语教科书是Chebotaev和Kotelnikov撰写的书“ LaTeX in Russian”,例如,请参见:studlab.com/pdf/book/LaTeX-po-russki.pdf据我所知,它的版权已经过期,现在没有任何东西可以阻止读者下载免费的电子版本。



(**)我将此事通知了I. Kotelnikov,他答应予以解决。



(继续可能会或可能不会。)



All Articles