LaTeXの孊士号、たたは150行のDSTU 3008-95

画像
みなさんこんにちは。 最近、私は孊生生掻のタヌニングポむント-孊士論文も远い越したした。 この泚目すべき珟象の倚くの正匏な詳现の䞭で、芏範的制埡は特に顕著です。 いいえ、孊術テキストの蚭蚈のための暙準を含む暙準が必芁であるこずを理解し、匷く支持したす。 私たちの暙準は、西掋のものずは異なり、むしろばかげおいるだけです。 圌らはむンクや玙を節玄したせん、圌らは呜名法によっお文献の怜玢を簡玠化したせんが、名前の読みを耇雑にしたす。 暙準のテキストは、Microsoft Word゚ディタヌで䜜業する人々によっお蚭蚈および蚘述されおいるこずは蚀うたでもありたせん。 繰り返しになりたすが、私はWordに察しお䜕もありたせん。それは匷力なシステムです。 しかし、その䞭の技術的なテキストは入力するのに䞍䟿であり、柔軟性の点で、ドナルドクヌヌス-LaTeXの䞍滅の創造に䜕床も倱いたす。

したがっお、卒業蚌曞の執筆は、デザむンDSTU 3008-95のりクラむナ暙準の芏範の前文を蚭定するのに4時間を費やしたずいう事実から始たりたした。 私の知る限り、ロシアのGOSTずほが完党に䞀臎しおいたす。 既補の゜リュヌションたずえば、 disser があるこずは知っおいたしたが、2、3回の詊行の埌、各パヌツを自分で構成するこずにしたした。 トレヌニング甚。 トレヌニングは成功したした-LaTeXに぀いおの新しいこずの深byを孊びたした。このモンスタヌを完党に孊ぶこずは䞍可胜です:-)

カットの䞋で、各特定の郚分をセットアップするプロセスずそのラむティングでの䜿甚、および卒業蚌曞の䜜成をさらに簡玠化するさたざたな小さなこずに぀いお完党に説明したす。 すぐに譊告したす。どこかで、私の決定は束葉杖のように芋えるかもしれたせん。 どこか普遍的ではありたせん。 私はこれを知っおおり、コメントで批刀や提案を理解し、受け入れ、歓迎したす;-)

ビレット


空癜から始めたしょう。 ディストリビュヌションキットWindowsのMiKTeXたたはLinux / Macの同様のものがむンストヌルされおおり、キリル文字のPsCyrフォントが指瀺に埓っお蚭定されおいるず仮定したす。 「オンザフラむ」で远加パッケヌゞのむンストヌルを有効にするこずを忘れないでください-あなたはそれらの倚くが必芁になりたす:)

暙準では、すべおのテキストを14 Times New Romanフォントで1.5間隔で蚘述する必芁がありたす。 最埌はMicrosoft Wordの甚語です:) LaTeXで類䌌物を䜜成するには、 extsizesパッケヌゞを接続したす。これにより、ドキュメントクラスのパラメヌタヌに14ptが远加され、以䞋で説明するように他のすべおが構成されたす。
\ documentclass [ a4paper,14pt,russian ]{ extreport }

\usepackage { extsizes }
\usepackage { cmap } % pdf
\usepackage [ T2A ]{ fontenc }
\usepackage [ utf8 ]{ inputenc }
\usepackage [ russian ]{ babel }
\usepackage { pscyr }

\usepackage { graphicx } %
\usepackage { amssymb,amsfonts,amsmath,amsthm } %
\usepackage { indentfirst } %
\usepackage [ usenames,dvipsnames ]{ color } %
\usepackage { makecell }
\usepackage { multirow } %
\usepackage { ulem } %

\linespread { 1.3 } %
\renewcommand { \rmdefault }{ ftm } % Times New Roman
\frenchspacing

\begin { document }

\end { document }
\linespread{1.3}の蚭定行間隔を1.3倍にするは、Wordの䞖界で「1.5間隔」ず呌ばれるものにほが察応しおいたす。 cmapパッケヌゞには、結果のPDFpdfLaTeXを䜿甚に文字テヌブルが含たれおいるため、゚ンコヌドを歪めるこずなくPDFのキリル文字テキストをコピヌおよび怜玢できたす。 ゜ヌスファむルに぀いおは、UTF-8゚ンコヌドで保存したす;通垞の蚭定では、 inputenc䜿甚しおパラメヌタヌの倀を倉曎したす。 残りのパッケヌゞの目的に぀いおは、デザむンの前文ではなく、卒業蚌曞の䜜成に぀いお盎接議論するずきに、少し埌でコメントしたす。

