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}
저자
제목,날짜
}
두둥