我正在使用列表包在我的文档中以一种很好的方式显示 VHDL 代码,为此,我定义了自己的 VHDL 版本,因此:
\documentclass{article}
\usepackage{listings}
\usepackage[usenames,dvipsnames]{xcolor}
\lstdefinelanguage{VHDL}{
morekeywords=[1]{
library,use,all,entity,is,port,in,out,end,architecture,of,
begin,and,or,Not,downto,ALL
},
morekeywords=[2]{
STD_LOGIC_VECTOR,STD_LOGIC,IEEE,STD_LOGIC_1164,
NUMERIC_STD,STD_LOGIC_ARITH,STD_LOGIC_UNSIGNED,std_logic_vector,
std_logic
},
morecomment=[l]{--}
}
\colorlet{keyword}{blue!100!black!80}
\colorlet{STD}{Lavender}
\colorlet{comment}{green!80!black!90}
\lstdefinestyle{VHDL}{
language = VHDL,
basicstyle = \footnotesize \ttfamily,
keywordstyle = [1]\color{keyword}\bfseries,
keywordstyle = [2]\color{STD}\bfseries,
commentstyle = \color{comment}
breaklines=true, % sets automatic line breaking
tabsize=3 % sets default tabsize to 2 spaces
}
输出格式几乎完美,但对于注释,程序用“breaklines”一词替换了空格。此代码:
\begin{document}
\begin{lstlisting}[style=vhdl]
-- attribute s : string;
signal partial_from_static : std_logic_vector(3 downto 0) := (others => '1');
signal partial_to_static : std_logic_vector(3 downto 0) := (others => '1');
signal static_from_partial : std_logic_vector(3 downto 0) := (others => '1');
-- instantiation of instBusMacro
instBusMacro : BM_V5_L4_R4_single
Port Map (
RH0 => '1',
\end{lstlisting}
\end{document}
给出以下输出:
断线——断线断线属性断线断线断线断线断线:断线断线字符串断线;
信号 partial_from_static : std_logic_vector (3 downto 0) := ( others => '1 '); 信号 partial_to_static : std_logic_vector (3 downto 0) := ( others => '1 '); 信号 static_from_partial : std_logic_vector (3 downto 0) := ( others => '1 ');
断线——断线 断线实例化断线 断线的断线 断线实例总线宏
instBusMacro:BM_V5_L4_R4_single 端口映射(RH0 => '1',
由于评论和关键词的格式已经相应地发生了变化,因此它们都被正确识别了,但是那些“断线”让我抓狂。
我目前学到的知识:
listings 包文档说注释定义中不允许使用“其他”类型的字符(!、-、> 等),所以我很确定问题就出在这里。文档的其他部分还介绍了如何包含这些字符,但我只能找到如何将这些字符用作关键字,而这些字符对于注释毫无用处。
谢谢大家,如果我犯了一些礼仪错误,我很抱歉,这是我第一次在这里发帖。
编辑:
我忘了加逗号:
commentstyle = \color{comment}
breaklines=true,
如此微不足道的错误,在这里不值得一看。
答案1
\lstdefinestyle{VHDL}{
language = VHDL,
basicstyle = \footnotesize \ttfamily,
keywordstyle = [1]\color{keyword}\bfseries,
keywordstyle = [2]\color{STD}\bfseries,
commentstyle = \color{comment},%%%%%%%%%%
breaklines=true, % sets automatic line breaking
tabsize=3 % sets default tabsize to 2 spaces
}
你自己的定义读
commentstyle = \color{comment}breaklines=true,