ペヌゞネヌション


ペヌゞネヌションは右䞊隅になければなりたせん。 私の堎合、最初の4ペヌゞは衚玙、課題シヌト、カレンダヌプラン、およびその他の官僚機構で占められおいるため、5から始たりたす。 それらのフォヌムはdoc / docxで送信され、LaTeXでこの蚭蚈のシミュレヌションに時間を費やすよりも、そのたた印刷する方がはるかに簡単です;

ペヌゞのヘッダヌずフッタヌ甚に蚭蚈されたfancyhdrパッケヌゞを接続し、そのデフォルトを無効にしたす。 ペヌゞは、ヘッダヌの\thepageの数字 \thepage を陀いお完党に空癜になりたす。
\usepackage { fancyhdr }
\pagestyle { fancy }
\fancyhf { }
\fancyhead [ R ]{ \thepage
}
\fancyheadoffset { 0mm }
\fancyfootoffset { 0mm }
\setlength { \headheight }{ 17pt }
\renewcommand { \headrulewidth }{ 0pt }
\renewcommand { \footrulewidth }{ 0pt }
\fancypagestyle { plain }{
\fancyhf {
}
\rhead { \thepage
}}
\setcounter { page }{ 5 } % №5
チャプタヌの最初のペヌゞでは、デフォルトでプレヌンペヌゞスタむルが䜿甚されるこずに泚意しおください。 たた、 fancyhdr芳点から再定矩する必芁がありたす。これにより、章の最初のペヌゞにも番号が付けられたす \fancypagestyle参照。

画像ず衚のキャプション


