Skip to main content

front end - Difference between double quotes


I have a notebook and I enter something like


PlotLabel->"my label with dynamic number "<>ToString[strange]

and I get errors like


doubleQuoteMess



However, the double quotes in the input cell were exactly copied and pasted from this posting and they became different on pasting to the notebook: The first one became slanted like a slash, the second like a backslash. There is - as the error message shows - a third type of double quote, a purely vertical one. I am used to Mathematica 4.0 where the vertical one was the one which came when I press Shift-2 and this was the right one to be used for string delimiters.


How do I force Mathematica to always produce the vertical double quote rather than any other flavours of different double quotes - and by the way: what is the significance


- of the double quote slanted like a slash


and


- of the double quote slanted like a backslash


in the *Wolfram Language? (Unfortunately, if I copy them to this posting front end, they all turn to the vertical double quote character).


Addendum (2014-10-17):


If I replace the slanted double quotes by a vertical ones, the plot command works:


this one works (with vertical double quotes)


whereas this one does not, but maybe the error message gives a hint. It seems to me to be be more a problem of input to Mathematica rather than evaluation of the Wolfram Language:



this one does not work


Today, trying around more with it, I found out that it depends on the notebook: in some notebooks, Shift-2 always delivers vertical double quotes, in some they come as slanted ones, sometimes even the first double quote in a line is a back-slanted one whereas all subsequent double quotes become slash-slanted:


different double quotes in an input cell


If this matters: The cell in the notebook with the strange double quote behaviour is an input cell, Cell>Convert To> shows "Input Form", the cell is open, editable and evaluatable, the cell bracket is a simple one without any extra decoration at the ends, just plain hook (see screenshots above).



Answer



According to http://forums.wolfram.com/mathgroup/archive/2010/Dec/msg00797.html there is an option under preferences:


Edit > Preferences > Interface


with two checkboxes:


Enable smart quotes for normal text editing and when pasting


As soon as I uncheck them both, the maze is gone: Shift+2 then produces vertical double quotes (the right ones to be used as string delimiters) rather than different slanted ones (are they meant to distinguish between opening and closing some quoted text?)



Bingo!


Comments

Popular posts from this blog

mathematical optimization - Minimizing using indices, error: Part::pkspec1: The expression cannot be used as a part specification

I want to use Minimize where the variables to minimize are indices pointing into an array. Here a MWE that hopefully shows what my problem is. vars = u@# & /@ Range[3]; cons = Flatten@ { Table[(u[j] != #) & /@ vars[[j + 1 ;; -1]], {j, 1, 3 - 1}], 1 vec1 = {1, 2, 3}; vec2 = {1, 2, 3}; Minimize[{Total@((vec1[[#]] - vec2[[u[#]]])^2 & /@ Range[1, 3]), cons}, vars, Integers] The error I get: Part::pkspec1: The expression u[1] cannot be used as a part specification. >> Answer Ok, it seems that one can get around Mathematica trying to evaluate vec2[[u[1]]] too early by using the function Indexed[vec2,u[1]] . The working MWE would then look like the following: vars = u@# & /@ Range[3]; cons = Flatten@{ Table[(u[j] != #) & /@ vars[[j + 1 ;; -1]], {j, 1, 3 - 1}], 1 vec1 = {1, 2, 3}; vec2 = {1, 2, 3}; NMinimize[ {Total@((vec1[[#]] - Indexed[vec2, u[#]])^2 & /@ R...

functions - Get leading series expansion term?

Given a function f[x] , I would like to have a function leadingSeries that returns just the leading term in the series around x=0 . For example: leadingSeries[(1/x + 2)/(4 + 1/x^2 + x)] x and leadingSeries[(1/x + 2 + (1 - 1/x^3)/4)/(4 + x)] -(1/(16 x^3)) Is there such a function in Mathematica? Or maybe one can implement it efficiently? EDIT I finally went with the following implementation, based on Carl Woll 's answer: lds[ex_,x_]:=( (ex/.x->(x+O[x]^2))/.SeriesData[U_,Z_,L_List,Mi_,Ma_,De_]:>SeriesData[U,Z,{L[[1]]},Mi,Mi+1,De]//Quiet//Normal) The advantage is, that this one also properly works with functions whose leading term is a constant: lds[Exp[x],x] 1 Answer Update 1 Updated to eliminate SeriesData and to not return additional terms Perhaps you could use: leadingSeries[expr_, x_] := Normal[expr /. x->(x+O[x]^2) /. a_List :> Take[a, 1]] Then for your examples: leadingSeries[(1/x + 2)/(4 + 1/x^2 + x), x] leadingSeries[Exp[x], x] leadingSeries[(1/x + 2 + (1 - 1/x...

What is and isn't a valid variable specification for Manipulate?

I have an expression whose terms have arguments (representing subscripts), like this: myExpr = A[0] + V[1,T] I would like to put it inside a Manipulate to see its value as I move around the parameters. (The goal is eventually to plot it wrt one of the variables inside.) However, Mathematica complains when I set V[1,T] as a manipulated variable: Manipulate[Evaluate[myExpr], {A[0], 0, 1}, {V[1, T], 0, 1}] (*Manipulate::vsform: Manipulate argument {V[1,T],0,1} does not have the correct form for a variable specification. >> *) As a workaround, if I get rid of the symbol T inside the argument, it works fine: Manipulate[ Evaluate[myExpr /. T -> 15], {A[0], 0, 1}, {V[1, 15], 0, 1}] Why this behavior? Can anyone point me to the documentation that says what counts as a valid variable? And is there a way to get Manpiulate to accept an expression with a symbolic argument as a variable? Investigations I've done so far: I tried using variableQ from this answer , but it says V[1...