ラベル latex の投稿を表示しています。 すべての投稿を表示
ラベル latex の投稿を表示しています。 すべての投稿を表示

2024年2月6日火曜日

Listings の使用をやめて Algorithmicx を使う

Listingsのキャプションがいまいちすぎる.情報系では Algorithmicx を使うらしいので導入してみる.

tlmgrでインストールしよう
% sudo tlmgr install algorithmicx
とするもてめえの TexLive は 2019 で,最新の 2023 より古いから入らんよと言われてしまう.(ログは忘れた)
apt update して再度インストールを試みるも 2019 が再度インストールされてしまう...(LinuxMint 21.2です)

% sudo apt remove texlive-full
% sudo apt remove texlive-base
% apt update
(再起動)
% sudo apt install texlive-full
(2019をインストールしてしまう)

仕方ないので install-tl を使ってインストールすることに.texjpの指示通りです.
https://texwiki.texjp.org/?Linux#texliveinstall
ただリポジトリを指定するとうまくいかなかったので指定しなかった.
% wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
% tar xvf install-tl-unx.tar.gz
% cd install-tl-2*
%  sudo ./install-tl -no-gui 
...
Actions:
 <I> start installation to hard disk
 <H> help
 <Q> quit
Enter command: I
(延々ダウンロード)
% sudo /usr/local/texlive/2023/bin/x86_64-linux/tlmgr path add

念のためアップデートしてみた.なぜかいくつかアップデートが走った.
% sudo tlmgr update --self --all
tlmgr: package repository https://ftp.yz.yamagata-u.ac.jp/pub/CTAN/systems/texlive/tlnet (verified)
tlmgr: saving backups to /usr/local/texlive/2023/tlpkg/backups
tlmgr: no self-updates for tlmgr available
[ 1/12, ??:??/??:??] update: acmart [4890k] (68950 -> 69242) ... done
...
[12/12, 00:15/00:15] update: versonotes [133k] (55777 -> 69249) ... done
running mktexlsr ...
done running mktexlsr.
running updmap-sys ...
done running updmap-sys.
tlmgr: package log updated: /usr/local/texlive/2023/texmf-var/web2c/tlmgr.log
tlmgr: command log updated: /usr/local/texlive/2023/texmf-var/web2c/tlmgr-commands.log

念のため既存の tex をコンパイルしてちゃんと動くか確認.
% cd ~/(適当なTexディレクトリ)
% make

本番の tex 環境に戻り,コンパイルしてみる.

参考にしたサイトだと tlmgr で以下のようにパッケージをインストールせよとあったけれど,うちの環境では不要のようだった..
% sudo tlmgr install algorithmicx
% sudo tlmgr install algorithms

Listings では HTML の plane タグの様に特殊文字のエスケープなどは必要なかったのだけれど, alrogithmic の環境だと
通常の Latex の環境同様エスケープや改行などは必要みたい.あと文中に日本語があるとコンパイル時に
! Not two-byte family.
と警告が出て止まってしまう.まあでも日本語でアルゴリズム書くこと無いからいいか.

Algorithmicx の参考に下サイト:
https://li-feel.hatenablog.com/entry/2017/12/19/160618
https://github.com/PMOB/study-tex/wiki/reference-algorithm



2024年2月5日月曜日

IEICEのクラスファイル を TeXLive 2023で動かすようにする

環境は Linux Mint 21.2です.クラスファイルは ieice2.2 です.(2015年)
普通にコンパイルすると
.
で止まる.
\usepackage{graphicx,xcolor}% for pdflatex
\usepackage[dvipdfmx]{graphicx,xcolor}
に変える.

これまで Bibtex では ieicetr.bst と reference.bib をワーキングディレクトリに置いて
\bibliographystyle{ieicetr}
\bibliography{reference}

という記述を使っていたのだが,TexLiveをアップデートしてから
というエラーが出るようになった(TexLive 2023 なのになんで 2022 なん?).それどころか TexLive デフォルトでインストールされる IEEEtran もエラーになるように.bst ファイルのデフォルトの保存ディレクトリにある bst ファイルも,カレントディレクトリにある bst ファイル,bib ファイルも読めない.これらはカレントディレクトリに置けばいいって奥村先生も言っているのになぜ


悩んでいたのだが,以下のサイトからパスをちゃんと書かないといけないらしいという情報を見つけた.

ほんとうかいな.カレントディレクトリに置いたファイルは"./"をつけよう.
\bibliographystyle{./ieicetr}
\bibliography{./reference}

デフォルトでインストールされる BST ファイルについては, BSTINPUTS が
% echo $BSTINPUTS 
/usr/local/texlive/2023/texmf-dist/bibtex/bst/
を指していて IEEEtran は
% ls /usr/local/texlive/2023/texmf-dist/bibtex/bst/IEEEtran/IEEEtran.bst
にあるので,以下のように書き換えれば良いらしい.\bibliographystyle{IEEEtrran/IEEEtran}
\bibliographystyle{ieeetrran/IEEEtran}

上記の様にコードを変更したらどちらも動いた.良かったけれど動き方がなんか想定と違う気が...

