TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In LaTeX, % can be used for single-line comments. For multi-line comments, the following command is available in the verbatim package.

Commented code

But is there a simple command like /* code */ in C?

share|improve this question
Related/duplicate: Commenting out large sections – Qrrbrbirlbel Dec 18 '12 at 7:22
Also see: Block comments in TeX – Aditya Dec 18 '12 at 8:03

Following the C code paradigm, where one can use the preprocessor directives

#if 0
junk code

something similar can be done in TeX (and descendants):

I don't want this to happen

The commented parts can be easily activated by replacing \iffalse with \iftrue.

share|improve this answer
See the TeX FAQ on why \iffalse can fail in unexpected ways. – Aditya Dec 18 '12 at 8:04
@Aditya: thanks for the link, I wasn't aware of these problems! – guillem Dec 18 '12 at 8:35

No, but you can define something close:



\/* This is a test
    and this is another

share|improve this answer
Can you make \* multiline comments *\ ? – kiss my armpit Dec 17 '12 at 7:01
@GarbageCollector You can but then it means changing the catcode of the backtick to make it active and would cause a lot of grief in other areas. Ah! did not see your edit ... changing catcode of slash will give you same headaches. – Yiannis Lazarides Dec 17 '12 at 7:03
@YiannisLazarides: Of course, this definition cannot be nested. With LuaTeX it is possible to have multiline comments without any catcode jugglery. See Block comments in TeX for an example. – Aditya Dec 18 '12 at 8:06
It redefines \* and requires a space after the closing delimiter but, \def\*#1*\ {} works I think. – Scott H. Dec 22 '12 at 21:05

Here's a poor man's version of the answer linked by Aditya above. It doesn't require ConTeXt but it does need to be compiled with LuaTeX. With it you can use C style comments: /*comment*/. A potential downside is that it "works" even in a verbatim environment. It works in all situations I can think of.

This input:

enter image description here

Gives this output:

enter image description here




commenting = false
local gsub = string.gsub

local opencomm = "%/%*(.*)"
local closecomm = "(.-)%*%/"

function comment(s)
    if not commenting then
        s = gsub(s,opencomm,
                commenting = true
                s1 =  gsub(s1,closecomm,function(s2) commenting = false return "" end,1)
                  if commenting then return "" else
                      return comment(s1)
        s = gsub(s,"(.+)",
                s3 =  gsub(s,closecomm,function(s4) commenting = false return "" end,1)
                    if commenting then return "%" else
                        return comment(s3)
    return s

luatexbase.add_to_callback('process_input_buffer', comment, 'comment')


1 /*HIDDEN*/ 2





share|improve this answer

I think the most straightforward way to do this is to use a TeX editor. TeXnicCenter for instance offers to comment and uncomment marked blocks by ctrl+q and ctrl+w. This simply adds a '%' at the respective lines. This further grays out commented section, which is not the case with scripted solutions.

share|improve this answer
you can't have inline comments as such for example 2 /* HIDDEN HIDDEN HIDDEN */ 3 – percusse Nov 27 '13 at 21:18
This is true of course. A scripted version also lets hide/show comments by a simple compile flag, which can be great in drafting or reviewing work. – Thomas Ortner Nov 27 '13 at 21:46

Short: put \directlua{-- before the block and a single } after the block when compiling with Lua(La)TeX.

Long: this is a "bug" of LuaTeX turned into a feature, or what make programmers happy. Putting a double hyphen in front of a text in Lua means a single-line comment; however, since TeX strips newlines from Lua code, this appears as a single-line chunk to Lua and so all the chunk gets commented.

Not tested, but I think you could alias that as

\newcommand{\multlinecomment}[1]{\directlua{-- #1}}

and then enclose your comment as in

  My multiline
  with Lorem ipsum.
share|improve this answer

protected by Community Jul 5 '15 at 16:24

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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