眲名圢匏を構成したす。この圢匏では、たずcaptionパッケヌゞをcaptionたす。 盞互接続された耇数のサブパヌツを含む詳现なむラストが奜きなので、サブsubcaptionパッケヌゞも含めたす。 芏栌によれば、図の名前は図の䞋にあり、衚の名前は衚の䞊にありたす。 これらの堎所を自分で監芖する必芁がありたす以䞋を参照が、空のスペヌスの割り圓おを最適化するために、この法埋に぀いおパッケヌゞに䌝えるこずができたす。
\usepackage [ tableposition=top ]{ caption }
\usepackage { subcaption }
\DeclareCaptionLabelFormat { gostfigure }{ #2 }
\DeclareCaptionLabelFormat { gosttable }{ #2 }
\DeclareCaptionLabelSeparator { gost }{ ~---~ }
\captionsetup { labelsep=gost }
\captionsetup [ figure ]{ labelformat=gostfigure }
\captionsetup [ table ]{ labelformat=gosttable }
\renewcommand { \thesubfigure }{ \asbuk { subfigure }}
ここでは、 \DeclareCaptionLabelFormatを䜿甚しお\DeclareCaptionLabelFormat新しいカスタム眲名圢匏が構成され、ドキュメントのすべおの図面ず衚に割り圓おられたす。 最初のパラメヌタヌ1は暙準のラベルテキストです別の行ずしお構成するのではなく、1を䜿甚せずに明瀺的に蚘述するこずをお勧めしたす。2番目のパラメヌタヌ2は画像/テヌブルの番号です。
\DeclareCaptionLabelSeparatorは、キャプションラベルず指定したテキストの間にセパレヌタを蚭定したす。 私たちの堎合、これは平均的なダッシュです。

最埌の行に぀いおもコメントする必芁がありたす。 むラストをサブパヌトに分割するこずもあるため、 subfigureパッケヌゞを䜜成できるため、これらのsubfigureには番号をsubfigure必芁がありたす。 それらを小さな文字で順番に番号付けするのが慣習です-しかし、私たちの堎合、これらはラテン文字ではなくキリル文字の文字でなければなりたせん カりンタヌのキリル文字衚珟 arabic 、 roman latin 、 latinなどのよく知られた衚珟ずの類掚によるは、既にbabelパッケヌゞに実装されおいたす。 小さなキリル文字の堎合\asbukず呌ばれ、倧きなキリル文字の堎合は\asbukず呌ばれたす。

写真の兞型的なデザむンの䟋を瀺したす。
\begin { figure }[ ht ]
\centering
\begin { subfigure }[ b ]{ 0.3 \textwidth }
\centering
$$ \begin { array }{ l }
F \to x \ ;| \ ; y \ ;| \ ; (S) \\
T \to F \ ;| \ ; T \ast F \\
S \to T \ ;| \ ; S + T \\
\end { array } $
$
\ caption { }
\end { subfigure
} %
\begin { subfigure }[ b ]{ 0.6 \textwidth }
\centering
\includegraphics [ scale=0.7 ]{ parseTree.png }
\ caption { }
\end { subfigure
}

\ caption { (a) $G$ ;
() $x+y \ast y$ $G$ .
}
\ label { fig_parsetree }
\end { figure }
そしおテヌブル
\begin { table }[ ht ]
\ caption { }
\ label { tab_weight }
\centering
\begin { tabular }{ |c|c|c|c|c|c|c|c|c| }
\ hline \multirow { 2 }{ * }{ $x_i$ } & \multicolumn { 4 }{ c| }{ $x_j$ } &
\multicolumn { 2 }{ c| }{ } & \multicolumn { 2 }{ c| }{ } \\
\cline { 2-9 } & $X_1$ & $X_2$ & $X_3$ & $X_4$ & $w_i$ &
${ K_ \text { }} _i$ & $w_i$ & ${ K_ \text { }} _i$ \\
\ hline $X_1$ & 1 & 1 & 1.5 & 1.5 & 5 & 0.31 & 19 & 0.32 \\
\ hline $X_2$ & 1 & 1 & 1.5 & 1.5 & 5 & 0.31 & 19 & 0.32 \\
\ hline $X_3$ & 0.5 & 0.5 & 1 & 0.5 & 2.5 & 0.16 & 9.25 & 0.16 \\
\ hline $X_4$ & 0.5 & 0.5 & 1.5 & 1 & 3.5 & 0.22 & 12.25 & 0.20 \\
\ hline \multicolumn { 5 }{ |c| }{ : } & 16 & 1 & 59.5 & 1 \\
\ hline
\end { tabular }
\end { table }
\multirowおよび\multicolumnコマンドを䜿甚しお矎しいテヌブルを䜜成するこずは泚目に倀したす。 これらは、それぞれHTMLの<table>パラメヌタヌであるrowspanおよびcolspanに察応しおいたす。 multirowに、最初はmultirowパッケヌゞを接続する必芁がありたす。

蚭蚈の結果を以䞋に瀺したす。
描画の堎合


テヌブルの堎合


芋出し


DSTU 3008-95の芋出しは単なる歌です。 むしろ、哀thoughtの念。 ヘッダヌを敎列するためのすべおの芁件は、Wordの甚語で創造的な魂の皮類によっお組み立おられたした。ここをスキップするず1行、2行があり、1.5間隔があり、2倍になりたす。手動でパディングずスペヌシングを行い、 ピクセルポむントにハヌドコヌドしたす。 これは、私が「キャリア」党䜓を通しお頌りにしおきた最も嫌なプログラミングスタむルだず思いたす。 この堎合、LaTeXはプログラミングずは関係ありたせんが:)

ヘッダヌをフォヌマットするには、 titlesecパッケヌゞを䜿甚したす。 芏栌によれば、章セクションは䞭倮に「Chapter N」ずいう行を付けお曞かれ、サブセクションず段萜は章内で番号が付けられ、むンデントされお敎列されたす。 すべおが倪字で、章の芋出しも倧文字で入力されおいたす。

タむトルの\titleformat構成されたす。 圌女には次のオプションがありたす。

これらのコマンドを䜿甚するず、章のタむトルのテキストを倧文字にする必芁がある堎合を陀き、必芁なすべおのデザむンを実珟できたす。 \MakeUppercaseは、1぀のパラメヌタヌでのみ機胜し、 \bffamilyように䜿甚しお、印刷圢匏を「グルヌプの最埌に氞久に」切り替えるこずはできたせん。 したがっお、芋出しラベル「Chapter」たたは「Appendix」ずいう単語を倧文字にするために適甚できたしたが、芋出しテキストは自分で倧文字で印刷する必芁がありたした。 たあ、䜕も、犁止されたボタンを数回抌すこずはそれほど怖くありたせんでした:)
\usepackage { titlesec }

\titleformat { \chapter }[ display ]
{ \filcenter }
{ \MakeUppercase { \chaptertitlename } \thechapter }
{ 8pt }
{ \bfseries }{ }

\titleformat { \section
}
{ \normalsize \bfseries }
{ \thesection }
{ 1em }{ }

\titleformat { \subsection
}
{ \normalsize \bfseries }
{ \thesubsection }
{ 1em }{ }

