How do you make your own symbol when Detexify fails? The Next CEO of Stack OverflowWhich measurement units should one use in LaTeX?newcommand vs. DeclareMathOperatorsubseteq + circ as a single symbol (“open subset”)The mysteries of mathpaletteCreate big fat green arrow like in excelProper use of mathchoiceHow to make this curly 'R' (ℛ)?Symbol for a “twisted product”?A symbol of triangle with “infinite” lengthHow to draw a curly R symbol if can't be found available in packages and available symbolsFinding the package of a Detexify Symbolhow do you write the grad operator?How do you make the in symbol smaller?Detexify couldn't help me find >— and —<, can you?How to make own character map?Detexify-like service where I can paste a symbolHow do you make a big Laplace Transform symbolHow to create your own integral sign with limitsCan't “detexify” this symbol for the exponential functionHow do you make this symbol in math mode?
Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact
How to compactly explain secondary and tertiary characters without resorting to stereotypes?
Gauss' Posthumous Publications?
Is it OK to decorate a log book cover?
Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?
Are British MPs missing the point, with these 'Indicative Votes'?
Why was Sir Cadogan fired?
Arrows in tikz Markov chain diagram overlap
What does this strange code stamp on my passport mean?
"Eavesdropping" vs "Listen in on"
Free fall ellipse or parabola?
Is it "common practice in Fourier transform spectroscopy to multiply the measured interferogram by an apodizing function"? If so, why?
How should I connect my cat5 cable to connectors having an orange-green line?
Creating a script with console commands
What did the word "leisure" mean in late 18th Century usage?
How can I separate the number from the unit in argument?
Why did the Drakh emissary look so blurred in S04:E11 "Lines of Communication"?
Gödel's incompleteness theorems - what are the religious implications?
My ex-girlfriend uses my Apple ID to login to her iPad, do I have to give her my Apple ID password to reset it?
Read/write a pipe-delimited file line by line with some simple text manipulation
Identify and count spells (Distinctive events within each group)
Is it correct to say moon starry nights?
Is it possible to make a 9x9 table fit within the default margins?
Compensation for working overtime on Saturdays
How do you make your own symbol when Detexify fails?
The Next CEO of Stack OverflowWhich measurement units should one use in LaTeX?newcommand vs. DeclareMathOperatorsubseteq + circ as a single symbol (“open subset”)The mysteries of mathpaletteCreate big fat green arrow like in excelProper use of mathchoiceHow to make this curly 'R' (ℛ)?Symbol for a “twisted product”?A symbol of triangle with “infinite” lengthHow to draw a curly R symbol if can't be found available in packages and available symbolsFinding the package of a Detexify Symbolhow do you write the grad operator?How do you make the in symbol smaller?Detexify couldn't help me find >— and —<, can you?How to make own character map?Detexify-like service where I can paste a symbolHow do you make a big Laplace Transform symbolHow to create your own integral sign with limitsCan't “detexify” this symbol for the exponential functionHow do you make this symbol in math mode?
My first visit to TeX.SX came when I was looking for a symbol for a twisted product:
I knew about Detexify and the Comprehensive LaTeX Symbol List, but I could not find the symbol there. I tried the construction that was obvious to me, namely oversetscriptstyle simtimes
, but the sim
was much too high. I Googled, and found this solution by @Hendrik Vogt. Thus I learned about smash
.
Later I needed the same symbol in a subscript, ultimately learning about mathchoice
and ooalign
. Since then I have found that many questions on TeX.SX needed similar techniques. I though it would be a good idea to have a single question whose answers gave visitors with modest LaTeX skills general guidelines on constructing new symbols using LaTeX and related systems.
So, how do you make your own symbol when Detexify fails?
math-mode symbols math-operators
add a comment |
My first visit to TeX.SX came when I was looking for a symbol for a twisted product:
I knew about Detexify and the Comprehensive LaTeX Symbol List, but I could not find the symbol there. I tried the construction that was obvious to me, namely oversetscriptstyle simtimes
, but the sim
was much too high. I Googled, and found this solution by @Hendrik Vogt. Thus I learned about smash
.
Later I needed the same symbol in a subscript, ultimately learning about mathchoice
and ooalign
. Since then I have found that many questions on TeX.SX needed similar techniques. I though it would be a good idea to have a single question whose answers gave visitors with modest LaTeX skills general guidelines on constructing new symbols using LaTeX and related systems.
So, how do you make your own symbol when Detexify fails?
math-mode symbols math-operators
As a way to condense the syntax ofmathchoice
, see theThisStyle...SavedStyle...
syntax of thescalerel
package, first introduced here: tex.stackexchange.com/questions/43978/proper-use-of-mathchoice/…
– Steven B. Segletes
Mar 22 at 0:18
add a comment |
My first visit to TeX.SX came when I was looking for a symbol for a twisted product:
I knew about Detexify and the Comprehensive LaTeX Symbol List, but I could not find the symbol there. I tried the construction that was obvious to me, namely oversetscriptstyle simtimes
, but the sim
was much too high. I Googled, and found this solution by @Hendrik Vogt. Thus I learned about smash
.
Later I needed the same symbol in a subscript, ultimately learning about mathchoice
and ooalign
. Since then I have found that many questions on TeX.SX needed similar techniques. I though it would be a good idea to have a single question whose answers gave visitors with modest LaTeX skills general guidelines on constructing new symbols using LaTeX and related systems.
So, how do you make your own symbol when Detexify fails?
math-mode symbols math-operators
My first visit to TeX.SX came when I was looking for a symbol for a twisted product:
I knew about Detexify and the Comprehensive LaTeX Symbol List, but I could not find the symbol there. I tried the construction that was obvious to me, namely oversetscriptstyle simtimes
, but the sim
was much too high. I Googled, and found this solution by @Hendrik Vogt. Thus I learned about smash
.
Later I needed the same symbol in a subscript, ultimately learning about mathchoice
and ooalign
. Since then I have found that many questions on TeX.SX needed similar techniques. I though it would be a good idea to have a single question whose answers gave visitors with modest LaTeX skills general guidelines on constructing new symbols using LaTeX and related systems.
So, how do you make your own symbol when Detexify fails?
math-mode symbols math-operators
math-mode symbols math-operators
edited Mar 21 at 20:44
Sandy G
asked Mar 21 at 20:27
Sandy GSandy G
4,3201635
4,3201635
As a way to condense the syntax ofmathchoice
, see theThisStyle...SavedStyle...
syntax of thescalerel
package, first introduced here: tex.stackexchange.com/questions/43978/proper-use-of-mathchoice/…
– Steven B. Segletes
Mar 22 at 0:18
add a comment |
As a way to condense the syntax ofmathchoice
, see theThisStyle...SavedStyle...
syntax of thescalerel
package, first introduced here: tex.stackexchange.com/questions/43978/proper-use-of-mathchoice/…
– Steven B. Segletes
Mar 22 at 0:18
As a way to condense the syntax of
mathchoice
, see the ThisStyle...SavedStyle...
syntax of the scalerel
package, first introduced here: tex.stackexchange.com/questions/43978/proper-use-of-mathchoice/…– Steven B. Segletes
Mar 22 at 0:18
As a way to condense the syntax of
mathchoice
, see the ThisStyle...SavedStyle...
syntax of the scalerel
package, first introduced here: tex.stackexchange.com/questions/43978/proper-use-of-mathchoice/…– Steven B. Segletes
Mar 22 at 0:18
add a comment |
3 Answers
3
active
oldest
votes
If it's really not in Detexify, check the Comprehensive LaTeX Symbol List to see if your symbol can be found in an existing package. Note, The Comprehensive List is long! Over 300 pages. But it is searchable, well-organized, and has a good table of contents and index.
If that doesn't help, it may be time to design your own symbol. It's probably best to give your new symbol a name so it can be used repeatedly and transported more easily into another document.
If your symbol will be used as an operator with limits (like an integral or summation), you should use the DeclareMathOperator
or DeclareMathOperator*
command. Both of these use the amsmath
package. The unstarred version places sub- and superscript limits to the right of the operator; the starred version places limits above and below the operator when it is in displaystyle
. To illustrate:
DeclareMathOperator*squareopsquare
DeclareMathOperatortriangleopbigtriangleup
[Note that square
uses the amssymb
package.]
Then the code
[
squareop_n=1^infty a_n qquad triangleop_n=1^infty a_n
]
will produce the following output:
More information on DeclareMathOperator
can be found in this answer by @Andrew Swann.
If your symbol is not going to be used in that fashion, you should probably use newcommand
.
If your symbol is a math symbol: Is it a binary operator (such as +
or times
)? A binary relation (such as <
or leq
)? Or an ordinary math symbol (such as !
or infty
)? The spacing is different for each case. Compare the three versions for the symbol times
:
newcommandreltimesmathreltimes
newcommandbintimesmathbintimes
newcommandchrtimestimes
Then noindent $areltimes b newline abintimes b newline achrtimes b$
will produce the output:
Note the extra set of curly braces in chrtimes
. If you remove them you'll get the same output as mathbintimes
, since times
is by default a binary operator. You can enclose most math symbols in to turn them into ordinary math symbols.
Typically, binary relations have slightly more space than binary operators, and significantly more than ordinary symbols. However, the spacing changes when these appear as sub- or superscripts. All three examples above will look like A_atimes b
if placed in a subscript.
Many new symbols can be created by modifying or combining existing symbols. To rotate, scale or reflect existing symbols, use the graphicx
or graphics
package. Documentation is here. The commands are rotatebox
, scalebox
, resizebox
and reflectbox
.
For example, if you want a cong
symbol (≅), but with the tilde reversed, the reflectbox
command from graphicx
can be used. The code
newcommandbackcongmathrelreflectbox$cong$
will produce the desired effect with the code $Abackcong B$
.
If you try using this code in a subscript (for example, $X_Abackcong B$
), the new symbol will not scale down as it should. This is resolved below below using mathchoice
.
To combine multiple symbols (math or text) the ooalign
command can be used. @egreg has a detailed explanation here. The basic idea is that ooalign
creates a one-column table, with all rows superimposed on one another, and no padding outside the column. Each row of the "table" ends with cr
. Entries can be centered in the column using hfil
.
For example, to produce
we superimpose a circ
symbol with a text T
character. The command
newcommandTcircmathbin%
ooalignhfil$circ$hfilcrhfil Thfilcr%
together with $ATcirc B$
produces the output.
To make sure your symbol looks right whether it's displayed, inline, script or scriptscript, you can use mathchoice
. (Note mathpalette
(explained here by @egreg and @Werner) can be used when the four versions are identical except for style.)
mathchoice
<do this if called in displaystyle>
<do this if called in textstyle>
<do this if called in scriptstyle>
<do this if called in scriptscriptstyle>
The above code will produce the corresponding output for each of the four math styles.
To illustrate, here is a solution to the twisted product question that will adjust to scripts and scriptscripts.
newcommandtwprodmathbinmathchoice%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox.85exmbox$scriptscriptstylesim$hfilcrhfil$scriptstyletimes$hfilcr%
ooalignhfilraisebox.65exscalebox.8$scriptscriptstylesim$hfilcrhfil$scriptscriptstyletimes$hfilcr%
S^2twprod S^2 quad F_S^2twprod S^2 quad F_K_S^2twprod S^2
I downsized the sim
in each style so it fit better over the times
.
Similar effects can be obtained using stackengine
. Documentation is here.
If you can't create your symbol by combining or modifying others, you can design your symbol from scratch using tikz
, together with the ideas above. Here is an example by @marmot.
add a comment |
Another possibility with the stackinset
command, from stackengine
:
documentclass[border = 2pt]standalone
usepackagestackengine, graphicx %
newcommandsimtimesstackMathmathbinmathchoice%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.7exscalebox 0.67$scriptstylesim $scriptstyletimes%
stackinsetc0exc0.6exscalebox 0.67$scriptscriptstylesim $scriptscriptstyletimes%
begindocument
$ S^2 simtimes S^2 quad F_S^2 simtimes S^2 quad F_K_S^2 simtimes S^2$
enddocument
add a comment |
I'd like to expand a bit on the "build the symbol from scratch" part. There are some very simple basic principles that help making the symbol scalable:
- Use relative length scales for all dimensions. These are explained very nicely in this answer. The most important feature (for the purposes here) is that they scale with the font size.
- Use relative length scales for the line widths.
- Consider using the
baseline
option.
An example is given in this post:
documentclassarticle
usepackagetikz
newcommandinftrianbegintikzpicture[baseline=-0.25em]
draw[line width=0.075em] (-45:0.5em) -- (105:0.5em) (-15:0.5em) -- (-165:0.5em) (-135:0.5em) -- (75:0.5em);
endtikzpicture
begindocument
ABC inftrian DEF
enddocument
You can combine this with all that has been said in Sandy G's nice answer about mathchoice
. The thing I like about TikZ, though, is that it is IMHO particularly intuitive to design the symbol since it offers polar and Cartesian coordinates, and works with all common compilers (latex
, pdflatex
, xelatex
and lualatex
, and even tex
, though the syntax is slightly different). A potential drawback of the simple example above is that it does not detect the font weight and so on. I do not know if this has been discussed somewhere, nor do I know if there is a foolproof way of finding out the current font weight and so on. On the other hand, in many situations one may not need these features.
add a comment |
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%2f480768%2fhow-do-you-make-your-own-symbol-when-detexify-fails%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
If it's really not in Detexify, check the Comprehensive LaTeX Symbol List to see if your symbol can be found in an existing package. Note, The Comprehensive List is long! Over 300 pages. But it is searchable, well-organized, and has a good table of contents and index.
If that doesn't help, it may be time to design your own symbol. It's probably best to give your new symbol a name so it can be used repeatedly and transported more easily into another document.
If your symbol will be used as an operator with limits (like an integral or summation), you should use the DeclareMathOperator
or DeclareMathOperator*
command. Both of these use the amsmath
package. The unstarred version places sub- and superscript limits to the right of the operator; the starred version places limits above and below the operator when it is in displaystyle
. To illustrate:
DeclareMathOperator*squareopsquare
DeclareMathOperatortriangleopbigtriangleup
[Note that square
uses the amssymb
package.]
Then the code
[
squareop_n=1^infty a_n qquad triangleop_n=1^infty a_n
]
will produce the following output:
More information on DeclareMathOperator
can be found in this answer by @Andrew Swann.
If your symbol is not going to be used in that fashion, you should probably use newcommand
.
If your symbol is a math symbol: Is it a binary operator (such as +
or times
)? A binary relation (such as <
or leq
)? Or an ordinary math symbol (such as !
or infty
)? The spacing is different for each case. Compare the three versions for the symbol times
:
newcommandreltimesmathreltimes
newcommandbintimesmathbintimes
newcommandchrtimestimes
Then noindent $areltimes b newline abintimes b newline achrtimes b$
will produce the output:
Note the extra set of curly braces in chrtimes
. If you remove them you'll get the same output as mathbintimes
, since times
is by default a binary operator. You can enclose most math symbols in to turn them into ordinary math symbols.
Typically, binary relations have slightly more space than binary operators, and significantly more than ordinary symbols. However, the spacing changes when these appear as sub- or superscripts. All three examples above will look like A_atimes b
if placed in a subscript.
Many new symbols can be created by modifying or combining existing symbols. To rotate, scale or reflect existing symbols, use the graphicx
or graphics
package. Documentation is here. The commands are rotatebox
, scalebox
, resizebox
and reflectbox
.
For example, if you want a cong
symbol (≅), but with the tilde reversed, the reflectbox
command from graphicx
can be used. The code
newcommandbackcongmathrelreflectbox$cong$
will produce the desired effect with the code $Abackcong B$
.
If you try using this code in a subscript (for example, $X_Abackcong B$
), the new symbol will not scale down as it should. This is resolved below below using mathchoice
.
To combine multiple symbols (math or text) the ooalign
command can be used. @egreg has a detailed explanation here. The basic idea is that ooalign
creates a one-column table, with all rows superimposed on one another, and no padding outside the column. Each row of the "table" ends with cr
. Entries can be centered in the column using hfil
.
For example, to produce
we superimpose a circ
symbol with a text T
character. The command
newcommandTcircmathbin%
ooalignhfil$circ$hfilcrhfil Thfilcr%
together with $ATcirc B$
produces the output.
To make sure your symbol looks right whether it's displayed, inline, script or scriptscript, you can use mathchoice
. (Note mathpalette
(explained here by @egreg and @Werner) can be used when the four versions are identical except for style.)
mathchoice
<do this if called in displaystyle>
<do this if called in textstyle>
<do this if called in scriptstyle>
<do this if called in scriptscriptstyle>
The above code will produce the corresponding output for each of the four math styles.
To illustrate, here is a solution to the twisted product question that will adjust to scripts and scriptscripts.
newcommandtwprodmathbinmathchoice%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox.85exmbox$scriptscriptstylesim$hfilcrhfil$scriptstyletimes$hfilcr%
ooalignhfilraisebox.65exscalebox.8$scriptscriptstylesim$hfilcrhfil$scriptscriptstyletimes$hfilcr%
S^2twprod S^2 quad F_S^2twprod S^2 quad F_K_S^2twprod S^2
I downsized the sim
in each style so it fit better over the times
.
Similar effects can be obtained using stackengine
. Documentation is here.
If you can't create your symbol by combining or modifying others, you can design your symbol from scratch using tikz
, together with the ideas above. Here is an example by @marmot.
add a comment |
If it's really not in Detexify, check the Comprehensive LaTeX Symbol List to see if your symbol can be found in an existing package. Note, The Comprehensive List is long! Over 300 pages. But it is searchable, well-organized, and has a good table of contents and index.
If that doesn't help, it may be time to design your own symbol. It's probably best to give your new symbol a name so it can be used repeatedly and transported more easily into another document.
If your symbol will be used as an operator with limits (like an integral or summation), you should use the DeclareMathOperator
or DeclareMathOperator*
command. Both of these use the amsmath
package. The unstarred version places sub- and superscript limits to the right of the operator; the starred version places limits above and below the operator when it is in displaystyle
. To illustrate:
DeclareMathOperator*squareopsquare
DeclareMathOperatortriangleopbigtriangleup
[Note that square
uses the amssymb
package.]
Then the code
[
squareop_n=1^infty a_n qquad triangleop_n=1^infty a_n
]
will produce the following output:
More information on DeclareMathOperator
can be found in this answer by @Andrew Swann.
If your symbol is not going to be used in that fashion, you should probably use newcommand
.
If your symbol is a math symbol: Is it a binary operator (such as +
or times
)? A binary relation (such as <
or leq
)? Or an ordinary math symbol (such as !
or infty
)? The spacing is different for each case. Compare the three versions for the symbol times
:
newcommandreltimesmathreltimes
newcommandbintimesmathbintimes
newcommandchrtimestimes
Then noindent $areltimes b newline abintimes b newline achrtimes b$
will produce the output:
Note the extra set of curly braces in chrtimes
. If you remove them you'll get the same output as mathbintimes
, since times
is by default a binary operator. You can enclose most math symbols in to turn them into ordinary math symbols.
Typically, binary relations have slightly more space than binary operators, and significantly more than ordinary symbols. However, the spacing changes when these appear as sub- or superscripts. All three examples above will look like A_atimes b
if placed in a subscript.
Many new symbols can be created by modifying or combining existing symbols. To rotate, scale or reflect existing symbols, use the graphicx
or graphics
package. Documentation is here. The commands are rotatebox
, scalebox
, resizebox
and reflectbox
.
For example, if you want a cong
symbol (≅), but with the tilde reversed, the reflectbox
command from graphicx
can be used. The code
newcommandbackcongmathrelreflectbox$cong$
will produce the desired effect with the code $Abackcong B$
.
If you try using this code in a subscript (for example, $X_Abackcong B$
), the new symbol will not scale down as it should. This is resolved below below using mathchoice
.
To combine multiple symbols (math or text) the ooalign
command can be used. @egreg has a detailed explanation here. The basic idea is that ooalign
creates a one-column table, with all rows superimposed on one another, and no padding outside the column. Each row of the "table" ends with cr
. Entries can be centered in the column using hfil
.
For example, to produce
we superimpose a circ
symbol with a text T
character. The command
newcommandTcircmathbin%
ooalignhfil$circ$hfilcrhfil Thfilcr%
together with $ATcirc B$
produces the output.
To make sure your symbol looks right whether it's displayed, inline, script or scriptscript, you can use mathchoice
. (Note mathpalette
(explained here by @egreg and @Werner) can be used when the four versions are identical except for style.)
mathchoice
<do this if called in displaystyle>
<do this if called in textstyle>
<do this if called in scriptstyle>
<do this if called in scriptscriptstyle>
The above code will produce the corresponding output for each of the four math styles.
To illustrate, here is a solution to the twisted product question that will adjust to scripts and scriptscripts.
newcommandtwprodmathbinmathchoice%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox.85exmbox$scriptscriptstylesim$hfilcrhfil$scriptstyletimes$hfilcr%
ooalignhfilraisebox.65exscalebox.8$scriptscriptstylesim$hfilcrhfil$scriptscriptstyletimes$hfilcr%
S^2twprod S^2 quad F_S^2twprod S^2 quad F_K_S^2twprod S^2
I downsized the sim
in each style so it fit better over the times
.
Similar effects can be obtained using stackengine
. Documentation is here.
If you can't create your symbol by combining or modifying others, you can design your symbol from scratch using tikz
, together with the ideas above. Here is an example by @marmot.
add a comment |
If it's really not in Detexify, check the Comprehensive LaTeX Symbol List to see if your symbol can be found in an existing package. Note, The Comprehensive List is long! Over 300 pages. But it is searchable, well-organized, and has a good table of contents and index.
If that doesn't help, it may be time to design your own symbol. It's probably best to give your new symbol a name so it can be used repeatedly and transported more easily into another document.
If your symbol will be used as an operator with limits (like an integral or summation), you should use the DeclareMathOperator
or DeclareMathOperator*
command. Both of these use the amsmath
package. The unstarred version places sub- and superscript limits to the right of the operator; the starred version places limits above and below the operator when it is in displaystyle
. To illustrate:
DeclareMathOperator*squareopsquare
DeclareMathOperatortriangleopbigtriangleup
[Note that square
uses the amssymb
package.]
Then the code
[
squareop_n=1^infty a_n qquad triangleop_n=1^infty a_n
]
will produce the following output:
More information on DeclareMathOperator
can be found in this answer by @Andrew Swann.
If your symbol is not going to be used in that fashion, you should probably use newcommand
.
If your symbol is a math symbol: Is it a binary operator (such as +
or times
)? A binary relation (such as <
or leq
)? Or an ordinary math symbol (such as !
or infty
)? The spacing is different for each case. Compare the three versions for the symbol times
:
newcommandreltimesmathreltimes
newcommandbintimesmathbintimes
newcommandchrtimestimes
Then noindent $areltimes b newline abintimes b newline achrtimes b$
will produce the output:
Note the extra set of curly braces in chrtimes
. If you remove them you'll get the same output as mathbintimes
, since times
is by default a binary operator. You can enclose most math symbols in to turn them into ordinary math symbols.
Typically, binary relations have slightly more space than binary operators, and significantly more than ordinary symbols. However, the spacing changes when these appear as sub- or superscripts. All three examples above will look like A_atimes b
if placed in a subscript.
Many new symbols can be created by modifying or combining existing symbols. To rotate, scale or reflect existing symbols, use the graphicx
or graphics
package. Documentation is here. The commands are rotatebox
, scalebox
, resizebox
and reflectbox
.
For example, if you want a cong
symbol (≅), but with the tilde reversed, the reflectbox
command from graphicx
can be used. The code
newcommandbackcongmathrelreflectbox$cong$
will produce the desired effect with the code $Abackcong B$
.
If you try using this code in a subscript (for example, $X_Abackcong B$
), the new symbol will not scale down as it should. This is resolved below below using mathchoice
.
To combine multiple symbols (math or text) the ooalign
command can be used. @egreg has a detailed explanation here. The basic idea is that ooalign
creates a one-column table, with all rows superimposed on one another, and no padding outside the column. Each row of the "table" ends with cr
. Entries can be centered in the column using hfil
.
For example, to produce
we superimpose a circ
symbol with a text T
character. The command
newcommandTcircmathbin%
ooalignhfil$circ$hfilcrhfil Thfilcr%
together with $ATcirc B$
produces the output.
To make sure your symbol looks right whether it's displayed, inline, script or scriptscript, you can use mathchoice
. (Note mathpalette
(explained here by @egreg and @Werner) can be used when the four versions are identical except for style.)
mathchoice
<do this if called in displaystyle>
<do this if called in textstyle>
<do this if called in scriptstyle>
<do this if called in scriptscriptstyle>
The above code will produce the corresponding output for each of the four math styles.
To illustrate, here is a solution to the twisted product question that will adjust to scripts and scriptscripts.
newcommandtwprodmathbinmathchoice%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox.85exmbox$scriptscriptstylesim$hfilcrhfil$scriptstyletimes$hfilcr%
ooalignhfilraisebox.65exscalebox.8$scriptscriptstylesim$hfilcrhfil$scriptscriptstyletimes$hfilcr%
S^2twprod S^2 quad F_S^2twprod S^2 quad F_K_S^2twprod S^2
I downsized the sim
in each style so it fit better over the times
.
Similar effects can be obtained using stackengine
. Documentation is here.
If you can't create your symbol by combining or modifying others, you can design your symbol from scratch using tikz
, together with the ideas above. Here is an example by @marmot.
If it's really not in Detexify, check the Comprehensive LaTeX Symbol List to see if your symbol can be found in an existing package. Note, The Comprehensive List is long! Over 300 pages. But it is searchable, well-organized, and has a good table of contents and index.
If that doesn't help, it may be time to design your own symbol. It's probably best to give your new symbol a name so it can be used repeatedly and transported more easily into another document.
If your symbol will be used as an operator with limits (like an integral or summation), you should use the DeclareMathOperator
or DeclareMathOperator*
command. Both of these use the amsmath
package. The unstarred version places sub- and superscript limits to the right of the operator; the starred version places limits above and below the operator when it is in displaystyle
. To illustrate:
DeclareMathOperator*squareopsquare
DeclareMathOperatortriangleopbigtriangleup
[Note that square
uses the amssymb
package.]
Then the code
[
squareop_n=1^infty a_n qquad triangleop_n=1^infty a_n
]
will produce the following output:
More information on DeclareMathOperator
can be found in this answer by @Andrew Swann.
If your symbol is not going to be used in that fashion, you should probably use newcommand
.
If your symbol is a math symbol: Is it a binary operator (such as +
or times
)? A binary relation (such as <
or leq
)? Or an ordinary math symbol (such as !
or infty
)? The spacing is different for each case. Compare the three versions for the symbol times
:
newcommandreltimesmathreltimes
newcommandbintimesmathbintimes
newcommandchrtimestimes
Then noindent $areltimes b newline abintimes b newline achrtimes b$
will produce the output:
Note the extra set of curly braces in chrtimes
. If you remove them you'll get the same output as mathbintimes
, since times
is by default a binary operator. You can enclose most math symbols in to turn them into ordinary math symbols.
Typically, binary relations have slightly more space than binary operators, and significantly more than ordinary symbols. However, the spacing changes when these appear as sub- or superscripts. All three examples above will look like A_atimes b
if placed in a subscript.
Many new symbols can be created by modifying or combining existing symbols. To rotate, scale or reflect existing symbols, use the graphicx
or graphics
package. Documentation is here. The commands are rotatebox
, scalebox
, resizebox
and reflectbox
.
For example, if you want a cong
symbol (≅), but with the tilde reversed, the reflectbox
command from graphicx
can be used. The code
newcommandbackcongmathrelreflectbox$cong$
will produce the desired effect with the code $Abackcong B$
.
If you try using this code in a subscript (for example, $X_Abackcong B$
), the new symbol will not scale down as it should. This is resolved below below using mathchoice
.
To combine multiple symbols (math or text) the ooalign
command can be used. @egreg has a detailed explanation here. The basic idea is that ooalign
creates a one-column table, with all rows superimposed on one another, and no padding outside the column. Each row of the "table" ends with cr
. Entries can be centered in the column using hfil
.
For example, to produce
we superimpose a circ
symbol with a text T
character. The command
newcommandTcircmathbin%
ooalignhfil$circ$hfilcrhfil Thfilcr%
together with $ATcirc B$
produces the output.
To make sure your symbol looks right whether it's displayed, inline, script or scriptscript, you can use mathchoice
. (Note mathpalette
(explained here by @egreg and @Werner) can be used when the four versions are identical except for style.)
mathchoice
<do this if called in displaystyle>
<do this if called in textstyle>
<do this if called in scriptstyle>
<do this if called in scriptscriptstyle>
The above code will produce the corresponding output for each of the four math styles.
To illustrate, here is a solution to the twisted product question that will adjust to scripts and scriptscripts.
newcommandtwprodmathbinmathchoice%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox1.15exmbox$scriptstylesim$hfilcrhfil$times$hfilcr%
ooalignhfilraisebox.85exmbox$scriptscriptstylesim$hfilcrhfil$scriptstyletimes$hfilcr%
ooalignhfilraisebox.65exscalebox.8$scriptscriptstylesim$hfilcrhfil$scriptscriptstyletimes$hfilcr%
S^2twprod S^2 quad F_S^2twprod S^2 quad F_K_S^2twprod S^2
I downsized the sim
in each style so it fit better over the times
.
Similar effects can be obtained using stackengine
. Documentation is here.
If you can't create your symbol by combining or modifying others, you can design your symbol from scratch using tikz
, together with the ideas above. Here is an example by @marmot.
edited Mar 22 at 4:19
answered Mar 21 at 20:27
Sandy GSandy G
4,3201635
4,3201635
add a comment |
add a comment |
Another possibility with the stackinset
command, from stackengine
:
documentclass[border = 2pt]standalone
usepackagestackengine, graphicx %
newcommandsimtimesstackMathmathbinmathchoice%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.7exscalebox 0.67$scriptstylesim $scriptstyletimes%
stackinsetc0exc0.6exscalebox 0.67$scriptscriptstylesim $scriptscriptstyletimes%
begindocument
$ S^2 simtimes S^2 quad F_S^2 simtimes S^2 quad F_K_S^2 simtimes S^2$
enddocument
add a comment |
Another possibility with the stackinset
command, from stackengine
:
documentclass[border = 2pt]standalone
usepackagestackengine, graphicx %
newcommandsimtimesstackMathmathbinmathchoice%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.7exscalebox 0.67$scriptstylesim $scriptstyletimes%
stackinsetc0exc0.6exscalebox 0.67$scriptscriptstylesim $scriptscriptstyletimes%
begindocument
$ S^2 simtimes S^2 quad F_S^2 simtimes S^2 quad F_K_S^2 simtimes S^2$
enddocument
add a comment |
Another possibility with the stackinset
command, from stackengine
:
documentclass[border = 2pt]standalone
usepackagestackengine, graphicx %
newcommandsimtimesstackMathmathbinmathchoice%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.7exscalebox 0.67$scriptstylesim $scriptstyletimes%
stackinsetc0exc0.6exscalebox 0.67$scriptscriptstylesim $scriptscriptstyletimes%
begindocument
$ S^2 simtimes S^2 quad F_S^2 simtimes S^2 quad F_K_S^2 simtimes S^2$
enddocument
Another possibility with the stackinset
command, from stackengine
:
documentclass[border = 2pt]standalone
usepackagestackengine, graphicx %
newcommandsimtimesstackMathmathbinmathchoice%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.9exscalebox 0.67$sim $times%
stackinsetc0exc0.7exscalebox 0.67$scriptstylesim $scriptstyletimes%
stackinsetc0exc0.6exscalebox 0.67$scriptscriptstylesim $scriptscriptstyletimes%
begindocument
$ S^2 simtimes S^2 quad F_S^2 simtimes S^2 quad F_K_S^2 simtimes S^2$
enddocument
answered Mar 21 at 22:51
BernardBernard
175k776207
175k776207
add a comment |
add a comment |
I'd like to expand a bit on the "build the symbol from scratch" part. There are some very simple basic principles that help making the symbol scalable:
- Use relative length scales for all dimensions. These are explained very nicely in this answer. The most important feature (for the purposes here) is that they scale with the font size.
- Use relative length scales for the line widths.
- Consider using the
baseline
option.
An example is given in this post:
documentclassarticle
usepackagetikz
newcommandinftrianbegintikzpicture[baseline=-0.25em]
draw[line width=0.075em] (-45:0.5em) -- (105:0.5em) (-15:0.5em) -- (-165:0.5em) (-135:0.5em) -- (75:0.5em);
endtikzpicture
begindocument
ABC inftrian DEF
enddocument
You can combine this with all that has been said in Sandy G's nice answer about mathchoice
. The thing I like about TikZ, though, is that it is IMHO particularly intuitive to design the symbol since it offers polar and Cartesian coordinates, and works with all common compilers (latex
, pdflatex
, xelatex
and lualatex
, and even tex
, though the syntax is slightly different). A potential drawback of the simple example above is that it does not detect the font weight and so on. I do not know if this has been discussed somewhere, nor do I know if there is a foolproof way of finding out the current font weight and so on. On the other hand, in many situations one may not need these features.
add a comment |
I'd like to expand a bit on the "build the symbol from scratch" part. There are some very simple basic principles that help making the symbol scalable:
- Use relative length scales for all dimensions. These are explained very nicely in this answer. The most important feature (for the purposes here) is that they scale with the font size.
- Use relative length scales for the line widths.
- Consider using the
baseline
option.
An example is given in this post:
documentclassarticle
usepackagetikz
newcommandinftrianbegintikzpicture[baseline=-0.25em]
draw[line width=0.075em] (-45:0.5em) -- (105:0.5em) (-15:0.5em) -- (-165:0.5em) (-135:0.5em) -- (75:0.5em);
endtikzpicture
begindocument
ABC inftrian DEF
enddocument
You can combine this with all that has been said in Sandy G's nice answer about mathchoice
. The thing I like about TikZ, though, is that it is IMHO particularly intuitive to design the symbol since it offers polar and Cartesian coordinates, and works with all common compilers (latex
, pdflatex
, xelatex
and lualatex
, and even tex
, though the syntax is slightly different). A potential drawback of the simple example above is that it does not detect the font weight and so on. I do not know if this has been discussed somewhere, nor do I know if there is a foolproof way of finding out the current font weight and so on. On the other hand, in many situations one may not need these features.
add a comment |
I'd like to expand a bit on the "build the symbol from scratch" part. There are some very simple basic principles that help making the symbol scalable:
- Use relative length scales for all dimensions. These are explained very nicely in this answer. The most important feature (for the purposes here) is that they scale with the font size.
- Use relative length scales for the line widths.
- Consider using the
baseline
option.
An example is given in this post:
documentclassarticle
usepackagetikz
newcommandinftrianbegintikzpicture[baseline=-0.25em]
draw[line width=0.075em] (-45:0.5em) -- (105:0.5em) (-15:0.5em) -- (-165:0.5em) (-135:0.5em) -- (75:0.5em);
endtikzpicture
begindocument
ABC inftrian DEF
enddocument
You can combine this with all that has been said in Sandy G's nice answer about mathchoice
. The thing I like about TikZ, though, is that it is IMHO particularly intuitive to design the symbol since it offers polar and Cartesian coordinates, and works with all common compilers (latex
, pdflatex
, xelatex
and lualatex
, and even tex
, though the syntax is slightly different). A potential drawback of the simple example above is that it does not detect the font weight and so on. I do not know if this has been discussed somewhere, nor do I know if there is a foolproof way of finding out the current font weight and so on. On the other hand, in many situations one may not need these features.
I'd like to expand a bit on the "build the symbol from scratch" part. There are some very simple basic principles that help making the symbol scalable:
- Use relative length scales for all dimensions. These are explained very nicely in this answer. The most important feature (for the purposes here) is that they scale with the font size.
- Use relative length scales for the line widths.
- Consider using the
baseline
option.
An example is given in this post:
documentclassarticle
usepackagetikz
newcommandinftrianbegintikzpicture[baseline=-0.25em]
draw[line width=0.075em] (-45:0.5em) -- (105:0.5em) (-15:0.5em) -- (-165:0.5em) (-135:0.5em) -- (75:0.5em);
endtikzpicture
begindocument
ABC inftrian DEF
enddocument
You can combine this with all that has been said in Sandy G's nice answer about mathchoice
. The thing I like about TikZ, though, is that it is IMHO particularly intuitive to design the symbol since it offers polar and Cartesian coordinates, and works with all common compilers (latex
, pdflatex
, xelatex
and lualatex
, and even tex
, though the syntax is slightly different). A potential drawback of the simple example above is that it does not detect the font weight and so on. I do not know if this has been discussed somewhere, nor do I know if there is a foolproof way of finding out the current font weight and so on. On the other hand, in many situations one may not need these features.
edited Mar 22 at 4:02
answered Mar 22 at 2:02
marmotmarmot
113k5145275
113k5145275
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%2f480768%2fhow-do-you-make-your-own-symbol-when-detexify-fails%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
As a way to condense the syntax of
mathchoice
, see theThisStyle...SavedStyle...
syntax of thescalerel
package, first introduced here: tex.stackexchange.com/questions/43978/proper-use-of-mathchoice/…– Steven B. Segletes
Mar 22 at 0:18