“LaTeX Error: Can be used only in preamble” even though all directives before begin directive











up vote
1
down vote

favorite












In the following simplified version of a markdown doc intended for pandoc/latex generation to `pdf:



documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Schola}
setmathfont{TeX Gyre Schola Math}
begin{document}

## Custom F1 Score For Scoring of Graph Matching

### Overview

The `F1 Score` is intended to compare two sets:

- Truth Set
- Actuals Set

Its calculation is:

$$F_{beta} = (1 + beta^2) cdot frac{mathrm{precision_k} cdot mathrm{recall_k^2}}{(beta^2 cdot mathrm{precision_k}) + mathrm{recall_k}}$$


end{document}


Notice that all of the preamble directives happen before the
begin{document}



The pdf is generated via pandoc:



    $pandoc  -V fontsize=9pt --pdf-engine xelatex -V 
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


The following error is produced:



Error producing PDF.
! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.60 documentclass


What is incorrect here for bringing in a mathsy font?










share|improve this question
























  • In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
    – Werner
    1 hour ago










  • @Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
    – javadba
    1 hour ago















up vote
1
down vote

favorite












In the following simplified version of a markdown doc intended for pandoc/latex generation to `pdf:



documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Schola}
setmathfont{TeX Gyre Schola Math}
begin{document}

## Custom F1 Score For Scoring of Graph Matching

### Overview

The `F1 Score` is intended to compare two sets:

- Truth Set
- Actuals Set

Its calculation is:

$$F_{beta} = (1 + beta^2) cdot frac{mathrm{precision_k} cdot mathrm{recall_k^2}}{(beta^2 cdot mathrm{precision_k}) + mathrm{recall_k}}$$


end{document}


Notice that all of the preamble directives happen before the
begin{document}



The pdf is generated via pandoc:



    $pandoc  -V fontsize=9pt --pdf-engine xelatex -V 
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


The following error is produced:



Error producing PDF.
! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.60 documentclass


What is incorrect here for bringing in a mathsy font?










share|improve this question
























  • In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
    – Werner
    1 hour ago










  • @Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
    – javadba
    1 hour ago













up vote
1
down vote

favorite









up vote
1
down vote

favorite











In the following simplified version of a markdown doc intended for pandoc/latex generation to `pdf:



documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Schola}
setmathfont{TeX Gyre Schola Math}
begin{document}

## Custom F1 Score For Scoring of Graph Matching

### Overview

The `F1 Score` is intended to compare two sets:

- Truth Set
- Actuals Set

Its calculation is:

$$F_{beta} = (1 + beta^2) cdot frac{mathrm{precision_k} cdot mathrm{recall_k^2}}{(beta^2 cdot mathrm{precision_k}) + mathrm{recall_k}}$$


end{document}


Notice that all of the preamble directives happen before the
begin{document}



The pdf is generated via pandoc:



    $pandoc  -V fontsize=9pt --pdf-engine xelatex -V 
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


The following error is produced:



Error producing PDF.
! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.60 documentclass


What is incorrect here for bringing in a mathsy font?










share|improve this question















In the following simplified version of a markdown doc intended for pandoc/latex generation to `pdf:



documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Schola}
setmathfont{TeX Gyre Schola Math}
begin{document}

## Custom F1 Score For Scoring of Graph Matching

### Overview

The `F1 Score` is intended to compare two sets:

- Truth Set
- Actuals Set

Its calculation is:

$$F_{beta} = (1 + beta^2) cdot frac{mathrm{precision_k} cdot mathrm{recall_k^2}}{(beta^2 cdot mathrm{precision_k}) + mathrm{recall_k}}$$


end{document}


Notice that all of the preamble directives happen before the
begin{document}



The pdf is generated via pandoc:



    $pandoc  -V fontsize=9pt --pdf-engine xelatex -V 
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


The following error is produced:



Error producing PDF.
! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.60 documentclass


What is incorrect here for bringing in a mathsy font?







pandoc preamble markdown






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 1 hour ago

























asked 4 hours ago









javadba

1085




1085












  • In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
    – Werner
    1 hour ago










  • @Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
    – javadba
    1 hour ago


















  • In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
    – Werner
    1 hour ago










  • @Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
    – javadba
    1 hour ago
















In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
– Werner
1 hour ago




In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
– Werner
1 hour ago












@Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
– javadba
1 hour ago




@Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
– javadba
1 hour ago










2 Answers
2






active

oldest

votes

















up vote
2
down vote



accepted










The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?






share|improve this answer





















  • ya i forgot to add that yaml header.
    – javadba
    59 mins ago








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    23 mins ago




















up vote
1
down vote













It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?






share|improve this answer





















  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    1 hour ago












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    33 mins ago











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f464444%2flatex-error-can-be-used-only-in-preamble-even-though-all-directives-before-be%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
2
down vote



accepted










The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?






share|improve this answer





















  • ya i forgot to add that yaml header.
    – javadba
    59 mins ago








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    23 mins ago

















up vote
2
down vote



accepted










The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?






share|improve this answer





















  • ya i forgot to add that yaml header.
    – javadba
    59 mins ago








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    23 mins ago















up vote
2
down vote



accepted







up vote
2
down vote



accepted






The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?






share|improve this answer












The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?







share|improve this answer












share|improve this answer



share|improve this answer










answered 1 hour ago









Werner

434k619531639




434k619531639












  • ya i forgot to add that yaml header.
    – javadba
    59 mins ago








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    23 mins ago




















  • ya i forgot to add that yaml header.
    – javadba
    59 mins ago








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    23 mins ago


















ya i forgot to add that yaml header.
– javadba
59 mins ago






ya i forgot to add that yaml header.
– javadba
59 mins ago






1




1




In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
– DG'
23 mins ago






In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
– DG'
23 mins ago












up vote
1
down vote













It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?






share|improve this answer





















  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    1 hour ago












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    33 mins ago















up vote
1
down vote













It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?






share|improve this answer





















  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    1 hour ago












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    33 mins ago













up vote
1
down vote










up vote
1
down vote









It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?






share|improve this answer












It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?







share|improve this answer












share|improve this answer



share|improve this answer










answered 1 hour ago









whatisit

427213




427213












  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    1 hour ago












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    33 mins ago


















  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    1 hour ago












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    33 mins ago
















"escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
– javadba
1 hour ago






"escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
– javadba
1 hour ago














@javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
– whatisit
33 mins ago




@javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
– whatisit
33 mins ago


















draft saved

draft discarded




















































Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f464444%2flatex-error-can-be-used-only-in-preamble-even-though-all-directives-before-be%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

What visual should I use to simply compare current year value vs last year in Power BI desktop

How to ignore python UserWarning in pytest?

Alexandru Averescu