Spacing between groups of two list items
I'm trying to format a homework document, in which I want to write the questions and answers in a list. The question is followed by an answer, after which I want a slightly bigger gap before the next question and answer
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
%space here
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
Currently, I'm adding a space by using an empty list item (item
). The output is shown below. Unfortunately, this creates a much larger space than I want. Is there a cleaner way to do this?
formatting lists
add a comment |
I'm trying to format a homework document, in which I want to write the questions and answers in a list. The question is followed by an answer, after which I want a slightly bigger gap before the next question and answer
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
%space here
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
Currently, I'm adding a space by using an empty list item (item
). The output is shown below. Unfortunately, this creates a much larger space than I want. Is there a cleaner way to do this?
formatting lists
Welcome to TeX.SX! A hackish way would be to insertvspace{<some amount>}
there. For example,vspace{0.25cm}
. This would be quite boring for longer lists though...
– Phelype Oleinik
Sep 10 '18 at 22:48
add a comment |
I'm trying to format a homework document, in which I want to write the questions and answers in a list. The question is followed by an answer, after which I want a slightly bigger gap before the next question and answer
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
%space here
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
Currently, I'm adding a space by using an empty list item (item
). The output is shown below. Unfortunately, this creates a much larger space than I want. Is there a cleaner way to do this?
formatting lists
I'm trying to format a homework document, in which I want to write the questions and answers in a list. The question is followed by an answer, after which I want a slightly bigger gap before the next question and answer
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
%space here
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
Currently, I'm adding a space by using an empty list item (item
). The output is shown below. Unfortunately, this creates a much larger space than I want. Is there a cleaner way to do this?
formatting lists
formatting lists
asked Sep 10 '18 at 22:44
Abhijeet KrishnanAbhijeet Krishnan
262
262
Welcome to TeX.SX! A hackish way would be to insertvspace{<some amount>}
there. For example,vspace{0.25cm}
. This would be quite boring for longer lists though...
– Phelype Oleinik
Sep 10 '18 at 22:48
add a comment |
Welcome to TeX.SX! A hackish way would be to insertvspace{<some amount>}
there. For example,vspace{0.25cm}
. This would be quite boring for longer lists though...
– Phelype Oleinik
Sep 10 '18 at 22:48
Welcome to TeX.SX! A hackish way would be to insert
vspace{<some amount>}
there. For example, vspace{0.25cm}
. This would be quite boring for longer lists though...– Phelype Oleinik
Sep 10 '18 at 22:48
Welcome to TeX.SX! A hackish way would be to insert
vspace{<some amount>}
there. For example, vspace{0.25cm}
. This would be quite boring for longer lists though...– Phelype Oleinik
Sep 10 '18 at 22:48
add a comment |
5 Answers
5
active
oldest
votes
Very basic solution which doesn't require manual spacing:
Define two macros, question
and answer
, which do item[Q.]
and item[A.]
, respectively. The question
macro also inserts a vertical space of 0.25 cm
if it's not in the first question, so the space between the list and the paragraph is right.
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.]}
defanswer{%
item[A.]}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question Question 1
answer Answer 1
question Question 2
answer Answer 2
question Question 2
answer Answer 2
question Question 2
answer Answer 2
end{itemize}
lipsum[1]
end{document}
and, following A. Ellet's suggestion, if you will always label each item with "Question /Answer ", you can use a counter:
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newcounter{QuestionCounter}
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
setcounter{QuestionCounter}{1}% Remove this to have the same numbering across different itemize's
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.] Question theQuestionCounter:space}
defanswer{%
item[A.] Answer theQuestionCounter:space
stepcounter{QuestionCounter}}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question What's your name?
answer Foo
question Where do you live?
answer Bar
question How old are you?
answer -1
end{itemize}
lipsum[1]
end{document}
I would incorporate a counter,paircounter
for each question/answer pair so thatquestion
expands toitem[Q.] Question thepaircounter
andanswer
expands toitem[A.] Answer thepaircounter
.
– A.Ellett
Sep 10 '18 at 23:13
@A.Ellett If the questions and answers will be labelled, then it's a good idea indeed. I added a version with that. Thanks :)
– Phelype Oleinik
Sep 10 '18 at 23:22
add a comment |
You have several options.
- The simplest is: Define your own command, say
questionVSpace
, to use a space between elements within a list. Observe that the definition of vertical space command may depend on the class you use. - There are more elaborate ways to do it. I recommend using a command for doing so. This command should handle the vertical space automatically and should handle layout issues globally, e.g. if you want to change "Q." to "Question". A crude but more useful way is my second variant. This also allows to enumerate the question, see my code below.
These variants are implemented in the following MWE.
documentclass{article}
%you can manually choose a space here if you do not like the predefined ones
%In case you want to use one of the predfined ones, say smallskip, you should still use questionVSpace and replace vspace{9ex} with smallskip
newcommand{questionVSpace}{vspace{9ex}}
newcounter{questionCounter}
newcommand{qAndA}[2]{
%The following code automatically adds the space unless it is the first question.
ifnumvalue{questionCounter}>0
bigskip%you can choose a different space here.
fi
stepcounter{questionCounter}
% You could also change "Q." to "Q. thequestionCounter"
item[Q.] #1
item[A.] #2
}
begin{document}
section{Variant A}
Test
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
smallskip
item[Q.] Question 2
item[A.] Answer 2
medskip
item[Q.] Question 3
item[A.] Answer 3
bigskip
item[Q.] Question 4
item[A.] Answer 4
questionVSpace
item[Q.] Question 5
item[A.] Answer 5
end{itemize}
section{Variant B}
Test
begin{itemize}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
end{itemize}
end{document}
1
I think you forgot something atifthequestionCounter
. This will always evaluate to false. See the extra vertical space between0.2 B
andQ. Text foo
.
– Phelype Oleinik
Sep 10 '18 at 23:14
@PhelypeOleinik Than you very much. I hope it is fixed now.
– CampanIgnis
Sep 10 '18 at 23:24
add a comment |
More simply, you could use a different itemize for each Q & A:
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
end[itemize}
begin{itemize}
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
add a comment |
Here's an approach using a new environment called QA
. I've tried to throw in enough to let you see what's possible beyond just what you asked and to allow you to see where additional tweaks might enhance what you're doing. I've exaggerated the effect of adding vertical space between an answer and a following question: tweak to something more suitable.
documentclass{article}
newcounter{aeQAcounter}
newcounter{aePAIRcounter}
defaeRememberLastPair{1}
newenvironment{QA}[1]
{%% save the definition of `item` so I can access
%% its definition later when I *redefine* it.
letaeitemitem
%% a crude key value'ish approach to remembering
%% previous value for question/answer pair.
defaeTestA{#1}%%
defaeTestB{remember previous}%%
ifxaeTestAaeTestB
%% nothing to do here!!
else
defaeRememberLastPair{1}%%
fi
setcounter{aePAIRcounter}{aeRememberLastPair}%%
begin{list}{%%
sffamily
ifoddtheaeQAcounter Question theaePAIRcounter%%
else
Answer theaePAIRcounter%%
stepcounter{aePAIRcounter}%%
fi
:%%
}
{usecounter{aeQAcounter}}%%
defitem{%%
%% only add space if not the first question
ifnumtheaePAIRcounter=aeRememberLastPair
%% do nothing!!!!
else
%% only add space before question and after
%% an answer (the even `item` in the list)
ifoddtheaeQAcounter
else
vspace{4ex}%%
fi
fi
aeitem}
letquestionitem
letansweritem
}
{xdefaeRememberLastPair{theaePAIRcounter}%%
end{list}}
begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
purus elit, vestibulum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida mauris. Nam arcu
begin{QA}
question What do you say when you part from someone?
question bye
question What is a fruit that shouldn't be mixed with apples?
answer An orange.
end{QA}
Nam dui ligula, fringilla a, euismod sodales, sollicitudin
vel, wisi. Morbi auctor lorem non justo. Nam lacus libero,
pretium at, lobortis vitae, ultricies et.
textbf{sffamily And, we continue with more questions:}
begin{QA}[remember previous]
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
textbf{sffamily And, Here is a new set of questions:}
begin{QA}
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
end{document}
Notice that I use two counters here. One counter is essentially the list's counter for each item. If it's odd, that means I'm asking a question. If it's even, that means I'm answering a question. The second counter is only advanced once the question/answer pair has been established.
Also, notice that question
and answer
are stupid, in the sense that they're really just stand-ins for item
and don't do much else. Everything is handled through item
and tracking counters. I try to let the environment itself handle the tracking of questions and answers. The only difficulty comes when adding space. From within the {list}
environment's arguments, not much can be done.
One thing to note, you cannot insert vspace{...}
from within the first argument to the {list}
environment. It will do nothing there and just be ignored for the most part (or show up where you don't expect it).
add a comment |
The space between items is controlled by itemsep
, so you can fix for each item, with the advantage that your Q & A lists will not influenced by the default itemsep
as it would happen using some additional vertical space as vspace
,bigskip
. I will add some glue too, not a fixed length, that would help to avoid orphan items/lines.
This can be done easily as already proposed making a macro for each item type, and I think that semantically is better that a complex redefine of item
type to hiddenly switch from "Q." to "A.". With the "keep it simple" principle in mind, I do not see the need of conditionals or counters (I will edit the answer if you clarify this point), so the macros could be some like this:
documentclass{article}
newcommandQ[1]{item[bfseries Q.]
itemsep2pt plus 2pt #1}
newcommandA[1]{item[bfseries A.]
itemsep1em plus .2em minus .1em #1}
newenvironment{q-a}{section*{Questions
and answers}begin{itemize}}{end{itemize}}
begin{document}
begin{q-a}
Q Question 1
A Answer 1
Q Question 2
A Answer 2
Q Question 3
A Answer 3
end{q-a}
end{document}
add a comment |
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',
autoActivateHeartbeat: false,
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f450319%2fspacing-between-groups-of-two-list-items%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
Very basic solution which doesn't require manual spacing:
Define two macros, question
and answer
, which do item[Q.]
and item[A.]
, respectively. The question
macro also inserts a vertical space of 0.25 cm
if it's not in the first question, so the space between the list and the paragraph is right.
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.]}
defanswer{%
item[A.]}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question Question 1
answer Answer 1
question Question 2
answer Answer 2
question Question 2
answer Answer 2
question Question 2
answer Answer 2
end{itemize}
lipsum[1]
end{document}
and, following A. Ellet's suggestion, if you will always label each item with "Question /Answer ", you can use a counter:
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newcounter{QuestionCounter}
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
setcounter{QuestionCounter}{1}% Remove this to have the same numbering across different itemize's
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.] Question theQuestionCounter:space}
defanswer{%
item[A.] Answer theQuestionCounter:space
stepcounter{QuestionCounter}}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question What's your name?
answer Foo
question Where do you live?
answer Bar
question How old are you?
answer -1
end{itemize}
lipsum[1]
end{document}
I would incorporate a counter,paircounter
for each question/answer pair so thatquestion
expands toitem[Q.] Question thepaircounter
andanswer
expands toitem[A.] Answer thepaircounter
.
– A.Ellett
Sep 10 '18 at 23:13
@A.Ellett If the questions and answers will be labelled, then it's a good idea indeed. I added a version with that. Thanks :)
– Phelype Oleinik
Sep 10 '18 at 23:22
add a comment |
Very basic solution which doesn't require manual spacing:
Define two macros, question
and answer
, which do item[Q.]
and item[A.]
, respectively. The question
macro also inserts a vertical space of 0.25 cm
if it's not in the first question, so the space between the list and the paragraph is right.
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.]}
defanswer{%
item[A.]}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question Question 1
answer Answer 1
question Question 2
answer Answer 2
question Question 2
answer Answer 2
question Question 2
answer Answer 2
end{itemize}
lipsum[1]
end{document}
and, following A. Ellet's suggestion, if you will always label each item with "Question /Answer ", you can use a counter:
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newcounter{QuestionCounter}
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
setcounter{QuestionCounter}{1}% Remove this to have the same numbering across different itemize's
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.] Question theQuestionCounter:space}
defanswer{%
item[A.] Answer theQuestionCounter:space
stepcounter{QuestionCounter}}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question What's your name?
answer Foo
question Where do you live?
answer Bar
question How old are you?
answer -1
end{itemize}
lipsum[1]
end{document}
I would incorporate a counter,paircounter
for each question/answer pair so thatquestion
expands toitem[Q.] Question thepaircounter
andanswer
expands toitem[A.] Answer thepaircounter
.
– A.Ellett
Sep 10 '18 at 23:13
@A.Ellett If the questions and answers will be labelled, then it's a good idea indeed. I added a version with that. Thanks :)
– Phelype Oleinik
Sep 10 '18 at 23:22
add a comment |
Very basic solution which doesn't require manual spacing:
Define two macros, question
and answer
, which do item[Q.]
and item[A.]
, respectively. The question
macro also inserts a vertical space of 0.25 cm
if it's not in the first question, so the space between the list and the paragraph is right.
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.]}
defanswer{%
item[A.]}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question Question 1
answer Answer 1
question Question 2
answer Answer 2
question Question 2
answer Answer 2
question Question 2
answer Answer 2
end{itemize}
lipsum[1]
end{document}
and, following A. Ellet's suggestion, if you will always label each item with "Question /Answer ", you can use a counter:
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newcounter{QuestionCounter}
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
setcounter{QuestionCounter}{1}% Remove this to have the same numbering across different itemize's
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.] Question theQuestionCounter:space}
defanswer{%
item[A.] Answer theQuestionCounter:space
stepcounter{QuestionCounter}}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question What's your name?
answer Foo
question Where do you live?
answer Bar
question How old are you?
answer -1
end{itemize}
lipsum[1]
end{document}
Very basic solution which doesn't require manual spacing:
Define two macros, question
and answer
, which do item[Q.]
and item[A.]
, respectively. The question
macro also inserts a vertical space of 0.25 cm
if it's not in the first question, so the space between the list and the paragraph is right.
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.]}
defanswer{%
item[A.]}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question Question 1
answer Answer 1
question Question 2
answer Answer 2
question Question 2
answer Answer 2
question Question 2
answer Answer 2
end{itemize}
lipsum[1]
end{document}
and, following A. Ellet's suggestion, if you will always label each item with "Question /Answer ", you can use a counter:
documentclass{article}
usepackage{lipsum}% Just for dummy text
makeatletter
newcounter{QuestionCounter}
newififfirstquestion
firstquestiontrue
defquestion{%
iffirstquestion
setcounter{QuestionCounter}{1}% Remove this to have the same numbering across different itemize's
firstquestionfalse
else
vspace{0.25cm}%
fi
item[Q.] Question theQuestionCounter:space}
defanswer{%
item[A.] Answer theQuestionCounter:space
stepcounter{QuestionCounter}}
makeatother
begin{document}
lipsum[1]
begin{itemize}
question What's your name?
answer Foo
question Where do you live?
answer Bar
question How old are you?
answer -1
end{itemize}
lipsum[1]
end{document}
edited Mar 18 at 19:50
answered Sep 10 '18 at 22:56
Phelype OleinikPhelype Oleinik
24.6k54688
24.6k54688
I would incorporate a counter,paircounter
for each question/answer pair so thatquestion
expands toitem[Q.] Question thepaircounter
andanswer
expands toitem[A.] Answer thepaircounter
.
– A.Ellett
Sep 10 '18 at 23:13
@A.Ellett If the questions and answers will be labelled, then it's a good idea indeed. I added a version with that. Thanks :)
– Phelype Oleinik
Sep 10 '18 at 23:22
add a comment |
I would incorporate a counter,paircounter
for each question/answer pair so thatquestion
expands toitem[Q.] Question thepaircounter
andanswer
expands toitem[A.] Answer thepaircounter
.
– A.Ellett
Sep 10 '18 at 23:13
@A.Ellett If the questions and answers will be labelled, then it's a good idea indeed. I added a version with that. Thanks :)
– Phelype Oleinik
Sep 10 '18 at 23:22
I would incorporate a counter,
paircounter
for each question/answer pair so that question
expands to item[Q.] Question thepaircounter
and answer
expands to item[A.] Answer thepaircounter
.– A.Ellett
Sep 10 '18 at 23:13
I would incorporate a counter,
paircounter
for each question/answer pair so that question
expands to item[Q.] Question thepaircounter
and answer
expands to item[A.] Answer thepaircounter
.– A.Ellett
Sep 10 '18 at 23:13
@A.Ellett If the questions and answers will be labelled, then it's a good idea indeed. I added a version with that. Thanks :)
– Phelype Oleinik
Sep 10 '18 at 23:22
@A.Ellett If the questions and answers will be labelled, then it's a good idea indeed. I added a version with that. Thanks :)
– Phelype Oleinik
Sep 10 '18 at 23:22
add a comment |
You have several options.
- The simplest is: Define your own command, say
questionVSpace
, to use a space between elements within a list. Observe that the definition of vertical space command may depend on the class you use. - There are more elaborate ways to do it. I recommend using a command for doing so. This command should handle the vertical space automatically and should handle layout issues globally, e.g. if you want to change "Q." to "Question". A crude but more useful way is my second variant. This also allows to enumerate the question, see my code below.
These variants are implemented in the following MWE.
documentclass{article}
%you can manually choose a space here if you do not like the predefined ones
%In case you want to use one of the predfined ones, say smallskip, you should still use questionVSpace and replace vspace{9ex} with smallskip
newcommand{questionVSpace}{vspace{9ex}}
newcounter{questionCounter}
newcommand{qAndA}[2]{
%The following code automatically adds the space unless it is the first question.
ifnumvalue{questionCounter}>0
bigskip%you can choose a different space here.
fi
stepcounter{questionCounter}
% You could also change "Q." to "Q. thequestionCounter"
item[Q.] #1
item[A.] #2
}
begin{document}
section{Variant A}
Test
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
smallskip
item[Q.] Question 2
item[A.] Answer 2
medskip
item[Q.] Question 3
item[A.] Answer 3
bigskip
item[Q.] Question 4
item[A.] Answer 4
questionVSpace
item[Q.] Question 5
item[A.] Answer 5
end{itemize}
section{Variant B}
Test
begin{itemize}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
end{itemize}
end{document}
1
I think you forgot something atifthequestionCounter
. This will always evaluate to false. See the extra vertical space between0.2 B
andQ. Text foo
.
– Phelype Oleinik
Sep 10 '18 at 23:14
@PhelypeOleinik Than you very much. I hope it is fixed now.
– CampanIgnis
Sep 10 '18 at 23:24
add a comment |
You have several options.
- The simplest is: Define your own command, say
questionVSpace
, to use a space between elements within a list. Observe that the definition of vertical space command may depend on the class you use. - There are more elaborate ways to do it. I recommend using a command for doing so. This command should handle the vertical space automatically and should handle layout issues globally, e.g. if you want to change "Q." to "Question". A crude but more useful way is my second variant. This also allows to enumerate the question, see my code below.
These variants are implemented in the following MWE.
documentclass{article}
%you can manually choose a space here if you do not like the predefined ones
%In case you want to use one of the predfined ones, say smallskip, you should still use questionVSpace and replace vspace{9ex} with smallskip
newcommand{questionVSpace}{vspace{9ex}}
newcounter{questionCounter}
newcommand{qAndA}[2]{
%The following code automatically adds the space unless it is the first question.
ifnumvalue{questionCounter}>0
bigskip%you can choose a different space here.
fi
stepcounter{questionCounter}
% You could also change "Q." to "Q. thequestionCounter"
item[Q.] #1
item[A.] #2
}
begin{document}
section{Variant A}
Test
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
smallskip
item[Q.] Question 2
item[A.] Answer 2
medskip
item[Q.] Question 3
item[A.] Answer 3
bigskip
item[Q.] Question 4
item[A.] Answer 4
questionVSpace
item[Q.] Question 5
item[A.] Answer 5
end{itemize}
section{Variant B}
Test
begin{itemize}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
end{itemize}
end{document}
1
I think you forgot something atifthequestionCounter
. This will always evaluate to false. See the extra vertical space between0.2 B
andQ. Text foo
.
– Phelype Oleinik
Sep 10 '18 at 23:14
@PhelypeOleinik Than you very much. I hope it is fixed now.
– CampanIgnis
Sep 10 '18 at 23:24
add a comment |
You have several options.
- The simplest is: Define your own command, say
questionVSpace
, to use a space between elements within a list. Observe that the definition of vertical space command may depend on the class you use. - There are more elaborate ways to do it. I recommend using a command for doing so. This command should handle the vertical space automatically and should handle layout issues globally, e.g. if you want to change "Q." to "Question". A crude but more useful way is my second variant. This also allows to enumerate the question, see my code below.
These variants are implemented in the following MWE.
documentclass{article}
%you can manually choose a space here if you do not like the predefined ones
%In case you want to use one of the predfined ones, say smallskip, you should still use questionVSpace and replace vspace{9ex} with smallskip
newcommand{questionVSpace}{vspace{9ex}}
newcounter{questionCounter}
newcommand{qAndA}[2]{
%The following code automatically adds the space unless it is the first question.
ifnumvalue{questionCounter}>0
bigskip%you can choose a different space here.
fi
stepcounter{questionCounter}
% You could also change "Q." to "Q. thequestionCounter"
item[Q.] #1
item[A.] #2
}
begin{document}
section{Variant A}
Test
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
smallskip
item[Q.] Question 2
item[A.] Answer 2
medskip
item[Q.] Question 3
item[A.] Answer 3
bigskip
item[Q.] Question 4
item[A.] Answer 4
questionVSpace
item[Q.] Question 5
item[A.] Answer 5
end{itemize}
section{Variant B}
Test
begin{itemize}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
end{itemize}
end{document}
You have several options.
- The simplest is: Define your own command, say
questionVSpace
, to use a space between elements within a list. Observe that the definition of vertical space command may depend on the class you use. - There are more elaborate ways to do it. I recommend using a command for doing so. This command should handle the vertical space automatically and should handle layout issues globally, e.g. if you want to change "Q." to "Question". A crude but more useful way is my second variant. This also allows to enumerate the question, see my code below.
These variants are implemented in the following MWE.
documentclass{article}
%you can manually choose a space here if you do not like the predefined ones
%In case you want to use one of the predfined ones, say smallskip, you should still use questionVSpace and replace vspace{9ex} with smallskip
newcommand{questionVSpace}{vspace{9ex}}
newcounter{questionCounter}
newcommand{qAndA}[2]{
%The following code automatically adds the space unless it is the first question.
ifnumvalue{questionCounter}>0
bigskip%you can choose a different space here.
fi
stepcounter{questionCounter}
% You could also change "Q." to "Q. thequestionCounter"
item[Q.] #1
item[A.] #2
}
begin{document}
section{Variant A}
Test
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
smallskip
item[Q.] Question 2
item[A.] Answer 2
medskip
item[Q.] Question 3
item[A.] Answer 3
bigskip
item[Q.] Question 4
item[A.] Answer 4
questionVSpace
item[Q.] Question 5
item[A.] Answer 5
end{itemize}
section{Variant B}
Test
begin{itemize}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
qAndA {Text foo}{Text bar}
end{itemize}
end{document}
edited Sep 11 '18 at 10:55
answered Sep 10 '18 at 22:51
CampanIgnisCampanIgnis
3,03921034
3,03921034
1
I think you forgot something atifthequestionCounter
. This will always evaluate to false. See the extra vertical space between0.2 B
andQ. Text foo
.
– Phelype Oleinik
Sep 10 '18 at 23:14
@PhelypeOleinik Than you very much. I hope it is fixed now.
– CampanIgnis
Sep 10 '18 at 23:24
add a comment |
1
I think you forgot something atifthequestionCounter
. This will always evaluate to false. See the extra vertical space between0.2 B
andQ. Text foo
.
– Phelype Oleinik
Sep 10 '18 at 23:14
@PhelypeOleinik Than you very much. I hope it is fixed now.
– CampanIgnis
Sep 10 '18 at 23:24
1
1
I think you forgot something at
ifthequestionCounter
. This will always evaluate to false. See the extra vertical space between 0.2 B
and Q. Text foo
.– Phelype Oleinik
Sep 10 '18 at 23:14
I think you forgot something at
ifthequestionCounter
. This will always evaluate to false. See the extra vertical space between 0.2 B
and Q. Text foo
.– Phelype Oleinik
Sep 10 '18 at 23:14
@PhelypeOleinik Than you very much. I hope it is fixed now.
– CampanIgnis
Sep 10 '18 at 23:24
@PhelypeOleinik Than you very much. I hope it is fixed now.
– CampanIgnis
Sep 10 '18 at 23:24
add a comment |
More simply, you could use a different itemize for each Q & A:
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
end[itemize}
begin{itemize}
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
add a comment |
More simply, you could use a different itemize for each Q & A:
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
end[itemize}
begin{itemize}
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
add a comment |
More simply, you could use a different itemize for each Q & A:
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
end[itemize}
begin{itemize}
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
More simply, you could use a different itemize for each Q & A:
begin{itemize}
item[Q.] Question 1
item[A.] Answer 1
end[itemize}
begin{itemize}
item[Q.] Question 2
item[A.] Answer 2
end{itemize}
answered Sep 11 '18 at 1:41
user94293user94293
2,184616
2,184616
add a comment |
add a comment |
Here's an approach using a new environment called QA
. I've tried to throw in enough to let you see what's possible beyond just what you asked and to allow you to see where additional tweaks might enhance what you're doing. I've exaggerated the effect of adding vertical space between an answer and a following question: tweak to something more suitable.
documentclass{article}
newcounter{aeQAcounter}
newcounter{aePAIRcounter}
defaeRememberLastPair{1}
newenvironment{QA}[1]
{%% save the definition of `item` so I can access
%% its definition later when I *redefine* it.
letaeitemitem
%% a crude key value'ish approach to remembering
%% previous value for question/answer pair.
defaeTestA{#1}%%
defaeTestB{remember previous}%%
ifxaeTestAaeTestB
%% nothing to do here!!
else
defaeRememberLastPair{1}%%
fi
setcounter{aePAIRcounter}{aeRememberLastPair}%%
begin{list}{%%
sffamily
ifoddtheaeQAcounter Question theaePAIRcounter%%
else
Answer theaePAIRcounter%%
stepcounter{aePAIRcounter}%%
fi
:%%
}
{usecounter{aeQAcounter}}%%
defitem{%%
%% only add space if not the first question
ifnumtheaePAIRcounter=aeRememberLastPair
%% do nothing!!!!
else
%% only add space before question and after
%% an answer (the even `item` in the list)
ifoddtheaeQAcounter
else
vspace{4ex}%%
fi
fi
aeitem}
letquestionitem
letansweritem
}
{xdefaeRememberLastPair{theaePAIRcounter}%%
end{list}}
begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
purus elit, vestibulum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida mauris. Nam arcu
begin{QA}
question What do you say when you part from someone?
question bye
question What is a fruit that shouldn't be mixed with apples?
answer An orange.
end{QA}
Nam dui ligula, fringilla a, euismod sodales, sollicitudin
vel, wisi. Morbi auctor lorem non justo. Nam lacus libero,
pretium at, lobortis vitae, ultricies et.
textbf{sffamily And, we continue with more questions:}
begin{QA}[remember previous]
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
textbf{sffamily And, Here is a new set of questions:}
begin{QA}
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
end{document}
Notice that I use two counters here. One counter is essentially the list's counter for each item. If it's odd, that means I'm asking a question. If it's even, that means I'm answering a question. The second counter is only advanced once the question/answer pair has been established.
Also, notice that question
and answer
are stupid, in the sense that they're really just stand-ins for item
and don't do much else. Everything is handled through item
and tracking counters. I try to let the environment itself handle the tracking of questions and answers. The only difficulty comes when adding space. From within the {list}
environment's arguments, not much can be done.
One thing to note, you cannot insert vspace{...}
from within the first argument to the {list}
environment. It will do nothing there and just be ignored for the most part (or show up where you don't expect it).
add a comment |
Here's an approach using a new environment called QA
. I've tried to throw in enough to let you see what's possible beyond just what you asked and to allow you to see where additional tweaks might enhance what you're doing. I've exaggerated the effect of adding vertical space between an answer and a following question: tweak to something more suitable.
documentclass{article}
newcounter{aeQAcounter}
newcounter{aePAIRcounter}
defaeRememberLastPair{1}
newenvironment{QA}[1]
{%% save the definition of `item` so I can access
%% its definition later when I *redefine* it.
letaeitemitem
%% a crude key value'ish approach to remembering
%% previous value for question/answer pair.
defaeTestA{#1}%%
defaeTestB{remember previous}%%
ifxaeTestAaeTestB
%% nothing to do here!!
else
defaeRememberLastPair{1}%%
fi
setcounter{aePAIRcounter}{aeRememberLastPair}%%
begin{list}{%%
sffamily
ifoddtheaeQAcounter Question theaePAIRcounter%%
else
Answer theaePAIRcounter%%
stepcounter{aePAIRcounter}%%
fi
:%%
}
{usecounter{aeQAcounter}}%%
defitem{%%
%% only add space if not the first question
ifnumtheaePAIRcounter=aeRememberLastPair
%% do nothing!!!!
else
%% only add space before question and after
%% an answer (the even `item` in the list)
ifoddtheaeQAcounter
else
vspace{4ex}%%
fi
fi
aeitem}
letquestionitem
letansweritem
}
{xdefaeRememberLastPair{theaePAIRcounter}%%
end{list}}
begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
purus elit, vestibulum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida mauris. Nam arcu
begin{QA}
question What do you say when you part from someone?
question bye
question What is a fruit that shouldn't be mixed with apples?
answer An orange.
end{QA}
Nam dui ligula, fringilla a, euismod sodales, sollicitudin
vel, wisi. Morbi auctor lorem non justo. Nam lacus libero,
pretium at, lobortis vitae, ultricies et.
textbf{sffamily And, we continue with more questions:}
begin{QA}[remember previous]
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
textbf{sffamily And, Here is a new set of questions:}
begin{QA}
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
end{document}
Notice that I use two counters here. One counter is essentially the list's counter for each item. If it's odd, that means I'm asking a question. If it's even, that means I'm answering a question. The second counter is only advanced once the question/answer pair has been established.
Also, notice that question
and answer
are stupid, in the sense that they're really just stand-ins for item
and don't do much else. Everything is handled through item
and tracking counters. I try to let the environment itself handle the tracking of questions and answers. The only difficulty comes when adding space. From within the {list}
environment's arguments, not much can be done.
One thing to note, you cannot insert vspace{...}
from within the first argument to the {list}
environment. It will do nothing there and just be ignored for the most part (or show up where you don't expect it).
add a comment |
Here's an approach using a new environment called QA
. I've tried to throw in enough to let you see what's possible beyond just what you asked and to allow you to see where additional tweaks might enhance what you're doing. I've exaggerated the effect of adding vertical space between an answer and a following question: tweak to something more suitable.
documentclass{article}
newcounter{aeQAcounter}
newcounter{aePAIRcounter}
defaeRememberLastPair{1}
newenvironment{QA}[1]
{%% save the definition of `item` so I can access
%% its definition later when I *redefine* it.
letaeitemitem
%% a crude key value'ish approach to remembering
%% previous value for question/answer pair.
defaeTestA{#1}%%
defaeTestB{remember previous}%%
ifxaeTestAaeTestB
%% nothing to do here!!
else
defaeRememberLastPair{1}%%
fi
setcounter{aePAIRcounter}{aeRememberLastPair}%%
begin{list}{%%
sffamily
ifoddtheaeQAcounter Question theaePAIRcounter%%
else
Answer theaePAIRcounter%%
stepcounter{aePAIRcounter}%%
fi
:%%
}
{usecounter{aeQAcounter}}%%
defitem{%%
%% only add space if not the first question
ifnumtheaePAIRcounter=aeRememberLastPair
%% do nothing!!!!
else
%% only add space before question and after
%% an answer (the even `item` in the list)
ifoddtheaeQAcounter
else
vspace{4ex}%%
fi
fi
aeitem}
letquestionitem
letansweritem
}
{xdefaeRememberLastPair{theaePAIRcounter}%%
end{list}}
begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
purus elit, vestibulum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida mauris. Nam arcu
begin{QA}
question What do you say when you part from someone?
question bye
question What is a fruit that shouldn't be mixed with apples?
answer An orange.
end{QA}
Nam dui ligula, fringilla a, euismod sodales, sollicitudin
vel, wisi. Morbi auctor lorem non justo. Nam lacus libero,
pretium at, lobortis vitae, ultricies et.
textbf{sffamily And, we continue with more questions:}
begin{QA}[remember previous]
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
textbf{sffamily And, Here is a new set of questions:}
begin{QA}
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
end{document}
Notice that I use two counters here. One counter is essentially the list's counter for each item. If it's odd, that means I'm asking a question. If it's even, that means I'm answering a question. The second counter is only advanced once the question/answer pair has been established.
Also, notice that question
and answer
are stupid, in the sense that they're really just stand-ins for item
and don't do much else. Everything is handled through item
and tracking counters. I try to let the environment itself handle the tracking of questions and answers. The only difficulty comes when adding space. From within the {list}
environment's arguments, not much can be done.
One thing to note, you cannot insert vspace{...}
from within the first argument to the {list}
environment. It will do nothing there and just be ignored for the most part (or show up where you don't expect it).
Here's an approach using a new environment called QA
. I've tried to throw in enough to let you see what's possible beyond just what you asked and to allow you to see where additional tweaks might enhance what you're doing. I've exaggerated the effect of adding vertical space between an answer and a following question: tweak to something more suitable.
documentclass{article}
newcounter{aeQAcounter}
newcounter{aePAIRcounter}
defaeRememberLastPair{1}
newenvironment{QA}[1]
{%% save the definition of `item` so I can access
%% its definition later when I *redefine* it.
letaeitemitem
%% a crude key value'ish approach to remembering
%% previous value for question/answer pair.
defaeTestA{#1}%%
defaeTestB{remember previous}%%
ifxaeTestAaeTestB
%% nothing to do here!!
else
defaeRememberLastPair{1}%%
fi
setcounter{aePAIRcounter}{aeRememberLastPair}%%
begin{list}{%%
sffamily
ifoddtheaeQAcounter Question theaePAIRcounter%%
else
Answer theaePAIRcounter%%
stepcounter{aePAIRcounter}%%
fi
:%%
}
{usecounter{aeQAcounter}}%%
defitem{%%
%% only add space if not the first question
ifnumtheaePAIRcounter=aeRememberLastPair
%% do nothing!!!!
else
%% only add space before question and after
%% an answer (the even `item` in the list)
ifoddtheaeQAcounter
else
vspace{4ex}%%
fi
fi
aeitem}
letquestionitem
letansweritem
}
{xdefaeRememberLastPair{theaePAIRcounter}%%
end{list}}
begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
purus elit, vestibulum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida mauris. Nam arcu
begin{QA}
question What do you say when you part from someone?
question bye
question What is a fruit that shouldn't be mixed with apples?
answer An orange.
end{QA}
Nam dui ligula, fringilla a, euismod sodales, sollicitudin
vel, wisi. Morbi auctor lorem non justo. Nam lacus libero,
pretium at, lobortis vitae, ultricies et.
textbf{sffamily And, we continue with more questions:}
begin{QA}[remember previous]
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
textbf{sffamily And, Here is a new set of questions:}
begin{QA}
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
question Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet
answer Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatib
end{QA}
end{document}
Notice that I use two counters here. One counter is essentially the list's counter for each item. If it's odd, that means I'm asking a question. If it's even, that means I'm answering a question. The second counter is only advanced once the question/answer pair has been established.
Also, notice that question
and answer
are stupid, in the sense that they're really just stand-ins for item
and don't do much else. Everything is handled through item
and tracking counters. I try to let the environment itself handle the tracking of questions and answers. The only difficulty comes when adding space. From within the {list}
environment's arguments, not much can be done.
One thing to note, you cannot insert vspace{...}
from within the first argument to the {list}
environment. It will do nothing there and just be ignored for the most part (or show up where you don't expect it).
edited Sep 11 '18 at 2:06
answered Sep 11 '18 at 0:56
A.EllettA.Ellett
36.6k1169177
36.6k1169177
add a comment |
add a comment |
The space between items is controlled by itemsep
, so you can fix for each item, with the advantage that your Q & A lists will not influenced by the default itemsep
as it would happen using some additional vertical space as vspace
,bigskip
. I will add some glue too, not a fixed length, that would help to avoid orphan items/lines.
This can be done easily as already proposed making a macro for each item type, and I think that semantically is better that a complex redefine of item
type to hiddenly switch from "Q." to "A.". With the "keep it simple" principle in mind, I do not see the need of conditionals or counters (I will edit the answer if you clarify this point), so the macros could be some like this:
documentclass{article}
newcommandQ[1]{item[bfseries Q.]
itemsep2pt plus 2pt #1}
newcommandA[1]{item[bfseries A.]
itemsep1em plus .2em minus .1em #1}
newenvironment{q-a}{section*{Questions
and answers}begin{itemize}}{end{itemize}}
begin{document}
begin{q-a}
Q Question 1
A Answer 1
Q Question 2
A Answer 2
Q Question 3
A Answer 3
end{q-a}
end{document}
add a comment |
The space between items is controlled by itemsep
, so you can fix for each item, with the advantage that your Q & A lists will not influenced by the default itemsep
as it would happen using some additional vertical space as vspace
,bigskip
. I will add some glue too, not a fixed length, that would help to avoid orphan items/lines.
This can be done easily as already proposed making a macro for each item type, and I think that semantically is better that a complex redefine of item
type to hiddenly switch from "Q." to "A.". With the "keep it simple" principle in mind, I do not see the need of conditionals or counters (I will edit the answer if you clarify this point), so the macros could be some like this:
documentclass{article}
newcommandQ[1]{item[bfseries Q.]
itemsep2pt plus 2pt #1}
newcommandA[1]{item[bfseries A.]
itemsep1em plus .2em minus .1em #1}
newenvironment{q-a}{section*{Questions
and answers}begin{itemize}}{end{itemize}}
begin{document}
begin{q-a}
Q Question 1
A Answer 1
Q Question 2
A Answer 2
Q Question 3
A Answer 3
end{q-a}
end{document}
add a comment |
The space between items is controlled by itemsep
, so you can fix for each item, with the advantage that your Q & A lists will not influenced by the default itemsep
as it would happen using some additional vertical space as vspace
,bigskip
. I will add some glue too, not a fixed length, that would help to avoid orphan items/lines.
This can be done easily as already proposed making a macro for each item type, and I think that semantically is better that a complex redefine of item
type to hiddenly switch from "Q." to "A.". With the "keep it simple" principle in mind, I do not see the need of conditionals or counters (I will edit the answer if you clarify this point), so the macros could be some like this:
documentclass{article}
newcommandQ[1]{item[bfseries Q.]
itemsep2pt plus 2pt #1}
newcommandA[1]{item[bfseries A.]
itemsep1em plus .2em minus .1em #1}
newenvironment{q-a}{section*{Questions
and answers}begin{itemize}}{end{itemize}}
begin{document}
begin{q-a}
Q Question 1
A Answer 1
Q Question 2
A Answer 2
Q Question 3
A Answer 3
end{q-a}
end{document}
The space between items is controlled by itemsep
, so you can fix for each item, with the advantage that your Q & A lists will not influenced by the default itemsep
as it would happen using some additional vertical space as vspace
,bigskip
. I will add some glue too, not a fixed length, that would help to avoid orphan items/lines.
This can be done easily as already proposed making a macro for each item type, and I think that semantically is better that a complex redefine of item
type to hiddenly switch from "Q." to "A.". With the "keep it simple" principle in mind, I do not see the need of conditionals or counters (I will edit the answer if you clarify this point), so the macros could be some like this:
documentclass{article}
newcommandQ[1]{item[bfseries Q.]
itemsep2pt plus 2pt #1}
newcommandA[1]{item[bfseries A.]
itemsep1em plus .2em minus .1em #1}
newenvironment{q-a}{section*{Questions
and answers}begin{itemize}}{end{itemize}}
begin{document}
begin{q-a}
Q Question 1
A Answer 1
Q Question 2
A Answer 2
Q Question 3
A Answer 3
end{q-a}
end{document}
edited Sep 11 '18 at 8:07
answered Sep 11 '18 at 7:53
FranFran
53.4k6119183
53.4k6119183
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f450319%2fspacing-between-groups-of-two-list-items%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
Welcome to TeX.SX! A hackish way would be to insert
vspace{<some amount>}
there. For example,vspace{0.25cm}
. This would be quite boring for longer lists though...– Phelype Oleinik
Sep 10 '18 at 22:48