6

How do \MakeOuterQuote{"} \MakeInnerQuote{´} work exactly?

and How could I change the quotation mark's {"},{´}?

For example if I changed \MakeInnerQuote{´} for any other quotation, I'll get an error.

\documentclass[a4paper,12pt]{book}

\usepackage{csquotes}
\MakeOuterQuote{"}
\MakeInnerQuote{´}
\begin{document}
 "single quotes, said the ´latex user´ to his friend"

\enquote{single quotes, said the \enquote{latex user} to his friend}
\end{document}
4

For most commands in LaTeX there are two error messages, a short version and a long version. When you run LaTeX in a terminal or command line in 'error stop mode' (which is default) then you get the following message when trying to set for example \MakeInnerQuote{9} (i.e., set the character 9 to be the inner quote character):

! Package csquotes Error: Invalid argument.

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

Now, if you type H, you get more information, as follows:

Only single characters with category code 12 or 13 may be
allocated as active quotes. Numbers, punctuation marks, and
characters which are part of LaTeX's syntax or reserved
for a specific purpose are invalid.

This tells you what the problem is: the character 9 is not allowed by the csquotes package to be used as quote character. Only characters with category code 12 or 13 may be used, and from those you cannot use numbers, punctuation marks, and some special characters.

For more information about category codes see for example What are category codes?. The basic principle is that characters are divided into groups that each have a particular function in LaTeX. The number 9 from the example has category code 12, which would be allowed, but it is a number, which excludes it as a quote character as mentioned by the extended error message.

The full list of characters with category code 12 or 13 that are excluded can be found in the source code of the csquotes package:

[]*@~-`'.,;:!?0123456789

In addition characters from other categories can also not be used:

\{}$&#^_%[space][all letters]

So there is not much left. Besides the two characters you already used in your code also for example the mathematical characters =+/() are available:

\documentclass[a4paper,12pt]{book}

\usepackage{csquotes}
\MakeOuterQuote{=}
\MakeInnerQuote{(}
\begin{document}
=single quotes, said the (latex user( to his friend=

\enquote{single quotes, said the \enquote{latex user} to his friend}
\end{document}

enter image description here

Note that I don't know how to access the extended error message when you use an editor like TeXstudio, but that is probably also possible.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.