KTUG 한국 텍 사용자 그룹

Menu

KTUG :: Q&A 마당 › listing 패키지의 한글 주석 색넣기

김소원 | 2017.02.15 11:44:41 | 메뉴 건너뛰기 쓰기

안녕하세요.

TeX의 listing 패키지를 사용하던 중.. 

한글 코맨트가 색이 칠해지지 않아 어찌해결 할까 고민중 도움을 받고자 글을 올리게 되었습니다.

\documentclass[a4paper,footnote]{oblivoir}

 

\pagestyle{hangul}

 

%\usepackage[default]{memucs-interword-x}

%\interhword{.4}{.1}{.1}

 

\usepackage[utf8]{inputenc}

 

\usepackage{listings}

\usepackage{caption}

\usepackage{geometry}

\usepackage{color}

 

\usepackage{fontspec}

\usepackage{vhistory}

 

\newfontfamily{\ttconsolas}{Consolas}

 

\setmainfont[Mapping=tex-text]{TeX Gyre Termes}

\setsansfont[Mapping=tex-text]{TeX Gyre Heros}

\setkormainfont(NanumBarunGothicBold){NanumBarunGothic}

\setkorsansfont(NanumGothicExtraBold)(NanumGothicBold){NanumGothic}

 

\definecolor{codekeyword}{rgb}{0.34,0.61,0.84}

\definecolor{codecomment}{rgb}{0.34,0.65,0.29}

\definecolor{codegray}{rgb}{0.5,0.5,0.5}

\definecolor{codepurple}{rgb}{0.58,0,0.82}

\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

 

\lstset{

commentstyle=\color{codecomment}\textit,

keywordstyle=\color{codekeyword}\textbf,

numberstyle=\small\color{codegray},

stringstyle=\color{codepurple},

frame=top,frame=bottom,

basicstyle=\small\normalfont\ttconsolas,

stepnumber=1,

numbers=left,

numbersep=10pt,

tabsize=2,

extendedchars=true,

breaklines=true,

captionpos=t,

mathescape=true,

stringstyle=\color{white}\ttfamily,

showspaces=false,

showtabs=false,

xleftmargin=17pt,

framexleftmargin=17pt,

framexrightmargin=17pt,

framexbottommargin=5pt,

framextopmargin=5pt,

showstringspaces=false

}

\DeclareCaptionFormat{listing}{\rule{\dimexpr\textwidth+17pt\relax}{0.4pt}\par\vskip1pt#1#2#3}

\captionsetup[lstlisting]{format=listing,singlelinecheck=false, margin=0pt, font={sf},labelsep=space,labelfont=bf}

 

\renewcommand\lstlistingname{Example}

\begin{document}

\begin{lstlisting}[language=C++,caption={테스트입니다. 하이하이},escapeinside=`']

#include <tuple>

#include <iostream>

#include <array>

#include <utility>

 

// Convert array into a tuple

template<typename Array, std::size_t... I>

decltype(auto) a2t_impl(const Array& a, std::index_sequence<I...>)

{

return std::make_tuple(a[I]...);

}

 

template<typename T, std::size_t N, typename Indices = std::make_index_sequence<N>>

decltype(auto) a2t(const std::array<T, N>& a)

{

return a2t_impl(a, Indices());

}

 

// pretty-print a tuple

// comment `한글 주석 스페이스도 안되나?' dmdm 

 

template<class Ch, class Tr, class Tuple, std::size_t... Is>

void print_tuple_impl(std::basic_ostream<Ch,Tr>& os,

const Tuple & t,

std::index_sequence<Is...>)

{

using swallow = int[]; // guarantees left to right order

(void)swallow{0, (void(os << (Is == 0? "" : ", ") << std::get<Is>(t)), 0)...};

}

 

template<class Ch, class Tr, class... Args>

decltype(auto) operator<<(std::basic_ostream<Ch, Tr>& os,

const std::tuple<Args...>& t)

{

os << "(";

print_tuple_impl(os, t, std::index_sequence_for<Args...>{});

return os << ")";

}

 

int main()

{

std::array<int, 4> array = {1,2,3,4};

 

// convert an array into a tuple

auto tuple = a2t(array);

static_assert(std::is_same<decltype(tuple),

std::tuple<int, int, int, int>>::value, "");

 

// print it to cout

std::cout << tuple << '\n';

}

\end{lstlisting}

 

\end{document}

 

로 작성하였습니다..

 

도움을 주시면 감사하겠습니다.

 

댓글 [9]

댓글 쓰기

목록 삭제

KTUG 한국 텍 사용자 그룹