Hot answers tagged

65

Here is a start. I'm sure others will come up with better solutions, but I think from here it's mostly down to finding a better algorithm to pick the random lines. First, we get ourselves a Region representation of the text we want to stylise (thanks to yode for simplifying this part): textRegion = DiscretizeGraphics[ Text[Style["MUSEUM", FontFamily ->...


43

Weighted sampling of line segments based on overlap/non-overlap ratio: Module[{reg}, reg = BoundaryDiscretizeGraphics[ Text[Style["MUSEUM", FontFamily -> "Arial"]], _Text, MaxCellMeasure -> 0.1]; Graphics@Line@ RandomSample[(With[{iarea = Quiet@Area@ BoundaryDiscretizeRegion@ ...


42

This problem is probably due to the MathematicaMono font which is introduced in v10. Defining the problem: Some fonts ("[","_","]","=", etc.) are rendered badly with strange thinning in v10 in some notebook magnifications. This is obvious when you compare the renderings from v10 with those from v9. Analyzing the problem: I found that all of these ugly-...


37

Here is another way of making this kind of graphics using version 6 commands. I am not sure how valuable is this different way of making them compared to the other answers of Martin Buettner and kirma, but I do think some of the results look interesting. I was mainly motivated to explore the 3D versions of writing words with straight lines. Code Here is ...


33

Another way that produces a more uniform distribution of lines is to take the DistanceTransform of the text. I start with the text itself: image = Rasterize@Graphics[ Text[ Style["MUSEUM", 64, Bold, FontFamily -> "Arial"] ], ImageSize -> {360, 200}] And the use the distance transform: ImageAdjust@DistanceTransform@ColorNegate@image as ...


31

Import text as a FilledCurve in graphics, using PDF as an intermediate format. Below are modified examples from Documentation Center: text = First[First[ImportString[ExportString[Style["Hi", Italic, FontSize -> 24, FontFamily -> "Times"], "PDF"], "PDF", "TextMode" -> "Outlines"]]]; Outline fonts using different edge and face forms: Graphics[{...


24

The relevant line from this SO post: fontlist = FE`Evaluate[FEPrivate`GetPopupList["MenuListFonts"]]; Update: The content of the "MenuListFonts" list is system-dependent. In Windows Vista, I get a list that contains only FontFamily: Panel@Row[fontlist[[;; 60]] /. Rule[x_, y_] :> Style[ToString@x, 14, FontFamily -> y], " \[FilledSquare] "] On a ...


20

You can match formatting between Mathematica figures and LaTeX using a small package I just wrote for using LaTeX-snippets in Mathematica: MaTeX. Here's an example: <<MaTeX` Plot[Sin[z], {z, -2 Pi, 2 Pi}, Frame -> True, FrameStyle -> BlackFrame, FrameLabel -> (MaTeX[#, Magnification -> 20/12] &) /@ {"z", "a(z) = \\sin z"}, ...


20

There is an option for Column or Grid to avoid this: AllowScriptLevelChange cell = Framed[Style[(2*x^(3/2))/3, FontSize -> 14], FrameMargins -> 10, FrameStyle -> {AbsoluteThickness[1], LightGray}, RoundingRadius -> 3]; {cell, Column[{cell}, AllowScriptLevelChange -> False]} UPDATE Honestly, I don't know why Panel doesn't respect ...


19

[Edit: I updated this question to fix a couple of mistakes and to reflect the behavior in 10.3. -jf] The question I'll answer here is "How is the cell style of a given cell resolved." There are several other questions one could ask about option resolution, and I won't attempt to answer all of them here, but I will show in some exhaustive detail, at the ...


18

Font family, size, etc. depends on "Graphics" style in the notebook stylesheet CurrentValue[{StyleDefinitions, "Graphics", "FontSize"}] (* 10 *) CurrentValue[{StyleDefinitions, "Graphics", "FontFamily"}] (* "Times" *) You can manually change it: open Format->Edit Stylesheet..., add Cell[StyleData["Graphics"],FontSize->20] and press Ctrl+Shift+E. ...


16

While this is not an answer, I did not want to add it as a comment. The issue is not specific to Linux, happens under Windows as well (Win7 in particular). Also, it is not specific to font: any monospaced font seems to produce overhangs to the default frame of $n$ characters. While rasterized characters have different image dimensions, as pointed out by ...


16

The "OperatorSubstitution" option does prevent the use of Mathematica fonts, but only for those cases where there were ASCII equivalents. So if your graphic contains expressions which use, for example, parentheses, brackets, braces, or various ASCII operators (plus, minus, asterisk, etc.), then the "OperatorSubstitution" is exactly what you want and you are ...


16

Fonts in version 10.3.1 v1031 = {"Al Bayan", "Al Nile", "Al Tarikh", "American Typewriter", "Andale Mono", "Apple Braille", "Apple Chancery", "Apple Color Emoji", "AppleGothic", "AppleMyungjo", "Apple SD Gothic Neo", "Apple Symbols", "Arial", "Arial Black", "Arial Hebrew", "Arial Hebrew Scholar", "Arial Narrow", "Arial Rounded MT Bold", "...


16

No need to modify a stylesheet, it is sufficient to evaluate SetOptions[$FrontEnd, StyleHints -> {"CodeFont" -> "Courier"}] or equivalently CurrentValue[$FrontEnd, {StyleHints, "CodeFont"}] = "Courier"; for permanently setting the default font to "Courier New" system-wide in Mathematica 11. Note that the undocumented StyleHints option is new in ...


15

You can use my brace function. p2c[p_]:=p[[1]]+I p[[2]]; c2p[p_]:={Re[p],Im[p]}; brace[pa_,pb_,a_:1/10,t_:1/3]:=Module[{θ,ρ}, θ=Arg[p2c[pb-pa]]; ρ=Norm[p2c[pb-pa]]; {Circle[pa+a ρ{Cos[θ],Sin[θ]},a ρ,{π+θ+t π/2,(3π)/2+θ}], Line[{pa+a ρ{Cos[θ],Sin[θ]}+a ρ{Sin[θ],-Cos[θ]},(pa+pb)/2-a ρ{Cos[θ],Sin[θ]}+a ρ{Sin[θ],-Cos[θ]}}], Circle[(pa+pb)/2-a ρ{Cos[θ],Sin[θ]...


15

Straight from the proverbial horse's mouth: Default font changed to Source Code Pro on Mac, Consolas on Windows, and Bitstream Vera Sans Mono on Linux.


13

An important issue in the question seems to be that of speed. So as Sjoerd suggested, I wrote a solution that pre-outlines all the characters in a reasonable range of ASCII characters, and then does the replacements on an arbitrary string. The characters are stored in a table ascii, and their graphic replacements in asciiGraphics. I then define the ...


13

Personally I installed the Latin Modern font for this, which is an OpenType-packaged version of the same font face. When we set the font in Mathematica using the FontFamily option, we need to use the font name that the operating system uses, not the filename of the font. You can find this by looking at a font chooser dialog in any application. Example: ...


12

Mathematica uses two differen sets of styles for displaying graphics on screen and for exporting: ScreenStyleEnvironment for displaying and exporting in raster formats and PrintingStyleEnvironment for printing and exporting to EPS and PDF formats (see here for more details). One way to achieve consistent export to PostScript is to set ...


11

Mathematica automatically replaces many operators found in normal text fonts with operators in a Mathematica font. You can change that behavior as follows: SetOptions[EvaluationNotebook[], PrivateFontOptions -> {"OperatorSubstitution" -> False}] Test: ListPlot[Table[RandomReal[NormalDistribution[], {20, 2}], {2}], PlotStyle -> PointSize[0.02],...


11

Mathematica will only let you use fonts installed on the system. I have two suggestions here: At the top of your CDF file, display a link depending on the operating system, pointing to the correct file for downloading the font link = If[$OperatingSystem == "Linux" || $OperatingSystem == "Windows", Hyperlink["Download font for " <> $...


11

The Program style is purpose-built for this sort of thing: If you do not like the look of the bars above and below the cell, you can remove them by selecting the cell and changing the CellFrame option in the Option Inspector:


11

CurrentValue["ControlsFontFamily"] (* "Segoe UI" on Version 9 / Windows 8 *) (* "Lucida Grande" on OS X 10.6.8 -- thanks: m_goldberg *) (* "Bitstream Vera Sans" on Fedora 20 -- thanks Oska *) CurrentValue["ControlsFontSize"] (* 12 on Version 9 / Windows 8 *) Style[StringJoin[CharacterRange["a", "z"]], FontFamily :> CurrentValue["ControlsFontFamily"], ...


11

The circle is not cropped when used in a Subscript: Subscript["M", "⊙"] Thus, by using this answer you can easily do: str = "This is some text with a CircleDot: " <> ToString[Subscript["M", "⊙"], FormatType -> StandardForm] If you want some Style: Style[str, Red, 20]


11

Following the lead from J.M., and then some comments therein from User18 and QuantumDot, the following is working: In the common StyleSheet, under Notebook options, I added the option: StyleHints->{"CodeFont" -> "Courier"} So, for example, the options now read: Cell[StyleData["Notebook"], Saveable->False, ShowAutoSpellCheck->False, ...


11

Another approach is to set AllowScriptLevelChange -> False via GridBoxOptions: {cell, Style[ Panel[Column[{cell}], "Hello", DefaultBaseStyle -> None], GridBoxOptions -> {AllowScriptLevelChange -> False}]} For curiosity, here is a low-level workaround based on AllowScriptLevelChange -> False: {cell, RawBoxes@Replace[ToBoxes[ ...


10

Not knowing in what other external application you plan to process the exported PDF, I'm focusing mainly on the last paragraph of the question which asks for a way to outline fonts. To do this, you can simply define the function outlinedExport[name_, gr_, opts : OptionsPattern[]] := Export[name, First@ImportString[ExportString[gr, "PDF"], "PDF", "...


10

In my opinion you don't have many options here and honestly, I would not try to achieve this with Mathematica and Linux because the font-rendering was, is and will at least for some time be crappy. In the examples, I use the "Liberation Serif" which is the default serif font on my system. Let me give some ideas: The easiest thing I know is to use ...


10

Following from Mr. Wizard's post, I was able to get Mathematica to substitute Greek letters with whatever font I want by editing \SystemFiles\FrontEnd\TextResources\UnicodeFontMapping.tr. I first tried changing Mathematica: (Mathematica1 Mathematica1Mono) Automatic into Mathematica: (DejaVuSans DejaVuSansMono) Automatic which worked for changing the font,...


Only top voted, non community-wiki answers of a minimum length are eligible