6

Is there a way to disable LyX's automatic insertion of \selectlanguage and \inputencoding? I like being able to switch languages by hand once in a while, but 99% of the times LyX inserts those commands automatically, it breaks my ERT hacking only since it thinks my opening { is English, while my closing } should be British, or something equally uninteresting. Today I had some cryptic error because LyX was switching between \inputencoding{latin1} and \inputencoding{latin9} (I prefer UTF8) and threw in a few braces in less than fortunate places...

I know I can solve issues caused by \selectlanguage by resetting language in the "text style" window. Is there a similar quick fix for \inputencoding I could use until I can disable its automatic insertion?

To be complete, I use:

Ubuntu 13.04

LyX 2.0.3 (2012-02-19)

Built on Jun 1 2012, 15:14:25

The following example is not exactly what I intended to ask before, but hopefully similar enough. In Lyx everything looks innocent:

#LyX 2.0 created this file. For more info see http://www.lyx.org/
\lyxformat 413
\begin_document
\begin_header
\textclass article
\begin_preamble
\RequirePackage{microtype}
\end_preamble
\use_default_options true
\maintain_unincluded_children false
\language english
\language_package none
\inputencoding default
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100

\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize a4paper
\use_geometry false
\use_amsmath 2
\use_esint 1
\use_mhchem 1
\use_mathdots 1
\cite_engine basic
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\use_refstyle 1
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard
test
\end_layout

\end_body
\end_document

Now, after conversion to tex, with lyx --export pdflatex test.lyx, a suspicious \selectlanguage{english} appears:

%% LyX 2.0.3 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}
\usepackage{amsmath}
\usepackage{amssymb}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\pdfpageheight\paperheight
\pdfpagewidth\paperwidth


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\RequirePackage{microtype}

\makeatother

\begin{document}
\selectlanguage{english}
test

\end{document}

and indeed running pdflatex test.tex fails:

! Package babel Error: You haven't loaded the language english yet.

See the babel package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.23 \selectlanguage{english}

? 

compiling the pdf from Lyx directly gives the same error.

2
  • I found the \inputencoding was inserted where the language was changed to 'LaTeX', so resetting the language fixes that too. Commented Sep 11, 2013 at 19:12
  • This thread describes the same behaviour: [comments.gmane.org/gmane.editors.lyx.general/62290]. I fixed my document before posting this question and I can't recall how I got into the situation, so unfortunately I can't post a minimal example Commented Sep 14, 2013 at 13:31

1 Answer 1

4

Go to

Document Settings > Language

Change Encoding to Other and select Language Default (no inputenc)`

For language package, select None.

[EDIT] After exporting your .lyx file with pdflatex I get the following, which does not have \selectlanguage{english} and which (as a result) compiles fine:

%% LyX 2.0.7dev created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}
\usepackage{amsmath}
\usepackage{amssymb}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\pdfpageheight\paperheight
\pdfpagewidth\paperwidth


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\RequirePackage{microtype}

\makeatother

\begin{document}
test
\end{document}

I tested on the development versions of LyX 2.0.x and LyX 2.1 beta. Thus, the problem must have been a bug in LyX that was fixed. Since you are on Ubuntu, it's very easy to use the latest stable version (and/or development version) without having to give up your current version. They can all be installed with no risk. To do this, see the instructions here: http://wiki.lyx.org/LyX/LyXOnUbuntu#toc3

4
  • 2
    I'm confused; I did what you suggested, but still see \selectlanguage in the LaTeX Source Preview. An exported *.tex file even has \usepackage{babel} in it. My issue about the automatic inclusion of those bits of code though, and I don't really know when that happens. I believe usually when pasting external text from the clip board, but I can't reproduce it reliably. Commented Sep 11, 2013 at 19:31
  • @Roel please see my comment regarding a minimal example. Commented Sep 12, 2013 at 15:16
  • I made one. It took a while since most of the time Lyx works very well :) Commented Sep 14, 2013 at 14:16
  • @Roel thanks for making the MWE. Yes, sometimes it can take time. But once it's done the answer often pops right out, like in this case. Commented Sep 14, 2013 at 17:54

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.