LaTeX で algpseudocode パッケージ(擬似コード用)を使ったときに行番号と末尾がおかしくなる問題の対処

起こった問題

こういうやつ.

擬似コード(行番号がおかしい,末尾に余計な「=0」が付く)
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{algpseudocode}

\begin{algorithm}[tbh]
    \caption{疑似コード}
    \begin{algorithmic}[1]
        \REQUIRE hoge
        \ENSURE hoge
        \Function {main}{ $void$ }
            \State $ N \leftarrow 1 $
            \State hoge$ \leftarrow $ foo\_class(initial\_setting)
            \State hoge.execute(OBJECTIVE, N)
            \PRINT hoge.best\_value
        \EndFunction
        \Function {objective}{ bar }
            \State $ a \leftarrow 1 $
            \RETURN a
        \EndFunction
    \end{algorithmic}
\end{algorithm}




解決法

原因としてはパッケージが混在しているのが良くなかった[1][2]

  • algorithmic パッケージを削除する
  • 大文字のやつを小文字に置き換える(\REQUIRE → \Require など)
  • \Print などは無いため,\State \textbf{print} (もしくは \State \PRINT)で置き換える
擬似コード(修正後)
\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{algorithm}[tbh]
    \caption{擬似コード}
    \begin{algorithmic}[1]
        \Require hoge
        \Ensure hoge
        \Function {main}{ void }
            \State $ N \leftarrow 1 $
            \State hoge$ \leftarrow $ foo\_class(initial\_setting)
            \State hoge.execute(OBJECTIVE, N)
            \State \textbf{print} hoge.best\_trial
        \EndFunction
        \Function {objective}{ bar }
            \State $ a \leftarrow 1 $
            \State \textbf{return} a
        \EndFunction
    \end{algorithmic}
\end{algorithm}




参考サイト
[1] algorithmicxを使いLaTeXに擬似コードを追加 – Qiita
[2] how to remove the end for =0 in latex algorithm? – Stack Overflow

一言日記 2023/10/06

今日は横浜から名古屋に帰ってきた.

横浜は観光しなかったが電通大は観光した.

帰りの新幹線で昨日のイベントのお礼メールを書きたかったので S Work 車両(遠慮なく作業していい車両)に乗ってみた.

意外にみんながみんな作業してる感じでは無く,普段の車両と雰囲気は一緒だった.

なんなら隣の人は寝てた.

キャリアパスフォーラムに参加した(2023/10/05)

今日は横浜で開催されたキャリアパスフォーラム(D学生やPDのための就活イベント)に参加した.

フェローシップの制約?で、D1かD2の内にこういうイベントに参加するみたいなのがあるので仕方なく参加したという流れ.




午前中は学生のポスターセッション(自己紹介と研究紹介)で企業の人がそれを回り,午後は企業のブース説明で学生が興味のある企業の説明を聞きに行くという形のイベントだった.

イベント中はめちゃくちゃ喋らないといけないのでしんどかった.

特にポスターセッション.

ただ,共同研究先(グループが一緒なだけで厳密には違う会社だけど)の方と研究の話が出来たのはとても良かった.



午後のブース説明では,学生からの質問タイムに毎回同じ質問をした.

「博士卒見込みで内定し,学位(博士号)が取れなかった場合はどうなるのか?」

合計7社に聞いた回答としては,

  • 1社:修士卒と同じ給料になる(コロナなどでやむを得ない事情の場合は1年待つ)
  • 2社:修士卒+αの給料になる(博士卒未満)
  • 1社:給料は変わらない(博士卒扱い)
  • 3社:半年か1年待ってくれる(待ってくれた上で学位を取れなかった場合は聞いてない)

という結果となった.

当然,会社から補助を貰って社会人Dという道もあるよという話を受けた.

感想としては,内定取消しになる会社が一つも無くて安心した.

これなら学位取得要件崖っぷちの自分でも心置きなく応募できる.

というか逆に,どうせ留年するし就活しなくて良いかな〜とか思ってたのでとりあえずでも応募していった方がいいのか?となってしまった.

本命は今の共同研究先だがこれからどう動くべきか迷ってる.