メモ:latex
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
メモ:latex [2020/05/01 21:35] – 作成 admin | メモ:latex [2022/01/25 10:16] (現在) – [段落頭の字下げ設定] Wiki Editor | ||
---|---|---|---|
行 4: | 行 4: | ||
主に困ったのが、余白関係。美しく組版するという目的からか、標準ではかなり余白が多めで図表を詰め込んだりできない。それらを解消する方法をまとめておく。スマートな方法とは言えない。また、直接Latexを書くわけではなく、Rmarkdownから制御しなければならないため、細かい指示ができない場合もあり、もどかしい。。 | 主に困ったのが、余白関係。美しく組版するという目的からか、標準ではかなり余白が多めで図表を詰め込んだりできない。それらを解消する方法をまとめておく。スマートな方法とは言えない。また、直接Latexを書くわけではなく、Rmarkdownから制御しなければならないため、細かい指示ができない場合もあり、もどかしい。。 | ||
+ | |||
+ | |||
+ | ===== 図表番号を節ごとに ===== | ||
+ | 詳細は追って調べる。 | ||
+ | 図表番号の区切り文字は「.」となる。それぞれの真ん中の行でフォーマットを設定しているので、これをいじれば好きなフォーマットで「図1-3」などに変更できる。 | ||
+ | |||
+ | \makeatletter | ||
+ | | ||
+ | \renewcommand{\theequation}{% 式番号の付け方 | ||
+ | \thesection.\arabic{equation}} | ||
+ | \@addtoreset{equation}{section} | ||
+ | | ||
+ | \renewcommand{\thefigure}{% 図番号の付け方 | ||
+ | \thesection.\arabic{figure}} | ||
+ | \@addtoreset{figure}{section} | ||
+ | | ||
+ | \renewcommand{\thetable}{% 表番号の付け方 | ||
+ | \thesection.\arabic{table}} | ||
+ | \@addtoreset{table}{section} | ||
+ | | ||
+ | \makeatother | ||
===== 改ページ ===== | ===== 改ページ ===== | ||
行 89: | 行 110: | ||
# 2段組みの場合 | # 2段組みの場合 | ||
\renewcommand\dblfloatpagefraction{.5} | \renewcommand\dblfloatpagefraction{.5} | ||
+ | |||
+ | ===== floatのみのページの図表配置 ===== | ||
+ | 図だけのページの配置は専用のパラメータが設定されている。前のページから押し出されて図がはみ出し、次のページに図が1枚だけになってしまった場合など。図に続いて文字などがあると図は上詰めで配置されていくが、文書の最後やclearpageなどで残った図を張り付けてから改ページが行われる場合などに起こることが多い気がする。 | ||
+ | |||
+ | 標準では以下の設定になっているようだ。 | ||
+ | \@fptop = 0pt + 1fil | ||
+ | \@fpsep = 8pt + 2fil | ||
+ | \@fpbot = 0pt + 1fil | ||
+ | |||
+ | @fptopはフロートのみのページの上部の余白。余白は0だが1filでページの上側が伸び縮する予約で調整される。下の予約や図と図の間の余白との関係で相対的に決まる。標準では@fpbotも同じ設定なので、上下均等に余白が作られる。したがって、全体として図が縦方向の中央に配置される。上詰めしたければ@fptopを0ptのみにすれば、下の伸縮可能な余白が上まで上がってきて、上詰めになる。 | ||
+ | |||
+ | @fpsepは図が2枚以上ある場合の図と図の間の配置設定。標準だと、図と図の間の余白が2filなので、相対的にやや広くなって全体に均等に配置されるようだ。すべての図を上詰めにするなら、@fpsepも2filを取り除けばよい。0ptにすると図と図の間隔が狭くなりすぎるため、必要に応じて適宜調整。 | ||
+ | |||
+ | 文書全体で調整するにはプリアンブルに以下を追加する。 | ||
+ | |||
+ | \makeatletter | ||
+ | \setlength{\@fptop}{0pt} | ||
+ | \setlength{\@fpsep}{8pt} | ||
+ | \setlength{\@fpbot}{0pt plus 1fil} | ||
+ | \makeatother | ||
+ | |||
+ | |||
+ | |||
+ | ===== 見出しの余白 ===== | ||
+ | 詳細はもう少し調査。見出し、小見出しの上下の余白を調整。 | ||
+ | |||
+ | \usepackage[compact]{titlesec} | ||
+ | | ||
+ | # 「*」があるとタイトルに続く段落のインデントを削除する | ||
+ | \titlespacing*{\section}{0pt}{*0}{0pt} | ||
+ | \titlespacing*{\subsection}{0pt}{*0}{0pt} | ||
+ | | ||
+ | \titlespacing{\section}{タイトル左のインデント}{上のスペース}{下のスペース} | ||
+ | \titlespacing{\subsection}{0pt}{*0}{0pt} | ||
+ | |||
+ | |||
+ | 少し調べたので追加。 | ||
+ | |||
+ | 「\titlespacing*」のアスタリスク付きコマンドは、タイトルに続くパラグラフのインデントを削除するかどうか。アスタリスク付きのコマンドは続くパラグラフの冒頭のインデントを削除する。ただし__Rmarkdownから使う場合はインデントの設定が通常のLatexとは異なるようで、アスタリスク付きでも無しでも変わらない__。pandocが呼び出すテンプレートやインデントの設定が関係しているようだ。時間があるときに調べよう。 | ||
+ | |||
+ | 数値は、絶対値と相対値が指定できる。括弧内の数値の前の「*」は省略した記法で、基準となる単位の倍数を意味するようだ。Latexの相対的な数値の指定方法はまだ理解不足。 | ||
+ | ===== ページの余白 ===== | ||
+ | しばしば見かけるのは、geometryを利用するものだが、Rmarkdownからxelatexを使う場合、geometryがうまく機能せずエラーになる。そこで、以下のようにしてページの余白を調整。意味はもう少し調査。 | ||
+ | |||
+ | \setpagelayout * {margin=20mm} | ||
+ | |||
+ | ===== 行間 ===== | ||
+ | 標準のスタイルでは行間もかなり広い。論文や雑誌記事ならよいが、ワープロ的に使うにはちょっと広すぎる。 | ||
+ | \renewcommand{\baselinestretch}{0.9} | ||
+ | |||
+ | ページの一部だけを対象にする場合は | ||
+ | |||
+ | \begin{spacing}{倍率} | ||
+ | 文章文章文章文章文章 | ||
+ | \end{spacing} | ||
+ | |||
+ | |||
+ | ===== ページレイアウトの確認 ===== | ||
+ | |||
+ | ページのレイアウト情報の確認には、layoutパッケージを用いる。 | ||
+ | |||
+ | プリアンブルでパッケージを読み込む | ||
+ | \usepackage{layout} | ||
+ | レイアウト情報を出力したい箇所にコマンドを挿入 | ||
+ | |||
+ | \layout | ||
+ | | ||
+ | レイアウト情報が可視化された図が出力される。 | ||
+ | | ||
+ | ===== 表の行間の余白 ===== | ||
+ | 標準では表の行間に微妙な余白が入る。通常はスッキリした見栄えになるが、余白をなくしたい場合もある。 | ||
+ | |||
+ | 余白をなくすには以下のように\aboverluesepと\belowrulesepを書き換えるマクロを作成し、必要に応じて利用する。直接これらの値を変更してもよいだろう。 | ||
+ | |||
+ | \newcommand{\midsepremove}{\aboverulesep = 0mm \belowrulesep = 0mm} | ||
+ | \newcommand{\midsepdefault}{\aboverulesep = 0.605mm \belowrulesep = 0.984mm} | ||
+ | | ||
+ | \midsepremove | ||
+ | \midsepdefault | ||
+ | |||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | ===== 段落頭の字下げ設定 ===== | ||
+ | 段落頭の字下げ量をコントロールするとき\parindentを利用するが、和文ではプリアンブルに書いても1文字分しか設定できない。したがって、実質的には0か1しか設定できない。常識なのかもしれないが、和文の場合段落頭の字下げは1文字と相場が決まっているため、いくらプリアンブルで設定しても、リセットされるようだ。\begin{document}で文字サイズが初期化されるためのようだ。以下のページのFAQに記載されていた。 | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | ここにも記載されているように、字下げ量を任意に設定したい場合は\begin{document}以降に設定する必要がある。 | ||
+ | |||
+ | |||
+ | ===== 見出しの詳細設定 ===== | ||
+ | sectionなどの見出しのフォーマットを変更するパッケージにtitlesecがある。色々できるが、ポイントをメモ。 | ||
+ | |||
+ | フォーマットの変更は、\titleformatを利用する。設定項目が多いためちょっとややこしい。 | ||
+ | \usepackage{titlesec} | ||
+ | \titleformat | ||
+ | {\section} <- 対象の見出し | ||
+ | [hang] <- 見出しの形:段落との関係などを変える | ||
+ | {\LARGE\color{white}} <- 見出し文字列のフォーマット | ||
+ | {\thesection. } <- ラベル(連番部分)のフォーマット | ||
+ | {0em} <- ラベルと見出し文字列の間隔 | ||
+ | {} <- 見出し文字列の直前のコマンド | ||
+ | [] <- 見出し文字列の直後のコマンド | ||
+ | | ||
+ | 見出し直前のコマンドは、見出し全体に適用されるものとして記述しなければならないが、見出し文字列の前後に文字を入れたりしたい場合、コマンドを適用する範囲を限定したい場合がある。その場合は、titlesecパッケージを読み込む際に以下のオプションをつける必要がある。この場合、見出し文字列を出力する位置を「# | ||
+ | |||
+ | \usepackage[explicit]{titlesec} | ||
+ | \titleformat | ||
+ | {\section} <- 対象の見出し | ||
+ | [hang] <- 見出しの形:段落との関係などを変える | ||
+ | {\LARGE\color{white}} <- 見出し文字列のフォーマット | ||
+ | {\thesection. } <- ラベル(連番部分)のフォーマット | ||
+ | {0em} <- ラベルと見出し文字列の間隔 | ||
+ | {#1} <- 見出し文字列の直前のコマンド | ||
+ | [] <- 見出し文字列の直後のコマンド:見出し内に影響を限定するため内部を{}でグループ化する必要がある場合がある | ||
+ | |||
+ | ==== 設定例:黒帯に白文字の見出し ==== | ||
+ | |||
+ | 見出しを黒帯に白抜き文字にする設定。ラベル設定部分でラベルは出力せず、見出し文字列前のコマンドで、見出しとラベルを両方設定する。 | ||
+ | |||
+ | まず、\colorbox{black}で背景を黒にし、\parbox{\textwidth}で行幅と同じ幅の段落を生成する。これで、黒背景の見出し段落ができる。その中に、\thesectionと# | ||
+ | |||
+ | \usepackage[explicit]{titlesec} | ||
+ | \titleformat | ||
+ | {\section} | ||
+ | [hang] | ||
+ | {\normalfont\Large\headfont\color{white}} | ||
+ | {} | ||
+ | {0em} | ||
+ | {\colorbox{black}{\parbox{\textwidth}{\raisebox{-1mm}{\thesection.\strut\hspace{0.2em}} \raisebox{-1.3mm}{# | ||
+ | |||
+ | ==== 設定例:見出しに下線 ==== | ||
+ | |||
+ | 見出しの下に下線を引く。 | ||
+ | |||
+ | 見出しに下線を引く。もっと簡単な方法もあるかもしれないが、最後のコマンドまではほぼ標準設定をなぞって設定。その上で、見出し出力後のコマンドに\vspace{0mm}\titlerule[1pt]を指定して、1pt幅の水平線を出力。ここで、全体を{}でくくっておかないと、影響範囲の問題でエラーになるようだ。 | ||
+ | |||
+ | \usepackage[explicit]{titlesec} | ||
+ | \titleformat | ||
+ | {\section} | ||
+ | [hang] | ||
+ | {\normalfont\Large\headfont} | ||
+ | {\thesection.} | ||
+ | {0.3em} | ||
+ | {#1} | ||
+ | [{\vspace{0mm}\titlerule[1pt]}] | ||
+ | |||
+ | |||
+ | |||
メモ/latex.1588336536.txt.bz2 · 最終更新: 2020/05/01 21:35 by admin