みなさんこんにちは。 最近、私は学生生活のターニングポイント-学士論文も追い越しました。 この注目すべき現象の多くの正式な詳細の中で、規範的制御は特に顕著です。 いいえ、学術テキストの設計のための標準を含む標準が必要であることを理解し、強く支持します。 私たちの標準は、西洋のものとは異なり、むしろばかげているだけです。 彼らはインクや紙を節約しません、彼らは命名法によって文献の検索を簡素化しませんが、名前の読みを複雑にします。 標準のテキストは、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倍になります。手動でパディングとスペーシングを行い、
ヘッダーをフォーマットするには、
titlesec
パッケージを使用します。 規格によれば、章(セクション)は中央に「Chapter N」という行を付けて書かれ、サブセクションと段落は章内で番号が付けられ、インデントされて整列されます。 すべてが太字で、章の見出しも大文字で入力されています。
タイトルの
\titleformat
構成されます。 彼女には次のオプションがあります。
- 1つ目は、カスタムタイトルのレベル(たとえば、章またはセクション)です。
- 2番目のオプションはヘッダー形式です。 配置のグローバルスタイルを説明します-中央に「ぶら下がる」、テキストの前に通常の太線で印刷する、テキストを入力する、余白に配置する、などのいずれかです。 フォームの完全なリストはパッケージマニュアルに記載されていますが 、ここでは章のデザインに表示フォームのみを使用しています。
- 3番目のパラメーターは、ヘッダー全体を印刷する前に呼び出されるコマンドです。
- 4番目のパラメーターはラベルデザインです。
- 5番目のパラメーター-ラベルとタイトルテキスト間の距離(フォームに応じて水平または垂直);
- 6番目のパラメーター-ヘッダーテキストが印刷される前に呼び出されるコマンド。
- 7番目のオプション-ヘッダーのテキストを印刷した後に呼び出されるコマンド。
これらのコマンドを使用すると、章のタイトルのテキストを大文字にする必要がある場合を除き、必要なすべてのデザインを実現できます。
\MakeUppercase
は、1つのパラメーターでのみ機能し、
\bffamily
ように使用して、印刷形式を「グループの最後に
サブセクションのインデント設定の\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 }
リスト
標準のリストの要件は次のとおりです。
- 最初のレベルの番号付きリストは、「a)」、「b)」、「c)」としてマークされます... 2番目のレベルでは、「1)」、「2)」、「3)」としてマークされます。 はい、はい、ここにもロジックのドロップは表示されません。
- 順不同リストはハイフネーションされます。
残念ながら、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番目に苦痛な段階です。 モデルに応じて調整する必要がありますが、この点に関して標準は冗長ではありません。 パターンに従ったチューニングの結果は、間隔の間にある「魔法の定数」の束です。
考慮すべきさまざまなささいなもののリストは次のとおりです。
- ページ番号のある列の上の「ページ」という単語。
- 太字で大文字の章(および予備の「第N章」)を強調表示します。
- 通常の章のレベルでの特別なセクション(「はじめに」、「略語のリスト」、「結論」、「参考文献のリスト」...)の目次への包含。ただし、「章」と番号付けはなし。
- 目次にサブセクションとパラグラフを含めるが、サブパラグラフ以下は含まない。
- さまざまな美しい配置。
幸いなことに、
tocloft
パッケージがあります。 ドキュメントをこのノートのテキストにコピーするつもりはありません。目次のすべてのピクセルを文字通り設定する無数のコマンドが含まれています。 これらのコマンドはすべて、「ただし、サブセクションの名前のテキストと点線の先頭の間にこれを入力します」というスタイルの置換です。 前文では、目次の外観をカスタマイズするような9つのコマンドを使用しています。
これらのコマンドは、1つを除き、上記のリストから必要なすべてのものを構成します。 特別なセクションは特別な方法で処理する必要があります。\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
特別なセクション(要約、紹介、略語のリスト、結論、参考文献のリスト)
リストされているセクションは特に作成されています。 まず、それぞれが新しいページで始まります。 これは問題ではありません-
\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つのパラメーターがあります。
- 行を追加するリストのタイプ。 私たちの場合、これはtoc-目次です。
- 線を配置するレベル。
- 追加する文字列テキスト。
最初と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
呼び出す前にカウンターを変更する必要があります。
手動でカウンタ変更コマンドをさらに2回呼び出す必要があることに注意してください。 ドキュメントの最後に1回(上記の\usepackage { etoolbox }
\pretocmd { \chapter }{ \addtocounter { totfigures }{ \value { figure }}}{ }{ }
\pretocmd { \chapter }{ \addtocounter { tottables }{ \value { table }}}{ }{ }
\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:すべて一緒に参照します。