%
\titlespacing* { \chapter }{ 0pt }{ -30pt }{ 8pt }
\titlespacing* { \section }{ \parindent }{ *4 }{ *4 }
\titlespacing* { \subsection }{ \parindent }{ *4 }{ *4 }
サブセクションのむンデント蚭定の\parindentに泚意しおください。サブセクションを匷制的に段萜のむンデントに揃えたす。

そしお、これが通垞の\chapterず\section印刷するずきの倖芳です


フィヌルド


ペヌゞマヌゞンのカスタマむズは、今日の最も簡単なタスクです。
\usepackage { geometry }
\geometry { left=3cm }
\geometry { right=1.5cm }
\geometry { top=2.4cm }
\geometry { bottom=2.4cm }


リスト


暙準のリストの芁件は次のずおりです。

残念ながら、LaTeXは、 itemizeずenumerate環境itemize倧量のスペヌスで囲み、それらに特別なむンデントを䜜成するのが倧奜きです。 この邪悪な習慣を克服するには、 enumitemパッケヌゞを䜿甚しおenumitem蚭定し、远加のむンデントをすべお無効にしたす。 enumitem 、 enumitemは、 enumitemしたasbukカりンタヌの新しい衚瀺に぀いお䜕もenumitemしおいないため、 \AddEnumerateCounterそれを指定する必芁がありたす。 3番目のパラメヌタヌは、最も広い衚珟の䟋です印刷時にパッケヌゞはこの幅に焊点を合わせたす。 䜕らかの理由理由なしで、Times New Romanのキリル文字の最も広い文字は正確に「m」であるように思えたす。 いずれにせよ、「a」から「m」以䞋の長さの番号付きリストを䜜成する人は、私に関しおは保健圓局の现心の泚意に倀する:)
\usepackage { enumitem }
\ makeatletter
\AddEnumerateCounter { \asbuk }{ \@asbuk }{ ) }
\ makeatother
\setlist { nolistsep }
\renewcommand { \labelitemi }{ - }
\renewcommand { \labelenumi }{ \asbuk { enumi } ) }
\renewcommand { \labelenumii }{ \arabic { enumii } ) }


目次


目次は、プリアンブル蚭定プロセスの2番目に苊痛な段階です。 モデルに応じお調敎する必芁がありたすが、この点に関しお暙準は冗長ではありたせん。 パタヌンに埓ったチュヌニングの結果は、間隔の間にある「魔法の定数」の束です。

考慮すべきさたざたなささいなもののリストは次のずおりです。

幞いなこずに、 tocloftパッケヌゞがありたす。 ドキュメントをこのノヌトのテキストにコピヌする぀もりはありたせん。目次のすべおのピクセルを文字通り蚭定する無数のコマンドが含たれおいたす。 これらのコマンドはすべお、「ただし、サブセクションの名前のテキストず点線の先頭の間にこれを入力したす」ずいうスタむルの眮換です。 前文では、目次の倖芳をカスタマむズするような9぀のコマンドを䜿甚しおいたす。
\usepackage { tocloft }
\renewcommand { \cfttoctitlefont }{ \hspace { 0.38 \textwidth } \bfseries \MakeUppercase }
\renewcommand { \cftbeforetoctitleskip }{ -1em }
\renewcommand { \cftaftertoctitle }{ \ mbox { } \hfill \\ \ mbox { } \hfill { \footnotesize . } \vspace { -2.5em }}
\renewcommand { \cftchapfont }{ \normalsize \bfseries \MakeUppercase { \chaptername } }
\renewcommand { \cftsecfont }{ \hspace { 31pt }}
\renewcommand { \cftsubsecfont }{ \hspace { 11pt }}
\renewcommand { \cftbeforechapskip }{ 1em }
\renewcommand { \cftparskip }{ -1mm }
\renewcommand { \cftdotsep }{ 1 }
\setcounter { tocdepth }{ 2 } % — subsection
これらのコマンドは、1぀を陀き、䞊蚘のリストから必芁なすべおのものを構成したす。 特別なセクションは特別な方法で凊理する必芁がありたす。

特別なセクション芁玄、玹介、略語のリスト、結論、参考文献のリスト

リストされおいるセクションは特に䜜成されおいたす。 たず、それぞれが新しいペヌゞで始たりたす。 これは問題ではありたせん- \newpageが\newpageコマンドを知っおいたす。 第二に、それらのタむトルはペヌゞの䞭倮に倪字の倧文字で描画され、...ず2行でテキストから分離されたす。 最埌に、このナンセンスを完成させるために、特別なセクションが章レベルでリストされおいたすが、番号は付けられおおらず、章ではありたせん。 誰かが䜕の関係もないように感じたすか

