メインコンテンツに移動

プログラムリスト

LyX2.4より以前のバージョンを用いて, ここでは新しい日本語LaTeXファイルを作成しましょう.論文には書かないですが,プログラムのcodeの一部をメモに入れたいと思いますよね.でも,従来のLaTeXのListing環境では, 日本語+プログラムリストが動作しません.解決を試みましょう.

JListings利用

pLaTeXではListing環境の日本語版が使えますが, まあpLaTeXなのでやめときましょう.

Minted利用

とりあえず全然違う方法として, Listingではなく, Minted環境を利用する.Mintedを利用するには,

  • Pygmentyze とかいう Pythonパッケージをインストールしておく.

蛇に生理的拒否感がある人

  • ターミナルで  sudo python3 -m pip install pygments と入力するらしい.
  • うまくいったら which pygmentize がインストール場所を示す
$ which pygmentize
/Library/Frameworks/Python.framework/Versions/お前さのインストールしたバージョン/bin/pygmentize
  • LyXのPreferences でPATHに /Library/Frameworks/Python.framework/Versions/お前さのインストールしたバージョン/bin を追加

anaconda

蛇が平気な人

  • ターミナルで  sudo pip install pygmentyze と入力するらしい.
  • うまくいったら ls $HOME/opt/anaconda3/bin/pygmentyze が見える:
$ ls -l $HOME/opt/anaconda3/bin/pygmentize
-rwxr-xr-x  1 sugimoto  staff  245 10 23 14:46 /Users/sugimoto/opt/anaconda3/bin/pygmentize
  • LyXのPreferences でPATHに $HOME/opt/anaconda3/bin を追加する
    fig
  • ほんで

各文書に設定する

  • 【文書】【プログラムリスト】【食堂ハイライト】Minted
    hi
  • 【文書】【形式】【外部プログラムを実行つまりセキュリティホール作成】にチェック
    dd
  • で,文書をビルドすると
    ok
    もちろん,「まあふつーに許可」を選択する

使い方

まあ普通に入力すると,こんな裏寂れた感じで出力される:

w

こんなんじゃやだ,と思う場合【文書】【ローカルのレイアウト】に

Format 66
Style C++Code
Category MainText
Margin Static
LatexType Environment
LatexName cppcode
NextNoIndent 1
LeftMargin MMM
RightMargin MMM
PassThru 1
ParbreakIsNewline 1
ParSkip 0
Align Block
AlignPossible Block, Left, Right, Center
LabelFont
Color branchlabel
Size Small
EndFont
Font
Color foreground
Family typewriter
Size ScriptSize
EndFont
Preamble
\usepackage{minted}
\newminted{cpp{mathescape,linenos=true,fontsize=\small,bgcolor=white,frame=lines,framesep=2mm}
EndPreamble
End

こんな感じで入れる:

fd

そうすると, 書式にC++Codeが使えるようになって

あt

まあ,あとは自分の好みってことで良いんじゃねえか