Lyx輸入中文與代碼高亮


如果您看了我的這個隨筆:《OpenSUSE 13.2安裝Texlive2014+Texmaker+Lyx》

(一)LyX中文

打開Lyx直接新建開始使用,那么輸入的中文會是編譯失敗的,疑?為什么它的說明文檔和教程編譯都沒有問題...

原因即在於每個文檔的配置都是不同的。你可以打開“幫助 - Lyx介紹”,自己也新建一個文件。然后打開“文檔 - 首選項”。會發現配置是不同的。如果對着實例改,那么就可以運行中文了,不過還是會有很多的地方,莫名其妙的編譯不過,可能是還有些什么設置我沒有去改,剛剛接觸也不會改。所以最簡單的方法就是復制Lyx介紹到你的目錄,刪除原有內容,然后編輯。這是最簡單有效的方法,可以應付絕大多數的編寫工作,以后了解多了可以再自己配置

(二)LyX代碼高亮

對於程序員來說,假如想插入些代碼,沒有高亮肯定是無法接受的。下面來看下方法。

打開“文檔 - 首選項”,進入“LaTex導言區”,追加如下代碼:

\usepackage{listings}
\usepackage{xcolor}
\lstset{
  %行號
  numbers=left,
  %背景框
  framexleftmargin=10mm,
  frame=none,
  %背景色
  %backgroundcolor=\color[rgb]{1,1,0.76},
  backgroundcolor=\color[RGB]{245,245,244},
  %樣式
  keywordstyle=\bf\color{blue},
  identifierstyle=\bf,
  numberstyle=\color[RGB]{0,192,192},
  commentstyle=\it\color[RGB]{0,96,96},
  stringstyle=\rmfamily\slshape\color[RGB]{128,0,0},
  %顯示空格
  showstringspaces=false,
  xleftmargin=2em, %邊距
  xrightmargin=2em, 
  aboveskip=1em
}

這樣,在“插入 - Tex代碼”,就可以使用如下的代碼進行插入代碼

\begin{lstlisting}[language={C}]
#include <stdio.h>
int main(void)
{
    printf("Hello LyX!");
    return 0;
}
\end{lstlisting}

效果:

是不是還不錯呢~不過不得不提一個問題就是listings包中支持的語言可能不是很全。比如不支持JavaScripthtml5等。

支持的語言列表可以參看listings說明.pdf(16頁)想更多的了解listings也可以去查看此文檔

 

LyX不支持Javascript的解決辦法:

修改安裝目錄下的語言支持文件。路徑是/usr/local/texlive/2014/texmf-dist/tex/latex/listings/。我們在lstlang1.sty中添加如下設置信息即可(放在兩門語言定義中間)

\lst@definelanguage{JavaScript}%
  {morekeywords={typeof,new,true,false,catch,function,return,null,catch,switch,var,if,in,while,do,else,case,break},%
  morecomment=[l]//,%
  morecomment=[s]{/*}{*/},%
  morestring=[b]",%
  morestring=[b]',%
  }[keywords,comments,strings]%

OK,在語言選項的地方使用“JavaScript”即可實現代碼高亮。

還有一種靈活的方法,是直接在導言區添加代碼。如添加HTML5支持:

\lstdefinelanguage{HTML5}[]{HTML}{
    sensitive=false,
    morekeywords={canvas},
    tag=[s]
}

把定義代碼放入導言區也是可以實現相同的功能。如下:

OK,基本的使用LyX應該是沒有問題了。

 

-------

PS:萬事具備,本打算用LyX完成我的畢業論文,去翻看了群里的說明才發現學校給了畢設模板.....萬惡的學校&&M¥Office !

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM