小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Beamer幻燈片中l(wèi)istings包的中文注釋亂碼解決方案

 新用戶5228KeDY 2021-10-10

Beamer幻燈片中l(wèi)istings包的中文注釋亂碼解決方案

Beamer目前似乎已經是LaTeX下演示文稿(PPT、幻燈片)的標準,Beamer做演示文稿象寫程序代碼。于是,如果文稿內容本來就含有程序代碼,特別是包含有下劃線、@等特殊符號,一個個去處理顯然是不切實際的,幸好有l(wèi)istings宏包,但是,如果代碼里面有中文,或者注釋里面有中文,要么編譯不過,要么一堆亂碼。

這個問題的解決,網上有不少方案,安全易用的方案是

  1. 改\begin{frame}為begin{frame}[fragile] \frametitle{ }
  2. 使用“逃逸”字,在lstset集合里設置escapeinside=``,選項
  3. 若需要設置代碼字體,則使用\fontspec宏包,同時在lstset集合里加入basicstyle=\fontspec{字體},選項

經過這樣設置之后,不能再用pdfLaTeX編譯了,只能用XeLaTeX編譯,而且,文件名也不再支持中文了,只能用demo.tex等名字來保存文件。

以上在Win10 & TeXlive2019 & TexWorks中測試。

導言區(qū)的設置,寫Arduino代碼:

\lstset{
  language=C++, %代碼語言C++
  basicstyle=\fontspec{Times New Roman},
  breaklines=true, %過長的代碼自動換行
  extendedchars=false, %代碼跨頁顯示章節(jié)標題、頁眉
  escapeinside=``,
  texcl=true,
  }

正文開始frame時,加入fragile參數:

\begin{frame}[fragile]
  \frametitle{用Blink測試ESP32燒錄(一)}
  int LED\_PIN=2指定ESP32板上的引腳2上的LED為輸出。
  但需注意,有些ESP32板上除了電源指示的LED,再沒有其他LED。

\begin{lstlisting}
  int LED_PIN=2
  void setup() {
    pinMode(LED_PIN, OUTPUT);/*指定2號腳為輸出腳*/
  }

  void loop() {/*循環(huán)運行,除非斷電*/
    digitalWrite(LED_PIN, HIGH);/*給高電平*/
    delay(1000);/*暫停1秒*/
    digitalWrite(LED_PIN, LOW);/*給低電平*/
    delay(1000);/*暫停1秒*/
  }
\end{lstlisting}
\end{frame}

lstistings宏包似乎不支持C語言//這樣的行注釋。效果:

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多