ソフトウェア技術研究会
弊学レポートのセルフチェックを回避する方法 ~無限再提出編~<!-- --> | 東北工業大学ソフトウェア技術研究会

弊学レポートのセルフチェックを回避する方法 ~無限再提出編~

📅2024-12-20

弊学レポートのセルフチェックを回避する方法 ~無限再提出編~

皆さん、こんにちはK.Y.(HN Rerurate_514)です。

アドベントカレンダー企画での記事です。 https://adventar.org/calendars/10859

どうせなら後輩とかのためになるような記事を書こうと思いました。 おそらく二年生以上の方はすでに経験済みでしょうが、情報工学実験Iのセルフチェックツール、これまじでぶち壊してやろうかなと思いました。 まあそんな冗談は置いておき、あれ結構面倒くさいですし、とてもだるいです。 そこで、なにか回避する方法はないかなと模索していました。 ちょうどその時期、LaTeXでレポートを書こうと思い完成させ、セルフチェックを通そうとしました。 しかし、セルフチェックツールはWordのdocx拡張子のファイルのみ受け付けていたのです。これにより私はせっかくレポートを書いたのに状態、になってしまいました。 これを先輩と先生に相談してみると、どうやらLaTeXで書いたポートはセルフチェックを通さないでそのまま提出してもよいとの返事をいただきました! LaTeXでレポートを記述するとセルフチェックできない、とのこと。 これを悪用利用し快適な脱セルフチェックライフを送ることにしました。

やり方 - インストール

ちょっと書く時間がなかったのでこの記事を参考にしてください;;

【大学生向け】LaTeX完全導入ガイド Windows編 (2022年) #VSCode - Qiita

実際に書いてみる。

まずは好きなフォルダを作成してその中にファイル名.texを作成します。 その中に記述していきます。

事前準備

実験のレポートは例えば余白だったり、フォントが指定されていますよね。 これを以下のスニペットで指定していきます。

\documentclass[a4paper, 12pt]{ltjsarticle}
\usepackage{luatexja-fontspec}

\usepackage{times}
\setmainfont{Times New Roman}
\setmainjfont{MS PMincho}

\usepackage{geometry}
\geometry{margin=1.27cm}

まず

\documentclass[a4paper, 12pt]{ltjsarticle}

です。これはA4用紙の大きさで、フォントサイズを12ptに指定しているものです。

フォントについてですが、

\usepackage{luatexja-fontspec}

\usepackage{times}
\setmainfont{Times New Roman}
\setmainjfont{MS PMincho}

これを書くと日本語はMS P明朝に、英数字はTime New Romanになります。 \setmainfontは英数字のフォントを指定するものです。 \setmainjfontは日本語のフォントを設定するものです。

余白は、

\usepackage{geometry}
\geometry{margin=1.27cm}

geometryパッケージを入れてから、margin=1.27cmと記述すると、Wordでいうところの余白:狭いになります。

本文

LaTeXで本文を書く際には、\begin{document}から始め\end{document}で締めます。

% ここで余白とかフォントの設定する。

\begin{document}

\end{document}

ここで試しに書いてみます。

% ここで余白とかフォントの設定する。

\begin{document}
どうせなら後輩とかのためになるような記事を書こうと思いました。
おそらく二年生以上の方はすでに経験済みでしょうが、情報工学実験Iのセルフチェックツール、これまじでぶち壊してやろうかなと思いました。
まあそんな冗談は置いておき、あれ結構面倒くさいですし、とてもだるいです。
そこで、なにか回避する方法はないかなと模索していました。
ちょうどその時期、LaTeXでレポートを書こうと思い完成させ、セルフチェックを通そうとしました。
しかし、セルフチェックツールはWordのdocx拡張子のファイルのみ受け付けていたのです。これにより私はせっかくレポートを書いたのに状態、になってしまいました。
これを先輩と先生に相談してみると、どうやらLaTeXで書いたポートはセルフチェックを通さないでそのまま提出してもよいとの返事をいただきました!

LaTeXでレポートを記述するとセルフチェックできない、とのこと。
これを利用し快適な脱セルフチェックライフを送ることにしました。
\end{document}

この前置きを入れて出力してみると、段落ありで文章が出てきたかと思います。 LaTeXは段落を勝手に入れてくれる便利機能付きです。 もし改行した時も勝手に段落を入れてくれます。 因みに改行する際にはVSCode上で行を一つ開ける必要があります。

