Obeylines and gappto from etoolbox Unicorn Meta Zoo #1: Why another podcast? ...
Jaya, Venerated Firemage + Chandra's Pyrohelix = 4 damage among two targets?
Is there any pythonic way to find average of specific tuple elements in array?
Why doesn't the standard consider a template constructor as a copy constructor?
Was Dennis Ritchie being too modest in this quote about C and Pascal?
How exactly does Hawking radiation decrease the mass of black holes?
Obeylines and gappto from etoolbox
How long after the last departure shall the airport stay open for an emergency return?
Is Diceware more secure than a long passphrase?
Does Mathematica have an implementation of the Poisson binomial distribution?
A Paper Record is What I Hamper
English or Hindi translation of Vyasa Smriti
How to keep bees out of canned beverages?
First instead of 1 when referencing
Unable to completely uninstall Zoom meeting app
Is there really no use for MD5 anymore?
Sharepoint Designer Discontinuation - software to modify existing workflows
Are there moral objections to a life motivated purely by money? How to sway a person from this lifestyle?
Retract an already submitted recommendation letter (written for an undergrad student)
Suing a Police Officer Instead of the Police Department
Unknown code in script
How do I reattach a shelf to the wall when it ripped out of the wall?
Air bladders in bat-like skin wings for better lift?
Has a Nobel Peace laureate ever been accused of war crimes?
What to do with someone that cheated their way through university and a PhD program?
Obeylines and gappto from etoolbox
Unicorn Meta Zoo #1: Why another podcast?
Announcing the arrival of Valued Associate #679: Cesar ManaraHow can I undo an etoolbox patch?etoolbox: trouble with boolean expressionsmultiple lists in etoolboxPhantom and etoolbox iftoggleDifference between newbool and newtoggle from etoolbox packageRemove indentation from abstract environment with etoolboxetoolbox conflict with bm packagehelp with using etoolbox with docsvlist and listaddrenewcommand or patchcmd (from etoolbox)?question of ifstrequal in etoolbox
In order to simplify data entry with as little markup of the data as possible, I am attempting the following:
documentclass{article}
usepackage{etoolbox}
begingroup
obeylines
gdefing#1 #2 #3{gappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2
if.#1
&\
else
#1&\
fi
else
if.#1
\
else
#1\
fi
fi
}%
}
endgroup
%%%%%% This, without the if's works, though it does not do what I need:
begingroup
obeylines
gdefiing#1 #2 #3{gappto{tabbody}{% Collect rows of tabular[x] in tabbody
#1\
}%
}
endgroup
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
I'm getting an unexpected error:
ERROR: Incomplete if; all text was ignored after line 39.
--- TeX said ---
<inserted text>
fi
l.39 ^^I^^Itabbody
I have looked at past queries, but have not thus far found an answer. If I remove all of the if
statements from the definition of ing
(=iing
) the problem goes a way. Quite sure I'm missing something really basic -- something to do with the timing of the expansion of the if
s, but I'm stuck for the moment.
etoolbox
add a comment |
In order to simplify data entry with as little markup of the data as possible, I am attempting the following:
documentclass{article}
usepackage{etoolbox}
begingroup
obeylines
gdefing#1 #2 #3{gappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2
if.#1
&\
else
#1&\
fi
else
if.#1
\
else
#1\
fi
fi
}%
}
endgroup
%%%%%% This, without the if's works, though it does not do what I need:
begingroup
obeylines
gdefiing#1 #2 #3{gappto{tabbody}{% Collect rows of tabular[x] in tabbody
#1\
}%
}
endgroup
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
I'm getting an unexpected error:
ERROR: Incomplete if; all text was ignored after line 39.
--- TeX said ---
<inserted text>
fi
l.39 ^^I^^Itabbody
I have looked at past queries, but have not thus far found an answer. If I remove all of the if
statements from the definition of ing
(=iing
) the problem goes a way. Quite sure I'm missing something really basic -- something to do with the timing of the expansion of the if
s, but I'm stuck for the moment.
etoolbox
1
Why do you needobeylines
so many places? Droppingobeylines
before the definition ofing
allows the file to compile and produces reasonable output.
– Andrew Swann
2 hours ago
Good point! Confirmed.
– sgmoye
1 hour ago
add a comment |
In order to simplify data entry with as little markup of the data as possible, I am attempting the following:
documentclass{article}
usepackage{etoolbox}
begingroup
obeylines
gdefing#1 #2 #3{gappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2
if.#1
&\
else
#1&\
fi
else
if.#1
\
else
#1\
fi
fi
}%
}
endgroup
%%%%%% This, without the if's works, though it does not do what I need:
begingroup
obeylines
gdefiing#1 #2 #3{gappto{tabbody}{% Collect rows of tabular[x] in tabbody
#1\
}%
}
endgroup
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
I'm getting an unexpected error:
ERROR: Incomplete if; all text was ignored after line 39.
--- TeX said ---
<inserted text>
fi
l.39 ^^I^^Itabbody
I have looked at past queries, but have not thus far found an answer. If I remove all of the if
statements from the definition of ing
(=iing
) the problem goes a way. Quite sure I'm missing something really basic -- something to do with the timing of the expansion of the if
s, but I'm stuck for the moment.
etoolbox
In order to simplify data entry with as little markup of the data as possible, I am attempting the following:
documentclass{article}
usepackage{etoolbox}
begingroup
obeylines
gdefing#1 #2 #3{gappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2
if.#1
&\
else
#1&\
fi
else
if.#1
\
else
#1\
fi
fi
}%
}
endgroup
%%%%%% This, without the if's works, though it does not do what I need:
begingroup
obeylines
gdefiing#1 #2 #3{gappto{tabbody}{% Collect rows of tabular[x] in tabbody
#1\
}%
}
endgroup
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
I'm getting an unexpected error:
ERROR: Incomplete if; all text was ignored after line 39.
--- TeX said ---
<inserted text>
fi
l.39 ^^I^^Itabbody
I have looked at past queries, but have not thus far found an answer. If I remove all of the if
statements from the definition of ing
(=iing
) the problem goes a way. Quite sure I'm missing something really basic -- something to do with the timing of the expansion of the if
s, but I'm stuck for the moment.
etoolbox
etoolbox
asked 2 hours ago
sgmoyesgmoye
4,11511328
4,11511328
1
Why do you needobeylines
so many places? Droppingobeylines
before the definition ofing
allows the file to compile and produces reasonable output.
– Andrew Swann
2 hours ago
Good point! Confirmed.
– sgmoye
1 hour ago
add a comment |
1
Why do you needobeylines
so many places? Droppingobeylines
before the definition ofing
allows the file to compile and produces reasonable output.
– Andrew Swann
2 hours ago
Good point! Confirmed.
– sgmoye
1 hour ago
1
1
Why do you need
obeylines
so many places? Dropping obeylines
before the definition of ing
allows the file to compile and produces reasonable output.– Andrew Swann
2 hours ago
Why do you need
obeylines
so many places? Dropping obeylines
before the definition of ing
allows the file to compile and produces reasonable output.– Andrew Swann
2 hours ago
Good point! Confirmed.
– sgmoye
1 hour ago
Good point! Confirmed.
– sgmoye
1 hour ago
add a comment |
1 Answer
1
active
oldest
votes
You don't want to define ing
under the scope of obeylines
, but just use the active ^^M
as delimiter (reinserting it at the end so a par
will be issued.
You also want to expand the conditionals before appending the result to tabbody
.
documentclass{article}
usepackage{etoolbox}
begingrouplccode`~=`^^Mlowercase{endgroupdefing#1 #2 #3~{%
xappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2%
if.#1%
unexpanded{&\}%
else
unexpanded{#1&\}%
fi
else
if.#1%
unexpanded{\}%
else
unexpanded{#1\}%
fi
fi
}~% we want a `par`
}}
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
%showtabbody % for debugging
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
However, an input such asa 1 u\
would be much easier to manage and less fragile.
– egreg
1 hour ago
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%2f487572%2fobeylines-and-gappto-from-etoolbox%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You don't want to define ing
under the scope of obeylines
, but just use the active ^^M
as delimiter (reinserting it at the end so a par
will be issued.
You also want to expand the conditionals before appending the result to tabbody
.
documentclass{article}
usepackage{etoolbox}
begingrouplccode`~=`^^Mlowercase{endgroupdefing#1 #2 #3~{%
xappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2%
if.#1%
unexpanded{&\}%
else
unexpanded{#1&\}%
fi
else
if.#1%
unexpanded{\}%
else
unexpanded{#1\}%
fi
fi
}~% we want a `par`
}}
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
%showtabbody % for debugging
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
However, an input such asa 1 u\
would be much easier to manage and less fragile.
– egreg
1 hour ago
add a comment |
You don't want to define ing
under the scope of obeylines
, but just use the active ^^M
as delimiter (reinserting it at the end so a par
will be issued.
You also want to expand the conditionals before appending the result to tabbody
.
documentclass{article}
usepackage{etoolbox}
begingrouplccode`~=`^^Mlowercase{endgroupdefing#1 #2 #3~{%
xappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2%
if.#1%
unexpanded{&\}%
else
unexpanded{#1&\}%
fi
else
if.#1%
unexpanded{\}%
else
unexpanded{#1\}%
fi
fi
}~% we want a `par`
}}
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
%showtabbody % for debugging
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
However, an input such asa 1 u\
would be much easier to manage and less fragile.
– egreg
1 hour ago
add a comment |
You don't want to define ing
under the scope of obeylines
, but just use the active ^^M
as delimiter (reinserting it at the end so a par
will be issued.
You also want to expand the conditionals before appending the result to tabbody
.
documentclass{article}
usepackage{etoolbox}
begingrouplccode`~=`^^Mlowercase{endgroupdefing#1 #2 #3~{%
xappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2%
if.#1%
unexpanded{&\}%
else
unexpanded{#1&\}%
fi
else
if.#1%
unexpanded{\}%
else
unexpanded{#1\}%
fi
fi
}~% we want a `par`
}}
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
%showtabbody % for debugging
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
You don't want to define ing
under the scope of obeylines
, but just use the active ^^M
as delimiter (reinserting it at the end so a par
will be issued.
You also want to expand the conditionals before appending the result to tabbody
.
documentclass{article}
usepackage{etoolbox}
begingrouplccode`~=`^^Mlowercase{endgroupdefing#1 #2 #3~{%
xappto{tabbody}{% Collect rows of tabular[x] in tabbody
%% Ignore #1 and/or #2 if empty (= . )
if.#2%
if.#1%
unexpanded{&\}%
else
unexpanded{#1&\}%
fi
else
if.#1%
unexpanded{\}%
else
unexpanded{#1\}%
fi
fi
}~% we want a `par`
}}
begin{document}
begingroup
obeylines
everypar={ing} %<<<--- change to iing and there is no error
a 1 u
b 2 v
. 3 w
d 4 x
e 5 y
f 6 z
endgroup
%showtabbody % for debugging
begin{tabular}{ccc}
tabbody
end{tabular}
end{document}
answered 1 hour ago
egregegreg
737k8919353263
737k8919353263
However, an input such asa 1 u\
would be much easier to manage and less fragile.
– egreg
1 hour ago
add a comment |
However, an input such asa 1 u\
would be much easier to manage and less fragile.
– egreg
1 hour ago
However, an input such as
a 1 u\
would be much easier to manage and less fragile.– egreg
1 hour ago
However, an input such as
a 1 u\
would be much easier to manage and less fragile.– egreg
1 hour ago
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%2f487572%2fobeylines-and-gappto-from-etoolbox%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
1
Why do you need
obeylines
so many places? Droppingobeylines
before the definition ofing
allows the file to compile and produces reasonable output.– Andrew Swann
2 hours ago
Good point! Confirmed.
– sgmoye
1 hour ago