実験レポートの為のLatex入門


1.はじめに

こんにちは!ぶじょんぬいです!今回は要望に応えて大学の実験レポートをTeXで書く方法について説明しようと思います。これは同じ大学の学部の人に向けて書いていますが、他の人にも役立つと思っています。
今回はwindows,vscode上での扱いの話になります(mac勢力の人は2の部分を他のサイトで見るなりして3から読み始めてください)。

2.TeX Live、vscodeのダウンロードおよび設定

ここは以下のサイトを見てください。"4. Snippet のススメ。文章作成のもっと効率化"以降は読まなくて大丈夫です。

(ただダウンロードするだけでなく、latexmkrcとか細かい設定をちゃんと行ってください。)

3."setting.json"の書き換え


ここでは、次に、setting.jsonの設定を書き換えます。目的としてはctrl+s(ファイル保存)した時に自動でビルド(PDFを作成)し、図のようにPDFを表示しているときに自動で表示しているPDFを最新のバージョンに更新するためです。

上のようにしているとき、ctrl+sを押すとファイルのセーブのみならず、表示しているPDFも更新される。

では早速設定をしてみましょう。まずctrl+Shift+pを押すとコマンドパレットと言うものが表示されるはずです。

コマンドパレット

そして基本設定(setting.jsonの編集)というところをクリックしてください。以下のようにsetting.jsonの画面が表示されます。


そしたら以下のようにのように書き換えます(とりあえずはコピペで大丈夫です、心配でしたら元の設定をどこかメモ帳なりどっかにコピーするといいかも)

setting.json

