“Lyx的中文问题”的版本间的差异

来自软件实验室
跳转至: 导航搜索
 
(未显示1个用户的7个中间版本)
第1行: 第1行:
 
根据经验,在debian系统上使用lyx,可以从安装源texlive,但是最好自己从源代码编译lyx比较靠谱,否则有可能碰到无法生成中文pdf的问题。
 
根据经验,在debian系统上使用lyx,可以从安装源texlive,但是最好自己从源代码编译lyx比较靠谱,否则有可能碰到无法生成中文pdf的问题。
 +
(需要注意的是,ubuntu下14.04版本对应texlive2014,13.04对应texlive2013,团队协作的时候需要统一版本)
  
 
编译lyx后,以下的步骤是必须的:
 
编译lyx后,以下的步骤是必须的:
+
* [[linux安装windows字体]]。adobe发布了一套开源的source code pro等宽字体,特别适合源代码的展现,可以从 https://github.com/adobe-fonts/source-code-pro 下载安装。
 
* 在.lyx/lyxrc.defaults文件的最后添加以下两行内容:
 
* 在.lyx/lyxrc.defaults文件的最后添加以下两行内容:
 
  <nowiki>
 
  <nowiki>
第10行: 第11行:
  
 
* 在文档的首选项中注意以下几点的设置:
 
* 在文档的首选项中注意以下几点的设置:
** 语言要选择英文
+
** 语言要选择简体中文
 
** 语言的编码选择Unicode(XeTex)(utf8)
 
** 语言的编码选择Unicode(XeTex)(utf8)
 
** Output中的默认输出格式选择 PDF(xetexpdf)
 
** Output中的默认输出格式选择 PDF(xetexpdf)
  
* 在Latex序中填写以下内容:
+
* 在Latex序中填写以下内容(如果使用ctex则可以省略此步骤):
 
  <nowiki>
 
  <nowiki>
 
%%%%%%%%%%%%%%%%%%
 
%%%%%%%%%%%%%%%%%%
第30行: 第31行:
  
 
*  浮动项默认为“此处优先”放置
 
*  浮动项默认为“此处优先”放置
* 文档类默认为“book”
+
* 文档类默认为“book”,或者选择ctex更适合中文的处理
 
* 页面布局中选择页眉为“fancy”
 
* 页面布局中选择页眉为“fancy”
 
* Numbering & TOC中,加入目录中的元素降一个级别
 
* Numbering & TOC中,加入目录中的元素降一个级别
 +
 +
== ctex的特别修改 ==
 +
默认的设置如果使用ctex可能遇到如下的报错:
 +
<nowiki>
 +
