LaTeX

bibtex 결과물에 색 넣기 / Reference의 특정 항목에 색 넣기

알 수 없는 사용자 2013. 9. 11. 14:19


bibtex의 결과물인 bbl을 수정하면 된다... 다만 그걸 자동으로 해야 할 때가 있다? 논문 수정할 때, 새로 들어간 reference에는 색을 칠해주는게 좋기 때문이다.

Makefile을 수정하자.

bib:                                                                           
    bibtex $(TARGET)                                                           
    perl ./colorize_bib.pl < $(TARGET).bbl > x                                 
    mv x $(TARGET).bbl

굳이 perl로 perl 스크립트를 실행하는 이유는, 나랑 자료를 공유하는 사람이 언제나 perl script를 실행권한으로 하고있을지 않을지 모르니까... -_-^

bbl파일의 모양을 보면, 기계가 컴파일을 해서 나온 생성물이라 깔끔하게 규칙적인 구조로 되어있다.

\bibitem{survey}
저자, 제목
  제목
  날짜

\bibitem{most}
저자
  제목,날짜

이런식이다. bibitem으로 적절히 시작해서, 공백으로 적절히 끝난다. 이를 이용하는거다!

colorize_bib.pl:

#!/usr/bin/perl
use strict;

# white listed bibitems:
my @list = [ "survey", "most" ];

my $in_white = 0; # whitelist flag

while( my $line = <> ) {
    # examine bibitem name
    if( $line =~ /bibitem{(.+)}/ ) {
        print( $line );
        my $item = $1;
        # white listed (?) bibitem detected!
        if( $item ~~ @list ) {
            print( '{\color{blue}' . "\n" );
            $in_white = 1;
        }
    }
    # if processing white listed bibitem and it has ended...
    elsif( $in_white and $line =~ /^\s*$/ ) {
        print( "}\n\n" );
        $in_white = 0;
    }
    # plain print
    else {
        print( $line );
    }
}


스크립트에 의해 변화된 bib파일은 다음과 같다:

\bibitem{survey}
{\color{blue}
저자, 제목
  제목
  날짜
}

\bibitem{most}
{\color{blue}
저자
  제목,날짜
}

두둥