表紙

表紙ですが、おそらくこの記事を読み終わった後に手を付けたほうがいいかと思います。 なので、初読の人はこの下のから読んでもらうようお願いします。

このセクションではテーブルや環境をふんだんに活用して、指定のフォーマットの表紙を作成していきます。 これを目指します。 AvoidSelfCheck

てか、最初にこの表紙を作成したコードを載せます。

  \thispagestyle{empty}
   
  \vspace{3cm}

  \begin{center}
  情報通信工学実験I

  \vspace{1cm}

  {\large 実験テーマ:交流回路}
  \end{center}

  \vspace{3cm}
  
  \noindent
  \begin{table}[h]
    \centering
    \begin{tabularx}{\textwidth}{p{7cm}>{\centering\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X}
      \hspace{-2.5mm}{実験日(1):2024年11月11日} & 天候:晴れ & 温度:22.7 ℃ & 湿度:45 \%\\\hline
      \hspace{-2.5mm}{実験日(2):2024年11月18日} & 天候:晴れ & 温度:22.8 ℃ & 湿度:34 \%\\\hline
      \hspace{-2.5mm}{実験日(3):2024年11月25日} & 天候:晴れ & 温度:22.9 ℃ & 湿度:27 \%\\\hline
      \hspace{-2.5mm}{実験日(4):2024年12月02日} & 天候:曇り & 温度:24.5 ℃ & 湿度:29 \%\\\hline
    \end{tabularx}
  \end{table}

  \noindent
  \vspace{-10pt}{使用した装置の番号}
  
  \begin{table}[h]
    \begin{tabularx}{\textwidth}{>{\arraybackslash}X>{\raggedleft\arraybackslash}X}
      \hspace{-2.5mm}{実験日(1):NI myDAQ No.122} & 実験日(2):NI myDAQ No.122\\\hline
      \hspace{-2.5mm}{実験日(3):NI myDAQ No.122} & 実験日(4):NI myDAQ No.122\\\hline
    \end{tabularx}
  \end{table}

  \vspace{\fill}

  \begin{flushright}
    \noindent
    \makebox[4.5cm][l]{提出日:12月27日}\\
    \makebox[4.5cm][l]{学生番号\quad\;ここに学生番号}\\
    \makebox[4.5cm][l]{氏 名\quad ここに名前}\\
  \end{flushright}

  \newpage

  \setcounter{page}{1}

上から解説していきます。 まず、 この行からです。

\thispagestyle{empty}

\vspace{3cm}

\begin{center}
情報通信工学実験I

\vspace{1cm}

{\large 実験テーマ:交流回路}
\end{center}

\vspace{3cm}

\thispagestyleコマンドはページ番号を設定するコマンドです。 表紙にページ番号は書かないとの指定があります。 なので、emptyを指定してページ番号を消しています。

このvspaceですが、引数の分だけ字を下げるコマンドです。 因みに気付くかわかりませんが、vspaceコマンドの前に全角空白が入っています。 どうやらvspaceは前に文字がないとどこを基準にすればよいかわからず、機能しないようです。 VSCodeで全角を表示するとこんな感じです。 AvoidSelfCheck vscode

\begin{center}環境は中に書かれた文字を中央揃えにするものです。 \largeコマンドは文字サイズを講義指定の14ptにするコマンドです。

そこからまたvspaceで間隔をあけています。

次に実験の行った日や温度を記している行です。

  \begin{table}[h]
    \centering
    \begin{tabularx}{\textwidth}{p{7cm}>{\centering\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X}
      \hspace{-2.5mm}{実験日(1):2024年11月11日} & 天候:晴れ & 温度:22.7 ℃ & 湿度:45 \%\\\hline
      \hspace{-2.5mm}{実験日(2):2024年11月18日} & 天候:晴れ & 温度:22.8 ℃ & 湿度:34 \%\\\hline
      \hspace{-2.5mm}{実験日(3):2024年11月25日} & 天候:晴れ & 温度:22.9 ℃ & 湿度:27 \%\\\hline
      \hspace{-2.5mm}{実験日(4):2024年12月02日} & 天候:曇り & 温度:24.5 ℃ & 湿度:29 \%\\\hline
    \end{tabularx}
  \end{table}

詳しくはこの記事下のほうの表の書き方を見てもらえればと思います。 ただ、なぜ表を使用しているのかというと、これが一番管理しやすいからです。

セル設定の>{\raggedleft\arraybackslash}X}は文字を右寄せにする設定です。 これを使用して右の余白ぎりぎりに文字を寄せています。

\hspaceコマンドは引数に指定された数値分だけ右にずらすコマンドです。 これを使用して左の余白のぎりぎりまで文字位置を調整しています。

下線は\hlineコマンドを使用して表現しています。 この表を使用する方法を思いついたとき脳汁が出ましたね。

この次は今開設したところとほぼ同じです。

  \vspace{-10pt}{使用した装置の番号}
  
  \begin{table}[h]
    \begin{tabularx}{\textwidth}{>{\arraybackslash}X>{\raggedleft\arraybackslash}X}
      \hspace{-2.5mm}{実験日(1):NI myDAQ No.122} & 実験日(2):NI myDAQ No.122\\\hline
      \hspace{-2.5mm}{実験日(3):NI myDAQ No.122} & 実験日(4):NI myDAQ No.122\\\hline
    \end{tabularx}
  \end{table}

ただ表の上に文字を書くと本来ならキャプションが入るので、かなり上マージンができてしまいます。これを解消するために、vspaceコマンドを使用して、使用した装置の番号の文を下に移動させています。

最後に名前とか書く欄です。

  \vspace{\fill}

  \begin{flushright}
    \noindent
    \makebox[4.5cm][l]{提出日:12月27日}\\
    \makebox[4.5cm][l]{学生番号\quad\;ここに学生番号}\\
    \makebox[4.5cm][l]{氏 名\quad ここに名前}\\
  \end{flushright}

  \newpage
  \setcounter{page}{1}

まず\vspaceコマンドに\fillを指定していますが、これはページ限界まで余白を作成するコマンドです。これを使用するとその下の文字列が下に寄せられます。

そしてflushright環境を使用しています。これは環境内で書かれた文字を右寄せにするものです。指定のフォーマットでは名前や学生番号は右寄せにする決まりです。

この\makeboxコマンドの中にすべての行を書きます。 このように書くと、この中に書かれた文字がすべて同じ位置から始まります。 AvoidSelfCheck makebox Wordだとタブとか使用して頑張らないといけませんが。latexなら一瞬です。 ちなみに4.5cmと指定されているのは、左から4.5cm移動させています。試しに3cmとかにしてみるとめっちゃ崩れます。とりあえず表紙では4.5cmと指定すればいいんだなと思っててください。もう一つの引数であるlはLeftのlで文字を左で揃える引数です。rにすると文字が右で揃えられます。

\quadは空白をあけるコマンドです。LaTeXには空白文字を表すコマンドが大量にあります。

最後に\newpageコマンドで改ページしています。 その次の\setcounter{page}{1}は表紙の次のページからページ番号を表示するコマンドです。

表紙を作成したらおそらく次は節を書いて本文を書き始めると思います。 ここでLaTeX 節の作り方とかで検索してみると\section{節名称}とかが出てくるかと思います。 しかし、今回の環境ではこれは推奨しないです。 なぜならこれを使用するとフォントが正しく適用されないからです。 原因を突き止めて対処しようと思いましたが、最終的にこれが一番楽だと気付きました。

\noindent 1.\;節名称

ここで\noindentとは段落を開けないようにするコマンドです。\;は半角ぐらいのスペースを空けるコマンドです。LaTeXはVSCode上で半角スペースを空けても出力時には反映されません。(数式環境内だけでした。)

自分でコマンドを作成する。

しかし、

\noindent 1.\;節名称

と、毎回書くのは面倒くさいです。 そこで自分でコマンドを作成してみます。 自分でコマンドを作成するには\begin{document}の前に\newcommand{}と記述します。

% フォントの設定

\newcommand{\noi}[2]{\par\noindent #1\quad#2\par}

\begin{document}
	...

\parは改行するコマンドです。

これは毎回書くのが面倒くさいものをコマンドにして登録するものです。 引数も設定できます。

\newcommand{\コマンド名}[引数の数]{登録するコマンド群}

引数を呼び出す際には#1と書きます。これは一番目の引数を呼び出すものです。二番目なら#2と書きます。 先ほどの、

% フォントの設定

\newcommand{\noi}[2]{\noindent #1\;#2}

\begin{document}
	...

を使用すると、

\noi{1.}{節名称}

となります。 引数の数で指定された数だけ括弧が増えます。

変数、単位を挿入

実験のレポートでは必ず変数や単位を書かなくてはならない場面があります。 例えばvRとかです(Rは下付きでvは斜体というめんどくさい指定)。 これはこのように書くことができます。

~ 電圧降下$v_{\text{R}}$を計測し、~

$$はインライン数式を使用することができる構文です。この中に書かれた英字は勝手に斜体になります。この中は様々な数式記号が使用可能になります。総和のΣとか∫とかです。 v_{}はこの括弧の中を下付き文字にするというものです。 \text{}はこの中に書かれた文字の斜体設定を解除するコマンドです。 このように記述すると、 latex VR といった形で出力されます。 Wordだと下付き文字を毎回リボンメニューから選ばないといけないのでマウスが行ったり来たりしてしまいます。LaTeXならそんな面倒な作業はありません。

因みにこれも毎回\text{}と書くのは面倒くさいので、

\newcommand{\tval}[2]{#1_{\text{#2}}}

と定義すると、

\tval{v}{R}

と書くだけになります。

コマンド

ここで私が使用している変数と単位関係のコマンドを載せておきます。

\newcommand{\teval}[2]{$#1_{\text{#2}}$}
\newcommand{\alval}[2]{$\text{#1}_{\text{#2}}$}
\newcommand{\tval}[2]{#1_{\text{#2}}}
\newcommand{\tani}[2]{$#1\;\text{#2}$}

\tevalは本文で下付き文字がある変数を書くときに使用します。 \alvalは変数も下付き文字どちらも斜体にしたくないときに使用します。 \tvalは数式モード($$)などで\tevalの機能を使用したいときに使用します。 \tani\tani{200}{Hz}などのように書き、単位と数字の間に空白を勝手に入れてくれるコマンドです。

周波数\tani{200}{Hz}での回路の~

と書くと、

周波数200 Hzでの回路の~

と出力されます。 この\taniですが、なぜこのように書かないの疑問に思うかもしれません。

周波数200 Hzでの回路の~
% \taniコマンドを使用しないでそのまま書いた方法

ただ単に空白を開ければいいじゃんと思うかとおもいます。 しかし、マイクロの記号μを出力するコマンド\muは、数式モードでしか使用できません。そして基本的にマイクロは単位につきます。単位の文字は斜体になってはいけませんが、数式モードで書いた文字は基本的に斜体になるのでこの条件を満たすことができません。 では、数式モード内で斜体を解除するコマンド\text\muを使用しようとするとこれはエラーになってしまいます。 (理由まではわかりませんでした。。。)

コンデンサの電荷、200 $\text{\mu}$ Cでの回路の~ %エラー

これに対処する方法として、\textmuコマンドを使用する方法があります。

コンデンサの電荷、200 \textmu Cでの回路の~ %エラー

しかし、これもエラーとなってしまいます。 これは\textmuコマンドが数式モードかつ、\text{}コマンド内でしか使用できないからです。 つまりエラーを出さずにマイクロを斜体じゃない形式で単位を書こうとすると、

コンデンサの電荷、200 $\text{\textmu}$Cでの回路の~

になります。 μがあるときだけこの方法で書くのは面倒くさいので\taniで私は統一しています。

コンデンサの電荷、\tani{200}{\tm C}での回路の~

ちなみに、\textmuも毎回書くのは面倒くさいので、私は\tm\textmuを定義しています。

\newcommand{\tm}{\textmu}

latex textmu

図を挿入する

図を挿入する際にはgnuplotで作成したemf形式の画像は使用することができないです。なぜならLaTeXでemfを扱えるパッケージがほぼほぼないからです。 なので今回は、emfをpdfに変換して使用します。pdf形式にすると簡単に画像をLaTeX上で使用することができます。

emf => pdf

emfからpdfに変換するのはLaTeX周りではできません。 これにはInkScapeを使用します。 おそらく実験を受けている方ならInkScapeがダウンロードされているはずです。

以下のコマンドを打つと簡単に画像形式を変換することができます。

inkscape --export-type="pdf" 変換したい画像のパス

もしinkscapeコマンドが見つからないといわれた場合には、パスの設定ができていないかもしれません。 その場合は、システム環境変数からPathを編集する必要があります。 LaTeX

図を挿入する

pdf画像を張り付ける際にはまず、graphicsパッケージを使用します。

\usepackage{graphics}

そして環境をfigureに定義して使用します。 このとき必ず環境を記述する際に[htbp]とつけてください。 これは図を、書いた順で読みこませるものです。気になる方は[htbp]を外して出力してみてください。

\begin{document}

	% 何らかの本文

	\begin{figure}[htbp]
		
	\end{figure}

	% 何らかの本文

\end{document}

次にincludegraphicsコマンドを使用して画像を挿入します。 この時、画像を中央揃えにしたいため、centeringコマンドも使用しています。

\begin{document}

	\begin{figure}[htbp]
		\centerring
		\includegraphics[scale=1.0]{表示したい画像のパス}
	\end{figure}

\end{document}

includegrapshicsには画像の大きさを指定できる引数があり、[scale=大きさ]と書くと指定できます。この時、大きさはデフォルトで1.0倍です。

そして、キャプションをつけます。 キャプションにはcaptionコマンドとlabelコマンドをセットで記述します。

\begin{document}

	\begin{figure}[htbp]
		\centerring
		\includegraphics{表示したい画像のパス}
		\caption{キャプションをここに書く}
	    \label{fig:画像参照ID}
	\end{figure}

\end{document}

この時、図1とか図2とか書かなくてもLaTeX側で勝手にその番号を連番で入れてくれます。

参照

ここで画像参照IDとは、本文で図を参照する際に指定したIDの図ナンバーを勝手に入れてくれる便利なものです。 IDは一意なものなら何でもよいです。例えば画像の名前とか入れるといいです。 これを使用するには\refコマンドを使用します。

\ref{fig:画像参照ID}

これで図番号を自分たちで管理する必要がなくなります。 あとから、図を新しく挿入しても、本文中の図番号を編集する作業がなくなります。

コマンドの作成

これをnewcommandで定義すると以下のようになります。

\newcommand{\mf}[4]{
  \begin{figure}[htbp]
    \centering
    \includegraphics[scale=#2]{#1}
    \caption{#3}
    \label{fig:#4}
  \end{figure}
}

これを使用すると、

\mf{フォルダパス}{画像の大きさ}{キャプション}{画像参照ID}

となり、簡単になります。

ちなみに\refもコマンドを作成しました。

\newcommand{\refig}[1]{\ref{fig:#1}}

使用すると、

\refig{ID}はインピーダンスの被計測回路を示した図である。 ~~~

のような感じになります。

デフォルト

LaTeXにおいて表を書く際はかなり複雑です。 まずtable環境にします。

\begin{document}

	...

	\begin{table}[h]
		
	\end{table}

\end{document}

表のキャプションは表の上に書くので、それを記述します。

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}		
	\end{table}

\end{document}

さらにここでtabularx環境を定義します。 デフォルトでは使用できないのでインポートします。

\usepackage{tabularx}

そして環境を定義します。

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}
		
		\begin{tabularx}{\textwidth}{ccc}
			
		\end{tabularx}		
	\end{table}

\end{document}

ここで引数にtextwidthコマンドを使用しています。 これは表の横幅を余白設定のぎりぎりまでに拡大/縮小するものです。cccは表のセルの設定をします。cが三つあると列が三つ出来ます。cはセル中を中央揃えにするという意味です。因みにrrrと書くとセル内の文字が右揃えになります。XXXと書くと相対的に分割してくれます。tabularx環境ではcccと書くより、XXXと書いたほうがいいです。

セル内の文字を書きたい場合は以下のように書きます。

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}

		\begin{tabularx}{\textwidth}{ccc}
			列名1 & 列名2 & 列名3 \\
			2A & 2B & 2C
		\end{tabularx}		
	\end{table}

\end{document}

横方向にセルを増やす場合は&を挟みます。 上の例ですと、横方向のセルは3つになります。

縦列は\\を行の最後に入れるとそこで改行されます。 上の例ですと、2行作られます。

横線

横線を引くときは、\hlineコマンドを使用します。

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}

		\begin{tabularx}{\textwidth}{ccc}
			\hline 
			列名1 & 列名2 & 列名3 \\ \hline \hline
			2A & 2B & 2C
			\hline
		\end{tabularx}		
	\end{table}
\end{document}

二重線を引くときは、\hlineを二回書きます。 ちなみにこのように書くと、実験で推奨されている横線の書き方になります。

縦線

実験では使用しませんが、縦線を引くときは以下のようにします。

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}

		\begin{tabularx}{\textwidth}{|c|c|c|}
			\hline 
			列名1 & 列名2 & 列名3 \\ \hline \hline
			2A & 2B & 2C
			\hline
		\end{tabularx}		
	\end{table}
\end{document}

セルの設定で|を書いたところに縦線がひかれます。

セルの横サイズ

セルの縦のサイズは勝手に決まりますが、横のサイズを設定したい時があるかと思います。 その場合は以下のように書きます。

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}

		\begin{tabularx}{\textwidth}{>{\centering}p{1.5cm}>{\centering}p{1.5cm}>{\centering}p{1.5cm}}
			\hline 
			列名1 & 列名2 & 列名3 \\ \hline \hline
			2A & 2B & 2C
			\hline
		\end{tabularx}		
	\end{table}
\end{document}

この場合は>{\centering}p{1.5cm}が一つのセルの設定になります。 >はセルの設定をする宣言をしています。 {\centering}はセル内の文字を中央揃えにする設定です。 p{1.5cm}はセルの横サイズを1.5cmにするコマンドです。 もし、一つだけ設定したい場合は、

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}

		\begin{tabularx}{\textwidth}{c>{\centering}Xc}
			\hline 
			列名1 & 列名2 & 列名3 \\ \hline \hline
			2A & 2B & 2C
			\hline
		\end{tabularx}		
	\end{table}
\end{document}

Xを使用します。

セル内での改行

セル内で文字が長くなって改行したい時があるかと思います。 その場合は少し複雑です。 その際のコマンドを作りました。

\newcommand{\tl}[1]{
  \begin{tabular}{c}
    #1
  \end{tabular}
}

細かい説明はしませんが、tabular環境をセル内で作成すると使用可能です。 今回は\tl{}コマンドの中なら改行が使用できると覚えてください。

このコマンドを長い文字列に対して使用します。

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}

		\begin{tabularx}{\textwidth}{c>{\centering}Xc}
			\hline 
			1A & \tl{FG周波数\\$f$(Hz)} & 1C \\ \hline \hline
			2A & 2B & 2C
			\hline
		\end{tabularx}		
	\end{table}
\end{document}

私が定義した\tl{}コマンドを使用するとその中で、\\改行記号を使用することができます。 このコマンドを介さずに使用すると、改行記号が表に対して行われるので、かなり表が崩れるかと思います。

ちなみに実験ではなぜかめっちゃ表を詰めて欠かされるのでこれらの手法が必要不可欠です。 latex   こんなかんじ

ただ、これは小数点が揃ってません。 これを解決するスマートな方法が思いつきませんでしたが、一応揃えることができます。 AvoidSelfCheck

これは\;で強引に解決します。

\begin{document}

	...

	\begin{table}[h]
		\centering
		\caption{キャプション}
		\label{tab:表ID}

		\begin{tabularx}{\textwidth}{c>{\centering}Xc}
			\hline 
			\;\;51.0\\
			\;\;99.3\\
			198.3\\
			\;\;\;-3.23\\
			\hline
		\end{tabularx}		
	\end{table}
\end{document}

私の調べだと\;\;で半角一個分のようです。 ちなみに-(マイナス)\;の一個で正しく揃いました。

参照

表に対しても参照を提供しています。

\ref{tab:表ID}は~

これもコマンドを作成しました。

\newcommand{\refab}[1]{\ref{tab:#1}}

簡単に参照できます。

数式

もちろんインライン数式を使用すると、数式を書けますがWordのような数式ブロックを使用したい場合には\align*環境を使用します。

\begin{align*}
	R_{3} &= R\cos{(0)} + C\cos{(\tval{\theta}{S})}\\
	X_{3} &= R\sin{(0)} + C\sin{(\tval{\theta}{S})}\\
	\\
	Z_{3} &= \sqrt{R_{3}^{2} + X_{3}^{2}}\\
	\\
	\arg{(Z_{3})} &= \tan^{-1}{\left( \frac{X_{3}}{R_{3}} \right)}
\end{align*}

基本的なLaTeXの数式コマンドを使用することができます。 ここでは詳しくは解説しませんが、ほぼ全ての数式記号を使用することができます。 latex インテグラルとでも調べたらいくらでも出てきます。

ちなみに上の数式はこんな感じで出力されます。 latex

因みに式番号を書きたい場合は\tagコマンドを使用します。

\tval{R}{L} &= \stani{509.2}{\Omega}\tag{7}\label{eq:rl}

これはこんな感じに出力されます。 AvoidSelfCheck    \labelコマンドで参照を作成することもできます。 これも私はコマンドを作成して使用しています。

\newcommand{\refeq}[1]{\ref{eq:#1}}

これを使用すると、

\refeq{caLc}より, インダクタの内部抵抗は\tani{509.2}{\Omega}であることが分かった. 

で、 AvoidSelfCheck eqrl こんな感じに出力されます。

改ページ

改ページするには、\newpageコマンドを使用します。 いちいち、\newpageと入力するのが面倒な人は以下のコマンドを定義して使用したらいいかと思います。

\newcommand{\np}{\newpage}

URL

URLは大体長いので、urlコマンドを使用して適切に処理してもらいましょう。 まずインポートします。

\usepackage{url}

URLを\urlコマンドで使用します。

\noi{5.}{参考文献}
  \noindent
  [1] 情報通信工学科:LMS 資料[---] ..., 東北工業大学 \url{https://lms.tohtech.ac.jp/webclass/txtbk_frame.php?set_contents_id=d9025964f36c00d7157528688d73c7f1&language=JAPANESE&acs_=753660af}, 参照 Dec.25, 2024.

参考文献で使用するかと思います。

プリアンブル

最後に私が作成して、使用しているプリアンブルを全部載せます。

\documentclass[a4paper, 12pt]{ltjsarticle}

\usepackage{luatexja-fontspec}
\usepackage{siunitx}
\usepackage{amsmath}
\usepackage{svg}
\usepackage{graphics}
\usepackage{epstopdf}
\usepackage{tabularx}
\usepackage{amssymb}
\usepackage{url}

\usepackage{times}
\setmainfont{Times New Roman}
\setmainjfont{MS PMincho}

\usepackage{geometry}
\geometry{margin=1.27cm}

\newcommand{\noi}[2]{\par\noindent #1\quad#2\par}
\newcommand{\teval}[2]{$#1_{\text{#2}}$}
\newcommand{\alval}[2]{$\text{#1}_{\text{#2}}$}
\newcommand{\tval}[2]{#1_{\text{#2}}}
\newcommand{\tani}[2]{$#1\;\text{#2}$}
\newcommand{\stani}[2]{#1\;\text{#2}}

\newcommand{\refig}[1]{\ref{fig:#1}}
\newcommand{\refab}[1]{\ref{tab:#1}}
\newcommand{\refeq}[1]{\ref{eq:#1}}

\newcommand{\mf}[4]{
  \begin{figure}[htbp]
    \centering
    \includegraphics[scale=#2]{#1}
    \caption{#3}
    \label{fig:#4}
  \end{figure}
}
\newcommand{\tl}[1]{
  \begin{tabular}{c}
    #1
  \end{tabular}
}

\newcommand{\nb}{\nobreak}
\newcommand{\tm}{\textmu}
\newcommand{\np}{\newpage}
\newcommand{\cax}{>{\centering\arraybackslash}X}

\begin{document}

	ここに本文を書く。

\end{document}

おわり

LaTeXは正直フォント周りと表周りが一番鬼門かと思います。 実験のレポートの表、平気で10列とか指定してくるのですごい大変でした。 ただ、Wordはリボンメニューとの行ったり来たりがだるいので、それに比べたら些細なことです。 しかも、一番大きい特徴としてセルフチェックを免除してもらえます。セルフチェックツールではLaTeXファイルを処理できないからでしょうね。自分はセルフチェックで散々痛い目にあったのでもう使いません。因みに再提出食らいました。()

それと本当は実験で指定されている表紙の書き方も解説したかったのですが、時間がなくてアドベントの投稿時間まで間に合いませんでした。近いうちに編集して、来年の後輩が見るまでには完成しているかと思います。 無事に書けました!

これで私の今月のアドベントカレンダーは終了ですね。 意外と楽しかったです。ただ二つほど記事が書けなかったんですよね。 今、Rust製のOS作っているのですが、それについての記事と、あとFlutterで某出会い系アプリにある左スワイプを実装する記事です。 記事を書くのは意外と時間かかってそれらは出せずじまいでした;;

年が明けたあたりに、またそれらの記事を投稿しようかと思います。

© 2025 ソフトウェア技術研究会