1. ホーム
  2. latex

[解決済み] LateXで名前が違う2つのアブストラクト

2022-02-15 19:33:22

質問

博士論文にLateXのテンプレートを使っていますが、このリンクから入手できますか? https://github.com/kks32/phd-thesis-template/blob/master/Classes/PhDThesisPSnPDF.cls 大学の要望で抄録を2つ入れたいのですが、どうすればいいですか?1つは"Abstract"という名前で、もう1つは"Lay Summary"という名前で、です。しかし、2つ目の抄録のタイトルを変更することができず、困っています。抄録は、以下の行から始まるtexファイルです。

\begin{abstract}
....
\end{abstract} 

documentclassはカスタム定義された環境です。

\documentclass[a4paper,12pt,times,numbered,print,index]{Classes/PhDThesisPSnPDF}

このコードを、2番目のabstractの、 \begin{abstract} 行の前で試したところ、エラーメッセージが出ました: "! LaTeX Error: \LaTeX Error: LaTeX undefined".

\renewcommand{\abstractname}{Lay Summary}

また、仮にタイトルを変更するとしても、2回目だけグローバルに変更する必要はない。2回目の抄録は、番号付きのコンテンツの前、理想的には1回目の抄録の後に表示させたいのです。何かいい方法はないでしょうか?

解決方法は?

私は、かなり簡単に言って、テスト済みの解決策を持っています。

私のフォルダーに、あなたのカスタム documentclass ファイルを docclass.cls .

同じフォルダーに、保存してコンパイルした MWE /メイン .tex ファイルを作成します。

\documentclass[a4paper,12pt,times,numbered,print,index]{docclass}

\newenvironment{laysummary} {
  \cleardoublepage
  \setsinglecolumn
  \chapter*{\centering \Large Lay Summary}
  \thispagestyle{empty}
}

\begin{document}

\begin{abstract}
First.
\end{abstract}

\begin{laysummary}
Second.
\end{laysummary}

\chapter{Chapter}
Some Text.

\end{document}

これは、Abstractで実現したかった出力を生成します。 レイ・サマリー

重要なのは、行の中にあることに注目してください。

\newenvironment{laysummary} {
  \cleardoublepage
  \setsinglecolumn
  \chapter*{\centering \Large Lay Summary}
  \thispagestyle{empty}
}

は、あなたのカスタム documentclass の 1105-1121 行目から取得したものです。

\newenvironment{abstract} {
\ifPHD@abstract
% Separate abstract as per Student Registry guidelines
  \thispagestyle{empty}
  \setsinglecolumn
  \begin{center}
    { \Large {\bfseries {\@title}} \par}
    {{\large \vspace*{1em} \@author} \par}
  \end{center}
\else
% Normal abstract in the thesis
  \cleardoublepage
  \setsinglecolumn
  \chapter*{\centering \Large Abstract}
  \thispagestyle{empty}
\fi
}

私はこれらの後者を削除したり、修正したりしませんでした 内部 documentclassファイルを編集し、そのコピーをメインのtexファイルに貼り付けました。もし、メインのtexファイルをすっきりさせたいなら、私の6行の定義する laysummary environmemtは、documentclass clsファイルの最後に貼り付けてもかまいません。