{// 日本語文書で単語移動を使うため、助詞や読点、括弧を区切り文字として指定する
"editor.wordSeparators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~? 、。「」【】『』()!?てにをはがのともへでや",

// 設定: LaTeX Workshop

// LaTeX Workshop ではビルド設定を「Tool」と「Recipe」という2つで考える
//   Tool: 実行される1つのコマンド。コマンド (command) と引数 (args) で構成される
//   Recipe: Tool の組み合わわせを定義する。Tool の組み合わせ (tools) で構成される。
//           tools の中で利用される Tool は "latex-workshop.latex.tools" で定義されている必要がある。

// latex-workshop.latex.tools: Tool の定義
"latex-workshop.latex.tools": [
  
    // latexmk を利用した lualatex によるビルドコマンド
    {
      "name": "Latexmk (LuaLaTeX)",
      "command": "latexmk",
      "args": [
        "-f", "-gg",  "-pv", "-lualatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"
      ]
    },
    // latexmk を利用した xelatex によるビルドコマンド
    {
      "name": "Latexmk (XeLaTeX)",
      "command": "latexmk",
      "args": [
        "-f", "-gg",  "-pv", "-xelatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"
      ]
    },
    // latexmk を利用した uplatex によるビルドコマンド
    {
      "name": "Latexmk (upLaTeX)",
      "command": "latexmk",
      "args": [
        "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"
      ]
    },
    // latexmk を利用した platex によるビルドコマンド
    // 古い LaTeX のテンプレートを使いまわしている (ドキュメントクラスが jreport や jsreport ) 場合のため
    {
      "name": "Latexmk (pLaTeX)",
      "command": "latexmk",
      "args": [
        "-f", "-gg", "-pv", "-latex='platex'", "-latexoption='-kanji=utf8 -no-guess-input-env'", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"
      ]
    }
],

// latex-workshop.latex.recipes: Recipe の定義
"latex-workshop.latex.recipes": [
    // LuaLaTeX で書かれた文書のビルドレシピ
    {
      "name": "LuaLaTeX",
      "tools": [
        "Latexmk (LuaLaTeX)"
      ]
    },
    // XeLaTeX で書かれた文書のビルドレシピ
    {
      
      "name": "XeLaTeX",
      "tools": [
        "Latexmk (XeLaTeX)"
      ]
    },
    // LaTeX(upLaTeX) で書かれた文書のビルドレシピ
    {
      "name": "upLaTeX",
      "tools": [
        "Latexmk (upLaTeX)"
      ]
    },
    // LaTeX(pLaTeX) で書かれた文書のビルドレシピ
    {
      "name": "pLaTeX",
      "tools": [
        "Latexmk (pLaTeX)"
      ]
    },
],

// latex-workshop.latex.magic.args: マジックコメント付きの LaTeX ドキュメントをビルドする設定
// '%!TEX' で始まる行はマジックコメントと呼ばれ、LaTeX のビルド時にビルドプログラムに解釈され、
// プログラムの挙動を制御する事ができる。
// 参考リンク: https://blog.miz-ar.info/2016/11/magic-comments-in-tex/
"latex-workshop.latex.magic.args": [
  "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"
],

// latex-workshop.latex.clean.fileTypes: クリーンアップ時に削除されるファイルの拡張子
// LaTeX 文書はビルド時に一時ファイルとしていくつかのファイルを生成するが、最終的に必要となるのは
// PDF ファイルのみである場合などが多い。また、LaTeX のビルド時に失敗した場合、失敗時に生成された
// 一時ファイルの影響で、修正後のビルドに失敗してしまう事がよくある。そのため、一時的なファイルを
// 削除する機能 (クリーンアップ) が LaTeX Workshop には備わっている。
"latex-workshop.latex.clean.fileTypes": [
    "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot", "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.glo", "*.gz","*.gls", "*.ist", "*.fls", "*.log", "*.fdb_latexmk", "*.synctex.gz",
    
    "_minted*", "*.nav", "*.snm", "*.synctex.gz","*.vrb",
],

// latex-workshop.latex.autoClean.run: ビルド失敗時に一時ファイルのクリーンアップを行うかどうか
// 上記説明にもあったように、ビルド失敗時に生成された一時ファイルが悪影響を及ぼす事があるため、自動で
// クリーンアップがかかるようにしておく。

"latex-workshop.latex.autoClean.run": "onBuilt",

// latex-workshop.view.pdf.viewer: PDF ビューアの開き方
// VSCode 自体には PDF ファイルを閲覧する機能が備わっていないが、
// LaTeX Workshop にはその機能が備わっている。
// "tab" オプションを指定すると、今開いているエディタを左右に分割し、右側に生成されたPDFを表示するようにしてくれる
// この PDF ビュアーは LaTeX のビルドによって更新されると同期して内容を更新してくれる。
"latex-workshop.view.pdf.viewer": "tab",

// latex-workshop.latex.autoBuild.run: .tex ファイルの保存時に自動的にビルドを行うかどうか
// LaTeX ファイルは .tex ファイルを変更後にビルドしないと、PDF ファイル上に変更結果が反映されないため、
// .tex ファイルの保存と同時に自動的にビルドを実行する設定があるが、文書が大きくなるに連れてビルドにも
// 時間がかかってしまい、ビルドプログラムの負荷がエディタに影響するため、無効化しておく。
"latex-workshop.latex.autoBuild.run": "onSave",

"[tex]": {
    // スニペット補完中にも補完を使えるようにする
    "editor.suggest.snippetsPreventQuickSuggestions": false,
    // インデント幅を2にする
    "editor.tabSize": 2
},

"[latex]": {
    // スニペット補完中にも補完を使えるようにする
    "editor.suggest.snippetsPreventQuickSuggestions": false,
    // インデント幅を2にする
    "editor.tabSize": 2
},

"[bibtex]": {
    // インデント幅を2にする
    "editor.tabSize": 2
},


// ---------- LaTeX Workshop ----------

// 使用パッケージのコマンドや環境の補完を有効にする
"latex-workshop.intellisense.package.enabled": true,

// 生成ファイルを "out" ディレクトリに吐き出す
// s"latex-workshop.latex.outDir": "out",

"workbench.editor.enablePreview": false,
//文字の大きさ変更
"window.zoomLevel": -0.5,
//大学のサーバーに接続するときの設定。
"remote.SSH.remotePlatform": {
  "AzureLinux": "linux"
},
}

書き換えが終わったらctrl+sでセーブしましょう。(setting.jsonはもうctrl+F4などで閉じてヨシ!)
では実際に設定がうまくいったか確かめてみましょう。右にtest.pdfを開いたまま、左にtest.texを開き、test.texを適当に書き換えてみましょう。

図では著者名を変更してみました。

ここでctrl+Sと押すと左下("○○ Words" とあるあたり)に”↻Build”と表示がでてのち、Pdf が新しくなります。

確かに右のPDFの著者名が変わった!!


以下まだ執筆中です。

4.実際のレポートの書き方

実際に実験レポートを書くことを考えてみましょう。
今、実験レポートの体裁として次のようなものが課されたとします。

  • A4、フォントの大きさは11pt、行送りは18pt

  • 上余白と下余白は30mm、左余白と右余白は25mm

  • 以下のような見出しのポイントシステム

1.章の名前
1.1節の名前
2.章の名前
2.1節の名前
2.1.1項目の名前
3.章の名前….