\chapter*コマンドは、明らかな理由から適切ではありたせん。開始した章は目次に含たれおいたせん。 さらに、テキストの前に䜕らかの方法で二重改行を配眮する必芁がありたす-たあ、毎回\newline手動で曞いおみたせんか

簡単な方法を探しおいたせん。 独自のセクションを䜜成するこずにしたした。 結局のずころ、これはそれほど難しくありたせん。
セクションを定矩するには likechapterず呌びたす、最初に適切なフォヌマットコマンドを決定する必芁がありたす。 セクション名の䞭倮揃えず倧文字化を調敎するには-単に吐き出したす。 私がやった- \likechapterheadingは、枡されたセクション名を必芁に\likechapterheading出力したす。
\newcommand { \empline }{ \ mbox { } \newline }
\newcommand { \likechapterheading }[ 1 ]{
\begin { center
}
\ textbf { \MakeUppercase { #1 }}
\end { center }
\empline }
ただし、このセクションも目次に含めお、章のレベルに合わせる必芁がありたす。 そしお、ここであなたはすでに少しかわす必芁がありたす。

理論的には、目次に新しい行を远加するには、 \addcontentslineたす。 次の3぀のパラメヌタヌがありたす。
  1. 行を远加するリストのタむプ。 私たちの堎合、これはtoc-目次です。
  2. 線を配眮するレベル。
  3. 远加する文字列テキスト。

最初ず3番目では、すべおが明確です。 しかし、2番目に単玔に「章」ず曞くこずはできたせん。少し高く蚭定した䟿利なtocloftは、行の前に「章」ずいう単語を衚瀺するからです。 出口は1぀しかありたせん。最埌たで行っお、独自のセクションレベルを決定しおください。

LaTeXは目次で特定のレベルを印刷するずきに、内郚コマンド\l@XXX呌び出したす。ここで、XXXはレベルの名前章、セクションなどです。 このコマンドには、ヘッダヌテキストずペヌゞ番号の2぀のパラメヌタヌがありたす。 チヌムの目暙は、目次行を砎線、むンデント、および必芁なすべおのものずずもに盎接印刷するこずです。 独自の皮類のレベルを定矩する堎合は、レベル名にこのようなコマンドを定矩するだけです。 次に、 \addcontentslineコマンドを凊理するプロセスで、 \addcontentslineは2番目のパラメヌタヌを調べ、その定矩の䞭から察応する\l@XXX芋぀けたすXXXは2番目のパラメヌタヌに眮き換えられ、目次の行を終了したす。

コマンド\l@likechapterを決定し \l@likechapterに、点線の点の間の期間を同時に蚭定し、 \likechapter定矩を終了したす
\ makeatletter
\renewcommand { \@dotsep }{ 2 }
\newcommand { \l @likechapter }[ 2 ]{ { \bfseries \@dottedtocline { 0 }{ 0pt }{ 0pt }{ #1 }{ #2 }}}
\ makeatother
\newcommand { \likechapter }[ 1 ]{
\likechapterheading { #1
}
\addcontentsline { toc }{ likechapter }{ \MakeUppercase { #1 }}}

これで、䜜業の結果を確認できたす。 目次の始たりは次のずおりです。


特別なセクションを衚瀺しおも意味がありたせん。 \likechapter{}で印刷された、ペヌゞの䞭倮にある倧胆な倧文字のテキストです。

参照資料


゜ヌスぞのリンクを䜜成するずき、私はBibTeXを䜿甚しないこずにしたした。 雑誌の次の号を説明するずき、これらすべおのスラッシュ、ピリオド、カンマ、ダッシュを慎重に配眮する必芁は、単に殺すだけです。 しかし、残念ながら、私は以前にBibTeXを䜿甚したこずがなく、その蚭蚈の構成に察凊したいずいう垌望は、プリアンブルの終わりたでにすでになくなっおいたした。 なんお残念。

ずころで、既に述べた論文プロゞェクトで既に構成されおいるBibTeXファむルは、この問題をほが完党に解決しおいるず確信しおいたす。

しかし、今のずころ、私は特に私の前文を怜蚎しおいたす。 参考文献のリストを䜜成するために、私は\bibitem叀き良き環境ず\bibitemを玔粋な圢匏で䜿甚したした。 それらを少し構成するには、以䞋を行う必芁がありたした。
\usepackage [ square,numbers,sort&compress ]{ natbib }
\renewcommand { \bibnumfmt }[ 1 ]{ #1. \hfill } % —
\renewcommand { \bibsection }{ \likechapter { }} %
\setlength { \bibsep }{ 0pt }
これで、芋出し「参照」が類䌌の章ずしお䜜成され、それに応じお目次に配眮されたす。 natbibパッケヌゞは、「[ natbib ]」のようなものに参照されるず、数字をうたく圧瞮したす。

ペヌゞ、図、衚、゜ヌスのカりンタヌ


この芏栌では、䜜業の芁玄が「論文107 p。、14図、19タブ、2付録、28゜ヌス」ずいう行で始たるこずを芁求しおいたす。 圓然のこずながら、LaTeXは、これらすべおの数量を自動的に蚈算し、コマンドを䜿甚しおテキストに目的の数倀を挿入する手段がなければ、珟圚の最適なレむアりトシステムではありたせん。

ペヌゞから始めたしょう。 ここで最も簡単なのは、 lastpageパッケヌゞを接続するこずlastpageテキストでLastPage 、 \pageref*を䜿甚しおLastPageする新しいLastPageラベルを参照しおいLastPage 。
\usepackage { lastpage }
% ...
: \pageref * { LastPage } ~., ...

図ず衚を䜿甚するず、そのような目的のために䜜成されたtotcountパッケヌゞは、ドキュメント内のさたざたなオブゞェクトの数をカりントするのに圹立ちたす。 残念ながら、珟時点では深刻な欠点がありたすカりンタヌは通垞、番号付けが完了しおいないずきに各章の終わりにリセットされるため、蚘事ではなくレポヌトのような文曞の堎合、数字の合蚈数ではなく、数字の数だけが取埗されたす最埌の章。 䜜者にはバグが通知され、䜜業䞭に回避策を芋぀ける必芁がありたした。

レシピはStackOverflowの広倧さで発芋されたした。 オブゞェクトの皮類ごずに独自のカりンタヌを定矩し、このカりンタヌの倀をaux-fileに曞き蟌みたすコンパむルの最埌に、 \AtEndDocument 。 次のコンパむルで、ファむルから取埗され、定矩したコマンドがテキスト内の必芁な番号に眮き換えられたす。 したがっお、pdfLaTeXを2回起動するず、正しいカりンタヌ倀を持぀テキストが取埗されたす。
\newcounter { totfigures }
\newcounter { tottables }
\ makeatletter
\AtEndDocument { %
\addtocounter { totfigures }{ \value { figure }} %
\addtocounter { tottables }{ \value { table }} %
\immediate \write \@mainaux { %
\string \gdef \string \totfig { \number \value { totfigures }} %
\string \gdef \string \tottab { \number \value { tottables }} %
} %
}
\ makeatother
% ...
: \pageref * { LastPage } ~., \totfig ~., \tottab ~...

この゜リュヌションには臎呜的な欠陥がありたす。各図たたは衚のカりンタ倀を手動で増やす必芁がありたす。 各章の最埌にのみ察応するシステムカりンタヌから数字/テヌブルの数をカりンタヌに远加するこずで、生掻を少し簡玠化できたすが、ずにかくコヌドによるコピヌペヌストが存圚したす。 ただし、このプロセスは自動化できたす。

自動化はetoolbox 。 ずりわけ玠晎らしい\pretocmdがありたす。これにより、前のコマンドの定矩にいく぀かの远加コヌドを割り圓おるこずができたす。 この堎合、 \chapter呌び出す前にカりンタヌを倉曎する必芁がありたす。
\usepackage { etoolbox }
\pretocmd { \chapter }{ \addtocounter { totfigures }{ \value { figure }}}{ }{ }
\pretocmd { \chapter
}{ \addtocounter { tottables }{ \value { table }}}{ }{ }
手動でカりンタ倉曎コマンドをさらに2回呌び出す必芁があるこずに泚意しおください。 ドキュメントの最埌に1回䞊蚘の\AtEndDocument参照。 そしお、チャプタヌずしお分類されるが、チャプタヌで呌び出されないアプリケヌションの開始前に䞀床䞋蚘参照。

最埌に、゜ヌスでも同じこずができたす。カりンタヌを定矩し、自動的にむンクリメントしお、コンパむルの最埌にAUXファむルにダンプしたす。 今回だけ、 \bibitemコマンドを\bibitemする必芁があり\bibitem 
\newcounter { totreferences }
\pretocmd { \bibitem }{ \addtocounter { totreferences }{ 1 }}{ }{ }

\AtEndDocument同様の行を远加するこずを忘れないでください䞊蚘参照
\string \gdef \string \totref { \number \value { totreferences }} %
テキスト「 \totref ...」で曞くこずができたす

甹途


アプリケヌションをいじる必芁がありたした。 たず第䞀に、目次が原因で、 \chapterずしお宣蚀されおいるにもかかわらず、チャプタヌの単語「チャプタヌ」ずアプリケヌションの単語「アプリケヌション」を印刷するようにtocloftを構成できたせんでした。 同時に、 titlesecパッケヌゞで定矩されおいる\chaptertitlenameおかげで、タむトル自䜓に必芁な単語を印刷しおも問題なく取埗できたす。

苊劎せずに束葉杖を䜜りたした。 アプリケヌションを...段萜ずしおフォヌマットするこずにしたした。 ずにかく、テキストの実際の段萜はどこにも䜿甚しおいたせん。 \chapterず同じタむトルで\paragraph衚瀺を蚭定し、likechapterレベルで目次に察応する行を远加するこずは小さな問題でした。
\usepackage [ title,titletoc ]{ appendix }

\titleformat { \paragraph }[ display ]
{ \filcenter }
{ \MakeUppercase { \chaptertitlename } \thechapter }
{ 8pt }
{ \bfseries }{ }
\titlespacing* { \paragraph
}{ 0pt }{ -30pt }{ 8pt }

\newcommand { \append }[ 1 ]{
\clearpage
\stepcounter { chapter
}
\paragraph { \MakeUppercase { #1 }}
\empline
\addcontentsline { toc }{ likechapter }{ \MakeUppercase { \chaptertitlename ~ \Asbuk { chapter }\ ;#1 }}}

これで、次のように䜿甚できたす。
\begin { appendices }
\renewcommand \thechapter { \Asbuk { chapter }}
\setcounter { chapter }{ 0 }

\append { }
...
\end { appendices }

存圚の耐えられない軜さに泚意しおくださいアプリケヌションは本質的にパラグラフであり、目次にlikechapter-sずしお曞かれおいたすが、本質的にアプリケヌションはチャプタヌであるため、チャプタヌカりンタヌを䜿甚しおカりントしたす:) \Asbukアプリケヌションは倧文字のキリル文字で番号付けするのが通䟋なので、 \Asbuk䜿甚されたす。

次に、孊士論文で指定されおいる2぀の必須アプリケヌションのそれぞれを完了する方法に぀いお詳しく説明したす。

付録A説明資料

最初に必芁なアプリケヌションはプレれンテヌションスラむドです。 Microsoft Power Pointでプレれンテヌションを䜜成したした。ここでは、これたで文句のないすばらしい補品を察象にしおいたす。 おそらく、LaTeXでプレれンテヌションを行うずきに、人生の転換点がすぐに来るかもしれたせんが、これたでのずころ、私はその段階ではありたせん。 䞻な論点は、Microsoft Officeバヌゞョン2007以降に組み蟌たれおいるLaTeXのようなマヌクアップ蚀語でプレれンテヌションに倚数の数匏を入力するこずです。

これで、プレれンテヌションの準備が敎い、卒業蚌曞の゜ヌスコヌドの暪にあるpptxファむルに保存されたした。コンパむル時にどのように自動的に卒業蚌曞PDFに挿入されたすかメ゜ッドが芋぀かりたしたが、非垞に簡単です。玠晎らしいパッケヌゞの助けを借りお、プレれンテヌションをPDFに倉換し、このPDFを生成されたものに貌り付けたすpdfpages。

ペヌゞごずに2぀のスラむドをフレヌムで囲んで衚瀺するこずにしたした。その過皋で、2぀のポむントを考慮する必芁がありたした。たず、アプリケヌションのペヌゞにも番号を付ける必芁がありたす。fancyhdrしたがっお、パッケヌゞにコマンドを䞎えお、含たれおいるペヌゞでも機胜するようにするこずを忘れないでください。第二に、アプリケヌションの最初のペヌゞには、プレれンテヌションの最初の2぀のスラむドだけでなく、芋出し「付録A」もありたす。最初の問題ず2番目の問題の䞡方pagecommandは、メむンチヌムのオプションのリストにあるパラメヌタヌによっお解決されたす\includepdf。すぐに䜿える゜ヌスコヌド
\usepackage { pdfpages }
% ...
\includepdfset { nup=1x2,frame=true,delta=10mm 10mm,noautoscale=true }
\includepdf [ pages=1-2,scale=0.55,offset=10mm -20mm,pagecommand={ \append { }} ]{ defence.pdf }
\includepdf [ pages=3-,scale=0.55,offset=10mm 0mm,pagecommand={ \fancyhead [ R ]{ \thepage }}]{ defence.pdf }

そしお結果


付録B゜フトりェア補品コヌド

挿入された゜ヌスコヌドをハむラむト衚瀺しお小さな等幅フォントで貌り付けお、卒業蚌曞のかなりの半分を占めないようにし、それ自䜓に玙を無駄にしないようにしたす。アプリケヌションではこれが蚱可されおいたす。

パッケヌゞは゜ヌスコヌドを匷調する玠晎らしい仕事をしたすlistings。圌は少し助けが必芁ですコヌドを印刷するフォントを指定するオプションbasicstyle、行に単語を折り返すように芁求するオプションbreaklines、プログラミング蚀語のキヌワヌドのセットを調敎するオプションmorekeywords-C2.0を認識し、C4.0で䜜成したした。パッケヌゞは他のすべおに察応し、その隣にあるファむルから゜ヌステキストをロヌドしたす。
\usepackage { listings }
%...
\append { }
\lstset { language= [ Sharp ] C,
morekeywords= { yield,var,get,set,from,select,partial
} ,
breaklines=true,
basicstyle= \footnotesize \ttfamily }
\linespread { 1 } %
\lstinputlisting { MyCoolProjectClass.cs }


ワヌクスペヌスの組織


LaTeXでのDSTU 3008-95暙準の翻蚳は終了したした。私の前文の最埌の数行は、論文の倚数のセクションやサブセクションで䜜業を敎理するのが最も䟿利だったこずに関連しおいたす。

もちろん、ドキュメント党䜓を倚くのファむルに分割したすサブセクションセクションごずに1぀のtexファむル。各章は、などの名前で個別のサブフォルダヌに保存したすchapter_ProgramSynthesis。このフォルダにはchapter_ProgramSynthesis.tex、章のサブセクションのアセンブリ、sec_XXX.tex特定のサブセクションを含む実際のファむル、および必芁なすべおの远加資料写真などを含むファむルがありたす。

メむンドキュメントの本文にチャプタヌファむルを含め、それを蚱可するには、サブファむルを含め、そのサブフォルダヌでマテリアルぞのパスを探したす。、パッケヌゞを䜿甚したすimport。\subimport䞀時的にファむル怜玢になるフォルダヌず、盎接むンクルヌドされるファむルずいう2぀のパラメヌタヌを取る玠晎らしいチヌムがありたす。卒業蚌曞に章を含めるために、補助コマンドを定矩し、名前で章を簡単に参照できるようになりたした。

メむンファむル内diploma.tex
\usepackage { import }
\newcommand { \includechapter }[ 1 ]{ \subimport { chapter_#1/ }{ chapter_#1 }}
\newcommand { \inputintro }{ \ input { sec_Intro } \newpage }
% ...
\includechapter { ProgramSynthesis }


ファむル内chapter_ProgramSynthesis/chapter_ProgramSynthesis.tex
\chapter { PROGRAM SYNTHESIS }

\inputintro
\ input { sec_Basics }
\ input { sec_Stages }
\ input { sec_Example }
\ input { sec_Conclusions }

ファむルsec_Basics.texずその他は同じサブフォルダヌにありたすchapter_ProgramSynthesis。同じサブフォルダヌからの画像ぞのリンクは盎接発生したす-蚘事の冒頭の定矩䟋を参照しおください。私は

チヌム\inputintroを玔粋な完璧䞻矩から決定したした。サブセクションを垞に「はじめに」sec_Intro.texず呌び、その埌に新しいペヌゞを開始するので、なぜ重耇したコヌドを曞くのですか :-)

おわりに


これに関しお、150行のプリアンブルのタむタニックな蚘述は完党であるず考えるこずができたす。繰り返したすが、この䜜業をすべお、暙準を芳察するための暙準ずしお「玔粋な」圢で䜿甚する必芁はないず思いたす。既成の゜リュヌションを䜿甚する方がはるかに簡単です。しかし、この蚘事を読んで、倚くのLaTeX愛奜家が倚くの新しい興味深いツヌルや機胜を孊び、䟿利なパッケヌゞでツヌルボックスを充実させ、おそらく1、2のメモを取るこずを願っおいたす。

最埌に、この無限のパワヌのためにLaTeXを正確に愛しおいたすよね;あなたのレむアりトで頑匵っおください

UPDすべお䞀緒に参照したす。

Source: https://habr.com/ru/post/J144648/


All Articles