本文の見出しを中央寄せにしたい

本文の見出しを中央寄せにしたい

- 佐藤 亮太 の投稿
返信数: 4
a4paper,jreport クラスで論文を執筆している学生です。本文の章の見出し(タイトル)のみを中央寄せにして、それ以外の見出し(節など)は左寄せにしたいと考えております。chapterコマンドを再定義したりtitlesecスタイルファイルを利用する方法などを試しましたが、節までも中央寄せになったり、そもそもエラーが出てコンパイルできないなどの問題に直面しました。どなたか本文の章の見出しのみを中央寄せにする方法を教えてくださるようお願い申し上げます。
佐藤 亮太 への返信

Re: 本文の見出しを中央寄せにしたい

- TONE Kozaburo の投稿
TONE Kozaburo への返信

Re: 本文の見出しを中央寄せにしたい

- 佐藤 亮太 の投稿
教えていただきありがとうございます。ドキュメントクラスをa4paper,dvipdfmx,openany,jsreporに変更し、教えて頂いたURLを参考にして、プリアンブルに以下を追加してコンパイルしてみました。しかしチャプターのタイトルのみが中央に置かれ、第○章の部分は変わらず左寄せに置かれたままで、第○章とチャプタータイトルの間に不自然な空白が生じてしまいました。どのように対処すれば良いでしょうか。

\makeatletter%% プリアンブルで再定義する際は必須


\def\@makechapterhead#1{\hbox{}%

\vskip2\Cvs

{\parindent\z@

\centering

\normalfont\huge\sffamily\gtfamily%% フォントを変更する

\leavevmode

\ifnum \c@secnumdepth >\m@ne

\setlength\@tempdima{\linewidth}%

\setbox\z@\hbox{\@chapapp\thechapter\@chappos}%

\addtolength\@tempdima{-\wd\z@}%

\unhbox\z@\nobreak

\vtop{\hsize\@tempdima#1}%

\else

#1\relax

\fi}\nobreak\vskip3\Cvs}

\makeatother%% プリアンブルで再定義する際は必須

佐藤 亮太 への返信

Re: 本文の見出しを中央寄せにしたい

- TONE Kozaburo の投稿
こんな感じでどうでしょうか。

% pLaTeX
\documentclass[12pt,a4paper]{jreport}

\makeatletter%% プリアンブルで再定義する際は必須

\def\@makechapterhead#1{\hbox{}%
  \vskip2\Cvs
  {\parindent\z@
%  \raggedright% 左揃え(オリジナルの定義)
  \centering% 中央揃え
%  \raggedleft% 右揃え
  \normalfont\huge\sffamily\gtfamily%% フォントを変更する
  \leavevmode
  \ifnum \c@secnumdepth >\m@ne
    \setlength\@tempdima{\linewidth}%
%%%    \if@mainmatter% ← report クラスの場合この行不要
%    \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1zw}%
%    \addtolength\@tempdima{-\wd\z@}%
%    \unhbox\z@\nobreak
%%%    \fi% ← report クラスの場合この行不要
    \vtop{\hsize\@tempdima\@chapapp\thechapter\@chappos\hskip1zw#1}%
  \else
    #1\relax
  \fi}\nobreak\vskip3\Cvs}
%
\def\@makeschapterhead#1{\hbox{}%
  \vskip2\Cvs
  {\parindent\z@
%  \raggedright% 左揃え(オリジナルの定義)
  \centering% 中央揃え
%  \raggedleft% 右揃え
  \normalfont\huge\sffamily\gtfamily%% フォントを変更する
  \leavevmode
  \setlength\@tempdima{\linewidth}%
  \vtop{\hsize\@tempdima#1}}\vskip3\Cvs}

\makeatother%% プリアンブルで再定義する際は必須
\begin{document}

\chapter*{なんとか}

\chapter{ほげ}

\section{ふが}

\chapter{長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長いタイトル}

\section{ふがふが}

\end{document}