如何在 LyX 下的源窗格中编辑 LaTeX 前言?

如何在 LyX 下的源窗格中编辑 LaTeX 前言?

我想在 LyX 序言中添加几行,但不知道该怎么做。如果有人能帮忙,我将不胜感激。

看看我的序言:

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{float}
\usepackage{amsmath}
\usepackage{setspace}
\doublespacing

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
\numberwithin{equation}{section}
\numberwithin{figure}{section}

\@ifundefined{date}{}{\date{}}
\makeatother

\usepackage{babel}
\begin{document}

现在我想在最后两行之间添加一些行;

\usepackage{babel}
**I want to put some lines here**
\begin{document}

请帮忙;我该怎么做?

附言:当我转到“文档”>“设置...”>“LaTeX 序言”时,它会将那些\usepackage{babel}我不想要的必填行放在前面。

答案1

另一种方式是告诉 LyX 不要加载babel,而是“手动”加载:

  1. 文档-->设置-->语言:语言包选择没有任何

    在此处输入图片描述

  2. 在 LaTeX 序言中,同样在文档设置中,添加例如

    \usepackage[british]{babel}
    

    接下来是您需要的一切。

答案2

LyX 在允许您执行的操作和位置方面有些限制。但是,如果您想要在 之前执行某些操作\begin{document},则可能将此类内容作为文档挂钩的一部分包含就足够了

\AtBeginDocument{<your stuff here>}

虽然这将存在多于您的实例,它将在宏(或)\usepackage{babel}中作为启动的一部分在实例之后执行。请注意,这不允许您通过添加包,因为它们只能在序言中调用,并且\document\begin{document}\usepackage\AtBeginDocument会掉落外部这个范围。

如果你真的想插入包 babel \begin{document},下面的 hack 可以实现这个功能:

\let\oldusepackage\usepackage% Store \usepackage
\renewcommand{\usepackage}[2][]{% Update \usepackage
  \oldusepackage[#1]{#2}% Regular \usepackage
  \ifnum\pdfstrcmp{#2}{babel}=0\relax% If babel is loaded, also do the following:
    \oldusepackage[lmargin=1.5cm,rmargin=1.5cm,showframe]{geometry}
    \oldusepackage{array}
    \newcolumntype{C}[1]{>{\centering\arraybackslash}p{##1}}
  \fi
}

当你查看文档 > LaTeX 日志时,你会看到geometryarray已加载 babel

相关内容