Creating a custom definition environment, with an optional argument and non default punctuation
This seems like it should be the most basic question, but I can't find a comprehensible answer on the site, I'm afraid. I'm trying to define a definition environment that
1) replaces the default period by a colon
2) allows for an optional argument with a parenthetical statement of the term being defined. I've constructed code that does this, but it's really hideously kludgy. Would somebody mind telling me how to do the same thing in an elegant and robust way? Thanks for any suggestions.
Here's my awful code:
documentclass{amsart}
usepackage{amsthm}
usepackage{xpatch}
theoremstyle{myStyle}
newtheoremstyle{myStyle}% name
{3pt}% space above
{3pt}% space below
{italic}% body font
{}% indent amount
{bold}% theorem head font
{:}% punctuation after theorem head
{.5em}% space after theorem head
{}% theorem head spec
%Get rid of the default period after Defn
makeatletter
xpatchcmd{@thm}{thm@headpunct{.}}{thm@headpunct{}}{}{}
makeatother
newtheorem{definition}{Defn}
newenvironment{myDefn}[3]
{
label{defn:#1}
begin{definition}{{bf{(#2):}}}
{#3}
end{definition}}
{}
newtheorem{definitionAlt}{Defn}
newenvironment{myDefnAlt}[2]
{
setcounter{definitionAlt}{thedefinition}
label{defn:#1}
begin{definitionAlt}{{hspace*{-0.1in} bf :}}
{#2}
end{definitionAlt}}
{setcounter{definition}{thedefinitionAlt}}
begin{document}
begin{myDefn}
{myLabel}
{Dog}
{A dog is something that you take for a walk}
end{myDefn}
begin{myDefnAlt}
{myLabelAlt}
{A dog is something that you take for a walk}
end{myDefnAlt}
begin{myDefn}
{myLabel}
{Dog}
{A dog is something that you take for a walk}
end{myDefn}
begin{myDefnAlt}
{myLabelAlt}
{A dog is something that you take for a walk}
end{myDefnAlt}
end{document}
And here's what it produces:
environments optional-arguments
add a comment |
This seems like it should be the most basic question, but I can't find a comprehensible answer on the site, I'm afraid. I'm trying to define a definition environment that
1) replaces the default period by a colon
2) allows for an optional argument with a parenthetical statement of the term being defined. I've constructed code that does this, but it's really hideously kludgy. Would somebody mind telling me how to do the same thing in an elegant and robust way? Thanks for any suggestions.
Here's my awful code:
documentclass{amsart}
usepackage{amsthm}
usepackage{xpatch}
theoremstyle{myStyle}
newtheoremstyle{myStyle}% name
{3pt}% space above
{3pt}% space below
{italic}% body font
{}% indent amount
{bold}% theorem head font
{:}% punctuation after theorem head
{.5em}% space after theorem head
{}% theorem head spec
%Get rid of the default period after Defn
makeatletter
xpatchcmd{@thm}{thm@headpunct{.}}{thm@headpunct{}}{}{}
makeatother
newtheorem{definition}{Defn}
newenvironment{myDefn}[3]
{
label{defn:#1}
begin{definition}{{bf{(#2):}}}
{#3}
end{definition}}
{}
newtheorem{definitionAlt}{Defn}
newenvironment{myDefnAlt}[2]
{
setcounter{definitionAlt}{thedefinition}
label{defn:#1}
begin{definitionAlt}{{hspace*{-0.1in} bf :}}
{#2}
end{definitionAlt}}
{setcounter{definition}{thedefinitionAlt}}
begin{document}
begin{myDefn}
{myLabel}
{Dog}
{A dog is something that you take for a walk}
end{myDefn}
begin{myDefnAlt}
{myLabelAlt}
{A dog is something that you take for a walk}
end{myDefnAlt}
begin{myDefn}
{myLabel}
{Dog}
{A dog is something that you take for a walk}
end{myDefn}
begin{myDefnAlt}
{myLabelAlt}
{A dog is something that you take for a walk}
end{myDefnAlt}
end{document}
And here's what it produces:
environments optional-arguments
add a comment |
This seems like it should be the most basic question, but I can't find a comprehensible answer on the site, I'm afraid. I'm trying to define a definition environment that
1) replaces the default period by a colon
2) allows for an optional argument with a parenthetical statement of the term being defined. I've constructed code that does this, but it's really hideously kludgy. Would somebody mind telling me how to do the same thing in an elegant and robust way? Thanks for any suggestions.
Here's my awful code:
documentclass{amsart}
usepackage{amsthm}
usepackage{xpatch}
theoremstyle{myStyle}
newtheoremstyle{myStyle}% name
{3pt}% space above
{3pt}% space below
{italic}% body font
{}% indent amount
{bold}% theorem head font
{:}% punctuation after theorem head
{.5em}% space after theorem head
{}% theorem head spec
%Get rid of the default period after Defn
makeatletter
xpatchcmd{@thm}{thm@headpunct{.}}{thm@headpunct{}}{}{}
makeatother
newtheorem{definition}{Defn}
newenvironment{myDefn}[3]
{
label{defn:#1}
begin{definition}{{bf{(#2):}}}
{#3}
end{definition}}
{}
newtheorem{definitionAlt}{Defn}
newenvironment{myDefnAlt}[2]
{
setcounter{definitionAlt}{thedefinition}
label{defn:#1}
begin{definitionAlt}{{hspace*{-0.1in} bf :}}
{#2}
end{definitionAlt}}
{setcounter{definition}{thedefinitionAlt}}
begin{document}
begin{myDefn}
{myLabel}
{Dog}
{A dog is something that you take for a walk}
end{myDefn}
begin{myDefnAlt}
{myLabelAlt}
{A dog is something that you take for a walk}
end{myDefnAlt}
begin{myDefn}
{myLabel}
{Dog}
{A dog is something that you take for a walk}
end{myDefn}
begin{myDefnAlt}
{myLabelAlt}
{A dog is something that you take for a walk}
end{myDefnAlt}
end{document}
And here's what it produces:
environments optional-arguments
This seems like it should be the most basic question, but I can't find a comprehensible answer on the site, I'm afraid. I'm trying to define a definition environment that
1) replaces the default period by a colon
2) allows for an optional argument with a parenthetical statement of the term being defined. I've constructed code that does this, but it's really hideously kludgy. Would somebody mind telling me how to do the same thing in an elegant and robust way? Thanks for any suggestions.
Here's my awful code:
documentclass{amsart}
usepackage{amsthm}
usepackage{xpatch}
theoremstyle{myStyle}
newtheoremstyle{myStyle}% name
{3pt}% space above
{3pt}% space below
{italic}% body font
{}% indent amount
{bold}% theorem head font
{:}% punctuation after theorem head
{.5em}% space after theorem head
{}% theorem head spec
%Get rid of the default period after Defn
makeatletter
xpatchcmd{@thm}{thm@headpunct{.}}{thm@headpunct{}}{}{}
makeatother
newtheorem{definition}{Defn}
newenvironment{myDefn}[3]
{
label{defn:#1}
begin{definition}{{bf{(#2):}}}
{#3}
end{definition}}
{}
newtheorem{definitionAlt}{Defn}
newenvironment{myDefnAlt}[2]
{
setcounter{definitionAlt}{thedefinition}
label{defn:#1}
begin{definitionAlt}{{hspace*{-0.1in} bf :}}
{#2}
end{definitionAlt}}
{setcounter{definition}{thedefinitionAlt}}
begin{document}
begin{myDefn}
{myLabel}
{Dog}
{A dog is something that you take for a walk}
end{myDefn}
begin{myDefnAlt}
{myLabelAlt}
{A dog is something that you take for a walk}
end{myDefnAlt}
begin{myDefn}
{myLabel}
{Dog}
{A dog is something that you take for a walk}
end{myDefn}
begin{myDefnAlt}
{myLabelAlt}
{A dog is something that you take for a walk}
end{myDefnAlt}
end{document}
And here's what it produces:
environments optional-arguments
environments optional-arguments
asked 12 mins ago
Leo SimonLeo Simon
880915
880915
add a comment |
add a comment |
0
active
oldest
votes
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%2f474464%2fcreating-a-custom-definition-environment-with-an-optional-argument-and-non-defa%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f474464%2fcreating-a-custom-definition-environment-with-an-optional-argument-and-non-defa%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