念のため,.zshrc にBSTINPUTSも設定しておこう.
% export BSTINPUTS=/usr/local/texlive/2023/texmf-dist/bibtex/bst/

24/02/15 訂正
bibliographystyle のディレクトリ名 IEEETran はieeetran とすべて小文字でした.

2024年2月2日金曜日

PDFへのフォントの埋め込み TexLive 2023版

PDFへのフォントの埋め込みをしないと IEEE PDF eXpres が文句を言うので埋め込む.

初手でいきなり気持ち悪い事をするのだが,GhostScriptの設定を変更する.設定ファイルは以下にあるようだ.(いくつかのWebサイトでは [ver]/lib の下と書いているが,そうでは無いらしい)

.standardfonts で指定している基本フォントをすべてコメントアウトしてしまう.

マップするフォントを指定するファイルを作成する.

-f オプションをつけてコンパイル

確認
全部 emb が yes になっているからOK.

環境構築すると GS の設定を変更するのすぐに忘れちゃうんだよな.

2020年11月19日木曜日

IEEEtran.cls で章番号のフォーマットを変える.

Latex で章番号のフォーマットを変えるには,以下の様に設定する.
\renewcommand{\thesection}{\arabic{section}}
\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}

\thesection が section のカウンターの見出しを変えるので,\renewcommand
カウンターの見出しを変えてやればよい.
普通はこれでいいのだけれど,IEEEtran.cls は \thesection ではなくて,\thesectiondis を使っている.
なので以下の様に設定する.
\renewcommand{\thesectiondis}{\arabic{sectiondis}}
\renewcommand{\thesubsectiondis}{\thesectiondis.\arabic{subsectiondis}}

2017年10月11日水曜日

IEEEtran.bstで原稿のReferencesにURLを入れない(@IEEEtranBSTCTLを使う)

IEEEtran.bstを使うとデフォルトでは参考文献にURLが入る.これを入らないようにする方法はいくつかあるが,IEEEtran.bstそのものは@IEEEtranBSTCTLを使うことで制御する事を想定しているのでそのやり方を書く.BSTファイルを直接いじる必要は無い.

IEEEtran.bstを使うとエントリータイプに応じて様々なフィールドが参考文献に出力される.

@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLuse_article_number = "yes",
CTLuse_paper = "yes",
CTLuse_url = "yes",
CTLuse_forced_etal = "no",
CTLmax_names_forced_etal = "10",
CTLnames_show_etal = "1",
CTLuse_alt_spacing = "yes",
CTLalt_stretch_factor = "4",
CTLdash_repeated_names = "yes",
CTLname_format_string = "{f.˜}{vv˜}{ll}{, jj}",
CTLname_latex_cmd = "",
CTLname_url_prefix = "[Online]. Available:"
}

ここで,
CTLuse_url = "no",
を自分の.texファイルで指定する事でURLの出力を禁止できる.

改めて設定方法を掲示すると,
(1) .bibファイルへの設定記述
.bibファイルに,前述の@IEEEtranBSTCTLのうち
制御したい(上書きしたい)パラメータを記述する.

@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLuse_url = "no",
}

(2) .texでの制御情報反映
定義した制御情報を有効にするコマンドをTEXファイルの本文に追加する
(\begin{document}の直後がいいらしい).

\bstctlcite{IEEEexample:BSTcontrol}

(3) コンパイル

参考:
IEEEtran.bstで著者名が線になるのを防ぐ
How to Use the IEEEtran BIBTEX Style: IEEEtran.bstのマニュアル(PDF).丁寧に説明されています.

2015年2月25日水曜日

IEEEtran.bstで著者名が線になるのを防ぐ


IEEEtran.bstにおいて参考文献リストにおいて同じ著者が連続すると,著者名が"------"と表示されてしまう.不可解な仕様だ.
調べると,著者名が連続する場合にダッシュにしない方法があるらしい.

(1) 論文データベース(.bib)にIEEEtran.bstの制御情報(IEEEtranBSTCTRL)を加える.
連続する著者をダッシュにしないのであれば,CTLdash_repeated_namesをnoにすればよい.

@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLdash_repeated_names = "no"
}

(2) 定義した制御情報を有効にする
定義した制御情報を有効にするコマンドをTEXファイルの本文に追加する(\begin{document}の直後がいいらしい).

\bstctlcite{IEEEexample:BSTcontrol}

(3) bstctlcite コマンドを定義する.
IEEEのクラスファイル(IEEEtrantools.styパッケージなど)を使っていれば必要ない.
その他のクラスファイルを使っている場合,bstctlciteコマンドを定義する.プリアンプル(\begin{document}の前)に書けばよい.
bstctlciteコマンドのソースコードはIEEEtran.bstの冒頭にコメントとして書かれている.

\makeatletter
\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}}
\def\@bstctlcite[#1]#2{\@bsphack
\@for\@citeb:=#2\do{%
\edef\@citeb{\expandafter\@firstofone\@citeb}%
\if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
\@esphack}
\makeatother

