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:すべて一緒に参照します。



All Articles