まず、レポートのファイルを作成します。
以下のように、(好きなタイトル).texというファイルを作成し、
ダブルクリックで開きます。
そしたら以下のようにまず書きましょう。

(ファイル名).tex

\documentclass[a4paper,11truept]{ltjsarticle}
% 本文のフォントサイズ及び用紙の大きさを固定,platexとかならdivipdfmxも入れるべきだが、lualatexはいらないらしい
\usepackage[top=30truemm,bottom=30truemm,left=25truemm,right=25truemm]{geometry}
% 余白設定のためgeometryパッケージを使う
\usepackage{graphicx,amsmath,mathtools, amssymb, amsfonts, latexsym,fancyhdr,lastpage,float}
%「■」などの数式記号の為に必要なパッケージたち、おまじないと思ってください。

%pagestyleの設定%
\fancypagestyle{fancy}{%
\lhead{}%ヘッダ左を空に
\rhead{}%ヘッダ右を空に
\cfoot{}%ヘッダ中央下を空にする
\rfoot{\thepage/\pageref{LastPage}}%フッタ中央に"今のページ数/総ページ数"を設定
\renewcommand{\headrulewidth}{0.0pt}%ヘッダの線を消す
}

% section,subsection,subsubsectionのフォント及びサイズ設定(本文と同じのにそろえる。)
\makeatletter
\def\section{\@startsection {section}{1}{\z@}{%
-3.5ex plus -1ex minus -.2ex}{2.3ex plus .2ex}{\normalsize}}
\def\subsection{\@startsection {subsection}{1}{\z@}{%
-3.5ex plus -1ex minus -.2ex}{2.3ex plus .2ex}{\normalsize}}
\def\subsubsection{\@startsection {subsubsection}{1}{\z@}{%
-3.5ex plus -1ex minus -.2ex}{2.3ex plus .2ex}{\normalsize}}
\makeatother

\renewcommand{\thesection}{\arabic{section}.}
%sectionコマンドでは通常「1 (章の名前)」のように表示される。これを実験のテキストの体裁通り「1. (章の名前)」のように表示するよう変更する

\makeatletter
  \renewcommand{\theequation}{\thesection \arabic{equation}}
  \@addtoreset{equation}{section}
 \makeatother

\newcommand{\gazou}[2]{\begin{figure}[H] \centering \includegraphics[scale=#2]{#1} \end{figure}}
%↑画像挿入のコマンドはクソ長いので簡略化しました、\gazou{名前.png}{倍率}のようにすれば画像挿入できます。大きさを変える時は倍率の数字をいじくってください。

\begin{document} 
\setlength{\baselineskip}{18truept}


%====================
%!!表紙テンプレ!!
%====================
\pagestyle{empty}
\par\par
\begin{itemize}
  \item[$\blacksquare$]実験科目名:
  \item[$\blacksquare$]実験項目名:
  \item[$\blacksquare$]報告形式:
  \item[$\blacksquare$]グループ番号:
  \item[$\blacksquare$]班番号:
  \item[$\blacksquare$]学籍番号:
  \item[$\blacksquare$]氏名:
  \item[$\blacksquare$]共同実験者氏名:
  \item[$\blacksquare$]実験日:
  \item[$\blacksquare$]室温:
  \item[$\blacksquare$]湿度:
  \item[$\blacksquare$]天候:
\end{itemize}
\newpage %←改ページ

\pagestyle{fancy}
\setcounter{page}{1} 
%↑通常は表紙が一ページ目となってしまうためきそじの慣習に合わせてカウンタを1に戻してます

%===================================
%!!ここより下から文章を書き始める!!
%===================================

\section{実験目的}
↑勝手に番号がつくよ!
\begin{equation}
1=1
\end{equation}
\end{document}

これをコピーしたら実際にPDFを生成してみましょう。
ctrl+sを押すと自動でビルドが始まります。

やったね、君もこれでwordから解放されてLatexで文章が書けるね!

5.おわりに

この文章がTexで文章を書くB1,B2に役立ってくれることを切に望みます。御覧になった皆さんありがとうございます。
以下有料部分では私の実験の思い出を語ったものになります。同学部の人でしたら参考になるのかもしれません。(有料にしたのは一般向けではなく、ほんの一部の人のための文章であるために差別化したかったからです。)

まだこの原稿は完成してないのでご了承ください。適宜時間のある時に書き足します。


この記事が気に入ったらサポートをしてみませんか?