The behaviour you describe comes from the standard LaTeX \newtheorem
command; the problem can be solved by using the amsthm
or ntheorem
packages:
\documentclass{article}
\usepackage{amsthm}
\usepackage{cleveref}
\newtheorem{thm}{Theorem}[section]
\newtheorem{lemma}[thm]{Lemma}
\newtheorem{cor}[thm]{Corollary}
\begin{document}
\begin{thm}\label{thm:test}
test
\end{thm}
\begin{lemma}\label{lem:test}
test
\end{lemma}
As shown in \cref{thm:test} and \cref{lem:test}
\end{document}
The \newtheorem
commands have to come after the loading of cleveref
.
Additionally, the cleverref
package has to be loaded after ntheorem
or amsthm
.
In total this gives the following order:
\usepackage{ntheorem}
\usepackage{cleveref}
\newtheorem{...}
By the way, the plural forms of theorem and lemma don't use an apostrophe, so you should use
\crefname{thm}{theorem}{theorems}
\crefname{lemma}{lemma}{lemmas}
Add to the document preamble (Document --> Settings --> LaTeX preamble)
\newref{claim}{name=claim~}
and it will probably work. As mentioned by egreg in the comments, the refstyle
package is used, and you have to tell it what it should insert for labels starting with claim:
.
refstyle
also provides commands for start-of-sentence references (capital letter) and plural forms, and the words to insert in these cases can also be specified, e.g.
\newref{claim}{name=claim~,Name=Claim~,names=claims~,Names=Claims~}
I don't know, however, how to make LyX use these, other than through using an ERT, with e.g. \Claimref{claim:1}
. See the refstyle
documentation for details.
Example
Copy the following code to an empty file and save as a .lyx
file, e.g. example.lyx
. Open in LyX and compile. Screenshots of LyX view and PDF below.
#LyX 2.0 created this file. For more info see http://www.lyx.org/
\lyxformat 413
\begin_document
\begin_header
\textclass article
\begin_preamble
\newref{claim}{name=claim~}
\end_preamble
\use_default_options true
\begin_modules
theorems-bytype
theorems-sec-bytype
\end_modules
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\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 default
\use_geometry false
\use_amsmath 1
\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 indent
\paragraph_indentation default
\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 Section
Something
\end_layout
\begin_layout Claim
\begin_inset CommandInset label
LatexCommand label
name "claim:claim1"
\end_inset
I hereby claim that I don't use LyX.
\end_layout
\begin_layout Theorem
\begin_inset CommandInset label
LatexCommand label
name "thm:1"
\end_inset
LyX makes some things harder.
\end_layout
\begin_layout Standard
Inserting references:
\begin_inset CommandInset ref
LatexCommand formatted
reference "thm:1"
\end_inset
and
\begin_inset CommandInset ref
LatexCommand formatted
reference "claim:claim1"
\end_inset
.
\end_layout
\end_body
\end_document
Best Answer
A possibility is to use
cleveref
and its\cref
or\Cref
commands to include the type of the referenced counter, e.g. an equation or a theorem. The\Cref
is used for uppercase purposes, e.g. at the beginning of a sentence.Please note, that
\usepackage[english]{cleveref}
etc. is perhaps more useful, depending on the needed language.cleveref
's output format for references can be reconfigured using\crefformat
etc.cleveref
should be the last package be loaded here!