レポート作成 - Memo

Last modified: "2008-05-11 17:54:29 +0900"


TeX でレポートを作成するときに調べたもの.


章番号のない章

\chapter*{hoge}

画像の貼り付け

EPS ファイルは大体こんな感じ.
PNG などは ebb コマンドを使って bb ファイルを作成.あとは EPS と同じ.

\usepackage{graphicx}

\begin{document}
 \begin{figure}[h]
  \begin{center}
   \includegraphics[scale=1.5]{hoge.eps}
  \end{center}
  \caption{hoge}
  \label{hoge}
 \end{figure}
\end{document}

図やテキストの回転

ここでは 25 度回転させている.[source]

\usepackage[dvipdfm]{graphicx}

\begin{document}
  \rotatebox[x=5mm,y=2mm]{25}{こんな感じ}
\end{document}

図を横に並べる

\begin{figure}[htbp]
  \begin{tabular}{cc}
   \begin{minipage}{0.5\textwidth}
    \begin{center}
     \includegraphics[scale=0.5]{graphic1.png}
     \caption{caption 1}
     \label{label 1}
    \end{center}
   \end{minipage}
   \begin{minipage}{0.5\textwidth}
    \begin{center}
     \includegraphics[scale=0.5]{graphic2.png}
     \caption{caption 2}
     \label{label 2}
    \end{center}
   \end{minipage}
  \end{tabular}
\end{figure}

図と表を横に並べる

\begin{figure}
 \begin{minipage}{0.5\textwidth}
  \begin{center}
   \includegraphics[scale=0.5]{graphic1.png}
   \caption{graphic 1}
   \label{label 1}
  \end{center}
 \end{minipage}
 \begin{minipage}{0.5\textwidth}
  \begin{center}
   \makeatletter
   \def\@captype{table}
   \makeatother
   \begin{table}[htbp]
   \caption{table 1}
   \label{label 2}
   \begin{tabular}{|c|l|l|}\hline
    a & b & c \hline
   \end{tabular}
  \end{center}
 \end{minipage}
\end{figure}

ハイパーリンク

\ref なんかのリンクを外すのはどうやるんだろ?

\usepackage{hyperref}