定義後,コンパイルすると連続する著者もちゃんと表記されるようになった.



参考:
Is it normal for BibTeX to replace similar author names with “------”?
How to Use the IEEEtran BIBTEX Style: IEEEtran.bstのマニュアル(PDF).丁寧に説明されています.

2014年7月22日火曜日

LaTeXのitemizeやenumerate等の間隔を詰める

Latexのitemizeやenumerate等のlist環境において,デフォルトでは行間が微妙に空いて格好悪い.行間を詰める手法はいくつかあるが,コマンドを再定義する手法がシンプルで一番楽だった.

プリアンブル(\documentclassと\begin{document}の間)に以下のコマンドを追加した.

\let\oldenumerate\enumerate
\renewcommand{\enumerate}{
   \oldenumerate
   \setlength{\itemsep}{1pt}
   \setlength{\parskip}{0pt}
   \setlength{\parsep}{0pt}
}
\let\olditemize\itemize
\renewcommand{\itemize}{
   \olditemize
   \setlength{\itemsep}{1pt}
   \setlength{\parskip}{0pt}
   \setlength{\parsep}{0pt}
}


参考:LaTeX List Structures - Wiki Books

2013年10月13日日曜日

dvipdfmxでpdfを作ると図がずれる

ptetexからtexlive(2013/10/12)に移行したら,dvipdfmxでpdfを生成する時に
図がずれる様になった.xdviで見る限りdviは問題なさそうである.

原因はグラフィックのパッケージへのオプションが不適切で,

\usepackage{graphicx}

から

\usepackage[dvipdfmx]{graphicx} 

に変えたら直った.

2013年7月10日水曜日

ulem.styにemphをアンダーラインにさせない

latexで論文を修正するために修正前の箇所に取消線を引く時,心臓に悪い自体が起きたのでメモ.

latexで取消線を引くには,ulem.styを使う.
ulem.styは取消線以外にもアンダーラインや二重線等もスタイルとして含んでいるのだが,
ulem.styはデフォルトでイタリックをアンダーラインに変えてしまう.つまり\emや\emphが
アンダーラインになってしまう.


\usepackage{ulem}をしたばかりに,引用文献が,アンダーラインになってしまった!
気がつかずに投稿していたらと思うと心臓ばくばくである.

そういうときは,normalemオプションを使う.




\usepackage[normalem]{ulem}を使えばこの通り,元のイタリックに!

論文締め切り直前にこんな事態が起きるなんて,なんて心臓に悪いパッケージなんだ... (UnderLineEMphasizeの名の通りといえばそうなのだが)

以下のドキュメントが詳しい.
http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CDkQFjAB&url=http%3A%2F%2Ftexdoc.net%2Ftexmf-dist%2Fdoc%2Fgeneric%2Fulem%2Fulem.pdf&ei=tRMAUcKqHM6QiAeKmoGQAQ&usg=AFQjCNFrSE3qDfkcWl-YWFKHGEK9cw-4vA&sig2=638e6jfyWLXhfMw0N3ZhDA&bvm=bv.41248874,d.aGc

2011年5月16日月曜日

IEEE Tranのクラスファイルをインストールする方法

研究室のPCにIEEE Tranのクラスファイル(+とbstファイル)を入れたので,個人的備忘録としてメモ.別にIEEEに限らず一般的な話だとは思う.OSはCentOS 5.5です.

latexのバージョン:ptetex3.0.1

http://tutimura.ath.cx/~nob/tex/ptetex/ptetex3/rpm/
にて配布されている,rpmをインストール.


(1) IEEEtranのクラスファイルをダウンロードする.

IEEEのサイトからダウンロード

"LaTeX Archive Contents"と"LaTeX (Bibliography Files)"があるので,両方ダウンロード.

ダウンロードしたらtarコマンドで解凍する.


(2) IEEEtranクラスファイルのコピー

探し回った結果,
/usr/share/texmf-dist/tex/latex/
以下にクラスファイルを入れるとよい様だ.
探すには
% locate .cls
とすると,現地点で保存されているクラスファイルの場所がわかる.

ディレクトリをつくって,クラスファイルをコピーする.
% cd /usr/share/texmf-dist/tex/latex/
% sudo mkdir IEEEtran
% sudo cp ~/IEEEtran2.cls /usr/share/texmf-dist/tex/latex/IEEEtran


(3) bstファイルのコピー

こちらは
/usr/share/texmf-dist/bibtex/bst
以下にファイルを入れると良いようだ.
ディレクトリをつくって,クラスファイルをコピーする.
% cd /usr/share/texmf-dist/bibtex/bst
% sudo mkdir IEEEtran
% sudo cp ~/*.bst /usr/share/texmf-dist/bibtex/bst

(4) インストール
ls-Rを更新する
% sudo texhash

これでok.あとはテンプレートのファイル(たとえばbare_conf.tex)をコンパイルしてみてpdfができればok

% platex bare_conf.tex
% dvipdfmx bare_conf.dvi

「UNIXって何(´・ω・`)」な2年前の自分はこれにだいぶ時間を費やした物だ.さかのぼって教えてあげたい.