kpathsea:make_tex: Invalid fontname `[SIMKAI.TTF]/OT', contains '['
 +
kpathsea:make_tex: Invalid fontname `[SIMKAI.TTF]/B/OT', contains '['
 +
kpathsea:make_tex: Invalid fontname `[SIMKAI.TTF]/OT', contains '['
 +
kpathsea:make_tex: Invalid fontname `[SIMKAI.TTF]/OT', contains '['
 +
Systemcall.cpp (292): Systemcall: 'xelatex  "____________1.tex"' finished with exit code 1
 +
 +
</nowiki>
 +
 +
这是字体引用错误造成的。fc-list :lang=zh-cn发现:
 +
 +
<nowiki>
 +
/usr/share/fonts/truetype/win/simkai.ttf: 楷体,KaiTi:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
 +
 +
</nowiki>
 +
 +
应该引用[simkai.ttf]或者KaiTi。修改texlive的fontset修改字体定义:
 +
<nowiki>
 +
vi /usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
 +
</nowiki>
 +
将原本的[SIMKAI.TTF]处均改为KaiTi就行了 再次编译tex文件,顺利通过。其他系统字体出错解决类同。
 +
 +
下面是修改后的ctex-xecjk-winfonts.def,以便对照检查:
 +
 +
<nowiki>
 +
% ctex-xecjk-winfonts.def: Windows 的 xeCJK 字体设置,默认为六种中易字体
 +
% vim:ft=tex
 +
\setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]  {SimSun}
 +
\setCJKsansfont{SimHei}
 +
\setCJKmonofont{FangSong}
 +
\setCJKfamilyfont{zhsong}{SimSun}
 +
\setCJKfamilyfont{zhhei}{SimHei}
 +
\setCJKfamilyfont{zhkai}{KaiTi}
 +
\setCJKfamilyfont{zhfs}{FangSong}
 +
\setCJKfamilyfont{zhli}{LiSu}
 +
\setCJKfamilyfont{zhyou}{YouYuan}
 +
\newcommand*{\songti}{\CJKfamily{zhsong}} % 宋体
 +
\newcommand*{\heiti}{\CJKfamily{zhhei}}  % 黑体
 +
\newcommand*{\kaishu}{\CJKfamily{zhkai}}  % 楷书
 +
\newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋
 +
\newcommand*{\lishu}{\CJKfamily{zhli}}    % 隶书
 +
\newcommand*{\youyuan}{\CJKfamily{zhyou}} % 幼圆
 +
\endinput
 +
 +
</nowiki>

2015年10月23日 (五) 18:58的最新版本

根据经验,在debian系统上使用lyx,可以从安装源texlive,但是最好自己从源代码编译lyx比较靠谱,否则有可能碰到无法生成中文pdf的问题。 (需要注意的是,ubuntu下14.04版本对应texlive2014,13.04对应texlive2013,团队协作的时候需要统一版本)

编译lyx后,以下的步骤是必须的:

\format "pdf4" "pdf" "PDF (xelatex)"  ""   ""   ""   "document,vector"
\converter "pdflatex" "pdf4" "xelatex $$i" "latex"

  • 在文档的首选项中注意以下几点的设置:
    • 语言要选择简体中文
    • 语言的编码选择Unicode(XeTex)(utf8)
    • Output中的默认输出格式选择 PDF(xetexpdf)
  • 在Latex序中填写以下内容(如果使用ctex则可以省略此步骤):
%%%%%%%%%%%%%%%%%%
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{文泉驿正黑} %这里是字体名
%中文断行
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
%%%%%%%%%%%%%%%%%%%%%%%

这样就可以在"视图”菜单中使用view PDF(xetexpdf)查看pdf输出,或者通过“文件”的导出菜单导出PDF(xetexpdf)。


通常,我还会作如下的设置:

  • 浮动项默认为“此处优先”放置
  • 文档类默认为“book”,或者选择ctex更适合中文的处理
  • 页面布局中选择页眉为“fancy”
  • Numbering & TOC中,加入目录中的元素降一个级别

ctex的特别修改

默认的设置如果使用ctex可能遇到如下的报错:

kpathsea:make_tex: Invalid fontname `[SIMKAI.TTF]/OT', contains '['
kpathsea:make_tex: Invalid fontname `[SIMKAI.TTF]/B/OT', contains '['
kpathsea:make_tex: Invalid fontname `[SIMKAI.TTF]/OT', contains '['
kpathsea:make_tex: Invalid fontname `[SIMKAI.TTF]/OT', contains '['
Systemcall.cpp (292): Systemcall: 'xelatex  "____________1.tex"' finished with exit code 1


这是字体引用错误造成的。fc-list :lang=zh-cn发现:

/usr/share/fonts/truetype/win/simkai.ttf: 楷体,KaiTi:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta


应该引用[simkai.ttf]或者KaiTi。修改texlive的fontset修改字体定义:

 vi /usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def 

将原本的[SIMKAI.TTF]处均改为KaiTi就行了 再次编译tex文件,顺利通过。其他系统字体出错解决类同。

下面是修改后的ctex-xecjk-winfonts.def,以便对照检查:

% ctex-xecjk-winfonts.def: Windows 的 xeCJK 字体设置,默认为六种中易字体
% vim:ft=tex
\setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]  {SimSun}
\setCJKsansfont{SimHei}
\setCJKmonofont{FangSong}
\setCJKfamilyfont{zhsong}{SimSun}
\setCJKfamilyfont{zhhei}{SimHei}
\setCJKfamilyfont{zhkai}{KaiTi}
\setCJKfamilyfont{zhfs}{FangSong}
\setCJKfamilyfont{zhli}{LiSu}
\setCJKfamilyfont{zhyou}{YouYuan}
\newcommand*{\songti}{\CJKfamily{zhsong}} % 宋体
\newcommand*{\heiti}{\CJKfamily{zhhei}}   % 黑体
\newcommand*{\kaishu}{\CJKfamily{zhkai}}  % 楷书
\newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋
\newcommand*{\lishu}{\CJKfamily{zhli}}    % 隶书
\newcommand*{\youyuan}{\CJKfamily{zhyou}} % 幼圆
\endinput