85413


pLaTeXでドキュメントクラスはjlreqです。

\maketitleで\title, \author, \dateを出力した時に自動的にそれぞれ間隔が空くと思います。  
その間隔は何mmか知る方法はありませんか？

\maketitleで最終的に  
上方マージンから10mmあけて\title出力  
\titleと\authorの間を15mmあけて\author出力  
\authorと\dateの間を5mmあけて\date出力  
という風にしたいです。

現在は

[code]

    \title{\vspace{10truemm}{和文タイトル \\ 英文タイトル}\vspace{15truemm}}
    \author{{日本語著者名 \\ 英語著者名}\vspace{5truemm}}
    \date{著者所属}
    
[/code]

という風にして出力予定なのですが、\maketitleで元々ある間隔に足される形で10mm、15mm、5mmの間隔があるような気がして思うようにできません。

何か良い方法をご存じでしたらよろしくお願いいたします。

* * *

フォントサイズや二段組など省略している部分もありますがお二方の助言をもとに作成してみました。  
上下左右の余白をベースにそれぞれ10mm、15mm、5mmといった間隔をあけています。  
なお、\hspace*{}についてですが左右を10mmあけないといけないためそれぞれ行頭と行末に\hspace*{10truemm}をかいています。

[code]

    \documentclass[･･･]{jlreq}
    \usepackage[top=20truemm, bottom=25truemm, left=20truemm, right=20truemm]{geometry}
    \usepackage{amsmath}
    
    \newcommand{\jatitle}[1]{･･･ #1}}
    \newcommand{\entitle}[1]{･･･ #1}}
    \newcommand{\jaauthor}[1]{･･･ #1}}
    \newcommand{\enauthor}[1]{･･･ #1}}
    \newcommand{\jaaffiliation}[1]{･･･ #1}}
    \newcommand{\enaffiliation}[1]{･･･ #1}}
    \newcommand{\enabstract}[1]{･･･ #1}}
    \newcommand{\keywords}[1]{･･･ #1}
    
    \makeatletter
    \renewcommand{\@maketitle}
    {
    \vspace*{10truemm}
    \centering
    {\hspace*{10truemm}{\@jatitle}\hspace*{10truemm}}
    \par
    {\hspace*{10truemm}{\@entitle}\hspace*{10truemm}}
    \vspace*{15truemm}
    {\hspace*{10truemm}{\@jaauthor}\hspace*{10truemm}}
    \par
    {\hspace*{10truemm}{\@enauthor}\hspace*{10truemm}}
    \vspace*{5truemm}
    {\hspace*{10truemm}{\@jaaffiliation}\hspace*{10truemm}}
    \par
    {\hspace*{10truemm}{\@enaffiliation}\hspace*{10truemm}}
    \vspace*{10truemm}
    {\hspace*{10truemm}{\@enabstract}\hspace*{10truemm}}
    \par \vskip 1.0em
    {\hspace*{10truemm}{\@keywords}\hspace*{10truemm}}
    \vspace*{10truemm}
    }
    \makeatother
    
    \jatitle{和文タイトル}
    \entitle{英文タイトル}
    \jaauthor{和文著者}
    \enauthor{英文著者}
    \jaaffiliation{和文所属}
    \enaffiliation{英文所属}
    \enabstract{
        英文概要}
    \keywords{キーワード}
    
    \begin{document}
    \twocolumn[%
        \maketitle
        ]
    
    \end{document}
    
[/code]

としたところ\jatitle{和文タイトル}の行でエラーが発生しました。  
内容はMissing \begin{document}.です。  
どこが問題なのでしょうか・・・。


CC BY-SA 4.0
2021-12-30T10:49:48.810
85412
2021-12-31T18:18:54.423
2021-12-30T19:56:11.763
48769
48769
question
latex
\maketitleで出力した時の\title, \author, \dateの間隔を知りたい


> \maketitleで\title, \author, \dateを出力した時に自動的にそれぞれ間隔が空くと思います。  
>  その間隔は何mmか知る方法はありませんか？

jlreqでの`\maketitle`はjlreq.cls内で定義されています。

<https://github.com/abenori/jlreq/blob/master/jlreq.cls>

5024行目くらいからですかね。titlepageがある文書とそうでない文書で分岐していますが、いずれにせよ`\title`や`\author`に記述した内容はこのmaketitleの内部で展開されます。雑にはこの`\maketitle`の内容を上書きすれば、目的を達成可能なはずです。

jlreqの場合、複数の文書スタイルが同一のクラスファイルで用意されているため（reportやbookなど）、正しく再定義するのは難しいですが、jlreq.clsの作者であるabenoriさんのブログなどが参考になるのではないでしょうか。

<http://abenori.blogspot.com/2019/12/latex-class-6.html>

`\global\let\thanks\relax`……の箇所はjlreq.clsではendofmaketitleのようにしてまとめているようですね。

`\maketitle`の再定義方法自体については`\renewcommand`などの単語でWEB検索なり本なりを参考にすると良いかと思います。

質問事項とは別ですが、一般的に`\date`は著者所属に使うべきではありません。規定で強制されていない限りは避けてください。`maketitle`再定義時にそのための処理を追加するなどしてください。


CC BY-SA 4.0
2021-12-30T12:24:45.460
85413
2021-12-30T12:24:45.460
38146
85412
answer


質問文では「`\maketitle` を用いて」という指定があるので，少し質問に対する直球の回答からはずれますが

> 上方マージンから10mmあけて\title出力  
>  \titleと\authorの間を15mmあけて\author出力  
>  \authorと\dateの間を5mmあけて\date出力  
>  という風にしたいです。

という具体的なスペックが定まっているのであれば，むしろ `\maketitle` を使用しないのも1つの手です．

そうすることにより `\maketitle`
の内部実装を読んだり，改変したりしなくても上記のように任意の長さのスペースを入れたり，標準で適当なコマンドが用意されていない所属情報を無理やり
`\date` を流用して書き込んだりしなくて済むという利点があります．

LaTeX にはこうした「完全にカスタムのタイトルを作る」場合のために `titlepage`
環境があります．上述のスペックに沿った単純なタイトル部は，例えば以下のように実現できます：

[code]

    \documentclass{jlreq}
    \begin{document}
    
    \begin{titlepage}
    \centering
    \vspace*{10truemm}
    {\bfseries 和文タイトル \\ 英文タイトル}\\[15truemm]
    日本語著者名 \\ 英語著者名\\[5truemm]
    著者所属
    \end{titlepage}
    
    \end{document}
    
[/code]


CC BY-SA 4.0
2021-12-30T12:43:01.877
85414
2021-12-30T12:43:01.877
27047
85412
answer


再定義が出来るほどの技量はありませんでしたが最終的に以下のような形で解決しました。  
まず条件を整理しますと

  * 下マージンは25mm、他20mmの余白を基準
  * タイトル、著者名、所属を中央揃え
  * アブスト、キーワードを両端揃え
  * 10mmあけてタイトル出力
  * タイトルから15mmあけて著者名出力
  * 著者名から5mmあけて所属出力
  * 所属から10mmあけてアブスト出力
  * アブストから1行あけてキーワード出力
  * フォントサイズ、フォントの種類については『･･･』で省略する
  * 上下左右に10mmの余白を追加して上記（タイトル～キーワード）を出力

です。実際に出来上がったコードは以下です。

[code]

    \documentclass[･･･]{jlreq}
    
    \usepackage[top=20truemm, bottom=25truemm, left=20truemm, right=20truemm]{geometry}
    \usepackage{amsmath}
    
    \newcommand{\Jatitle}[1]{･･･ #1}}
    \newcommand{\Entitle}[1]{･･･ #1}}
    \newcommand{\Jaauthor}[1]{･･･ #1}}
    \newcommand{\Enauthor}[1]{･･･ #1}}
    \newcommand{\Jaaffiliation}[1]{･･･ #1}}
    \newcommand{\Enaffiliation}[1]{･･･ #1}}
    \newcommand{\Enabstract}[1]{･･･ #1}}
    \newcommand{\keywords}[1]{･･･ #1}
    
    \begin{document}
    
    \newgeometry{top=30truemm, left=30truemm, right=30truemm}
    \twocolumn[%
        \begin{center}
            \Jatitle{和文タイトル}
            
            \Entitle{英文タイトル}
            
            \vspace*{15truemm}
            
            \Jaauthor{著者${}^\text{1}$・著者${}^\text{2}$・著者${}^\text{3}$}
    
            \Enauthor{著者}
    
            \vspace*{5truemm}
            
            \Jaaffiliation{${}^\text{1}$所属 \\ ${}^\text{2}$所属}
            
            \Enaffiliation{${}^\text{3}$所属}
            
            \vspace*{10truemm}
        \end{center}
            \Enabstract{アブスト}
            
            \vskip 1.0em
    
            {･･･Key Words:} \keywords{キーワード}
    
            \vspace*{10truemm}
    ]
    \restoregeometry
    
    \end{document}
    
[/code]

これで個人的には良い感じのものができました。


CC BY-SA 4.0
2021-12-31T18:18:54.423
85425
2021-12-31T18:18:54.423
48769
85412
answer