\begin{document}
  \href{http://www.geocities.co.jp/SiliconValley-PaloAlto/5936/}
    {http://www.geocities.co.jp/SiliconValley-PaloAlto/5936/}
\end{document}

丸数字の enumerate

enumerate の数字を丸数字にする.
そのままでは数字がはみ出すので小さなフォントを使う.

\usepackage{enumerate}
\def\circledenumerate#1{\textcircled{\scriptsize #1}}

\begin{document}
  \begin{enumerate}[\expandafter \circledenumerate 1]
    \item hoge
    \item fuga
  \end{enumerate}
\end{document}

jsbook から jsreport へ

jsreport.sty として以下の内容を保存.
\usepackage{jsreport} で読み込む.

\@twosidefalse \@mparswitchfalse
\@openrightfalse

\let\@mkboth\@gobbletwo
\def\@oddfoot{\mbox{}\hfil {\small \thepage}\hfil\mbox{}}
\def\@evenfoot{\mbox{}\hfil {\small \thepage}\hfil\mbox{}}
\let\@oddhead\@empty\let\@evenhead\@empty

\renewcommand{\chapter}{%
\if@openright\cleardoublepage\else\clearpage\fi
\global\@topnum\z@
\secdef\@chapter\@schapter}

\setlength\footskip{2\baselineskip}
\addtolength{\textheight}{-2\baselineskip}

\setlength{\textwidth}{\fullwidth}

% 目次で節を出力する
\setcounter{tocdepth}{2}

% 章とタイトルの間に改行を入れない
\def\@makechapterhead#1{%
  \vspace*{2\Cvs}% 欧文は50pt
  {\parindent \z@ \raggedright \normalfont
    \Huge\headfont
    \ifnum \c@secnumdepth >\m@ne
      \if@mainmatter
        \@chapapp\thechapter\@chappos
        \hskip1zw
      \fi
    \fi
    #1\par\nobreak
    \vskip 3\Cvs}}

picture 環境で楕円を描く

\usepackage{epic,eepic}

\begin{document}
  \begin{picture}(400,530)(0,0)
    \put(190,205){\ellipse{120}{70}}
  \end{picture}
\end{document}

fancybox を用いて罫線ボックスにテキストをそのまま出力

\usepackage{fancybox}

\begin{document}
  \newenvironment{BoxedVerbatim}[1]
    {\VerbatimEnvironment
    \begin{Sbox}\begin{minipage}{#1}\begin{Verbatim}}
    {\end{Verbatim}\end{minipage}\end{Sbox}
     \setlength{\fboxsep}{3mm}\fbox{\TheSbox}}

  \begin{figure}[htbp]
    \begin{center}
      \begin{BoxedVerbatim}{.9\linewidth}
hoge
fuga
      \end{BoxedVerbatim}
      \caption{ 検索サーバから Web サーバに送信される検索結果例.}
      \label{search-result}
    \end{center}
  \end{figure}
\end{document}

参考文献にしたいよのさ.

プリアンブルに以下を追加.

\renewcommand{\bibname}{参考文献}

文献の引用書式

右肩に [1] というように書きたいな.
プリアンブルに以下を追加.

\makeatletter
\def\@cite#1{\textsuperscript{[#1]}}
\makeatother

行間調整

標準の行間を元に調整.
\begin{document} 〜 \end{document} の間に以下を追加.

\baselineskip=1.2\normalbaselineskip

目次のページ番号はローマ数字

プリアンブルに以下を追加.

\pagenumbering{roman}
\tableofcontents
\newpage
\pagenumbering{arabic}

レイアウトの参照

\usepackage{layout}

\begin{document}
  \layout
\end{document}

PowerPoint を EPS にする

参考:PowerPoint の図を PostScript ( PS ) 化して TeX に貼り込む方法
ほとんど参考のままだけれど,自分用に覚書にしておく.

  1. PS 用プリンタドライバのインストール
    なんとなく Canon LBP-1260 PS を選択. プリンタのプロパティから General - Printing Preferences - Document Options - PostScript Options - PostScript Output Options: を Encapslated PostScript (EPS) にする.
  2. 文字入りならば以下のような設定が必要かもしれない.
    プリンタのプロパティで
  3. PowerPoint で印刷するときにファイル出力を選択.
  4. できたファイルを GSview に放り込む.
    Options - Show Bounding Box にチェックを入れると枠が見えるので,ステータスバーに表示される座標とにらめっこしながら,ファイルの %%BoundingBox: を調整.
    ps2epsi を実行しても調整してくれるけれど,思い通りにならないこともあるし,やたらとサイズが大きくなるので私は使わない.

listings で日本語のコメントを正しく表示する

適当なスタイルファイルを作って \usepackage で読み込む.
内容はさっぱりだけれど……

\makeatletter
\newcount\lst@nextchar
\let\lst@@ProcessSpace\lst@ProcessSpace
\def\lst@ProcessSpace#1{%
   \lst@check@chartype{#1}%
      \lst@@ProcessSpace
      \lst@whitespacetrue}
\let\lst@@ProcessLetter\lst@ProcessLetter
\def\lst@ProcessLetter#1#2{%
   \lst@check@chartype{#2}%
      {\lst@@ProcessLetter{#1}}%
      \relax}
\let\lst@@ProcessDigit\lst@ProcessDigit
\def\lst@ProcessDigit#1#2{%
   \lst@check@chartype{#2}%
      {\lst@@ProcessDigit{#1}}%
      \relax}
\let\lst@@ProcessOther\lst@ProcessOther
\def\lst@ProcessOther#1#2{%
   \lst@check@chartype{#2}%
      {\lst@@ProcessOther{#1}}%
      \relax}
\let\lst@@ProcessTabulator\lst@ProcessTabulator
\def\lst@ProcessTabulator#1{%
   \lst@check@chartype{#1}%
      \lst@@ProcessTabulator
      \relax}
\def\lst@check@chartype#1#2#3{%
   \edef\@tempa{\lst@nextchar=`\string#1\relax}%
   \@tempa
   #2%
   \ifnum\lst@nextchar<\@cclvi
      #3%
   \else
      \lst@ifletter \else \lst@OutputOther \fi
      \lst@whitespacefalse
      \expandafter\lst@AppendJchar
   \fi
   #1}
\def\lst@AppendJchar#1#2{%
   \lst@check@chartype{#2}%
      {\advance\lst@length\@ne\lst@Append{#1}}%
      \relax}
\def\lst@check@chartype@BOL#1{%
   \edef\@tempa{\lst@nextchar=`\string#1\relax}%
   \@tempa
   \ifnum\lst@nextchar<\@cclvi\else
      \lst@whitespacefalse
      \expandafter\lst@AppendJchar
   \fi
   #1}
\def\lst@BOLGobble{%
   \ifnum\lst@gobble>\z@
      \@tempcnta\lst@gobble\relax
      \expandafter\lst@BOLGobble@
   \else
      \expandafter\lst@check@chartype@BOL
   \fi}
\def\lst@BOLGobble@#1{%
   \let\lst@next#1%
   \ifx \lst@next\relax\else
   \ifx \lst@next\lst@MProcessListing\else
   \ifx \lst@next\lst@ProcessFormFeed\else
   \ifx \lst@next\lstenv@backslash
      \let\lst@next\lstenv@BOLGobble@@
   \else
      \let\lst@next\lst@BOLGobble@@
      \ifx #1\lst@ProcessTabulator
         \advance\@tempcnta-\lst@tabsize\relax
         \ifnum\@tempcnta<\z@
            \lst@length-\@tempcnta \lst@PreGotoTabStop
         \fi
      \else
         \edef\@tempa{\lst@nextchar=`\string#1\relax}%
         \@tempa
         \ifnum\lst@nextchar<\@cclvi\else
            \advance\@tempcnta\m@ne
         \fi
         \advance\@tempcnta\m@ne
      \fi
   \fi \fi \fi \fi
   \lst@next}
\def\lst@BOLGobble@@{%
   \ifnum\@tempcnta>\z@
      \expandafter\lst@BOLGobble@
   \else
      \expandafter\lst@check@chartype@BOL
   \fi}

\def\lst@check@chartype@BOL#1{%
   \edef\@tempa{\lst@nextchar=`\string#1\relax}%
   \afterassignment\remove@to@nnil
   \@tempa\@nnil
   \ifnum\lst@nextchar<\@cclvi\else
      \lst@whitespacefalse
      \expandafter\lst@AppendJchar
   \fi
   #1}

\def\lst@InputListing#1{%
   \begingroup
      \lsthk@PreSet \gdef\lst@intname{#1}%
      \expandafter\lstset\expandafter{\lst@set}%
      \lsthk@DisplayStyle
      \catcode\active=\active
      \lst@Init\relax \let\lst@gobble\z@
      \lst@SkipToFirst
      \lst@ifprint \def\lst@next{\lst@get@filecontents{#1}}%
      \else        \let\lst@next\@empty
      \fi
      \lst@next
      \lst@DeInit
   \endgroup}
\newread\lst@inputfile
\def\lst@get@filecontents#1{%
   \let\lst@filecontents\@empty
   \openin\lst@inputfile=#1\relax
   \let\@lst@get@filecontents@prevline\relax
   \lst@get@filecontents@loop
   \closein\lst@inputfile
   \lst@filecontents\empty}
\def\lst@get@filecontents@loop{%
   \read\lst@inputfile to\@lst@get@filecontents@currline
   \ifx\@lst@get@filecontents@prevline\relax\else
      \expandafter\expandafter\expandafter\def
      \expandafter\expandafter\expandafter\lst@filecontents
      \expandafter\expandafter\expandafter{%
         \expandafter\lst@filecontents\@lst@get@filecontents@prevline}%
   \fi
   \let\@lst@get@filecontents@prevline\@lst@get@filecontents@currline
   \ifeof\lst@inputfile\else
      \expandafter\lst@get@filecontents@loop
   \fi}

\def\lst@check@chartype#1#2#3{%
   \edef\@tempa{\lst@nextchar=`\string#1\relax}%
   \afterassignment\remove@to@nnil
   \@tempa\@nnil
   #2%
   \ifnum\lst@nextchar<\@cclvi
      #3%
   \else
      \lst@ifletter \else \lst@OutputOther \fi
      \lst@whitespacefalse
      \expandafter\lst@AppendJchar
   \fi
   #1}
\makeatother

戻る